From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040115 Description of problem: Boot on a "WallStreet II" (I think; definitely some kind of "WallStreet" anyway) PowerBook G3, via BootX, freezes before the BootX early text console appears. After I click "Linux", the hard drive shuts off, the mouse pointer disappears, and the computer freezes (the Finder desktop is still visible at this point). Version-Release number of selected component (if applicable): kernel-2.6.4-1.270 How reproducible: Always Steps to Reproduce: 1. Install kernel-2.6.4-1.270.ppc.rpm. 2. Copy /boot/vmlinuz-2.6.4-1.270 to the Linux Kernels folder inside the System Folder on your (hfsplus in my case) Mac OS 9 partition. (Optionally copy the initrd as well, although I can't get far enough for that to matter.) 3. Reboot into Mac OS 9. 4. Start the BootX application/control panel/whatever-it-is. 5. Choose the 2.6.4-1.270 kernel. 6. Remove any "video=..." options and select "No video driver". 7. If necessary, configure BootX to not load an initrd. 8. Click "Linux". Actual Results: BootX closes up, mouse pointer disappears, computer freezes. Expected Results: BootX closes up, mouse pointer disappears, screen turns black, about half a screenful of white text appears, the screen is cleared again, and a penguin appears in the upper left corner of the screen. Additional info: Originally this PowerBook had a 233MHz G3 (*with* backside cache!!) and 96MB of RAM. In the last several months I've upgraded it to a 500MHz G3 (Sonnet if it matters) and 512MB of RAM, although that should not be relevant; the machine still works with Yellow Dog 2.4.20 and 2.4.22 kernels, as well as mainline 2.4 kernels (most recently 2.4.25-rc2). A few minutes ago I copied a vmlinux over from a PowerMac G4 running Gentoo and mainline 2.6.1, and repeated the steps here. That got as far as showing the penguin in the upper-left corner. I stopped the boot at that point because that kernel's config is *way* too stripped down for this PowerBook, but at least it proves that a 2.6.x kernel can get past the early BootX console on this setup. That still leaves a lot of variables to be eliminated, but I will begin work on that now.
Mainstream 2.6.4-bk2 boots (at least up to the penguin in the corner; I'm still using the .config from the PowerMac G4 for now). 2.6.4-1.270 recompiled on the same machine with essentially the same .config as my 2.6.4-bk2 compile still freezes on the desktop. I guess I'll once again start trying to locate which patch causes the problem -- if I have time.
(make that "causes or reveals")
it could be a problem in the .config just as well, or the fact that the kernel gets built with -g and then stripped..... Unfortionately I have no ppc box to play with this and thus entirely depend on other people to find such things ;(
The problem happens when patch 10000 (linux-2.6.0-compile.patch) is applied, and does not happen when that patch is not applied. This is 100% reproducible. Now I just need to figure out which part of that patch is causing (or revealing) the problem...
looking over that patch I see nothing really suspect that would touch non-x86..... odd. Maybe the gcc inlining changes :(
Here's the guilty part of the patch: --- linux-2.6.3/arch/ppc/syslib/Makefile~ 2004-03-09 15:43:56.387923120 +0100 +++ linux-2.6.3/arch/ppc/syslib/Makefile 2004-03-09 15:43:56.387923120 +0100 @@ -9,8 +9,6 @@ EXTRA_AFLAGS := -Wa,-m405 endif -CFLAGS_prom_init.o += -mrelocatable-lib -CFLAGS_btext.o += -mrelocatable-lib obj-$(CONFIG_PPCBUG_NVRAM) += prep_nvram.o obj-$(CONFIG_44x) += ibm44x_common.o If *either* line is removed, the boot process freezes. As long as both lines are in, the kernel boots. There's a comment about this at the top of prom_init.c. I'm dying to know why this was hunk was in the patch, but anyway, what I really care about is just getting rid of it for the next kernel, so that it can actually boot on my system.
I removed those because they made gcc ICE and our gcc maintainer said they were broken... seems we need to go back to the drawing table on that one.
They don't seem to make gcc (3.3.3-2.1) ICE for me, FWIW... Here's the distribution archive for the bootloader I'm using (I think it comes with source code): http://penguinppc.org/~benh/BootX_1.2.2.sit It's in the proprietary StuffIt compresion format (that's the de facto standard on Mac OS 9.x and earlier) but, if it would help, I could decompress it on a Mac OS X machine and then turn the source code into a tarball. Be aware, though, that's it's a Mac OS program -- that's how it avoids total reliance on the broken Open Firmware implementations in older PPC Macs like mine.
Ugh, it looks like whether the compile succeeds with -mrelocatable-lib depends on the .config. (I think.) I got a compile failure with the default .config. If I figure anything else out, I'll let you know. I'll probably have to set this problem aside for the moment, however.
found a decent enough workaround for now; uploaded the kernel with it to people.redhat.com/arjanv/2.5 thanks for digging this out!
There is now a "ppc32-build-fix.patch" in 2.6.5-rc1-mm1. It's from one of the upstream PPC people, and (modulo whitespace) I think it matches what you did in 2.6.4-1.275; it may be the real fix and not just a workaround. 2.6.4-1.275 boots for me now. Without getting into detail yet, I'm running into other problems, but I want to make more progress in troubleshooting before I bugzilla anything (I *strongly* suspect that if my problems are not a .config error then they're upstream bugs).
FWIW, "ppc32-build-fix.patch" is now included upstream as of 2.6.5-rc1-bk1.
This bug is fixed upstream. 2.6.4-1.288 (maybe some earlier kernels too) appears to have the upstream fix AFAIK, and it seems to work, so I'm closing this bug.