[F8/multilib] {,/usr}/{,s}bin64 (was: Split libperl from perl)

Axel Thimm Axel.Thimm at ATrpms.net
Wed Apr 25 08:52:40 UTC 2007


On Wed, Apr 25, 2007 at 06:49:39AM +0200, Ralf Corsepius wrote:
> On Tue, 2007-04-24 at 17:19 +0200, Axel Thimm wrote:
> > On Tue, Apr 24, 2007 at 03:04:23PM +0200, Ralf Corsepius wrote:
> > > > Also things like pkg-config for example will still look under 
> > > > /usr/lib64/pkgconfig even when run with/through setarch i386.
> > > Right pkg-config is an issue of its own. It lacks multilib support.
> > 
> > Which may be another side-effect fixed by using bin and bin64,

> Well this would work-around some packaging issues, and some of the
> issues pkg-config has with building native binaries on multilib'ed
> systems, but it would not help the actual issue pkgconfig has with
> multilibs.

The idea it to never let the i386 and x86_64 world collide
anymore. Different pkgconfigs in different paths (even iof making
pkgconfig multilib would be trivial, we want all part of the toolset
to become "multilib", so we go a level higher and solve it for all
simultaneously).

> > Clean separation of archs.

> This is run-time separation, trying to map link-time separation into
> run-time separation. This works as long as the number of multilibs is
> small, but becomes very unhandy, when using pkg-config for systems which
> have many multilibs (such as many embedded systems).

No, this design includes separation at build-time.

The default setup is to use x86_64 bits. Pruning the (s)bin64 parts
out of the path you get a pure i386 system (with annoying lib64
folders, see below).

So, if the packages never conflict filewise (e.g. separate bin{,64} in
addition to the current separate lib{,64} and identical-to-the-mtime
/usr/include, /usr/share etc), you get two rather cleanly separated
systems. Use case:

make_i386() {
  export SAVEPATH="$PATH"
  export PATH=`echo $PATH | sed -e's,[^:]*bin64[^:]*,,g' -e's,::*,:,g' -e's,^:,,' -e's,:$,,'`
  setarch i386
}

make_x86_64() {
  ...
}

tar -zpxf foo-1.2.3.tar.bz2
./configure; make
make install
make distclean
make_i386
./configure; make
make install

Detection of /usr/lib64 on the pure i386 subsystem will
(unfortunately) still be successful (as it is now anyway), but
otherwise the whole toolchain will have switched. Give make_i386 and
make_x86_64 sensible names and perhaps a better implementation and
embed them into /etc/profile.d/*.{c}sh and ready you are.
-- 
Axel.Thimm at ATrpms.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/fedora-maintainers/attachments/20070425/4c68f5ce/attachment.sig>


More information about the Fedora-maintainers mailing list