diff options
author | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-02 10:15:09 +0000 |
---|---|---|
committer | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-02 10:15:09 +0000 |
commit | f28c8d0d31eba663fa44eadff55559b95a56ea61 (patch) | |
tree | 68173ee2d5bd4b1b5fc1a277f153743209eb7dda /libssp/configure.ac | |
parent | fbb7f7a8b40767af09d7ab0e745aa160595a7f0c (diff) | |
download | gcc-f28c8d0d31eba663fa44eadff55559b95a56ea61.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161699 138bc75d-0d04-0410-961f-82ee72b054a4
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]) |