Commit Graph

90 Commits

Author SHA1 Message Date
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
6db1651e34 glibc: fix sh4 compile error
Fixes:

/tmp/output/build/glibc-2.25/build/libc_pic.a(dl-error.os): In function `__GI__dl_signal_error':
dl-error.c:(.text+0x0): multiple definition of `_dl_signal_error'
/tmp/output/build/glibc-2.25/build/elf/dl-allobjs.os:(.text+0x134d8): first defined here
/tmp/output/build/glibc-2.25/build/libc_pic.a(dl-error.os): In function `__GI__dl_catch_error':
dl-error.c:(.text+0x190): multiple definition of `_dl_catch_error'
/tmp/output/build/glibc-2.25/build/elf/dl-allobjs.os:(.text+0x136fc): first defined here
/tmp/output/build/glibc-2.25/build/libc_pic.a(init-first.os):(.data+0x0): multiple definition of `__libc_multiple_libcs'
/tmp/output/build/glibc-2.25/build/elf/dl-allobjs.os:(.bss+0x6c): first defined here
/tmp/output/build/glibc-2.25/build/libc_pic.a(_itoa.os): In function `_itoa':
_itoa.c:(.text+0xd4): multiple definition of `_itoa'
/tmp/output/build/glibc-2.25/build/elf/dl-allobjs.os:(.text+0x133c8): first defined here

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-08-10 10:25:03 +02:00
Thomas Petazzoni
163b6a5b39 glibc: add patch to fix build on x86
This fixes the following build issues:

In file included from ../sysdeps/x86_64/multiarch/varshift.c:19:0,
                 from ../sysdeps/i386/i686/multiarch/varshift.c:1:
../sysdeps/x86_64/multiarch/varshift.h: In function '__m128i_shift_right':
../sysdeps/x86_64/multiarch/varshift.h:26:1: error: SSE vector return without SSE enabled changes the ABI [-Werror=psabi]
 {

[...]

.../lib/gcc/i686-buildroot-linux-gnu/7.1.0/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch

The patch has been taken from glibc's patchwork at
https://patchwork.sourceware.org/patch/21003/.

Fixes bug #10156.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-08-08 17:51:02 +02:00
Thomas Petazzoni
cf821efbd0 glibc: add patch fixing the build with binutils 2.29
Fixes the following build failure, which occurs on all architectures:

/tmp/cc6APNmN.s: Assembler messages:
/tmp/cc6APNmN.s: Error: `loc1@GLIBC_2.17' can't be versioned to common symbol 'loc1'
/tmp/cc6APNmN.s: Error: `loc2@GLIBC_2.17' can't be versioned to common symbol 'loc2'
/tmp/cc6APNmN.s: Error: `locs@GLIBC_2.17' can't be versioned to common symbol 'locs'
../o-iterator.mk:9: recipe for target '/tmp/output/build/glibc-2.25/build/misc/regexp.os' failed

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-08-04 22:01:48 +02:00
Peter Korsgaard
c87fdfb605 glibc: add upstream security patches fixing CVE-2017-1000366 (stack clash)
glibc contains a vulnerability that allows specially crafted LD_LIBRARY_PATH
values to manipulate the heap/stack, causing them to alias, potentially
resulting in arbitrary code execution.  Please note that additional
hardening changes have been made to glibc to prevent manipulation of stack
and heap memory but these issues are not directly exploitable, as such they
have not been given a CVE.

https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt

