> Ok, I did a bootstrap and testsuite run without passing -mpa-risc-2-0 to the > boostrap compiler. Testresults including configure options and environment at > > http://gcc.gnu.org/ml/gcc-testresults/2006-01/msg01297.html > > the only acats test that failed: c52103x
Your results are better than mine. I suspect that "--disable-shared" versus "--enable-shared" is the difference. There might still be some issues unwinding through shared libraries with the new dwarf2 exception support. These failures need looking at: FAIL: gcc.c-torture/execute/20010122-1.c execution, -O0 FAIL: gcc.c-torture/execute/20010122-1.c execution, -O1 FAIL: gcc.c-torture/execute/20010122-1.c execution, -O2 FAIL: gcc.c-torture/execute/20010122-1.c execution, -O3 -g FAIL: gcc.c-torture/execute/20010122-1.c execution, -Os FAIL: gcc.dg/cpp/_Pragma3.c (test for excess errors) > For the target `hppa[1-2]*-hp-hpux11*' gcc --target-help says: > > - -mpa-risc-2-0 Generate PA2.0 code (requires binutils 2.10 or > later) > - -mpa-risc-1-1 Generate PA1.1 code > - -mpa-risc-1-0 Generate PA1.0 code > > which produces executables as follows for example: > > file gcc > gcc: PA-RISC1.1 shared executable dynamically linked -not stripped There is a bug in gas 2.16.1 which almost always causes the promotion of PA 1.0 to PA 1.1. This should be fixed in cvs binutils. > For the target `hppa64-hp-hpux11*' it's completly different: > > file gcc > gcc: ELF-64 executable object file - PA-RISC 2.0 (LP64) > this is 64bit. The wide mode bit is in the PSW for 64-bit executables. This changes the addressing model and the behavior of some instructions. > So what I see, the `hppa64-hp-hpux11*' target implies PA-RISC 2.0 > architecture. Yes. > But I think it's not true the other way. The `hppa[1-2]*-hp-hpux11*' target > does > not imply 64bit. Correct. The runtime for `hppa[1-2]*-hp-hpux11*' is the 32-bit SOM runtime (HP linker required). The general registers are 64 bits in PA 2.0. However, only the least significant 32 bits of the call-saved registers are saved and restored by the prologue and epilogue of functions. The kernel will save the full 64 bits on context switches if it's a wide-mode kernel (also required for hppa64). Thus, it's possible to use the full 64 bits of the general registers between calls in the 32-bit runtime when using a wide-mode kernel. However, GCC doesn't attempt to use this capability. > So, what I did in the past: > > I set CC="gcc -mpa-risc-2-0". This only is used in stage1 of a bootstrap. To add "-mpa-risc-2-0" to CFLAGS in later stages, you need to add something like BOOT_CFLAGS="-g -O2 -mpa-risc-2-0" to the make bootstrap command. > Runtime libraries are built for PA-RISC1.1, because gcc defaults to build > PA-RISC1.1 code for target hppa2.0w-hp-hpux11.00, that's also curios. Right. I think the PA-RISC1.1 default is ok. It's the base for almost all applications in linux as it works on all supported hardware. The main benefit in using PA 2.0 in the 32-bit runtime arises in floating point intensive applications. Dave -- J. David Anglin [EMAIL PROTECTED] National Research Council of Canada (613) 990-0752 (FAX: 952-6602)