Latest Status on SI for PPC32

Marvin Heffler <[email protected]> Wed, 2 Jul 2003 14:39:57 -0500
Newsgroups gmane.linux.lsb.implementation
Message-ID <OF85E2787D.DBE760D5-ON86256D57.006903E4-86256D57.006BC7C0@us.ibm.com>
I have been working the past few days on integrating the context support 
for ppc32 into the si. This has been complicated somewhat by the fact it 
was added to glibc 2.3 where the directory structure is somewhat 
different. Anyway, I was finally able to get a version to build properly 
and ran the test suite against it. The results are better than before, but 

there are still a couple of unresolved tests where it's dumping core. 

Prior to adding the context support to the si the following tests failed:

        /tset/LSB.os/jump/getcontext/T.getcontext 1 FAIL
        /tset/LSB.os/jump/getcontext/T.getcontext 2 FAIL
        /tset/LSB.os/jump/makecontext/T.makecontext 1 UNRESOLVED
        /tset/LSB.os/jump/makecontext/T.makecontext 2 UNRESOLVED
        /tset/LSB.os/jump/makecontext/T.makecontext 3 UNRESOLVED
        /tset/LSB.os/jump/setcontextT.setcontext 1 UNRESOLVED

After building the si with context support the only failing tests are:

        /tset/LSB.os/jump/makecontext/T.makecontext 1 UNRESOLVED
        /tset/LSB.os/jump/makecontext/T.makecontext 3 UNRESOLVED

This leads me to think the way I integrated the context support into glibc 

2.2.5 for the si is not 100% correct. Let me explain what steps I took and 

see if anyone can see what I might have done wrong.

Support for context was added to glibc 2.3 to the 
sysdeps/unix/sysv/linux/powerpc/powerpc32 directory. To integrate this 
support in the glibc used in the si I modified the glibc-2.2.5.ppc32.patch 

file to add the files getcontext.S, makecontext.S, setcontext.S, 
swapcontext.S, and ucontext_i.h from the glibc 2.3 source. The files were 
added to the sysdeps/unix/sysv/linux/powerpc directory since glibc 2.2.5 
does not have separate directories for powerpc32 and powerpc64. When 
building glibc the new files worked okay, except for makecontext.S. This 
file uses a macro HIDDEN_JUMPTARGET which is not defined in glibc 2.2.5. 
To get it to build I compared the code to the makecontext source for i386 
in glibc 2.2.5. I changed the instance of HIDDEN_JUMPTARGET in 
makecontext.S to JUMPTARGET. I don't know if this is the correct way to do 

this, but it did get the code to build.

I have placed the modified glibc 2.2.5 patch file used when building 
the si and the journal file from the test run on linuxbase.org in the
~heffler/impl directory.

Regards,

Marvin Heffler
Linux Standard Base
IBM Linux Technology Center
11400 Burnet Road, Zip 908-1A33
Austin, TX 78758
(512) 838-0953    T/L 678-0953