diff options
author | Christopher Faylor <me+cygwin@cgf.cx> | 2004-07-03 16:07:51 +0000 |
---|---|---|
committer | Christopher Faylor <me+cygwin@cgf.cx> | 2004-07-03 16:07:51 +0000 |
commit | c87db184a7dd1e5542b807ae6d29db02b8ea0f5e (patch) | |
tree | 7b731760ae09b88e4dcdc976bc50a97c2d8478d5 /ld | |
parent | 3b91255ea0fa465d5c79abc774e6c7aec13ca513 (diff) | |
download | gdb-c87db184a7dd1e5542b807ae6d29db02b8ea0f5e.zip gdb-c87db184a7dd1e5542b807ae6d29db02b8ea0f5e.tar.gz gdb-c87db184a7dd1e5542b807ae6d29db02b8ea0f5e.tar.bz2 |
2004-07-04 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
* bfd/cofflink.c (_bfd_coff_generic_relocate_section): Resolve PE weak
externals properly.
* src/gas/config/obj-coff.c (obj_coff_weak): New .weak syntax for PE weak
externals.
* binutils/doc/binutils.texi (nm): Clarify weak symbol description.
* gas/config/tc-i386.c (tc_gen_reloc): Use addend for weak symbols in TE_PE.
* gas/doc/as.texinfo (Weak): Document PE weak symbols.
* ld/ld.texinfo (WIN32): Document PE weak symbols.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 4 | ||||
-rw-r--r-- | ld/ld.texinfo | 18 |
2 files changed, 22 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 8aad633..c957555 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,7 @@ +2004-07-03 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com> + + * ld.texinfo (WIN32): Document PE weak symbols. + 2004-07-02 Kaz Kojima <kkojima@rr.iij4u.or.jp> * emulparams/shlelf32_linux.sh (COMMONPAGESIZE): Set to 4KB. diff --git a/ld/ld.texinfo b/ld/ld.texinfo index c6002da..2b77260 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -5292,6 +5292,24 @@ to handle the other symbols, then the both the new names @emph{and} the original names for the renamed symbols will be exported. In effect, you'd be aliasing those symbols, not renaming them, which is probably not what you wanted. + +@cindex weak externals +@item weak externals +The Windows object format, PE, specifies a form of weak symbols called +weak externals. When a weak symbol is linked and the symbol is not +defined, the weak symbol becomes an alias for some other symbol. There +are three variants of weak externals: +@itemize +@item Definition is searched for in objects and libraries, historically +called lazy externals. +@item Definition is searched for only in other objects, not in libraries. +This form is not presently implemented. +@item No search; the symbol is an alias. This form is not presently +implemented. +@end itemize +As a GNU extension, weak symbols that do not specify an alternate symbol +are supported. If the symbol is undefined when linking, the symbol +uses a default value. @end table @ifclear GENERIC |