aboutsummaryrefslogtreecommitdiff
path: root/manual
diff options
context:
space:
mode:
authorPaul E. Murphy <murphyp@linux.vnet.ibm.com>2020-02-07 14:08:23 -0600
committerPaul E. Murphy <murphyp@linux.vnet.ibm.com>2020-04-30 08:52:08 -0500
commit50545f5aa0111c1e7f8917348490907d1a1e1f9b (patch)
tree69f10aa5ec7f6c8ea2188aec952d7c2907873274 /manual
parente2239af353b053b9c645e396b13bce8688f9d615 (diff)
downloadglibc-50545f5aa0111c1e7f8917348490907d1a1e1f9b.zip
glibc-50545f5aa0111c1e7f8917348490907d1a1e1f9b.tar.gz
glibc-50545f5aa0111c1e7f8917348490907d1a1e1f9b.tar.bz2
powerpc64le: raise GCC requirement to 7.4 for long double transition
Add compiler feature tests to ensure we can build ieee128 long double. These test for -mabi=ieeelongdouble, -mno-gnu-attribute, and -Wno-psabi. Likewise, verify some compiler bugs have been addressed. These aren't helpful for building glibc, but may cause test failures when testing the new long double. See notes below from Raji. On powerpc64le, some older compiler versions give error for the function signbit() for 128-bit floating point types. This is fixed by PR83862 in gcc 8.0 and backported to gcc6 and gcc7. This patch adds a test to check compiler version to avoid compiler errors during make check. Likewise, test for -mno-gnu-attribute support which was On powerpc64le, a few files are built on IEEE long double mode (-mabi=ieeelongdouble), whereas most are built on IBM long double mode (-mabi=ibmlongdouble, the default for -mlong-double-128). Since binutils 2.31, linking object files with different long double modes causes errors similar to: ld: libc_pic.a(s_isinfl.os) uses IBM long double, libc_pic.a(ieee128-qefgcvt.os) uses IEEE long double. collect2: error: ld returned 1 exit status make[2]: *** [../Makerules:649: libc_pic.os] Error 1 The warnings are fair and correct, but in order for glibc to have support for both long double modes on powerpc64le, they have to be ignored. This can be accomplished with the use of -mno-gnu-attribute option when building the few files that require IEEE long double mode. However, -mno-gnu-attribute is not available in GCC 6, the minimum version required to build glibc, so this patch adds a test for this feature in powerpc64le builds, and fails early if it's not available. Co-Authored-By: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> Co-Authored-By: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com> Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Diffstat (limited to 'manual')
-rw-r--r--manual/install.texi5
1 files changed, 5 insertions, 0 deletions
diff --git a/manual/install.texi b/manual/install.texi
index 71bf47c..34fe754 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -507,6 +507,11 @@ the newest version of the compiler that is known to work for building
release time, GCC 9.2.1 is the newest compiler verified to work to build
@theglibc{}.
+For PowerPC 64-bits little-endian (powerpc64le), a GCC version with support
+for @option{-mno-gnu-attribute}, @option{-mabi=ieeelongdouble}, and
+@option{-mabi=ibmlondouble} is required. These additional features are
+required for building the GNU C Library with support for IEEE long double.
+
For multi-arch support it is recommended to use a GCC which has been built with
support for GNU indirect functions. This ensures that correct debugging
information is generated for functions selected by IFUNC resolvers. This