Commit Graph

1309 Commits

Author SHA1 Message Date
Rosen Penev
aa4f68ac91 toolchain: Remove powerpc64 libc restriction
Starting with version 1.1.15, musl supports powerpc64.

There are no known users of powerpc64 yet.

This is effectively a revert of 0de93311e1

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-08-05 23:22:26 +02:00
Hauke Mehrtens
b20156ba70 toolchain: fix gcc depends on kernel headers
GCC needs the kernel headers to compile.
Some GCC file includes asm/unistd.h which is provided by the kernel headers.
Normally the kernel headers build is very fast and ready before the gcc uses
it, but if it clones the kernel from a slow git repository it takes longer
and then it could be that the gcc already wants to use the kernel headers
before they are available. This patch fixes this problem by adding the
missing dependency.

Signed-off-by: Hauke Mehrtens <hauke.mehrtens@intel.com>
2019-08-05 23:22:26 +02:00
Koen Vandeputte
ed6139eb25 toolchain/musl: bump to version 1.1.23
new features:
- riscv64 port
- configure now allows customizing AR and RANLIB vars
- header-level support for new linux features in 5.1

major internal changes:
- removed extern __syscall; syscall header code is now fully self-contained

performance:
- new math library implementation for log/exp/pow
- aarch64 dynamic tlsdesc function is streamlined

compatibility & conformance:
- O_TTY_INIT is now defined
- sys/types.h no longer pollutes namespace with sys/sysmacros.h in any profile
- powerpc asm is now compatible with clang internal assembler

changes for new POSIX interpretations:
- fgetwc now sets stream error indicator on encoding errors
- fmemopen no longer rejects 0 size

bugs fixed:
- static TLS for shared libraries was allocated wrong on "Variant I" archs
- crash in dladdr reading through uninitialized pointer on non-match
- sigaltstack wrongly errored out on invalid ss_size when doing SS_DISABLE
- getdents function misbehaved with buffer length larger than INT_MAX
- set*id could deadlock after fork from multithreaded process

arch-specfic bugs fixed:
- s390x SO_PEERSEC definition was wrong
- passing of 64-bit syscall arguments was broken on microblaze
- posix_fadvise was broken on mips due to missing 7-arg syscall support
- vrregset_t layout and member naming was wrong on powerpc64

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2019-07-31 16:51:46 +02:00
Kevin Darbyshire-Bryant
cbe08e6b56 toolchain/fortify-headers: Update to 1.1
Update fortify-headers to 1.1

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2019-07-28 09:43:49 +01:00
Rosen Penev
7fad676115 toolchain: Don't force GCC8 on ARC
This prevents overriding it to use GCC9.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[changed logic to not fall back on 7.4]
2019-07-07 13:02:05 +02:00
Christian Lamparter
75be34528d toolchain: musl: switch to https instead of git
Daniel Engberg requested switching over to https transport
since he seems to be stuck behind a corporate firewall that
does all the wrong things.

Rick Felker noted that this is "experimental and might break".
<https://www.openwall.com/lists/musl/2019/03/27/1>.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2019-06-22 13:17:47 +02:00
Joseph Benden
88c07c6552 toolchain: Add GCC 9.1.0 release
Most of the patches are copied over from GCC 8.3.

The following patches are backported from the GCC 9.X development branch:
toolchain/gcc/patches/9.1.0/970-recompute-dom-fast-queries-before-vn.patch
toolchain/gcc/patches/9.1.0/975-g++-ICE-with-generic-lambda.patch

The specs file changed with gcc 9, now it contains "%@{L*}" instead of
"%{L*}" in older GCC versions.

Signed-off-by: Joseph Benden <joe@benden.us>
2019-06-16 16:40:08 +02:00
Alexander Couzens
79948e9d61
replace links towards lede-project.org with openwrt.org
Modify VERSION_SUPPORT_URL VERSION_REPO
Replace BUGS variable in toolchain/gcc/common.mk

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2019-06-11 01:46:53 +02:00
Karl Pálsson
3b36aae9d5 toolchain: replace LEDE in help text
Use generic wording.

