* Nios2 has been removed and aarch64/ilp32 is deprecated
* Default C dialect is switched to C23
* {0} initializer in C or C++ for unions no longer guarantees clearing of the whole union
* Compile speed improvements with LTO
* Vectorizer can support loops with early exists but it is limited to loops
with fixed vector lengths
This is major release of gcc, the changes are noted [1]
[1] https://gcc.gnu.org/gcc-15/changes.html
(From OE-Core rev: 0ddda88b928a8b4e5ca3a4cc6112b8331cdff544)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rust stable version updated to 1.85.0
https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html
Some of the major updates:
- Update LIC_FILES_CHKSUM in libstd-rs and rust recipes.
License-Update: Unicode license text is updated to Unicode-3.0 License.
6d2a3e9786
[RP: Update LICENSE to reference Unicode-3.0]
- Pass '-Zforce-unstable-if-unmarked' to RUSTFLAGS in libstd-rs.bb
Fix: https://github.com/rust-lang/rust/issues/133857#issuecomment-2526341227
- Downgrade bootstrap cc version causing bootstrap to fail on custom targets. (Backported from v1.85.1)
Fix: e4ca11f87f
- Explicitly set float ABI for all ARM 32 bits targets.
Fix: a51fefcaab
- Rust v1.85.0 tarball doesn't ship gcc tree.
Drop "remove_gcc_directory" postfunc which removed it and prevented the bloat.
Fix: 13c3f9b949
Adapted the patch changes with v1.85.0:
repro-issue-fix-with-cc-crate-hashmap.patch
revert-link-std-statically-in-rustc_driver-feature.patch
rust-oe-selftest.patch
rv32-cargo-rustix-0.38.40-fix.patch
Dropped patches:
fix-tidy-check-failure.patch since it's merged with v1.85.0.
(From OE-Core rev: 3130069fdebb92f20b962fa8074564a27c3fb6b9)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rust stable version updated to 1.84.1.
https://blog.rust-lang.org/2025/01/30/Rust-1.84.1.html
Renamed and modified the below patch to adapt the new version.
rv32-cargo-rustix-0.38.37-fix.patch->rv32-cargo-rustix-0.38.38-fix.patch
Modified the below patches to adapt the new version.
repro-issue-fix-with-cc-crate-hashmap.patch
revert-link-std-statically-in-rustc_driver-feature.patch
Dropped the below patches :
0001-NFC-fix-build-failure-100993.patch
6ee49080e4
revert-Zdual-proc-macros-additional-check.patch
Issue is fixed in rust-master and the fix is backported in the
subsequent patch of the series.
(From OE-Core rev: 4265f668de8c6708cb3a003ad655559031724149)
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Manually setting the preferred version is not required or generally a
good idea as stated in:
meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
# You're probably looking here thinking you need to create some new copy
# of linux-libc-headers since you have your own custom kernel. To put
# this simply, you DO NOT.
so remove that for linux-libc-headers.
(From OE-Core rev: 72eca56ba754079733da49403b59205a44b24709)
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Manually setting preferred version is not required so remove that for binutils.
(From OE-Core rev: a6961e13d3dd4d94dbb771328e6c67c101a157be)
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Manually setting preferred version/provider is not required so remove that for 'go'.
(From OE-Core rev: f01aa20752a4435dd10a523aa01d40addb1cd8d0)
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Manually setting preferred version/provider is not required so remove
that for gdb and qemu as a first step of cleaning up this file.
This PREFERRED_VERSION list dates back to 2006, which is an era where
several versions of a given recipe was a common occurence.
(From OE-Core rev: 4f22ca1233b390308f8266bafe96efaee0631cf4)
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rust stable version updated to 1.83.0.
https://blog.rust-lang.org/2024/11/28/Rust-1.83.0.html
Renamed and modified the below patch to adapt the new version.
rv32-cargo-rustix-0.38.34-fix.patch->rv32-cargo-rustix-0.38.37-fix.patch
Modified the below patches to adapt the new version.
repro-issue-fix-with-cc-crate-hashmap.patch
revert-link-std-statically-in-rustc_driver-feature.patch
Dropped: zlib-off64_t.patch
a566e156b3kq
Because of the following commit ,
68034f837a
when we enable lib32, getting build failure because there is a check for target
support for "-Zdual-proc-macros" flag not functioning properly when lib32 is
enabled in the build environment. So for now reverting this commit and bring
back the previous behavior, where the "-Zdual-proc-macros" flag is always
added for building proc macros, regardless of the target architecture's support.
This would bypass the check introduced in the patch, allowing the build to
proceed without error, even when building for a 64-bit architecture with lib32 enabled.
(From OE-Core rev: 40d8dafdf556d7ce79c12a6de872193be9a0928a)
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To be able to switch toolchains, we need to separate out the gcc definitions
into seperate include files. This patch starts that process. Whilst the
include is still hardcoded for now, it allows developers to start experimenting
with this locally more easily and stops people reinventing this patch. A
sample clang configuruation is also included which I was using for experimentation.
(From OE-Core rev: be063d58c0985a2c43c16302efb44706fbf3f1b3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Due to we have upgraded go to 1.24.0, we should also bump GOVERSION
to fix preferred version warning
...
WARNING: preferred version 1.22% of go not available (for item go)
WARNING: versions of go available: 1.24.0
...
(From OE-Core rev: 939449cfcb4a920132145d2ad1212bac3acb1baa)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rust stable version updated to 1.82.0.
https://blog.rust-lang.org/2024/10/17/Rust-1.82.0.html
Renamed the below patch to adapt the new version.
rv32-cargo-rustix-0.38.28-fix.patch->rv32-cargo-rustix-0.38.34-fix.patch
Dropped: rv32-rustix-libc-backend.patch [addressed with rv32-cargo-rustix-0.38.34-fix.patch]
(From OE-Core rev: cfa431e734a642796140347f09c3c54b41a7bb75)
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Drop the CVE-2024-53589 patch, its included in 2.44
* Package newly rename gp-* to gprofng-* binaries and remove old gp-*
symlinks
* Gold linker is now deprecated and will be removed in future release
its already deleted in tarball releases
* Support for the Nios II target has been removed.
* Assembler:
- Support for new architecture extensions for AArch64, Risc-V and
x86.
* Linker:
The default maximum page size was changed from 16KiB to 64KiB for
LoongArch.
This now supports mixed LTO and non-LTO object files in
relocatable output.
The ELF forms of the linker support a --image-base=<ADDR> option
for compatibility with LLD.
The --build-id= option now accepts an argument of "xx" which
enables the use of the xxhash library. This produces a 128-bit
hash and is 2-4x faster than md5 or sha1.
The ELF linker option --package-metadata supports percent-encoded
and %[string] encoded JSON payloads.
* Disassembler:
The RISC-V disassembler now supports -M,max option like QEMU to
dump instruction without checking architecture support as usual.
* GprofNG:
Support added for hardware event counters for Neoverse-N1,
Ampere-1, and Appliedmicro processors.
Detailed release notes [1]
[1] https://lists.gnu.org/archive/html/info-gnu/2025-02/msg00001.html
(From OE-Core rev: df3c43e69542939a4bec3893f1e927edf2ad7179)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The idea of the base class dependency is to say "yes, I need a C cross compiler"
and this was never meant to be gcc specific. Looking at the codebase, whilst we
code triplets into this, it does overcomplicate things as there are only ever
limited, "target", "sdk" and the class extended versions like mutlilib.
After much thought, we can simplify this to virtual/cross-cc and virtual/nativesdk-cross-cc.
This lets us remove the "gcc" specific element as well as removing the over
complicated triplet usage.
At the same time, change the much less widely used "g++" variant to "c++" for
similar reasons and remove the triplet from virtual/XXX-binutils too.
Backwards compatibility mappings could be left but are just going to confuse
things in future so we'll just require users to update.
This simplification, whilst disruptive for any toolchain focused layers, will
make improved toolchain selection in the future much easier.
Since we no longer have overlapping variables, some code for that can just
be removed. The class extension code does need to start remapping some variables
but not the crosssdk target recipe names.
This patch is in two pieces, this one handles the renaming with the functional
changes separate in a second for easier review even if this breaks bisection.
(From OE-Core rev: 4ccc3bc8266c327bcc18c9a3faf7536210dfb9f0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop two patches merged upstream.
(From OE-Core rev: 540ba2ce2f6d138b386d0d7545c197fd7f54edc8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Updating linux-libc-headers to the 6.12 LTS release, we drop
6.10 and make 6.12 the default.
(From OE-Core rev: ac76d281e28cf0cb42dd76869572fa01716198ca)
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop the gnutls patch since something equivalent was merged upsteam.
(From OE-Core rev: 3e1b5805906dc3b2f7c79d26224a7a732123af97)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Drop "--doc" option for rust oe-selftest since
it is not supported on bootstrap builds for
cross-targets.
* Drop the following backported patches which are merged
with rust v1.76 upgrade.
- custom-target-cfg.patch
- rustc-bootstrap.patch
- rv32-missing-syscalls.patch
- target-build-value.patch
https://blog.rust-lang.org/2024/02/08/Rust-1.76.0.html
* Drop 'rust-rustdoc' and 'rust-dbg' from 'exclude_packages' list
to check for rust reproducibility.
(From OE-Core rev: 71d17ed3c7be029fc68e9dd3f5d6c4aa72ef861a)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
6.10 will be the reference kernel version for the fall release,
so we bump our libc-headers to match.
(From OE-Core rev: 3f852c2c958c80c652e902ab0532cefdc82e6549)
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Major new features:
* The <stdbit.h> header type-generic macros have been changed when using
GCC 14.1 or later to use __builtin_stdc_bit_ceil etc. built-in functions
in order to support unsigned __int128 and/or unsigned _BitInt(N) operands
with arbitrary precisions when supported by the target.
* The GNU C Library now supports a feature test macro _ISOC23_SOURCE to
enable features from the ISO C23 standard. Only some features from
this standard are supported by the GNU C Library. The older name
_ISOC2X_SOURCE is still supported. Features from C23 are also enabled
by _GNU_SOURCE, or by compiling with the GCC options -std=c23,
-std=gnu23, -std=c2x or -std=gnu2x.
* The following ISO C23 function families (introduced in TS
18661-4:2015) are now supported in <math.h>. Each family includes
functions for float, double, long double, _FloatN and _FloatNx, and a
type-generic macro in <tgmath.h>.
- Exponential functions: exp2m1, exp10m1.
- Logarithmic functions: log2p1, log10p1, logp1.
* A new tunable, glibc.rtld.enable_secure, can be used to run a program
as if it were a setuid process. This is currently a testing tool to allow
more extensive verification tests for AT_SECURE programs and not meant to
be a security feature.
* On Linux, the epoll header was updated to include epoll ioctl definitions
and the related structure added in Linux kernel 6.9.
* The fortify functionality has been significantly enhanced for building
programs with clang against the GNU C Library.
* Many functions have been added to the vector library for aarch64:
acosh, asinh, atanh, cbrt, cosh, erf, erfc, hypot, pow, sinh, tanh
* On x86, memset can now use non-temporal stores to improve the performance
of large writes. This behaviour is controlled by a new tunable
x86_memset_non_temporal_threshold.
Deprecated and removed features, and other changes affecting compatibility:
* Architectures which use a 32-bit seconds-since-epoch field in struct
lastlog, struct utmp, struct utmpx (such as i386, powerpc64le, rv32,
rv64, x86-64) switched from a signed to an unsigned type for that
field. This allows these fields to store timestamps beyond the year
2038, until the year 2106. Please note that applications are still
expected to migrate off the interfaces declared in <utmp.h> and
<utmpx.h> (except for login_tty) due to locking and session management
problems.
* __rseq_size now denotes the size of the active rseq area (20 bytes
initially), not the size of struct rseq (32 bytes initially).
(From OE-Core rev: 4dd98c39204c1bfdf54b10ec72c3003118ac1dba)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove pacthes accepted upstream, and refresh the remaining ones. Remove
patches required by ubuntu 18.04, as those are unmaintainable.
Remove CVE status for CVEs not applicable to the new version.
RP: Remove the hppa-firmware{,64}.img files as they cause strip failures
and SDK relocation errors. We don't support PARISC anyway, if anyone needs
them they can write the changes needed.
(From OE-Core rev: ca2ae68aad88d77cde0670467c4966dbb98d05c0)
Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Drop backported musl fixes.
* Set `change-id` rather than `changelog-seen`
to fix build warning.
* Add fixes for 4b7e0a0b56aa24 ("Handle vendored sources
when remapping paths") which otherwise cause build failures:
| thread 'main' panicked at src/core/builder.rs:1795:26:
| std::fs::read_dir(registry_src) failed with No such file or directory (os=
error 2)
https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html
(From OE-Core rev: 9aec2c6c777388bb3129aa4c4f27a40f912522b4)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There is a single version of llvm in core these days, furthermore the
version is no longer asked for by recipes such as mesa, which would use
llvm-config tool according to version of llvm found.
(From OE-Core rev: 15d09b02b2632ab1cabc3b1bd9f521e6d3d3b83f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Ross Burton <ross.burton@arm.com>
Acked-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We can drop the mips workaround patch since there were fixes in 8.2.0.
The build system changed and we should drop cross.patch and replace it with
explicit settings for cross-prefix, and host-cc. To make that work we need
to indicate we don't use a cross pkg-config.
PIE isn't availale for mingw so tweak PACKAGECONFIG accordingly.
(From OE-Core rev: 8917fa10b8afb1413b34a6134beea129e416f8c6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Replace musl fixes with backports from upstream.
Add sysconfdir to config.toml to fix:
| thread 'main' panicked at install.rs:92:9:
| User doesn't have write access on `install.sysconfdir` path in `config.toml`.
https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html
(From OE-Core rev: 84f46dd2503bb0ef238fef0097c66fda88f6cbda)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop getrandom-open64.patch (merged upstream).
Revert c4f414f449
("Map source absolute paths to OUT_DIR as relative. (#684)") which
causes hashed versions of the build path to be used as part of the
filename of generated objects and hence reproducibility issues.
https://blog.rust-lang.org/2023/08/24/Rust-1.72.0.html
(From OE-Core rev: 30637cdeb31fae02544fdc643a455d0ebb126ee6)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
kernel version 6.5 is the reference kernel for the fall
release.
This brings libc-headers up to date with that tested
reference
(From OE-Core rev: 7e1e77d3a17eddf59ea4f96b0c9cc5f432ac8da1)
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is first release in 17.x major release
(From OE-Core rev: 388c6dd0ac470a8e83233adf50ad8e7d9029728f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This upgrade isn't straighforward as upstream made changes. A pyenv
is now needed containing meson. This doesn't work for us for reasons
as yet unclear however it does mean we need python3native inherited
for that to stand a chance of working as otherwise host system
dependencies may be missing. For now, allow meson to work from our
sysroot via a patch. Our meson is always deterministic anyway so
we don't need their help for that.
The submodules approach used previously has changed, switch the options
for new ones to disable downloads and docs.
Some of the images binaries shipped for s390 show QA warnings for
relocations in code sections. Drop those binaries to avoid the QA
warnings since we don't need them anyway.
Drop a backported patch and refresh another.
(From OE-Core rev: a7176c3b2a7e2041b9be5dabb6b0f1e62f235f76)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>