Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Jan 2002 18:31:39 -0700 (MST)
From:      "M. Warner Losh" <imp@village.org>
To:        tlambert2@mindspring.com
Cc:        deatley@apple.com, arch@FreeBSD.ORG
Subject:   Re: __P macro question
Message-ID:  <20020130.183139.84750367.imp@village.org>
In-Reply-To: <3C5895A5.D65A3ADB@mindspring.com>
References:  <63609.1012386890@axl.seasidesoftware.co.za> <3C5895A5.D65A3ADB@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <3C5895A5.D65A3ADB@mindspring.com>
            Terry Lambert <tlambert2@mindspring.com> writes:
: 
: M. Warner Losh wrote:
: > 2) Compat with *BSD: NetBSD is agressively removing __P.  OpenBSD is
: >    in places and not in others.  BSDi doesn't give us code anymore.
: >    Diff against Net2 is impossible.  This has ceased to be a
: >    compelling argument.
: 
: I guess you aren't an embedded systems vendor with a
: version of FreeBSD imported into their CVS repository,
: who needs to be able to track bug fixes, but not large
: architectural changes byt using "diff" instead of
: "cvs diff".

I am an embedded systems vendor.  A new version of ssh or groff is
much more of a pita than this change because that has files
added/deleted from the tree.  The worst that can happen with this
change is minor conflicts...  I don't think it will be an issue.

: > 4) What about my amiga: gcc works on the amgia.  Bootstrap with
: >    NetBSD/amiga.
:
: This particular case refers to an Amiga 1000 with a 68010,
: which is not capable of running NetBSD.  Yes, I agree that
: it is not a compelling argument, it was intended to be a
: member of a class of arguments.  So even if it is easy to
: invalidate the Amiga argument itself, it says nothing about
: the class.

Cross compilers exist.  unprotoize exists for use with K&R compilers.
However, K&R compilers have several features of modern C missing.
	 1) no long long support
	 2) no void support
	 3) no const support
	 4) no long double support
	 5) "string " "concat" doesn't work
	 6) All struct member names are from one global name space
	 7) Many small, but potentially significant minor changes
	    in semantics make it difficult to ensure that the code
	    will work in a K&R world.
	 8) Library support is radically different in K&R.  free(NULL)
	    was fatal, not explicitly allowed.  Different ways of
	    doing tty manip, etc are all barriers to entry short of
	    a full port.
	 9) no support for prototypes
...

FreeBSD uses these all over the place, making a port of most of the
FreeBSD source to a K&R compiler hard.  The FreeBSD doesn't support
K&R compilers, so it shouldn't pretend to do so.

: I wish you would at least gain the consensus of the OpenBSD
: and NetBSD projects, as well.

NetBSD already is agressively moving to pure ANSI C.  As near as I can
tell, OpenBSD hasn't made up its mind yet.  Maybe this will help them.

Warner

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020130.183139.84750367.imp>