Matt,

   Trying a fresh build, perl 5.16.0 fails to configure.

As user lfs:

$ sh Configure -des -Dprefix=/tools

Directories to use for library searches?
[/lib/../lib64 /usr/lib/../lib64 /lib /usr/lib /tools/lib]
...

What libraries to use?
[-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat]
...

  Checking your choice of C compiler and flags for coherency...
I've tried to compile and run the following simple program:

#include <stdio.h>
int main() { printf("Ok\n"); return(0); }

I used the command:

         cc -o try -O2 -fno-strict-aliasing -pipe -fstack-protector 
-fstack-protector try.c -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc 
-lgdbm_compat
          ./try

and I got the following output:

/mnt/lfs/tools/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../x86_64-unknown-linux-gnu/bin/ld:
 
cannot find -lgdbm
/mnt/lfs/tools/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../x86_64-unknown-linux-gnu/bin/ld:
 
cannot find -ldb
collect2: error: ld returned 1 exit status
===========

On my system, I have
/usr/lib/libdb.so
/usr/lib/libgdbm.so
/usr/lib/libgdbm_compat.so

But we really don't want to use any of those because they won't be 
available in chroot.  It is curious Configure finds them at first and 
then the link command doesn't as the lfs user.

==========

If I run Configure manually and leave off -lgdbm -ldb -lgdbm_compat, it 
builds OK.

==========

Finally, I found if I edit Configure (chmod 775 first), and add the line:

libswanted=''

to line 3577, then it works!

chmod 0744 Configure
sed -i -e '/Restore computed paths/i libswanted=""' Configure

sh Configure -des -Dprefix=/tools
make CLDFLAGS='-lm'

and continue seems to work.

   -- Bruce

P.S.  This took WAY too long to figure out.
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to