Date: Wed, 11 Nov 1998 00:25:31 +1030 (CST) From: Kris Kennaway <kkennawa@physics.adelaide.edu.au> To: "Jordan K. Hubbard" <jkh@time.cdrom.com> Cc: grog@lemis.com, current@FreeBSD.ORG Subject: world stuff which doesnt compile with egcs (was Re: newer gcc?) Message-ID: <Pine.OSF.4.05.9811110010270.19783-100000@bragg> In-Reply-To: <Pine.OSF.4.05.9811101205130.9655-100000@spectrum.physics.adelaide.edu.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 10 Nov 1998, Kris Kennaway wrote: > On Mon, 9 Nov 1998, Jordan K. Hubbard wrote: > > > > The reason i was asking is that i may bmake it and stick it into my tree, > > > > That's a bit premature. I'd be more interested if you could even build > > the world from egcs installed in /usr/local. > > >From memory (I don't have the list with me), the following things do not > compile with the current egcs port and die with various errors: > > lib/libc > lib/libc_r > lib/libstand > games/bs > games/<one other one> games/rogue sbin/vinum (one simple patch included, doesnt fix the second problem) libexec/rtld-elf/ > gnu/lib/libg++ > gnu/lib/libstd++ > gnu/usr.bin/groff > sys/<lots of stuff> - the boot code dies with errors, and the modules die > because of the -elf directive or something This was incorrect: the only thing which fails to compile now is sys/i386/loader. The rest (including modules, etc) must have been transient failures at the time I tested which have since been fixed. Some of the modules give me warnings about extra format arguments as does the kernel when I compile it under ELF; will I notice anything different with such an egcs-compiled module (or kernel)? > lkm/* because of -aout Following is a list of the exact point at which the above die. One of the vinum errors was caused by what I presume to be a typo'ed variable (I couldnt find any definition of the datatype it was barfing on). The other one I couldnt find any easy fix in my quick browsing of the code (hey, I'm a physicist, not a C programmer! :) - no doubt Greg will be able to identify any simple solution. Note that assert.c seems to cause problems whenever it's used (libc, libc_r, libstand). The three gnu breakages are caused by differences in the c++ support between gcc and egcs, apparently (I didnt bother to include the output figuring probably no-one cared :) ************ *** lib/libc ************ --- assert.o --- /usr2/src/lib/libc/../libc/gen/assert.c:43: parse error before string constant /usr2/src/lib/libc/../libc/gen/assert.c:46: parse error before `{' /usr2/src/lib/libc/../libc/gen/assert.c:50: conflicting types for `abort' /usr/include/stdlib.h:85: previous declaration of `abort' /usr2/src/lib/libc/../libc/gen/assert.c:50: warning: data definition has no type or storage class /usr2/src/lib/libc/../libc/gen/assert.c:52: parse error before `}' *** Error code 1 ************** *** lib/libc_r ************** - as for libc ************ *** games/bs ************ (probably egcs breakage?) cc -O2 -pipe -mpentium -march=pentium -c bs.c {standard input}: Assembler messages: {standard input}:650: Error: base/index register must be 32 bit register {standard input}:651: Error: base/index register must be 32 bit register {standard input}:652: Error: base/index register must be 32 bit register {standard input}:653: Error: base/index register must be 32 bit register {standard input}:654: Error: base/index register must be 32 bit register *************** *** games/rogue *************** cc -O2 -pipe -mpentium -march=pentium -DUNIX -fwritable-strings -c message.c message.c:56: initializer element for `msgs[0]' is not constant message.c:56: initializer element for `msgs[1]' is not constant message.c:56: initializer element for `msgs[2]' is not constant message.c:56: initializer element for `msgs[3]' is not constant message.c:56: initializer element for `msgs[4]' is not constant ************** *** sbin/vinum ************** In file included from /usr2/src/sys/modules/vinum/../../../lkm/vinum/vinumhdr.h:91, from /usr2/src/sys/modules/vinum/../../../lkm/vinum/request.c:44: /usr2/src/sys/modules/vinum/../../../lkm/vinum/vinumext.h:44: warning: type defaults to `int' in declaration of `debug' /usr2/src/sys/modules/vinum/../../../lkm/vinum/request.c: In function `vinumstart': /usr2/src/sys/modules/vinum/../../../lkm/vinum/request.c:209: incompatible type for argument 2 of `logrq' /usr2/src/sys/modules/vinum/../../../lkm/vinum/request.c: In function `launch_requests': /usr2/src/sys/modules/vinum/../../../lkm/vinum/request.c:386: incompatible type for argument 2 of `logrq' /usr2/src/sys/modules/vinum/../../../lkm/vinum/request.c:414: incompatible type for argument 2 of `logrq' *** Error code 1 cc -I/usr2/src/sys/modules/vinum/../../../lkm/vinum -O -g -I/usr/include/machine -DDEBUG -Wall -Wno-unused -Wno-parentheses -DKERNEL -Wreturn-type -Wcomment -Wredundant-decls -Wimplicit -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wuninitialized -Wformat -ansi -DKLD_MODULE -nostdinc -I- -I/usr2/src/sys/modules/vinum/../../../lkm/vinum -I/usr/include/machine -I/usr2/src/sys/modules/vinum -I/usr2/src/sys/modules/vinum/@ -c /usr2/src/sys/modules/vinum/../../../lkm/vinum/util.c In file included from /usr2/src/sys/modules/vinum/../../../lkm/vinum/vinumhdr.h:91, from /usr2/src/sys/modules/vinum/../../../lkm/vinum/util.c:41: /usr2/src/sys/modules/vinum/../../../lkm/vinum/vinumext.h:44: warning: type defaults to `int' in declaration of `debug' /usr2/src/sys/modules/vinum/../../../lkm/vinum/util.c: In function `VolState': /usr2/src/sys/modules/vinum/../../../lkm/vinum/util.c:157: conversion to incomplete type --- util.c~ Wed Sep 16 15:26:21 1998 +++ util.c Tue Nov 10 23:31:45 1998 @@ -154,7 +154,7 @@ int i; for (i = 0; i < STATECOUNT(vol); i++) if (strcmp(text, volstatetext[i]) == 0) /* found it */ - return (enum volstate) i; + return (enum volumestate) i; return -1; } gnu/lib/libg++ gnu/lib/libstdc++ gnu/usr.bin/groff ********************* *** libexec/rtld-elf/ ********************* map_object.o(.text+0x107): undefined reference to `__eprintf' ******************* *** sys/i386/loader ******************* cc -nostdlib -static -Ttext 0x1000 -o loader.sym /usr2/src/sys/boot/i386/loader/../btx/lib/crt0.o main.o conf.o bcache.o boot.o commands.o console.o devopen.o interp.o interp_backslash.o interp_parse.o load_aout.o load_elf.o ls.o misc.o module.o panic.o isapnp.o pnp.o vers.o -lstand /usr2/src/sys/boot/i386/loader/../libi386/libi386.a -lstand cc: 0x1000: No such file or directory **************** *** lib/libstand **************** assert.c:33: parse error before string constant assert.c:36: warning: type defaults to `int' in declaration of `exit' assert.c:36: warning: data definition has no type or storage class assert.c:37: parse error before `}' lkm/ (lack of -aout directive for egcs) Kris To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.OSF.4.05.9811110010270.19783-100000>