Hi,

On 26.04.2011, at 16:39, Jan Rovins wrote:

> 
> On 4/26/2011 8:07 AM, Mika N wrote:
>>> Robert Holmes wrote:
>>> ./.libs/libxorg.a(udev.o): In function `device_added':
>>> udev.c:(.text+0x4e): undefined reference to `udev_device_get_devnode'
>>> udev.c:(.text+0x59): undefined reference to `udev_device_get_syspath'
>>> udev.c:(.text+0x85): undefined reference to `udev_device_get_property_value'
>>> udev.c:(.text+0x11b): undefined reference to `udev_device_get_parent'
>>> udev.c:(.text+0x12e): undefined reference to `udev_device_get_devnode'
>>> udev.c:(.text+0x149): undefined reference to 
>>> `udev_device_get_property_value'
>>> udev.c:(.text+0x164): undefined reference to `udev_device_get_sysattr_value'
>>> I am building a T2-trunk r38855 Desktop for x86 at the i686 level. Any 
>>> advice would be appreciated.
>> I have also tried few options to fix this problem with the lastest 
>> xorg-server version in T2 SVN trunk.
>> 
>> The above shown errors are coming from linker, so I edited 
>> xorg-server/hw/xfree86/libxorg.la file and added -ludev library entry just 
>> before -lcrypt entry. After this change linker succeesully linked 
>> xorg-server to libudev library, but there was new linker error.
>> 
>> Now I'm getting following linker error from xorg-server package :
>> 
>> Entering directory src.xxxxx-x/xorg-server-1.10.1/hw/xfree86"
>> /usr/lib/gcc/i686-t2-linux-gnu/4.5.2/../../../../i686-t2-linux-gnu/bin/ld: 
>> errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS 
>> reference in /lib/libudev.a(libudev-monitor.o)
>> /lib/libc.so.6: could not read symbols: Bad value
>> collect2: ld returned 1 exit status
>> 
>> I know that the above shown error is usually shown if one module uses 
>> something like "extern int errno" line instead of #include<errno.h>  line to 
>> initialize errno reference. But, I'm a bit lost here because xfree86 sources 
>> seem to use include<errno.h>  and extern int errno is nowhere (I would be 
>> surprised to see it there because this thread-safe errno logic has been in 
>> libc files for years already).
>> 
>> As an additional check I checked udev-167 sources also and every file using 
>> errno "variable" had #include<errno.h>  in the beginnin of the C file.
>> 
>> So, the usual fix to errno TLS error by adding #include<errno.h>  didn't 
>> apply here. And if libudev would be broken with errno references then 
>> probably some other toolchain and basetool would have complained about the 
>> same error. But everything else but xorg-server compiles in generic desktop 
>> target (well, not everything but those other failing packages are unrelated 
>> to this case).
>> 
>> Anyone with any ideas to fix this TLS errno error if missing 
>> include<errno.h>  is not the problem (maybe, can't be 100% sure)? At this 
>> point I'm not even sure if this is udev (and libudev library there) or 
>> xorg-server problem. Probably xorg-server problem because it had missing 
>> reference to libudev linker library anyway.
> Just a guess here:
> Udev is built with dietlibc, and xorg is built with glibc. perhaps there is 
> an incompatibility with mixing dietlibc libraries with glibc libraries during 
> the final link.

My guess, too. Our udev package is built twice, one with the system libc, and 
once statically for dietlibc for the initrd. We should simply fix the second 
pass not to install the static library, ...

> Jan
>> 
>> Thx in advance for any ideas.
>> 
>> Mika N
>>                                      
> 
> 
> 
> ----------------------------------------------------------- If you wish to 
> unsubscribe from this mailing, send mail to
> [email protected] with a subject of: unsubscribe t2

-- 
  René Rebe, ExactCODE GmbH, Jaegerstr. 67, DE-10117 Berlin
  http://exactcode.com | http://t2-project.org | http://rene.rebe.de

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[email protected] with a subject of: unsubscribe t2

Reply via email to