summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/libgcc-common.inc
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gcc/libgcc-common.inc')
-rw-r--r--meta/recipes-devtools/gcc/libgcc-common.inc90
1 files changed, 54 insertions, 36 deletions
diff --git a/meta/recipes-devtools/gcc/libgcc-common.inc b/meta/recipes-devtools/gcc/libgcc-common.inc
index 4e4f0fd03b..d9084af51a 100644
--- a/meta/recipes-devtools/gcc/libgcc-common.inc
+++ b/meta/recipes-devtools/gcc/libgcc-common.inc
@@ -5,27 +5,24 @@ require gcc-configure-common.inc
INHIBIT_DEFAULT_DEPS = "1"
do_configure () {
- target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
install -d ${D}${base_libdir} ${D}${libdir}
- hardlinkdir ${STAGING_INCDIR_NATIVE}/${LIBGCCBUILDTREENAME}$target/ ${B}
mkdir -p ${B}/${BPN}
- mkdir -p ${B}/$target/${BPN}/
+ mkdir -p ${B}/${TARGET_SYS}/${BPN}/
cd ${B}/${BPN}
chmod a+x ${S}/${BPN}/configure
- relpath=${@os.path.relpath("${S}/${BPN}", "${B}/${BPN}")}
- $relpath/configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
+ ${S}/${BPN}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
}
+EXTRACONFFUNCS += "extract_stashed_builddir"
+do_configure[depends] += "${COMPILERDEP}"
do_compile () {
- target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
cd ${B}/${BPN}
- oe_runmake MULTIBUILDTOP=${B}/$target/${BPN}/
+ oe_runmake MULTIBUILDTOP=${B}/${TARGET_SYS}/${BPN}/
}
do_install () {
- target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
cd ${B}/${BPN}
- oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/${BPN}/ install
+ oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/${TARGET_SYS}/${BPN}/ install
# Move libgcc_s into /lib
mkdir -p ${D}${base_libdir}
@@ -46,11 +43,20 @@ do_install () {
rm -rf ${D}${libdir}/${TARGET_SYS}/${BINV}/include
}
-do_install_append_libc-baremetal () {
- rmdir ${D}${base_libdir}
+do_install:append:libc-baremetal () {
+ if [ "${base_libdir}" != "${libdir}" ]; then
+ rmdir ${D}${base_libdir}
+ fi
+}
+do_install:append:libc-newlib () {
+ if [ "${base_libdir}" != "${libdir}" ]; then
+ rmdir ${D}${base_libdir}
+ fi
}
-RDEPENDS_${PN}-dev_libc-baremetal = ""
+# No rpm package is actually created but -dev depends on it, avoid dnf error
+DEV_PKG_DEPENDENCY:libc-baremetal = ""
+DEV_PKG_DEPENDENCY:libc-newlib = ""
BBCLASSEXTEND = "nativesdk"
@@ -64,18 +70,18 @@ addtask multilib_install after do_install before do_package do_populate_sysroot
fakeroot python do_multilib_install() {
import re
- multilibs = d.getVar('MULTILIB_VARIANTS', True)
+ multilibs = d.getVar('MULTILIB_VARIANTS')
if not multilibs or bb.data.inherits_class('nativesdk', d):
return
- binv = d.getVar('BINV', True)
+ binv = d.getVar('BINV')
- mlprefix = d.getVar('MLPREFIX', True)
- if ('%slibgcc' % mlprefix) != d.getVar('PN', True):
+ mlprefix = d.getVar('MLPREFIX')
+ if ('%slibgcc' % mlprefix) != d.getVar('PN'):
return
if mlprefix:
- orig_tune = d.getVar('DEFAULTTUNE_MULTILIB_ORIGINAL', True)
+ orig_tune = d.getVar('DEFAULTTUNE_MULTILIB_ORIGINAL')
orig_tune_params = get_tune_parameters(orig_tune, d)
orig_tune_baselib = orig_tune_params['baselib']
orig_tune_bitness = orig_tune_baselib.replace('lib', '')
@@ -83,10 +89,10 @@ fakeroot python do_multilib_install() {
orig_tune_bitness = '32'
src = '../../../' + orig_tune_baselib + '/' + \
- d.getVar('TARGET_SYS_MULTILIB_ORIGINAL', True) + '/' + binv + '/'
+ d.getVar('TARGET_SYS_MULTILIB_ORIGINAL') + '/' + binv + '/'
- dest = d.getVar('D', True) + d.getVar('libdir', True) + '/' + \
- d.getVar('TARGET_SYS', True) + '/' + binv + '/' + orig_tune_bitness
+ dest = d.getVar('D') + d.getVar('libdir') + '/' + \
+ d.getVar('TARGET_SYS') + '/' + binv + '/' + orig_tune_bitness
if os.path.lexists(dest):
os.unlink(dest)
@@ -95,9 +101,9 @@ fakeroot python do_multilib_install() {
for ml in multilibs.split():
- tune = d.getVar('DEFAULTTUNE_virtclass-multilib-' + ml, True)
+ tune = d.getVar('DEFAULTTUNE:virtclass-multilib-' + ml)
if not tune:
- bb.warn('DEFAULTTUNE_virtclass-multilib-%s is not defined. Skipping...' % ml)
+ bb.warn('DEFAULTTUNE:virtclass-multilib-%s is not defined. Skipping...' % ml)
continue
tune_parameters = get_tune_parameters(tune, d)
@@ -111,35 +117,47 @@ fakeroot python do_multilib_install() {
if not tune_bitness:
tune_bitness = '32' # /lib => 32bit lib
+ tune_abiextension = tune_parameters['abiextension']
+ if tune_abiextension:
+ libcextension = '-gnu' + tune_abiextension
+ else:
+ libcextension = ''
+
src = '../../../' + tune_baselib + '/' + \
- tune_arch + d.getVar('TARGET_VENDOR', True) + 'ml' + ml + \
- '-' + d.getVar('TARGET_OS', True) + '/' + binv + '/'
+ tune_arch + d.getVar('TARGET_VENDOR') + 'ml' + ml + \
+ '-' + d.getVar('TARGET_OS') + libcextension + '/' + binv + '/'
- dest = d.getVar('D', True) + d.getVar('libdir', True) + '/' + \
- d.getVar('TARGET_SYS', True) + '/' + binv + '/' + tune_bitness
+ dest = d.getVar('D') + d.getVar('libdir') + '/' + \
+ d.getVar('TARGET_SYS') + '/' + binv + '/' + tune_bitness
if os.path.lexists(dest):
os.unlink(dest)
os.symlink(src, dest)
}
-def get_original_vendoros(d):
- vendoros = d.expand('${TARGET_VENDOR}-${TARGET_OS}')
- for suffix in [d.getVar('ABIEXTENSION', True), d.getVar('LIBCEXTENSION', True)]:
+def get_original_os(d):
+ vendoros = d.expand('${TARGET_ARCH}${ORIG_TARGET_VENDOR}-${TARGET_OS}')
+ for suffix in [d.getVar('ABIEXTENSION'), d.getVar('LIBCEXTENSION')]:
if suffix and vendoros.endswith(suffix):
vendoros = vendoros[:-len(suffix)]
+ # Arm must use linux-gnueabi not linux as only the former is accepted by gcc
+ if vendoros.startswith("arm-") and not vendoros.endswith("-gnueabi"):
+ vendoros = vendoros + "-gnueabi"
return vendoros
-ORIG_TARGET_VENDOROS := "${@get_original_vendoros(d)}"
-BASETARGET_SYS = "${TARGET_ARCH}${ORIG_TARGET_VENDOROS}"
+ORIG_TARGET_VENDOR := "${TARGET_VENDOR}"
+BASETARGET_SYS = "${@get_original_os(d)}"
addtask extra_symlinks after do_multilib_install before do_package do_populate_sysroot
fakeroot python do_extra_symlinks() {
- targetsys = d.getVar('BASETARGET_SYS', True)
+ if bb.data.inherits_class('nativesdk', d):
+ return
+
+ targetsys = d.getVar('BASETARGET_SYS')
- if targetsys != d.getVar('TARGET_SYS', True):
- dest = d.getVar('D', True) + d.getVar('libdir', True) + '/' + targetsys
- src = d.getVar('TARGET_SYS', True)
- if not os.path.lexists(dest) and os.path.lexists(d.getVar('D', True) + d.getVar('libdir', True)):
+ if targetsys != d.getVar('TARGET_SYS'):
+ dest = d.getVar('D') + d.getVar('libdir') + '/' + targetsys
+ src = d.getVar('TARGET_SYS')
+ if not os.path.lexists(dest) and os.path.lexists(d.getVar('D') + d.getVar('libdir')):
os.symlink(src, dest)
}