On Fri, 30 May 2003, Frank Heckenbach wrote:
Oh yeah, probably the C files (rts.o, rts-va.o, file.o). So I think you should set CFLAGS (which will then also apply to PFLAGS, no need to set both). If you set CFLAGS when building the whole compiler, it will also apply to the compiler itself which may or may not be what you want ...
That was the trick - let me summarize it if anyone wants to do it next time:
1) - Configure, build and install GPC in a separate directory on the top of the GCC 3.2.1 source. This will create the GCC runtimes in two versions (32-bit and 64-bit) and the 32-bit version of the GPC runtime. Do not need any unusual config option or make switch for that. The compiler itself is 32-bit but capable of 64-bit code generation.
2) - Go to the gcc/p/rts dir. of the source and run configure locally with the same options as you applied for the whole kit.
3) - Build the library in that dir. with the CFLAGS=-m64 option (for sun system).
4) - Copy the libgpc.a archive manually to its place where the gcc 64-bit runtimes are. (/usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.2.1/sparcv9 in my case.)
Done, the compiler generates valid 64-bit code with the -m64 switch.
The new problem starts here. The size of the array is still limited in the 64-bit version. The limit is the same as in 32-bit and it is much smaller than the memory limit of the system. So no use of the 64-bit architecture after all.
What does the assembler file contain (WRT n)?
How can I capture the assembler file of a source?
miklos