From b806e4c004a7e10461fe7428fc130a5aa2528039 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Fri, 19 Feb 2016 00:54:40 -0500 Subject: gcc: use relative path for configure script The absolute path (/path/to/configure) caused __FILE__ to be an absolute path. If 'assert' invoked, it uses __FILE__, and build path would be in elf files. In assert.h ... .# define assert(expr) \ ((expr) \ ? __ASSERT_VOID_CAST (0) \ : __assert_fail (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION)) ... Which triggered buildpaths QA issue: ... | libgcc-5.3.0: File work/core2-64-poky-linux/libgcc/5.3.0-r0/packages-split/ libgcc-dev/usr/lib64/x86_64-poky-linux/5.3.0/libgcc.a in package contained reference to tmpdir [buildpaths] ... Use relative path to run configure can fix the problem. [YOCTO #7058] Signed-off-by: Hongxu Jia Signed-off-by: Ross Burton --- meta/recipes-devtools/gcc/gcc-runtime.inc | 3 ++- meta/recipes-devtools/gcc/gcc-sanitizers.inc | 3 ++- meta/recipes-devtools/gcc/libgcc-common.inc | 3 ++- meta/recipes-devtools/gcc/libgfortran.inc | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc index f20d298b6a..844149fed1 100644 --- a/meta/recipes-devtools/gcc/gcc-runtime.inc +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc @@ -29,7 +29,8 @@ do_configure () { mkdir -p ${B}/$target/$d/ cd ${B}/$target/$d/ chmod a+x ${S}/$d/configure - ${S}/$d/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} + relpath=${@os.path.relpath("${S}/$d", "${B}/$target/$d")} + $relpath/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} done } diff --git a/meta/recipes-devtools/gcc/gcc-sanitizers.inc b/meta/recipes-devtools/gcc/gcc-sanitizers.inc index 03627ffc4b..6091a0b6fb 100644 --- a/meta/recipes-devtools/gcc/gcc-sanitizers.inc +++ b/meta/recipes-devtools/gcc/gcc-sanitizers.inc @@ -23,7 +23,8 @@ do_configure () { mkdir -p ${B}/$target/libsanitizer/ cd ${B}/$target/libsanitizer/ chmod a+x ${S}/libsanitizer/configure - ${S}/libsanitizer/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} + relpath=${@os.path.relpath("${S}/libsanitizer", "${B}/$target/libsanitizer")} + $relpath/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} # Easiest way to stop bad RPATHs getting into the library since we have a # broken libtool here sed -i -e 's/hardcode_into_libs=yes/hardcode_into_libs=no/' ${B}/$target/libsanitizer/libtool diff --git a/meta/recipes-devtools/gcc/libgcc-common.inc b/meta/recipes-devtools/gcc/libgcc-common.inc index b09ea657e7..dae07e96da 100644 --- a/meta/recipes-devtools/gcc/libgcc-common.inc +++ b/meta/recipes-devtools/gcc/libgcc-common.inc @@ -12,7 +12,8 @@ do_configure () { mkdir -p ${B}/$target/${BPN}/ cd ${B}/${BPN} chmod a+x ${S}/${BPN}/configure - ${S}/${BPN}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} + relpath=${@os.path.relpath("${S}/${BPN}", "${B}/${BPN}")} + $relpath/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} } do_compile () { diff --git a/meta/recipes-devtools/gcc/libgfortran.inc b/meta/recipes-devtools/gcc/libgfortran.inc index e42843d2f1..58ceb2e073 100644 --- a/meta/recipes-devtools/gcc/libgfortran.inc +++ b/meta/recipes-devtools/gcc/libgfortran.inc @@ -15,7 +15,8 @@ do_configure () { mkdir -p ${B}/$target/libgfortran/ cd ${B}/$target/libgfortran/ chmod a+x ${S}/libgfortran/configure - ${S}/libgfortran/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} + relpath=${@os.path.relpath("${S}/libgfortran", "${B}/$target/libgfortran")} + $relpath/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} # Easiest way to stop bad RPATHs getting into the library since we have a # broken libtool here sed -i -e 's/hardcode_into_libs=yes/hardcode_into_libs=no/' ${B}/$target/libgfortran/libtool -- cgit 1.2.3-korg