aboutsummaryrefslogtreecommitdiff
path: root/ld/pe-dll.c
AgeCommit message (Collapse)AuthorFilesLines
2002-12-16Add support to skip import libraries for performance reasons and insteadNick Clifton1-9/+74
use the direct auto-import of dll's
2002-11-30s/boolean/bfd_boolean/ s/true/TRUE/ s/false/FALSE/. SimplifyAlan Modra1-17/+17
comparisons of bfd_boolean vars with TRUE/FALSE. Formatting.
2002-11-14Add --enable-auto-import extension.Nick Clifton1-8/+135
2002-11-11* pe-dll.c (autofilter_liblist): add libmingwex and libgcj to the list ofChristopher Faylor1-0/+2
restricted auto-export libs.
2002-11-11* pe-dll.c (autofilter_liblist): Generalize library names to catch moreChristopher Faylor1-6/+6
creative library naming instances like, e.g., libstdc++-2.a.
2002-11-06Adds support for fastcall symbols as used on Microsoft Windows platformsNick Clifton1-17/+45
(i386)
2002-10-30 * emultempl/aix.em: Use include <> for generated headers.Daniel Jacobowitz1-1/+1
* emultempl/beos.em: Likewise. * emultempl/elf32.em: Likewise. * emultempl/pe.em: Likewise. * ldctor.c: Likewise. * ldexp.c: Likewise. * ldfile.c: Likewise. * ldlang.c: Likewise. * ldlex.c: Likewise. * ldlex.l: Likewise. * ldmain.c: Likewise. * ldmisc.c: Likewise. * ldwrite.c: Likewise. * lexsup.c: Likewise. * mri.c: Likewise. * pe-dll.c: Likewise.
2002-10-11 * pe-dll.c (make_import_fixup_mark): Avoid type-punned pointer.Alan Modra1-7/+12
2002-10-07Don't re-export auto-import symbols.Nick Clifton1-2/+6
2002-05-25 * ldemul.c: Fix formatting.Kazu Hirata1-5/+5
* ldfile.c: Likewise. * pe-dll.c: Likewise. * pe-dll.h: Likewise.
2002-05-22* pe-dll.c (autofilter_liblist): Add more system libs excluded by default.Christopher Faylor1-6/+27
(autofilter_objlist): Add crtbegin.o, crtend.o. * emultempl/pe.em (OPTION_EXCLUDE_LIBS): Add new define. (longopts): Add new option --exclude-libs. (gld_${EMULATION_NAME}_list_options): Give quick help about it. (gld_${EMULATION_NAME}_parse_args): Use it. * pe-dll.h (pe_dll_add_excludes): Add second param to prototype. * pe-dll.c (exclude_list_struct): Add field type to distinguish symbols from whole archives. (pe_dll_add_excludes): Set excludes->type. (auto_export): Add new variable libname and set to archive basename if abfd. Use it when filtering default and user-specified libarary excludes. Let string "ALL" mean all libs when filtering user-specified libs. * ld.texinfo: Document --exclude-libs.
2002-05-03 * ld.h: Fix formatting.Kazu Hirata1-33/+33
* ldexp.c: Likewise. * ldfile.c: Likewise. * ldlang.c: Likewise. * ldmain.c: Likewise. * lexsup.c: Likewise. * pe-dll.c: Likewise.
2002-02-15 Support arbitrary length fill patterns.Alan Modra1-3/+3
* ldexp.h (etree_value_type): Add "str" field. (union etree_union): Add "str" to "value" struct. (exp_bigintop): Declare. (exp_get_fill): Declare. * ldexp.c: Include "safe-ctype.h". (exp_intop): Set value.str to NULL. (exp_bigintop): New function. (new_rel): Pass in "str", and set new.str from it. (new_rel_from_section): Set new.str to NULL. (fold_name): Adjust calls to new_rel. (exp_fold_tree): Likewise. (exp_get_fill): New function. * ldgram.y (struct big_int bigint, fill_type *fill): New. (INT): Returns a "bigint". Adjust all code handling INTs. (fill_opt): Returns a "fill". (fill_exp): Split out of fill_opt, use for FILL. * ldlang.h (struct _fill_type): New. (fill_type): Move typedef to ldexp.h. (lang_output_section_statement_type): "fill" is now a pointer. (lang_fill_statement_type): Likewise. (lang_padding_statement_type): Likewise. (lang_add_fill): Now takes a "fill_type *" param. (lang_leave_output_section_statement): Likewise. (lang_do_assignments): Likewise. (lang_size_sections): Likewise. (lang_leave_overlay_section): Likewise. (lang_leave_overlay): Likewise. * ldlang.c: Include ldgram.h after ldexp.h. (lang_output_section_statement_lookup): Adjust for fill_type change. (print_fill_statement): Likewise. (print_padding_statement): Likewise. (insert_pad): Now takes a "fill_type *" arg. (size_input_section): Likewise. (lang_size_sections_1): Likewise. (lang_size_sections): Likewise. (lang_do_assignments): Likewise. (lang_add_fill): Likewise. (lang_leave_output_section_statement): Likewise. (lang_leave_overlay_section): Likewise. (lang_leave_overlay): Likewise. Adjust all callers of the above function. * ldlex.l: Include ldgram.h after ldexp.h. Allow hex numbers starting with "0X" as well as "0x". Return bigint.str for hex numbers starting with "0x" or "0X", zero bigint.str otherwise. Always use base 16 for numbers starting with "$". * ldmain.c: Include ldgram.h after ldexp.h. * ldwrite.c (build_link_order): Use bfd_data_link_order in place of bfd_fill_link_order. * pe-dll.c: Adjust lang_do_assignments calls. * emultempl/elf32.em: Likewise. * emultempl/hppaelf.em: Likewise. * emultempl/ppc64elf.em: Likewise. * emultempl/beos.em: Include ldgram.h after ldexp.h, adjust lang_add_assignment call. * emultempl/pe.em: Likewise.
2001-10-19* pe-dll.c (autofilter_objectlist): Add gcrt0.o.DJ Delorie1-5/+6
(auto-export): Fix indentation.
2001-10-19* pe-dll.c (autofilter_objectlist): Add startup objectsDJ Delorie1-6/+8
for profiling. (auto-export): Constify char * p. Extract file basename and use strcmp rather than ststr for object lookup.
2001-10-11* pe-dll.c (autofilter_entry_type autofilter_liblist: AddDJ Delorie1-0/+2
startup files for mingw32 dlls to list.
2001-09-24Fix thinkoNick Clifton1-1/+1
2001-09-24Remove spurious prototype.Nick Clifton1-4/+0
2001-09-24oops - omitted from previous deltaNick Clifton1-2/+4
2001-09-24Define and use pe_get_data_import_dll_name().Nick Clifton1-3/+6
2001-09-19Locale changes from Bruno Haible <haible@clisp.cons.org>.H.J. Lu1-4/+4
2001-09-18 * deffilep.y (def_stash_module): Constify "name" param.Alan Modra1-22/+24
* pe-dll.c: Replace CONST with const throughout. (quick_symbol): Constify "n1", "n2", "n3" params. (make_singleton_name_thunk): Constify "import" param. Make "buffer_len" a size_t. (make_import_fixup_entry): Constify "name", "fixup_name", "dll_symname" params. (pe_get16): Cast args of bfd_seek. Replace bfd_read with bfd_bread. (pe_get32): Likewise. (pe_implied_import_dll): Likewise. * emultempl/beos.em (sort_by_file_name): Constify "ra", "rb". (sort_by_section_name): Likewise. * emultempl/pe.em: Move defines for arm_epoc_pe before bfd.h included. (make_import_fixup): Cast printf arg, rel->address to long rather than int. (gld_${EMULATION_NAME}_after_open): Don't compare NULL against int.
2001-09-14Fix memory leakNick Clifton1-394/+430
2001-09-122001-09-12 Paul Sokolovsky <Paul.Sokolovsky@technologist.com>Charles Wilson1-5/+5
* emultempl/pe.em(make_import_fixup): change signature to take asection as well as arelec; we need this for proper error reporting. Only call pe_create_import_fixup() if there is no attempt to add a constant addend to the reloc; otherwise, report error condition. * pe-dll.c(pe_walk_relocs_of_symbol): change signature, since final argument is a pointer to make_import_fixup(). Change call to cb() to match make_import_fixup() signature. (make_import_fixup_mark): make buffer_len unsigned. * pe-dll.h: change signature of pe_walk_relocs_of_symbol. 2001-09-12 Charles Wilson <cwilson@ece.gatech.edu> * ld.texinfo: add verbose documentation for auto-import direct-addressing workaround, to compliment the terse error message.
2001-08-21 * deffilep.y: Add missing prototypes.Andreas Jaeger1-1/+25
* pe-dll.c: Likewise.
2001-08-20 * pe-dll.c (pe_dll_fill_sections): Correct type of "relax" paramAlan Modra1-2/+2
passed to lang_size_sections. (pe_exe_fill_sections): Likewise. * emultempl/pe.em (output_prev_sec_find): Copied from elf32.em. (gld_${EMULATION_NAME}_place_orphan): Merge from elf32.em.
2001-08-022001-08-02 Charles Wilson <cwilson@ece.gatech.edu>Charles Wilson1-23/+487
* ldmain.c (main): initialize link_info.pei386_auto_import * pe-dll.c: new tables for auto-export filtering (auto_export): change API, pass abfd for contextual filtering. Loop thru tables of excluded symbols instead of comparing "by hand". 2001-08-02 Paul Sokolovsky <paul.sokolovsky@technologist.com> * pe-dll.c: new variable pe_dll_enable_extra_debug. New static variable current_sec (static struct sec *). Add forward declaration for add_bfd_to_link. (process_def_file): Don't export undefined symbols. Do not export symbols starting with "_imp__". Call auto_export() with new API. (pe_walk_relocs_of_symbol): New function. (generate_reloc): add optional extra debugging (pe_dll_generate_def_file): eliminate extraneous initial blank line in output (make_one): enlarge symtab to make room for __nm__ symbols (DATA auto-import support). (make_singleton_name_thunk): New function. (make_import_fixup_mark): New function. (make_import_fixup_entry): New function. (pe_create_import_fixup): New function. (add_bfd_to_link): Specify that 'name' argument is a CONST char *. * pe-dll.h: declare new variable pe_dll_extra_pe_debug; declare new functions pe_walk_relocs_of_symbol and pe_create_import_fixup. * emultempl/pe.em: add new options --enable-auto-import, --disable-auto-import, and --enable-extra-pe-debug. (make_import_fixup): New function. (pe_find_data_imports): New function. (pr_sym): New function. (gld_${EMULATION_NAME}_after_open): Add optional extra pe debugging. Call pe_find_data_imports. Mark .idata as DATA, not CODE. 2001-08-02 Charles Wilson <cwilson@ece.gatech.edu> * ld.texinfo: add additional documentation for --export-all-symbols. Document --out-implib, --enable-auto-image-base, --disable-auto-image-base, --dll-search-prefix, --enable-auto-import, and --disable-auto-import. * ldint.texinfo: Add detailed documentation on auto-import implementation.
2001-03-13Fixtypos in ChangeLogs, fix copyright dates in filesNick Clifton1-1/+1
2000-10-10* pe-dll.c (make_one): Do not generate code thunk for DATADJ Delorie1-21/+29
exports. (process_def_file): deduce DATA flag for auto-export sumbols.
2000-10-092000-10-09 Kazu Hirata <kazu@hxi.com>Kazu Hirata1-6/+6
* pe-dll.c: Revert some formatting fixes.
2000-10-092000-10-09 Kazu Hirata <kazu@hxi.com>Kazu Hirata1-39/+39
* pe-dll.c: Fix formatting.
2000-10-092000-10-08 Kazu Hirata <kazu@hxi.com>Kazu Hirata1-51/+51
* pe-dll.c: Fix formatting.
2000-10-03* pe-dll.c (fill_edata): initialize entire blockDJ Delorie1-4/+4
(make_one): fill in correct section.
2000-10-02* emultempl/pe.em (gld_*_after_open): detect case where there twoDJ Delorie1-3/+3
import libraries for same dll; rename one to ensure proper link order. * pe-dll.c (process_def_file): compare ordinals to -1, not 0; fix typo (generate_edata): fix typo
2000-09-292000-09-29 Kazu Hirata <kazu@hxi.com>Kazu Hirata1-17/+17
* deffile.h: Fix formatting. * ld.h: Likewise. * ldctor.h: Likewise. * ldemul.h: Likewise. * ldexp.h: Likewise. * ldfile.h: Likewise. * ldlang.h: Likewise. * lexsup.c: Likewise. * mri.c: Likewise. * pe-dll.c: Likewise.
2000-09-28* pe-dll.c (process_def_file): Uninitialized data wasn'tDJ Delorie1-5/+10
exported with --export-all-symbols switch. * pe-dll.c (fill_edata): rearrange the data so that ordinals and noname work properly.
2000-07-19* pe-dll.c (pe_dll_id_target): check object target name alsoDJ Delorie1-1/+2
2000-07-17* pe-dll.c (process_def_file): auto-export data items alsoDJ Delorie1-3/+9
(pe_process_import_defs): also see if _imp_ form needed
2000-07-13* pe-dll.c (make_one): fix a typo in the __imp_ name decorationDJ Delorie1-1/+1
for dll import libraries
2000-07-11Remove some forward declarations in ldemul.h and ldfile.h, andAlan Modra1-0/+1
re-arrange header include order. Fix shadowing warnings in ldlang.h Fix compile errors in mpw-elfmips.c
2000-03-01Fix building with --enable-targets=all.Nick Clifton1-9/+6
2000-02-24Add support for WinCE based toolchains.Nick Clifton1-4/+96
2000-01-04Applied Mumit Kha's patch to tweak dll production code.Nick Clifton1-8/+14
2000-01-04Added year 2000 copyright noticeNick Clifton1-1/+1
2000-01-04Apply patch from Mumit Khan to fix bugs generating dll names.Nick Clifton1-8/+1
1999-09-29* pe-dll.c (process_def_file): Move the offset lookup from here toDJ Delorie1-3/+51
(fill_exported_offsets): here. New static function. (fill_edata): Use.
1999-09-28* deffilep.y (tokens): Add upper and lower case versions of DATA,DJ Delorie1-1/+2
CONSTANT, NONAME and PRIVATE tokens. (command): Use DATAU. (expline): Allow for drectve syntax as well. (exp_opt_list): Likewise. (exp_opt): Likewise. * pe-dll.c (make_one): Only generate the idata entries for data symbols.
1999-09-12 * pe-dll.h: New file.Ian Lance Taylor1-12/+13
* pe-dll.c: Include "pe-dll.h". Mark unused arguments as needed to avoid warnings. (edata_sz, reloc_sz): Change from int to size_t. (pe_details_type): Change type of imagebase_reloc from int to unsigned int. (pe_detail_list): Fully initialize last entry. (pe_dll_id_target): Change parameter to const. (pe_dll_generate_def_file): Likewise. (pe_dll_generate_implib): Likewise. (pe_implied_import_dll): Likewise. Change dll_name to const. * emultempl/pe.em: Include "pe-dll.h". Remove declarations now in pe-dll.h. (init): Fully initialize __dll__ entry. (gld_${EMULATION_NAME}_after_open): Remove unused variables sequence, elt, and i. * deffile.h: Add preprocessor guard. * deffilep.y (def_debug): Remove. * Makefile.am: Rebuild dependencies. (HFILES): Add pe-dll.h.
1999-05-111999-05-10 DJ Delorie <dj@cygnus.com>DJ Delorie1-52/+187
* scripttempl/pe.sc: Specify the output arch, which Ian says is the Right Thing to do. * emultempl/pe.em: various changes to parameterize the target-specific information. (gld_i386pe_after_open): Detect and fix MS import libraries by renaming the member objects (which are all named the same). * pe-dll.c: various changes to parameterize the target-specific information. (generate_reloc): support relocs more generically to allow for expansion. (pe_exe_build_sections): new; used to add .relocs to .exes (pe_exe_fill_sections): ditto
1999-05-0319990502 sourceware importbinu_ss_19990502Richard Henderson1-0/+1651