On Wed, Nov 16, 2011 at 10:19:09PM +0100, Andrzej Tobola wrote:
On Wed, Nov 16, 2011 at 12:10:24PM +0000, Richard W.M. Jones wrote:
On Mon, Nov 14, 2011 at 04:43:28PM +0100, Andrzej Tobola wrote:
Hello Richard,
Can't configure febootstrap-3.12 on Fedora 16:
$ ./configure ............ checking for aptitude... no checking for apt-cache... no checking for dpkg... no checking for pacman... no checking for gzopen in -lz... no checking for mke2fs... /sbin/mke2fs checking for error_message in -lcom_err... no configure: error: in `/home/ato/febootstrap/febootstrap-3.12': configure: error: com_err library not found (part of e2fsprogs) See `config.log' for more details
[ato@f16 febootstrap-3.12]$ gcc -std=gnu99 -o conftest -g -O2 conftest.c -lcom_err /usr/lib/gcc/x86_64-redhat-linux/4.6.2/../../../../lib64/libcom_err.a(error_message.o): In function `et_list_lock': (.text+0x18d): undefined reference to `sem_wait' /usr/lib/gcc/x86_64-redhat-linux/4.6.2/../../../../lib64/libcom_err.a(error_message.o): In function `et_list_unlock': (.text+0x1b6): undefined reference to `sem_post' /usr/lib/gcc/x86_64-redhat-linux/4.6.2/../../../../lib64/libcom_err.a(error_message.o): In function `setup_et_lock': (.text.startup+0x11): undefined reference to `sem_init' /usr/lib/gcc/x86_64-redhat-linux/4.6.2/../../../../lib64/libcom_err.a(error_message.o): In function `fini_et_lock': (.text.exit+0xa): undefined reference to `sem_destroy' collect2: ld returned 1 exit status
It seems that sem_* symbols are in -pthread - thist works OK:
$ gcc -std=gnu99 -o conftest -g -O2 conftest.c -pthread -lcom_err
so What must be corrected ?
I don't see this error myself. I just unpacked febootstrap-3.12 from the tarball, and ./configure && make works fine.
What does config.log say?
As I described - configure can't compile conftest.c stub (with the purpose of testing of existance of the library libcomm_err) because there are unresolved loader references, and as a result: fatal error:
checking for error_message in -lcom_err... no
So how/where your config finds sem_* symbols functions ? or mebe your libcom_err is self-contained and does not reference them ?
On my fresh Fedora 16 -pthread cc option must be definded becasue libcom_err is not self-contained and needs sem_* symbols which option -pthread provides.
On my Rawhide-ish Fedora 16 box: $ rpm -qf /usr/lib64/libcom_err.so libcom_err-devel-1.42-0.7.WIP.1016.fc17.x86_64 $ cat test.c #include <stdio.h> #include <com_err.h> main () { char *t = (char *) com_err; printf ("%p\n", t); } $ gcc test.c -o test -lcom_err $ ./test 0x400510 $ ldd ./test linux-vdso.so.1 (0x00007fffa8371000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003024c00000) libc.so.6 => /lib64/libc.so.6 (0x00000033a6800000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00000033a6c00000) /lib64/ld-linux-x86-64.so.2 (0x00000033a6400000) I suspect there's a bug in F16's com_err. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming blog: http://rwmj.wordpress.com Fedora now supports 80 OCaml packages (the OPEN alternative to F#) http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora