From 4d8907ac12142818530c77b52d39d50bcf9931c5 Mon Sep 17 00:00:00 2001 From: Danny Smith Date: Tue, 20 Jan 2004 21:08:16 +0000 Subject: [PATCH] * 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. --- ld/ChangeLog | 7 +++++++ ld/ld.texinfo | 13 ++++++++++--- ld/pe-dll.c | 4 +++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 2e921297d1..9d4edc90a0 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2004-01-20 Danny Smith + + * 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 * emulparams/elf32ppc.sh (COMMONPAGESIZE): Define. diff --git a/ld/ld.texinfo b/ld/ld.texinfo index f0faa8e932..ed7b3d1f6a 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 '' 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 0542ace579..ce3f443d55 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 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) -- 2.34.1