Ah, we patch all of Makefiles:
sed ... ${B}/*/Makefile
This isn't correct; only ${B}/src/Makefile produces executables and
only they need to be statically linked. It did work fine on debian 12,
so I guess newer host gcc throws these errors when linking shared
libraries :-/
I'll reproduce and confirm that.
Alex
On Wed, 10 Jan 2024 at 18:50, Richard Purdie
<[email protected]> wrote:
>
> On Wed, 2024-01-10 at 13:09 +0100, Alexander Kanavin wrote:
> > shadow 4.14.x adds a number of libraries it dynamically links with
> > (md, bsd, attr). This causes troubles in setscene tasks where
> > shadow executables are used (such as useradd), as pulling in
> > the needed dynamic libraries needs unpleasant special-casing.
> >
> > Signed-off-by: Alexander Kanavin <[email protected]>
> > ---
> > meta/conf/distro/include/no-static-libs.inc | 5 +++++
> > meta/recipes-extended/shadow/shadow.inc | 9 +++++++++
> > 2 files changed, 14 insertions(+)
> >
> > diff --git a/meta/conf/distro/include/no-static-libs.inc
> > b/meta/conf/distro/include/no-static-libs.inc
> > index 75359928a14..8898d53d756 100644
> > --- a/meta/conf/distro/include/no-static-libs.inc
> > +++ b/meta/conf/distro/include/no-static-libs.inc
> > @@ -21,6 +21,11 @@ DISABLE_STATIC:pn-libusb1-native = ""
> > # needed by rust
> > DISABLE_STATIC:pn-musl = ""
> >
> > +# needed by shadow-native to build static executables, particularly useradd
> > +DISABLE_STATIC:pn-attr-native = ""
> > +DISABLE_STATIC:pn-libbsd-native = ""
> > +DISABLE_STATIC:pn-libmd-native = ""
> > +
> > EXTRA_OECONF:append = "${DISABLE_STATIC}"
> >
> > EXTRA_OECMAKE:append:pn-libical = " -DSHARED_ONLY=True"
> > diff --git a/meta/recipes-extended/shadow/shadow.inc
> > b/meta/recipes-extended/shadow/shadow.inc
> > index c024746d4ff..67346aa5cb1 100644
> > --- a/meta/recipes-extended/shadow/shadow.inc
> > +++ b/meta/recipes-extended/shadow/shadow.inc
> > @@ -47,6 +47,15 @@ EXTRA_OECONF += "--without-libcrack \
> >
> > CFLAGS:append:libc-musl = " -DLIBBSD_OVERLAY"
> >
> > +# Force static linking of utilities so we can use from the sysroot/sstate
> > for useradd
> > +# without worrying about the dependency libraries being available
> > +do_compile:prepend:class-native () {
> > + sed -i -e 's#\(LIBS.*\)-lbsd#\1 ${STAGING_LIBDIR}/libbsd.a
> > ${STAGING_LIBDIR}/libmd.a#g' \
> > + -e 's#\(LIBBSD.*\)-lbsd#\1 ${STAGING_LIBDIR}/libbsd.a
> > ${STAGING_LIBDIR}/libmd.a#g' \
> > + -e 's#\(LIBATTR.*\)-lattr#\1 ${STAGING_LIBDIR}/libattr.a#g' \
> > + ${B}/*/Makefile
> > +}
> > +
> > NSCDOPT = ""
> > NSCDOPT:class-native = "--without-nscd"
> > NSCDOPT:class-nativesdk = "--without-nscd"
>
> Something isn't quite right:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/23/builds/8749
> https://autobuilder.yoctoproject.org/typhoon/#/builders/120/builds/3837
> https://autobuilder.yoctoproject.org/typhoon/#/builders/117/builds/4219
> https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/6301/steps/14/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/154/builds/1155/steps/13/logs/stdio
>
> :(
>
> I'm going to stop that build.
>
> Cheers,
>
> Richard
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193519):
https://lists.openembedded.org/g/openembedded-core/message/193519
Mute This Topic: https://lists.openembedded.org/mt/103639214/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-