diff options
author | devzero2000 <devzero2000> | 2011-06-16 13:53:42 +0000 |
---|---|---|
committer | devzero2000 <devzero2000> | 2011-06-16 13:53:42 +0000 |
commit | 900f159e40e6002f9d041a66eacebd717112d082 (patch) | |
tree | e9de34d1b0b82e2e926e5a0724e91e63beb1783a /configure.ac | |
parent | d3c23f2fa5c595db2c64a9f6421800415a6ad3b3 (diff) | |
download | libpopt-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-x | configure.ac | 65 |
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"]) |