Signed-off-by: Karl Pálsson <karlp@etactica.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [fixed a -> á]
2019-06-10 11:31:52 +02:00
Hans Dedecker
f21c8577bb glibc: update to latest 2.27 commit (BZ #24531)
54ba8bcd423 Fix tcache count maximum (BZ #24531)

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2019-05-23 14:17:21 +02:00
Hans Dedecker
5c742c86ef glibc: update to latest 2.27 commit
f9c3c12f336 Fix crash in _IO_wfile_sync (bug 20568)

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2019-05-16 19:05:57 +02:00
Alexandru Ardelean
aecd0e09c9 toolchain/binutils: use default Host/Configure rule
This seems to have been omitted over-time.
Using the default Host/Configure seems to work fine.

The last patches to have touched this in a major way were ~10 years ago:
33a0eb3613 ("cosmetic & coherency fixes")
7eb1589875 ("build system refactoring in preparation for allowing
              packages to do host-build steps")

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2019-05-11 23:10:10 +02:00
Daniel Golle
9cb3a3255e toolchain/nasm: update to version 2.14
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-05-11 01:30:00 +02:00
Hans Dedecker
6b5346e7ed glibc: update to latest 2.27 commit (BZ #18035)
1961e5c7296 elf: Fix pldd (BZ#18035)

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2019-04-29 16:14:33 +02:00
Koen Vandeputte
82625374ee toolchain/musl: update to version 1.1.22
new features:
- priority-inheritance mutexes
- membarrier syscall, pre-registration to use it, fallback emulation
- header-level support for new linux features in 4.19, 4.20, 5.0

major internal changes:
- complete, async-safe view of all existent threads as global list
- robust __synccall based on new thread list
- new dynamic TLS is installed synchronously at dlopen
- TLSDESC resolver functions no longer make bad ABI assumptions to call C
- resolved shared library dependencies are now recorded

compatibility & conformance:
- dependency-order shared library constructor execution
- sigaltstack no longer rejects SS_AUTODISARM, future flags
- FILE is now a complete (dummy) type in pre-C11 feature profiles
- setvbuf reports failure on invalid arguments
- TSVTX is exposed unconditionally in tar.h
- multithreaded set*id() no longer depends on /proc
- key slot reuse after pthread_key_delete no longer depends on /proc

bugs fixed:
- failures in multithreaded set*id() with concurrent thread creation/exit
- interposed free was called from invalid/inconsistent contexts
- freeaddrinfo performed invalid free of some partial results lists
- dlsym dependency order search had false negatives and false positives
- dn_skipname gave wrong results for labels with 8-bit content
- dcngettext clobbered errno, often breaking printing of error messages
- sscanf read past end of buffer under certain conditions (1.1.21 regression)
- pthread_key_create spuriously failed under race condition (1.1.21 regression)
- fdopendir wrongly succeeded with O_PATH file descriptors
- gets behaved incorrectly in presence of null bytes
- namespace violations in c11 tsd and mutex function dependencies
- incorrect prototype for makecontext (unimplemented)

arch-specfic bugs fixed:
- s390x had wrong values for POSIX_FADV_DONTNEED/_NOREUSE

Extensively tested on dozens of devices, covering most popular architectures.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Signed-off-by: Dainis Jonitis <dainis.jonitis@ubnt.com>
Signed-off-by: Roman Yeryomin <roman@advem.lv>
2019-04-23 13:29:04 +02:00
Kevin Darbyshire-Bryant
13ffdf4482 toolchain/binutils: refresh patches
Fix hunk offset warnings.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2019-04-21 15:15:23 +01:00
Hans Dedecker
8f1cbef12e glibc: update to latest 2.27 commit [BZ #22964]
de9d4aa353 ja_JP locale: Add entry for the new Japanese era [BZ #22964]

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2019-04-08 16:07:11 +02:00
Boris Krasnovskiy
4cf991bedb toolchain: ARM: Fix option conflict with multiarch
This problem exposed when compiling glibc, but applicable across the
board. gcc compiles runtime libraries for all supported architectures,
unless otherwise specified, and later selects applicable library based
-m[arch,cpu,*] options, thus these options should not be passed to gcc
as they break the compilation process.

Signed-off-by: Boris Krasnovskiy <borkra@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[modified so it only touches ARM - I'm too chicken, changed authors email]
2019-03-25 21:19:05 +01:00
Boris Krasnovskiy
8dcc108760 toolchain: ARM: Fix toolchain compilation for gcc 8.x
Set the toolchain's ARM CPU and FPU architectures by utilizing' gcc's
--with-cpu / --with-fpu configure options that: "Specify which cpu
variant the compiler should generate code for by default. cpu will
be used as the default value of the -mcpu= switch."

This will resolve the following kernel compilation failures under
gcc 8.x on ARM because the kernel wants to set (possibly conflicting)
optimization flags.

.../ccyVnmrs.s:204: Error: selected processor does not support `dmb ish' in ARM mode
.../ccyVnmrs.s:215: Error: architectural extension `mp' is not allowed for the current base architecture
.../ccyVnmrs.s:216: Error: selected processor does not support `pldw [r4]' in ARM mode

Because this is a big change, the .config and toolchain need to be
refreshed (as in removed and regenerated).

Reported-by: Ansuel Smith <ansuelsmth@gmail.com>
Reported-by: Daniel Engberg <daniel.engberg.lists@pyret.net> [#1203]
Signed-off-by: Boris Krasnovskiy <borkra@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [extended commit message,
removed now-deprecated CPU_CFLAGS, changed author to gmail address]
2019-03-25 21:15:58 +01:00
Hans Dedecker
076c11a3aa glibc: update to latest 2.27 commit
1ab314d8d3 S390: Mark vx and vxe as important hwcap.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2019-03-22 10:57:05 +01:00
Daniel Engberg
8568dcd931 toolchain: Remove binutils 2.29 for ARC targets
Remove binutils 2.29 for ARC targets

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2019-03-20 18:23:39 +01:00
Daniel Engberg
da6ba853ce toolchain: Use binutils 2.32 by default for ARC
Use binutils 2.32 by default for ARC targets

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2019-03-20 18:23:39 +01:00
Daniel Engberg
075c76ea67 toolchain: Remove GCC 7.1 for ARC targets
Remove GCC 7.1 for ARC targets

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2019-03-20 18:23:39 +01:00
Daniel Engberg
343b36ffc7 toolchain: Use GCC 8.3.0 by default for ARC
Use GCC 8.3.0 by default for ARC targets
Includes a fix by Evgeniy Didin which fixes GCC version selection if
DEVEL isn't set

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2019-03-20 18:23:39 +01:00
Daniel Engberg
894a79d67b toolchain/binutils: Add binutils 2.32
Add binutils 2.32 to repo

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2019-02-26 23:20:04 +01:00
Daniel Engberg
40aec89b4c toolchain: Update to GCC 8.3.0
Update GCC to 8.3.0
Refresh patches
Allow GCC to be used for ARC
Source: https://github.com/openwrt/openwrt/pull/1803#issuecomment-462334890

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2019-02-26 23:20:04 +01:00
Daniel Engberg
700c0edc06 toolchain/gcc: Remove workaround for GCC 4.8
GCC 4.8 was removed a long time ago...

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2019-02-26 23:20:04 +01:00
Daniel Engberg
a0dfab220d toolchain/binutils: Remove 2.30
Remove binutils 2.30

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2019-02-17 19:22:39 +01:00
Hans Dedecker
e3311cb138 glibc: update to latest 2.27 commit [BZ #24180]
9f44fa22cb Add compiler barriers around modifications of the robust mutex list for pthread_mutex_trylock. [BZ #24180]

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2019-02-09 21:07:16 +01:00
Christian Lamparter
917e6d772c toolchain/musl: update to version 1.1.21
<https://www.openwall.com/lists/musl/2019/01/21/8>
"This release makes improvements with respect to default thread stack
size, including increasing the default from 80k to 128k, increasing
the default guard size from 4k to 8k, and allowing the default to be
increased via ELF headers so that programs that need larger stacks can
be build without source-level changes, using just LDFLAGS.
Insufficient stack size for AIO threads on kernels that don't honor
the constant MINSIGSTKSZ is also fixed.

The glob core has been rewritten to fix inability to see past
searchable-but-unreadable path components, and to avoid excessive
stack usage and unnecessary syscalls. The tsearch AVL tree
implementation has also been rewritten for better size and
performance. The math library adds more native single-instruction
implementations for arm, s390x, powerpc, and x86_64.

Various bugs are fixed, including several possible deadlocks, one of
which was a new regression in 1.1.20."

detailed release notes can be found in the WHATSNEW file:
<http://git.musl-libc.org/cgit/musl/tree/WHATSNEW#n1989>

Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2019-02-05 19:35:40 +01:00
Hans Dedecker
420376ab50 glibc: update to latest 2.27 commit (BZ #24155,BZ #24097)
2ebadb6451 x86-64 memcmp: Use unsigned Jcc instructions on size [BZ #24155]
3a5ae8db68 x86-64 strnlen/wcsnlen: Properly handle the length parameter [BZ #24097]
2c016ffa24 x86-64 strncpy: Properly handle the length parameter [BZ #24097]
d8457edece x86-64 strncmp family: Properly handle the length parameter [BZ #24097]
55f8812858 x86-64 memset/wmemset: Properly handle the length parameter [BZ #24097]
efc3714845 x86-64 memrchr: Properly handle the length parameter [BZ #24097]
a4690969ed x86-64 memcpy: Properly handle the length parameter [BZ #24097]
6465327195 x86-64 memcmp/wmemcmp: Properly handle the length parameter [BZ #24097]
50117e00a1 x86-64 memchr/wmemchr: Properly handle the length parameter [BZ #24097]

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2019-02-04 22:43:19 +01:00
Hans Dedecker
b88907e62a toolchain/gcc: backport FORTIFY patch to 5.5.0
Commit e61061a088 added support for hardening
options  in the toolchain. However this breaks the gcc5.5.0 compilation in
case FORTIFY_SOURCE is set different from FORTIFY_SOURCE_NONE as reported
in [1].
Fix this by backporting the upstream patch which fixes this in later gcc versions

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?format=multiple&id=61164

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2019-02-04 09:35:11 +01:00
protonesso
d018b55a18 update uClibc-ng from 1.0.30 to 1.0.31
Signed-off-by: protonesso <nagakamira@gmail.com>
2019-01-27 01:04:53 +01:00
Jo-Philipp Wich
ceb625439a musl: improve crypt() size hack
Instead of silently downgrading any non-MD5 crypt() request to DES,
cleanly fail with return NULL and errno = ENOSYS. This allows callers
to notice the missing support instead of the unwanted silent fallback
to DES.

Also add a menuconfig toolchain option to optionally disable the crypt
size hack completely. This can be probably made dependant on SMALL_FLASH
or a similar feature indicator in a future commit.

Ref: https://github.com/openwrt/openwrt/pull/1331
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-01-22 12:08:03 +01:00
Koen Vandeputte
4ef4ca4581 toolchain/gdb: bump to 8.2.1
PR build/23516 (gdb build error under msys+mingw: strip can't handle gdb-add-index.exe)
PR build/23623 (install-strip fails)
PR rust/23626 (gdb crashes in upstream rust nil-enum test)
PR rust/23650 (rust field name access error mentions "foo")
PR gdb/23663 (gdb 8.1.1: undefined rpl_stat function with musl toolchains)
PR python/23669 (gdb.execute("show commands") doesn't work)
PR python/23714 (Command repetition stops working after gdb.execute)
PR gdb/23838 (8.2 regression for invalid -data-directory)
PR gdb/23974 ("info os" crash when specifying invalid object)
PR gdb/23999 (SYMBOL_LANGUAGE assertion failure on AIX)
PR gdb/24003 (Error when binary searching CUs for a specific DIE when using DWZ)

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2019-01-07 17:09:06 +01:00
Hans Dedecker
b3664bc702 glibc: update to latest 2.27 commit (BZ #24018)
68c2930a56 NEWS: add entries for bugs 23275, 23861, and 23907
766e8fb932 intl: Do not return NULL on asprintf failure in gettext [BZ #24018]

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2019-01-07 15:16:12 +01:00
Hans Dedecker
e9e63c5a9a glibc: update to latest 2.27 commit (BZ #24027, BZ #23927)
3981fc3453 malloc: Always call memcpy in _int_realloc [BZ #24027]
f6d0e8c36f Fix rwlock stall with PREFER_WRITER_NONRECURSIVE_NP (bug 23861)
2794474c65 powerpc: Add missing CFI register information (bug #23614)
d8ca7a0c71 Fix _dl_profile_fixup data-dependency issue (Bug 23690)
f1e211096b inet/tst-if_index-long: New test case for CVE-2018-19591 [BZ #23927]
4e9f34e54f support: Implement <support/descriptors.h> to track file descriptors
e75481a7a7 support: Close original descriptors in support_capture_subprocess
0f79dc0be3 support_quote_string: Do not use str parameter name
6b2dd53aa0 support: Implement support_quote_string
50477165b9 malloc: Add another test for tcache double free check.
4b246928bd malloc: tcache double free check

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2019-01-01 22:31:43 +01:00
Hauke Mehrtens
af1aa07b07 gcc: update to version 7.4.0
This updates the GCC to the next minor release which fixes 178 bugs.
The two removed patches are included in gcc 7.4.0

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2018-12-15 15:25:03 +01:00
Hans Dedecker
a969e96e47 glibc: update to latest 2.27 commit (BZ #23927)
f6d0e8c36f Fix rwlock stall with PREFER_WRITER_NONRECURSIVE_NP (bug 23861)
2794474c65 powerpc: Add missing CFI register information (bug #23614)
d8ca7a0c71 Fix _dl_profile_fixup data-dependency issue (Bug 23690)
f1e211096b inet/tst-if_index-long: New test case for CVE-2018-19591 [BZ #23927]
4e9f34e54f support: Implement <support/descriptors.h> to track file descriptors
e75481a7a7 support: Close original descriptors in support_capture_subprocess
0f79dc0be3 support_quote_string: Do not use str parameter name
6b2dd53aa0 support: Implement support_quote_string
50477165b9 malloc: Add another test for tcache double free check.
4b246928bd malloc: tcache double free check

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-12-14 16:18:32 +01:00
Hans Dedecker
476336fe66 glibc: update to latest 2.27 commit (BZ #23927)
9f433fc791 CVE-2018-19591: if_nametoindex: Fix descriptor for overlong name [BZ #23927]

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-12-06 11:47:36 +01:00
Hans Dedecker
1dcaef8410 glibc: update to latest 2.27 commit
1517dfb8aa Add an additional test to resolv/tst-resolv-network.c
1050634904 libanl: properly cleanup if first helper thread creation failed (bug 22927)

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-11-22 10:11:22 +01:00
Hans Dedecker
69734416d2 glibc: update to latest 2.27 commit (BZ#23709,BZ#23822)
d8eee5ef55 x86: Fix Haswell CPU string flags (BZ#23709)
5cd5309d91 i64: fix missing exp2f, log2f and powf symbols in libm.a [BZ #23822]
1759ea197b conform: XFAIL siginfo_t si_band test on sparc64

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-11-05 14:22:17 +01:00
Hans Dedecker
70315fe144 glibc: update to latest 2.27 commit (BZ #23562, BZ #23275)
77b4b8231e signal: Use correct type for si_band in siginfo_t [BZ #23562]
5bdb6897fc Fix race in pthread_mutex_lock while promoting to PTHREAD_MUTEX_ELISION_NP [BZ #23275]

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-10-23 15:57:51 +02:00
Daniel Engberg
d27d87c910 toolchain/musl: Don't override optimization set by upstream
Don't override optimization set by upstream.
Provides a speed increase for internal (library), malloc and string
operations in musl.

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
[add : to PKG_RELEASE release variable for consistency]
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2018-10-20 14:22:56 +01:00
Hans Dedecker
79982b26bb toolchain/glibc: update to 2.27+
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-10-16 11:37:59 +02:00
Daniel Engberg
fface27db8 binutils: Use 2.31.1 by default
Set binutils 2.31.1 as default

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2018-10-07 02:10:15 +02:00
Daniel Engberg
754a08e8d9 toolchain/binutils: Fix u-boot on some armhf platforms
Backport commit 3d9c8f6b3f033a6092425b7344647fb51dbed5c6
Without this binutils doesn't properly link u-boot

Source:
https://sourceware.org/bugzilla/show_bug.cgi?id=23571

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2018-10-07 02:10:15 +02:00
Daniel Engberg
969d052e96 toolchain/fortify-headers: Update to 1.0
Update fortify-headers to 1.0

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2018-10-07 02:10:15 +02:00
Felix Fietkau
dee8804de0 build: drop buildbot toolchain rebuild check when not using git
The check cleans and rebuilds the toolchain if it changed on update.
When building from a source tarball, it is reasonable to expect that
there will be no updates, so no rebuild check is necessary

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-09-24 11:03:20 +02:00
Christian Lamparter
1801e60390 toolchain/musl: update to version 1.1.20
This release introduces the ability to replace/interpose the allocator
(malloc) subject to certain restrictions, adds an experimental m68k
port, and makes notable improvements to stdio (application-provided
buffers), getaddrinfo (AI_ADDRCONFIG, support for IPv4-only kernel
configurations), the dynamic linker (safety against dlopen of
libraries using initial-exec TLS model, reclaiming unused memory on
FDPIC archs, better dladdr results), and handling of default thread
stack size (pthread_setattr_default_np now works more reliably).

Many bugs have been fixed, including potentially dangerous regressions
in iconv (only for new conversions to legacy encodings) and visibly
incorrect behavior in printf on non-x86 archs (%a format with
precision specifier), in getopt_long_only when short options are a
prefix for a long option, in complex arc-trig/hyperbolic functions, in
strftime and mktime (timezone-specific issues), and numerous
less-obvious places.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[altered commit msg a bit keeping it tight]
Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2018-09-21 13:25:08 +02:00
Hans Dedecker
24d82c2e5c toolchain/glibc: update to latest 2.26 commit
c5c90b480e Fix segfault in maybe_script_execute.
174709d879 pthread_cond_broadcast: Fix waiters-after-spinning case [BZ #23538]

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-09-13 11:06:30 +02:00
Koen Vandeputte
c24d02d154 toolchain/gdb: bump to 8.2
*** Changes in GDB 8.2

 Support for the following target has been added:

    RiscV ELF (riscv*-*-elf)

 Support for following targets and native configurations has been removed:

    m88k running OpenBSD (m88*-*-openbsd*)
    SH-5/SH64 ELF (sh64-*-elf*)
    SH-5/SH64 (sh*)
    SH-5/SH64 running GNU/Linux (sh*-*-linux*)
    SH-5/SH64 running OpenBSD (sh*-*-openbsd*)

 Various Python API enhancements
 Aarch64/Linux enhancements:

    SVE support.
    Hardware watchpoints improvements for entities stored at unaligned addresses.
        New "c" response to disable the pager for the rest of the current command.
        C expressions can now use _Alignof, and C++ expressions can now use alignof.
        Improved flexibility for loading symbol files.
        The 'info proc' command nows works on running processes on FreeBSD systems as well as core files created on FreeBSD systems.
        A new --enable-codesign=CERT configure option to automatically codesign GDB after build (useful on MacOS X).

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2018-09-07 17:21:24 +02:00
Syrone Wong
2fb95f7142 toolchain/gcc: update 8.x to 8.2.0
This release fixes LTO link-time performance problems and C++ bug introduced in GCC 8.1

Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
2018-08-20 09:24:33 +02:00
Syrone Wong
713cee6463 toolchain/gcc: add config symbol to determine how to apply path remapping
Added boolean symbol for GCC 8 and higher, when we add newer GCC, we don't have
to modify rules.mk to keep things consistant.

Fixes: da9d760 ("rules.mk: replace iremap when using GCC 8")

Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
2018-08-20 09:24:29 +02:00
Hans Dedecker
7402cc7160 toolchain/glibc: update to latest 2.26 commit
c9570bd2f5 x86: Populate COMMON_CPUID_INDEX_80000001 for Intel CPUs [BZ #23459]
86e0996b1a x86: Correct index_cpu_LZCNT [BZ #23456]
cf6deb084b conform/conformtest.pl: Escape literal braces in regular expressions
b12bed3e06 stdio-common/tst-printf.c: Remove part under a non-free license [BZ #23363]
20dc7a909a libio: Add tst-vtables, tst-vtables-interposed
4b10e69b1f Synchronize support/ infrastructure with master
762e9d63d5 NEWS: Reorder out-of-order bugs
2781bd5a86 libio: Disable vtable validation in case of interposition [BZ #23313]

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-08-07 14:28:48 +02:00
Koen Vandeputte
3df400c87e toolchain/gdb: bump to 8.1.1
GDB 8.1.1 brings the following fixes and enhancements over GDB 8.1:

 * PR gdb/22824 (misleading description of new rbreak Python function in GDB 8.1 NEWS file)
 * PR gdb/22849 (ctrl-c doesn't work in extended-remote)
 * PR gdb/22907 ([Regression] gdbserver doesn't work with filename-only binaries)
 * PR gdb/23028 (inconsistent disassemble of vcvtpd2dq)
 * PR gdb/23053 (Fix -D_GLIBCXX_DEBUG gdb-add-index regression)
 * PR gdb/23127 ([AArch64] GDB cannot be used for debugging software that uses high Virtual Addresses)
 * PR server/23158 (gdbserver no longer functional on Windows)
 * PR breakpoints/23210 ([8.1/8.2 Regression] Bogus Breakpoint address adjusted from 0xf7fe7dd3 to 0xfffffffff7fe7dd3)

GDB 8.1 includes the following changes and enhancements:

  * Breakpoints on C++ functions are now set on all scopes by default
    ("wild" matching);

  * Support for inserting breakpoints on functions marked with C++ ABI tags;

  * Target floating-point arithmetic emulation during expression evaluation
    (requires MPFR 3.1 or later);

  * Various Python Scripting enhancements;

  * Improved Rust support; in particular, Trait objects can now be inspected
    when debugging Rust code;

  * GDB no longer makes assumptions about the type of symbols without
    debugging information to avoid producing erroneous and often confusing
    results;

  * The 'enable' and 'disable' commands now accept a range of breakpoint
    locations;

  * New 'starti' command to start the program at the first instruction;

  * New 'rbreak' command to insert a number of breakpoints via a regular
    expression pattern (requires Python);

  * The 'ptype' command now supports printing the offset and size of
    the fields in a struct;

  * The 'gcore' command now supports dumping all the memory mappings
    ('-a' command-line option);

  * New shortcuts for TUI Single-Key mode: 'i' for stepi, and 'o' for nexti;

  * GDBserver enhancements:
    ** Support for transmitting environment variables to GDBserver;
    ** Support for starting inferior processes with a specified initial
       working directory;
    ** On Unix systems, support for globbing expansion and variable
       substitution of inferior command-line arguments;

  * Various completion enhancements;

  * The command used to compile and inject code with the 'compile' command
    is now configurable;

  * New '--readnever' command-line option to speed the GDB startup when
    debugging information is not needed;

  * Support for the following new native configurations:
    ** FreeBSD/aarch64 (aarch64*-*-freebsd*);
    ** FreeBSD/arm (arm*-*-freebsd*);

  * Support for the following new targets:
    ** FreeBSD/aarch64 (aarch64*-*-freebsd*);
    ** FreeBSD/arm (arm*-*-freebsd*);
    ** OpenRISC ELF (or1k*-*-elf)

  * Removed support for the following targets and native configurations:
    ** Solaris2/x86 (i?86-*-solaris2.[0-9]);
    ** Solaris2/sparc (sparc*-*-solaris2.[0-9]);

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
2018-08-01 16:12:53 +02:00
Daniel Engberg
a93b6edfec toolchain/binutils: Add binutils 2.31.1
Add binutils 2.31.1 to repo

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2018-07-30 10:35:11 +02:00
Syrone Wong
139f99c058 toolchain/gcc: add GCC 8.1.0
Changes compared to GCC 7.x

001-revert_register_mode_search.patch dropped

The underlying issue is described at the end of
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58139

It is fixed by the upstream commit:
3fa2798aa8

020-PR-libstdc-81797-Add-.NOTPARALLEL-to-include-Makefil.patch dropped due to already upstream

100-PR-rtl-optimization-83496.patch dropped due to already upstream

910-mbsd_multi.patch
modified to fix ambiguous overloaded inform() call error

gcc/input.h
header: define UNKNOWN_LOCATION ((source_location) 0)

-        inform (0, "someone does not honour COPTS correctly, passed %d times",
-         honour_copts);
+        inform (UNKNOWN_LOCATION, "someone does not honour COPTS correctly, passed %d times",
+         honour_copts);

940-no-clobber-stamp-bits.patch dropped due to fixed upstream by another way
upstream commit: 87b2d547f8

950-cpp_file_path_translation.patch dropped, Both -fmacro-prefix-map and -ffile-prefix-map are added
to gcc 8.1.0, if I understand it correctly, we should use -fmacro-prefix-map
usage: -fmacro-prefix-map=@var{old}=@var{new}
upstream commit: 859b51f836

-iremap exists as a flag for a long time, for backward compatibility, I think we should keep the
variable name unchanged but change its value in rules.mk for gcc 8.x and higher.

Compile and run tested on x86_64

Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
2018-07-22 17:16:47 +02:00
Felix Fietkau
9b965d3b71 binutils: remove version 2.27
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-07-10 14:26:35 +02:00
Felix Fietkau
7c3e3eb098 binutils: update to version 2.30, resolves issues with LTO
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-07-10 14:26:35 +02:00
Felix Fietkau
55055aee50 binutils: backport an upstream fix for a linker bug that triggers with LTO
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-07-10 14:26:35 +02:00
Felix Fietkau
a5188eb258 nasm: disable LTO, remove host specific workarounds
The recent build failures on various platforms were apparently caused by
the fact that LTO build support in the configure script does not check
if it has a suitable version of gcc and simply assumes that gcc-ar is
available and can be used for intermediate files.

Since we really don't need to build nasm with LTO, simply disable it and
keep the whole build more portable

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-07-10 13:09:57 +02:00
Hauke Mehrtens
e204717ef2 toolchain/nasm: force ar and ranlib only on macOSX
On Debian 9 nasm does not build when we force it to use ranlib, for
macOSX this is needed. Only force this on macOSX and not on any other
OS, this should fix the build of nasm on Linux systems. On my Debian
system the nasm configure script selects  gcc-ranlib and gcc-ar instead.

Fixes: d3a7587eb9 ("toolchain/nasm: fix missing AR/RANLIB variables")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2018-07-08 14:22:54 +02:00
Ted Hess
328ddcf628 toolchain/nasm: Backport GCC8 compatibility fix from upstream repo
Signed-off-by: Ted Hess <thess@kitschensync.net>
2018-07-07 16:15:02 -04:00
Felix Fietkau
d3a7587eb9 toolchain/nasm: fix missing AR/RANLIB variables
Fixes build on macOS

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-07-07 14:53:26 +02:00
Ted Hess
0f543883cd toolchain: Replace YASM with NASM
Packages libx264 and ffmpeg are built with ASM options on x86 platforms.
The current libx264 version no longer builds with YASM and requires NASM.
ffmpeg 3.x can be built with either YASM or NASM however, furture 4.x versions
will require NASM.

Signed-off-by: Ted Hess <thess@kitschensync.net>
Acked-by: Rosen Penev <rosenp@gmail.com>
2018-07-05 10:17:06 -04:00
Kevin Darbyshire-Bryant
900d86766b toolchain: gdb: enable TUI
The GDB Text User Interface (TUI) is a terminal interface
which uses the curses library to show the source file,
the assembly output, the program registers and GDB
commands in separate text windows.

In other words it's a friendlier interface for idiots like me!

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2018-07-03 14:19:10 +01:00
Hans Dedecker
e705342bf8 toolchain/glibc: update to latest 2.26 commit
74d16a57a3 Check length of ifname before copying it into to ifreq structure.
3aaf8bda00 getifaddrs: Don't return ifa entries with NULL names [BZ #21812]
f958b45d52 Use _STRUCT_TIMESPEC as guard in <bits/types/struct_timespec.h> [BZ #23349]
81b994bd83 Fix parameter type in C++ version of iseqsig (bug 23171)

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-07-02 14:31:18 +02:00
Matthias Schiffer
4b50854a60
musl: sys/socket.h: fix SO_PEERSEC value on MIPS
Differing from all other archs supported by musl, MIPS defines SO_PEERSEC
to 30 instead of 31.

Patch has also been submitted upstream.

Reported-by: Andrey Jr. Mlenikov <temnota.am@gmail.com>
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-06-24 17:24:53 +02:00
Hans Dedecker
c22117a791 toolchain/glibc: update to latest 2.26 commit
7b52c8ae05 libio: Avoid _allocate_buffer, _free_buffer function pointers [BZ #23236]

Refresh patches

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-06-11 18:07:47 +02:00
Felix Fietkau
29e2f9ea5b gcc: remove support for version 6.3.0
It is obsoleted by gcc 7

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-06-05 09:27:33 +02:00
Hans Dedecker
a70a0a529f toolchain/glibc: update to latest 2.26 commit
4df8479e6b Add NEWS entry for CVE-2018-11236
a5bc5ec967 Add references to CVE-2018-11236, CVE-2017-18269
58ad5f8a64 Add a test case for [BZ #23196]
6b4362f2cb Don't write beyond destination in __mempcpy_avx512_no_vzeroupper (bug 23196)

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-05-30 20:39:29 +02:00
Hans Dedecker
43d70a7a9d toolchain/glibc: update to latest 2.26 commit
af7519f7b3 Fix path length overflow in realpath [BZ #22786]
365722ace6 Fix stack overflow with huge PT_NOTE segment [BZ #20419]
be056fae3b Fix blocking pthread_join. [BZ #23137]
02f0dd83a4 Fix signed integer overflow in random_r (bug 17343).
3241353ab2 i386: Fix i386 sigaction sa_restorer initialization (BZ#21269)
677e6d13e0 [BZ #22342] Fix netgroup cache keys.
71d339cb86 Fix i386 memmove issue (bug 22644).
31e2d15b80 Fix crash in resolver on memory allocation failure (bug 23005)
1f7c4748d6 getlogin_r: return early when linux sentinel value is set
7e7a5f0bcd resolv: Fully initialize struct mmsghdr in send_dg [BZ #23037]

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-05-23 15:40:16 +02:00
Evgeniy Didin
83e9262703 uClibc-ng: update to 1.0.30
uClibc-ng 1.0.28 does not provide PF_VSOCK/AF_VSOCK definitions,
which causes iproute2 v4.16.0 compile errors.
In commit 57f2f80383b5 ("bits/socket.h: add missing defines")
necessary defines were included and iproute2 builds fine.
This commit now is part of uClibc-ng 1.0.30.
Lets update uClibc-ng to latest 1.0.30 version.

Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Cc: John Crispin <john@phrozen.org>
2018-05-22 07:20:26 +02:00
Yousong Zhou
f172456edc toolchain: gccgo: fix building gccgo compiler
Fixes FS#1498.  "gccgo -static" can fail for missing linker flag
-lgcc_eh caused by patch 850-use_shared_libgcc.patch

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2018-05-07 13:33:44 +08:00
Daniel Engberg
097f3aadec toolchain/binutils: Use xz tarballs where possible
Switch to xz for 2.29.1 and 2.30
These tarballs are about 10Mbyte smaller than bz2.

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2018-04-29 18:58:20 +02:00
Johann Neuhauser
0370293cf3 glibc: switch from git to https
This is needed for working behind a http proxy.

Signed-off-by: Johann Neuhauser <jneuhauser@dh-electronics.de>
2018-04-29 10:30:59 +02:00
Daniel Engberg
044e84fa8a toolchain/binutils: Remove old patches
Remove patches for arc-2016.09
Commit 8647f4f018
made these patches obsolete

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2018-04-26 13:20:31 +02:00
Hans Dedecker
ddb70e7298 toolchain/binutils: completely remove 2.28 support
Commit 15e9639159 removed support for
binutils version 2.28 but did not remove it as selectable item
from Binutils Version; let's remove this leftover as well.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-04-26 10:42:09 +02:00
Hyeonsik Song
594dbaa262 toolchain/glibc: unset LD_LIBRARY_PATH
Fix build error when use glibc

Signed-off-by: Hyeonsik Song <blogcin@naver.com>
2018-04-19 14:39:41 +02:00
Hans Dedecker
50433f313f glibc: update glibc to 2.26+ and switch to download from git
Switch glibc to 2.26+ [0] and download the sources from git which will it
make easier to update glibc in the future.

For an overview of the fixed bugs and CVE related fixes in 2.26+ see the
NEWS file [1]

[0] https://sourceware.org/git/?p=glibc.git;a=commit;h=d300041c533a3d837c9f37a099bcc95466860e98
[1] https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=410f0d163145c1549fb73fdd96568f585b5bf62f;hb=refs/heads/release/2.26/master

Signed-off-by: Xinxing Hu <xinxing.huchn@gmail.com>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-03-13 18:26:40 +01:00
Hans Dedecker
3dee117a8a glibc: fix applying of patches
Commit f4d9d7a removed support for version specific patches; but it also
broke applying of patches in the patches glibc dir.
Fix the issue by setting PATCH_DIR to $(PATH_PREFIX)/patches similar as
musl/common.mk.

Signed-off-by: Xinxing Hu <xinxing.huchn@gmail.com>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
2018-03-13 18:26:36 +01:00
Felix Fietkau
4fd8722056 toolchain/binutils: exclude .rej files when unpacking the tarball
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-03-12 21:29:24 +01:00
Felix Fietkau
15e9639159 toolchain/binutils: remove version 2.28
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-03-12 20:06:09 +01:00
Hauke Mehrtens
c7ced2f4a4 binutils: Use version 2.29.1 by default
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2018-03-12 20:04:45 +01:00
Felix Fietkau
e28551b103 toolchain/binutils: add support for version 2.30
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-03-12 20:01:07 +01:00
Felix Fietkau
61eee1adfb toolchain/gcc: switch to version 7 by default
Newer GCC versions are reported to improve code size on various ARM
devices, which is why newer u-boot versions require them now.
There have also been user reports of data corruption issues fixed on
MIPS by updating from GCC 5 to GCC 7.

This update was previously held up by these two MIPS compile issues,
which have since been fixed:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83496
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-03-12 12:19:23 +01:00
Felix Fietkau
16cec7ae67 toolchain/gcc: merge pending fix for miscompiled MIPS16 code issue (GCC PR 84790)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-03-12 12:19:07 +01:00
Felix Fietkau
fe98f2679c toolchain/gcc: fix a build failure on 7.3.0 with macOS
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-03-12 12:19:03 +01:00
Hauke Mehrtens
87606e25af musl: update to version 1.1.19
This updates musl from a commit between 1.1.18 and 1.1.19 to the final
release of the version 1.1.19.
This mostly fixes bugs in musl.

The size of the uncompressed binary is increased by about 4 KB.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2018-03-11 23:42:38 +01:00
Felix Fietkau
1198204a6f toolchain: fix selecting older gcc versions for x86
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-02-27 09:01:01 +01:00
Felix Fietkau
25aaff9100 gcc: merge upstream fix for PR 83496 (fixes FS#814)
This bug was causing miscompiled code related to branch delay slots

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-02-26 19:13:55 +01:00
Felix Fietkau
38dc678166 gcc: refresh patches for version 7.3.0
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-02-26 19:13:55 +01:00
Felix Fietkau
7a97588bc6 toolchain/gcc: use version 7.x for x86 by default
This is needed for retpoline support, which mitigates the spectre
attacks.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-02-21 20:57:30 +01:00
Felix Fietkau
65ae02d602 toolchain/gcc: remove unused config symbol
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-02-21 20:57:24 +01:00
Hauke Mehrtens
e387a1b4e4 toolchain: gdb: activate on ARM64
gdb supports ARM64 since quite some time now, activate it there like on
other CPU architectures.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2018-02-10 20:15:52 +01:00
Hauke Mehrtens
bcd17ce9a3 binutils: assertion failure bfd/elfxx-mips.c:3860
With forced PIE and SSP support I ran into this assertion failure.
backport two patches to fix this problem from the binutils 2.28 branch.
This fix is already included in binutils 2.28.1 and 2.29.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2018-01-27 22:51:59 +01:00
Hauke Mehrtens
1a8523c835 toolchain: gcc: update 7.x to 7.3.0
This version still generates broken code in our setup for MIPS.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2018-01-27 19:54:52 +01:00
Julien Dusser
241e6dd3e9 build: cleanup SSP_SUPPORT configure option
Configure variable SSP_SUPPORT is ambiguous for packages (tor, openssh,
avahi, freeswitch). It means 'toolchain supporting SSP', but for toolchain
and depends it means 'build gcc with libssp'.

Musl no longer uses libssp (1877bc9d8f), it has internal support, so
SSP_SUPPORT was disabled leading some package to not use SSP.

No information why Glibc and uClibc use libssp, but they may also provide
their own SSP support. uClibc used it own with commit 933b588e25 but it was
reverted in f3cacb9e84 without details.

Create an new configure GCC_LIBSSP and automatically enable SSP_SUPPORT
if either USE_MUSL or GCC_LIBSSP.

Signed-off-by: Julien Dusser <julien.dusser@free.fr>
2018-01-27 19:02:48 +01:00
Julien Dusser
55779569eb toolchain: add gcc configure default PIE and SSP
GCC supports starting version 5 --enable-default-ssp and starting version 6
--enable-default-pie.

It produces hardened binaries by default without dealing with package
compilation flags.

Signed-off-by: Julien Dusser <julien.dusser@free.fr>
2018-01-27 19:02:47 +01:00