summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Smith <dannysmith@users.sourceforge.net>2004-01-20 21:08:16 +0000
committerDanny Smith <dannysmith@users.sourceforge.net>2004-01-20 21:08:16 +0000
commit4d8907ac12142818530c77b52d39d50bcf9931c5 (patch)
treef2f11e9c97c70f9fb38112af1e886f5dce4983cb
parent66bed356fcb5fcae7a2af096b919b99218c28543 (diff)
downloadbinutils-gdb-4d8907ac12142818530c77b52d39d50bcf9931c5.tar.gz
* 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.
-rw-r--r--ld/ChangeLog7
-rw-r--r--ld/ld.texinfo13
-rw-r--r--ld/pe-dll.c4
3 files changed, 20 insertions, 4 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 2e921297d15..9d4edc90a05 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 f0faa8e9322..ed7b3d1f6aa 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 0542ace5792..ce3f443d550 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)