<feed xmlns='http://www.w3.org/2005/Atom'>
<title>staging/xback/toolchain, branch master</title>
<subtitle>Staging tree of Koen Vandeputte</subtitle>
<id>https://git.openwrt.org/openwrt/staging/xback/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/openwrt/staging/xback/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/xback/'/>
<updated>2026-09-22T16:46:30Z</updated>
<entry>
<title>toolchain: keep the build path out of the target libraries</title>
<updated>2026-09-22T16:46:30Z</updated>
<author>
<name>John Crispin</name>
</author>
<published>2026-09-21T20:32:00Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/xback/commit/?id=fa081cadb824d6b104386471eaecb217b665a9a9'/>
<id>urn:sha1:fa081cadb824d6b104386471eaecb217b665a9a9</id>
<content type='text'>
gcc builds the target libraries with CFLAGS_FOR_TARGET, which carries no
prefix map. __FILE__ therefore expands to an absolute path, and assert in
libstdc++ and the ryu code put seven of them into .rodata, where the strip
before packaging cannot reach them. The libstdcpp6 package differs between
two builds in different directories, and so does every image that ships it.

The published package shows the same thing. libstdcpp6-14.4.0-r5.apk of
bcm47xx/mips74k holds
/builder/shared-workdir/build/build_dir/toolchain-mipsel_74kc_gcc-14.4.0_musl/gcc-14.4.0/libstdc++-v3/src/c++11/debug.cc
so no rebuild of that package can match today.

iremap is called with BUILD_DIR for the kernel, with PKG_BUILD_DIR for a
package and with STAGING_DIR for the target headers. The toolchain build
directory has no such call. Add one for the three FOR_TARGET flag sets.

The replacement keeps the build_dir element, because the last element of
the toolchain build directory and of the toolchain staging directory is
the same string and one replacement for both would make the two roots
indistinguishable.

Tested with two bcm47xx/mips74k trees whose directory names differ in
length. The shipped libstdc++.so.6.0.33 holds no absolute path any more
and the libstdcpp6 package is now identical in both trees. It differed by
165 bytes before.

The toolchain staging directory still appears in the debug information of
the same library, 244 times. Those are DWARF include directories, they do
not survive the strip, and no shipped file carries them.

Signed-off-by: John Crispin &lt;john@phrozen.org&gt;
</content>
</entry>
<entry>
<title>toolchain: gcc: fix SHF_MERGE check with binutils 2.46</title>
<updated>2026-09-14T11:09:01Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-09-14T11:05:23Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/xback/commit/?id=796b5590ce66fe06c1fce5af199bdf61eb069689'/>
<id>urn:sha1:796b5590ce66fe06c1fce5af199bdf61eb069689</id>
<content type='text'>
gcc probes the assembler for section merging support with
'.section .rodata.str, "aMS", @progbits, 1', which on 32-bit arm the
'@' comment character truncates. gas 2.46 no longer accepts that form,
and since gcc's %progbits fallback probe reuses the same autoconf cache
variable it never runs, so HAVE_GAS_SHF_MERGE ends up 0. String
literals then land in one plain .rodata per translation unit instead of
per-function mergeable sections, --gc-sections can no longer drop the
strings of dead functions, and the am335x SPL grows by 9.5 kB past its
110592 byte budget.

Backport the upstream fix, which gives the fallback probe its own cache
variable. It is in GCC 15 and later.

Fixes: 82f26df15c56 ("toolchain: binutils: change default to 2.46")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>Revert "toolchain: drop $(REVISION) from GCC version"</title>
<updated>2026-07-29T07:14:05Z</updated>
<author>
<name>Paul Spooren</name>
</author>
<published>2026-07-29T07:11:42Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/xback/commit/?id=b5ed5604cf901dc1df58befba757011ac2422ddf'/>
<id>urn:sha1:b5ed5604cf901dc1df58befba757011ac2422ddf</id>
<content type='text'>
This reverts commit 9292f32fd96dc00b7c3f34a028d1fc41a4fcb6d2.

Downstream patches may change the output. If the GCC version doesn't
incooperate the patches somehow (hash, git commit, ...), ccache may not
invalidate existing cache.

Revert this until a cleaner solution is found.

Signed-off-by: Paul Spooren &lt;mail@aparcar.org&gt;
</content>
</entry>
<entry>
<title>toolchain: drop $(REVISION) from GCC version</title>
<updated>2026-07-23T11:20:23Z</updated>
<author>
<name>Paul Spooren</name>
</author>
<published>2026-07-22T12:37:12Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/xback/commit/?id=9292f32fd96dc00b7c3f34a028d1fc41a4fcb6d2'/>
<id>urn:sha1:9292f32fd96dc00b7c3f34a028d1fc41a4fcb6d2</id>
<content type='text'>
Storing the ever changing revision in the GCC binary may result in leakage in
package builds. If two equal GCC versions build the same package version with
different OpenWrt revisions, the package becomes unreproducible.

Solve this by dropping the revision.

Below is an example of the `cni` package:

    │ ├── readelf --wide --decompress --string-dump=.comment {}
    │ │ @@ -1,4 +1,4 @@
    │ │
    │ │  String dump of section '.comment':
    │ │ -  [     0]  GCC: (OpenWrt GCC 14.4.0 r35470-1b2aeb4f8a) 14.4.0
    │ │ +  [     0]  GCC: (OpenWrt GCC 14.4.0 r35485-0f256a0a7a) 14.4.0

