summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authordevzero2000 <devzero2000>2011-06-16 13:53:42 +0000
committerdevzero2000 <devzero2000>2011-06-16 13:53:42 +0000
commit900f159e40e6002f9d041a66eacebd717112d082 (patch)
treee9de34d1b0b82e2e926e5a0724e91e63beb1783a /configure.ac
parentd3c23f2fa5c595db2c64a9f6421800415a6ad3b3 (diff)
downloadlibpopt-900f159e40e6002f9d041a66eacebd717112d082.tar.gz
redo the autofu vendor-script linker script check for openindiana native
ld, using modern and not deprecated autoconf construct. Even if the check is not perfect but it is based on a resultant ld warningi, on openindiana the result actually work with gcc and native ld. This patch also fix the build on openindiana broken by the precedent patch.
Diffstat (limited to 'configure.ac')
-rwxr-xr-xconfigure.ac65
1 files changed, 32 insertions, 33 deletions
diff --git a/configure.ac b/configure.ac
index c643c5c..fcd2831 100755
--- a/configure.ac
+++ b/configure.ac
@@ -245,6 +245,7 @@ AC_CHECK_FUNCS([getuid geteuid iconv mtrace __secure_getenv setregid stpcpy stre
# drop AC_FUNC_MALLOC, REALLOC and STRTOD
AC_CHECK_FUNCS([malloc realloc strtod memset nl_langinfo stpcpy strchr strerror strrchr])
+dnl check for version script support in the linker (GNU ld, or Solaris ld style)
AC_ARG_ENABLE([ld-version-script],
AS_HELP_STRING([--enable-ld-version-script],[enable/disable use of linker version script.
(default is system dependent)]),
@@ -253,53 +254,51 @@ AC_ARG_ENABLE([ld-version-script],
AS_IF([test "x$have_ld_version_script" = xyes],
[
- dnl check for version script support in the linker (GNU ld, or Solaris ld style)
- AC_CACHE_CHECK([for ld --version-script], [popt_cv_ld_version_script], [dnl
- cat > conftest.c <<EOF
-void cl_symbol1(void) {}
-void cli_symbol2(void) {}
-EOF
- cat > conftest.map <<EOF
+ AC_MSG_CHECKING([if ld version-script works - GNU ld, Solaris ld])
+ cat > conftest.map <<EOF
RELEASE
{
global:
- cl_*;
+ popt_*;
local:
*;
};
PRIVATE
{
global:
- cli_*;
+ popti_*;
local:
*;
};
EOF
- dnl check for GNU ld style linker version script
- if AC_TRY_COMMAND([${CC-cc} $CFLAGS $pic_flag $LDFLAGS -shared
- -o conftest.so conftest.c
- -Wl,--version-script,conftest.map
- 1>&AS_MESSAGE_LOG_FD]);
- then
- LD_VERSION_SCRIPT_FLAG=--version-script
- popt_cv_ld_version_script=yes
- else
- dnl check for Solaris ld style linker version script
- if AC_TRY_COMMAND([${CC-cc} $CFLAGS $pic_flag $LDFLAGS -shared
- -o conftest.so conftest.c
- -Wl,-M,conftest.map
- 1>&AS_MESSAGE_LOG_FD]);
- then
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+ void popt_symbol1(void) {}
+ void popti_symbol2(void) {}
+ ]], [])],
+ [have_ld_version_script=yes], [have_ld_version_script=no])
+ LDFLAGS="$save_LDFLAGS"
+ if test x$have_ld_version_script != xyes
+ then
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,-M,conftest.map"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+ void popt_symbol1(void) {}
+ void popti_symbol2(void) {}
+ ]], [])],
+ [have_ld_version_script=yes], [have_ld_version_script=no])
+ LDFLAGS="$save_LDFLAGS"
+ if test x$have_ld_version_script = xyes
+ then
LD_VERSION_SCRIPT_FLAG=-M
- popt_cv_ld_version_script=yes;
- else
- popt_cv_ld_version_script=no
- fi
- fi
- have_ld_version_script=$popt_cv_ld_version_script
- rm -f conftest*])
- ])
-
+ fi
+ else
+ LD_VERSION_SCRIPT_FLAG=--version-script
+ fi
+ AC_MSG_RESULT($have_ld_version_script)
+ rm -f conftest.map conftest.c
+])
AC_SUBST([LD_VERSION_SCRIPT_FLAG])
AM_CONDITIONAL([HAVE_LD_VERSION_SCRIPT],[test "$have_ld_version_script" = "yes"])