Arla 0.42-RC2

Niels Möller nisse at lysator.liu.se
Wed Apr 5 17:06:58 CEST 2006


nisse at lysator.liu.se (Niels Möller) writes:

> It's puzzling. I also tried strace -f arlad -n, which says:
> 
>   5357  open("/lib/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
>   5357  open("/usr/lib/i686/cmov/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
>   5357  open("/usr/lib/i686/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
>   5357  open("/usr/lib/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
>   5357  write(2, "libgcc_s.so.1 must be installed "..., 59) = 59
>   5357  exit_group(127)                   = ?
> 
> The file /lib/libgcc_s.so.1 exists and is readable, so I really don't
> understand why open returns ENOENT.

ceder helped me spot the "obvious" problem. Earlier in the strace
output:

  5332  chroot("/usr/arla/cache")         = 0

So here we have the problem: pthread_cancel wants to use dlopen to
load libgcc_s.so.1. But by the time it calls dlopen, this file is
hidden by chroot.

I'm tempted to say it's a bug in glibc to depend on dlopen like this,
and I wouldn't be surprised if this behaviour is not POSIX-compliant.

Is there any way to force the loading of libgcc earlier? Or how to
work around this?

Regards,
/Niels


More information about the Arla-drinkers mailing list