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>