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] |
On Thu 04 Apr 2002 21:58, "John David Anglin" <dave@hiauly1.hia.nrc.ca> wrote: > > As I've seen on the gcc web site, HP-UX 11.00 has been promoted to primary > > target site. I've got no trouble building gcc in 32 bit mode, but building a > > 64bit gcc is still almost impossible. > > Can you be more specific? I think that once you get a good set of tools > installed you won't have any trouble building 64bit gcc. This is not to Then my tools are probably no good ;) > say that that there aren't lots of issues with hppa64 but I am not having > problems doing builds anymore. But you might have /more/ GNU stuff installed in default locations than I have. For example, in the configuration I'll show shortly, it barfs on unsatisfied symbol '__umoddi3', which can be found in libgcc.a, which I do not have installed in a default location, and since I'm building with HPc, it won't find it without hints. Now if I set LDFLAGS="-L/usr/local/pa20_64/lib -lgcc" where libgcc can be found in my situation, it is put *before* the libs, making the needed symbols unfindable, so I commented out LDFLAGS and put in LIBS=/usr/local/pa20_64/lib/libgcc.a FYI when reading on, /usr/local/pa20_64 is a symlink to /wrk/pa20_64 because that LV has more space to play with. > > I've got > > > > The latest HP-UX 11.00 with the latest patches > > The latest C compiler (B.11.11.04 HP C/ANSI C Compiler) > > Several ports of gcc > > 3.0.4/32 > > 3.0.1/64 > > 3.0.2/64 > > binutils-2.11.90/64 > > binutils-2.12/64 > > Here are my suggestions. Use the latest binutils. It has fixes that > affect hppa64. Don't use 2.11.90. Build it with the HP ANSI compiler > (ie, use "-Ae +DA2.0W" in your CFLAGS). Gcc may miscompile the > linker causing it to dump core linking shared libraries. Whether > this is still a problem, I'm not sure. I used --8<--- Conf-64 #!/usr/bin/sh export CONFIG_SITE= export CC=cc export CFLAGS="-Ae -O +DA2.0W" #export LDFLAGS="-L/usr/local/pa20_64/lib -lgcc" export LIBS=/usr/local/pa20_64/lib/libgcc.a export PATH=. export PATH=$PATH"":/u/usr/merijn/bin/private:/u/usr/merijn/bin export PATH=$PATH"":/pro/local/bin:/pro/bin export PATH=$PATH"":/usr/bin:/usr/bin/X11:/opt/ansic/bin export PATH=$PATH"":/usr/sbin:/etc:/sbin:/usr/lib:/usr/ccs/bin:/opt/langtools/bin export PATH=$PATH"":/usr/contrib/bin:/usr/contrib/bin/X11:/opt/imake/bin configure \ --prefix=/wrk/pa20_64 --with-local-prefix=/wrk/pa20_64 \ --disable-shared \ --disable-nls \ --enable-multilib \ --enable-threads -->8--- But needed the followin patches: --8<--- binutils-2.12.diff --- binutils-2.12.org/configure.in 2002-03-08 20:45:10.000000000 +0100 +++ binutils-2.12/configure.in 2002-04-05 13:17:26.000000000 +0200 @@ -722,8 +722,10 @@ hppa*-*-*elf* | \ hppa*-*-linux-gnu* | \ hppa*-*-lites* | \ + hppa*2.0w*-*-* | \ hppa*64*-*-*) # Do configure ld/binutils/gas for this case. + echo " ############# 64bit ################### ($noconfigdirs)" >&2 ;; hppa*-*-*) # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach --- binutils-2.12.org/bfd/config.bfd 2002-02-13 21:45:46.000000000 +0100 +++ binutils-2.12/bfd/config.bfd 2002-04-05 13:10:23.000000000 +0200 @@ -292,6 +292,7 @@ targ_defvec=bfd_elf64_hppa_linux_vec targ_selvecs=bfd_elf64_hppa_vec ;; + hppa*2.0w*-*-hpux11* | \ hppa*64*-*-hpux11*) targ_defvec=bfd_elf64_hppa_vec targ_selvecs=bfd_elf64_hppa_linux_vec --- binutils-2.12.org/bfd/configure.host 2002-01-22 01:47:21.000000000 +0100 +++ binutils-2.12/bfd/configure.host 2002-04-05 13:10:41.000000000 +0200 @@ -21,6 +21,7 @@ alpha*-*-*) host64=true; HOST_64BIT_TYPE=long ;; +hppa*2.0w*-*-hpux* | \ hppa*64*-*-hpux*) HDEFINES=-DHOST_HPPAHPUX; host64=true; HOST_64BIT_TYPE=long ;; hppa*-*-hpux*) HDEFINES=-DHOST_HPPAHPUX ;; --- binutils-2.12.org/gas/configure 2002-02-26 11:35:27.000000000 +0100 +++ binutils-2.12/gas/configure 2002-04-05 13:11:01.000000000 +0200 @@ -2377,6 +2377,7 @@ hppa-*-osf*) fmt=som em=hppa ;; hppa-*-rtems*) fmt=elf em=hppa ;; hppa-*-hpux11*) case ${cpu} in + hppa*2.0w* | \ hppa*64*) fmt=elf em=hppa64 ;; hppa*) --- binutils-2.12.org/gas/configure.in 2002-02-26 11:35:27.000000000 +0100 +++ binutils-2.12/gas/configure.in 2002-04-05 13:11:17.000000000 +0200 @@ -227,6 +227,7 @@ hppa-*-osf*) fmt=som em=hppa ;; hppa-*-rtems*) fmt=elf em=hppa ;; hppa-*-hpux11*) case ${cpu} in + hppa*2.0w* | \ hppa*64*) fmt=elf em=hppa64 ;; hppa*) --- binutils-2.12.org/ld/configure.tgt 2002-02-20 06:26:22.000000000 +0100 +++ binutils-2.12/ld/configure.tgt 2002-04-05 13:07:56.000000000 +0200 @@ -309,6 +309,7 @@ m68*-*-rtemscoff*) targ_emul=m68kcoff ;; m68*-*-rtems*) targ_emul=m68kelf ;; hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;; +hppa*2.0w*-*) targ_emul=elf64hppa ;; hppa*64*-*) targ_emul=elf64hppa ;; hppa*-*-linux-gnu*) targ_emul=hppalinux ;; hppa*-*-*elf*) targ_emul=hppaelf ;; -->8--- Conf-64 now finishes to the end. Now I use --8<--- Build-64 #!/usr/bin/sh export CONFIG_SITE= export CC=cc export CFLAGS="-Ae -O +DA2.0W" #export LDFLAGS="-L/usr/local/pa20_64/lib -lgcc" export LIBS=/usr/local/pa20_64/lib/libgcc.a export PATH=. export PATH=$PATH"":/u/usr/merijn/bin/private:/u/usr/merijn/bin export PATH=$PATH"":/pro/local/bin:/pro/bin export PATH=$PATH"":/usr/bin:/usr/bin/X11:/opt/ansic/bin export PATH=$PATH"":/usr/sbin:/etc:/sbin:/usr/lib:/usr/ccs/bin:/opt/langtools/bin export PATH=$PATH"":/usr/contrib/bin:/usr/contrib/bin/X11:/opt/imake/bin make -->8--- After the first run I changed 'make' to 'make -i' and reran the log is attached a5:/wrk/pa20_64/bin 189 > find * -newer ld.pl -type f | xargs file addr2line: ELF-64 executable object file - PA-RISC 2.0 (LP64) ar: ELF-64 executable object file - PA-RISC 2.0 (LP64) as: ELF-64 executable object file - PA-RISC 2.0 (LP64) c++filt: ELF-64 executable object file - PA-RISC 2.0 (LP64) gas: ELF-64 executable object file - PA-RISC 2.0 (LP64) gasp: ELF-64 executable object file - PA-RISC 2.0 (LP64) gprof: ELF-64 executable object file - PA-RISC 2.0 (LP64) ld: ELF-64 executable object file - PA-RISC 2.0 (LP64) nm: ELF-64 executable object file - PA-RISC 2.0 (LP64) objcopy: ELF-64 executable object file - PA-RISC 2.0 (LP64) objdump: ELF-64 executable object file - PA-RISC 2.0 (LP64) ranlib: ELF-64 executable object file - PA-RISC 2.0 (LP64) readelf: ELF-64 executable object file - PA-RISC 2.0 (LP64) size: ELF-64 executable object file - PA-RISC 2.0 (LP64) strings: ELF-64 executable object file - PA-RISC 2.0 (LP64) strip: ELF-64 executable object file - PA-RISC 2.0 (LP64) a5:/wrk/pa20_64/bin 190 > Now I should have a working set of binutils, I guess (FTR, I built my previous set with gcc-3.0.2/64) > For gcc, use either the 3.1 branch or the unstable 3.2 trunk. You I'll go for the gcc-20020401.tar.bz2 version I snatched from snapshot > should be able to bootstrap it using CC="cc -Ae +DA2.0W" or with > a working version of gcc for hppa64. Use the GNU binutils and specify > the locations for as and ld using --with-as and --with-ld. Run > the testsuite to see if things are working. There are some problems > with shared libraries so it's probably better not to specify > --enable-shared in your configure options. > > These are the gcc configure options that I use: > > --host=hppa64-hp-hpux11.11 --with-gnu-as --with-as=/opt/gnu64/bin/as That's a HP-UX 11i > --with-gnu-ld --with-ld=/opt/gnu64/bin/ld --disable-nls --prefix=/opt/gnu64 This is what I went for --8<--- Conf-64 #!/usr/bin/sh export CONFIG_SITE= export CC="cc -Ae +DA2.0W" export PATH=.:/u/usr/merijn/bin/private:/u/usr/merijn/bin export PATH=$PATH"":/pro/local/bin:/pro/bin:/usr/bin:/usr/bin/X11 export PATH=$PATH"":/opt/ansic/bin:/usr/ccs/bin:/opt/langtools/bin export PATH=$PATH"":/usr/lib:/usr/contrib/bin:/usr/contrib/bin/X11:/opt/imake/bin export PATH=$PATH"":/wrk/pa20_64/bin:/wrk/GNUpro/bin rm -rf obj mkdir obj cd obj ../src/configure \ --enable-languages=gcc \ --prefix=/usr/local/pa20_64 --with-local-prefix=/usr/local/pa20_64 \ --with-gnu-as \ --with-gnu-ld \ --disable-shared \ --disable-nls \ --enable-multilib \ --enable-threads \ --with-system-zlib echo "" echo "Now start 'Build-64'" -->8--- Of course after patchin with --8<--- --- src/configure.in.org 2002-04-05 14:16:10.000000000 +0200 +++ src/configure.in 2002-04-05 14:16:31.000000000 +0200 @@ -284,6 +284,7 @@ # hpux11 in 64bit mode has libraries in a weird place. Arrange to find # them automatically. case "${host}" in + hppa*2.0w*-*-hpux11* | \ hppa*64*-*-hpux11*) withoptions="$withoptions -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include" ;; @@ -567,6 +568,7 @@ noconfigdirs="" case "${host}" in + hppa*2.0w*-*-* |\ hppa*64*-*-*) noconfigdirs="$noconfigdirs byacc" ;; @@ -771,6 +773,7 @@ hppa*-*-*elf* | \ parisc*-*-linux* | hppa*-*-linux* | \ hppa*-*-lites* | \ + hppa*2.0w*-*-* | \ hppa*64*-*-*) noconfigdirs="$noconfigdirs ${libgcj}" # Do configure ld/binutils/gas for this case. --- src/gcc/config.gcc.org 2002-04-05 14:14:51.000000000 +0200 +++ src/gcc/config.gcc 2002-04-05 14:14:58.000000000 +0200 @@ -917,6 +917,7 @@ install_headers_dir=install-headers-cpio use_collect2=yes ;; +hppa*2.0w*-*-hpux11* | \ hppa*64*-*-hpux11*) xm_defines=POSIX tm_file="pa/pa64-start.h ${tm_file} pa/pa64-regs.h pa/long_double.h pa/elf.h pa/pa-hpux.h pa/pa-hpux11.h pa/pa-64.h pa/pa64-hpux.h" -->8--- Now I use --8<--- Build-64 #!/usr/bin/sh export CONFIG_SITE= export CC="cc -Ae +DA2.0W" export PATH=.:/u/usr/merijn/bin/private:/u/usr/merijn/bin export PATH=$PATH"":/pro/local/bin:/pro/bin:/usr/bin:/usr/bin/X11 export PATH=$PATH"":/opt/ansic/bin:/usr/ccs/bin:/opt/langtools/bin export PATH=$PATH"":/usr/lib:/usr/contrib/bin:/usr/contrib/bin/X11:/opt/imake/bin export PATH=$PATH"":/wrk/pa20_64/bin:/wrk/GNUpro/bin cd obj make bootstrap-lean -->8--- The build comes amazingly far, but core dumps like echo "int xxy_us_dummy;" >tmp-dum.c ./xgcc -B./ -B/usr/local/pa20_64/hppa2.0w-hp-hpux11.00/bin/ -isystem /usr/local/pa20_64/hppa2.0w-hp-hpux11.00/include -isystem /usr/local/pa20_64/hppa2.0w-hp-hpux11.00/sys-include -S tmp-dum.c cc1: internal error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions. make[2]: *** [s-under] Error 1 make[2]: Leaving directory `/pro/3gl/GNU/gcc-3.0.4/obj/gcc' make[1]: *** [stage2_build] Error 2 make[1]: Leaving directory `/pro/3gl/GNU/gcc-3.0.4/obj/gcc' make: *** [bootstrap-lean] Error 2 No core dump. Should I go on? -- H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/) using perl-5.6.1, 5.7.3 & 631 on HP-UX 10.20 & 11.00, AIX 4.2, AIX 4.3, WinNT 4, Win2K pro & WinCE 2.11. Smoking perl CORE: smokers@perl.org http://archives.develooper.com/daily-build@perl.org/ perl-qa@perl.org send smoke reports to: smokers-reports@perl.org, QA: http://qa.perl.org
Attachment:
binutils-2.12-Build-64.log.gz
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |