[OE-core] LSB support?

Mark Hatle mark.hatle at windriver.com
Mon Mar 19 16:07:26 UTC 2012


On 3/18/12 8:47 PM, Ni Qingliang wrote:
> I have encountered a similar problem when do a clean building in another
> VM (running archlinux).
>
> after remove /usr//lib/libXrandr.so.2:
> mv /usr/lib/../lib/libXrandr.so.2 /usr/lib/../lib/libXrandr.so.2.bak
>
> I got a new error:
> /usr/lib/../lib/libXext.so.6: undefined reference to `memcpy at GLIBC_2.14'
>
> so IMO, it used the wrong lib path. following is the output section of
> 'do_compile', the key is '/usr/lib/../lib', maybe it should be
> '<xxxdir>/usr/lib/../lib'.

I don't see anything obvious in the code below.  Search the build logs for 
libXrandr, libXext for references to /usr/lib or similar.

Are you using the stock oe-core toolchain?  If so there is a patch that detects 
and attempts to poison (cause an error) usage of system directories while cross 
compiling.  If you are using your own toolchain, a vendor toolchain, or a 
CS/Mentor toolchain.. then you may not have this patch and the system won't auto 
detect that type of contamination.

Check the version of glibc on your host, is it 2.14 (or newer)?  Then check the 
version of eglibc in your build, I assume it's 2.13...

if the above is true, that would seem to indicate that it is likely host 
contamination...

The other tool you can enable is "swabber", in your local.conf in the 
"USER_CLASSES" you can enable "image-swab".  Swabber can be a -very- slow 
process, but is a good last resort for identifying host contamination.

It's been a while since I used swabber, and I don't remember how.  I've been 
looking and I'm having problems finding the documentation on setup and usage of 
swabber.  You may need to join and ask on the Yocto Project mailing list for 
help on that.

--Mark

> output section:
> Making all in gconf
> make[2]: Entering directory
> `/media/pangu/lsbt/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/GConf-3.2.3/gconf'
> make  all-am
> make[3]: Entering directory
> `/media/pangu/lsbt/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/GConf-3.2.3/gconf'
> ../x86_64-poky-linux-libtool  --tag=CC   --mode=link
> x86_64-poky-linux-gcc    -m64
> --sysroot=/media/pangu/lsbt/tmp/sysroots/qemux86-64  -O2 -pipe -g
> -feliminate-unused-debug-types -Wall -DGCONF_ENABLE_DEBUG=1  -Wl,-O1
> -Wl,--hash-style=gnu -Wl,--as-needed -o gconf-sanity-check-2
> gconf-sanity-check.o libgconf-2.la   -pthread -Wl,--export-dynamic
> -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0
> -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype
> -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
> -lxml2
> x86_64-poky-linux-libtool: link: x86_64-poky-linux-gcc -m64
> --sysroot=/media/pangu/lsbt/tmp/sysroots/qemux86-64 -O2 -pipe -g
> -feliminate-unused-debug-types -Wall -DGCONF_ENABLE_DEBUG=1 -Wl,-O1
> -Wl,--hash-style=gnu -Wl,--as-needed -o .libs/gconf-sanity-check-2
> gconf-sanity-check.o -pthread
> -Wl,--export-dynamic  ./.libs/libgconf-2.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libdbus-glib-1.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libdbus-1.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libgtk-x11-2.0.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libgdk-x11-2.0.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libatk-1.0.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libpangocairo-1.0.so -L=/usr/lib /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libpangoft2-1.0.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/../lib/libstdc++.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libgdk_pixbuf-2.0.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libgio-2.0.so -lresolv /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libcairo.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libpixman-1.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libpng12.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libXren!
 de!
>   r.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libX11.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libxcb.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libXau.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libXdmcp.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libpango-1.0.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libfontconfig.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libfreetype.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libexpat.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libgobject-2.0.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libffi.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libgmodule-2.0.so /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libgthread-2.0.so -lpthread /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libglib-2.0.so -lrt /media/pangu/lsbt/tmp/sysroots/qemux86-64/usr/lib/libxml2.so -ldl -lz -lm -pthread -Wl,-rpath -Wl,/usr/lib/../lib
> /usr/lib/../lib/libXext.so.6: undefined reference to `memcpy at GLIBC_2.14'
> collect2: ld returned 1 exit status
> make[3]: *** [gconf-sanity-check-2] Error 1
>
> On Fri, 2012-03-16 at 23:36 +0800, Mark Hatle wrote:
>> On 3/16/12 12:18 AM, Ni Qingliang wrote:
>>> when building qemux86-64 arch core-image-lsb (distro is poky-lsb), I got
>>> /usr/lib/../lib/libXrandr.so.2: undefined reference to
>>> `memcpy at GLIBC_2.14' when 'do_compile' gconf 3.2.3.
>>>
>>> the default eglibc is 2.13, why it needs 2.14?
>>
>> Without anything further, the only guess I can make is that either you aren't
>> using the version of glibc you think you are, it's gotten some host
>> contamination, an explicit reference was added to libXrandr (doubtful), or you
>> are using something that was built/cached from a previous build.  (i.e. did you
>> build w/ eglibc 2.14/2.15 -- and then switch back to eglibc 2.13 for some reason?)
>>
>> On 3/15/12 9:38 PM, Ni Qingliang wrote:
>>   >  first, thanks your reply.
>>   >
>>   >  Because I can't use task-core-lsb on my device (flash space is not
>>   >  enough), I have to make a custom lsb-base image (without
>>   >  perl/python/graphics).
>>   >
>>   >  I have checked the "linuxstdbase", and it will change the configure
>>   >  option of some packages.
>>   >
>>   >  Indeed, I think the daemon/failure/warning fuctions should be considered
>>   >  in package lsb's RDEPENDS.
>>   >
>>   >  what I want to know is the rdepends or where is the
>>   >  daemon/failure/warning.
>>
>> It certainly looks like a component is missing somewhere in the shell scrips
>> that are provided by the LSB functions.  I would assume that the
>> depends/provides is setup properly to point to whatever should be providing the
>> missing daemon, failure, warning commands.  If it's not (or if by default -- non
>> lsb mode) they're not being built, it's a definite bug.  You shouldn't be able
>> to build a non-functional systems.
>>
>> Please file a defect on bugzilla.yoctoproject.org.  I will attempt to
>> investigate it (or someone else can).  Hopefully it's just as a simple as a
>> missing dependency.
>>
>> --Mark
>>
>>> On Fri, 2012-03-16 at 00:25 +0800, Mark Hatle wrote:
>>>> On 3/15/12 3:18 AM, Ni Qingliang wrote:
>>>>> Hello, I'm working on custom lsb-base image using oe-core.
>>>>>
>>>>> and when using the lsb script, found error:
>>>>>
>>>>> lsb_start_daemon line 44: daemon command not found.
>>>>>
>>>>> similar thing happend on lsb_log_message: failure and warning command
>>>>> not found.
>>>>>
>>>>> maybe these function should be defined in /etc/init.d/functions?
>>>>>
>>>>> but there are not these function in this file (belongs to initscripts).
>>>>
>>>> Did you enable the LSB distribution settings?  Without this, various components
>>>> may not be available.
>>>>
>>>> In Poky, there is a "poky-lsb" distribution type:
>>>>
>>>> DISTRO = "poky-lsb"
>>>> DISTROOVERRIDES = "poky:linuxstdbase"
>>>>
>>>> DISTRO_FEATURES_append = " pam largefile opengl"
>>>> PREFERRED_PROVIDER_virtual/libx11 = "libx11"
>>>>
>>>> (as well as using the core-image-lsb and/or task-core-lsb components.)
>>>>
>>>> If you've tried this and those items are still broken, let me know and I can
>>>> help investigate further.  (One final note, only LSB 1.4 is currently supported.)
>>>>
>>>> --Mark
>>>>
>>>>> Any idea?
>>>>>
>>>>> thanks!
>>>>>
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Openembedded-core mailing list
>>>> Openembedded-core at lists.openembedded.org
>>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>>
>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>





More information about the Openembedded-core mailing list