| Submitter | Khem Raj |
|---|---|
| Date | Nov. 21, 2011, 8:23 p.m. |
| Message ID | <1321906980-16016-1-git-send-email-raj.khem@gmail.com> |
| Download | mbox | patch |
| Permalink | /patch/15211/ |
| State | New |
| Headers | show |
Comments
On Mon, 2011-11-21 at 12:23 -0800, Khem Raj wrote: > A recent change introduced EXTRA_OECONF_append_libc-uclibc = " > --with-versioned=no " this change has a side effect when > building alsa-lib-native using TCLIBC=uclibc the override > kicks in uninvited and hence build the native package without symbol > version information. This mean libasound.so which is needed by other > packages from build host e.g. libSDL.so does not have required symbols > and linking with libSDL fails, one such case ends in SDL support > in qemu-native being silently disabled. > > We make sure that override is only enabled for target recipe This seems like the wrong solution to the problem. Shouldn't you be inhibiting the libc-uclibc OVERRIDE at source for native builds (assuming the host system isn't using uClibc)? It also seems as though there ought to be a more generic place to encode the knowledge that uClibc doesn't do symbol versioning. Having to hack it into EXTRA_OECONF for every recipe seems... suboptimal. p. > > Signed-off-by: Khem Raj <raj.khem@gmail.com> > --- > meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb | 10 ++++++---- > 1 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb > index 83e663d..fa96998 100644 > --- a/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb > +++ b/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb > @@ -14,7 +14,7 @@ BBCLASSEXTEND = "native nativesdk" > #FIXME: remove the following > ARM_INSTRUCTION_SET = "arm" > > -PR = "r1" > +PR = "r2" > > SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \ > file://fix-tstamp-declaration.patch" > @@ -27,10 +27,12 @@ inherit autotools pkgconfig > require alsa-fpu.inc > EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} " > > -EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python" > - > -EXTRA_OECONF_append_libc-uclibc = " --with-versioned=no " > +EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python ${VERSIONEDSYMS}" > > +VERSIONEDSYMS = "" > +VERSIONEDSYMS_libc-uclibc = "--with-versioned=no" > +VERSIONEDSYMS_virtclass-native = "" > +VERSIONEDSYMS_virtclass-nativesdk = "" > PKGSUFFIX = "" > PKGSUFFIX_virtclass-nativesdk = "-nativesdk" >
On Mon, Nov 21, 2011 at 12:48 PM, Phil Blundell <philb@gnu.org> wrote: > On Mon, 2011-11-21 at 12:23 -0800, Khem Raj wrote: >> A recent change introduced EXTRA_OECONF_append_libc-uclibc = " >> --with-versioned=no " this change has a side effect when >> building alsa-lib-native using TCLIBC=uclibc the override >> kicks in uninvited and hence build the native package without symbol >> version information. This mean libasound.so which is needed by other >> packages from build host e.g. libSDL.so does not have required symbols >> and linking with libSDL fails, one such case ends in SDL support >> in qemu-native being silently disabled. >> >> We make sure that override is only enabled for target recipe > > This seems like the wrong solution to the problem. Shouldn't you be > inhibiting the libc-uclibc OVERRIDE at source for native builds > (assuming the host system isn't using uClibc)? yes I thought of that that libc-uclibc/libc-glibc overrides should only pertain to target recipes and not extend to native/nativesdk. This would need probably redoing the overrides in native bbclass. I did not pursue it since it would need lot more testing which I could not afford atm. > > It also seems as though there ought to be a more generic place to encode > the knowledge that uClibc doesn't do symbol versioning. Having to hack > it into EXTRA_OECONF for every recipe seems... suboptimal. > while the feature is generic it does not seem to have impact on lot of recipes > p. > >> >> Signed-off-by: Khem Raj <raj.khem@gmail.com> >> --- >> meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb | 10 ++++++---- >> 1 files changed, 6 insertions(+), 4 deletions(-) >> >> diff --git a/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb >> index 83e663d..fa96998 100644 >> --- a/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb >> +++ b/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb >> @@ -14,7 +14,7 @@ BBCLASSEXTEND = "native nativesdk" >> #FIXME: remove the following >> ARM_INSTRUCTION_SET = "arm" >> >> -PR = "r1" >> +PR = "r2" >> >> SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \ >> file://fix-tstamp-declaration.patch" >> @@ -27,10 +27,12 @@ inherit autotools pkgconfig >> require alsa-fpu.inc >> EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} " >> >> -EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python" >> - >> -EXTRA_OECONF_append_libc-uclibc = " --with-versioned=no " >> +EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python ${VERSIONEDSYMS}" >> >> +VERSIONEDSYMS = "" >> +VERSIONEDSYMS_libc-uclibc = "--with-versioned=no" >> +VERSIONEDSYMS_virtclass-native = "" >> +VERSIONEDSYMS_virtclass-nativesdk = "" >> PKGSUFFIX = "" >> PKGSUFFIX_virtclass-nativesdk = "-nativesdk" >> > > > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core >
On Mon, Nov 21, 2011 at 12:48 PM, Phil Blundell <philb@gnu.org> wrote: > On Mon, 2011-11-21 at 12:23 -0800, Khem Raj wrote: >> A recent change introduced EXTRA_OECONF_append_libc-uclibc = " >> --with-versioned=no " this change has a side effect when >> building alsa-lib-native using TCLIBC=uclibc the override >> kicks in uninvited and hence build the native package without symbol >> version information. This mean libasound.so which is needed by other >> packages from build host e.g. libSDL.so does not have required symbols >> and linking with libSDL fails, one such case ends in SDL support >> in qemu-native being silently disabled. >> >> We make sure that override is only enabled for target recipe > > This seems like the wrong solution to the problem. Shouldn't you be > inhibiting the libc-uclibc OVERRIDE at source for native builds > (assuming the host system isn't using uClibc)? > > It also seems as though there ought to be a more generic place to encode > the knowledge that uClibc doesn't do symbol versioning. Having to hack > it into EXTRA_OECONF for every recipe seems... suboptimal. > I have posted another patch which is broader in impact and solves these kind of problems here http://lists.linuxtogo.org/pipermail/openembedded-core/2011-November/013375.html Thanks -Khem
Patch
diff --git a/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb index 83e663d..fa96998 100644 --- a/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb +++ b/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb @@ -14,7 +14,7 @@ BBCLASSEXTEND = "native nativesdk" #FIXME: remove the following ARM_INSTRUCTION_SET = "arm" -PR = "r1" +PR = "r2" SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \ file://fix-tstamp-declaration.patch" @@ -27,10 +27,12 @@ inherit autotools pkgconfig require alsa-fpu.inc EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} " -EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python" - -EXTRA_OECONF_append_libc-uclibc = " --with-versioned=no " +EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python ${VERSIONEDSYMS}" +VERSIONEDSYMS = "" +VERSIONEDSYMS_libc-uclibc = "--with-versioned=no" +VERSIONEDSYMS_virtclass-native = "" +VERSIONEDSYMS_virtclass-nativesdk = "" PKGSUFFIX = "" PKGSUFFIX_virtclass-nativesdk = "-nativesdk"
A recent change introduced EXTRA_OECONF_append_libc-uclibc = " --with-versioned=no " this change has a side effect when building alsa-lib-native using TCLIBC=uclibc the override kicks in uninvited and hence build the native package without symbol version information. This mean libasound.so which is needed by other packages from build host e.g. libSDL.so does not have required symbols and linking with libSDL fails, one such case ends in SDL support in qemu-native being silently disabled. We make sure that override is only enabled for target recipe Signed-off-by: Khem Raj <raj.khem@gmail.com> --- meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-)