Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Jun 2003 11:50:39 +1000
From:      Tim Robbins <tjr@FreeBSD.ORG>
To:        Dag-Erling Smorgrav <des@ofug.org>
Cc:        Peter Wemm <peter@FreeBSD.org>
Subject:   Re: cvs commit: src/share/mk bsd.sys.mk
Message-ID:  <20030614115039.A30692@dilbert.robbins.dropbear.id.au>
In-Reply-To: <xzp65n9a9ga.fsf@flood.ping.uio.no>; from des@ofug.org on Sat, Jun 14, 2003 at 12:39:33AM %2B0200
References:  <200306132154.h5DLsL4t018474@repoman.freebsd.org> <xzp65n9a9ga.fsf@flood.ping.uio.no>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jun 14, 2003 at 12:39:33AM +0200, Dag-Erling Smorgrav wrote:

> Peter Wemm <peter@FreeBSD.org> writes:
> >   Log:
> >   We cannot use c99 on amd64 either due to lack of alloca().  libc:strptime()
> >   uses alloca() and alloca is impossible to implement as a callable function
> >   on amd64.  It has to be a compiler builtin.  Note that the bigger problem
> >   is that libc is not c99 clean internally.
> 
> #define alloca(sz) __builtin_alloca(sz)

That would be fine in the __GNUC__ >= 2 && __BSD_VISIBLE case.

For the other cases, I think we should also take the alloca() implementation
from contrib/amd/libamu/alloca.c and throw out lib/libc/i386/gen/alloca.S.
That way we get GCC's fast and conventional alloca() implementation for
!CSTD=c?9 programs, and a slower alloca() that uses the heap and sometimes
leaks memory for CSTD=c?9 programs (and programs that are compiled with
non-GCC compilers without their own alloca() implementation).

> and please remove CSTD?=c99 from bsd.sys.mk, it was never intended to
> be used that way.

I agree.


Tim



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