linux proc, rpm and glibc_post_upgrade

Sean McNeil sean at mcneil.com
Wed Dec 15 09:35:01 PST 2004


On Wed, 2004-12-15 at 12:49 +0200, Ruslan Ermilov wrote:
> On Tue, Dec 14, 2004 at 01:27:41PM -0800, Sean McNeil wrote:
> > I decided to take a look at why linux_base is failing to install without
> > --noscripts.  So far, I've found that glibc will not install because
> > 
> > /compat/linux/usr/sbin/glibc_post_upgrade
> > 
> > returns 1 when it is executed.  Does anyone know where I can get the
> > source code to this for examination.  A quick google got me nowhere.
> > 
> > Looking at strings output, I see a few things of interest:
> > 
> > /lib/i686/libc-2.2.4.so
> > /lib/i686/libm-2.2.4.so
> > /lib/i686/libpthread-0.9.so
> > /lib/i686/libc.so.6
> > /lib/i686/libm.so.6
> > /lib/i686/libpthread.so.0
> > /sbin/ldconfig
> > /usr/sbin/iconvconfig
> > /sbin/telinit
> > /dev/initctl
> > /proc/1/exe
> > /proc/1/root
> > 
> > I do not see a /compat/linux/lib/i686 dir.
> > /compat/linux/proc is unmounted during install.
> > when mounted, /compat/linux/proc/1/root points to the system root, not
> > the linux compat root and there is not /compat/linux/proc/1/exe.
> > 
> I already mentioned that in another thread: sendmsg and recvmsg are
> known to be broken on amd64, hence exit(1) from glibc_post_upgrade.
> Installing only glibc-2.2.*.rpm with --noscripts exhibits another
> problem (from dmesg(8)):

I also mentioned in another recent thread what the sources to
glibc_post_upgrade look like:

  pid = vfork ();
  if (pid == 0) {
    execl ("/sbin/ldconfig", "/sbin/ldconfig", NULL);
    _exit (1);
  } else if (pid < 0) {
    _exit (1);
  }
  if (waitpid (0, &status, 0) != pid || !WIFEXITED (status)) {
    _exit (1);
  }

So if fork/waitpid communicate via sendmsg/recvmsg that would mean a lot
of linux programs would not work :(

> linux: pid 24134 (glidelink): sysctl {1,23} is not implemented
> linux: pid 24134 (glidelink): syscall syslog not implemented
> pid 24134 (glidelink), uid 0: exited on signal 12 (core dumped)
> 
> 
> Cheers,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-amd64/attachments/20041215/6dd3722b/attachment.bin


More information about the freebsd-amd64 mailing list