[comp.sys.dec] gcc and DS3100

brook@ut-emx.UUCP (Brook Milligan) (03/20/90)

I am trying to install gcc (version 1.37.1) on a DS3100 (Ultrix 3.1)
and seem to be having a problem.  When I compile the distribution
using the Dec/MIPS cc I get the following error messages.  The
documentation suggests that the first is to be ignored and I'm sure
the third is irrevelant, but I am less sure of the second.

cc  -I. -I. -I./config -c insn-emit.c
ccom: Warning: insn-emit.c, line 729: statement not reached
        operand0 = emit_operand[0];
      ----------------------------^
ccom: Warning: insn-emit.c, line 749: zero or negative subscript
        rtx emit_operand[0];
      --------------------^
make hard-params
cp ./hard-params.c . > /dev/null 2>&1
*** Error code 1 (ignored)

Upon recompiling gcc with itself I cannot use the -g switch as
suggested since the following message results:  cc1:  Invalid option
`-g'.  I assume this is related to the comment in the documentation
about "GNU CC cannot generate debugging information in the unusual
format used on the Mips."  Without -g everything recompiles just fine
with gcc.

To test the results, I recompiled it with gcc a second time following
the instructions in the documentation.  Upon comparing the resulting
files, however, I find differences between files.  Differences arise
whether or not I use the -g option in the original compilation with
cc.

Does this mean that errors exist in my compiled version of gcc?  I
would appreciate any suggestions you can make, especially it you have
successfully installed gcc on a DS3100.  Thanks in advance.
-- 
====================================================================
Brook G. Milligan                   Internet:   brook@emx.utexas.edu
Department of Botany                Bitnet:     bohk313@utaivc
University of Texas at Austin       UUCP:       ...!ut-emx!brook
Austin, Texas  78713   U.S.A.       (512) 471-3530
====================================================================

meissner@osf.org (Michael Meissner) (03/24/90)

In article <26423@ut-emx.UUCP> brook@ut-emx.UUCP (Brook Milligan)
writes:

| I am trying to install gcc (version 1.37.1) on a DS3100 (Ultrix 3.1)
| and seem to be having a problem.  When I compile the distribution
| using the Dec/MIPS cc I get the following error messages.  The
| documentation suggests that the first is to be ignored and I'm sure
| the third is irrevelant, but I am less sure of the second.
| 
| cc  -I. -I. -I./config -c insn-emit.c
| ccom: Warning: insn-emit.c, line 729: statement not reached
|         operand0 = emit_operand[0];
|       ----------------------------^
| ccom: Warning: insn-emit.c, line 749: zero or negative subscript
|         rtx emit_operand[0];
|       --------------------^
| make hard-params
| cp ./hard-params.c . > /dev/null 2>&1
| *** Error code 1 (ignored)

The second error message is because of the 'probe' insn which tests if
the stack is allocated when using __builtin_alloca.  The problem is
probe takes no arguments, but the gen* utilities don't have any
special code to eliminate the decl if there were no arguments.  In
other words, ignore the error message.  I've been meaning to redo
probe to see if I can eliminate the error message, but it's low on my
priority list.

| Upon recompiling gcc with itself I cannot use the -g switch as
| suggested since the following message results:  cc1:  Invalid option
| `-g'.  I assume this is related to the comment in the documentation
| about "GNU CC cannot generate debugging information in the unusual
| format used on the Mips."  Without -g everything recompiles just fine
| with gcc.

I'm looking into -g support.  I have lines working (which is somewhat
trivial), but not local symbols (definiately not trivial).

| To test the results, I recompiled it with gcc a second time following
| the instructions in the documentation.  Upon comparing the resulting
| files, however, I find differences between files.  Differences arise
| whether or not I use the -g option in the original compilation with
| cc.
| 
| Does this mean that errors exist in my compiled version of gcc?  I
| would appreciate any suggestions you can make, especially it you have
| successfully installed gcc on a DS3100.  Thanks in advance.

Each source file encountered is supposed to generate an appropriate
FDR entry in the object file.  The assembler blindly adds the filename
the assembly language input as an FDR, even if there is a .file
directive before any declarations.  Since GCC constructs the temporary
assembler name via mktemp, it means you get a different name each
time.  What I do is the following:

	(cmp -l cc1 stage2/cc1 | head -6; odump -f cc1) | less

Find the first difference after bytes 4-7 (which are the timestamp).
Convert that number to hex, and see if it's greater than the symptr,
which is the start of the symbol table (where the FDR's live).

I've come to the conclusion that the MIPS people did not consider that
anybody would want to have high level languages generate assembly
code, but rather they should produce the object file directly, since
there are no hooks in the assembler to specify to eliminate the
unneeded FDR, no way to create debug information, no way to set the
language.  Sigh....
--
Michael Meissner	email: meissner@osf.org		phone: 617-621-8861
Open Software Foundation, 11 Cambridge Center, Cambridge, MA

Catproof is an oxymoron, Childproof is nearly so