Subject: Compiling GCC & Math lib.
To: None <port-arm32@NetBSD.ORG>
From: Kim G. S. \yhus <kim@pvv.ntnu.no>
List: port-arm32
Date: 12/03/1996 00:47:06
The reason I needed to compile GCC in order to implement 
the math library, was that I wanted to make the key parts of it
as flexible inline assembler macros, i.e. a .md file.

Mark wrote:
> I have not heard from you since I queried if you wanted a complete copy of
> by GCC source tree.

Well, I have the complete GCC source three from gcc-2.7.2.tar.gz and
from gcc-2.7.2.1.tar.gz, your patchfile, and NetBSD src/gnu which
is sup'ed, and your recommended compiler flags. 

Neither of them compiles. I have tried several combinations
of these, and permutations, and gotten a little bit more to compile,
but not enough.

> I have had not problems building every version of GCC since 2.6.3

What you have got seems to be different from what is available to others.
Perhaps I should accept your generous offer of a complete copy?

> I have never had any serious problems and I would have though that if you are
> about to undertake a project like this you would be able to hack the few
> potential problem areas with the patches.

Probably. But the time and work needed to do so is too excessive.
And I would not make patches, but kludges, since my knowledge of
the rest of GCC and NetBSD is nowhere near yours. My knowledge
about numerics might be fuller than yours. So my time is better
spent doing that.

> A fast maths library does not *require* cross compiling so what is wrong with
> the gcc in the netbsd tree ? This compiles under RiscBSD with the following
> commands

> tar xfz gnu.tar.gz
> cd src/gnu/usr.bin/gcc
> make

Well, I tried that. I fetched GCC for the 4th time, as gnu.tar.gz tonight,
from ftp.NetBSD.ORG.

It compiled further, but not all. Here is the divergent point. Isn't this the
same as Ale Terlevich got? He obviously has a faster internet connection
than I.

Kim0


