#23 closed task (fixed)
ppc64 outstanding issues
Reported by: | ken | Owned by: | ken |
---|---|---|---|
Priority: | major | Milestone: | CLFS Standard 1.0.0 |
Component: | BOOK | Version: | CLFS Standard 1.0.0 |
Keywords: | Cc: |
Description
Since we're supposed to be creating tickets to discuss non-trivial stuff, this is a general place to record breakage in ppc64. Some of this actually is trivial, but it's convenient to record it here as a reminder.
- in chapter 5, for glibc headers and probably for the 64-bit glibc we need to add the following to config.cache:
echo "libc_cv_mlong_double_128ibm=yes" >> config.cache echo "libc_cv_mlong_double_128=yes" >> config.cache echo "libc_cv_powerpc64_tls=yes" >> config.cache
- chapter 7 is problematic - my understanding is that running ybin to bless the boot partition
(yes, that really is the term) will either fail because the host is a machine not using Open Firmware, or (e.g. on a 32-bit mac) will update the host's bootloader. Possibly, it can be done if the host is the same machine running OSX, I don't know and I'm not about to try that.
- chapter 10 needs to install perl with the Configure_multilib and libc_lib64 patches plus -Dlibpth and -Dcc as in other multilib.
- chapter 10 needs to build the following as both 32 and 64 bit: zlib, ncurses, readline,
flex, gettext, procps, file, libtool, bzip2, e2fsprogs, shadow,
- chapter 10 binutils needs --libdir=/usr/lib64, and from memory there might be test failures.
I haven't tested these toolchain versions yet.
- chapter 10 gcc remove --disable-multilib and add --libdir=/usr/lib64 --libexecdir=/usr/lib64
- chapter 10 add lib64 references when configuring findutils, gawk, groff.
- powerpc-utils doesn't want to build with a compiler which defaults to -m64. I've got a new
version of the patch which allows us to pass ${BUILD32} as EXTRACFLAGS - builds, but I'm not entirely sure about it: on a distro you can use nvsetenv to enquire about the nvram, but that doesn't work here.
- yaboot - we need to pass -m32 to '$(CC) --print-libgcc-file-name' in the Makefile, and
CC is already overridden to ${CROSS}gcc, so I use a sed - sed -i "s/\(-print-libgcc-file-name\)/${BUILD32} \1/" Makefile
ISTR that it needed more patches to compile - I've got a pile of random patches from fedora,
but although it ompiles and the first-stage (OS chooser) works, the second stage (linux loader) doesn't work.
- In general, chapter 10 needs loat of CC="gcc ${BUILD64}" and similar CXX, to match the other
multilib arches. This is purely cosmetic if our default compiler is 64-bit.
Change History (14)
comment:1 by , 19 years ago
Owner: | changed from | to
---|
comment:2 by , 19 years ago
Owner: | changed from | to
---|
comment:3 by , 19 years ago
comment:4 by , 19 years ago
Ken,
Do I need to change to the headers script, or is the change elsewhere?
comment:5 by , 19 years ago
Jim,
the change is upstream's merging of ppc and ppc64 into powerpc - the old file was only included for ppc64, the new one is included for both 32 and 64. Perhaps, changing the headers so that the old definition gets generated within 64-bit part of the powerpc version of elf.h is an option, but I'm more comfortable at the moment with just doing the sed in the ppc64 book - no point in accidentally breaking something else in the headers.
comment:6 by , 19 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
Doing this in stages. Starting with glibc and cosmetic fix for choose.xml. This should get us back to where we were before the glibc and header updates (ok for chapters 5, 6, 8).
comment:8 by , 19 years ago
Build complete, apart from the little matter of the bootloader. I'll fix the rest of the final-system chapter before I start fighting yaboot.
comment:9 by , 19 years ago
Powerpc-utils is in the clear (copied the necessary yaboot files from a ppc32 build on the same machine with the same toolchain, boots ok after rerunning ybin), so the error I've seen since last year is either in yaboot, or in my technique. Getting closer.
comment:10 by , 19 years ago
Yaboot is now sorted for multilib on my machine, but it's a bit late to start editing those pages tonight. As well as the patches (one for sata boxes) it needs a sed to pass -m32 to gcc and another to pass -melf32ppclinux to ld. I know we can use both patches on ppc32, so that will tidy things up a little.
I probably ought to clean up the example yaboot.conf as well, nobody, not even me now, uses a separate /boot partition on ppc{,64}, and green text on the "menus" would match lfs's grub.
After that, it will be time to look at the boot option.
comment:11 by , 19 years ago
Yaboot fixed, r1549. yaboot.conf still to do. The last remaining issue is yaboot (and dependencies) in the boot option, which applies equally to ppc. I'll open a separate ticket for that.
comment:12 by , 19 years ago
Opened ticket #35 for the ppc and ppc64 temporary-system boot option. I'll revisit yaboot.conf later.
comment:13 by , 19 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
yaboot.conf wasn't so bad as I remembered (thought I'd included a /boot partition in the example) - added colour, enable open firmware, small textual enhancements, and examples of what the SATA device paths look like. r1556.
Done.
comment:14 by , 18 years ago
Version: | unstable → 1.0.0 |
---|
I've (at last) completed the cross-tools with the current toolchain and linux-headers, I suppose this could still show breakage when I eventually get to use them, but I'll log what has come up so far in case I get run over by the proverbial bus:
For glibc headers (only - not needed for 32- or 64- bit glibc), the same additions as ppc
echo "libc_cv_mlong_double_128ibm=yes" >> config.cache
echo "libc_cv_mlong_double_128=yes" >> config.cache
echo "libc_cv_powerpc64_tls=yes" >> config.cache
echo "libc_cv_initfini_array=yes" >>config.cache
echo "libc_cv_gcc_thread=yes" >>config.cache (yes, three underscores in a row there)
sed 's/PPC64_ELF_H/powerpc64/' \
sysdeps/unix/sysv/linux/powerpc/sys/procfs.h.orig \