Summary: | [sparc32] wrong bits/long-double.h installed | ||
---|---|---|---|
Product: | glibc | Reporter: | Joseph Myers <jsm28> |
Component: | math | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | jeremip11 |
Priority: | P2 | Flags: | fweimer:
security-
|
Version: | 2.26 | ||
Target Milestone: | 2.27 | ||
Host: | sparc*-*-linux* | Target: | |
Build: | Last reconfirmed: |
Description
Joseph Myers
2017-08-22 00:20:46 UTC
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, master has been updated via 75dfe623df945db7dd3c12a206d743c45c16b5ed (commit) from ea99fcd03875caf59ceda354ec8ed813bb5a5f79 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=75dfe623df945db7dd3c12a206d743c45c16b5ed commit 75dfe623df945db7dd3c12a206d743c45c16b5ed Author: Joseph Myers <joseph@codesourcery.com> Date: Tue Aug 22 00:30:51 2017 +0000 Fix position of tests-unsupported definition in assert/Makefile. tests-unsupported has to be defined before the inclusion of Rules in a subdirectory Makefile; otherwise it is ineffective. This patch fixes the ordering in assert/Makefile, where a recent test addition put tests-unsupported too late (resulting in build failures when the C++ compiler was missing or broken, and thereby showing up the unrelated bug 21987). Incidentally, I don't see why these tests depend on $(have-cxx-thread_local) rather than just a working C++ compiler. Tested in such a configuration (broken compiler/libstdc++) with build-many-glibcs.py. * assert/Makefile [$(have-cxx-thread_local)]: Move conditional variable definitions above inclusion of ../Rules. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ assert/Makefile | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, master has been updated via 80f91666fed71fa3dd5eb5618739147cc731bc89 (commit) from 75dfe623df945db7dd3c12a206d743c45c16b5ed (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=80f91666fed71fa3dd5eb5618739147cc731bc89 commit 80f91666fed71fa3dd5eb5618739147cc731bc89 Author: Joseph Myers <joseph@codesourcery.com> Date: Tue Aug 22 00:59:43 2017 +0000 Fix sparc32 bits/long-double.h (bug 21987). My refactoring of long double information commit 0acb8a2a855395c25b1feef2470f4d7ca4bed589 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. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 8 ++++++++ .../linux/sparc/{ => sparc32}/bits/long-double.h | 0 .../linux/sparc/{ => sparc64}/bits/long-double.h | 0 3 files changed, 8 insertions(+), 0 deletions(-) copy sysdeps/unix/sysv/linux/sparc/{ => sparc32}/bits/long-double.h (100%) rename sysdeps/unix/sysv/linux/sparc/{ => sparc64}/bits/long-double.h (100%) Fixed for 2.27. This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.26/master has been updated via 947e2e0a9410c18eb44144456c7fe8e7c0e2a999 (commit) from 58270c0049404ef2f878fdd45df55f17f0b8c1f7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=947e2e0a9410c18eb44144456c7fe8e7c0e2a999 commit 947e2e0a9410c18eb44144456c7fe8e7c0e2a999 Author: Joseph Myers <joseph@codesourcery.com> Date: Tue Aug 22 00:30:51 2017 +0000 Fix position of tests-unsupported definition in assert/Makefile. tests-unsupported has to be defined before the inclusion of Rules in a subdirectory Makefile; otherwise it is ineffective. This patch fixes the ordering in assert/Makefile, where a recent test addition put tests-unsupported too late (resulting in build failures when the C++ compiler was missing or broken, and thereby showing up the unrelated bug 21987). Incidentally, I don't see why these tests depend on $(have-cxx-thread_local) rather than just a working C++ compiler. Tested in such a configuration (broken compiler/libstdc++) with build-many-glibcs.py. * assert/Makefile [$(have-cxx-thread_local)]: Move conditional variable definitions above inclusion of ../Rules. (cherry picked from commit 75dfe623df945db7dd3c12a206d743c45c16b5ed) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ assert/Makefile | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.26/master has been updated via 3f68c5c9b61600f0f85c75bac15b1520d5059359 (commit) from fdf58ebc60ce0eb459fd616241b52872b3571ac1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3f68c5c9b61600f0f85c75bac15b1520d5059359 commit 3f68c5c9b61600f0f85c75bac15b1520d5059359 Author: Joseph Myers <joseph@codesourcery.com> Date: Tue Aug 22 00:59:43 2017 +0000 Fix sparc32 bits/long-double.h (bug 21987). My refactoring of long double information commit 0acb8a2a855395c25b1feef2470f4d7ca4bed589 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. (cherry picked from commit 80f91666fed71fa3dd5eb5618739147cc731bc89) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 10 ++++++++++ .../linux/sparc/{ => sparc32}/bits/long-double.h | 0 .../linux/sparc/{ => sparc64}/bits/long-double.h | 0 3 files changed, 10 insertions(+), 0 deletions(-) copy sysdeps/unix/sysv/linux/sparc/{ => sparc32}/bits/long-double.h (100%) rename sysdeps/unix/sysv/linux/sparc/{ => sparc64}/bits/long-double.h (100%) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.25/master has been updated via ac93084c086ff06f815c405c9eb36a2b1f02da6a (commit) from b64e0298661a084d8aab6756b08dbced515449d8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ac93084c086ff06f815c405c9eb36a2b1f02da6a commit ac93084c086ff06f815c405c9eb36a2b1f02da6a Author: Joseph Myers <joseph@codesourcery.com> Date: Tue Aug 22 00:59:43 2017 +0000 Fix sparc32 bits/long-double.h (bug 21987). My refactoring of long double information commit 0acb8a2a855395c25b1feef2470f4d7ca4bed589 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. (cherry picked from commit 80f91666fed71fa3dd5eb5618739147cc731bc89) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 10 ++++++++++ .../linux/sparc/{ => sparc32}/bits/long-double.h | 0 .../linux/sparc/{ => sparc64}/bits/long-double.h | 0 3 files changed, 10 insertions(+), 0 deletions(-) copy sysdeps/unix/sysv/linux/sparc/{ => sparc32}/bits/long-double.h (100%) rename sysdeps/unix/sysv/linux/sparc/{ => sparc64}/bits/long-double.h (100%) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, master has been updated via 37bb78cb8c1fb6b5813407c8856b1557359e6343 (commit) from d74e6f6c0de55fc588b1ac09c88eb0fb8b8600af (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=37bb78cb8c1fb6b5813407c8856b1557359e6343 commit 37bb78cb8c1fb6b5813407c8856b1557359e6343 Author: Joseph Myers <joseph@codesourcery.com> Date: Thu Oct 19 17:32:20 2017 +0000 Install correct bits/long-double.h for MIPS64 (bug 22322). Similar to bug 21987 for SPARC, MIPS64 wrongly installs the ldbl-128 version of bits/long-double.h, meaning incorrect results when using headers installed from a 64-bit installation for a 32-bit build. (I haven't actually seen this cause build failures before its interaction with bits/floatn.h did so - installed headers wrongly expecting _Float128 to be available in a 32-bit configuration.) This patch fixes the bug by moving the MIPS header to sysdeps/mips/ieee754, which comes before sysdeps/ieee754/ldbl-128 in the sysdeps directory ordering. (bits/floatn.h will need a similar fix - duplicating the ldbl-128 version for MIPS will suffice - for headers from a 32-bit installation to be correct for 64-bit builds.) Tested with build-many-glibcs.py (compilers build for mips64-linux-gnu, where there was previously a libstdc++ build failure as at <https://sourceware.org/ml/libc-testresults/2017-q4/msg00130.html>). [BZ #22322] * sysdeps/mips/bits/long-double.h: Move to .... * sysdeps/mips/ieee754/bits/long-double.h: ... here. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 ++++++ sysdeps/mips/{ => ieee754}/bits/long-double.h | 0 2 files changed, 6 insertions(+), 0 deletions(-) rename sysdeps/mips/{ => ieee754}/bits/long-double.h (100%) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.26/master has been updated via 04acd597943e90147e4bc139911564788e04ae51 (commit) from b1b8d8aa95a055dc7929259679a995189d444809 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=04acd597943e90147e4bc139911564788e04ae51 commit 04acd597943e90147e4bc139911564788e04ae51 Author: Joseph Myers <joseph@codesourcery.com> Date: Thu Oct 19 17:32:20 2017 +0000 Install correct bits/long-double.h for MIPS64 (bug 22322). Similar to bug 21987 for SPARC, MIPS64 wrongly installs the ldbl-128 version of bits/long-double.h, meaning incorrect results when using headers installed from a 64-bit installation for a 32-bit build. (I haven't actually seen this cause build failures before its interaction with bits/floatn.h did so - installed headers wrongly expecting _Float128 to be available in a 32-bit configuration.) This patch fixes the bug by moving the MIPS header to sysdeps/mips/ieee754, which comes before sysdeps/ieee754/ldbl-128 in the sysdeps directory ordering. (bits/floatn.h will need a similar fix - duplicating the ldbl-128 version for MIPS will suffice - for headers from a 32-bit installation to be correct for 64-bit builds.) Tested with build-many-glibcs.py (compilers build for mips64-linux-gnu, where there was previously a libstdc++ build failure as at <https://sourceware.org/ml/libc-testresults/2017-q4/msg00130.html>). [BZ #22322] * sysdeps/mips/bits/long-double.h: Move to .... * sysdeps/mips/ieee754/bits/long-double.h: ... here. (cherry picked from commit 37bb78cb8c1fb6b5813407c8856b1557359e6343) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 ++++++ NEWS | 1 + sysdeps/mips/{ => ieee754}/bits/long-double.h | 0 3 files changed, 7 insertions(+), 0 deletions(-) rename sysdeps/mips/{ => ieee754}/bits/long-double.h (100%) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.25/master has been updated via 0fc015b6db6a1591d2beecb98362f5de175a077f (commit) from 61bebc863e65afd994b08353f574c5df3fe8accc (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0fc015b6db6a1591d2beecb98362f5de175a077f commit 0fc015b6db6a1591d2beecb98362f5de175a077f Author: Joseph Myers <joseph@codesourcery.com> Date: Thu Oct 19 17:32:20 2017 +0000 Install correct bits/long-double.h for MIPS64 (bug 22322). Similar to bug 21987 for SPARC, MIPS64 wrongly installs the ldbl-128 version of bits/long-double.h, meaning incorrect results when using headers installed from a 64-bit installation for a 32-bit build. (I haven't actually seen this cause build failures before its interaction with bits/floatn.h did so - installed headers wrongly expecting _Float128 to be available in a 32-bit configuration.) This patch fixes the bug by moving the MIPS header to sysdeps/mips/ieee754, which comes before sysdeps/ieee754/ldbl-128 in the sysdeps directory ordering. (bits/floatn.h will need a similar fix - duplicating the ldbl-128 version for MIPS will suffice - for headers from a 32-bit installation to be correct for 64-bit builds.) Tested with build-many-glibcs.py (compilers build for mips64-linux-gnu, where there was previously a libstdc++ build failure as at <https://sourceware.org/ml/libc-testresults/2017-q4/msg00130.html>). [BZ #22322] * sysdeps/mips/bits/long-double.h: Move to .... * sysdeps/mips/ieee754/bits/long-double.h: ... here. (cherry picked from commit 37bb78cb8c1fb6b5813407c8856b1557359e6343) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 6 ++++++ NEWS | 1 + sysdeps/mips/{ => ieee754}/bits/long-double.h | 0 3 files changed, 7 insertions(+), 0 deletions(-) rename sysdeps/mips/{ => ieee754}/bits/long-double.h (100%) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, release/2.25/master has been updated via d11bdaa1f114872e94c7a08f0beefac31b60c75d (commit) from fc7ef00f02ee41452245926a4f7ff2073711db33 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d11bdaa1f114872e94c7a08f0beefac31b60c75d commit d11bdaa1f114872e94c7a08f0beefac31b60c75d Author: Joseph Myers <joseph@codesourcery.com> Date: Tue Aug 22 00:30:51 2017 +0000 Fix position of tests-unsupported definition in assert/Makefile. tests-unsupported has to be defined before the inclusion of Rules in a subdirectory Makefile; otherwise it is ineffective. This patch fixes the ordering in assert/Makefile, where a recent test addition put tests-unsupported too late (resulting in build failures when the C++ compiler was missing or broken, and thereby showing up the unrelated bug 21987). Incidentally, I don't see why these tests depend on $(have-cxx-thread_local) rather than just a working C++ compiler. Tested in such a configuration (broken compiler/libstdc++) with build-many-glibcs.py. * assert/Makefile [$(have-cxx-thread_local)]: Move conditional variable definitions above inclusion of ../Rules. (cherry picked from commit 75dfe623df945db7dd3c12a206d743c45c16b5ed) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 +++++ assert/Makefile | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) |