[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] msvc: don't try to export import descriptors.
From: |
Peter Rosin |
Subject: |
[PATCH] msvc: don't try to export import descriptors. |
Date: |
Fri, 24 Sep 2010 00:39:13 +0200 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2 |
Hi!
With the patch posted with subject: [PATCH] tests: import variables for MSVC.
I found that libtool tries to put some bad symbols in the generated
symbol lookup table leading to errors such as this:
libtool: link: (cd .libs && /home/peda/automake/lib/compile cl -MD -Zi -EHsc -c
"helldl.exeS.c")
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
helldl.exeS.c
helldl.exeS.c(25) : error C2143: syntax error : missing '{' before '-'
helldl.exeS.c(25) : error C2059: syntax error : '-'
helldl.exeS.c(39) : error C2065: '_IMPORT_DESCRIPTOR_hello' : undeclared
identifier
helldl.exeS.c(39) : error C2036: 'void *' : unknown size
make: *** [helldl.exe] Error 2
This patch fixes those problems. No regressions otherwise.
Ok to push?
Cheers,
Peter
>From b36c46a667443d4bacd99281f23f44fff1add44e Mon Sep 17 00:00:00 2001
From: Peter Rosin <address@hidden>
Date: Thu, 23 Sep 2010 23:02:42 +0200
Subject: [PATCH] msvc: don't try to export import descriptors.
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin, mingw]
[pw32, cegcc] <cl*, exclude_expsyms>: Don't export symbols in
import libraries related to describing what dll(s) the import
library is importing. Fixes problem in tests/demo-make.test
and some other tests.
Signed-off-by: Peter Rosin <address@hidden>
---
ChangeLog | 9 +++++++++
libltdl/m4/libtool.m4 | 5 ++++-
2 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 647c151..b5f183d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-09-23 Peter Rosin <address@hidden>
+
+ msvc: don't try to export import descriptors.
+ * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) [cygwin, mingw]
+ [pw32, cegcc] <cl*, exclude_expsyms>: Don't export symbols in
+ import libraries related to describing what dll(s) the import
+ library is importing. Fixes problem in tests/demo-make.test
+ and some other tests.
+
2010-09-22 Ralf Wildenhues <address@hidden>
Fix regression in command-line length computation.
diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index 6aebb63..ce33bfe 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -4492,7 +4492,9 @@ m4_if([$1], [CXX], [
;;
cygwin* | mingw* | cegcc*)
case $cc_basename in
- cl*) ;;
+ cl*)
+ _LT_TAGVAR(exclude_expsyms,
$1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*|_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*']
+ ;;
*)
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience |
$global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1
DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[
]]/s/.* //'\'' | sort | uniq > $export_symbols'
_LT_TAGVAR(exclude_expsyms,
$1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
@@ -5064,6 +5066,7 @@ _LT_EOF
# The linker will not automatically build a static lib if we build a
DLL.
# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(exclude_expsyms,
$1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*|_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*']
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience |
$global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^
]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq
> $export_symbols'
# Don't use ranlib
_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
--
1.7.1
- [PATCH] msvc: don't try to export import descriptors.,
Peter Rosin <=