Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Dec 2004 09:34:59 -0800
From:      Sean McNeil <sean@mcneil.com>
To:        Ruslan Ermilov <ru@FreeBSD.org>
Cc:        amd64@FreeBSD.org
Subject:   Re: linux proc, rpm and glibc_post_upgrade
Message-ID:  <1103132099.43203.10.camel@server.mcneil.com>
In-Reply-To: <20041215104922.GN25967@ip.net.ua>
References:  <1103059661.47262.6.camel@server.mcneil.com> <20041215104922.GN25967@ip.net.ua>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-0yXc74aN+F27xtUHxFVQ
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

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 withou=
t
> > --noscripts.  So far, I've found that glibc will not install because
> >=20
> > /compat/linux/usr/sbin/glibc_post_upgrade
> >=20
> > 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.
> >=20
> > Looking at strings output, I see a few things of interest:
> >=20
> > /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
> >=20
> > 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.
> >=20
> 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 =3D vfork ();
  if (pid =3D=3D 0) {
    execl ("/sbin/ldconfig", "/sbin/ldconfig", NULL);
    _exit (1);
  } else if (pid < 0) {
    _exit (1);
  }
  if (waitpid (0, &status, 0) !=3D 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)
>=20
>=20
> Cheers,

--=-0yXc74aN+F27xtUHxFVQ
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQBBwHXDyQsGN30uGE4RAjAhAJ9JJzpGL0i/Vnml+Ox1k6MlKoWLggCfYem6
GYpXvXMfgmRB0NrEQqoLY6E=
=EzNV
-----END PGP SIGNATURE-----

--=-0yXc74aN+F27xtUHxFVQ--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1103132099.43203.10.camel>