error building ee-gcc

Discuss the development of software, tools, libraries and anything else that helps make ps2dev happen.

Moderators: cheriff, Herben

Post Reply
Nippy
Posts: 6
Joined: Wed Sep 15, 2004 2:27 am
Location: Bordeaux (France)

error building ee-gcc

Post by Nippy »

hi all,

i know, it's strange, but i have this error...

Code: Select all

gcc -c -DIN_GCC -DCROSS_COMPILE   -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long  -DHAVE_CONFIG_H    -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/config -I../../gcc/../include ../../gcc/caller-save.c -o caller-save.o
../../gcc/caller-save.c:53: warning: ISO C90 forbids variable-size array `regno_save_mode'

../../gcc/caller-save.c:53: error: variable-size type declared outside of any function
../../gcc/caller-save.c:59: warning: ISO C90 forbids variable-size array `regno_save_mem'
../../gcc/caller-save.c:59: error: variable-size type declared outside of any function
make[1]: *** [caller-save.o] Error 1
make[1]: Leaving directory `/tmp/ps2dev/gcc-3.2.2/build-ee/gcc'
make: *** [all-gcc] Error 2
ERROR BUILDING GCC (gcc-3.2.2 ee)
i work on linux platform :
- gcc (GCC) 3.3.5 (Debian 1:3.3.5-4)

do you have any idea ?
thanks for your help...
blackdroid
Posts: 564
Joined: Sat Jan 17, 2004 10:22 am
Location: Sweden
Contact:

Post by blackdroid »

Do you compile using ooPo's toolchain script ?
Kung VU
ooPo
Site Admin
Posts: 2023
Joined: Sat Jan 17, 2004 9:56 am
Location: Canada
Contact:

Post by ooPo »

Code: Select all

ERROR BUILDING GCC (gcc-3.2.2 ee)
That's from the toolchain script, so I'd say yes. :)

I don't know what the error could be, but I suggest taking a google to it.
cory1492
Posts: 216
Joined: Fri Dec 10, 2004 1:49 pm

Post by cory1492 »

ooPo: I have tried building from your script twice today, once over my old install and now on a clean cygwin, here is what I am getting as a result:

Code: Select all

Installing include/sys/select.h to /usr/local/ps2dev/ps2sdk/common/include/sys 
Installing include/sys/stat.h to usr/local/ps2dev/ps2sdk/common/include/sys
make[1]: Leaving directory `/tmp/ps2dev/ps2sdk/common'
PS2SDKSRC=/tmp/ps2dev/ps2sdk make -C samples release
make[1]: Entering directory `/tmp/ps2dev/ps2sdk/samples'
mkdir -p /usr/local/ps2dev/ps2sdk/samples
cp -f Makefile_sample /usr/local/ps2dev/ps2sdk/samples/Makefile cp -f Makefile.pref_sample /usr/local/ps2dev/ps2sdk/samples/Makefile.pref cp -f Makefile.eeglobal_sample /usr/local/ps2dev/ps2sdk/samples/Makefile.eeglobal
cp -f Makefile.eeglobal_cpp_sample /usr/local/ps2dev/ps2sdk/samples/Makefile.eeglobal_cpp
cp -f Makefile.iopglobal_sample /usr/local/ps2dev/ps2sdk/samples/Makefile.iopglo
bal
Released samples dir.
make[1]: Leaving directory `/tmp/ps2dev/ps2sdk/samples'
PS2SDK: not found
PS2DEV: not found
ln: creating symbolic link `/ee/lib/gcc-lib/ee/3.2.2/' to `/ee/startup/crt0.o':
No such file or directory
PS2SDK: not found
PS2DEV: not found
ln: creating symbolic link `/ee/ee/lib/' to `/ee/startup/crt0.o': No such file o
r directory
PS2SDKSRC=/tmp/ps2dev/ps2sdk make -C tools clean
make[1]: Entering directory `/tmp/ps2dev/ps2sdk/tools'
make -C bin2s clean
make[2]: Entering directory `/tmp/ps2dev/ps2sdk/tools/bin2s'
rm -f -r obj/ bin/
make[2]: Leaving directory `/tmp/ps2dev/ps2sdk/tools/bin2s'
make -C bin2c clean
make[2]: Entering directory `/tmp/ps2dev/ps2sdk/tools/bin2c'
rm -f -r obj/ bin/
make[2]: Leaving directory `/tmp/ps2dev/ps2sdk/tools/bin2c'
make -C bin2o clean
make[2]: Entering directory `/tmp/ps2dev/ps2sdk/tools/bin2o'
make[2]: *** No rule to make target `clean'.  Stop.
make[2]: Leaving directory `/tmp/ps2dev/ps2sdk/tools/bin2o'
make[1]: *** [clean-bin2o] Error 2
make[1]: Leaving directory `/tmp/ps2dev/ps2sdk/tools'
make: *** [clean-tools] Error 2
same results both times :(

Im assuming its a small problem in the make script as my ps2sdk vars are defined, but unfortunately I dont have time to delve ATM (sleep calls)
ooPo
Site Admin
Posts: 2023
Joined: Sat Jan 17, 2004 9:56 am
Location: Canada
Contact:

Post by ooPo »

Code: Select all

PS2SDK: not found
PS2DEV: not found
Are you sure the environment variables are actually getting set? The top of the script should set them correctly even if you don't have them set up in the shell yet which makes this very odd.

I assume you're running bash? Are you running the script by making it executable first, or by typing 'sh ./toolchain.sh'?
Nippy
Posts: 6
Joined: Wed Sep 15, 2004 2:27 am
Location: Bordeaux (France)

Post by Nippy »

hi,

So after some investigations ....

it seems it's a problem with the variable mips_use_128 ...
in gcc source code caller-save.c we have this line :

Code: Select all

static enum machine_mode 
  regno_save_mode[FIRST_PSEUDO_REGISTER][MAX_MOVE_MAX / MIN_UNITS_PER_WORD + 1]
with the include of the last mips.h we have

Code: Select all

static enum machine_mode 
  regno_save_mode[FIRST_PSEUDO_REGISTER][[color=red] (mips_use_128 ? 16 : 8)[/color] / MIN_UNITS_PER_WORD + 1]
and the result is this error ....
../../gcc/caller-save.c:53: error: variable-size type declared outside of any function

http://cvs.ps2dev.org/gcc-3.2.2/gcc/con ... 1.2&r2=1.3

so i take the previous mips.h and it'works fine....
I think we can't use a variable in static allocation of an array. i'm right ? or is it a problem of my gcc ?

Have fun ;)
pixel
Posts: 791
Joined: Fri Jan 30, 2004 11:43 pm

Post by pixel »

Errr... of course we can't. I wonder how cody could compile that :P

Okay, I'll work around that otherwise.

Thanks for the clear report.
pixel: A mischievous magical spirit associated with screen displays. The computer industry has frequently borrowed from mythology. Witness the sprites in computer graphics, the demons in artificial intelligence and the trolls in the marketing department.
cory1492
Posts: 216
Joined: Fri Dec 10, 2004 1:49 pm

Post by cory1492 »

Perhaps cygwin and its ?older (3.3.3-3)? version compiler is more tolerant of errors than the latest Linux that nippy is using?

I chmod a+x the script as per directions, and the env vars are set in bash.bashrc (like lukasz' install script does). Im going to try again ATM with just ps2sdk (it was the only part of the install that seemed to have failed for me at any rate)

addendum:
OK, it worked fine now, and upon updating my local copy of PS2SDK from yesterday I see:

Code: Select all

CVSROOT=:pserver:[email protected]:/home/ps2cvs

P tools/bin2o/Makefile
U tools/bin2o/bin2o
were updated in CVS. Thanks pixel and ooPo!

now to see if the "oldiop" install works out ok... Im assuming of course that the build irx has not been completely repaired as of yet.
pixel
Posts: 791
Joined: Fri Jan 30, 2004 11:43 pm

Post by pixel »

cory1492 wrote:now to see if the "oldiop" install works out ok... Im assuming of course that the build irx has not been completely repaired as of yet.
To be honest, there's nothing to repair at all in the compiler I think. Well, I've been explaining that a little in the other thread talking about "broken IOP compiler": http://forums.ps2dev.org/viewtopic.php?t=736

If you find other issues between the old 2.x iop-gcc and the new 3.2.2 iop-gcc, please report. But I guess this was the main issue, and that it is solved now.
pixel: A mischievous magical spirit associated with screen displays. The computer industry has frequently borrowed from mythology. Witness the sprites in computer graphics, the demons in artificial intelligence and the trolls in the marketing department.
cory1492
Posts: 216
Joined: Fri Dec 10, 2004 1:49 pm

Post by cory1492 »

If you find other issues between the old 2.x iop-gcc and the new 3.2.2 iop-gcc, please report. But I guess this was the main issue, and that it is solved now.
Well that saves some compiling time for sure, thanks again pixel, I will attempt to see if what Im compiling will work out

nippy: glad you got your problem sorted too
Masamune
Posts: 6
Joined: Thu Jan 12, 2006 5:37 am

Post by Masamune »

Nippy wrote:hi,

So after some investigations ....

it seems it's a problem with the variable mips_use_128 ...
in gcc source code caller-save.c we have this line :

Code: Select all

static enum machine_mode 
  regno_save_mode[FIRST_PSEUDO_REGISTER][MAX_MOVE_MAX / MIN_UNITS_PER_WORD + 1]
with the include of the last mips.h we have

Code: Select all

static enum machine_mode 
  regno_save_mode[FIRST_PSEUDO_REGISTER][[color=red] (mips_use_128 ? 16 : 8)[/color] / MIN_UNITS_PER_WORD + 1]
and the result is this error ....
../../gcc/caller-save.c:53: error: variable-size type declared outside of any function

http://cvs.ps2dev.org/gcc-3.2.2/gcc/con ... 1.2&r2=1.3

so i take the previous mips.h and it'works fine....
I think we can't use a variable in static allocation of an array. i'm right ? or is it a problem of my gcc ?

Have fun ;)
I'm having this same error, how exactly did you fix it? ... not sure what you mean by "so i take the previous mips.h and it'works fine"
Post Reply