On Sat, 18 Jan 2020 at 15:25, Richard Purdie < [email protected]> wrote:
> On Sat, 2020-01-18 at 13:22 -0800, Alejandro Enedino Hernandez > Samaniego wrote: > > Some baremetal applications might require support from libstdc++. > > > > On newlib based toolchains, libstdc++ can be built as a static > > library that applications can then link against it. > > > > Pass libsdtc++-(static)dev to LIBC_DEPENDENCIES allowing the > > library to be present for cross compilation as well as on > > sdk builds. > > > > This also requires to modify the gcc-runtime recipe to > > explictly build only libsdtc++ correctly. > > > > Signed-off-by: Alejandro Enedino Hernandez Samaniego < > > [email protected]> > > --- > > meta/conf/distro/include/tclibc-newlib.inc | 7 +++---- > > meta/recipes-devtools/gcc/gcc-runtime.inc | 6 ++++++ > > 2 files changed, 9 insertions(+), 4 deletions(-) > > > > diff --git a/meta/conf/distro/include/tclibc-newlib.inc > > b/meta/conf/distro/include/tclibc-newlib.inc > > index 896c0b1..8338003 100644 > > --- a/meta/conf/distro/include/tclibc-newlib.inc > > +++ b/meta/conf/distro/include/tclibc-newlib.inc > > @@ -25,12 +25,11 @@ LIBC_DEPENDENCIES = "\ > > libgloss-dbg \ > > libgcc-dev \ > > libgcc-dbg \ > > + libstdc++-dev \ > > + libstdc++-staticdev \ > > " > > > > -# 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" > > +ASSUME_PROVIDED += "virtual/crypt" > > > > # Its useful to be able to extend newlib, but we dont provide a > > native variant of libgloss > > NEWLIB_EXTENDED ?= "libgloss libgcc" > > diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc > > b/meta/recipes-devtools/gcc/gcc-runtime.inc > > index d3f8ae8..f035fbd 100644 > > --- a/meta/recipes-devtools/gcc/gcc-runtime.inc > > +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc > > @@ -17,6 +17,9 @@ EXTRA_OECONF_PATHS = "\ > > EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu" > > EXTRA_OECONF_append = " --cache-file=${B}/config.cache" > > > > +EXTRA_OECONF_remove_libc-newlib = "--enable-symvers=gnu" > > +EXTRA_OECONF_append_libc-newlib = " --with-newlib" > > + > > I really don't like using remove in core. Can we restructure this so > that symvers is set something like: > > SYMVERS_CONF = " --enable-clocale=gnu" > SYMVERS_CONF_libc-newlib = "" > EXTRA_OECONF_append += "${SYMVERS_CONF}" > > ? > Hey Richard, Absolutely agree, I will send a v2 with these changes. Alejandro > > > # Disable ifuncs for libatomic on arm conflicts -march/-mcpu > > EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " > > > > @@ -33,6 +36,9 @@ RUNTIMELIBITM_riscv64 = "" > > RUNTIMELIBSSP ?= "" > > RUNTIMELIBSSP_mingw32 ?= "libssp" > > > > +# Only build libstdc++ for newlib > > +RUNTIMETARGET_libc-newlib = "libstdc++-v3" > > + > > RUNTIMETARGET = "${RUNTIMELIBSSP} libstdc++-v3 libgomp libatomic > > ${RUNTIMELIBITM} \ > > ${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'], > > 'libquadmath', '', d)} \ > > " > > Convention is top put the overridden version under the original. > Will change this as well > > Cheers, > > Richard > >
-- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
