<feed xmlns='http://www.w3.org/2005/Atom'>
<title>staging/linusw/toolchain/musl, branch master</title>
<subtitle>Staging tree of Linus Walleij</subtitle>
<id>https://git-03.infra.openwrt.org/openwrt/staging/linusw/atom?h=master</id>
<link rel='self' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/'/>
<updated>2025-05-06T12:29:09Z</updated>
<entry>
<title>toolchain/musl: fix build regression on x86_64</title>
<updated>2025-05-06T12:29:09Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2025-05-06T12:28:51Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/commit/?id=0b1e1943d524afe9a039ef84330a2c1d42819d41'/>
<id>urn:sha1:0b1e1943d524afe9a039ef84330a2c1d42819d41</id>
<content type='text'>
Fix whitespace mangling which broke matching opcodes in the CFI patch

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>musl: add pending patch to fix CFI annotations</title>
<updated>2025-05-05T11:57:08Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2025-05-05T09:37:14Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/commit/?id=edd997a9ee2551e45f69dbc97cac70d404a2817b'/>
<id>urn:sha1:edd997a9ee2551e45f69dbc97cac70d404a2817b</id>
<content type='text'>
Fixes debugging at least on aarch64, possibly others.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>toolchain/musl: add support for renameat2()</title>
<updated>2024-06-13T12:16:32Z</updated>
<author>
<name>Tony Ambardar</name>
</author>
<published>2024-06-12T05:30:48Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/commit/?id=cc6a1e2abcdf32fc829755026f4dcb56d6dcde4a'/>
<id>urn:sha1:cc6a1e2abcdf32fc829755026f4dcb56d6dcde4a</id>
<content type='text'>
Backport an upstream patch to support the renameat2 syscall, added in Linux
3.15 and supported by glibc since 2.28. It is commonly used in filesystem
or security contexts, and needed building upstream kernel bpf selftests.

Link:
https://inbox.vuxu.org/musl/20240421153640.379015-1-Tony.Ambardar@gmail.com/

Signed-off-by: Tony Ambardar &lt;itugrok@yahoo.com&gt;
Link: https://github.com/openwrt/openwrt/pull/15697
Signed-off-by: Christian Marangi &lt;ansuelsmth@gmail.com&gt;
</content>
</entry>
<entry>
<title>toolchain/musl: fix loongarch64 ldso file name</title>
<updated>2024-05-04T06:12:56Z</updated>
<author>
<name>Weijie Gao</name>
</author>
<published>2024-04-17T16:08:24Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/commit/?id=197d90dc31741a5510cd2218eff0befa935312cd'/>
<id>urn:sha1:197d90dc31741a5510cd2218eff0befa935312cd</id>
<content type='text'>
GCC has changed musl dynamic linker name from
ld-musl-loongarch-lp64d.so.1 to ld-musl-loongarch64.so.1 recently [1].

This means there are two dynamic linker names will be used across different
ersions of GCC. But musl 1.2.5 only supports the new name while the GCC
we're currently using uses the old name.

To maintain compatibility with all versions of GCC, the musl is then patched
to generate two symbolic links to libc.so with both old and new names.

