mbox series

[v3,0/7] glibc: bump to 2.26

Message ID 20170923212414.16744-1-romain.naour@gmail.com
Headers show
Series glibc: bump to 2.26 | expand

Message

Romain Naour Sept. 23, 2017, 9:23 p.m. UTC
This series bump glibc to the latest release and allow to remove all
patches required for the previous version! But glibc come with some
new issue that are hopefully already fixed in the 2.26.x stable branch.

While testing this new version, some build issues has been dicovered.
Two gcc patch are needed to build a toolchain with older compiler
(gcc 4.9 to 6.4), gcc 7.2 contain already the fix.

Backport a series related to bug 21930 and 22146.
Without them the float128 support break the C++ build for some
packages.

https://sourceware.org/bugzilla/show_bug.cgi?id=21930
https://sourceware.org/bugzilla/show_bug.cgi?id=22146

This third series is for testing and review.
Let's hope that glibc 2.26.1 will be released soon :)

Best regards,
Romain

Romain Naour (7):
  package/gcc: fix build issue with glibc 2.26
  package/gcc: fix build issue with glibc 2.26
  package/glibc: needs kernel headers >= 3.10 on powerpc64le
  package/gcc: enable float128 on powerpc64le with glibc >= 2.26
    toolchains
  package/diffutils: disable getopt_long replacement with glibc
  package/flex: disable reallocarray
  package/glibc: bump to 2.26

 package/diffutils/diffutils.mk                     |   6 +
 package/flex/flex.mk                               |   3 +-
 ...t_t-not-struct-ucontext-in-linux-unwind.h.patch | 190 ++++++++++++
 package/gcc/4.9.4/944-sanitizer-linux.patch        |  88 ++++++
 ...t_t-not-struct-ucontext-in-linux-unwind.h.patch | 192 +++++++++++++
 package/gcc/5.4.0/944-sanitizer-linux.patch        |  91 ++++++
 ...t_t-not-struct-ucontext-in-linux-unwind.h.patch | 192 +++++++++++++
 package/gcc/6.4.0/943-sanitizer-linux.patch        |  91 ++++++
 package/gcc/Config.in.host                         |   4 +
 package/gcc/gcc.mk                                 |   8 +
 ...__builtin_types_compatible_p-in-C-mode-bu.patch |  50 ++++
 .../glibc/0001-sh-Fix-building-with-gcc5-6.patch   |  56 ----
 ...00366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch |  35 ---
 ...02-Do-not-use-generic-selection-in-C-mode.patch |  56 ++++
 ...-version-of-issignaling-that-does-not-use.patch | 225 +++++++++++++++
 ...ject-overly-long-LD_PRELOAD-path-elements.patch | 122 --------
 ...ersion-of-issignaling-when-__NO_LONG_DOUB.patch |  47 +++
 ...Reject-overly-long-LD_AUDIT-path-elements.patch | 204 -------------
 ...-version-of-iszero-that-does-not-use-__MA.patch | 210 ++++++++++++++
 package/glibc/0005-fix-binutils-2-29-build.patch   |  65 -----
 ...ify-use-the-builtin-when-optimizing-for-s.patch |  63 ++++
 ...g-IS_IN-libc-guards-to-vectorized-strcspn.patch |  47 ---
 package/glibc/0006-sh4-trap.patch                  | 318 ---------------------
 package/glibc/glibc.hash                           |   2 +-
 package/glibc/glibc.mk                             |   2 +-
 toolchain/toolchain-buildroot/Config.in            |   6 +
 26 files changed, 1523 insertions(+), 850 deletions(-)
 create mode 100644 package/gcc/4.9.4/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
 create mode 100644 package/gcc/4.9.4/944-sanitizer-linux.patch
 create mode 100644 package/gcc/5.4.0/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
 create mode 100644 package/gcc/5.4.0/944-sanitizer-linux.patch
 create mode 100644 package/gcc/6.4.0/942-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
 create mode 100644 package/gcc/6.4.0/943-sanitizer-linux.patch
 create mode 100644 package/glibc/0001-Do-not-use-__builtin_types_compatible_p-in-C-mode-bu.patch
 delete mode 100644 package/glibc/0001-sh-Fix-building-with-gcc5-6.patch
 delete mode 100644 package/glibc/0002-CVE-2017-1000366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch
 create mode 100644 package/glibc/0002-Do-not-use-generic-selection-in-C-mode.patch
 create mode 100644 package/glibc/0003-Provide-a-C-version-of-issignaling-that-does-not-use.patch
 delete mode 100644 package/glibc/0003-ld.so-Reject-overly-long-LD_PRELOAD-path-elements.patch
 create mode 100644 package/glibc/0004-Fix-the-C-version-of-issignaling-when-__NO_LONG_DOUB.patch
 delete mode 100644 package/glibc/0004-ld.so-Reject-overly-long-LD_AUDIT-path-elements.patch
 create mode 100644 package/glibc/0005-Provide-a-C-version-of-iszero-that-does-not-use-__MA.patch
 delete mode 100644 package/glibc/0005-fix-binutils-2-29-build.patch
 create mode 100644 package/glibc/0006-Let-fpclassify-use-the-builtin-when-optimizing-for-s.patch
 delete mode 100644 package/glibc/0006-i686-Add-missing-IS_IN-libc-guards-to-vectorized-strcspn.patch
 delete mode 100644 package/glibc/0006-sh4-trap.patch

