diff options
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/ld.texinfo | 13 | ||||
-rw-r--r-- | ld/pe-dll.c | 4 |
3 files changed, 20 insertions, 4 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 2e92129..9d4edc9 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2004-01-20 Danny Smith <dannysmith@users.sourceforge.net> + + * pe-dll.c (pe_create_import_fixup): Clear WP_TEXT flag. + * ld.texinfo (--omagic): Note that writable text section + does not conform to published PE-COFF specs. + (--enable-auto-import): Likewise. + 2004-01-15 Alan Modra <amodra@bigpond.net.au> * emulparams/elf32ppc.sh (COMMONPAGESIZE): Define. diff --git a/ld/ld.texinfo b/ld/ld.texinfo index f0faa8e..ed7b3d1 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -687,7 +687,9 @@ Turn off page alignment of sections, and mark the output as Set the text and data sections to be readable and writable. Also, do not page-align the data segment, and disable linking against shared libraries. If the output format supports Unix style magic numbers, -mark the output as @code{OMAGIC}. +mark the output as @code{OMAGIC}. Note: Although a writable text section +is allowed for PE-COFF targets, it does not conform to the format +specification published by Microsoft. @kindex --no-omagic @cindex OMAGIC @@ -1950,8 +1952,13 @@ uwin, pw, etc. For instance, cygwin DLLs typically use @item --enable-auto-import Do sophisticated linking of @code{_symbol} to @code{__imp__symbol} for DATA imports from DLLs, and create the necessary thunking symbols when -building the import libraries with those DATA exports. This generally -will 'just work' -- but sometimes you may see this message: +building the import libraries with those DATA exports. Note: Use of the +'auto-import' extension will cause the text section of the image file +to be made writable. This does not conform to the PE-COFF format +specification published by Microsoft. + +Using 'auto-import' generally will 'just work' -- but sometimes you may +see this message: "variable '<var>' can't be auto-imported. Please read the documentation for ld's @code{--enable-auto-import} for details." diff --git a/ld/pe-dll.c b/ld/pe-dll.c index 0542ace..ce3f443 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -1,5 +1,6 @@ /* Routines to help build PEI-format DLLs (Win32 etc) - Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Free Software Foundation, Inc. Written by DJ Delorie <dj@cygnus.com> This file is part of GLD, the Gnu Linker. @@ -2176,6 +2177,7 @@ pe_create_import_fixup (arelent *rel, asection *s, int addend) /* If we ever use autoimport, we have to cast text section writable. */ config.text_read_only = FALSE; + output_bfd->flags &= ~WP_TEXT; } if (addend == 0 || link_info.pei386_runtime_pseudo_reloc) |