Patches are identical to upstream, except that the ChangeLog modifications
have been stripped.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-06-28 23:28:47 +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
Waldemar Brodkorb
5f2cff973a glibc: add patches to fix sh4 compile issue
Fixes:

  https://bugs.busybox.net/show_bug.cgi?id=9756

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
[Thomas: rework patches as Git formatted patches, fix numbering.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-04-13 21:41:54 +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
Gustavo Zacarias
a75eeddd7c glibc: drop version 2.22
We don't want a dozen glibc versions and there's no particular reason to
keep this old version around so drop it.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
[Thomas: add entry to Config.in.legacy.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-01 22:37:51 +01:00
Gustavo Zacarias
cde6634a29 glibc: add version 2.25
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-01 22:37:51 +01:00
Gustavo Zacarias
faebb41d02 glibc: bump default to version 2.24
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-01 22:37:51 +01: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
Vicente Olivert Riera
3ca860a95f glibc: fix MIPS and SPARC builds for glibc < 2.24 with recent binutils
Backport two upstream patches to fix a build failure on MIPS and SPARC
architectures when using recent binutils versions. It appears that on
these architectures pt-vfork.S includes vfork.S (through the alpha
version of pt-vfork.S) and that the __vfork aliases are not
conditionalized on IS_IN (libc) like on other architectures. Therefore
the aliases are also wrongly included in libpthread.so.

The build failure looks like this:

/br/output/build/glibc-2.22/build/nptl/libpthread.so:(*IND*+0x0):
multiple definition of `vfork@GLIBC_2.0'
/br/output/build/glibc-2.22/build/nptl/libpthread.so::(.text+0xeea0):
first defined here

This problem was reported in Debian here:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=827477

Upstream patches here:

https://sourceware.org/git/?p=glibc.git;a=commit;h=43c2948756bb6e144c7b871e827bba37d61ad3a3
https://sourceware.org/git/?p=glibc.git;a=commit;h=b87c1ec3fa398646f042a68f0ce0f7d09c1348c7

I have tweaked them a little bit in order to not patch the ChangeLog
file, otherwise it will fail.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-09-08 20:27:19 +02:00
Thomas Petazzoni
0b7bf72aa4 glibc: remove unnecessary !BR2_sparc dependencies
The BR2_TOOLCHAIN_BUILDROOT_GLIBC option is already not selectable on
BR2_sparc, so there is no need to have an additional "depends on
!BR2_sparc" on each of the glibc versions.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-08-22 22:45:29 +02:00
Vicente Olivert Riera
6c69921ece glibc: add version 2.24
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-08-20 16:07:57 +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
Gustavo Zacarias
0b87314aa5 glibc: bump default to version 2.23
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-06-27 21:13:57 +02:00
Thomas Petazzoni
34ba9eedd4 glibc: remove eglibc hashes
In commit 500de2598a, support for eglibc
was removed, but forgot to remove the corresponding hashes from the hash
file. This commit fixes this mistake.

Reported-by: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-06-08 23:29:30 +02:00
Peter Korsgaard
577021e81b Merge branch 'next'
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-06-01 17:55:16 +02:00
Vicente Olivert Riera
794935068b toolchain: improve SSP logic
Don't enable SSP support on external toolchains just because they use
glibc or musl. Instead of that, make the external toolchains explictily
declare if they support SSP or not. And also add a check to detect SSP
support when using custom external toolchains.

For internal toolchains we always enable SSP support for glibc and musl.

Fixes:

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

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
[Thomas:
 - remove uClibc-specific SSP check, since there is now a generic
   check being done.
 - send potential compilation errors caused by the SSP check to
   oblivion, in order to avoid causing confusion for the user.
 - add autobuilder reference.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-05-23 21:07:24 +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 Petazzoni
0af371be3a glibc: disable build of glibc 2.22 with gcc 6.x
glibc-2.22 does not build with gcc 6.x. The first issues can be fixed
by:

 - Using the same 0004-gcc6.patch as we're using with glibc 2.23 since
   Buildroot commit ab8de336eb.

 - Backport glibc commit 5542236837c5c41435f8282ec92799f480c36f18 to fix
   strchr() build failure.

But then, there are some more failures caused by the fact that numerous
glibc files were not using modern prototypes in the function
definitions, causing build failures such as:

../sysdeps/unix/sysv/linux/dl-openat64.c:26:1: error: 'openat64' defined as variadic function without prototype [-Werror]
 openat64 (dfd, file, oflag)
 ^~~~~~~~
In file included from ../include/fcntl.h:2:0,
                 from ../sysdeps/unix/sysv/linux/dl-openat64.c:21:
../io/fcntl.h:214:12: note: previous declaration of 'openat64' was here
 extern int openat64 (int __fd, const char *__file, int __oflag, ...)
            ^~~~~~~~

This could be fixed by backporting glibc commit
9dd346ff431fc761f1b748bd4da8bb59f7652094, but this is a large commit,
touching a significant number of files. We probably don't want to take
this path, and instead making glibc 2.22 as not available with gcc 6.x
seems like the right course of action.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-05-17 08:43:27 +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
Bernd Kuhls
ab8de336eb package/glibc: add upstream patch to fix glibc-2.23 compile bug with gcc6
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-04-24 23:28:48 +02:00
Bernd Kuhls
f63ec06a13 package/glibc: Add security patches to fix CVE-2016-3075
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-04-24 23:28:30 +02:00
Gustavo Zacarias
674613bb70 glibc: remove version 2.21 stray patches
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-04-15 09:31:39 +02:00
Thomas Petazzoni
f261114522 glibc: backport patch to fix Microblaze build issue
This commit backports a glibc patch that fixes the build of glibc 2.22
on the Microblaze architecture.

Fixes:

  http://autobuild.buildroot.org/results/673/67348953fac469affd1965e04d61485ebb41e252/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-03-04 17:06:53 +01:00
Peter Korsgaard
28cd1ed30a Merge branch 'next'
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-03-02 21:25:00 +01:00
Gustavo Zacarias
2b9a7128e7 glibc: remove version 2.21
Mask out glibc for sparc as well since it's no longer available.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-02-29 22:57:26 +01: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
Gustavo Zacarias
35e19d4f3f glibc: bump default to version 2.22
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-02-19 16:34:29 +01:00
Gustavo Zacarias
f3e49d7a45 glibc: add version 2.23
Clarify the reason it's not available for sparc < v9.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-02-19 16:33:56 +01:00
Gustavo Zacarias
7b10101b6f glibc: add security patches
Fix for 2.21 and 2.22:
CVE-2015-7547 - glibc getaddrinfo stack-based buffer overflow.

For 2.21:
CVE-2014-8121 - Unexpected closing of nss_files databases after lookups
causes denial of service.
CVE-2015-1781 - buffer overflow in gethostbyname_r() and related
functions with misaligned buffer.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-02-17 10:45:25 +01:00
Yann E. MORIN
863036378b package/c-libraries: need linux-headers
Now that we check that a target package in the _DEPENDENCIES of another
package has to be enabled in config, all target packages must have a
kconfig symbol.

Add a Kconfig symbol for linux-headers, and select it from the packages
that depends on it (C libraries).

Also remove the now-misleading comments "for legal-info" from the C
libraries.

Fixes:
    http://autobuild.buildroot.org/results/2a9/2a9e5d27b34357819b44f573a834da1ba5079030/
    ... and numerous similar failures ...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-12-30 09:54:33 +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
Gustavo Zacarias
2190e90c7c glibc: add version 2.22
Switch default to version 2.21 and drop 2.20.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-08-09 11:43:08 +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
Gustavo Zacarias
e781702c47 glibc: disable eglibc 2.18 for sparc
It's broken as well, wants to emit v9 asm.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-20 21:49:34 +01:00
Gustavo Zacarias
dbf7da6318 glibc: disable 2.20 for sparc
Disable glibc 2.20 for sparc, it's broken, that leaves 2.21 as the
default in this case.
Fixes bug #7941.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-03-17 23:18:31 +01:00
Gustavo Zacarias
3971cdfd32 glibc: drop stray from merge/bump
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-03-03 22:00:02 +01:00
Peter Korsgaard
7403ea730d Merge branch 'next'
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-03-02 23:26:20 +01:00
Gustavo Zacarias
489af59473 glibc: add security patches for CVE-2015-1472
Fixes CVE-2015-1472 - heap buffer overflow in wscanf.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-02-25 17:17:09 +01:00