72 Commits

Author SHA1 Message Date
Peter Korsgaard
1cf12ba631 package/glibc: bump version for additional post-2.28 security fixes
Fixes the following security vulnerabilities:

  CVE-2019-6488: On x32, the size_t parameter may be passed in the lower
  32 bits of a 64-bit register with with non-zero upper 32 bit.  When it
  happened, accessing the 32-bit size_t value as the full 64-bit register
  in the assembly string/memory functions would cause a buffer overflow.
  Reported by H.J. Lu.

  CVE-2019-7309: x86-64 memcmp used signed Jcc instructions to check
  size.  For x86-64, memcmp on an object size larger than SSIZE_MAX
  has undefined behavior.  On x32, the size_t argument may be passed
  in the lower 32 bits of the 64-bit RDX register with non-zero upper
  32 bits.  When it happened with the sign bit of RDX register set,
  memcmp gave the wrong result since it treated the size argument as
  zero.  Reported by H.J. Lu.

  CVE-2016-10739: The getaddrinfo function could successfully parse IPv4
  addresses with arbitrary trailing characters, potentially leading to data
  or command injection issues in applications.

  CVE-2019-9169: Attempted case-insensitive regular-expression match
  via proceed_next_node in posix/regexec.c leads to heap-based buffer
  over-read.  Reported by Hongxu Chen.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2019-03-29 14:44:52 +01:00
Mark Corbin
ae99fa6d64 arch: add support for RISC-V 32-bit (riscv32) architecture
This enables a riscv32 system to be built with a Buildroot generated
toolchain (gcc >= 7.x, binutils >= 2.30, glibc only).

This requires a custom version of glibc 2.26 from the riscv-glibc
repository. Note that there are no tags in this repository, so the
glibc version just consists of the 40 character commit id string.

Thanks to Fabrice Bellard for pointing me towards the 32-bit glibc
repository and for providing the necessary patch to get it to build.

Signed-off-by: Mark Corbin <mark.corbin@embecosm.com>
Reviewed-by: Matt Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-01-06 14:09:31 +01:00
Mark Corbin
7ab6281075 package/glibc: bump version for more post-2.28 fixes
This update includes two specific fixes that have been backported
to the glibc 2.28 release branch from the glibc master branch:

1) UAPI header file asm/syscalls.h has been merged into the UAPI
asm/unistd.h header file for the RISC-V architecture in the
4.20 kernel. This causes the glibc 2.28 build to break.

