On 06/01/2012 04:33 PM, Ken Moffat wrote:
> On Thu, May 31, 2012 at 09:13:08PM -0500, Bruce Dubbs wrote:
>> Ken Moffat wrote:
>>
>>> libtool: link: `/usr/lib64/libudev.la' is not a valid libtool
>>> archive
>>
>> libtool is a (long) shell script generated with configure.  I found that
>> phrase in 10 different places.  Can you instrument it and see what is
>> causing it to reject the file?
>>
>   I only found 9 in this version, and it was the fifth of those:
>
>          # Check to see that this really is a libtool archive.
>          echo "libtool: fifth test"
>          func_lalib_unsafe_p "$lib" \
>            || func_fatal_error "\`$lib' is not a valid libtool archive"
>
>          func_dirname "$lib" "" "."
>          ladir="$func_dirname_result"
>
>   The function is:
>
> # func_lalib_unsafe_p file
> # True iff FILE is a libtool `.la' library or `.lo' object file.
> # This function implements the same check as func_lalib_p without
> # resorting to external programs.  To this end, it redirects stdin
> # and
> # closes it afterwards, without saving the original file descriptor.
> # As a safety measure, use it only where a negative result would be
> # fatal anyway.  Works if `file' does not exist.
> func_lalib_unsafe_p ()
> {
>      lalib_p=no
>      if test -f "$1"&&  test -r "$1"&&  exec 5<&0<"$1"; then
>          for lalib_p_l in 1 2 3 4
>          do
>              read lalib_p_line
>              case "$lalib_p_line" in
>                  \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
>              esac
>          done
>          exec 0<&5 5<&-
>      fi
>      test "$lalib_p" = yes
> }
>
>   And your .la is missing the 'Generated'
> root@ac4tv /usr/src/xorg-server-1.12.1$ grep Generated
> /usr/lib/libudev.la
> root@ac4tv /usr/src/xorg-server-1.12.1$
>
>   from udev-182 on the host:
>
> ken@ac4tv ~ $grep Generated /usr/lib/libudev.la
> # Generated by libtool (GNU libtool) 2.4.2
> ken@ac4tv ~ $
>
>   It's the second line of the file:
>
> root@ac4tv /home/ken #diff {,/mnt/lfs}/usr/lib/libudev.la
> 2c2
> <  # Generated by libtool (GNU libtool) 2.4.2
> ---
>> # Custom file by LFS
> 8c8
> <  dlname='libudev.so.0'
> ---
>> dlname='libudev.so.1'
> 11c11
> <  library_names='libudev.so.0.13.1 libudev.so.0 libudev.so'
> ---
>> library_names='libudev.so.1.0.0 libudev.so.1 libudev.so'
> 26,28c26,28
> <  current=13
> <  age=13
> <  revision=1
> ---
>> current=1
>> age=0
>> revision=0
> 41a42
>>
>
>   Looks as if that 'Custom file by LFS' isn't permitted.
>
>   The difference from Mesa is that Mesa used -ludev but this version
> of xorg-server is using libtool for the heavy lifting.
>
>   I've edited /usr/lib/libtool.la to start with the following:
> # libudev.la - a libtool library file
> # Generated by libtool
> # Custom file by LFS
>
>   That is good enough to get past that first problem (probably better
> if Custom file was replaced by something to clarify it's not really
> from libtool), but it then fails the same way that my attempt to use
> the .so file (by hiding the .la) did:
>
> /usr/lib/libudev.so: undefined reference to `mkdir_parents'
> /usr/lib/libudev.so: undefined reference to `startswith'
> collect2: error: ld returned 1 exit status
>
>   The startswith library function seems to be part of the systemd
> library infrastructure:
>
> commit 33502ffe2eb7b56cdd018a4fb6830d7828519fad
> Author: Kay Sievers<k...@vrfy.org>
> Date:   Mon Apr 16 20:27:44 2012 +0200
>
>      udev: use startswith() and streq()
>
>    So probably more of the systemd libraries are needed to provide
> these functions.
>
> ĸen

oh man, I can't believe you still use libtool files for compiling 
programs. Every sane distro has removed them ... I haven't got any 
single of them on my machine and yet everything works perfectly ... So 
tell me, have you tried NOT to install that file? libtool will fall back 
to -lsomething if .la file is not found.
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to