...
cc -O2 -I. -I/usr/users/src/gnu/usr.bin/gcc/cc1plus -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../common -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../arch  -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../arch/arm32 -I/usr/users/src/gnu/usr.bin/gcc/common  -Werror  -c search.c
cc -O2 -I. -I/usr/users/src/gnu/usr.bin/gcc/cc1plus -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../common -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../arch  -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../arch/arm32 -I/usr/users/src/gnu/usr.bin/gcc/common  -Werror  -c tree.c
cc -O2 -I. -I/usr/users/src/gnu/usr.bin/gcc/cc1plus -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../common -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../arch  -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../arch/arm32 -I/usr/users/src/gnu/usr.bin/gcc/common  -Werror  -c xref.c
cc -O2 -I. -I/usr/users/src/gnu/usr.bin/gcc/cc1plus -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../common -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../arch  -I/usr/users/src/gnu/usr.bin/gcc/cc1plus/../arch/arm32 -I/usr/users/src/gnu/usr.bin/gcc/common  -Werror  -c repo.c
cc   -o cc1plus call.o decl.o errfn.o expr.o pt.o sig.o typeck2.o class.o decl2.o error.o gc.o lex.o parse.o ptree.o spew.o typeck.o cvt.o edsel.o except.o init.o method.o search.o tree.o xref.o repo.o /usr/users/src/gnu/usr.bin/gcc/common/libcc1.a -lgnumalloc
collect2: ld returned 1 exit status
c-decl.o(.data+0x2c): multiple definition of `flag_signed_bitfields'
decl2.o(.data+0x0): first defined here
c-decl.o(.data+0x44): multiple definition of `dollars_in_ident'
decl2.o(.data+0x14): first defined here
c-decl.o(.text+0xe54): multiple definition of `print_lang_decl'
ptree.o(.text+0x4c): first defined here
c-decl.o(.text+0xe64): multiple definition of `print_lang_type'
ptree.o(.text+0x2e8): first defined here
c-decl.o(.text+0xeb0): multiple definition of `print_lang_identifier'
ptree.o(.text+0x6dc): first defined here
c-decl.o(.text+0x66e8): multiple definition of `complete_array_type'
decl.o(.text+0xad5c): first defined here
c-decl.o(.text+0xfc8): multiple definition of `global_bindings_p'
decl.o(.text+0x30c): first defined here
c-decl.o(.text+0xff8): multiple definition of `keep_next_level'
decl.o(.text+0x3a8): first defined here
c-decl.o(.text+0x1018): multiple definition of `kept_level_p'
decl.o(.text+0x3c8): first defined here
c-decl.o(.text+0x1084): multiple definition of `declare_parm_level'
decl.o(.text+0x424): first defined here
c-decl.o(.text+0x10e0): multiple definition of `pushlevel'
decl.o(.text+0x548): first defined here
c-decl.o(.text+0x1218): multiple definition of `poplevel'
decl.o(.text+0x69c): first defined here
c-decl.o(.text+0x3cb8): multiple definition of `define_label'
decl.o(.text+0x54d8): first defined here
c-decl.o(.text+0x1580): multiple definition of `delete_block'
decl.o(.text+0xcf8): first defined here
c-decl.o(.text+0x15ec): multiple definition of `insert_block'
decl.o(.text+0xd64): first defined here
c-decl.o(.text+0x1628): multiple definition of `set_block'
decl.o(.text+0xdd0): first defined here
c-decl.o(.text+0x1818): multiple definition of `pushtag'
decl.o(.text+0x2010): first defined here
c-decl.o(.text+0x2ec0): multiple definition of `pushdecl'
decl.o(.text+0x3f4c): first defined here
c-decl.o(.text+0x3fac): multiple definition of `lookup_name_current_level'
decl.o(.text+0x6204): first defined here
c-decl.o(.text+0x3f68): multiple definition of `lookup_name'
decl.o(.text+0x61e4): first defined here
c-decl.o(.text+0x371c): multiple definition of `pushdecl_top_level'
decl.o(.text+0x48b8): first defined here
c-decl.o(.text+0x37b4): multiple definition of `implicitly_declare'
decl.o(.text+0x4f5c): first defined here
c-decl.o(.text+0x3ae4): multiple definition of `lookup_label'
decl.o(.text+0x5234): first defined here
c-decl.o(.text+0x3c04): multiple definition of `shadow_label'
decl.o(.text+0x53bc): first defined here
c-decl.o(.text+0x3d58): multiple definition of `getdecls'
decl.o(.text+0x5930): first defined here
c-decl.o(.text+0x3d78): multiple definition of `gettags'
decl.o(.text+0x5950): first defined here
c-decl.o(.text+0x45a8): multiple definition of `init_decl_processing'
decl.o(.text+0x6b90): first defined here
c-decl.o(.text+0x5a24): multiple definition of `shadow_tag'
decl.o(.text+0x8a54): first defined here
c-decl.o(.text+0x5bec): multiple definition of `groktypename'
decl.o(.text+0x8c70): first defined here
c-decl.o(.data+0x48): multiple definition of `debug_temp_inits'
decl.o(.data+0x20): first defined here
c-decl.o(.text+0x5d74): multiple definition of `start_decl'
decl.o(.text+0x8f1c): first defined here
c-decl.o(.text+0x60c4): multiple definition of `finish_decl'
decl.o(.text+0xab4c): first defined here
c-decl.o(.text+0x6608): multiple definition of `maybe_build_cleanup'
decl.o(.text+0x154dc): first defined here
c-decl.o(.text+0x9000): multiple definition of `xref_tag'
decl.o(.text+0x121ec): first defined here
c-decl.o(.text+0x920c): multiple definition of `grokfield'
decl2.o(.text+0x204c): first defined here
c-decl.o(.text+0x94a8): multiple definition of `finish_struct'
class.o(.text+0x6cf4): first defined here
c-decl.o(.text+0x9d00): multiple definition of `start_enum'
decl.o(.text+0x129bc): first defined here
c-decl.o(.text+0x9e04): multiple definition of `finish_enum'
decl.o(.text+0x12ab0): first defined here
c-decl.o(.text+0xa134): multiple definition of `build_enumerator'
decl.o(.text+0x12d1c): first defined here
c-decl.o(.text+0xa45c): multiple definition of `start_function'
decl.o(.text+0x13214): first defined here
c-decl.o(.text+0xaad0): multiple definition of `store_parm_decls'
decl.o(.text+0x13d54): first defined here
c-decl.o(.text+0xb620): multiple definition of `finish_function'
decl.o(.text+0x14300): first defined here
c-decl.o(.text+0xba68): multiple definition of `copy_lang_decl'
lex.o(.text+0xa228): first defined here
c-decl.o(.text+0x383c): undefined reference to `maybe_objc_check_decl'
c-decl.o(.text+0x63e4): undefined reference to `maybe_objc_check_decl'
c-decl.o(.text+0x6414): undefined reference to `maybe_objc_check_decl'
c-decl.o(.text+0x64b8): undefined reference to `maybe_objc_check_decl'
c-decl.o(.text+0x926c): undefined reference to `maybe_objc_check_decl'
c-decl.o(.text+0x9bf8): more undefined references to `maybe_objc_check_decl' follow
*** Error code 1

Stop.
*** Error code 1

Stop.