mirror of
https://git.yoctoproject.org/poky
synced 2026-02-15 21:23:04 +01:00
In some cases we need to pass the linker arguments to the linker, particularly when the default in LD differs to that which gcc and our compiler flags are using (mips defaults to 32 bit). Ensure these are passed in. (From OE-Core rev: 0243af31f404f0b9187cebef192e626e290ead49) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
84 lines
3.0 KiB
BlitzBasic
84 lines
3.0 KiB
BlitzBasic
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/${TARGET_PREFIX}binutils"
|
|
DEPENDS += "virtual/${TARGET_PREFIX}gcc"
|
|
DEPENDS += "virtual/${MLPREFIX}${TARGET_PREFIX}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
|