[Clfs-commits] [CLFS Trac] #154: /usr/lib64 created by binutils in pure64

CLFS Trac trac at cross-lfs.org
Thu Apr 10 06:15:31 PDT 2008


#154: /usr/lib64 created by binutils in pure64
----------------------+-----------------------------------------------------
  Reporter:  ken      |       Owner:  clfs-commits at lists.cross-lfs.org.
      Type:  task     |      Status:  new                              
  Priority:  blocker  |   Milestone:  CLFS Standard 1.1.0              
 Component:  BOOK     |     Version:  CLFS Standard 1.1.0              
Resolution:           |    Keywords:                                   
----------------------+-----------------------------------------------------
Changes (by ken):

  * version:  => CLFS Standard 1.1.0

Comment:

 OK, I can see what is going on.  From my build log
 {{{
 make[2]: Entering directory `/building/binutils-build/libiberty'
 make[3]: Entering directory `/building/binutils-build/libiberty/testsuite'
 make[3]: Nothing to be done for `all'.
 make[3]: Leaving directory `/building/binutils-build/libiberty/testsuite'
 /bin/sh ../../binutils-2.18/libiberty/../mkinstalldirs /usr/lib/`gcc -g
 -O2 -print-multi-os-directory`
 mkdir -p -- /usr/lib/../lib64
 /tools/bin/install -c -m 644 ./libiberty.a /usr/lib/`gcc -g -O2 -print-
 multi-os-directory`/./libiberty.an
 ( cd /usr/lib/`gcc -g -O2 -print-multi-os-directory` ; chmod 644
 ./libiberty.an ;ranlib ./libiberty.an )
 mv -f /usr/lib/`gcc -g -O2 -print-multi-os-directory`/./libiberty.an
 /usr/lib/`gcc -g -O2 -print-multi-os-directory`/./libiberty.a
 }}}


 At this stage gcc is, of course, in /tools - it hasn't been patched for
 pure64 so for -print-multi-os-directory (in 64-bit) it returns ../lib64.
 If I run this against the final gcc it returns ../lib.


 The following has had minimal testing (haven't used it in a build, just
 hacked it and confirmed it will install correctly). The offending line is,
 fortunately, copied unchanged from libiberty/Makefile.in to
 libiberty/Makefile so we can just sed it before we cd to binutils-build
 (the Makefile itself is created when make runs the configure-libiberty
 target).
 {{{
 sed -i 's%\(^MULTIOSDIR = \).*%\1 ../lib%' libiberty/Makefile.in
 }}}


 Looks as if this will be appropriate to all the pure64 versions of
 multilib archs (i.e. not alpha).


 I'm nowhere close to testing this in a build, so I'll post it here.

-- 
Ticket URL: <http://trac.cross-lfs.org/ticket/154#comment:1>
CLFS Trac <http://trac.cross-lfs.org>
The Cross Linux From Scratch Project.


More information about the Clfs-commits mailing list