aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorChristopher Faylor <me+cygwin@cgf.cx>2004-07-03 16:07:51 +0000
committerChristopher Faylor <me+cygwin@cgf.cx>2004-07-03 16:07:51 +0000
commitc87db184a7dd1e5542b807ae6d29db02b8ea0f5e (patch)
tree7b731760ae09b88e4dcdc976bc50a97c2d8478d5 /ld
parent3b91255ea0fa465d5c79abc774e6c7aec13ca513 (diff)
downloadfsf-binutils-gdb-c87db184a7dd1e5542b807ae6d29db02b8ea0f5e.zip
fsf-binutils-gdb-c87db184a7dd1e5542b807ae6d29db02b8ea0f5e.tar.gz
fsf-binutils-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/ChangeLog4
-rw-r--r--ld/ld.texinfo18
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