summaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2012-11-17 16:34:54 +0200
committerMartin Storsjö <martin@martin.st>2012-12-03 13:39:47 +0200
commiteb7018d2fcd4a665a8c2b65e1c73c3fe9f7ca356 (patch)
tree8d41d263c54984d4fd15a4111d4b74177bdbc84a /configure
parent66371c2851348cfbf0940370b7f6772aa304d8e6 (diff)
downloadffmpeg-streaming-eb7018d2fcd4a665a8c2b65e1c73c3fe9f7ca356.zip
ffmpeg-streaming-eb7018d2fcd4a665a8c2b65e1c73c3fe9f7ca356.tar.gz
configure: Strip ordinals from mingw generated def files
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ö <martin@martin.st>
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure4
1 files changed, 2 insertions, 2 deletions
diff --git a/configure b/configure
index fd94bc0..8161eac 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=:
OpenPOWER on IntegriCloud