Message ID | 1510819247-6466-1-git-send-email-martin@martin.st |
---|---|
State | Committed |
Commit | bad7ce1d82f0b7da55086b8c6124eff0d35a1b1a |
Headers | show |
On 11/16/2017 5:00 AM, Martin Storsjö wrote: > This avoids having to use either "dumpbin -headers" to find out > the current architecture, or pass $ARCH from configure to deduce it. > > When configuring with --disable-asm, ARCH is equal to "c", which doesn't > give any indication of what symbol prefix is to be used. > --- > compat/windows/makedef | 28 +--------------------------- > configure | 5 +++-- > 2 files changed, 4 insertions(+), 29 deletions(-) > > diff --git a/compat/windows/makedef b/compat/windows/makedef > index 0cd169c..7258b94 100755 > --- a/compat/windows/makedef > +++ b/compat/windows/makedef > @@ -58,33 +58,7 @@ fi > IFS=' > ' > > -# Determine if we're building for x86 or x86_64 and > -# set the symbol prefix accordingly. > -prefix="" > -if [ -n "$NM" ]; then > - case $ARCH in > - *86) > - prefix="_" > - ;; > - *) > - ;; > - esac > -else > - arch=$(dumpbin -headers ${libname} | > - tr '\t' ' ' | > - grep '^ \+.\+machine \+(.\+)' | > - head -1 | > - sed -e 's/^ \{1,\}.\{1,\} \{1,\}machine \{1,\}(\(.\{3,5\}\)).*/\1/') > - > - if [ "${arch}" = "x86" ]; then > - prefix="_" > - else > - if [ "${arch}" != "ARM" ] && [ "${arch}" != "x64" ] && [ "${arch}" != "ARM64" ]; then > - echo "Unknown machine type." >&2 > - exit 1 > - fi > - fi > -fi > +prefix="$EXTERN_PREFIX" > > started=0 > regex="none" > diff --git a/configure b/configure > index 3bad7fb..fcffbce 100755 > --- a/configure > +++ b/configure > @@ -3898,7 +3898,7 @@ case $target_os in > SLIB_INSTALL_LINKS= > SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)' > SLIB_INSTALL_EXTRA_LIB='lib$(SLIBNAME:$(SLIBSUF)=.dll.a) $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)' > - SLIB_CREATE_DEF_CMD='ARCH="$(ARCH)" AR="$(AR_CMD)" NM="$(NM_CMD)" $(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' > + SLIB_CREATE_DEF_CMD='EXTERN_PREFIX="$(EXTERN_PREFIX)" AR="$(AR_CMD)" NM="$(NM_CMD)" $(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' > SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-auto-image-base $$(@:$(SLIBSUF)=.def)' > enabled x86_64 && objformat="win64" || objformat="win32" > ranlib=: > @@ -3918,7 +3918,7 @@ case $target_os in > SLIBSUF=".dll" > SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' > SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)' > - SLIB_CREATE_DEF_CMD='$(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' > + SLIB_CREATE_DEF_CMD='EXTERN_PREFIX="$(EXTERN_PREFIX)" $(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' > SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' > SLIB_INSTALL_LINKS= > SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)' > @@ -5210,6 +5210,7 @@ SRC_PATH=$source_path > CC_IDENT=$cc_ident > ARCH=$arch > INTRINSICS=$intrinsics > +EXTERN_PREFIX=$extern_prefix > CC=$cc > AS=$as > OBJCC=$objcc LGTM.
diff --git a/compat/windows/makedef b/compat/windows/makedef index 0cd169c..7258b94 100755 --- a/compat/windows/makedef +++ b/compat/windows/makedef @@ -58,33 +58,7 @@ fi IFS=' ' -# Determine if we're building for x86 or x86_64 and -# set the symbol prefix accordingly. -prefix="" -if [ -n "$NM" ]; then - case $ARCH in - *86) - prefix="_" - ;; - *) - ;; - esac -else - arch=$(dumpbin -headers ${libname} | - tr '\t' ' ' | - grep '^ \+.\+machine \+(.\+)' | - head -1 | - sed -e 's/^ \{1,\}.\{1,\} \{1,\}machine \{1,\}(\(.\{3,5\}\)).*/\1/') - - if [ "${arch}" = "x86" ]; then - prefix="_" - else - if [ "${arch}" != "ARM" ] && [ "${arch}" != "x64" ] && [ "${arch}" != "ARM64" ]; then - echo "Unknown machine type." >&2 - exit 1 - fi - fi -fi +prefix="$EXTERN_PREFIX" started=0 regex="none" diff --git a/configure b/configure index 3bad7fb..fcffbce 100755 --- a/configure +++ b/configure @@ -3898,7 +3898,7 @@ case $target_os in SLIB_INSTALL_LINKS= SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)' SLIB_INSTALL_EXTRA_LIB='lib$(SLIBNAME:$(SLIBSUF)=.dll.a) $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)' - SLIB_CREATE_DEF_CMD='ARCH="$(ARCH)" AR="$(AR_CMD)" NM="$(NM_CMD)" $(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' + SLIB_CREATE_DEF_CMD='EXTERN_PREFIX="$(EXTERN_PREFIX)" AR="$(AR_CMD)" NM="$(NM_CMD)" $(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-auto-image-base $$(@:$(SLIBSUF)=.def)' enabled x86_64 && objformat="win64" || objformat="win32" ranlib=: @@ -3918,7 +3918,7 @@ case $target_os in SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)' - SLIB_CREATE_DEF_CMD='$(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' + SLIB_CREATE_DEF_CMD='EXTERN_PREFIX="$(EXTERN_PREFIX)" $(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS= SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)' @@ -5210,6 +5210,7 @@ SRC_PATH=$source_path CC_IDENT=$cc_ident ARCH=$arch INTRINSICS=$intrinsics +EXTERN_PREFIX=$extern_prefix CC=$cc AS=$as OBJCC=$objcc