From owner-freebsd-current Sun Apr 4 22:11:44 1999 Delivered-To: freebsd-current@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [209.157.86.2]) by hub.freebsd.org (Postfix) with ESMTP id E931914F9A for ; Sun, 4 Apr 1999 22:11:42 -0700 (PDT) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id WAA06171; Sun, 4 Apr 1999 22:08:29 -0700 (PDT) (envelope-from dillon) Date: Sun, 4 Apr 1999 22:08:29 -0700 (PDT) From: Matthew Dillon Message-Id: <199904050508.WAA06171@apollo.backplane.com> To: Peter Jeremy Cc: andreas@klemm.gtn.com, freebsd-current@FreeBSD.ORG Subject: Re: different systat -vmstat output when using egcs to compile kernel References: <99Apr5.110314est.40323@border.alcanet.com.au> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG :> 1 1 22 407 2 2533 456 264 1 13908 wire 243 \nclk0 irq :> ^^ !!! : :I recognize that from gcc-2.8.1: The cpp behaviour changed and resulted :in the DEVICE_NAMES macro in vector.h being incorrectly expanded. I :suspect the same `bug' is in EGCS. : :The problem is that cpp (from gcc 2.8.1) _does_not_ remove :backslash-newline sequences from string constants (and maybe elsewhere :as well). This causes problems with the DEVICE_NAMES macro defined in :vector.h and used in vector.s. I have reported this to bug-gcc (in :mid-June) but haven't seen any response. : :At this time, I don't know of any way to disable this - the only work- :around is to use a gcc-2.7.x derived cpp (eg the standard cpp). This :implies changing NORMAL_S and DRIVER_S in /sys/i386/conf/Makefile.i386 :to explicitly use the old (2.7.2.1-derived) cpp in front of as. I suggest using ANSI string constants instead of K&R string constants. This is perfectly legal: char *s = "abcdefghi"; char *s = "abc" "def" "ghi"; char *s = "abc" "def" "ghi"; :Given that it seems unlikely that we're going to get a fix in either :egcs or gas in a hurry, our options appear to be: :1) Keep the gcc2.7.2 cpp around for pre-processing .S :2) switch to m4 (yuk) :3) change config to work around the bug. :4) write a sed (or similar script) to pre-process vector.s : :Peter -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message