adsl/pppoe no longer connecting on 5.1

Garrett Wollman wollman at lcs.mit.edu
Thu Jun 12 09:17:40 PDT 2003


<<On Thu, 12 Jun 2003 15:38:49 +1000, Tim Robbins <tjr at freebsd.org> said:

> Misbehaving in what way? CSTD=c99 causes gcc to use alloca() from
> libc instead of its builtin version. Perhaps alloca() in libc is
> broken -- any bugs in it would have been covered up by gcc until
> now.

alloca() in libc is *fundamentally* broken.  Only the compiler can
know the current state of the stack frame, and that information is not
necessarily available to library functions.  On some architectures
it is not even possible for a library function to adjust its caller's
stack frame, which is why alpha, ia64, and sparc64 don't have an
alloca.S (nor an alloca.c for that matter).

-GAWollman



More information about the freebsd-current mailing list