mirror of
https://git.yoctoproject.org/poky
synced 2026-07-16 15:57:04 +00:00
binutils: Upgrade to 2.44 release
* 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>
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
# NOTE: This recipe cannot have -cross- in the file name because it triggers
|
||||
# the cross build detection in sstate which causes it to use the wrong
|
||||
# architecture
|
||||
require binutils.inc
|
||||
require binutils-${PV}.inc
|
||||
|
||||
BPN = "binutils"
|
||||
|
||||
DEPENDS += "dejagnu-native expect-native"
|
||||
DEPENDS += "binutils-native"
|
||||
|
||||
deltask do_compile
|
||||
deltask do_install
|
||||
|
||||
inherit nopackages
|
||||
|
||||
do_configure[dirs] += "${B}/ld ${B}/bfd"
|
||||
do_configure() {
|
||||
# create config.h, oe enables initfini-array by default
|
||||
echo "#define HAVE_INITFINI_ARRAY" > ${B}/ld/config.h
|
||||
}
|
||||
|
||||
# target depends
|
||||
DEPENDS += "virtual/cross-binutils"
|
||||
DEPENDS += "virtual/cross-cc"
|
||||
DEPENDS += "virtual/${MLPREFIX}compilerlibs"
|
||||
DEPENDS += "virtual/${MLPREFIX}libc"
|
||||
|
||||
python check_prepare() {
|
||||
def suffix_sys(sys):
|
||||
if sys.endswith("-linux"):
|
||||
return sys + "-gnu"
|
||||
return sys
|
||||
|
||||
def generate_site_exp(d, suite):
|
||||
content = []
|
||||
content.append('set srcdir "{0}/{1}"'.format(d.getVar("S"), suite))
|
||||
content.append('set objdir "{0}/{1}"'.format(d.getVar("B"), suite))
|
||||
content.append('set build_alias "{0}"'.format(d.getVar("BUILD_SYS")))
|
||||
content.append('set build_triplet {0}'.format(d.getVar("BUILD_SYS")))
|
||||
# use BUILD here since HOST=TARGET
|
||||
content.append('set host_alias "{0}"'.format(d.getVar("BUILD_SYS")))
|
||||
content.append('set host_triplet {0}'.format(d.getVar("BUILD_SYS")))
|
||||
content.append('set target_alias "{0}"'.format(d.getVar("TARGET_SYS")))
|
||||
content.append('set target_triplet {0}'.format(suffix_sys(d.getVar("TARGET_SYS"))))
|
||||
content.append("set development true")
|
||||
content.append("set experimental false")
|
||||
|
||||
content.append(d.expand('set CXXFILT "${TARGET_PREFIX}c++filt"'))
|
||||
content.append(d.expand('set CC "${TARGET_PREFIX}gcc --sysroot=${STAGING_DIR_TARGET} ${TUNE_CCARGS}"'))
|
||||
content.append(d.expand('set CXX "${TARGET_PREFIX}g++ --sysroot=${STAGING_DIR_TARGET} ${TUNE_CCARGS}"'))
|
||||
content.append(d.expand('set CFLAGS_FOR_TARGET "--sysroot=${STAGING_DIR_TARGET} ${TUNE_CCARGS}"'))
|
||||
content.append(d.expand('set LD "${TARGET_PREFIX}ld ${TUNE_LDARGS}"'))
|
||||
content.append(d.expand('set LDFLAGS_FOR_TARGET "${TUNE_LDARGS}"'))
|
||||
|
||||
if suite == "ld" and d.getVar("TUNE_ARCH") == "mips64":
|
||||
# oe patches binutils to have the default mips64 abi as 64bit, but
|
||||
# skips gas causing issues with the ld test suite (which uses gas)
|
||||
content.append('set ASFLAGS "-64"')
|
||||
|
||||
return "\n".join(content)
|
||||
|
||||
for i in ["binutils", "gas", "ld"]:
|
||||
builddir = os.path.join(d.getVar("B"), i)
|
||||
if not os.path.isdir(builddir):
|
||||
os.makedirs(builddir)
|
||||
with open(os.path.join(builddir, "site.exp"), "w") as f:
|
||||
f.write(generate_site_exp(d, i))
|
||||
}
|
||||
|
||||
CHECK_TARGETS ??= "binutils gas ld"
|
||||
|
||||
do_check[dirs] = "${B} ${B}/binutils ${B}/gas ${B}/ld"
|
||||
do_check[prefuncs] += "check_prepare"
|
||||
do_check[nostamp] = "1"
|
||||
do_check() {
|
||||
export LC_ALL=C
|
||||
for i in ${CHECK_TARGETS}; do
|
||||
(cd ${B}/$i; runtest \
|
||||
--tool $i \
|
||||
--srcdir ${S}/$i/testsuite \
|
||||
--ignore 'plugin.exp' \
|
||||
|| true)
|
||||
done
|
||||
}
|
||||
addtask check after do_configure
|
||||
Reference in New Issue
Block a user