From 66371c2851348cfbf0940370b7f6772aa304d8e6 Mon Sep 17 00:00:00 2001 From: Mans Rullgard Date: Fri, 30 Nov 2012 21:58:42 +0000 Subject: [PATCH 1/2] configure: arm: detect default thumb state of compiler This makes configure honour the compiler default if thumb is not explicitly enabled or disabled. Signed-off-by: Mans Rullgard --- configure | 1 + 1 file changed, 1 insertion(+) diff --git a/configure b/configure index 8cd5696c80..fd94bc0dfc 100755 --- a/configure +++ b/configure @@ -3092,6 +3092,7 @@ if enabled alpha; then elif enabled arm; then + check_cpp_condition stddef.h "defined __thumb__" && enable_weak thumb enabled thumb && check_cflags -mthumb || check_cflags -marm nogas=die From eb7018d2fcd4a665a8c2b65e1c73c3fe9f7ca356 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Sat, 17 Nov 2012 16:34:54 +0200 Subject: [PATCH 2/2] configure: Strip ordinals from mingw generated def files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The def files are used for generating import libraries for other toolchains (in particular, for generating import libraries for MSVC for DLLs built with mingw). The def files produced by mingw/gcc contains ordinals for each exported function. When MSVC tools generate import libraries from such a def file, MSVC links to the DLL by the ordinals instead of linking by name. Since the def files aren't maintained by hand, the ordinal numbers are assigned (more or less) randomly and any caller linking to the libs by ordinals will break as soon as the libraries export more/fewer functions. Therefore, strip out the ordinals from the generated def files, to make users link to the libraries by name. Callers linking to the DLLs using the gcc provided import library link by name as they should. Signed-off-by: Martin Storsjö --- configure | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index fd94bc0dfc..8161eac1fe 100755 --- a/configure +++ b/configure @@ -2826,12 +2826,12 @@ case $target_os in SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' - SLIB_EXTRA_CMD=-'$(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)' + SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); $(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS= SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)' SLIB_INSTALL_EXTRA_LIB='lib$(SLIBNAME:$(SLIBSUF)=.dll.a) $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)' - SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' + SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.orig.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' objformat="win32" dlltool="${cross_prefix}dlltool" ranlib=: