summaryrefslogtreecommitdiff
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
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.
-rw-r--r--CHANGES5
-rw-r--r--Makefile.am6
-rwxr-xr-xconfigure.ac65
3 files changed, 40 insertions, 36 deletions
diff --git a/CHANGES b/CHANGES
index 1989e73..ae4cc64 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,9 @@
1.17 -> 2.0:
+ - devzero2000: 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.
- devzero2000: add missing README-prereq
- devzero2000: try to redo the bootstrap check better
- devzero2000: add configmake.h to .gitignore
diff --git a/Makefile.am b/Makefile.am
index 4e7ea7e..37d19bb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -70,8 +70,8 @@ CLEANFILES = configmake.h configmake.h-t
## end configmake
EXTRA_DIST = lookup3.c autogen.sh CHANGES \
- footer_no_timestamp.html libpopt.vers README-prereq\
- $(TESTS) test-poptrc\
+ footer_no_timestamp.html libpopt.vers README-prereq \
+ $(TESTS) test-poptrc \
popt.xcodeproj/project.pbxproj \
popt.ps Doxyfile test3-data/01.answer \
test3-data/01.input \
@@ -120,7 +120,7 @@ usrlibdir = $(libdir)
usrlib_LTLIBRARIES = libpopt.la
libpopt_la_SOURCES = popt.c poptparse.c poptconfig.c popthelp.c poptint.c
-libpopt_la_LDFLAGS = -no-undefined @LTLIBINTL@ @LTLIBICONV@ $(AM_LDFLAGS)
+libpopt_la_LDFLAGS = -no-undefined $(AM_LDFLAGS)
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = popt.pc
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"])