aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "toolchain/gcc: use zstd from tools"Christian Marangi2022-09-271-1/+0
| | | | | | | This reverts commit e6cc3ded0709aa6c7a190c31575bb5c19e204cd2. Require more testing as it does cause compilation error. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* toolchain/gdb: fix expat locationRosen Penev2022-09-271-1/+1
| | | | | | | GDB is not finding tools/expat. This fixes it. Move it up with the other tools. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* toolchain/gcc: use zstd from toolsRosen Penev2022-09-271-0/+1
| | | | | | pkgconfig is not used for some reason. Match other used tools. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* toolchain: Include ./include/fortify for external musl toolchainHauke Mehrtens2022-09-121-0/+1
| | | | | | | | | | | | | | When building with an external toolcahin with musl also include ./include/fortify by default. This is also done when we build with the internal toolchain using musl libc. Without this extra include the fortify source feature is not working when using an external musl toolchain. All binaries were compiled without fortify source when an external musl toolchain was used. All binaries release done by the OpenWrt project use the internal toolcahin where fortify source is working. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: gcc: improve patch handling by introducing major versionNick Hainke2022-09-1174-1/+2
| | | | | | | | | | | Every minor version bump of a major version will result in a huge patch diff because of the moving of all the patches from version e.g. 11.2.0 to 11.3.0. This commit only use the major version for the patch folders to differentiate between the different gcc versions. This will significantly improve the reviewing of the smaller version bump patches and help to see what really changed in a minor version bump. Signed-off-by: Nick Hainke <vincent@systemli.org>
* toolchain: gdb: update to 12.1Nick Hainke2022-09-022-3/+3
| | | | | | | | | | Release Notes: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gdb/NEWS;hb=gdb-12.1-release Refreshed patch: - 120-fix-compile-flag-mismatch.patch Signed-off-by: Nick Hainke <vincent@systemli.org>
* toolchain: bump GCC 12 to 12.2.0Nick Hainke2022-08-2819-9/+9
| | | | | | | | Refreshed patches: - 910-mbsd_multi.patch - 970-macos_arm64-building-fix.patch Signed-off-by: Nick Hainke <vincent@systemli.org>
* toolchain: glibc: Increase min kernel version to 5.10Hauke Mehrtens2022-08-151-1/+1
| | | | | | | | This removes all compatibility code normally compiled into glibc for kernel < 5.10 from our build. The build glibc version will only work with Linux kernel >= 5.10. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: glibc: Update to glibc 2.35Hauke Mehrtens2022-08-153-5/+5
| | | | | | This updates to glibc to version 2.35. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: Update glibc 2.34 to recent HEADHauke Mehrtens2022-08-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the following changes: 71326f1f2f nptl: Fix pthread_cancel cancelhandling atomic operations 3e0a91b79b scripts: Add glibcelf.py module f0c71b34f9 Default to --with-default-link=no (bug 25812) ca0faa140f misc: Fix rare fortify crash on wchar funcs. [BZ 29030] 0d477e92c4 INSTALL: Rephrase -with-default-link documentation bc56ab1f4a dlfcn: Do not use rtld_active () to determine ld.so state (bug 29078) 83cc145830 scripts/glibcelf.py: Mark as UNSUPPORTED on Python 3.5 and earlier 16245986fb x86-64: Optimize load of all bits set into ZMM register [BZ #28252] b5a44a6a47 x86: Modify ENTRY in sysdep.h so that p2align can be specified 5ec3416853 x86: Optimize memcmp-evex-movbe.S for frontend behavior and size 6d18a93dbb x86: Optimize memset-vec-unaligned-erms.S baf3ece634 x86: Replace sse2 instructions with avx in memcmp-evex-movbe.S f35ad30da4 x86-64: Improve EVEX strcmp with masked load a182bb7a39 x86-64: Remove Prefer_AVX2_STRCMP 2e64237a87 x86-64: Replace movzx with movzbl a7392db2ff x86: Optimize memmove-vec-unaligned-erms.S cecbac5212 x86: Double size of ERMS rep_movsb_threshold in dl-cacheinfo.h 7cb126e7e7 x86: Shrink memcmp-sse4.S code size 4bbd0f866a x86-64: Use notl in EVEX strcmp [BZ #28646] f3a99b2216 x86: Don't set Prefer_No_AVX512 for processors with AVX512 and AVX-VNNI c796418d00 x86: Optimize L(less_vec) case in memcmp-evex-movbe.S 9681691402 linux: Fix missing internal 64 bit time_t stat usage 55640ed3fd i386: Regenerate ulps 88a8637cb4 linux: Fix fchmodat with AT_SYMLINK_NOFOLLOW for 64 bit time_t (BZ#29097) c66c92181d posix/glob.c: update from gnulib bc6fba3c80 Add PF_MCTP, AF_MCTP from Linux 5.15 to bits/socket.h fd5dbfd1cd Update kernel version to 5.15 in tst-mman-consts.py 5146b73d72 Add ARPHRD_CAN, ARPHRD_MCTP to net/if_arp.h 6af165658d Update syscall lists for Linux 5.17 81181ba5d9 Update kernel version to 5.16 in tst-mman-consts.py 0499c3a95f Update kernel version to 5.17 in tst-mman-consts.py f858bc3093 Add SOL_MPTCP, SOL_MCTP from Linux 5.16 to bits/socket.h c108e87026 aarch64: Add HWCAP2_ECV from Linux 5.16 97cb8227b8 Add HWCAP2_AFP, HWCAP2_RPRES from Linux 5.17 to AArch64 bits/hwcap.h 31af92b9c8 manual: Clarify that abbreviations of long options are allowed 0d5b36c8cc x86: Optimize strcmp-avx2.S c41a66767d x86: Optimize strcmp-evex.S d299032743 x86-64: Fix strcmp-avx2.S 53ddafe917 x86-64: Fix strcmp-evex.S ea19c490a3 x86: Improve vec generation in memset-vec-unaligned-erms.S 190ea5f7e4 x86: Remove SSSE3 instruction for broadcast in memset.S (SSE2 Only) 5cb6329652 x86-64: Optimize bzero 70509f9b48 x86: Set .text section in memset-vec-unaligned-erms 5373c90f2e x86: Fix bug in strncmp-evex and strncmp-avx2 [BZ #28895] e123f08ad5 x86: Fix fallback for wcsncmp_avx2 in strcmp-avx2.S [BZ #28896] e4a2fb76ef manual: Document the dlinfo function 91c2e6c3db dlfcn: Implement the RTLD_DI_PHDR request type for dlinfo b72bbba236 fortify: Ensure that __glibc_fortify condition is a constant [BZ #29141] 8de6e4a199 x86: Improve L to support L(XXX_SYMBOL (YYY, ZZZ)) 6cba46c858 x86_64/multiarch: Sort sysdep_routines and put one entry per line 37f373e334 x86-64: Remove bzero weak alias in SS2 memset dd457606ca x86_64: Remove bcopy optimizations 3c55c20756 x86: Code cleanup in strchr-avx2 and comment justifying branch dd6d3a0bbc x86: Code cleanup in strchr-evex and comment justifying branch 0ae1006967 x86: Optimize strcspn and strpbrk in strcspn-c.c 0a2da01110 x86: Optimize strspn in strspn-c.c 0dafa75e3c x86: Remove strcspn-sse2.S and use the generic implementation 3811544655 x86: Remove strpbrk-sse2.S and use the generic implementation a4b1cae068 x86: Remove strspn-sse2.S and use the generic implementation 5997011826 x86: Optimize str{n}casecmp TOLOWER logic in strcmp.S 3605c74407 x86: Optimize str{n}casecmp TOLOWER logic in strcmp-sse42.S 3051cf3e74 x86: Add AVX2 optimized str{n}casecmp b13a2e68eb x86: Add EVEX optimized str{n}casecmp 80883f4354 x86: Remove AVX str{n}casecmp 4ff6ae069b x86: Small improvements for wcslen ffe75982cc x86: Remove memcmp-sse4.S df5de87260 x86: Cleanup page cross code in memcmp-avx2-movbe.S 0a11305416 x86: Optimize {str|wcs}rchr-sse2 00f09a14d2 x86: Optimize {str|wcs}rchr-avx2 596c9a32cc x86: Optimize {str|wcs}rchr-evex 1f83d40dfa elf: Remove unused NEED_DL_BASE_ADDR and _dl_base_addr b0bd6a1323 elf: Merge dl-sysdep.c into the Linux version 2139b1848e Linux: Remove HAVE_AUX_SECURE, HAVE_AUX_XID, HAVE_AUX_PAGESIZE 458733fffe Linux: Remove DL_FIND_ARG_COMPONENTS 08728256fa Linux: Assume that NEED_DL_SYSINFO_DSO is always defined 4b9cd5465d Linux: Consolidate auxiliary vector parsing 1cc4ddfeeb Revert "Linux: Consolidate auxiliary vector parsing" 28bdb03b1b Linux: Include <dl-auxv.h> in dl-sysdep.c only for SHARED ff900fad89 Linux: Consolidate auxiliary vector parsing (redo) be9240c84c elf: Remove __libc_init_secure 1e7b011f87 i386: Remove OPTIMIZE_FOR_GCC_5 from Linux libc-do-syscall.S 1a5b9d1a23 i386: Honor I386_USE_SYSENTER for 6-argument Linux system calls b38c9cdb58 Linux: Define MMAP_CALL_INTERNAL b2387bea84 ia64: Always define IA64_USE_NEW_STUB as a flag macro e7ca2a475c Linux: Implement a useful version of _startup_fatal 43d77ef9b8 Linux: Introduce __brk_call for invoking the brk system call ede8d94d15 csu: Implement and use _dl_early_allocate during static startup 89b638f48a S390: Enable static PIE c73c79af7d rtld: Use generic argv adjustment in ld.so [BZ #23293] b2585cae28 linux: Add a getauxval test [BZ #23293] 14770f3e04 string.h: fix __fortified_attr_access macro call [BZ #29162] 83ae8287c1 x86: Fallback {str|wcs}cmp RTM in the ncmp overflow case [BZ #29127] ff450cdbde Fix deadlock when pthread_atfork handler calls pthread_atfork or dlclose b349fe0722 misc: Use 64 bit stat for daemon (BZ# 29203) aa8a87f51d misc: Use 64 bit stat for getusershell (BZ# 29204) 9db6a597ef posix: Use 64 bit stat for posix_fallocate fallback (BZ# 29207) f9c3e57ac2 posix: Use 64 bit stat for fpathconf (_PC_ASYNC_IO) (BZ# 29208) 61fd3e0e74 socket: Use 64 bit stat for isfdtype (BZ# 29209) 34422108f4 inet: Use 64 bit stat for ruserpass (BZ# 29210) 52431199b5 catgets: Use 64 bit stat for __open_catalog (BZ# 29211) b3f935940e iconv: Use 64 bit stat for gconv_parseconfdir (BZ# 29213) 9947f2df19 socket: Fix mistyped define statement in socket/sys/socket.h (BZ #29225) 4c92a10412 powerpc: Fix VSX register number on __strncpy_power9 [BZ #29197] a7ec6363a3 nptl: Fix __libc_cleanup_pop_restore asynchronous restore (BZ#29214) 96944f0f81 hppa: Remove _dl_skip_args usage (BZ# 29165) bb4148283f nios2: Remove _dl_skip_args usage (BZ# 29187) 368c5c3e00 nss: add assert to DB_LOOKUP_FCT (BZ #28752) 94ab2088c3 nss: handle stat failure in check_reload_and_get (BZ #28752) 4b246b2bbd linux: Fix mq_timereceive check for 32 bit fallback code (BZ 29304) 7789a84923 nptl: Fix ___pthread_unregister_cancel_restore asynchronous restore 8d324019e6 x86_64: Remove end of line trailing spaces eb9aa96fac x86_64: Remove bzero optimization 8ab861d295 x86_64: Implement evex512 version of strlen, strnlen, wcslen and wcsnlen f6bc52f080 x86-64: Ignore r_addend for R_X86_64_GLOB_DAT/R_X86_64_JUMP_SLOT 82a707aeb7 x86_64: Add strstr function with 512-bit EVEX 70be93d1c5 x86: Create header for VEC classes in x86 strings library e805606193 x86: Add COND_VZEROUPPER that can replace vzeroupper if no `ret` 4901009dad x86: Optimize memrchr-sse2.S 83a986e9fb x86: Optimize memrchr-evex.S b05bd59823 x86: Optimize memrchr-avx2.S a910d7e164 x86: Shrink code size of memchr-avx2.S 3c87383a20 x86: Shrink code size of memchr-evex.S 820504e3ed x86: ZERO_UPPER_VEC_REGISTERS_RETURN_XTEST expect no transactions fc54e1fae8 x86: Align varshift table to 32-bytes 6e008c884d x86: Fix misordered logic for setting `rep_movsb_stop_threshold` 9d50e162ee x86: Add sse42 implementation to strcmp's ifunc 94b0dc9419 x86: Add bounds `x86_non_temporal_threshold` ba1c3f23d9 x86: Cleanup bounds checking in large memcpy case c51d8d383c x86: Add BMI1/BMI2 checks for ISA_V3 check d201c59177 x86: Align entry for memrchr to 64-bytes. aadd0a1c7c x86: Put wcs{n}len-sse4.1 in the sse4.1 text section f4598f0351 x86: Add definition for __wmemset_chk AVX2 RTM in ifunc impl list 7079931c51 x86: Move and slightly improve memset_erms 35f9c72c8b x86: Move mem{p}{mov|cpy}_{chk_}erms to its own file ccc54bd61c x86: Add missing IS_IN (libc) check to strncmp-sse4_2.S b991af5063 Update syscall-names.list for Linux 5.18 b2f32e7464 malloc: Simplify implementation of __malloc_assert 875b2414cd dlfcn: Pass caller pointer to static dlopen implementation (bug 29446) 4ab59ce4e5 Update syscall lists for Linux 5.19 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: binutils: add support for version 2.39Nick Hainke2022-08-136-0/+90
| | | | | | | Release notes: https://sourceware.org/pipermail/binutils/2022-August/122246.html Signed-off-by: Nick Hainke <vincent@systemli.org>
* toolchaini/gcc: fix libstdc++ dual abi modelIvan Maslov2022-07-071-1/+1
| | | | | | | | | | libstdcxx-dual-abi needs to be enabled to actually support C++11 ABI. Enable the config flag to also permit support of .NET 6 development on OpenWrt. Signed-off-by: Ivan Maslov <avenger_msoft@mail.ru> [ reword commit description and title ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* toolchain: add support for GCC 12Rui Salvaterra2022-06-0120-2/+625
| | | | | | | | | | | | | | | | GCC 12.1 is out. Add support for it. Deleted (upstreamed): 011-v12-configure-define-TARGET_LIBC_GNUSTACK-on-musl.patch 931-libffi-fix-MIPS-softfloat-build-issue.patch Deleted (unneeded?) 970-macos_arm64-building-fix.patch Other patches manually rebased due to C++ conversion and consequent file name changing (.c to .cc). Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* toolchain: bump GCC 11 to 11.3.0Rui Salvaterra2022-06-0122-123/+9
| | | | | | Remove an upstreamed patch and rebase all remaining patches. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* tools/dwarves: add host packageTony Ambardar2022-05-181-0/+8
| | | | | | | | | | | | | | | | | | 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>
* toolchain: Update glibc 2.34 to recent HEADHauke Mehrtens2022-04-192-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the following changes: 31186e2cb7 elf: Sort tests and modules-names 511b244cc5 elf: Add a comment after trailing backslashes de6cdd6875 elf/Makefile: Reflow and sort most variable assignments 948ebc098e Fix glibc 2.34 ABI omission (missing GLIBC_2.34 in dynamic loader) b952c25dc7 x86: Black list more Intel CPUs for TSX [BZ #27398] aa601d0244 x86: Use CHECK_FEATURE_PRESENT to check HLE [BZ #27398] e09e7b1492 support: Add support_socket_so_timestamp_time64 e098446037 linux: Fix ancillary 64-bit time timestamp conversion (BZ #28349, BZ#28350) 489d0b8b32 Linux: Only generate 64 bit timestamps for 64 bit time_t recvmsg/recvmmsg 008003dc6e tst-socket-timestamp-compat.c: Check __TIMESIZE [BZ #28837] 05c83ccaf5 linux: __get_nprocs_sched: do not feed CPU_COUNT_S with garbage [BZ #28850] ad615b59c7 Linux: Simplify __opensock and fix race condition [BZ #28353] d8302ba2da hurd if_index: Explicitly use AF_INET for if index discovery 6eaf10cbb7 socket: Do not use AF_NETLINK in __opensock 0351c75c5f linux: Fix missing __convert_scm_timestamps (BZ #28860) d64b08d5ba Add reference to BZ#28860 on NEWS 007e054d78 linux: fix accuracy of get_nprocs and get_nprocs_conf [BZ #28865] 04d60ce0f2 string: Add a testcase for wcsncmp with SIZE_MAX [BZ #28755] 38e0d24794 x86: Fallback {str|wcs}cmp RTM in the ncmp overflow case [BZ #28896] d093b677c3 x86: Test wcscmp RTM in the wcsncmp overflow case [BZ #28896] 15b00d2af0 x86: Fix TEST_NAME to make it a string in tst-strncmp-rtm.c d5d1c95aaf NEWS: Add a bug fix entry for BZ #28896 852361b5a3 localedef: Handle symbolic links when generating locale-archive 3be79b72d5 Fix elf/tst-audit2 on hppa c6f9085ee4 hppa: Fix swapcontext f610d2935f hppa: Revise gettext trampoline design 40fc6a74ee nptl: Fix cleanups for stack grows up [BZ# 28899] 6c9c230765 hppa: Fix warnings from _dl_lookup_address b5032c3d37 io: Add fsync call in tst-stat b53f0c11de nss: Do not mention NSS test modules in <gnu/lib-names.h> 54b1273395 nss: Protect against errno changes in function lookup (bug 28953) c82bdf033f Don't add access size hints to fortifiable functions 0e6ebf06e4 Make sure that the fortified function conditionals are constant 536910724d debug: Add tests for _FORTIFY_SOURCE=3 98ea9372cc __glibc_unsafe_len: Fix comment 10f7bdebe5 fortify: Fix spurious warning with realpath d6a58bd81d Enable _FORTIFY_SOURCE=3 for gcc 12 and above f8c2f620f1 debug: Autogenerate _FORTIFY_SOURCE tests 224d8c1890 debug: Synchronize feature guards in fortified functions [BZ #28746] 738ee53f0c hppa: Implement swapcontext in assembler (bug 28960) d53b9cc391 hppa: Use END instead of PSEUDO_END in swapcontext.S 4b5b8a1cdf powerpc: Delete unneeded ELF_MACHINE_BEFORE_RTLD_RELOC b19de59d62 elf: Avoid nested functions in the loader [BZ #27220] c6df39a0bd elf: Fix elf_get_dynamic_info definition b868b45f67 elf: Fix dynamic-link.h usage on rtld.c f6a54a3042 elf: Fix elf_get_dynamic_info() for bootstrap a31bbe3242 elf: Move LAV_CURRENT to link_lavcurrent.h e25fe99213 elf: Move la_activity (LA_ACT_ADD) after _dl_add_to_namespace_list() (BZ #28062) ce0cb6d1d2 elf: Add _dl_audit_objopen 66e9d27a09 elf: Add _dl_audit_activity_map and _dl_audit_activity_nsid ec0fc2a153 elf: Add _dl_audit_objsearch 198660741b elf: Add _dl_audit_objclose b2d99731b6 elf: Add _dl_audit_symbind_alt and _dl_audit_symbind 31473c273b elf: Add _dl_audit_preinit fd9c4e8a1b elf: Add _dl_audit_pltenter a8e211daea elf: Add _dl_audit_pltexit 29496b3103 elf: Avoid unnecessary slowdown from profiling with audit (BZ#15533) 02c6a3d353 elf: Add audit tests for modules with TLSDESC d1b9bee29a elf: Issue audit la_objopen for vDSO 2255621f0e elf: Do not fail for failed dlmopen on audit modules (BZ #28061) 98047ba95c elf: Add la_activity during application exit efb21b5fb2 elf: Fix initial-exec TLS access on audit modules (BZ #28096) 056fc1c0e3 elf: Issue la_symbind for bind-now (BZ #23734) b118bce87a elf: Fix runtime linker auditing on aarch64 (BZ #26643) 165e7ad459 Fix elf/tst-audit25a with default bind now toolchains aabdad371f elf: Replace tst-audit24bmod2.so with tst-audit24bmod2 4dca2d3a7b hppa: Fix bind-now audit (BZ #28857) ceed89d089 NEWS: Update fixed bug list for LD_AUDIT backports. 0c03cb54c8 S390: Add new s390 platform z16. 290db09546 nptl: Handle spurious EINTR when thread cancellation is disabled (BZ#29029) 5d8c777634 hurd: Fix arbitrary error code b87b697f15 mips: Fix mips64n32 64 bit time_t stat support (BZ#29069) Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: musl: Update to version 1.2.3Hauke Mehrtens2022-04-112-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* toolchain: binutils: add support for version 2.38Rui Salvaterra2022-03-096-0/+90
| | | | | | | | | | | | While at it, also fix the download.xs4all.nl and add ftp.gnu.org to the GNU mirrors, as it seems to be updated faster. Deleted (upstreamed): 600-Close_the_file_descriptor.patch [1] [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=5a98fb7513b559e20dfebdbaa2a471afda3b4742 Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* toolchain/binutils: remove old versionsFelix Fietkau2022-03-0715-362/+0
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain: glibc: Remove patch for ARC700Hauke Mehrtens2022-02-011-55/+0
| | | | | | The ARC700 target was renoved, this patch is not needed any more. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: gdb: Update to version 11.2Hauke Mehrtens2022-02-011-2/+2
| | | | | | | | | | | | | | 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>
* glibc: update to 2.34 HEADHans Dedecker2022-01-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* toolchain/binutils: v2.37 Close the file descriptor if there is no archive fdHirokazu MORIKAWA2022-01-081-0/+184
| | | | | | | | | | | | | | | | | | | This fixes the following build error: /home/build/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-11.2.0_musl/lib/gcc/aarch64-openwrt-linux-musl/11.2.0/../../../../aarch64-openwrt-linux-musl/bin/ld: /home/sergey/openwrt2/build_dir/target-aarch64_cortex-a53_musl/node-v14.18.2/out/Release/obj.target/tools/v8_gypfiles/libv8_base_without_compiler.a: error adding symbols: malformed archive collect2: error: ld returned 1 exit status It's a bad error handling related to -EMFILE (too many open files). nodejs is probably just very close to open file limit. https://sourceware.org/bugzilla/show_bug.cgi?id=28138 https://github.com/nodejs/node/issues/39452 https://github.com/openwrt/packages/issues/17496 https://github.com/openwrt/packages/issues/16729 https://github.com/openwrt/packages/issues/17164 Signed-off-by: Hirokazu MORIKAWA <morikw2@gmail.com> [Take full patch from 2.37 branch and refresh] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: glibc: Enable --enable-bind-nowHauke Mehrtens2022-01-071-0/+1
| | | | | | | 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>
* toolchain: glibc: Increase minimum kernel version to 5.4Hauke Mehrtens2022-01-071-1/+1
| | | | | | | | 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>
* toolchain: glibc: Update to version 2.34Hauke Mehrtens2022-01-073-8/+8
| | | | | | | | | | | | 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>
* toolchain: musl: disable crypt size hack by defaultPetr Štetiar2021-12-271-3/+4
| | | | | | | | | | | | | | | | Enable this option and thus re-include crypt() support for the SHA256, SHA512 and Blowfish ciphers on all devices. According to commit 9365745f8e7b ("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>
* toolchain/gcc: use ELFv2 ABI on ppc64 with muslStijn Tintel2021-12-211-0/+1
| | | | | | | | | | | | | | 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>
* toolchain/gcc: refresh gcc-11.2.0 patchIlya Lipnitskiy2021-12-171-7/+3
| | | | | | | | | Run make toolchain/gcc/minimal/refresh (with glibc, with musl toolchain/gcc/{initial,final}/refresh don't work) Fixes: ab241e0937c9 ("toolchain/gcc: fix build on MacOS arm64") Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
* toolchain/gcc: replace revert with upstream fixIlya Lipnitskiy2021-12-172-160/+114
| | | | | | | This will make upgrade to v11.3.0 easier and follows upstream more closely. Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
* toolchain/gcc: remove upstreamed patch, add backportIlya Lipnitskiy2021-12-172-111/+46
| | | | | | | | | | | | | | | | | | | | 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>
* toolchain/gcc: fix build on MacOS arm64Sergey V. Lobanov2021-12-021-0/+49
| | | | | | | | | | | | | | | | 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>
* toolchain: add a version that can be bumped to force toolchain/target rebuildFelix Fietkau2021-11-161-0/+1
| | | | | | | | 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>
* toolchain/gcc: revert a faulty upstream commit that caused miscompiled codeFelix Fietkau2021-11-161-0/+160
| | | | | | This broke at least the OKLI loader, but possibly other things as well Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: add support for using prebuilt LLVM toolchainFelix Fietkau2021-11-041-0/+14
| | | | | | | | 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>
* llvm-bpf: support creating a tarball in binFelix Fietkau2021-11-041-0/+2
| | | | | | | | 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>
* toolchain: gdb: Update to version 11.1Hauke Mehrtens2021-11-032-22/+5
| | | | | | | | | | 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>
* build: fix bpf toolchain dependency for qosifyFelix Fietkau2021-11-011-0/+13
| | | | | | Add hidden symbols to fix defaults with CONFIG_DEVEL unset Signed-off-by: Felix Fietkau <nbd@nbd.name>
* config: add choice for selecting the LLVM toolchain typeFelix Fietkau2021-11-011-6/+24
| | | | | | This is global for all BPF based packages Signed-off-by: Felix Fietkau <nbd@nbd.name>
* tools/llvm-bpf: add llvm+clang build suitable for compiling code to eBPFFelix Fietkau2021-10-201-0/+7
| | | | | | Preparation for building packages that ship eBPF code Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain/binutils: switch to version 2.37 by defaultPaul Spooren2021-09-222-2/+2
| | | | | | | | | | | | | | | | | | | Compile tests: * all Runtime tests: * ipq806x/generic * lantiq/mt7621 * lantiq/xrx200 * x86/64 Signed-off-by: Paul Spooren <mail@aparcar.org> Tested-by: Paul Spooren <mail@aparcar.org> Tested-by: Rosen Penev <rosenp@gmail.com> Tested-by: Andre Heider <a.heider@gmail.com> Tested-by: Ansuel Smith <ansuelsmth@gmail.com> Tested-by: Rui Salvaterra <rsalvaterra@gmail.com> Signed-off-by: Paul Spooren <mail@aparcar.org>
* toolchain/musl: Remove extra format attribute patchHauke Mehrtens2021-09-221-197/+0
| | | | | | | 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>
* toolchain/musl: remove several GNU headersRosen Penev2021-09-226-554/+0
| | | | | | | | | | | | | | | | 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>
* toolchain/musl: update to 1.2.2Rosen Penev2021-09-2212-316/+26
| | | | | | | | | | | 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>
* toolchain/gcc: switch to version 11 by defaultPaul Spooren2021-09-212-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | gcc10 seem to increase build size and gcc11 seem to fix that. Compile tests: * all Runtime tests: * ath79 * mpx85xx/p2020 * mvebu * x86/64 Special thanks to Rosen for fixing layerscape & bcm63xx Signed-off-by: Paul Spooren <mail@aparcar.org> Reviewed-by: Rui Salvaterra <rsalvaterra@gmail.com 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> Tested-by: Pawel Dembicki <paweldembicki@gmail.com> Tested-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
* toolchain/gcc: cleanup gcc9 config optionPaul Spooren2021-09-211-3/+0
| | | | | | | 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>
* build: remove GCC7 supportPaul Spooren2021-09-1925-1247/+0
| | | | | | | | | | | 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>
* build: remove GCC9 supportPaul Spooren2021-09-1920-848/+0
| | | | | | | | | | | | 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>
* glibc: update to latest 2.33 HEAD (bug 28213)Hans Dedecker2021-09-121-2/+2
| | | | | | | | | | 9b01145592 MIPS: Setup errno for {f,l,}xstat 9c676ef514 RISC-V: Update rv64 ULPs c6cadbf83a linux: Remove shmmax check from tst-sysvshm-linux 22d37364ae librt: add test (bug 28213) 27a78fd712 librt: fix NULL pointer dereference (bug 28213) Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* toolchain/gcc: switch to version 10 by defaultStijn Tintel2021-08-182-7/+7
| | | | | | | | | | | | | | | Runtime-tested on: * ath79 * bcm27xx/bcm2708 * bcm27xx/bcm2709 * bcm27xx/bcm2711 * mvebu/cortexa53 * octeon * realtek * x86/64 Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Acked-by: Hauke Mehrtens <hauke@hauke-m.de>