best way to work around <malloc.h> vs <stdlib.h> ?
Jeremy Messenger
mezz7 at cox.net
Tue Aug 19 18:12:27 UTC 2008
On Tue, 19 Aug 2008 12:26:31 -0500, Luigi Rizzo <rizzo at iet.unipi.it> wrote:
> A fair amount of third party software in ports still uses <malloc.h>
> which in our system is like this:
>
> /* $FreeBSD: src/include/malloc.h,v 1.5 2001/11/07 23:14:31 obrien Exp
> $ */
> #if __STDC__
> #error "<malloc.h> has been replaced by <stdlib.h>"
> #else
> #include <stdlib.h>
> #endif
>
> What is the best way to disable the error without an
> explicit patch (there are over 200 patchfiles in ports
> just doing that) ?
I think patch it is best, because if I understand it corrects is that
malloc() in stdlib.h is standard of ANSI C. Correct me if I am wrong.
However, I don't see anything wrong with patch. You can simple use
wildcard (*.c) or use find(1) to find files to replace the malloc.h ->
stdlib.h by use REINPLACE_CMD without have to create multi-file patch.
Cheers,
Mezz
> I tried the following
>
> + CPPFLAGS += -U__STDC__
> seems to work, though it gives some warnings because a
> built-in define is undefined. Also i am not sure if there
> are other parts of the system that are affected;
>
> + CPPFLAGS += -traditional-cpp
> is also reported to unset __STDC__, but it generates an
> independent set of warnings and errors;
>
> Any other ideas ?
>
> cheers
> luigi
--
mezz7 at cox.net - mezz at FreeBSD.org
FreeBSD GNOME Team
http://www.FreeBSD.org/gnome/ - gnome at FreeBSD.org
More information about the freebsd-ports
mailing list