From owner-freebsd-hackers Sat Apr 15 17:20:07 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id RAA09404 for hackers-outgoing; Sat, 15 Apr 1995 17:20:07 -0700 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id RAA09379 for ; Sat, 15 Apr 1995 17:19:54 -0700 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id KAA09761; Sun, 16 Apr 1995 10:17:14 +1000 Date: Sun, 16 Apr 1995 10:17:14 +1000 From: Bruce Evans Message-Id: <199504160017.KAA09761@godzilla.zeta.org.au> To: freebsd-hackers@FreeBSD.org, j@uriah.heep.sax.de Subject: Re: 90's compilers Sender: hackers-owner@FreeBSD.org Precedence: bulk >> As I feel that "protection" for old and braindead compilers at the >> cost of higher obfuscation is no longer worth it. >Same opinion for me. And once i had to tweak that fancy boot code, >the non-declarations bothered me too much, so i've added them without >those funny _P()'s. _P() doesn't bother me at all (if it is correctly spelled and punctuated as __P(()) :-). What do you think of the other klupges in ? __dead* and __pure* can't be avoided. >The _P()'s cannot go from the standard header files, however. They >are required there for old programs that need to be compiled with >-traditional (since the `porter' is too lazy to resolve the conflicts >like ``mktemp("foooXXX")''). Nope, prototypes work with `gcc -traditional'. They are there for other K&R1 compilers. They don't help much because they are not used in a few headers. K&R1 and non-gcc compilers fail to compile most of our sources for the more fundament reason that declares things as having the bogus type `long long'. `gcc -pedantic -Werror' fails too. The latter problem can be fixed by using __attribute((mode(DI))) as was done in the 1.1.5 . I have problems parsing this and so does gcc :-). gcc dumps core for int foo(void) __attribute((mode(DI))) { return 1; } __attribute(()) seems to work better in typedefs: typedef int quad_t __attribute((mode(DI))); quad_t foo(void) { return 1; } Bruce