]> code.ossystems Code Review - openembedded-core.git/commitdiff
gcc: use relative path for configure script
authorHongxu Jia <hongxu.jia@windriver.com>
Fri, 19 Feb 2016 05:54:40 +0000 (00:54 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 28 Feb 2016 11:32:33 +0000 (11:32 +0000)
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 <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/recipes-devtools/gcc/gcc-runtime.inc
meta/recipes-devtools/gcc/gcc-sanitizers.inc
meta/recipes-devtools/gcc/libgcc-common.inc
meta/recipes-devtools/gcc/libgfortran.inc

index f20d298b6a94841da2ee61fa8f88c42cc57f3b48..844149fed15f0a5a4d3c883330a5035f827bc08f 100644 (file)
@@ -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
 }
 
index 03627ffc4b310d406039f018c36b404c1dc3fb17..6091a0b6fb5a7124812b82e6ea5731d40d6ce273 100644 (file)
@@ -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
index b09ea657e79830c1c2f66a652fcb2b7b2c27e2ba..dae07e96da537fe9f84c2db0f891a3d3c8186624 100644 (file)
@@ -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 () {
index e42843d2f11fc057e198d65da8b2fdceb6819de9..58ceb2e073f6bde301a5559a5d0a8a9a6b370f27 100644 (file)
@@ -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