This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Help needed with sparc


In my day job I'm a mathematician doing work on image processing algorithms
with large data sets (functional MRI, dynamic PET, etc.).  I write my
programs in Scheme, use Gambit-C to compile them to C, and generally use
gcc to compile the resulting C code.  Because of the data set sizes, I need
to run these codes on a 64-bit version of Gambit-C; I use gcc because the
computed goto extension of gcc increases the speed of my programs, sometimes
by 50 to 100%.

I've been using an alpha 21264 running linux for these programs, which has
worked reasonably well, but the flakey hardware is catching up to me, and
I'm not sure that I can continue to use this box for this purpose.  We have
a number of Sun servers running Solaris that I can use; the fastest of them
is half the speed of the alpha.

I would like to use a 64 bit version of gcc on the sparc.  If I use Sun's
compilers without computed goto's, I'm looking at a speed degradation of
3 to 4 times over my old alpha (a factor of two because of the hardware,
the rest because of the compiler).

I've never gotten a 64-bit version of gambit-c to compile with gcc on the
sparc.  (At one point, I got a 32-bit version to compile with a sparcv9
compiler.)  Today, the sparcv9 compiler doesn't bootstrap; the error is
suitably obscure:

env CC='cc -xarch=v9 -xildoff' ../configure --prefix=/pkgs/gcc-3.1v9 sparcv9-sun-solaris2.8
...
stage1/xgcc -Bstage1/ -B/pkgs/gcc-3.1v9/sparcv9-sun-solaris2.8/bin/ -DIN_GCC    -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long  -DHAVE_CONFIG_H -DGENERATOR_FILE  -o gengenrtl \
 gengenrtl.o ../libiberty/libiberty.a
./gengenrtl -h > tmp-genrtl.h
Bus Error

GDB gives some perhaps less obscure information:

banach-398% gdb ./gengenrtl 
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.8"...
.gdbinit:7: Error in sourced command file:
../../gcc/gdbinit.in:91: Error in sourced command file:
Function "fancy_abort" not defined.

The last time I got it to bootstrap, Jakub discovered, based on a bug
report of mine, that the code that generates predicted branch instructions
doesn't work when the jump offset is > 32K instructions.

Perhaps someone would like to work with me to get 64-bit gcc working on
sparc with Solaris.  I'm willing to test and try to isolate problems, but
that is perhaps the limit of my ability to contribute.  If I don't end up
working with someone, I'm willing to occasionally bootstrap and test the
compiler and report problems, but otherwise I think I'm going to have to
(reluctantly) start working with Sun's compiler.  That's not so bad;
it's just not what I'd prefer to do, given that it's going to send my
development tests to the 20-30 minute range.

Brad


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]