[1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8bccee51f0deac64b79cd9ad75df599422f4c8ff

Signed-off-by: Weijie Gao &lt;hackpascal@gmail.com&gt;
</content>
</entry>
<entry>
<title>toolchain/musl: Update to 1.2.5</title>
<updated>2024-04-14T15:38:09Z</updated>
<author>
<name>Hannu Nyman</name>
</author>
<published>2024-03-01T20:51:25Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/commit/?id=87d7fa8885e0bb09ee088bdcc1060ac99699d39e'/>
<id>urn:sha1:87d7fa8885e0bb09ee088bdcc1060ac99699d39e</id>
<content type='text'>
Update musl C library to 1.2.5

This release adds extension functions statx and preadv2/pwritev2,
with fallback implementations for older kernels, and adds two new
ports: loongarch64 and riscv32. Minor changes to the printf family
of functions have been made for conformance to new standards
interpretations/requirements. TLSDESC support for riscv64 has also
been added.

Bugs fixed include some DNS issues related to new TCP fallback
functionality, several rare race conditions, potentially incorrect
return value when glob aborts, and several signifiant arch-specific
bugs affecting TLSDESC on arm, riscv64 icache flushing, and
sh sigsetjmp and dlsym RTLD_NEXT.

1.2.5 release notes:

new features:
- statx function (linux extension; via syscall and fallback using fstatat)
- clone function is now usable and gives _Fork-like consistency in child
- statvfs now provides f_type result
- preadv2 and pwritev2 (linux extension) syscall wrappers
- riscv64 TLSDESC support

new ports:
- loongarch64
- riscv32

compatibility:
- DNS resolver can now handle answers with long CNAME chains
- string.h no longer provides (C23-incompat) non-prototype decl of basename
- fstatat statx backend now matches stat syscall non-automounting behavior
- mntent interfaces now handle escaped whitespace in paths/options

standards updates:
- printf %lc of nul wchar now produces output
- snprintf and swprintf no longer fail on n &gt; INT_MAX
- ppoll is now exposed in default feature profile

bugs fixed:
- some long DNS answers were wrongly rejected despite new TCP support
- glob could wrongly return GLOB_NOMATCH if aborted before any matches
- multithreaded set*id could malfunction from thread sequencing logic bug
- certain use of threads after fork could deadlock thread-list lock
- posix_spawn child could deadlock in race with async parent death
- mbrtowc return value was wrong if argument n exceeded UINT_MAX
- 80-bit extended acoshl and powl got some corner cases wrong
- syslog incorrectly generated localized timestamps

arch-specific bugs fixed:
- arm (32-bit) TLSDESC malfunctioned due to addends being processed wrong
- riscv64 icache flush operation was non-functional
- sh sigsetjmp failed to properly restore call-saved register r8 on return
- sh dlsym RTLD_NEXT did not identify calling module correctly

Signed-off-by: Hannu Nyman &lt;hannu.nyman@iki.fi&gt;
[Removed patch adding basename hack again]
Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
</content>
</entry>
<entry>
<title>toolchain: musl: add PKG_CPE_ID</title>
<updated>2023-09-14T20:39:20Z</updated>
<author>
<name>Arne Zachlod</name>
</author>
<published>2023-09-13T16:20:03Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/commit/?id=66315993445c8dbd29a5b7a16d3761edebf074d9'/>
<id>urn:sha1:66315993445c8dbd29a5b7a16d3761edebf074d9</id>
<content type='text'>
Vulnerabilities of musl libc are tracked as
cpe:/a:musl-libc:musl

Signed-off-by: Arne Zachlod &lt;arne@nerdkeller.org&gt;
</content>
</entry>
<entry>
<title>toolchain/musl: update to 1.2.4</title>
<updated>2023-05-15T18:39:17Z</updated>
<author>
<name>Linhui Liu</name>
</author>
<published>2023-05-07T08:05:45Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/commit/?id=fff878c5bcda6dea337c97a95721bf8cf73e4560'/>
<id>urn:sha1:fff878c5bcda6dea337c97a95721bf8cf73e4560</id>
<content type='text'>
Release notes:

new features:
- large dns record lookups via tcp fallback
- new getaddrinfo EAI_NODATA result to distinguish NODATA/NxDomain
- support for new RELR compressed format for relative relocations
- sysconf keys for querying signal stack size requirements
- real vfork on riscv64

performance:
- mallocng no longer uses MADV_FREE (high performance cost, little gain)
- vdso clock_gettime is supported once again on 32-bit arm

compatibility:
- gethostbyname family now distinguishes NO_DATA from HOST_NOT_FOUND
- res_send now works with caller-provided edns0 queries
- arpa/nameser.h RR types list is now up-to-date
- previously-missing POSIX confstr keys have been added
- mntent interfaces now accept missing fields
- alt signal stack, if any, is now used for internal signals
- the LFS64 macros are no longer exposed without _LARGEFILE64_SOURCE
- memmem (POSIX-future) is now exposed in default feature profile
- pthread_atfork now admits calls from an application-provided malloc
- debugger tracking of shared libraries now works on MIPS PIE binaries
- sendmsg now supports up to SCM_MAX_FD fds in SCM_RIGHTS messages

bugs fixed:
- gethostbyname[2]_r wrongly returned nonzero (error) on negative result
- parallel v4/v6 address queries could fail on query id collisions
- spurious getaddrinfo/AI_ADDRCONFIG failures due to errno clobbering
- dns search domains ending in dot (including lone dot) broke lookups
- ipv6 servers in resolv.conf broke lookups on systems with v6 disabled
- systems with bindv6only failed to query both v4 and v6 nameservers
- res_mkquery mishandled consecutive final dots in name
- res_send could malfunction for very small answer buffer sizes
- resolver dns backend accepted answers with wrong (A vs AAAA) RR type
- getservbyport_r returned junk or ENOENT (vs ERANGE) on buffer size errors
- dns result parsing of malformed responses could process uninitialized data
- freopen didn't reset stream orientation (byte/wide) &amp; encoding rule
- fwprintf didn't print most fields on open_wmemstream FILEs
- wide printf %lc ignored field width
- wide printf erroneously processed %n after encoding errors
- use of wide printf %9$ argument slot overflowed undersized buffer
- swprintf malfunctioned on nul character in output
- strverscmp ordered digit sequences vs nondigits incorrectly
- timer_create/SIGEV_THREAD failure leaked the thread
- semaphores were subject to missed-wake under certain usage patterns
- several possible rare deadlocks with lock handling at thread exit
- several possible rare deadlocks with aio and multithreaded fork
- dynamic linker relro processing was broken on archs w/variable pagesize
- async cancellation could run cancellation handlers in invalid context
- pthread_detach was wrongly a cancellation point in rare race code path
- use-after-close/double-close errors in mq_notify error paths
- mq_notify event thread wrongly ran with signals unmasked
- wcs{,n}cmp, wmemcmp returned wrong results when difference overflowed
- accept4, pipe2, and dup3 handled unknown flags wrong in fallback cases
- CPU_SETSIZE macro had wrong unit
- select fallback for pre-time64 kernels truncated timeout (vs clamping)

arch-specific bugs fixed:
- x32 new socketcalls took fallback path due to pointer sign extension
- x32 wait4 didn't fill rusage structure (time64 regression)
- x32 semtimedop mismatched timespec ABI with kernel (time64 regression)
- sigaction signal mask was bogus on or1k, microblaze, mips, and riscv
- powerpc-sf longjmp asm clobbered value argument
- or1k poll function passed timeout to syscall in wrong form

Removed upstreamed:
- 800-mips_pie_debug.patch
Manually rebased:
- 600-nftw-support-common-gnu-extension.patch

Signed-off-by: Linhui Liu &lt;liulinhui36@gmail.com&gt;
</content>
</entry>
<entry>
<title>toolchain/musl: remove libgcc_initial hack</title>
<updated>2023-02-19T18:44:39Z</updated>
<author>
<name>Andre Heider</name>
</author>
<published>2023-02-09T10:06:31Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/commit/?id=4d384d28e44138c7619c0ab68b95cac21eeafbbf'/>
<id>urn:sha1:4d384d28e44138c7619c0ab68b95cac21eeafbbf</id>
<content type='text'>
This reverts r15599 [0].

This was added to fix an uclibc rebuild issue, but since uclibc
isn't supported anymore [Fixes:] this can be removed.

[0] https://git.openwrt.org/?p=openwrt/svn-archive/archive.git;a=commitdiff;h=016a052efeee6bc2da3f501a8c66b5aea20350b4

Fixes: 63fb1752 "toolchain: remove uClibc-ng"
Signed-off-by: Andre Heider &lt;a.heider@gmail.com&gt;
</content>
</entry>
<entry>
<title>toolchain: musl: Fix symbol loading in gdb</title>
<updated>2023-01-22T01:00:35Z</updated>
<author>
<name>Hauke Mehrtens</name>
</author>
<published>2023-01-10T18:50:12Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/commit/?id=fcdd407e8e16b90e1995789ba217be5591a88d2f'/>
<id>urn:sha1:fcdd407e8e16b90e1995789ba217be5591a88d2f</id>
<content type='text'>
Fix DT_DEBUG handling on MIPS in musl libc.
With this change gdb will load the symbol files for shared libraries on MIPS too.

This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4

Signed-off-by: Hauke Mehrtens &lt;hmehrtens@maxlinear.com&gt;
</content>
</entry>
<entry>
<title>toolchain: musl: Update to version 1.2.3</title>
<updated>2022-04-11T19:41:03Z</updated>
<author>
<name>Hauke Mehrtens</name>
</author>
<published>2022-04-10T22:11:51Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/linusw/commit/?id=685ae2687bd1b199dc83ee1e16d47c05afca6102'/>
<id>urn:sha1:685ae2687bd1b199dc83ee1e16d47c05afca6102</id>
<content type='text'>
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 &lt;hauke@hauke-m.de&gt;
Acked-by: Rui Salvaterra &lt;rsalvaterra@gmail.com&gt;
Tested-by: Rui Salvaterra &lt;rsalvaterra@gmail.com&gt;
Tested-by: Koen Vandeputte &lt;koen.vandeputte@ncentric.com&gt;
</content>
</entry>
</feed>
