From patchwork Tue Sep 9 17:19:27 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 2708 Received: (qmail 3021 invoked by alias); 9 Sep 2014 17:19:41 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 3005 invoked by uid 89); 9 Sep 2014 17:19:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Date: Tue, 9 Sep 2014 17:19:27 +0000 From: "Joseph S. Myers" To: CC: Adhemerval Zanella Subject: Use %ifdef in sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions Message-ID: MIME-Version: 1.0 This patch, relative to a tree with and (pending review) applied, 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.) Not tested; this needs testing for both BE and LE that it produces binaries with the expected symbol versions. 2014-09-09 Joseph Myers * 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]. diff --git a/config.h.in b/config.h.in index 7da1a9f..ed26221 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 aa1302a..eb46415 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 de04689..0822915 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 f648023..1febda4 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