don't use version script under cygwin/mingw32, it's useless and breaks the link after latest autoconf-2.60-related bakefile 0.2.1 changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
141
acinclude.m4
141
acinclude.m4
@@ -404,7 +404,7 @@ dnl this macro checks for a command line argument and caches the result
|
|||||||
dnl usage: WX_ARG_WITH(option, helpmessage, variable-name, [withstring])
|
dnl usage: WX_ARG_WITH(option, helpmessage, variable-name, [withstring])
|
||||||
AC_DEFUN([WX_ARG_WITH],
|
AC_DEFUN([WX_ARG_WITH],
|
||||||
[
|
[
|
||||||
withstring=$4
|
withstring=$4
|
||||||
AC_MSG_CHECKING([for --${withstring:-with}-$1])
|
AC_MSG_CHECKING([for --${withstring:-with}-$1])
|
||||||
no_cache=0
|
no_cache=0
|
||||||
AC_ARG_WITH($1, [$2],
|
AC_ARG_WITH($1, [$2],
|
||||||
@@ -446,7 +446,7 @@ dnl message when running configure instead of the default "checking for
|
|||||||
dnl --enable-foo" one whih is useful for the options enabled by default
|
dnl --enable-foo" one whih is useful for the options enabled by default
|
||||||
AC_DEFUN([WX_ARG_ENABLE],
|
AC_DEFUN([WX_ARG_ENABLE],
|
||||||
[
|
[
|
||||||
enablestring=$4
|
enablestring=$4
|
||||||
AC_MSG_CHECKING([for --${enablestring:-enable}-$1])
|
AC_MSG_CHECKING([for --${enablestring:-enable}-$1])
|
||||||
no_cache=0
|
no_cache=0
|
||||||
AC_ARG_ENABLE($1, [$2],
|
AC_ARG_ENABLE($1, [$2],
|
||||||
@@ -535,81 +535,80 @@ dnl call WX_VERSIONED_SYMBOLS(versionfile)
|
|||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
AC_DEFUN([WX_VERSIONED_SYMBOLS],
|
AC_DEFUN([WX_VERSIONED_SYMBOLS],
|
||||||
[
|
[
|
||||||
found_versioning=no
|
case "${host}" in
|
||||||
|
*-*-cygwin* | *-*-mingw* )
|
||||||
|
dnl although ld does support version script option on these
|
||||||
|
dnl platforms, it doesn't make much sense to use it under Win32
|
||||||
|
dnl and, moreover, this breaks linking because of a bug in handling
|
||||||
|
dnl paths in -Wl,--version-script,path option (if we ever do need
|
||||||
|
dnl to use it for cygwin/mingw32, keep in mind that replacing last
|
||||||
|
dnl comma with the equal sign works) so
|
||||||
|
dnl simply disable it
|
||||||
|
found_versioning=no
|
||||||
|
;;
|
||||||
|
|
||||||
dnl FIXME - doesn't work, Solaris linker doesn't accept wildcards
|
*)
|
||||||
dnl in the script.
|
AC_CACHE_CHECK([if the linker accepts --version-script], wx_cv_version_script,
|
||||||
dnl dnl Check for known non-gcc cases:
|
[
|
||||||
dnl case "${host}" in
|
echo "VER_1 { *; };" >conftest.sym
|
||||||
dnl *-*-solaris2* )
|
echo "int main() { return 0; }" >conftest.cpp
|
||||||
dnl if test "x$GCC" != "xyes" ; then
|
|
||||||
dnl LDFLAGS_VERSIONING="-M $1"
|
|
||||||
dnl found_versioning=yes
|
|
||||||
dnl fi
|
|
||||||
dnl ;;
|
|
||||||
dnl esac
|
|
||||||
|
|
||||||
dnl Generic check for GCC or GCC-like behaviour (Intel C++, GCC):
|
if AC_TRY_COMMAND([
|
||||||
if test $found_versioning = no ; then
|
$CXX -o conftest.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
|
||||||
AC_CACHE_CHECK([if the linker accepts --version-script], wx_cv_version_script,
|
-Wl,--version-script,conftest.sym >/dev/null 2>conftest.stderr]) ; then
|
||||||
[
|
if test -s conftest.stderr ; then
|
||||||
echo "VER_1 { *; };" >conftest.sym
|
wx_cv_version_script=no
|
||||||
echo "int main() { return 0; }" >conftest.cpp
|
else
|
||||||
|
wx_cv_version_script=yes
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
wx_cv_version_script=no
|
||||||
|
fi
|
||||||
|
|
||||||
if AC_TRY_COMMAND([
|
dnl There's a problem in some old linkers with --version-script that
|
||||||
$CXX -o conftest.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
|
dnl can cause linking to fail when you have objects with vtables in
|
||||||
-Wl,--version-script,conftest.sym >/dev/null 2>conftest.stderr]) ; then
|
dnl libs 3 deep. This is known to happen in netbsd and openbsd with
|
||||||
if test -s conftest.stderr ; then
|
dnl ld 2.11.2.
|
||||||
wx_cv_version_script=no
|
dnl
|
||||||
else
|
dnl To test for this we need to make some shared libs and
|
||||||
wx_cv_version_script=yes
|
dnl unfortunately we can't be sure of the right way to do that. If the
|
||||||
fi
|
dnl first two compiles don't succeed then it looks like the test isn't
|
||||||
else
|
dnl working and the result is ignored, but if OTOH the first two
|
||||||
wx_cv_version_script=no
|
dnl succeed but the third does not then the bug has been detected and
|
||||||
fi
|
dnl the --version-script flag is dropped.
|
||||||
|
if test $wx_cv_version_script = yes
|
||||||
|
then
|
||||||
|
echo "struct B { virtual ~B() { } }; \
|
||||||
|
struct D : public B { }; \
|
||||||
|
void F() { D d; }" > conftest.cpp
|
||||||
|
|
||||||
dnl There's a problem in some old linkers with --version-script that
|
if AC_TRY_COMMAND([
|
||||||
dnl can cause linking to fail when you have objects with vtables in
|
$CXX -shared -fPIC -o conftest1.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
|
||||||
dnl libs 3 deep. This is known to happen in netbsd and openbsd with
|
-Wl,--version-script,conftest.sym >/dev/null 2>/dev/null]) &&
|
||||||
dnl ld 2.11.2.
|
AC_TRY_COMMAND([
|
||||||
dnl
|
$CXX -shared -fPIC -o conftest2.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
|
||||||
dnl To test for this we need to make some shared libs and
|
-Wl,--version-script,conftest.sym conftest1.output >/dev/null 2>/dev/null])
|
||||||
dnl unfortunately we can't be sure of the right way to do that. If the
|
then
|
||||||
dnl first two compiles don't succeed then it looks like the test isn't
|
if AC_TRY_COMMAND([
|
||||||
dnl working and the result is ignored, but if OTOH the first two
|
$CXX -shared -fPIC -o conftest3.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
|
||||||
dnl succeed but the third does not then the bug has been detected and
|
-Wl,--version-script,conftest.sym conftest2.output conftest1.output >/dev/null 2>/dev/null])
|
||||||
dnl the --version-script flag is dropped.
|
then
|
||||||
if test $wx_cv_version_script = yes
|
wx_cv_version_script=yes
|
||||||
then
|
else
|
||||||
echo "struct B { virtual ~B() { } }; \
|
wx_cv_version_script=no
|
||||||
struct D : public B { }; \
|
fi
|
||||||
void F() { D d; }" > conftest.cpp
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if AC_TRY_COMMAND([
|
rm -f conftest.output conftest.stderr conftest.sym conftest.cpp
|
||||||
$CXX -shared -fPIC -o conftest1.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
|
rm -f conftest1.output conftest2.output conftest3.output
|
||||||
-Wl,--version-script,conftest.sym >/dev/null 2>/dev/null]) &&
|
])
|
||||||
AC_TRY_COMMAND([
|
|
||||||
$CXX -shared -fPIC -o conftest2.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
|
if test $wx_cv_version_script = yes ; then
|
||||||
-Wl,--version-script,conftest.sym conftest1.output >/dev/null 2>/dev/null])
|
LDFLAGS_VERSIONING="-Wl,--version-script,$1"
|
||||||
then
|
|
||||||
if AC_TRY_COMMAND([
|
|
||||||
$CXX -shared -fPIC -o conftest3.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
|
|
||||||
-Wl,--version-script,conftest.sym conftest2.output conftest1.output >/dev/null 2>/dev/null])
|
|
||||||
then
|
|
||||||
wx_cv_version_script=yes
|
|
||||||
else
|
|
||||||
wx_cv_version_script=no
|
|
||||||
fi
|
fi
|
||||||
fi
|
;;
|
||||||
fi
|
esac
|
||||||
|
|
||||||
rm -f conftest.output conftest.stderr conftest.sym conftest.cpp
|
|
||||||
rm -f conftest1.output conftest2.output conftest3.output
|
|
||||||
])
|
|
||||||
if test $wx_cv_version_script = yes ; then
|
|
||||||
LDFLAGS_VERSIONING="-Wl,--version-script,$1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -82,6 +82,10 @@ All:
|
|||||||
|
|
||||||
- wxArrayString::Alloc() now works as reserve() and doesn't clear array contents
|
- wxArrayString::Alloc() now works as reserve() and doesn't clear array contents
|
||||||
|
|
||||||
|
wxMSW:
|
||||||
|
|
||||||
|
- Fixed version script problems when using configure with cygwin/mingw32
|
||||||
|
|
||||||
2.7.2
|
2.7.2
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user