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