Comments

Romain Naour Sept. 23, 2017, 9:24 p.m. UTC | #1
This series bump glibc to the latest release and allow to remove all
patches required for the previous version! But glibc come with some
new issue that are hopefully already fixed in the 2.26.x stable branch.

While testing this new version, some build issues has been dicovered.
Two gcc patch are needed to build a toolchain with older compiler
(gcc 4.9 to 6.4), gcc 7.2 contain already the fix.

Backport a series related to bug 21930 and 22146.
Without them the float128 support break the C++ build for some
packages.

https://sourceware.org/bugzilla/show_bug.cgi?id=21930
https://sourceware.org/bugzilla/show_bug.cgi?id=22146

This third series is for testing and review.
Let's hope that glibc 2.26.1 will be released soon :)

Best regards,
Romain

Romain Naour (7):
  package/gcc: fix build issue with glibc 2.26
  package/gcc: fix build issue with glibc 2.26
  package/glibc: needs kernel headers >= 3.10 on powerpc64le
  package/gcc: enable float128 on powerpc64le with glibc >= 2.26
    toolchains
  package/diffutils: disable getopt_long replacement with glibc
  package/flex: disable reallocarray
  package/glibc: bump to 2.26

 package/diffutils/diffutils.mk                     |   6 +
 package/flex/flex.mk                               |   3 +-
 ...t_t-not-struct-ucontext-in-linux-unwind.h.patch | 190 ++++++++++++
 package/gcc/4.9.4/944-sanitizer-linux.patch        |  88 ++++++
 ...t_t-not-struct-ucontext-in-linux-unwind.h.patch | 192 +++++++++++++
 package/gcc/5.4.0/944-sanitizer-linux.patch        |  91 ++++++
 ...t_t-not-struct-ucontext-in-linux-unwind.h.patch | 192 +++++++++++++
 package/gcc/6.4.0/943-sanitizer-linux.patch        |  91 ++++++
 package/gcc/Config.in.host                         |   4 +
 package/gcc/gcc.mk                                 |   8 +
 ...__builtin_types_compatible_p-in-C-mode-bu.patch |  50 ++++
 .../glibc/0001-sh-Fix-building-with-gcc5-6.patch   |  56 ----
 ...00366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch |  35 ---
 ...02-Do-not-use-generic-selection-in-C-mode.patch |  56 ++++
 ...-version-of-issignaling-that-does-not-use.patch | 225 +++++++++++++++
 ...ject-overly-long-LD_PRELOAD-path-elements.patch | 122 --------
 ...ersion-of-issignaling-when-__NO_LONG_DOUB.patch |  47 +++
 ...Reject-overly-long-LD_AUDIT-path-elements.patch | 204 -------------
 ...-version-of-iszero-that-does-not-use-__MA.patch | 210 ++++++++++++++
 package/glibc/0005-fix-binutils-2-29-build.patch   |  65 -----
 ...ify-use-the-builtin-when-optimizing-for-s.patch |  63 ++++
 ...g-IS_IN-libc-guards-to-vectorized-strcspn.patch |  47 ---
 package/glibc/0006-sh4-trap.patch                  | 318 ---------------------
 package/glibc/glibc.hash                           |   2 +-
 package/glibc/glibc.mk                             |   2 +-
 toolchain/toolchain-buildroot/Config.in            |   6 +
 26 files changed, 1523 insertions(+), 850 deletions(-)
 create mode 100644 package/gcc/4.9.4/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
 create mode 100644 package/gcc/4.9.4/944-sanitizer-linux.patch
 create mode 100644 package/gcc/5.4.0/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
 create mode 100644 package/gcc/5.4.0/944-sanitizer-linux.patch
 create mode 100644 package/gcc/6.4.0/942-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
 create mode 100644 package/gcc/6.4.0/943-sanitizer-linux.patch
 create mode 100644 package/glibc/0001-Do-not-use-__builtin_types_compatible_p-in-C-mode-bu.patch
 delete mode 100644 package/glibc/0001-sh-Fix-building-with-gcc5-6.patch
 delete mode 100644 package/glibc/0002-CVE-2017-1000366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch
 create mode 100644 package/glibc/0002-Do-not-use-generic-selection-in-C-mode.patch
 create mode 100644 package/glibc/0003-Provide-a-C-version-of-issignaling-that-does-not-use.patch
 delete mode 100644 package/glibc/0003-ld.so-Reject-overly-long-LD_PRELOAD-path-elements.patch
 create mode 100644 package/glibc/0004-Fix-the-C-version-of-issignaling-when-__NO_LONG_DOUB.patch
 delete mode 100644 package/glibc/0004-ld.so-Reject-overly-long-LD_AUDIT-path-elements.patch
 create mode 100644 package/glibc/0005-Provide-a-C-version-of-iszero-that-does-not-use-__MA.patch
 delete mode 100644 package/glibc/0005-fix-binutils-2-29-build.patch
 create mode 100644 package/glibc/0006-Let-fpclassify-use-the-builtin-when-optimizing-for-s.patch
 delete mode 100644 package/glibc/0006-i686-Add-missing-IS_IN-libc-guards-to-vectorized-strcspn.patch
 delete mode 100644 package/glibc/0006-sh4-trap.patch
