Date: Sat, 14 Jun 2003 17:27:04 +0200 From: Dag-Erling Smorgrav <des@ofug.org> To: arch@freebsd.org Subject: unbreaking alloca Message-ID: <xzp1xxw65o7.fsf@flood.ping.uio.no>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] I'd like to commit the attached patch (after suitable testing of course). It removes all mention of alloca(3) from cdefs.h, and instead modifies the declaration in stdlib.h so that GNU compilers see alloca(sz) defined to __builtin_alloca(sz) while other compilers (and linters) see a regular prototype. I would also like to add (at some future date) a link-time warning for alloca(3) similar to what we already have for gets(), mktemp() etc. DES -- Dag-Erling Smorgrav - des@ofug.org [-- Attachment #2 --] Index: sys/sys/cdefs.h =================================================================== RCS file: /home/ncvs/src/sys/sys/cdefs.h,v retrieving revision 1.70 diff -u -r1.70 cdefs.h --- sys/sys/cdefs.h 14 Jun 2003 06:01:35 -0000 1.70 +++ sys/sys/cdefs.h 14 Jun 2003 15:04:29 -0000 @@ -142,11 +142,6 @@ #define __section(x) __attribute__((__section__(x))) #endif #endif -#ifdef __GNUC__ -#define alloca(sz) __builtin_alloca(sz) -#else -#error FreeBSD alloca support needed for this compiler -#endif /* XXX: should use `#if __STDC_VERSION__ < 199901'. */ #if !(__GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3) Index: include/stdlib.h =================================================================== RCS file: /home/ncvs/src/include/stdlib.h,v retrieving revision 1.48 diff -u -r1.48 stdlib.h --- include/stdlib.h 12 Mar 2003 20:29:58 -0000 1.48 +++ include/stdlib.h 14 Jun 2003 15:06:02 -0000 @@ -222,7 +222,12 @@ extern void (*_malloc_message)(const char *, const char *, const char *, const char *); -void *alloca(size_t); /* built-in for gcc */ +#ifdef __GNUC__ +#define alloca(sz) __builtin_alloca(sz) +#else +void *alloca(size_t); +#endif + __uint32_t arc4random(void); void arc4random_addrandom(unsigned char *dat, int datlen);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?xzp1xxw65o7.fsf>
