Subject: Re: alloca in the kernel
To: matthew green <mrg@eterna.com.au>
From: Lennart Augustsson <lennart@augustsson.net>
List: tech-kern
Date: 01/06/2002 03:03:25
alloca() is nasty, let's avoid it in the kernel.

    -- Lennart


matthew green wrote:

>    Line 227 of sys/arch/macppc/macppc/machdep.c reads 'ofmap =
>    alloca(ofmaplen);', which in turn causes
>
>         cc1: warnings being treated as errors
>         /vol/NetBSD/build/src/sys/arch/macppc/macppc/machdep.c: In function `initppc':
>         /vol/NetBSD/build/src/sys/arch/macppc/macppc/machdep.c:227: warning: implicit
>    declaration of function `alloca'
>         /vol/NetBSD/build/src/sys/arch/macppc/macppc/machdep.c:227: warning:
>    assignment makes pointer from integer without a cast
>         *** Error code 1
>
>    when cross compiling using build.sh on NetBSD/i386. This is all with -current.
>
>    I have checked, and this is the only use of alloca in any kernel code in any
>    NetBSD port. Should it be replaced with malloc/free?
>
> does this file include libkern.h?  alloca() recently moved to being
> a GCC builtin #define, and we use cc -ffreestanding, and files using
> alloca() need to include libkern.h.