The almighty cflags

Today was forced to close the Nth bug filled by someone that didn’t know what he was doing with the cflags. That was a waste of time of about 10minutes for 3 developers that actually had a look at the bug, another item that got in the mailbox of many other developers and another line in the bugzilla db.

I have nothing against try to get some performance from some experimental gcc optimization, you are free to do whatever you want on your system, but PLEASE, before filling a bug about missing registers while building something on x86 or amd64, turn OFF all your experimental stuff and just use -O2 -march=${yourcpu} -fomit-frame-pointer -pipe.

Thanks for the understanding.

Cell Toolchain – part II – act I – running in the gcc-cell lair

since:
– gcc-cell is quite a different beast (patches here, newcode there, backports everywhere!)
– diffing against the nearest gcc already in portage lead to a small 22MB patch

I just decided to use the provided tarball and live with it, that means that you have now also gcc-cell available in portage. Something else is almost ready… but I think I could sleep a bit now ^^;

crossdev cell?

Cell Toolchain – part II – act I – running in the gcc-cell lair

since:
– gcc-cell is quite a different beast (patches here, newcode there, backports everywhere!)
– diffing against the nearest gcc already in portage lead to a small 22MB patch

I just decided to use the provided tarball and live with it, that means that you have now also gcc-cell available in portage. Something else is almost ready… but I think I could sleep a bit now ^^;

crossdev cell?

Cell Toolchain – part I – act I – binutils

Today/This night I started ripping some clean patches out of the Cell toolchain-3.2 sources.
As I said in the previous rant, the whole toolchain is provided as a singular huge and messy tarball, no patches provided…

The first target is binutils since should be simpler. You may find in my devspace the first raw diff (about 1.2MB) against binutils-2.16.1 and the, 2hours of work, clean diff against binutils-2.17.

