about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-09-12 12:25:36 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-09-12 12:25:36 +0000
commit73a391126d500653bf3cd4c0f67826e75ecc95bf (patch)
tree544f4e5e887a0b95c074dd938b0725dc4d0b4c3f
parentc729e7c13a7bc5ddec6fcaf82712aeff530e0d78 (diff)
downloadglibc-73a391126d500653bf3cd4c0f67826e75ecc95bf.tar.gz
glibc-73a391126d500653bf3cd4c0f67826e75ecc95bf.tar.xz
glibc-73a391126d500653bf3cd4c0f67826e75ecc95bf.zip
Use %ifdef in sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions.
This patch makes
sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions use %ifdef
conditionals around the different symbol version definitions for big
and little endian.  (It doesn't actually change the host patterns used
for those definitions; the point is to make it possible to remove the
first column from shlib-versions by eliminating the last case where it
would be harmful for it to be treated as .*-.*-.*.)  The conditional
is based on the ELFv1/ELFv2 distinction rather than BE/LE, since
that's what's already tested in configure and used for the ld.so
soname in the Makefiles.  (Of course if BE ELFv2 were supported in
future, it would get new symbol versions and so need new
conditionals.)

	* sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac
	(HAVE_ELFV2_ABI): AC_DEFINE in ELFv2 case.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/configure:
	Regenerated.
	* config.h.in (HAVE_ELFV2_ABI): New macro undefine.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions:
	Condition symbol version definitions on [HAVE_ELFV2_ABI].
-rw-r--r--ChangeLog8
-rw-r--r--config.h.in3
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/configure3
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions7
5 files changed, 21 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index fdbe22feec..fbd013b39c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
 
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac
+	(HAVE_ELFV2_ABI): AC_DEFINE in ELFv2 case.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/configure:
+	Regenerated.
+	* config.h.in (HAVE_ELFV2_ABI): New macro undefine.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions:
+	Condition symbol version definitions on [HAVE_ELFV2_ABI].
+
 	* shlib-versions: Remove OS-specific entries.  Moved to files in
 	sysdeps.
 	* sysdeps/mach/hurd/shlib-versions: New file.
diff --git a/config.h.in b/config.h.in
index 7da1a9f6f8..fcbe8ad808 100644
--- a/config.h.in
+++ b/config.h.in
@@ -257,4 +257,7 @@
 /* Define if using the IEEE 754-2008 NaN encoding on the MIPS target.  */
 #undef HAVE_MIPS_NAN2008
 
+/* The PowerPC64 ELFv2 ABI is being used.  */
+#undef HAVE_ELFV2_ABI
+
 #endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure
index aa1302ab11..eb46415e2d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure
@@ -173,6 +173,9 @@ $as_echo "$libc_cv_ppc64_elfv2_abi" >&6; }
 if test $libc_cv_ppc64_elfv2_abi = yes; then
   config_vars="$config_vars
 default-abi = 64-v2"
+  # For shlib-versions.
+  $as_echo "#define HAVE_ELFV2_ABI 1" >>confdefs.h
+
 else
   config_vars="$config_vars
 default-abi = 64-v1"
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac
index de04689536..0822915c43 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac
@@ -12,6 +12,8 @@ AC_CACHE_CHECK([whether the compiler is using the PowerPC64 ELFv2 ABI],
   ], libc_cv_ppc64_elfv2_abi=yes, libc_cv_ppc64_elfv2_abi=no)])
 if test $libc_cv_ppc64_elfv2_abi = yes; then
   LIBC_CONFIG_VAR([default-abi], [64-v2])
+  # For shlib-versions.
+  AC_DEFINE(HAVE_ELFV2_ABI)
 else
   LIBC_CONFIG_VAR([default-abi], [64-v1])
   # Compiler that do not support ELFv2 ABI does not define _CALL_ELF
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
index f6480238c5..1febda46d0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
@@ -1,4 +1,7 @@
-powerpc64-.*-linux.*	DEFAULT			GLIBC_2.3
+%ifdef HAVE_ELFV2_ABI
 powerpc.*le-.*-linux.*	DEFAULT			GLIBC_2.17
-powerpc64-.*-linux.*	libpthread=0		GLIBC_2.3
 powerpc.*le-.*-linux.*	libpthread=0		GLIBC_2.17
+%else
+powerpc64-.*-linux.*	DEFAULT			GLIBC_2.3
+powerpc64-.*-linux.*	libpthread=0		GLIBC_2.3
+%endif