<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/poky.git/meta/recipes-devtools/gcc, branch 5.2_M3</title>
<subtitle>Mirror of git.yoctoproject.org/poky</subtitle>
<id>https://git.enea.com/cgit/linux/poky.git/atom?h=5.2_M3</id>
<link rel='self' href='https://git.enea.com/cgit/linux/poky.git/atom?h=5.2_M3'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/'/>
<updated>2025-01-23T11:56:47+00:00</updated>
<entry>
<title>gcc-sanitizers.inc: Workaround for aarch64</title>
<updated>2025-01-23T11:56:47+00:00</updated>
<author>
<name>Thomas Roos</name>
<email>throos@amazon.de</email>
</author>
<published>2025-01-22T12:44:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=a58f8a087b8d60cdb3e072233fcc8abd81906c72'/>
<id>urn:sha1:a58f8a087b8d60cdb3e072233fcc8abd81906c72</id>
<content type='text'>
When using the -fsanitize=address  CXX_FLAG for a program compiled for
aarch64 / arm64

This is happing:
MemorySanitizer: CHECK failed: sanitizer_allocator_primary64.h:133 "((kSpaceBeg))
 == ((address_range.Init(TotalSpaceSize, PrimaryAllocatorName, kSpaceBeg)))"
 (0xe00000000000, 0xfffffffffffffff4) (tid=51745)

With -DSANITIZER_CAN_USE_ALLOCATOR64=0 this is not happening and
potenial bugs are detected.

ARM32 does not require this patch.

More info about the issue in this thread:
https://github.com/llvm/llvm-project/issues/65144

(From OE-Core rev: 12442b9b6df06317174066854935b1d6a4f1865d)

Signed-off-by: Thomas Roos &lt;throos@amazon.de&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
Signed-off-by: Ross Burton &lt;ross.burton@arm.com&gt;
</content>
</entry>
<entry>
<title>gcc: make include poisoning fatal again in gcc/g++</title>
<updated>2025-01-22T13:20:29+00:00</updated>
<author>
<name>Ross Burton</name>
<email>ross.burton@arm.com</email>
</author>
<published>2025-01-21T18:23:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=310f9cd967f81869b27c4542a0015cf76c3e2c84'/>
<id>urn:sha1:310f9cd967f81869b27c4542a0015cf76c3e2c84</id>
<content type='text'>
We have a patch to allow us to 'poison' system include directories,
which are warnings by default but we make them fatal in cross builds.

However, in the 13.1 upgrade[1] the patch to make the warnings fatal was
dropped in the compiler invocation, so it only took effect for pure
preprocessor calls. This was not noticed at the time as the test case
was flawed, but this has now been fixed.

Add back the fatal poisoning, and restructure the patch slightly so it
is less invasive.

[1] oe-core bea46612fd9106cc5b46eb1d81623b6492563c13

[RP: Tweak to fix gcc/gcc-cross-canadian failure]
(From OE-Core rev: 56f21a02c009cb74072ee79467a5bcab3c4643a5)

Signed-off-by: Ross Burton &lt;ross.burton@arm.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>base: Switch virtual/cross-XXX to be under recipe specific providers</title>
<updated>2025-01-21T23:09:34+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2025-01-13T17:55:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=6b1e65b7d6ce163b9cd9515e915074248b718979'/>
<id>urn:sha1:6b1e65b7d6ce163b9cd9515e915074248b718979</id>
<content type='text'>
Currently, providers are set on a global config basis. This change allows
for a select set of providers to be configured using BB_RECIPE_VIRTUAL_PROVIDERS
on a per recipe basis. This would allow for the selection of virtual/cross-cc
as gcc or clang for example.

The PROVIDERS are removed from the recipes so that if a version of the
dependency accidentally slips through, the build will fail and the user
can correct the issue.

