summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2017-11-23 12:07:24 +0000
committerNick Clifton <nickc@redhat.com>2017-11-23 12:07:24 +0000
commit9d9c67b06c1bf4c4550e3de0eb575c2bfbe96df9 (patch)
tree32010e8c80768beeaa608d28f2ae90c8fa000bba
parent65f3ed048fa0741e874c7aa372f9ddba153a2949 (diff)
downloadbinutils-gdb-9d9c67b06c1bf4c4550e3de0eb575c2bfbe96df9.tar.gz
Add libmsvcrt, libmsvcrt-os and libucrtbase to the list of libraries for which the automatic generation of exported variables should be disabled.
In the latest git version of mingw-w64, one can set the default libmsvcrt.a to actually be the import library of another CRT version, to facilitate switching to ucrtbase.dll. In these versions, the traditional libmsvcrt.a (for linking to msvcrt.dll) is also provided with the name libmsvcrt-os.a. The import libraries for the CRT also contain a number of compatibility wrapper functions. The ones in libmsvcrt.a have so far been excluded automatically since they in most cases come with a corresponding __imp_foo function. None of these make sense to export automatically from a DLL though, so add these libraries to the exclude list. libucrtbase.a contains a number of compatibility wrapper functions that don't have a corresponding __imp_foo symbol, which cause these symbols to be exported from DLLs. This can be worked around on the mingw-w64 side by adding extra __imp_ symbols, but since they aren't strictly necessary for linking to succeed, it's probably better long-term to add these libraries to the exclusion list. ld * pe-dll.c (autofilter_liblist): Add libmsvcrt, libmsvcrt-os and libucrtbase.
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/pe-dll.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 6ec3260765a..8638f7a10e0 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2017-11-23 Martin Storsjo <martin@martin.st>
+
+ * pe-dll.c (autofilter_liblist): Add libmsvcrt, libmsvcrt-os and
+ libucrtbase.
+
2017-11-23 Jan Beulich <jbeulich@suse.com>
PR gas/22441
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index aee7b9dacbf..d916766ea0b 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -344,6 +344,9 @@ static const autofilter_entry_type autofilter_liblist[] =
{ STRING_COMMA_LEN ("libsupc++") },
{ STRING_COMMA_LEN ("libobjc") },
{ STRING_COMMA_LEN ("libgcj") },
+ { STRING_COMMA_LEN ("libmsvcrt") },
+ { STRING_COMMA_LEN ("libmsvcrt-os") },
+ { STRING_COMMA_LEN ("libucrtbase") },
{ NULL, 0 }
};