diff options
Diffstat (limited to 'libssp/configure.ac')
-rw-r--r-- | libssp/configure.ac | 47 |
1 files changed, 27 insertions, 20 deletions
diff --git a/libssp/configure.ac b/libssp/configure.ac index ee48f4db16d..0eee36ce014 100644 --- a/libssp/configure.ac +++ b/libssp/configure.ac @@ -72,35 +72,42 @@ if test x$ssp_hidden = xyes; then fi AC_MSG_CHECKING([whether symbol versioning is supported]) -if test x$gcc_no_link = xyes; then - # If we cannot link, we cannot build shared libraries, so do not use - # symbol versioning. - ssp_use_symver=no -else - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map" - cat > conftest.map <<EOF +AC_ARG_ENABLE(symvers, +AS_HELP_STRING([--disable-symvers], + [disable symbol versioning for libssp]), +ssp_use_symver=$enableval, +ssp_use_symver=yes) +if test "x$ssp_use_symver" = xyes; then + if test x$gcc_no_link = xyes; then + # If we cannot link, we cannot build shared libraries, so do not use + # symbol versioning. + ssp_use_symver=no + else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map" + cat > conftest.map <<EOF FOO_1.0 { global: *foo*; bar; local: *; }; EOF - AC_TRY_LINK([int foo;],[],[ssp_use_symver=gnu],[ssp_use_symver=no]) - if test x$ssp_use_symver = xno; then - case "$target_os" in - solaris2*) - LDFLAGS="$save_LDFLAGS" - LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map" - # Sun ld cannot handle wildcards and treats all entries as undefined. - cat > conftest.map <<EOF + AC_TRY_LINK([int foo;],[],[ssp_use_symver=gnu],[ssp_use_symver=no]) + if test x$ssp_use_symver = xno; then + case "$target_os" in + solaris2*) + LDFLAGS="$save_LDFLAGS" + LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map" + # Sun ld cannot handle wildcards and treats all entries as undefined. + cat > conftest.map <<EOF FOO_1.0 { global: foo; local: *; }; EOF - AC_TRY_LINK([int foo;],[],[ssp_use_symver=sun],[ssp_use_symver=no]) - ;; - esac + AC_TRY_LINK([int foo;],[],[ssp_use_symver=sun],[ssp_use_symver=no]) + ;; + esac + fi + LDFLAGS="$save_LDFLAGS" fi - LDFLAGS="$save_LDFLAGS" fi AC_MSG_RESULT($ssp_use_symver) AM_CONDITIONAL(LIBSSP_USE_SYMVER, [test "x$ssp_use_symver" != xno]) |