Romain Naour Sept. 23, 2017, 9:28 p.m. UTC | #2
This series was send twice... sorry for the noise.

Romain
Arnout Vandecappelle Sept. 27, 2017, 9:12 p.m. UTC | #3
On 23-09-17 23:23, Romain Naour wrote:
> This series bump glibc to the latest release and allow to remove all
> patches required for the previous version! But glibc come with some
> new issue that are hopefully already fixed in the 2.26.x stable branch.

 Applied the series to master, thanks.


> While testing this new version, some build issues has been dicovered.
> Two gcc patch are needed to build a toolchain with older compiler
> (gcc 4.9 to 6.4), gcc 7.2 contain already the fix.
> 
> Backport a series related to bug 21930 and 22146.
> Without them the float128 support break the C++ build for some
> packages.
> 
> https://sourceware.org/bugzilla/show_bug.cgi?id=21930
> https://sourceware.org/bugzilla/show_bug.cgi?id=22146
> 
> This third series is for testing and review.
> Let's hope that glibc 2.26.1 will be released soon :)

 As discussed on IRC:

 Apparently there won't be a glibc 2.26.1. It's up to distros to pick a git
commit to release. So we have the choice to either keep a lot of patches in
Buildroot, or use a git download instead of a tarball. The latter has the
disadvantage of having a silly version "number" (the sha1), and that git
downloads are generally much slower.

 For now, we have those 6 patches in Buildroot. This may change in the future.

 Regards,
 Arnout
Yann E. MORIN Oct. 16, 2017, 4:25 p.m. UTC | #4
Arnout, All,

On 2017-09-27 23:12 +0200, Arnout Vandecappelle spake thusly:
> On 23-09-17 23:23, Romain Naour wrote:
> > Let's hope that glibc 2.26.1 will be released soon :)
> 
>  As discussed on IRC:
> 
>  Apparently there won't be a glibc 2.26.1. It's up to distros to pick a git
> commit to release.

Yep, this is just silly... :-(

> So we have the choice to either keep a lot of patches in
> Buildroot, or use a git download instead of a tarball. The latter has the
> disadvantage of having a silly version "number" (the sha1), and that git
> downloads are generally much slower.

If we want a slightly less-silly-looking version, we could use something
like:

    glibc-2.26-43-gfdf58eb

whichh means the sha1 'fdf58eb' that is '43' commits after the 'glibc-2.26'
tag. But we have to be careful about shortening the sha1, to avoid
collisions. I would say that we stay with the full sha1.

It is pretty easy to generate such a version string:

    git describe --match 'glibc-*' --abbrev=12 origin/release/2.26/master

>  For now, we have those 6 patches in Buildroot. This may change in the future.

I would say that we should switch to using the 2.26/master branch from
upstream, because we don;t have the bandwidth to assess whether we
need/want to backport individual patches.

If upstream commits on the maintenance branch, it means that it is a
fix. And we want fixes, whatever they fix: functionality or security.

So I'd say we should switch to git. The repo is even accessible through
https (although it is not documented): https://sourceware.org/git/glibc.git

Regards,
Yann E. MORIN.