2) sysdeps/ieee754/soft-fp: ignore maybe-uninitialized with -O
[BZ #19444]. The current patch for this issue can now be dropped
from Buildroot.

Signed-off-by: Mark Corbin <mark.corbin@embecosm.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-01-03 22:07:55 +01:00
Peter Korsgaard
13c43455a0 Merge branch 'next'
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-12-02 08:16:10 +01:00
Peter Korsgaard
d717ac4320 glibc: bump version for post-2.28 security fixes
Fixes the following security vulnerability:

  CVE-2018-19591: A file descriptor leak in if_nametoindex can lead to a
  denial of service due to resource exhaustion when processing getaddrinfo
  calls with crafted host names.  Reported by Guido Vranken.

Adhemerval Zanella (2):
      Fix misreported errno on preadv2/pwritev2 (BZ#23579)
      x86: Fix Haswell CPU string flags (BZ#23709)

Alexandra Hájková (1):
      Add an additional test to resolv/tst-resolv-network.c

Andreas Schwab (2):
      Fix stack overflow in tst-setcontext9 (bug 23717)
      libanl: properly cleanup if first helper thread creation failed (bug 22927)

DJ Delorie (2):
      malloc: tcache double free check
      malloc: tcache double free check

Florian Weimer (9):
      conform: XFAIL siginfo_t si_band test on sparc64
      stdlib/test-bz22786: Avoid spurious test failures using alias mappings
      stdlib/test-bz22786: Avoid memory leaks in the test itself
      support_blob_repeat: Call mkstemp directory for the backing file
      stdlib/tst-strtod-overflow: Switch to support_blob_repeat
      nscd: Fix use-after-free in addgetnetgrentX [BZ #23520]
      support: Print timestamps in timeout handler
      Revert "malloc: tcache double free check" [BZ #23907]
      CVE-2018-19591: if_nametoindex: Fix descriptor for overlong name [BZ #23927]

H.J. Lu (2):
      i386: Use _dl_runtime_[resolve|profile]_shstk for SHSTK [BZ #23716]
      Check multiple NT_GNU_PROPERTY_TYPE_0 notes [BZ #23509]

Ilya Yu. Malakhov (1):
      signal: Use correct type for si_band in siginfo_t [BZ #23562]

Istvan Kurucsai (1):
      malloc: Additional checks for unsorted bin integrity I.

Joseph Myers (2):
      Update syscall-names.list for Linux 4.18.
      Update kernel version in syscall-names.list to 4.19.

Moritz Eckert (1):
      malloc: Mitigate null-byte overflow attacks

Paul Eggert (1):
      Fix tzfile low-memory assertion failure

Paul Pluzhnikov (2):
      Fix BZ#23400 (creating temporary files in source tree), and undefined behavior in test.
      [BZ #20271] Add newlines in __libc_fatal calls.

Pochang Chen (1):
      malloc: Verify size of top chunk.

Rafal Luzynski (1):
      kl_GL: Fix spelling of Sunday, should be "sapaat" (bug 20209).

Stefan Liebler (2):
      Fix race in pthread_mutex_lock while promoting to PTHREAD_MUTEX_ELISION_NP [BZ #23275]
      Test stdlib/test-bz22786 exits now with unsupported if malloc fails.

Szabolcs Nagy (2):
      i64: fix missing exp2f, log2f and powf symbols in libm.a [BZ #23822]
      Increase timeout of libio/tst-readline

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-11-30 11:20:22 +01:00
Evgeniy Didin
cd9d58f1fc toolchain: bumb ARC tools to arc-2018.09 release
This commit finally bumps ARC tools to the most recent arc-2018.09 release version.

ARC GNU tools of version arc-2018.09 bring some quite significant changes like:
 * Binutils v2.31.1 with additional ARC patches
 * GCC 8.2.1 with additional ARC patches
 * glibc 2.28 with additional ARC patches

More information on this release could be found here:
https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2018.09-release

Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: arc-buildroot@synopsys.com
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-11-29 21:32:51 +01:00
Evgeniy Didin
c786ca2fcb toolchain: Bump ARC tools to arc-2018.09-rc2
This commit bumps ARC toolchain to arc-2018.09-rc2,
which includes significant changes since arc-2018.09-rc1.
We want to test how new toolchain-rc2 builds packages,
so we can make fixes before release of toolcain.
This makes us closer to toolchain release which will be in a few weeks.

Please note that it is a release candidate and it might
contain some breakages, please don't use it for production builds.

Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: arc-buildroot@synopsys.com
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-11-20 23:13:20 +01:00
Peter Korsgaard
fb80f71d94 glibc: ensure BR2_MAKE is also used for subdirs
The configure script contains logic to figure out what make program to
invoke for subdirectories (trying gnumake, gmake, make).  Explicitly force
it to use our BR2_MAKE to ensure the right make version is used.

As GLIBC_CONF_ENV is only initialized below, move this section below it.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-11-20 08:17:34 +01:00
Evgeniy Didin
5d4f23cbe6 toolchain: Bump ARC tools to arc-2018.09-rc1
This commit bumps ARC toolchain to arc-2018.09-rc1.
We want to test how new toolchain-rc1 builds packages,
so we can make fixes before release of toolcain.

ARC GNU tools of version arc-2018.09-rc1 bring some quite significant changes like:
* Binutils v2.31.1 with additional ARC patches
* GCC 8.2.1 with additional ARC patches
* glibc 2.28 with additional ARC patches

Please note that it is a release candidate and it might contain some
breakages, please don't use it for production builds.

Signed-off-by: Evgeniy Didin <didin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: arc-buildroot@synopsys.com
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-11-18 20:47:31 +01:00
Peter Korsgaard
2936442098 glibc: bump version for post-2.28 fixes
Carlos O'Donell (1):
      Fix tst-setcontext9 for optimized small stacks.

DJ Delorie (3):
      RISC-V: Fix rounding save/restore bug.
      Regen RISC-V rvd ULPs
      Improve ChangeLog message.

Florian Weimer (6):
      Linux: Rewrite __old_getdents64 [BZ #23497]
      error, error_at_line: Add missing va_end calls
      nscd: Deallocate existing user names in file parser
      nss_files: Fix file stream leak in aliases lookup [BZ #23521]
      regex: Add test tst-regcomp-truncated [BZ #23578]
      misc: New test misc/tst-gethostid

H.J. Lu (1):
      i386: Use ENTRY and END in start.S [BZ #23606]

Martin Kuchta (1):
      pthread_cond_broadcast: Fix waiters-after-spinning case [BZ #23538]

Mingli Yu (1):
      Linux gethostid: Check for NULL value from gethostbyname_r [BZ #23679]

Paul Eggert (1):
      regex: fix uninitialized memory access

Samuel Thibault (2):
      hurd: Add missing symbols for proper libc_get/setspecific
      hurd: Avoid PLTs for __pthread_get/setspecific

Stefan Liebler (1):
      Fix segfault in maybe_script_execute.

Wilco Dijkstra (1):
      Fix strstr bug with huge needles (bug 23637)

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-09-28 15:07:30 +02:00
Mark Corbin
9b3d52b400 arch: add support for RISC-V 64-bit (riscv64) architecture
This enables a riscv64 system to be built with a Buildroot generated
toolchain (gcc >= 7.x, binutils >= 2.30, glibc only).

This configuration has been used to successfully build a qemu-bootable
riscv-linux-4.15 kernel (https://github.com/riscv/riscv-linux.git).

Signed-off-by: Mark Corbin <mark.corbin@embecosm.com>
[Thomas:
 - simplify arch.mk.riscv by directly setting GCC_TARGET_ARCH
 - simplify glibc.mk changes by using GLIBC_CONF_ENV.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-09-23 23:42:41 +02:00
Thomas Petazzoni
03e2bad868 glibc: move autoconf cache variables to GLIBC_CONF_ENV
glibc is not using the autotools-package infrastructure, so we are
calling the ./configure script manually. Currently, the few autoconf
cache variables are passed as arguments to the ./configure script,
while we pass them through the environment in the autotools-package
infrastructure.

So let's pass them in the environment, and use a GLIBC_CONF_ENV
variable to store them. This will allow in a follow-up commit to
conditionally add more autoconf cache variables to the glibc build.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-09-23 23:42:41 +02:00
Romain Naour
5d1964b922 package/glibc: allow to specify host-make
Use host-make package if GNU make from the host machine is too old.

Use the newly introduced BR2_MAKE_HOST_DEPENDENCY and BR2_MAKE to
provide respectively, host-make dependency and the path to the GNU
make binary to use for building glibc.

Fixes:
http://autobuild.buildroot.net/results/576/5760ea2635d9aecc9c789494a8b2cc73a1af1ceb
http://autobuild.buildroot.net/results/583/58347b94884eee2db28740486eda280e8c08e22f
http://autobuild.buildroot.net/results/dc7/dc7c8cd548409864ab0055e196c0280457a5fb5f

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Baruch Siach <baruch@tkos.co.il>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Tested-by: Matt Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-09-08 23:36:36 +02:00
Romain Naour
b7b17989d2 package/glibc: bump to version 2.28
https://www.sourceware.org/ml/libc-alpha/2018-08/msg00003.html

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-08-09 23:58:00 +02:00
Romain Naour
f0f77c1194 package/glibc: remove --{with, without}-fp option
This option has been removed since glibc 2.27 [1].

[1] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=8df5d34720dd71e934545bade879e04697830757

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-08-05 14:35:29 +02:00
Evgeniy Didin
68503bac9c toolchain: bump ARC tools to arc-2018.03 release
This commit finally bumps ARC tools to the most recent arc-2018.03
release version.

ARC GNU tools of version arc-2018.03 bring some quite significant
changes like:
* Binutils v2.29.51 with additional ARC patches
* GCC 7.3.1 with additional ARC patches
* GDB 8.0.50 with ARC patches

More information on this release could be found here:
https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2018.03-release

Signed-off-by: Evgeniy Didin <didin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: arc-buildroot@synopsys.com
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-06-25 21:53:52 +02:00
Peter Korsgaard
8b0fd3cb49 Merge branch 'next'
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-06-02 11:21:20 +02:00
Baruch Siach
488052edff glibc: security bump to latest 2.27 branch
Fixed issues are listed in the 2.27 branch NEWS file:

  CVE-2017-18269: An SSE2-based memmove implementation for the i386
  architecture could corrupt memory.  Reported by Max Horn.

  CVE-2018-11236: Very long pathname arguments to realpath function could
  result in an integer overflow and buffer overflow.  Reported by Alexey
  Izbyshev.

  CVE-2018-11237: The mempcpy implementation for the Intel Xeon Phi
  architecture could write beyond the target buffer, resulting in a buffer
  overflow.  Reported by Andreas Schwab.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-05-29 16:59:47 +02:00
Evgeniy Didin
6505b06d47 toolchain: Bump ARC tools to arc-2018.03-rc2
This commit bumps ARC toolchain to arc-2018.03-rc2, which
includes significant changes since arc-2018.03-rc1.
We want to test how new toolchain-rc2 builds packages,
so we can make fixes before release of toolcain.
This makes us closer to toolchain release which will be in a few weeks.

Please note that it is a release candidate
and it might contain some breakages,
please don't use it for production builds.

Signed-off-by: Evgeniy Didin <didin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: arc-buildroot@synopsys.com
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 7aaabe8fc04006b15bb5f9aaf08ac07603fcf7fe)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-05-28 14:48:19 +02:00
Evgeniy Didin
7aaabe8fc0 toolchain: Bump ARC tools to arc-2018.03-rc2
This commit bumps ARC toolchain to arc-2018.03-rc2, which
includes significant changes since arc-2018.03-rc1.
We want to test how new toolchain-rc2 builds packages,
so we can make fixes before release of toolcain.
This makes us closer to toolchain release which will be in a few weeks.

Please note that it is a release candidate
and it might contain some breakages,
please don't use it for production builds.

Signed-off-by: Evgeniy Didin <didin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: arc-buildroot@synopsys.com
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-05-26 10:17:50 +02:00
Romain Naour
345730c38c Revert "glibc: install the obsolete libnsl"
libnsl from Glibc is deprecated and should not be used anymore.
Remove libnsl.so.* from GLIBC_LIBS_LIB.

libnsl is now an separate library that can be packaged later if
necessary [1].

Note: libnsl from Glibc doesn't build with gcc 8 due new warning [2].

[1] https://github.com/thkukuk/libnsl.git
[2] http://patchwork.sourceware.org/patch/26437

This reverts commit 398747f5fafca8c07e696612d8eded53d4f935c7.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-05-19 21:38:28 +02:00
Evgeniy Didin
84a5fc007f toolchain: Bump ARC tools to arc-2018.03-rc1
This commit bumps ARC toolchain to arc-2018.03-rc1.
We want to test how new toolchain-rc1 builds packages,
so we can make fixes before release of toolcain.

ARC GNU tools of version arc-2018.03-rc1 bring some quite significant changes like:
 * Binutils v2.29.51 with additional ARC patches
 * GCC 7.3.1 with additional ARC patches

Please note that it is a release candidate
and it might contain some breakages,
please don't use it for production builds.

Signed-off-by: Evgeniy Didin <didin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: arc-buildroot@synopsys.com
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-04-12 23:28:38 +02:00
Baruch Siach
398747f5fa glibc: install the obsolete libnsl
glibc 2.27 stopped installing libnsl by default. Restore libnsl install
to fix packages, like exim, that use that library.

Fixes (exim):
http://autobuild.buildroot.net/results/a19/a19df43be7d27cf8815e1257122d25aa8285d75b/
http://autobuild.buildroot.net/results/8ec/8ecfc42a81efec8485784f945e231eb40a087b5b/
http://autobuild.buildroot.net/results/054/054eb702a9b8c66454970333ef45a0afccb7cc80/

Cc: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Tested-by: Luca Ceresoli <luca@lucaceresoli.net>
Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-03-19 09:26:58 +01:00
Ryan Coe
61addf9107 glibc: needs host-bison
Since upstream commit 1faaf7035cabda101e1d6653bff7a539f201db91
("plural.c: improve reproducibility"), glibc now requires bison to be
available on the host for its build process. This is needed starting
with glibc 2.27.

Fixes:

  http://autobuild.buildroot.net/results/ca4d883793c1674d3a052edd5e56897f79683448/

Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-02-08 23:48:43 +01:00
Romain Naour
c032e6825a package/glibc: security bump to 2.27
See: https://sourceware.org/ml/libc-announce/2018/msg00000.html
https://sourceware.org/glibc/wiki/Release/2.27

Fixes the following CVEs:
 CVE-2017-1000408
 CVE-2017-1000409
 CVE-2017-16997
 CVE-2018-1000001
 CVE-2018-6485

While at it, add license file hashes.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-02-06 13:41:48 +01:00
Romain Naour
30daaed193 package/glibc: remove GLIBC_SRC_SUBDIR
GLIBC_SRC_SUBDIR was needed when Buildroot supported
eglibc which stored all sources in a sub-directory.
It was not removed by the commit removing eglibc support [1].

[1] 500de2598a4902a0e9ec53f7b475046ff17c6681

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-02-06 11:34:43 +01:00
Jerzy Grzegorek
01dc4a9f14 package/glibc: remove the default value of the $(PKG)_SOURCE variable
Signed-off-by: Jerzy Grzegorek <jerzy.m.grzegorek@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-01-16 08:52:24 +01:00
Baruch Siach
971ed9653e glibc: security bump to the latest 2.26 branch
List of fixes from the 2.26 branch NEWS files:

  CVE-2017-15670: The glob function, when invoked with GLOB_TILDE,
  suffered from a one-byte overflow during ~ operator processing (either
  on the stack or the heap, depending on the length of the user name).
  Reported by Tim Rühsen.

  CVE-2017-15671: The glob function, when invoked with GLOB_TILDE,
  would sometimes fail to free memory allocated during ~ operator
  processing, leading to a memory leak and, potentially, to a denial
  of service.

  CVE-2017-15804: The glob function, when invoked with GLOB_TILDE and
  without GLOB_NOESCAPE, could write past the end of a buffer while
  unescaping user names.  Reported by Tim Rühsen.

  CVE-2017-17426: The malloc function, when called with an object size near
  the value SIZE_MAX, would return a pointer to a buffer which is too small,
  instead of NULL.  This was a regression introduced with the new malloc
  thread cache in glibc 2.26.  Reported by Iain Buclaw.

Cc: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-12-08 14:33:12 +01:00
Yann E. MORIN
d84397ab79 package/glibc: switch to downloading a tarball
Currently, we do a full git clone of the repository, which takes quite
some time, especially on slow networks.

This was done like that because the initial patch was using the official
repository as the source of the download, and that repository did not
offer remotely-generated tarballs.

But now we've switched to using a mirror on github, which does provide
such a tarball, which provides faster downloads.

Use that.

However, the tarball from github differs from the one we were generating
locally, because the paths inside are different. WE used to create a
archive with paths starting with glibc-glibc-2.26-73-g4b692dfb95[...],
while github does away with the git-describe prefix, and generates paths
that start with just glibc-4b692dffb95[...]. The content are exactly
identicall (checked with a diff), though.

Update the hash accordingly.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Waldemar Brodkorb <wbx@openadk.org>
Cc: Romain Naour <romain.naour@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-11-14 14:04:16 +01:00
Evgeniy Didin
138a082def toolchain: Bump ARC tools to arc-2017.09 release
This commit finally bumps ARC tools to the most recent arc-2017.09 release version.

ARC GNU tools of version arc-2017.09 bring some quite significant changes like:
 * Binutils v2.29 with additional ARC patches
 * GCC 7.1.1 with additional ARC patches
 * glibc 2.26 with additional ARC patches

More information on this release could be found here:
https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2017.09-release

Signed-off-by: Evgeniy Didin <didin@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: arc-buildroot@synopsys.com
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-11-03 22:46:06 +01:00
Yann E. MORIN
88134135fc package/glibc: switch to using the maintenance branch
glibc upstream has ruled against doing regular point-releases, but they
do have a lot of interesting and important fixes for regressions and
security.

Backporting each patch, or cherry-picking individual patches is off
limits for us, so we just switch to using the currently-latest HEAD of
the maintenance branch instead.

The version number is obtained with:
    $ git describe --match 'glibc-*' --abbrev=40 origin/release/2.26/master

The alternative options were:
  - download the tarball from the git tree
    --> does not work; not an option
  - download the 2.26 tarball, and bundle the individual patches in
    Buildroot
    --> maintenance of patches is a burden; not an option
  - download the 2.26 tarball, maintain the list of patches to download from
    the git tree
    --> not an option for the same reason

So we end up just doing a git clone. The git tree is today about ten
times the size of the tarball, so a rough estimate makes it at about ten
times the download time.

Also upstream doesn't officially provide an https download location [1].
There is one but it's not reliable, sometimes the connection time out and
end-up with a corrupted git repo:

fatal: unable to access 'https://sourceware.org/git/glibc.git/': Failed to connect to sourceware.org port 443: Connection timed out

So switch to using a git mirror from github which is updated once a day [2].
This allow at the same time to clone the git repository faster.

Note: The glibc 2.26 patches are not kept for the arc toolchain since they
are fixing an issue with the new float128 support introduced in x86, x86_64
and powerpc64le.

[1] https://sourceware.org/git/?p=glibc.git;a=summary
[2] https://github.com/bminor/glibc.git

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Romain Naour <romain.naour@openwide.fr>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Evgeniy Didin <didin@synopsys.com>
CC: Alexey Brodkin <abrodkin@synopsys.com>
[Romain: bump 4b692dffb95ac4812b161eb6a16113d7e824982e]
Signed-off-by: Romain Naour <romain.naour@gmail.com>
[yann.morin.1998@free.fr: update comment to never decide on the mirror]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-10-29 15:49:58 +01:00
Romain Naour
27936318ae package/glibc: remove mips r6 nan208 hook
This hook is not needed since glibc 2.23 [1] and can be safely removed.

[1] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=d5f2798a0ac9d5ad8ad7a506a2f840035135e2d2

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-10-29 15:47:31 +01:00
Evgeniy Didin
0633eb58a2 toolchain: add glibc support for ARCv2
Finally there's working ARC port of glibc thanks to Vineet and Cuper!
This port is based on pretty recent glibc's master branch and ARC
changes are being reviewed now in glibc's mailing list.

Thus we again have to use sources from our GitHub but as soon as there's
a glibc release with our patches applied we'll switch to upstream releases
and will drop our glibc GitHub repo alltogether.

Note now we cut tags in glibc repo simultaneously with tags
in Binutils and GCC repos and so to make sure everything works in the best
way we plan to update glibc tag together with Binutils and GCC.

Also note as of today ARCompact (AKA ARCv1 ISA) is not supported in glibc
but we plan to fix it soonish so for now we make glibc intentionally
dependent on archs38.

Also note we are not creating directory "2.26" because all patches for glibc
ver 2.26 applies to arc glibc port.

Signed-off-by: Evgeniy Didin <didin@synopsys.com>
CC: Alexey Brodkin <abrodkin@synopsys.com>
CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
CC: Waldemar Brodkorb <wbx@openadk.org>
CC: Romain Naour <romain.naour@gmail.com>
Cc: Cupertino Miranda <cmiranda@synopsys.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Anton Kolesov <akolesov@synopsys.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-10-10 23:13:34 +02:00
Romain Naour
d6a4807f94 package/glibc: bump to 2.26
Drop upstream patch:

0001-sh-Fix-building-with-gcc5-6.patch
https://sourceware.org/git/?p=glibc.git;a=commit;h=d40dbe722f004f999b589de776f7e57e564dda01

0002-CVE-2017-1000366-Ignore-LD_LIBRARY_PATH-for-AT_SECUR.patch
https://sourceware.org/git/?p=glibc.git;a=commit;h=f6110a8fee2ca36f8e2d2abecf3cba9fa7b8ea7d

0003-ld.so-Reject-overly-long-LD_PRELOAD-path-elements.patch
https://sourceware.org/git/?p=glibc.git;a=commit;h=6d0ba622891bed9d8394eef1935add53003b12e8

0004-ld.so-Reject-overly-long-LD_AUDIT-path-elements.patch

https://sourceware.org/git/?p=glibc.git;a=commit;h=81b82fb966ffbd94353f793ad17116c6088dedd9

0005-fix-binutils-2-29-build.patch
https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff_plain;h=388b4f1a02f3a801965028bbfcd48d905638b797

0006-i686-Add-missing-IS_IN-libc-guards-to-vectorized-strcspn.patch
https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff_plain;h=69052a3a95da37169a08f9e59b2cc1808312753c

0006-sh4-trap.patch
https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff_plain;h=db3d848e154b00071f4a5e729d5884efad410109

But 2.26 version introduced quite a few regressions on x86, x86_64 and
powerpc64le when float128 support was added. All these issues are now
fixed in the glibc 2.26 stable branch.

Backport patches from glibc 2.26 stable branch related to bug 21930.
Take all patches listed in this bug report in order to have all fix
for this issue [1] [2].

Fixes gnuradio build:
[...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp: In function ‘std::size_t boost::hash_detail::float_hash_value(T)’:
[...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp:210:21: error: expected primary-expression before ‘float’
             switch (fpclassify(v))
                     ^
[...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp:210:21: error: expected primary-expression before ‘long’
             switch (fpclassify(v))
                     ^
[...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp:210:21: error: found ‘:’ in nested-name-specifier, expected ‘::’
             switch (fpclassify(v))
                     ^
[...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp:210:21: error: ‘_Float128’ is not a class or namespace
             switch (fpclassify(v))
                     ^

[...]/sysroot/usr/include/boost/functional/hash/detail/hash_float.hpp:210:21: error: ‘_Generic’ was not declared in this scope
             switch (fpclassify(v))
                     ^

Also backport fix for glibc bug 22146.
Without this patch some C++ applications (jsoncpp, mesa3d and kodi) fail
to build due to an issue while building the toolchain.

A test in the libstdc++ configure script fail when -Os and float128 are
used.

See the bug report for details [3].

[1] https://sourceware.org/ml/libc-alpha/2017-08/msg00586.html
[2] https://sourceware.org/bugzilla/show_bug.cgi?id=21930
[3] https://sourceware.org/bugzilla/show_bug.cgi?id=22146

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-27 22:58:52 +02:00
Waldemar Brodkorb
b1ca91c59d glibc: remove version choice
We do not support uClibc-ng/musl C library version choice support,
do the same for GNU C Library.
No legacy handling required as only version choice is removed.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[Thomas: move 3.2 kernel headers dependency to the libc choice in
toolchain/toolchain-buildroot/Config.in file, and added a Config.in
comment about it.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-06-24 17:42:50 +02:00
Ricardo Martincoski
6eb5cf144f package: remove consecutive empty lines
Occurrences were searched using [1]:
check-package --include-only ConsecutiveEmptyLines $(find * -type f)
and manually removed.

[1] http://patchwork.ozlabs.org/patch/729666/

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-04-06 22:40:33 +02:00
Thomas De Schampheleire
9e4fb2019b toolchain: copy_toolchain_lib_root: clarify input parameter
The input to copy_toolchain_lib_root is not one library, not a list of
libraries, but a library name pattern with glob wildcards.
This pattern is then passed to 'find' to get the actual list of libraries
matching the pattern. Reflect this using an appropriate variable name.

Note: if the root of the buildroot tree contains a file matching one of
these library patterns, the copying of libraries from staging to target will
not be correct. It is not impossible to fix that, e.g. using 'set -f', but
maybe it's not worth it.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-04-05 21:33:29 +02:00
Rahul Bedarkar
9f59b378a3 boot, package: use SPDX short identifier for BSD-3c
We want to use SPDX identifier for license string as much as possible.
SPDX short identifier for BSD-3c is BSD-3-Clause.

This change is done using following command.
find . -name "*.mk" | xargs sed -ri '/LICENSE( )?[\+:]?=/s/BSD-3c/BSD-3-Clause/g'

Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-04-01 15:26:57 +02:00
Rahul Bedarkar
30a3e8d108 boot, package: use SPDX short identifier for LGPLv2.1/LGPLv2.1+
We want to use SPDX identifier for license string as much as possible.
SPDX short identifier for LGPLv2.1/LGPLv2.1+ is LGPL-2.1/LGPL-2.1+.

This change is done using following command.
find . -name "*.mk" | xargs sed -ri '/LICENSE( )?[\+:]?=/s/LGPLv2.1(\+)?/LGPL-2.1\1/g'

Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-04-01 15:18:10 +02:00
Rahul Bedarkar
af31c309e7 boot, linux, package: use SPDX short identifier for GPLv2/GPLv2+
We want to use SPDX identifier for license strings as much as possible.
SPDX short identifier for GPLv2/GPLv2+ is GPL-2.0/GPL-2.0+.

This change is done by using following command.
find . -name "*.mk" | xargs sed -ri '/LICENSE( )?[\+:]?=/s/\<GPLv2\>/GPL-2.0/g'

Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-04-01 15:16:38 +02:00
Jesper Baekdahl
ba684f0a12 glibc: install libanl.so to target
libanl.so is needed for asynchronous network address and service
translation, declared in netdb.h

Signed-off-by: Jesper Bækdahl <jbb@gamblify.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-02-24 12:02:25 +01:00
Thomas Petazzoni
2c877590b3 glibc: install libmvec.so when available
On some architectures (namely x86-64), glibc may provide a libmvec
library since glibc 2.22, which programs built with gcc OpenMP support
might get linked to.

In order for these programs to work on the target, we need to copy
this library to the target filesystem.

This commit takes care of this for the glibc package (used for the
internal toolchain backend). Note that libraries listed in
GLIBC_LIBS_LIB are silently ignored if they don't exist. Therefore, we
don't need to have any condition on the architecture or glibc version.

For more details on libmvec, see
https://sourceware.org/glibc/wiki/libmvec.

Fixes bug #9111.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-10-27 10:40:15 +02:00
Vicente Olivert Riera
45c92c60b1 MIPS: replace every BR2_mips_* with the new MIPS CPU options
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-10-15 13:22:17 +02:00
Thomas Petazzoni
609c5192ad glibc: remove additional occurrences of eglibc
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-06-28 22:25:51 +02:00
Thomas Petazzoni
416fd9cd13 Replace (e)glibc by glibc
Following the removal of eglibc support, this commit replaces all
occurences of "(e)glibc" by just "glibc". Most of the occurences are in
package Config.in comments.

In addition, when the form "an (e)glibc ..." was used, it is replaced by
"a glibc ...".

[Peter: add new efi* packages, s/uclibc/uClibc as suggested by Romain,
        systemd / liquid-dsp tweaks as suggested by Yann]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-06-28 22:19:22 +02:00
Thomas Petazzoni
500de2598a toolchain: remove eglibc support
The eglibc support has been marked deprecated since 2015.08, so it's
time to remove it.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-05-17 08:48:23 +02:00
Thomas De Schampheleire
2a87b64f8e toolchain-external: align library locations in target and staging dir
The toolchain-external logic is roughly:
- populate the staging dir by rsyncing the entire ${ARCH_LIB_DIR} and
  usr/${ARCH_LIB_DIR} from sysroot.
- populate the target dir by explictly copying some libraries from sysroot
  into target/lib and some other libraries in target/usr/lib, the split
  being hardcoded into buildroot regardless of the location in the sysroot.

This means that a library libfoo could be located in:
  staging/lib/libfoo.so
  target/usr/lib/libfoo.so

When debugging an application that links against this library, gdb will
fruitlessly search for 'usr/lib/libfoo.so' in staging, and then suggest to
use 'set solib-search-path' which is a hack, really.

To solve the problem, we need to make sure that libraries from the toolchain
are installed in the same relative location in staging and target.
Achieve this by:
- replacing the convoluted search for libraries using for+find in sysroot
  with a simple find in staging.
- determining DESTDIR for each library individually based on the location in
  staging.
- treating LIB_EXTERNAL_LIBS and USR_LIB_EXTERNAL_LIBS equivalently

These changes also allow for the removal of most arguments to
copy_toolchain_lib_root in the method itself and their callers.

Test procedure:
- set configuration for a given toolchain
- make clean toolchain
- find output/target | sort > /tmp/out-before
- apply patch
- make clean toolchain
- find output/target | sort > /tmp/out-after
- diff -u /tmp/out-before /tmp/out-after

The only changes should be some libraries moving from lib to usr/lib or vice
versa. Notable examples being libstdc++ and libatomic.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[Thomas:
 - use -L instead of -follow in the find invocation, as suggested by
   Arnout.
 - move the BR2_STATIC_LIBS condition as a make condition rather than
   a shell condition, as suggested by Arnout.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-04-25 22:46:28 +02:00
Sam bobroff
fd5bcd0eda package/glibc: set --enable-kernel to match kernel
Glibc is currently configured without any "--enable-kernel" option.
This causes it to use the oldest possible kernel API, slowing it down
and preventing it from using any kernel features from later versions.

Since we are likely building a kernel and matching glibc together,
backwards compatability is probably unnecessary so this patch
unconditionally configures glibc with --enable-kernel set to
BR2_TOOLCHAIN_HEADERS_AT_LEAST.

Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
Tested-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-02-23 23:56:32 +01:00
Vicente Olivert Riera
99122d6780 arch: add support for mips32r6 and mips64r6 variants
- Add support for mips32r6 and mips64r6 target architecture variants
- Disable unsupported gcc versions
- Disable unsupported binutils versions
- Disable unsupported external toolchains
- Disable unsuported C libraries
- Add a hook in order to make glibc compile for MIPS R6.

[Thomas: slightly tweak the glibc hack explanation, to make it
hopefully clearer.]

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-10-12 21:33:56 +02:00
Steven Noonan
d3ff6cbb42 package/glibc: enable lock elision on x86_64 hosts
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-07-20 22:56:54 +02:00