[Clfs-dev] 32-bit on ppc64

Ken Moffat zarniwhoop73 at googlemail.com
Wed Jun 24 16:58:40 PDT 2009


I'm back online, but I still don't have access to my regular email
account.. Hope I manage to send this in plain text and with
sensible line lengths.

While I was offline, I finally got around to trying to build on my
ppc64.  This fleshes out what William Harrington indicated back
in December.

Purpose: build ppc64 with 32-bit userspace (the recommended
way, apparently 64-bit causes too many cache misses and my
ppc64 is not exactly well-endowed with horsepower), but still
build a 64-bit kernel (you have to on this hardware), without
any workarounds such as a 64-bit cross-compiler in /opt/kgcc.

This also allows me to use a single set of (non-multilib) scripts
for all of my dekstops.  I've never understood the point of
building all libraries in both sizes (or "all sizes" for you MIPs
guys), I only build what I think I'll need, and I no longer have
the time to update separate multilib scripts.

Variations from the book: I thought I was following the
2009-04-30 book, same as for x86_64-64, but in fact I'd not
noticed the move to grep-2.5.4.  [ That explains my comment
on my x86_64-64 test results ].  I also failed to notice that the
book had dropped --datadir from kbd : I'm continuing to
specify it, works for me and matches my host-configuration
scripts.

Changes for 32-bit userspace on ppc64:

 For everything before the final system, add "--with-cpu=default32" to
each gcc build ( if that turns out to be an invalid switch, better to
find out at the beginning).

 For the final system:

 Build 64-bit glibc before 32-bit (so that all installed glibc programs
are 32-bit)

 Gmp, mpfr, and zlib need to be built in both sizes - I'd guessed I
could get by with only the 32-bit versions, but not so.  I followed
the ppc64 book, so I've ended up with 64-bit programs, will change
that next time.

 Add --with-cpu=default32 to gcc

I ran some extra checking here, to confirm that building without
either -m32 or -m64 produced a 32-bit program.

 After that, follow the *ppc* book (no need to specify $BUILD32
in general, EXCEPT that yaboot still needs  the sed from the
ppc64 book to pass $[BUILD32} where we are using ld -m : I tried
without this the first time, and somehow the grep for
powerpc:common64 didn't halt the script, it was only later that
I realised I didn't have a ybin command.  Probably my scripting
deficiencies.

 The completed system managed to build nearly everything I
tried, the one exception was ffmpeg-0.5 which provoked an ICE.
Managed to build everything else, even gst-ffmpeg (seemed
to use its internal copy of a lib).  Most things work, albeit slowly.
Even gutenprint (I had problems last tiem I tried that on ppc),
and gnash produces working flash (but not working youtube, I
suspect that might need more horsepower than my CPU has).
[ of course, many flash sites and youtube videos don't work
in gnash, I only tested this where I knew x86 or x86_64-64 had
worked. ]

Oh, forgot to add that I had to turn off some of the docbook
stack, it doesn't all play happily when lookups for oasis fail to
work because you have no upstream  :-(

ĸen



More information about the Clfs-dev mailing list