Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: -current userland working for others?



On 2/7/11 11:29 AM, Jeff Rizzo wrote:
On 2/6/11 10:47 PM, Matt Thomas wrote:
On Feb 6, 2011, at 9:53 AM, Jeff Rizzo wrote:

Since the PPC changes brought in a couple weeks ago, I have not been able to run a -current userland on my G4/400.

There was a problem where the kernel would not start, which was fixed by matt@ after a few days, and I can successfully boot a GENERIC from the latest autobuilds. However, when I unpack userland (base.tgz, in this case), basically all binaries except those in /rescue stop working. I get these kinds of messages from the kernel:

trap: pid 694.1 (ls): user read DSI trap @ 0x407eb46c by 0xeff0f2dc (DSISR 0x40000000, err=14)
trap: pid 541.1 (dmesg): user ISI trap @ 0x2000 (SRR1=0x4000f032)
trap: pid 167.1 (dmesg): user ISI trap @ 0x2000 (SRR1=0x4000f032)


...once I back out to userland from 20110111, things start working again.

Does anyone have any clue what's going on here? This is the box that I was using to run ATF tests on, and it's basically been idle for three weeks because of this.
The latest commit to powerpc/include/asm.h fixes this.  I didn't realize
that after my changes that binutils/gcc automatically switched to using
secure-plt by default.  The change to asm.h make .S files use secureplt
as well.

One side effect of this is that PPC programs will no longer have
executable .data/.bss and startup times will be slightly faster.

Unfortunately, it doesn't seem to have fixed my problem. With a system compiled from this morning's sources (9AM PDT/1800 UTC), the problem persists.

I can confirm that things are working for me now after this change:

Module Name:    src
Committed By:   matt
Date:           Thu Feb 10 02:28:20 UTC 2011

Modified Files:
        src/libexec/ld.elf_so/arch/powerpc: ppc_reloc.c rtld_start.S

Log Message:
Fix problem with bss-plt objects which a reloc index, not offset.
(secure-plt uses an offset (index*sizeof(rela), bss-plt uses an index)
secure-plt will now take the offset and divide by 12 for an index.


To generate a diff of this commit:
cvs rdiff -u -r1.46 -r1.47 src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c
cvs rdiff -u -r1.14 -r1.15 src/libexec/ld.elf_so/arch/powerpc/rtld_start.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



Thanks!

+j



Home | Main Index | Thread Index | Old Index