diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2010-07-02 10:15:09 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2010-07-02 10:15:09 +0000 |
commit | ca6d1176f717cfb0ba3e0ea1a930aa3d33905a9e (patch) | |
tree | 68173ee2d5bd4b1b5fc1a277f153743209eb7dda /libssp/configure.ac | |
parent | baf7c318bbcad3acee65f8400c34665b9345f09a (diff) |
configure.ac: Check for Sun symbol versioning.
* configure.ac: Check for Sun symbol versioning.
Check for memmove.
* configure: Regenerate.
* config.h.in: Regenerate.
* Makefile.am [LIBSSP_USE_SYMVER]: Protect version_arg,
version_dep with LIBSSP_USE_SYMVER_GNU.
[LIBSSP_USE_SYMVER_SUN]: Handle Sun symbol versioning.
* Makefile.in: Regenerate.
* ssp.map: Reformat.
* memmove-chk.c: Change guard to HAVE_MEMMOVE.
From-SVN: r161699
Diffstat (limited to 'libssp/configure.ac')
-rw-r--r-- | libssp/configure.ac | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/libssp/configure.ac b/libssp/configure.ac index 8192167a32d..005e3bd2260 100644 --- a/libssp/configure.ac +++ b/libssp/configure.ac @@ -72,23 +72,36 @@ if test x$ssp_hidden = xyes; then fi AC_MSG_CHECKING([whether symbol versioning is supported]) -cat > conftest.map <<EOF -FOO_1.0 { - global: *foo*; bar; local: *; -}; -EOF -save_LDFLAGS="$LDFLAGS" -LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map" 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 - AC_TRY_LINK([int foo;],[],[ssp_use_symver=yes],[ssp_use_symver=no]) + 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 + 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]) + fi + LDFLAGS="$save_LDFLAGS" fi -LDFLAGS="$save_LDFLAGS" AC_MSG_RESULT($ssp_use_symver) -AM_CONDITIONAL(LIBSSP_USE_SYMVER, [test "x$ssp_use_symver" = xyes]) +AM_CONDITIONAL(LIBSSP_USE_SYMVER, [test "x$ssp_use_symver" != xno]) +AM_CONDITIONAL(LIBSSP_USE_SYMVER_GNU, [test "x$ssp_use_symver" = xgnu]) +AM_CONDITIONAL(LIBSSP_USE_SYMVER_SUN, [test "x$ssp_use_symver" = xsun]) AC_CHECK_HEADERS(alloca.h malloc.h paths.h syslog.h string.h unistd.h fcntl.h stdio.h limits.h) @@ -98,7 +111,7 @@ if test x$gcc_no_link = xyes; then AC_DEFINE(HAVE_STRNCPY) AC_DEFINE(HAVE_STRNCAT) else - AC_CHECK_FUNCS(mempcpy strncpy strncat) + AC_CHECK_FUNCS(memmove mempcpy strncpy strncat) fi AC_MSG_CHECKING([whether vsnprintf is usable]) |