diff options
-rw-r--r-- | meta/classes/cross-canadian.bbclass | 2 | ||||
-rw-r--r-- | meta/conf/distro/include/tclibc-newlib.inc | 44 | ||||
-rw-r--r-- | meta/recipes-core/newlib/newlib_3.0.0.bb | 3 | ||||
-rw-r--r-- | meta/recipes-devtools/gcc/libgcc-common.inc | 5 |
4 files changed, 53 insertions, 1 deletions
diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass index ee8aa6142a..acde331ef9 100644 --- a/meta/classes/cross-canadian.bbclass +++ b/meta/classes/cross-canadian.bbclass @@ -30,7 +30,7 @@ python () { if d.getVar("MODIFYTOS") != "1": return - if d.getVar("TCLIBC") == "baremetal": + if d.getVar("TCLIBC") in [ 'baremetal', 'newlib' ]: return tos = d.getVar("TARGET_OS") diff --git a/meta/conf/distro/include/tclibc-newlib.inc b/meta/conf/distro/include/tclibc-newlib.inc new file mode 100644 index 0000000000..dc631d8ada --- /dev/null +++ b/meta/conf/distro/include/tclibc-newlib.inc @@ -0,0 +1,44 @@ +# +# Newlib configuration +# + +LIBCEXTENSION = "-newlib" +LIBCOVERRIDE = ":libc-newlib" + +PREFERRED_PROVIDER_virtual/libc ?= "newlib" +PREFERRED_PROVIDER_virtual/libiconv ?= "newlib" +PREFERRED_PROVIDER_virtual/libintl ?= "newlib" +PREFERRED_PROVIDER_virtual/nativesdk-libintl ?= "nativesdk-glibc" +PREFERRED_PROVIDER_virtual/nativesdk-libiconv ?= "nativesdk-glibc" + +DISTRO_FEATURES_BACKFILL_CONSIDERED += "ldconfig" + +#USE_NLS ?= "no" + +IMAGE_LINGUAS = "" + +LIBC_DEPENDENCIES = "\ + newlib-dbg \ + newlib-dev \ + libgloss \ + libgloss-dev \ + libgloss-dbg \ + libgcc-dev \ + libgcc-dbg \ + " + +# compilerlibs defaults to gcc-runtime, but we get runtime from libgloss +# we set ASSUME_PROVIDED because we cant set PREFERRED_PROVIDER +# for compilerlibs since its overridden by tcmode-default +ASSUME_PROVIDED += "virtual/${TARGET_PREFIX}compilerlibs virtual/crypt" + +# Its useful to be able to extend newlib, but we dont provide a native variant of libgloss +NEWLIB_EXTENDED ?= "libgloss libgcc" +BASE_DEFAULT_DEPS_append_class-target = " ${NEWLIB_EXTENDED}" + +TARGET_OS = "elf" +TARGET_OS_arm = "eabi" + +TOOLCHAIN_HOST_TASK ?= "packagegroup-cross-canadian-${MACHINE}" +TOOLCHAIN_TARGET_TASK ?= "${LIBC_DEPENDENCIES}" +TOOLCHAIN_NEED_CONFIGSITE_CACHE_remove = "zlib ncurses" diff --git a/meta/recipes-core/newlib/newlib_3.0.0.bb b/meta/recipes-core/newlib/newlib_3.0.0.bb index 3380576b83..09238fe006 100644 --- a/meta/recipes-core/newlib/newlib_3.0.0.bb +++ b/meta/recipes-core/newlib/newlib_3.0.0.bb @@ -14,3 +14,6 @@ do_install_append() { # Remove original directory rmdir ${D}${prefix}/${TARGET_SYS} } + +# No rpm package is actually created but -dev depends on it, avoid dnf error +RDEPENDS_${PN}-dev_libc-newlib = "" diff --git a/meta/recipes-devtools/gcc/libgcc-common.inc b/meta/recipes-devtools/gcc/libgcc-common.inc index 848a476207..d959566c3f 100644 --- a/meta/recipes-devtools/gcc/libgcc-common.inc +++ b/meta/recipes-devtools/gcc/libgcc-common.inc @@ -47,8 +47,13 @@ do_install () { do_install_append_libc-baremetal () { rmdir ${D}${base_libdir} } +do_install_append_libc-newlib () { + rmdir ${D}${base_libdir} +} +# No rpm package is actually created but -dev depends on it, avoid dnf error RDEPENDS_${PN}-dev_libc-baremetal = "" +RDEPENDS_${PN}-dev_libc-newlib = "" BBCLASSEXTEND = "nativesdk" |