(From OE-Core rev: 6eeab1a5d7f23917b94c130e417d59afb757b546)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>classes/recipes: Switch virtual/XXX-gcc to virtual/cross-cc (and c++/binutils)</title>
<updated>2025-01-21T23:09:33+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2025-01-10T14:45:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=90e0a0f7f4536e1aeb311ab2b061be71b4129e4e'/>
<id>urn:sha1:90e0a0f7f4536e1aeb311ab2b061be71b4129e4e</id>
<content type='text'>
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 &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc: poison-system-directories patch updated for missing paths</title>
<updated>2025-01-20T13:38:59+00:00</updated>
<author>
<name>Sunil Dora</name>
<email>sunilkumar.dora@windriver.com</email>
</author>
<published>2025-01-16T09:09:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=4aea3a5773b219f81e7aa2e649d9f6a60a64e3e9'/>
<id>urn:sha1:4aea3a5773b219f81e7aa2e649d9f6a60a64e3e9</id>
<content type='text'>
Modified logic in gcc/incpath.cc to ensure that non-existing host system paths are
not deleted during cross-compilation. If the build system attempts to search a host
path, gcc will now issue a warning instead of silently ignoring it.

Fixes [YOCTO #15672]
https://bugzilla.yoctoproject.org/show_bug.cgi?id=15672

(From OE-Core rev: 32e2f9a73a653a00e555e50f9197b605f2f70f89)

Signed-off-by: Sunil Dora &lt;sunilkumar.dora@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>qemu/machine: rename QEMU_EXTRAOPTIONS for consistency</title>
<updated>2025-01-11T18:34:15+00:00</updated>
<author>
<name>Ross Burton</name>
<email>ross.burton@arm.com</email>
</author>
<published>2025-01-10T13:01:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=a1b9c06ff51fd041adc29f8f673a1fe40275d75d'/>
<id>urn:sha1:a1b9c06ff51fd041adc29f8f673a1fe40275d75d</id>
<content type='text'>
The per-tune qemu options variable is QEMU_EXTRAOPTIONS_${TUNE_PKGARCH},
but this doesn't follow the pattern of all of the other tune-specific
variables in the machine configuration which is VARIABLE:tune-[name].

Rename QEMU_EXTRAOPTIONS_${TUNE_PKGARCH} to
QEMU_EXTRAOPTIONS:tune-${TUNE_PKGARCH} for consistency.

Note that this will mean that BSPs need to update any assignments of
this variable.

(From OE-Core rev: 7f981d074442b901f7e64dbdb9db851ff31c3733)

Signed-off-by: Ross Burton &lt;ross.burton@arm.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>classes/qemu: use tune to select QEMU_EXTRAOPTIONS, not package architecture</title>
<updated>2025-01-11T18:34:15+00:00</updated>
<author>
<name>Ross Burton</name>
<email>ross.burton@arm.com</email>
</author>
<published>2025-01-10T13:01:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=1fa2f50f759b17db1ea53f88f93d7edfae36f8bf'/>
<id>urn:sha1:1fa2f50f759b17db1ea53f88f93d7edfae36f8bf</id>
<content type='text'>
Using the package architecture to select the right qemu options to pass
to qemu-user is incorrect, and fails for recipes that set PACKAGE_ARCH
to MACHINE_ARCH (as the qemuppc workarounds suggest) because there are
not typically any options set for the machine name.

Solve this by using TUNE_PKGARCH instead: for the majority of recipes
this is the same value, but for machine-specific recipes it remains the
same instead of changing to the machine name.

This means we can remove the qemuppc workarounds, as they're obsolete.

Also update the gcc-testsuite recipe which uses the same pattern to use
TUNE_PKGARCH, and generalise the else codepath to avoid needing to
update the list of architectures.

[ YOCTO #15647 ]

(From OE-Core rev: 414b754a6cbb9cc354b1180efd5c3329568a2537)

Signed-off-by: Ross Burton &lt;ross.burton@arm.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc: backport patch to fix data relocation to !ENDBR: stpcpy</title>
<updated>2024-12-18T11:11:55+00:00</updated>
<author>
<name>Bin Lan</name>
<email>bin.lan.cn@windriver.com</email>
</author>
<published>2024-12-17T10:47:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=5c3a3cf22543f8e04873aa7e39f451117c6b9035'/>
<id>urn:sha1:5c3a3cf22543f8e04873aa7e39f451117c6b9035</id>
<content type='text'>
There is the following warning when building linux-yocto with
default configuration on x86-64 with gcc-14.2:
  AR      built-in.a
  AR      vmlinux.a
  LD      vmlinux.o
  vmlinux.o: warning: objtool: .export_symbol+0x332a0: data relocation to !ENDBR: stpcpy+0x0

This change set removes the warning.

PR target/116174 [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116174]

(From OE-Core rev: 30d4f18d1e11b3336c8668dccd96b9ff35c7bc76)

Signed-off-by: Bin Lan &lt;bin.lan.cn@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc: Fix c++: tweak for Wrange-loop-construct</title>
<updated>2024-12-13T12:26:01+00:00</updated>
<author>
<name>Sunil Dora</name>
<email>sunilkumar.dora@windriver.com</email>
</author>
<published>2024-12-11T18:16:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=13dbaba5692e8d9c444cddedfa236d8ef495f57b'/>
<id>urn:sha1:13dbaba5692e8d9c444cddedfa236d8ef495f57b</id>
<content type='text'>
This commit updates the warning to use a check for "trivially constructible" instead of
"trivially copyable." The original check was incorrect, as "trivially copyable" only applies
to types that can be copied trivially, whereas "trivially constructible" is the correct check
for types that can be trivially default-constructed.

This change ensures the warning is more accurate and aligns with the proper type traits.

LLVM accepted a similar fix:
https://github.com/llvm/llvm-project/issues/47355

PR c++/116731 [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116731]

(From OE-Core rev: 7c9402953d1e4eed4bd4427171e96761812f7478)

Signed-off-by: Marek Polacek &lt;polacek@redhat.com&gt;
Signed-off-by: Sunil Dora &lt;sunilkumar.dora@windriver.com&gt;
Signed-off-by: Mathieu Dubois-Briand &lt;mathieu.dubois-briand@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>gcc-sanitizers: Add riscv64 as compatible host</title>
<updated>2024-12-03T11:21:34+00:00</updated>
<author>
<name>Deepthi Hemraj</name>
<email>Deepthi.Hemraj@windriver.com</email>
</author>
<published>2024-12-02T04:35:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=e7a7d07dfd1cc22ad6883cfb0ffcd3984d70d096'/>
<id>urn:sha1:e7a7d07dfd1cc22ad6883cfb0ffcd3984d70d096</id>
<content type='text'>
RISC-V offers several virtual memory address schemes (Sv39, Sv48, and Sv57),
but ASan currently supports only Sv39 on RISC-V64.
For RISC-V64 Sv39, ASan uses custom allocator configurations
tuned to manage large allocations efficiently.
These tunings are incompatible with larger address spaces like
Sv48/Sv57 due to differences in region sizes and alignment.

For riscv64, Asan's tuning for Sv39 can be enabled in qemu
by using the appropriate flag in the command line as shown below:
runqemu nographic qemuparams="-cpu rv64,sv39=true"

Additionally, the COMPATIBLE_HOST list in gcc-sanitizers has been
updated to include riscv64. All necessary tests were successfully
conducted on both hardware(Microchip PolarFire SoC)
and the qemurisv64 environment, with ASan effectively
detecting memory errors in both scenarios.

(From OE-Core rev: 4b4450ff695ef73bf7a2437e142d2e0730d6a547)

Signed-off-by: Deepthi Hemraj &lt;Deepthi.Hemraj@windriver.com&gt;
Signed-off-by: Mathieu Dubois-Briand &lt;mathieu.dubois-briand@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
</feed>
