s390/s390x support implemented

Harold Grovesteen h.grovsteen@tx.rr.com
Mon Nov 9 11:26:00 GMT 2009


Before getting into the details of what I needed to do, I want to thank 
all who have contributed to crosstool-ng.  This is a very powerful system.

Over the weekend I managed to get s390 and s390x to be supported by 
crosstool-ng.  The tuples end up being s390[x]-ibm-linux-gnu.  Not sure 
how the ibm part was figured out.  Validated that the libraries in 
sys-root are ELF s390 32-bit or 64-bit.   This suggests that the tools work.

I had to add CT_DEBUG_CT_SAVE_STEPS="y" to s390[x].sh in function 
CT_DoArchTupleValues.  Could not find where to set this in the config,  
Did I miss something?  I tried selecting it in s390[x].in, but this did 
not seem to work.  Should it have?

Also had problems with libc headers.  Needed to add 
--target=${CT_TARGET} to the configure statement in function 
do_libc_headers in gblibc.sh.  This resulted from a conflict in the 
ability of the x86-64 host to support --with-long-double-128 required by 
s390[x].  How this impacts crosstool-ng overall is beyond me.  Without 
--target, the configure checked to determine if the CT_BUILD system (the 
value used for --host) supported -mlong-double-128.  x86-64 does not, so 
the configure failed.  (The build log said that --build, --host and 
--target should be used.  When I observed that --target was missing, I 
supplied it and this got everything to move past that point.)

Ran into errors building the debug facilities.  Have not looked at this 
is detail.  My goal was to build the toolchains and that was 
successful.  Also, I have no illusion that uclibc or eglibc will work 
with s390 or bare-metal will work.  I started with glibc because I 
already knew that could be built with the original crosstool.  My 
experience in the past suggests that bare-metal will not work out of the 
box, so to speak.  The configure options

I installed mercurial and cloned the repository, followed by a qinit.  
Can I add the new modules at this point and have them included in the 
patches?  How should the patches be created?  I have never used 
mercurial, so I figured I would ask first rather then doing something 
that is not usable.

Thanks,
Harold Grovesteen


--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list