As threatened on lfs-support, here are some expurgated interim results
from building on x86_64 using /lib64 and /usr/lib64.

 I wanted to try building a multilib system, but using just a 64-bit
desktop.  The following notes comment on packages/configure-options.
Many of these versions are now out of date, but they're what I'd already
built and scripted for i686 (except where I tried newer versions because
of build problems).  In particular, my gnome stuff (very partial) uses
2.8.

 Note that the LFS system I built had certain fairly major flaws
(libc-32 testsuite hung, and the end result was unable to run
sysklogd and was unable to build 32-bit applications) so at this
stage these are just "notes from work in progress".

 Also note that I wasn't paying enough attention at the start of blfs
and accidentally installed some things into /lib :-( [ they are
ignored here ]

 A few packages do not install libraries, these typically require no
changes from the i686 build instructions.  Many others only require
an added --libdir=/usr/lib64.  Comments on --disable-static (pretty
much all gnome packages) and security-related patches for e.g. temp
files have been omitted.

 Thanks particularly to Ryan for the various stuff in cross-lfs, also
to the people on other lists who had the grace to document necessary
changes, and also to the gentoo ebuild maintainers (when all else
fails, look for an ebuild and patches, even if only to confirm that
they don't do anything special so it must be _my_ problem).

 My CFLAGS were set to "-O2 -march=athlon64".

 On some of these packages it's possible you'll have other problems
depending on your choice of dependencies.

 Some of these packages fail to build on x86_64 without adding -fPIC
in one form or another, this is a bit scary, the error message refers
to something like x86-64-32 which suggests they might have 32-bit
stuff in them, but on my /limited/ testing they seem to work.

 I hope other people building multilib may find this useful.  Errors
& Omissions Excepted!  A few of these things aren't in the blfs book.

 At the moment, my biggest problems are still in building x86_64 from
i686, but I'm starting to form the view that /usr/lib is the correct
place for 64-bit libraries on this architecture, despite the historic
baggage associated with past use of 64-bit kernels and mostly 32-bit
userspace - apart from anything else, it's all too easy to miss a
--libdir=/usr/lib64 and screw things up mightily.  I might add to
these notes _if_ I can get a better multilib LFS built, but long-term
I'm probably more interested in building 32-bit crap somewhere else
such as /lib32 [ although users on other 64-bit platforms might
strongly object to that! ]

=========================================
(1) Special action required

Some of theses packages don't know about x86_64 because they are so
old that their config.guess and config.sub do not recognize it. Where
I say 'copy config' you should copy the files from LFS's automake
/usr/share/automake/config.{guess,sub} to the current directory
unless noted otherwise.

a2ps-4.13b  After the seds, copy config to auxdir/ then configure
 with --libdir=/usr/lib64

a52dec-0.7.4  configure with --libdir=/usr/lib64
 and CFLAGS="$CFLAGS -fPIC"

abiword-2.2.3 : since the server is installed manually, just install
 it to /usr/lib64/bonobo/servers so no changes to configure.

epiphany-1.4.8 : ! abandomed this - using --libdir=/usr/lib64 for the
 pkgconfig and bonobo server parts, it failed trying to link to
 /usr/lib64/../lib/libstdc++.so which as you'd expect is a 32-bit
 library  and I couldn't track where this was being referenced.  In
 the  absence of epiphany, I dropped a chunk of minor gnome apps.

espgs-7.07.1  The jury is still out on this - I see errors at the end
 of prints, e.g. if I use a2ps.  I already have to deviate
 considerably from the blfs book to build the ijs stuff per Slackware
 so I've got lots of --libdir=/usr/lib64, but for x86_64 I had to
 make CFLAGS="$CFLAGS -fPIC" in ijs.

ffmpeg-0.4.9-pre1 [ expletives deleted - this was a real pain to fix]
 first, a lot of seds :
 sed -i 's%\$(prefix)/lib/vhook%$(prefix)/lib64/vhook%g' vhook/Makefile
 sed -i 's%\$(prefix)/lib%$(prefix)/lib64%' libavcodec/Makefile
 sed -i 's%\$(prefix)/lib%$(prefix)/lib64%' libavformat/Makefile
 then 'make OPTFLAGS=-fPIC'

firefox-1.0.4  --libdir=/usr/lib64 and similarly change
 default-mozilla-five-home and /usr/lib64/firefox-1.0.4 for the
 faffing about with regxpcom and regchrome.  Probably better to
 look at recent posts here for a better way of building it.  Don't
 expect to find any working commercial plugins.  I've seen
 suggestions that MPlayer might work, but all the codecs seem to be
 32-bit (so, you'd need a 32-bit MPlayer) and anyway I don't have a
 lot of confidence in a package that  warns against playing with
 CFLAGS but nevertheless specifies -O4.

glib-1.2.10  copy config.
 add --libdir=/usr/lib64
 remember lib64 in the chmod of libgmodule-1.2.so.0.0.10

gtk-1.2.10 copy config.
 add --libdir=/usr/lib64

jpegsrc.v6b copy config.
 This package ignores any libdir passed to configure, but you can
 make libdir=/usr/lib64  and  make libdir=/usr/lib64 install

libgnome-2.8.1  needs libgnome-2.8.1-va_list.patch which I grabbed
 from gentoo : I think this is needed because x86_64 passes more
 parameters in registers than x86 does.  Also --libdir=/usr/lib64

libmng-1.0.9 : the jury is still out on whether this worked, the test
 pages linked from the libmng homepage don't work for me on i686 with
 firefox so I have nothing to test against.  I added a sed to the
 makefile.linux -e 's%/usr/lib%/usr/lib64%' but then I had to add
 another -e 's%-O3%-O3 -fPIC' because otherwise it won't build on
 x86_64 (well, actually I used -O2, but it's the -fPIC that matters).
 For the install I had to make LIBPATH=/usr/lib64 install

libpng-1.2.8 needed Ryan's used libpng-1.2.7-fix_pc_for_biarch.patch
 from his cross-lfs scripts, with ZLIBLIB=/usr/lib64 in the initial
 make and LIBPATH=/usr/lib64 in the install.

mpg123-pre0.59s  make PREFIX=/usr linux-x86_64

openssl-0.9.7e needed Ryan's openssl-0.9.7f-allow_lib64.patch
 (from his cross-lfs scripts tarball) with ./Configure linux-x86_64

pkgconfig-0.17.2 no changes for me, (but note I have no 32-bit .pc
 files), but I needed to add /usr/lib64/pkgconfig  and
 /usr/X11R6/lib/pkgconfig - I assume this ought to be lib64 in a true
 multilib build, but I've got a symlink there (see X.org below).

Python-2.4.1 ignores --libdir, so make LIBDIR=/usr/lib64 and
 make LIBDIR=/usr/lib64 install : I suspect this is still broken, the
 .py files are in /usr/lib/python2.4 [ compare libxml2 which uses
 /usr/lib64/python-2.4/site-packages ].

qt-x11-free-3.3.4  configure with '-libdir /usr/lib64' and
 '-platform linux-g++-64' (for lib/lib64 platforms) plus
 '-plugindir /usr/lib64/qt/plugins'
 then use sed to delete '-Wl,-rpath,/usr/lib64'
 and after installing symlink /usr/lib64/libqt.so

tcl-8.4.9 - this gives me enough problems on i686!  I gave up on this
 until I've looked at alternative methods of building it.

transcode-0.6.14  --with-mod-path=/usr/lib64/transcode to install
 "modules" correctly - I also pass --libdir=/usr/lib64, it looks like
 it might be used, possibly depending on what gets built.

unzip552  for all non-x86,  make prefix=/usr linux_noasm :
 this seems better than 'generic' which I used to install - thanks,
 Ryan!  Note that no libraries are installed, so no lib64 stuff.

X.org 6.8.2 add the following to host.def:
 #define LibDirName lib64
 #define LibDir /usr/lib64

*if* you build a 64-bit X in lib64 *without* a 32-bit X, it will
 complain that  it failed to load modules 'bitmap' and 'pcidata', then
 die because it  cannot open the "/usr/X11R6/lib/X11/rgb database".
 The latter is the rgb.txt file found in .../lib64/... - I symlinked
 /usr/X11R6/lib to  lib64 and it then worked (although this might hide
 other packages which are assuming /usr/X11R6/lib).

 xscreensaver-4.21 --libexecdir=/usr/lib64/xscreensaver


(2) Add --libdir=/usr/lib64 for the libraries

aspell-0.60.2
atk-1.9.1
audiofile-0.2.6
cdparanoia-III-alpha9.8
curl-7.13.1
enchant-1.1.6
esound-0.2.35
expat-1.95.8
flac-1.1.2 [ not tested ]
fontconfig-2.2.3
 obviously, use /usr/X11R6/lib64/X11/fonts in /etc/fonts/local.conf
 and when installing any extra fonts.
freetype-2.1.9
fribidi-0.10.4
gail-1.8.4
gal-2.2.5
GConf2-2.8.1
gimp-2.2.6
glib-2.6.4
gnome-keyring-0.4.2
gnome-vfs-2.8.4
gnumeric-1.4.3
gtk2-2.6.7
gutenprint-5.0.0-beta3
ImageMagick-6.2.1-7 [ works as well as on i686, i.e. the pan window
 is garbled when first displayed, but ok after being closed -
 anyone know how to fix this ? ]
jhead-2.3
lcms-1.14
lesstif-0.93.94
lame-3.96.1
libao-0.8.5
libart_lgpl-2.3.16
libbonobo-2.8.1
libbonoboui-2.8.1 and alter the sed's target to server in lib64
libcroco-0.6.0
libdvdcss-1.2.8
libdvdread-0.9.4
libexif-0.6.12
libglade-2.4.2
libgnomecanvas-2.8.0
libgnomeprint-2.8.2
libgnomeprintui-2.8.2
libgnomeui-2.8.1
libgsf-1.10.1
libgtkhtml-2.6.3
libIDL-0.8.5
libmad-0.15.1b
libogg-1.1.2
librsvg-2.8.1
libtiff-3.7.2
libungif-4.1.3
libusb-0.1.10a [ not tested ]
libvorbis-1.1.0
libxml2-2.6.17
libxslt-1.1.12
ORBit2-2.12.2
pango-1.8.1
popt-1.7
sane-backends-1.0.15 [ not tested ]
scrollkeeper-0.3.14
taglib-1.3.1 [ not tested ]
xine-lib-1.0.1
xmms-1.2.10
xsane-0.97 [ not tested, also gimp symlink now /usr/lib64 ]


(3) Add --libdir=/usr/lib64 for the pkgconfig files or similar

gnome-doc-utils-0.1.3
gnome-icon-theme-2.8.0
gnome-mime-data-2.4.2
shared-mime-info-0.15
yelp-2.6.5 (--libdir for a bonobo server)


(4)  KDE (3.4.0) (I built arts, libs, base, pim, multimedia, graphics,
utils).

configure (including arts) with --qt-libraries=/usr/lib64 because
 it only looks in variants of /lib for libqt, and with
 --enable-libsuffix=64 so that at runtime the .la files in
 /usr/lib64/kde3 can be found, plus --libdir=/usr/lib64

kdelibs doesn't support --enable-fast-malloc=full on anything
 except x86, so --disable-fast-malloc

kdemultimedia needed an x86_64 patch, I think this is already included
 in 3.4.1


(5) No changes required - unless noted, no libraries are installed

aspell6 dictionaries (location controlled by 'aspell dump config')
bc-1.06
dcraw (2005-04-26)
desktop-file-utils-0.10
docbook-xml-4.3
ghostscript fonts
gimp-help-2-0.7 NB not much use without a browser answering to
 'mozilla'
hicolor-icon-theme-0.5
intltool-0.32.1
psutils-p17
ufraw-0.4 (location of the gimp plugin is controlled by the gimp)
vorbis-tools-1.0.1
xine-ui-0.99.3
XML-Parser-2.34 location of .pm and .so determined by perl location
XML-Writer-0.520 ditto for Writer.pm
xpdf-3.00
xsnow-1.40 (ok, it's very old, but I prefer this version!)
zip231


Ken
-- 
 das eine Mal als Tragödie, das andere Mal als Farce

--
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to