[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gm2] GM2 on HP-UX 11.11 (PARISC) Status Report
From: |
Gaius Mulley |
Subject: |
Re: [Gm2] GM2 on HP-UX 11.11 (PARISC) Status Report |
Date: |
07 Jan 2007 18:05:33 +0000 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 |
John O Goyo <address@hidden> writes:
> Trying to build GM2 (2006-12-18) on HP-UX B.11.11 PA-RISC 9000/785.
> The story so far...
>
> 0. I obtained gcc 4.1.1 binaries from HP and the core source
> distribution from GNU.
>
> 1. I configured, built, and installed gcc 4.1.1 using the
> configuration line below. The installed binaries can compile and link
> a C programme so I know that I am starting from a sane environment.
>
> CC=gcc CONFIG_SHELL=/opt/OpenSource/bin/bash
> ../../src/gcc-4.1.1/configure --prefix=/home/build/bin/gcc
> --exec-prefix=/home/build/bin/gcc --host=hppa2.0-hp-hpux11.11
> --with-gnu-as --with-as=/usr/local/bin/gas --without-gnu-ld
> --with-ld=/usr/ccs/bin/ld --enable-languages=c
>
>
> 2. I added gm2 to the mix. I first discovered that gcc 4.1.1 on HP-UX
> 11.11 does not support dwarf-2. The option --without-dwarf2 was
> ignored to work so I removed references to dwarf-2 in Make-lang.in.
Hi John,
thanks for this report - I'll try and honour this switch. I also
notice that one of the prefix switches are not honoured either
which occurs when trying to produce a debian package.
> 3. The script tools-src/createUlmSys fails. I suspect that somewhere
> in my environment, the shell is being changed from bash to something
> else. I failed to find the place so I moved createUlmSys to
> createUlmSys.orig and replaced the former with the following
> invocation.
> /opt/OpenSource/bin/bash $(TOOLS-SRC)/createUlmSys.orig $*
>
> The build now succeeds.
well done, I guess the configure inside gm2 should check for the
availability of sh and invoke the script appropriately
> 3. I tried gmake gm2.paranoid. The linker seems unable to find any of
> the symbols:
>
> ranlib gm2/gm2-libs/libgm2.a
> gcc -g -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes
> -Wmissing-prototypes -DHAVE_CONFIG_H -o stage2/gm2/cc1gm2
> gm2/gccgm2.o gm2/gm2builtins.o gm2/gm2-lang.o gm2/stor-layout.o
> gm2/gm2-compiler/gm2.a gm2/gm2-libs/libgm2.a \
> gm2/gm2-compiler/m2flex.o main.o
> libbackend.a ../libcpp/libcpp.a ../libcpp/libcpp.a -lintl -liconv
> ../libiberty/libiberty.a
> /usr/ccs/bin/ld: Unsatisfied symbols:
> memset (first referenced in gm2/gm2-compiler/gm2.a(Indexing.o)) (data)
> SymbolTable_GetVarPointerCheck (first referenced in
> gm2/gm2-compiler/gm2.a(M2Quads.o)) (data)
> gm2builtins_BuiltInAlloca (first referenced in
> gm2/gm2-compiler/gm2.a(M2GenGCC.o)) (data)
> SymbolTable_IsTemporary (first referenced in
> gm2/gm2-compiler/gm2.a(M2Quads.o)) (data)
> M2Entity_IsLValue (first referenced in
> gm2/gm2-compiler/gm2.a(M2SubExp.o)) (data)
> [...lots of symbols...]
I've not seen this problem recently. Does it succeed building
stage2/gm2/cc1gm2 or does it fail on linking stage3/gm2/cc1gm2 ?
> 4. Nevertheless, I tried installation. The binaries installed but not
> the libraries. In particular, I can compile Hello.mod but not link it
> (vide infra).
>
> heap: tst=> cat Hello.mod
> MODULE Hello;
>
> FROM StrIO IMPORT WriteString, WriteLn;
>
> BEGIN
> WriteString( "GM2 on HP-UX -- wot the ..." );
> WriteLn
> END Hello.
>
> heap: tst=> gm2 -c -I. Hello.mod
> heap: tst=> file Hello.*
> Hello.mod: pascal program text
> Hello.o: PA-RISC1.1 relocatable object
good so far..
> heap: tst=> gm2 -o Hello Hello.mod
> /usr/ccs/bin/ld: Unsatisfied symbols:
> Assertion_Assert (first referenced in
> /var/tmp//ccGzWneL.a(DynamicStrings.o)) (data)
> FIO_GetUnixFileDescriptor (first referenced in
> /var/tmp//ccGzWneL.a(IO.o)) (data)
> [...]
> StdIO_Read (first referenced in /var/tmp//cccWJTHl.a(StrIO.o)) (data)
> StrIO_ReadString (first referenced in
> /var/tmp//cccWJTHl.a(NumberIO.o)) (data)
> /usr/ccs/bin/ld: (Warning) Linker features were used that may not be
> supported in future releases. The +vallcompatwarnings option can be
> used to display more details, and the ld(1) man page contains
> additional information. This warning can be suppressed with the
> +vnocompatwarnings option.
> collect2: ld returned 1 exit status
>
> I am continuing. Suggestions are more than welcome.
I'd try to get the stage2/gm2/cc1gm2 or stage3/gm2/cc1gm2 to work.
Once these work then the hello world should also link (maybe). Also
the stage2/gm2/cc1gm2 is an easier problem to solve as the linking is
achieved by:
gcc foo.o foobar.a etc etc
rather than invoking the gm2 linking programs (and the
gm2/Make-lang.in can be modified to try different approaches). So
although linking the stage2/gm2/cc1gm2 results in a huge executable it
should be easier to see what is happening,
regards,
Gaius