probably there is something else to retouch (I removed an ugly #undef TARGET_CPU #define TARGET_CPU “cellppu” and I hadn’t check yet the configure to see what is missing there)

but overall isn’t bad:

Before

bfd/Makefile.am | 9
bfd/archures.c | 5
bfd/bfd-in2.h | 20
bfd/coffcode.h | 7
bfd/config.bfd | 18
bfd/configure | 1
bfd/configure.in | 1
bfd/cpu-powerpc.c | 30
bfd/cpu-spu.c | 63
bfd/doc/bfd.info | 131
bfd/doc/bfd.info-1 | 5921 ++++++++++++——
bfd/doc/chew.c | 6
bfd/elf.c | 172
bfd/elf32-spu.c | 1015 +++
bfd/elf64-ppc.c | 5
bfd/elflink.c | 7
bfd/opncls.c | 15
bfd/reloc.c | 27
bfd/targets.c | 2
binutils/ar.c | 9
binutils/doc/objcopy.1 | 9
binutils/objcopy.c | 74
binutils/readelf.c | 7
config.sub | 23
gas/Makefile.am | 16
gas/as.c | 9
gas/config/obj-coff.c | 243
gas/config/tc-ppc.c | 33
gas/config/tc-spu.c | 1006 +++
gas/config/tc-spu.h | 107
gas/configure.tgt | 5
gas/doc/as.info-1 |11236 ++++++++++++++++++++++++++++++++—- gas/doc/c-hppa.texi | 45
gas/testsuite/gas/sh/sh64/err-dsp.s | 2
gprof/gprof.info | 2326 ——-
include/bfdlink.h | 6
include/dis-asm.h | 1
include/elf/common.h | 1
include/elf/spu.h | 87
include/libiberty.h | 3
include/opcode/ppc.h | 3
include/opcode/spu-insns.h | 412 +
include/opcode/spu.h | 128
ld/Makefile.am | 8
ld/configure.tgt | 7
ld/deffile.h | 6
ld/emulparams/elf32_spu.sh | 14
ld/emulparams/elf64_lv2.sh | 51
ld/emulparams/elf64ppc.sh | 6
ld/emultempl/elf32.em | 7
ld/ld.texinfo | 8
ld/ldgram.y | 5
ld/ldmain.c | 15
ld/lexsup.c | 15
ld/pe-dll.c | 83
ld/scripttempl/elf.sc | 1
ld/scripttempl/pe.sc | 18
ld/testsuite/ld-scripts/assert.s | 1
ld/testsuite/ld-scripts/data.s | 1
libiberty/argv.c | 148
libiberty/config.table | 1
opcodes/Makefile.am | 10
opcodes/configure | 1
opcodes/configure.in | 1
opcodes/disassemble.c | 6
opcodes/ppc-dis.c | 22
opcodes/ppc-opc.c | 40
opcodes/spu-dis.c | 258
opcodes/spu-opc.c | 47
69 files changed, 18130 insertions(+), 5896 deletions(-)

2 hours after

bfd/Makefile.am | 9
bfd/archures.c | 5
bfd/bfd-in2.h | 20
bfd/config.bfd | 18
bfd/configure.in | 1
bfd/cpu-powerpc.c | 30 +
bfd/cpu-spu.c | 63 ++
bfd/elf.c | 172 ++++++
bfd/elf32-spu.c | 1015 ++++++++++++++++++++++++++++++++++++ bfd/elf64-ppc.c | 5
bfd/opncls.c | 15
bfd/reloc.c | 27
bfd/targets.c | 2
binutils/doc/objcopy.1 | 9
binutils/objcopy.c | 74 ++
binutils/readelf.c | 7
gas/Makefile.am | 16
gas/config/tc-ppc.c | 23
gas/config/tc-spu.c | 1006 +++++++++++++++++++++++++++++++++++
gas/config/tc-spu.h | 107 +++
gas/configure.tgt | 5
gas/testsuite/gas/sh/sh64/err-dsp.s | 2
include/bfdlink.h | 6
include/dis-asm.h | 1
include/elf/common.h | 1
include/elf/spu.h | 87 +++
include/opcode/ppc.h | 3
include/opcode/spu-insns.h | 412 ++++++++++++++
include/opcode/spu.h | 128 ++++
ld/Makefile.am | 8
ld/configure.tgt | 8
ld/emulparams/elf32_spu.sh | 14
ld/emulparams/elf64_lv2.sh | 51 +
ld/emulparams/elf64ppc.sh | 6
ld/emultempl/elf32.em | 7
ld/ld.texinfo | 8
ld/ldgram.y | 5
ld/ldmain.c | 15
ld/lexsup.c | 15
ld/scripttempl/elf.sc | 1
ld/scripttempl/pe.sc | 18
opcodes/Makefile.am | 10
opcodes/configure | 1
opcodes/configure.in | 1
opcodes/disassemble.c | 6
opcodes/ppc-dis.c | 22
opcodes/ppc-opc.c | 40 +
opcodes/spu-dis.c | 258 +++++++++
opcodes/spu-opc.c | 47 +
49 files changed, 3782 insertions(+), 28 deletions(-)

Playing with Mambo Cell simulator part II

New release from IBM!

New and improve Cell SDK!

The new mambo works and works quite fine! I have already provided an ebuild for it and probably in short time I’ll add some gentoo custom bits to make working with it less annoying. You may check my overlay for it, I couldn’t get tile play with the tk UI yet but maybe I could try harder and have the simulator gui a tad nicer.

On the other side, there is the rest of the SDK is a nightmare =/

I bitched already about improper software distribution and seems that somebody read it since now the proposed medium is even more awkward: alloycanwatlowcarbnosourceincluded DAMN ISO IMAGE!

The fantastic iso image:

nemesi mnt # mount -o loop /tmp/CellSDK11.iso /mnt/iso/
nemesi mnt # ls iso
README.txt autorun css images pdfs
ShelExec.exe autorun.inf html media software

ShelExec.exe!?!

nemesi mnt # file iso/ShelExec.exe
iso/ShelExec.exe: MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bit

I hope that’s a joke…

Bright side: the pdfs in the same named dir are quite nice and is quite good have all the documentation in one place.

Dark side: again this is a fedora only distribution and the sources from bsc.es are again a messy tarball.