dwarves is a set of tools that use the debugging information inserted in
ELF binaries by compilers such as GCC. Utilities in the dwarves suite
include pahole, which can be used to find alignment holes in structs and
classes, and also extracts other information such as CPU cacheline
alignment, helping pack those structures to achieve more cache hits.
These tools are also used to encode and read the BTF type information
format used with the bpf syscall, making this a Linux build dependency
when using kernel BTF information.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
[bump to 1.23, add elfutils dep, drop host lib usage, drop cmake release
target, use RM macro]
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Changes:
new features:
- qsort_r function (POSIX-future)
- pthread_getname_np extension function
- hard float on SPE FPU for powerpc-sf
- SEEK_DATA and SEEK_HOLE exposed in unistd.h (Linux extensions)
compatibility:
- free now preserves errno (POSIX-future requirement)
- setjmp is declared explicitly with returns_twice for non-GCC compilers
- macro version of isascii is no longer defined for C++
- dynamic linker now tolerates zero-length LOAD segments
- epoll_[p]wait is now a cancellation point
- pwd/grp functions no longer fail on systems without AF_UNIX support
- POSIX TZ parsing is stricter to allow more names to fallback to files
- NULL is now defined as nullptr when used in C++11 or later
- gettext now accepts null pointer as argument
bugs fixed:
- old regression in wcwidth of Hangul combining (vowel/final) letters
- duplocale used wrong malloc when malloc was replaced (1.2.2 regression)
- fmaf rounded wrong on archs without FE_TOWARDZERO (all softfloat archs)
- popen didn't honor requirement not to leak other popen pipe fds to child
- aligned_alloc and variants crashed on allocation failure
- dl_iterate_phdr reported incorrect module TLS pointers
- mishandling of some inputs in acoshf and expm1f and functions using them
- potentially wrong-sign zero in cproj functions at infinity
- multiple bugs in legacy function cuserid
- minor posix_spawn file actions API conformance issues
- pthread_setname_np fd leak
- out-of-bound read in zoneinfo handling with distant-past times
- out-of-tree builds lacked generated debug cfi for x86 asm
arch-specific bugs fixed:
- powerpc (32-bit) struct shmid_ds layout was wrong for some fields
- time64 struct layout was wrong in sound ioctl fallback (32-bit archs)
In addition it contains the following improvements:
* protect stack canary from leak via read-as-string by zeroing second byte
* fix excessively slow TLS performance on some mips models
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
Tested-by: Rui Salvaterra <rsalvaterra@gmail.com>
Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This is a minor corrective release over GDB 11.1, fixing the following issues:
* PR sim/28302 (gdb fails to build with glibc 2.34)
* PR build/28318 (std::thread support configure check does not use CXX_DIALECT)
* PR gdb/28405 (arm-none-eabi: internal-error: ptid_t remote_target::select_thread_for_ambiguous_stop_reply(const target_waitstatus*): Assertion `first_resumed_thread != nullptr' failed)
* PR tui/28483 ([gdb/tui] breakpoint creation not displayed)
* PR build/28555 (uclibc compile failure since commit 4655f8509fd44e6efabefa373650d9982ff37fd6)
* PR rust/28637 (Rust characters will be encoded using DW_ATE_UTF)
* PR gdb/28758 (GDB 11 doesn't work correctly on binaries with a SHT_RELR (.relr.dyn) section)
* PR gdb/28785 (Support SHT_RELR (.relr.dyn) section)
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
72123e1b56 NEWS: Add a bug entry for BZ #28755
08beb3a3f4 x86: Fix __wcsncmp_evex in strcmp-evex.S [BZ# 28755]
b50d5b746c x86: Fix __wcsncmp_avx2 in strcmp-avx2.S [BZ# 28755]
1b9cd6a721 NEWS: add bug entry for BZ #28769 and BZ #28770
3438bbca90 Linux: Detect user namespace support in io/tst-getcwd-smallbuff
d084965adc realpath: Avoid overwriting preexisting error (CVE-2021-3998)
472e799a5f getcwd: Set errno to ERANGE for size == 1 (CVE-2021-3999)
8c8a71c85f tst-realpath-toolong: Fix hurd build
f7a79879c0 realpath: Set errno to ENAMETOOLONG for result larger than PATH_MAX [BZ #28770]
73c362840c stdlib: Fix formatting of tests list in Makefile
269eb9d930 stdlib: Sort tests in Makefile
062ff490c1 support: Add helpers to create paths longer than PATH_MAX
82b1acd9de powerpc: Fix unrecognized instruction errors with recent binutils
1d401d1fcc x86: use default cache size if it cannot be determined [BZ #28784]
6890b8a3ae CVE-2022-23218: Buffer overflow in sunrpc svcunix_create (bug 28768)
1081f1d3dd sunrpc: Test case for clnt_create "unix" buffer overflow (bug 22542)
7b5d433fd0 CVE-2022-23219: Buffer overflow in sunrpc clnt_create for "unix" (bug 22542)
5575daae50 socket: Add the __sockaddr_un_set function
03e6e02e6a Disable debuginfod in printer tests [BZ #28757]
705f1e4606 Update syscall lists for Linux 5.16
2fe2af88ab i386: Remove broken CAN_USE_REGISTER_ASM_EBP (bug 28771)
73558ffe84 Update syscall lists for Linux 5.15
e64235ff42 powerpc: Fix unrecognized instruction errors with recent GCC
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Enable --enable-bind-now when CONFIG_PKG_RELRO_FULL is set. This option
is activated by default. This will enable full RELRO protection.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Increase the minimum kernel version needed by the glibc compiled for
OpenWrt to version 5.4. With this setting the glibc build will remove
all code needed to support older kernel versions.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
glibc version 2.34 does not provide versioned shared libraries any more,
it only provides shared libraries using the ABI version. Do not try to
copy them any more.
The functions from libpthread and librt were integrated into the main
binary, the libpthread.so and librt.so are only used for backwards
compatibility any more.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Enable this option and thus re-include crypt() support for the SHA256,
SHA512 and Blowfish ciphers on all devices. According to commit
9365745f8e ("musl: add a hack to remove unused crypt() algorithms,
saves ~14k after lzma") it should add about ~14k to the resulting image,
which seems to be a reasonable size increase for consistent crypt()
support.
Decided to not remove this hack completely as it might be still useful
for people trying to fit custom images onto smaller devices and the
patch is rather simple so we can afford to keep it for now.
References: https://github.com/openwrt/openwrt/pull/1331
Signed-off-by: Petr Štetiar <ynezz@true.cz>
At configuration time, gcc assumes that ppc64be targets use the ELFv1
ABI, and ppc64le targets use the ELFv2 ABI. However, musl libc does not
support the ELFv1 ABI on ppc64 at all, regardless of the endianness.
Therefore, when building for a ppc64 arch and with musl libc, instruct
gcc to use the ELFv2 ABI.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93157 for more info.
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Reviewed-by: Rui Salvaterra <rsalvaterra@gmail.com>
This patch has been upstream since GCC 10.
Dragan Mladjenovic (2):
Emit .note.GNU-stack for soft-float linux targets.
Emit .note.GNU-stack for hard-float linux targets.
Link: https://gcc.gnu.org/g:a3c1e1f2ff88
Link: https://gcc.gnu.org/g:54b3d52c3cca
Add backport patch to define TARGET_LIBC_GNUSTACK on musl to add
.note.GNU-stack on hard-float MIPS targets.
Link: https://gcc.gnu.org/g:25abbb924968
The net effect should be the exact same functionality while following
upstream code instead of a custom outdated patch.
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Added patch for GCC to fix compilation issues on MacOS arm64
The original commit message from Przemysław Buczkowski:
GCC: Patch for Apple Silicon compatibility
This patch fixes a linker error occuring when compiling
the cross-compiler on macOS and ARM64 architecture.
Adapted from:
https://github.com/richfelker/musl-cross-make/issues/116#issuecomment-823612404
Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
This can be used to ensure that the compiled code is up to date, when
something important changes in the toolchain.
A recent example of this is the gcc 11 fix for a code miscompilation issue
Signed-off-by: Felix Fietkau <nbd@nbd.name>
When the prebuilt llvm toolchain is unpacked into the source dir,
it is automatically picked up and used by the build system, and eBPF
based packages can be selected
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This can be used for adding the toolchain to an existing tree without having
to build it from scratch.
Enable building the toolchain + tarball by default on buildbot
Signed-off-by: Felix Fietkau <nbd@nbd.name>
The removed patch was already applied upstream.
gdb now mandatory depends on gmp, tell configure where to find it
explicitly. We already build gmp in the tools directory for gcc. Also
make it use mpfr and mpc as we also build both of them.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This patch never went upstream so remove it. GCC should already add such
a check to the common functions.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Remove GLOB_ONLYDIR patch. Only fstools relies on it. fstools has been
fixed separately.
Remove woresize.h file. It seems to be for an old version of GCC.
Remove features.h and glibc-types files. Same as above.
Remove sys/cdefs.h. This is a deprecated header. Patches to fix packages
that use it have already been patched.
Tested with all packages in the base tree. They all compile.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
This release introduces 64-bit time_t, which is needed to avoid the
year 2038 problem.
Remove upstream patches. Refreshed others.
Rebased features.h file based on latest musl.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
This line should have been removed in 244847da "build: remove GCC9
support" but stayed in tree after an incomplete rebase. Fix it.
Signed-off-by: Paul Spooren <mail@aparcar.org>
The development branch is now on version 10, we shouldn't drag to many
old versions and therefore drop at least 7.x.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Acked-by: Rosen Penev <rosenp@gmail.com>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
gcc9 was never used within a release and the development branch is
already on version 10, no need to keep this in tree.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Acked-by: Rosen Penev <rosenp@gmail.com>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
Add gcc 11 version. Same patches of gcc 10.
Build tested on: ipq806x ipq807x
Run tested on: ipq806x ipq807x
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[refresh patches]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
b5711025bc x86_64: Remove unneeded static PIE check for undefined weak diagnostic
edfd11197e wordexp: handle overflow in positional parameter number (bug 28011)
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
58b90461ae elf: Use _dl_catch_error from base namespace in dl-libc.c [BZ #27646]
8c06748c51 Fix use of __pthread_attr_copy in mq_notify (bug 27896)
4b6be914bd Use __pthread_attr_copy in mq_notify (bug 27896)
f4cba6ca1e dlfcn: Failures after dlmopen should not terminate process [BZ #15271]
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Compile gdb with python support optionally.
To use the Python support in gdb some extra python files are needed,
install them too. While at it also install other shared files which we
did not install before.
If gdb is built without Python support the python folder does not
exists.
Signed-off-by: Hauke Mehrtens <hmehrtens@maxlinear.com>
3f5080aedd nptl: Do not build nptl/tst-pthread-gdb-attach as PIE
36783141cf nptl: Check for compatible GDB in nptl/tst-pthread-gdb-attach
ea299b62e8 nptl_db: Support different libpthread/ld.so load orders (bug 27744)
162df872f0 x86: tst-cpu-features-supports.c: Update AMX check
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
For some reason, one of the configure checks results in some infinite
loop and ends up spawning endless gcc processes, causing OOM. Just pass
a configure var to avoid it.
Same fix as 6e23813c1e
Signed-off-by: Rosen Penev <rosenp@gmail.com>
e78ea9bd26 Update Nios II libm-test-ulps.
98bb18f52a malloc: Fix a realloc crash with heap tagging [BZ 27468]
fc4ecce85b S390: Also check vector support in memmove ifunc-selector [BZ #27511]
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
For some reason, one of the configure checks results in some infinite
loop and ends up spawning endless gcc processes, causing OOM. Just pass
a configure var to avoid it.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
autoconf-lean was not ready yet. Revert it until things get sorted.
This reverts commit 32c664ff02.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This was provided by the old static config.site files and is required by
some software, i.e. freeswitch.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
c5e3545897 tunables: Disallow negative values for some tunables
905fdc7071 x86: Use SIZE_MAX instead of (long int)-1 for tunable range value
15afd6b8d8 tunables: Simplify TUNABLE_SET interface
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
GCC 5.1 changed the std::string ABI in order to properly support C++11.
For compatibility with libraries compiled with the older ABI, that is,
linking between old-abi.so and new-abi.bin, both ABIs are enabled. In
terms of OpenWrt, all packages are compiled with the same toolchain,
which means these issues do not need to be handled.
Most importantly, this results in a significant size reduction of
libstdpp:
Before:
450794 bytes
After:
327752 bytes
Tested with all OpenWrt packages.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
4c619b3eed x86: Check IFUNC definition in unrelocated executable [BZ #20019]
87450ecf8a x86: Set header.feature_1 in TCB for always-on CET [BZ #27177]
2b4f67c2b3 Update for [BZ #27130] fix
1a24bbd43e x86-64: Avoid rep movsb with short distance [BZ #27130]
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
glibc does not officially support ARC700 so this adds the missing
pieces. I looked at uClibc-ng and a patch by Synopsis for glibc.
ran make toolchain/glibc/refresh to clean up fuzz.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Without this change no libc is selected and the build will fail. This
will select glibc for ARC CPUs.
Fixes: 95f1002aca ("toolchain: default to glibc for ARC")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
After musl was introduced, it was desired to remove uClibc-ng. As ARC
has no musl support, it was kept around. However, glibc 2.32 includes
ARC support. This makes it possible to finally remove it.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
GCC was used in 17.01 as the default compiler the last time. We do not
test this old GCC version any more and there are some known problems it
fails to compile the U-Boot for the Allwinner A64 SoC.
Just remove it to make it clear that we will not support this old GCC
version any more.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Paul Spooren <mail@aparcar.org>
Currently the check target fails if the kernel Git tree is used:
$ make toolchain/kernel-headers/{download,check}
make[2]: Entering directory 'toolchain/kernel-headers'
Makefile:105: *** ERROR: Unknown pack format for file openwrt/tmp/dl/. Stop.
make[2]: Leaving directory 'toolchain/kernel-headers'
toolchain/Makefile💯 recipe for target 'toolchain/kernel-headers/check' failed
Signed-off-by: Petr Štetiar <ynezz@true.cz>
The wcsnrtombs function in all musl libc versions up through 1.2.1 has
been found to have multiple bugs in handling of destination buffer
size when limiting the input character count, which can lead to
infinite loop with no forward progress (no overflow) or writing past
the end of the destination buffera.
This function is not used internally in musl and is not widely used,
but does appear in some applications. The non-input-limiting form
wcsrtombs is not affected.
All users of musl 1.2.1 and prior versions should apply the attached
patch, which replaces the overly complex and erroneous implementation.
The upcoming 1.2.2 release will adopt this new implementation.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
5c36293f06 resolv: Serialize processing in resolv/tst-resolv-txnid-collision
2dfa659a66 resolv: Handle transaction ID collisions in parallel queries (bug 26600)
05c025abca support: Provide a way to clear the RA bit in DNS server responses
f688bcd83d support: Provide a way to reorder responses within the DNS test server
eba0ce6058 Remove __warndecl
5337b2af4b Remove __warn_memset_zero_len [BZ #25399]
c6e794640c aarch64: Add unwind information to _start (bug 26853)
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
The ARC specific gdb was removed some time ago.
Fixes: 969690b33c ("toolchain/gdb: Don't use gdb-arc")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Instead of patching the tests out, just remove them with a configure
option.
No files were generates in the testsuite and unit-test directories.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
gdb 10.1 adds many new features for example gdbserver support for
- ARC GNU/Linux
- RISC-V GNU/Linux
Removed this patch, because similar changes are now integrated upstream:
toolchain/gdb/patches/100-no_extern_inline.patch
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add FTW_ACTIONRETVAL mode and update nftw library for walking file trees.
Update needed to build bpftool userspace utility from Linux kernel source.
Also increment PKG_RELEASE.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
SUSV3_LEGACY_MACROS are completely unused since SUSV3_LEGACY is enabled
HAS_OBSOLETE_BSD_SIGNAL is completely deprecated functionality.
HAS_BSD_RES_CLOSE is completely deprecated functionality.
HAS_FTW is deprecated SUSV4 functionality. Saves ~4.5kb.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Commit 53470bdf32 ("toolchain/binutils: Add binutils 2.34") logs refreshed
patches, but also adds a typo causing failed builds on mipsel64 platforms,
including the malta subtarget. Update the patch to fix this.
This fixes the following build error:
make[7]: *** No rule to make target 'elf64ltsmip.o', needed by 'ld-new'. Stop.
Fixes: FS#3276
Fixes: 53470bdf32 ("toolchain/binutils: Add binutils 2.34")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
We currently support four versions of binutils in parallel. Let's
just keep the latest two and drop the older ones before the next
one comes around.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
The toolchain packages partly contain local code like patches and
configuration files. These files are not tracked via PKG_VERSION as this
variable only covers the upstream package version.
To allow versioning of the buildsystem, this commit adds PKG_RELEASE:=1
to all toolchain packages with local files. Whenever a local file is
changed the release must be increased.
This does not touch binutils and gcc for now, as these provide multiple
versions within one package.
Also update the copyright of touched files to 2020.
Signed-off-by: Paul Spooren <mail@aparcar.org>
[exclude binutils/gcc from patch, adjust commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Switch to binutils version 2.34 for all CPUs by default. The ARC CPUs
do not need any special binutils version any more.
This increases the image size by 0.2% on MIPS (lantiq)
Tested on lantiq, ipq40xx
Acked-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Compared to GCC 9:
870-ppc_no_crtsavres.patch changes moved to another file following upstream
881-no_tm_section.patch keep the tm section disabled
patches refreshed to apply cleanly
See https://gcc.gnu.org/gcc-10/porting_to.html for more info
Compiled and run tested on x86_64
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
Add needed config changes and tarball hash for new GCC version.
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
[added missing commit description]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Removes the standalone implementation of stack smashing protection
in gcc's libssp in favour of the native implementation available
in glibc and uclibc. Musl libc already uses its native ssp, so this
patch does not affect musl-based toolchains.
Stack smashing protection configuration options are now uniform
across all supported libc variants.
This also makes kernel-level stack smashing protection available
for x86_64 and i386 builds using non-musl libc.
Signed-off-by: Ian Cooper <iancooper@hotmail.com>
To prevent "wrong" musl packages which have a new version number
but the package still contains an old version, because
PKG_SOURCE_VERSION was unchanged.
Ref: musl ml https://www.openwall.com/lists/musl/2020/05/22/4
Reviewed-by: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
1094741224 aarch64: Accept PLT calls to __getauxval within libc.so
a98b8b221c NEWS: Mention fixes for BZ 25810/25896/25902/25966
4c833bbebe x86-64: Use RDX_LP on __x86_shared_non_temporal_threshold [BZ #25966]
3b9ceb3320 NEWS: Mention bug 25639 fixed in 2.31 branch
bb44fe7711 oc_FR locale: Fix spelling of April (bug 25639)
f2ac792047 oc_FR locale: Fix spelling of Thursday (bug 25639)
18fdba553d Add a C wrapper for prctl [BZ #25896]
7c9e054afd powerpc: Rename argN to _argN in LOADARGS_N [BZ #25902]
9c5ae39a64 Add C wrappers for process_vm_readv/process_vm_writev [BZ #25810]
63c3696a4a Mark unsigned long arguments with U in more syscalls [BZ #25810]
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
This seems to be over 10 years old. It doesn't seem to be needed anymore.
Tested on malta with uClibc (selected BROKEN).
Signed-off-by: Rosen Penev <rosenp@gmail.com>
This will compile glibc in a way that it will only support kernel 4.14
and later. Compatibility code for older kernel versions will be removed.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This updates glibc to the most recent version 2.31.
001-regex-read-overrun.patch was a backport from a more recent version
and is integrated in glibc 2.31.
050-Revert-Disallow-use-of-DES-encryption-functions-in-n.patch is needed
to add the DES crypto functions back again. They were removed in glibc
2.28, but we still use them in ppp.
musl lib also provides these DES crypto functions. Without them we would
have to link ppp against openssl or an other crypto library.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This was introduced with 014d3b98b9 , which
is almost 10 years old. uClibc-ng does not suffer from this problem.
Note that this hack prevents libstdc++ from using C++11 math functions.
Tested by removing all of the mpd patches designed to fix this and
compiling.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
This backports the patch for GCC PR target/89587 (gcc's rs6000
configuration unconditionally sets MULTIARCH_DIRNAME, even when
multiarch is disabled).
This currently affects apm821xx and may cause issues when
cross-compiling packages, e.g. Python 3[1].
This includes patches for GCC 8 (with the changelog diff removed);
this change is already included in GCC 9.2 and 7.5.
[1]: https://github.com/openwrt/packages/issues/10552
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
[Removed patch for GCC 7.4.0, GCC 7.5.0 already contains this]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
bef0b1cb31 libio: Disable vtable validation for pre-2.1 interposed handles [BZ #25203]
4d5cfeb510 rtld: Check __libc_enable_secure before honoring LD_PREFER_MAP_32BIT_EXEC (CVE-2019-19126) [BZ #25204]
92f04eedb5 mips: Force RWX stack for hard-float builds that can run on pre-4.8 kernels
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Problem found by AddressSanitizer[1]:
Latest `grep` (git commit 1019e6e) compiled with asan may cause a
heap-buffer-overflow when `-i` is specified.
./grep -i '\(\(\)*.\)*\(\)\(\)\1' /bin/chvt
=================================================================
==16206==ERROR: AddressSanitizer: heap-buffer-overflow on address
1. https://debbugs.gnu.org/34140
Ref: https://sourceware.org/bugzilla/show_bug.cgi?id=24114
Signed-off-by: Alin Nastac <alin.nastac@gmail.com>
[commit title and description facelift]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
This updates the GCC to the next minor release which fixes +213 bugs.
Tested on ARMv6, ARMv7, MIPS R2, x86
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Kernel utilities (e.g. scripts/kconfig/conf) are being built to run on
the host system at this stage, therefore it makes no sense to use the
target system CC flags. Use HOSTCFLAGS instead
While we're here rename KMAKE macro to HOST_KMAKE to make it even more
obvious that we're building for host.
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
GDB 8.3.1 brings the following fixes and enhancements over GDB 8.3:
PR c++/20020 (GDB segfault on printing objects)
PR gdb/24454 (nat/x86-linux-dregs.c failed assertion)
PR breakpoints/24541 (Incorrect evaluation of systemtap probes due to register being signed and probe expression assuming unsigned)
PR symtab/24545 (Symbol loading performance regression with cc1)
PR gdb/24592 (amd64->i386 linux syscall restart problem)
PR gdb/25009 (terminate called after throwing an instance of 'srchilite::ParserException')
PR gdb/25010 (Calls to error () can cause SIGTTOU to send gdb to the background)
PR breakpoints/25011 (Breakpoints on file reloads broken for PIE binaries)
This corrective release also brings the following testsuite fixes and
enhancements:
PR testsuite/25005 (gdb-caching-proc.exp takes a lot of time on skip_opencl_tests)
PR testsuite/25016 (Test-case failures for -pie)
GDB 8.3 includes the following changes and enhancements:
* Support for new native configurations (also available as a target configuration):
- RISC-V GNU/Linux (riscv*-*-linux*)
- RISC-V FreeBSD (riscv*-*-freebsd*)
* Support for new target configurations:
- CSKY ELF (csky*-*-elf)
- CSKY GNU/Linux (csky*-*-linux)
- NXP S12Z ELF (s12z-*-elf)
- OpenRISC GNU/Linux (or1k*-*-linux*)
* Native Windows debugging is only supported on Windows XP or later.
* The Python API in GDB now requires Python 2.6 or later.
* GDB now supports terminal styling for the CLI and TUI.
Source highlighting is also supported by building GDB with GNU
Highlight.
* Experimental support for compilation and injection of C++ source
code into the inferior (requires GCC 7.1 or higher, built with
libcp1.so).
* GDB and GDBserver now support IPv6 connections.
* Target description support on RISC-V targets.
* Various enhancements to several commands:
- "frame", "select-frame" and "info frame" commands
- "info functions", "info types", "info variables"
- "info thread"
- "info proc"
- System call alias catchpoint support on FreeBSD
- "target remote" support for Unix Domain sockets.
* Support for displaying all files opened by a process
* DWARF index cache: GDB can now automatically save indices of DWARF
symbols on disk to speed up further loading of the same binaries.
* Various GDB/MI enhancements.
* GDBserver on PowerPC GNU/Linux now supports access to the PPR,
DSCR, TAR, EBB/PMU, and HTM registers.
* Ada task switching support when debugging programs built with
the Ravenscar profile added to aarch64-elf.
* GDB in batch mode now exits with status 1 if the last executed
command failed.
* Support for building GDB with GCC's Undefined Behavior Sanitizer.
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
1.1.24 release notes
new features:
- GLOB_TILDE extension to glob
- non-stub catgets localization API, using netbsd binary catalog format
- posix_spawn file actions for [f]chdir (extension, pending future standard)
- secure_getenv function (extension)
- copy_file_range syscall wrapper (Linux extension)
- header-level support for new linux features in 5.2
performance:
- new fast path for lrint (generic C version) on 32-bit archs
major internal changes:
- functions involving time are overhauled to be time64-ready in 32-bit archs
- x32 uses the new time64 code paths to replace nasty hacks in syscall glue
compatibility & conformance:
- support for powerpc[64] unaligned relocation types
- powerpc[64] and sh sys/user.h no longer clash with kernel asm/ptrace.h
- select no longer modifies timeout on failure (or at all)
- mips64 stat results are no longer limited to 32-bit time range
- optreset (BSD extension) now has a public declaration
- support for clang inconsistencies in wchar_t type vs some 32-bit archs
- mips r6 syscall asm no longer has invalid lo/hi register clobbers
- vestigial asm declarations of __tls_get_new are removed (broke some tooling)
- riscv64 mcontext_t mismatch glibc's member naming is corrected
bugs fixed:
- glob failed to match broken symlinks consistently
- invalid use of interposed calloc to allocate initial TLS
- various dlsym symbol resolution logic errors
- semctl with SEM_STAT_ANY didn't work
- pthread_create with explicit scheduling was subject to priority inversion
- pthread_create failure path had data race for thread count
- timer_create with SIGEV_THREAD notification had data race getting timer id
- wide printf family failed to support l modifier for float formats
arch-specific bugs fixed:
- x87 floating point stack imbalance in math asm (i386-only CVE-2019-14697)
- x32 clock_adjtime, getrusage, wait3, wait4 produced junk (struct mismatches)
- lseek broken on x32 and mipsn32 with large file offsets
- riscv64 atomics weren't compiler barriers
- riscv64 atomics had broken asm constraints (missing earlyclobber flag)
- arm clone() was broken when compiled as thumb if start function returned
- mipsr6 setjmp/longjmp did not preserve fpu register state correctly
Refreshed all patches.
Removed upstreamed.
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Main motivation for this commit is the introduction of
`-ffile-prefix-map=` which alows reproducible build path.
Compile tested on Linux and macOS without errors on the following
targets:
* ath79
* imx6
* brcm2708
* brcm63xx
* ixp4xx
* ramips
* sunxi
* x86
Thanks to Andre for the iremap fixup.
Ref: https://reproducible-builds.org/docs/build-path/
Tested-by: Andre Heider <a.heider@gmail.com>
Tested-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Signed-off-by: Paul Spooren <mail@aparcar.org>
[refactored into separate commit]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
-ffile-prefix-map=OLD=NEW is an alias for both -fdebug-prefix-map and
-fmacro-prefix-map and is available since GCC 8.
Co-Developed-by: Andre Heider <a.heider@gmail.com>
Signed-off-by: Andre Heider <a.heider@gmail.com>
Signed-off-by: Paul Spooren <mail@aparcar.org>
[refactored into separate commit]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
This backports a fix from GCC master to fix a internal compiler
exception seen when compiling libjson-c with mips16 activated.
Fixes: FS#2455
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5b4f7382af Add undef to fix test failure.
9456483fb2 Improve performance of memmem
373f8b06a3 Improve performance of strstr
4ec1b9e913 Fix strstr bug with huge needles (bug 23637)
ecd6271ed8 Speedup first memmem match
bba6b9288f Simplify and speedup strstr/strcasestr first match
7a4da6ef7a Improve strstr performance
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
5f0d2e0491 [AArch64] Add ifunc support for Ares
e6b7252040 aarch64,falkor: Use vector registers for memcpy
c74b884f70 aarch64,falkor: Ignore prefetcher tagging for smaller copies
0fc5934ebd aarch64/strncmp: Use lsr instead of mov+lsr
e0a0bd3acc aarch64/strncmp: Unbreak builds with old binutils
638caf3000 aarch64: Improve strncmp for mutually misaligned inputs
d5f45a29ff aarch64/strcmp: fix misaligned loop jump target
7f690fafad aarch64: Improve strcmp unaligned performance
40df047b3b aarch64: Fix branch target to loop16
062139f233 aarch64: Optimized memcmp for medium to large sizes
f3e2add213 aarch64: Use the L() macro for labels in memcmp
22bd3ab40e posix: Fix large mmap64 offset for mips64n32 (BZ#24699)
bdd16894aa aarch64: handle STO_AARCH64_VARIANT_PCS
0b48caab9a aarch64: add STO_AARCH64_VARIANT_PCS and DT_AARCH64_VARIANT_PCS
949da7f2fd io: Remove copy_file_range emulation [BZ #24744]
f056ac8363 libio: do not attempt to free wide buffers of legacy streams [BZ #24228]
5f90e009b1 NEWS: add entries for bugs 22964, 24180, and 24531
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
musl libc through 1.1.23 has an x87 floating-point stack adjustment
imbalance, related to the math/i386/ directory. In some cases, use of
this library could introduce out-of-bounds writes that are not present
in an application's source code.
This problem only affects x86 and no other architectures.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This happens only the second time a library is loaded by dlopen().
After lib1 is loaded, dlsym(lib1,"undef1") correctly resolves the undef
symbol from lib1 dependencies. After the second library is loaded,
dlsym(lib2,"undef1") was returning the address of "undef1" in lib2
instead of searching lib2 dependencies.
Using upstream fix which now uses the same logic for relocation time
and dlsym.
Fixesopenwrt/packages#9297
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Revert "mac80211: add new minstrel_ht patches to improve probing on mt76x2" (9861050b85)
Revert "kernel: use bulk free in kfree_skb_list to improve performance" (98b654de2e)
Revert "ramips: add preliminary support for WIO ONE" (085141dc5b)
Revert "ramips: add preliminary support for SGE AP-MTKH7-0006 developer board" (b1db6d0539)
Revert "build: use config.site generated by autoconf-lean, drop hardcoded sitefiles" (363ce4329d)
Revert "toolchain: add autoconf-lean" (fdb30eed03)
Revert "build: allow overriding the filename on the remote server when downloading" (6fa0e07758)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
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>
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>
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>
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]
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>
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>
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>