Re: Arla 0.42-RC2

[email protected] (Niels Möller)
Newsgroups gmane.comp.file-systems.arla.general
Message-ID <[email protected]>
[email protected] (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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.