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/${MLPREFIX}${TARGET_PREFIX}binutils" DEPENDS += "virtual/${MLPREFIX}${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}"')) 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