Signed-off-by: Paul Spooren &lt;mail@aparcar.org&gt;
</content>
</entry>
<entry>
<title>toolchain: gcc: update GCC 14 to 14.4</title>
<updated>2026-06-29T09:40:20Z</updated>
<author>
<name>Shiji Yang</name>
</author>
<published>2026-06-26T15:20:56Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/xback/commit/?id=ab40696d6134c842a93112a7a0325a148b3b1a2b'/>
<id>urn:sha1:ab40696d6134c842a93112a7a0325a148b3b1a2b</id>
<content type='text'>
Changelog:
  https://gcc.gnu.org/gcc-14/changes.html

Remove upstreamed patches:
- patches-14.x/004-libcody-Make-it-buildable-by-C-11-to-C-26.patch[1]
- patches-14.x/005-include-memory.patch[2]
- patches-14.x/240-libsanitizer-fix-termio-glibc-2.40.patch[3]

All other patches are automatically refreshed.

[1] https://gcc.gnu.org/cgit/gcc/commit/?h=releases/gcc-14.4.0&amp;id=daa3e1ead791bc58208043cfc4595ba1a78cdd34
[2] https://gcc.gnu.org/cgit/gcc/commit/?h=releases/gcc-14.4.0&amp;id=046776dac7cc74bdbab36f450af80644a045858a
[3] https://gcc.gnu.org/cgit/gcc/commit/?h=releases/gcc-14.4.0&amp;id=f0feb51ff40553643c582ec9c3ca7f293721ddc8
Signed-off-by: Shiji Yang &lt;yangshiji66@outlook.com&gt;
Link: https://github.com/openwrt/openwrt/pull/23950
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>toolchain: gcc: update GCC 15 to 15.3.0</title>
<updated>2026-06-27T09:54:03Z</updated>
<author>
<name>Konstantin Demin</name>
</author>
<published>2026-06-13T15:12:13Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/xback/commit/?id=97424f9c860593ad524aff84a2f982b97abfed5f'/>
<id>urn:sha1:97424f9c860593ad524aff84a2f982b97abfed5f</id>
<content type='text'>
Release Notes: https://gcc.gnu.org/gcc-15/changes.html

Removed upstreamed:
 toolchain/gcc/patches-15.x/004-libcody-Make-it-buildable-by-C-11-to-C-26.patch [1]

[1] https://github.com/gcc-mirror/gcc/commit/1f0224e8ddb3d3d0bf4c7a11769b193a4df5cc37

Signed-off-by: Konstantin Demin &lt;rockdrilla@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/23771
Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
</content>
</entry>
<entry>
<title>toolchain: binutils: fix default version selection</title>
<updated>2026-06-26T17:04:24Z</updated>
<author>
<name>Shiji Yang</name>
</author>
<published>2026-06-26T16:56:02Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/xback/commit/?id=f6a6f764dfabc98ad094cb7d45dca0d767c1f6b8'/>
<id>urn:sha1:f6a6f764dfabc98ad094cb7d45dca0d767c1f6b8</id>
<content type='text'>
Fixes: 82f26df15c56 ("toolchain: binutils: change default to 2.46")
Signed-off-by: Shiji Yang &lt;yangshiji66@outlook.com&gt;
Link: https://github.com/openwrt/openwrt/pull/23952
Signed-off-by: Jonas Jelonek &lt;jelonek.jonas@gmail.com&gt;
</content>
</entry>
<entry>
<title>toolchain: binutils: change default to 2.46</title>
<updated>2026-06-26T12:51:16Z</updated>
<author>
<name>Jonas Jelonek</name>
</author>
<published>2026-06-21T21:05:51Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/xback/commit/?id=82f26df15c56437fbac2b6711402a3d37f3f7571'/>
<id>urn:sha1:82f26df15c56437fbac2b6711402a3d37f3f7571</id>
<content type='text'>
Change default to latest upstream release.

Link: https://github.com/openwrt/openwrt/pull/23907
Signed-off-by: Jonas Jelonek &lt;jelonek.jonas@gmail.com&gt;
</content>
</entry>
<entry>
<title>toolchain: binutils: partially revert commit 525a1e94b343 "fix update to 2.45.1"</title>
<updated>2026-06-17T06:52:03Z</updated>
<author>
<name>Konstantin Demin</name>
</author>
<published>2026-06-17T00:27:03Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/xback/commit/?id=279ad9292328155d31690459894b8570d8b7ce8a'/>
<id>urn:sha1:279ad9292328155d31690459894b8570d8b7ce8a</id>
<content type='text'>
Commit eac927fadf07 "toolchain: binutils: simplify patch management" being applied after commit 525a1e94b343 "toolchain: binutils: fix update to 2.45.1" effectively disables patching binutils 2.45.1 in OpenWrt.

Fixes: 525a1e94b343 "toolchain: binutils: fix update to 2.45.1"
Signed-off-by: Konstantin Demin &lt;rockdrilla@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/23773
Signed-off-by: Jonas Jelonek &lt;jelonek.jonas@gmail.com&gt;
</content>
</entry>
<entry>
<title>toolchain: binutils: update to 2.46.1</title>
<updated>2026-06-17T06:52:03Z</updated>
<author>
<name>Konstantin Demin</name>
</author>
<published>2026-06-17T00:27:03Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/xback/commit/?id=3a35c19e8e81fbf35e23a2bffc891e3dc88c5f30'/>
<id>urn:sha1:3a35c19e8e81fbf35e23a2bffc891e3dc88c5f30</id>
<content type='text'>
Release Notes: https://sourceware.org/pipermail/binutils/2026-June/149568.html

Signed-off-by: Konstantin Demin &lt;rockdrilla@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/23773
Signed-off-by: Jonas Jelonek &lt;jelonek.jonas@gmail.com&gt;
</content>
</entry>
</feed>
