mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
Fix sparc32 bits/long-double.h (bug 21987).
My refactoring of long double information
commit 0acb8a2a85
Author: Joseph Myers <joseph@codesourcery.com>
Date: Wed Dec 14 18:27:56 2016 +0000
Refactor long double information into bits/long-double.h.
resulted in sparc32 configurations installing the ldbl-opt version of
bits/long-double.h instead of the intended
sysdeps/unix/sysv/linux/sparc version.
For sparc32 by itself, this is not a problem, since the ldbl-opt
version is correct for sparc32. However, both sparc32 and sparc64 are
supposed to install sets of headers that work for both of them, so
that a single sysroot, whichever order the libraries are built and
installed in, works for both. The effect of having the wrong version
installed is that you end up with a miscompiled sparc64 libstdc++
which fails glibc's configure tests for the C++ compiler.
This patch moves the header from sysdeps/unix/sysv/linux/sparc to
separate copies of the same file for sparc32 and sparc64, to ensure it
comes before ldbl-opt in the sysdeps directory ordering.
Tested with build-many-glibcs.py for sparc64-linux-gnu and
sparcv9-linux-gnu.
[BZ #21987]
* sysdeps/unix/sysv/linux/sparc/bits/long-double.h: Remove file
and copy to ...
* sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h:
... here.
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h:
... and here.
This commit is contained in:
parent
75dfe623df
commit
80f91666fe
@ -1,5 +1,13 @@
|
||||
2017-08-22 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #21987]
|
||||
* sysdeps/unix/sysv/linux/sparc/bits/long-double.h: Remove file
|
||||
and copy to ...
|
||||
* sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h:
|
||||
... here.
|
||||
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h:
|
||||
... and here.
|
||||
|
||||
* assert/Makefile [$(have-cxx-thread_local)]: Move conditional
|
||||
variable definitions above inclusion of ../Rules.
|
||||
|
||||
|
26
sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h
Normal file
26
sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h
Normal file
@ -0,0 +1,26 @@
|
||||
/* Properties of long double type. SPARC version.
|
||||
Copyright (C) 2016-2017 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#if !defined __NO_LONG_DOUBLE_MATH && __WORDSIZE == 32
|
||||
# define __LONG_DOUBLE_MATH_OPTIONAL 1
|
||||
# ifndef __LONG_DOUBLE_128__
|
||||
# define __NO_LONG_DOUBLE_MATH 1
|
||||
# endif
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user