Disable use of gcc poison pragmas

Needs a rethink to avoid use of poisoned macros in system headers.
I see this on Ubuntu 16.04:

gcc -DHAVE_CONFIG_H   -I../Source/Include -I../Source/CParse
-I../Source/Include -I../Source/DOH -I../Source/CParse
-I../Source/Doxygen -I../Source/Preprocessor -I../Source/Swig
-I../Source/Modules   -g -O2 -Wall -W -pedantic -MT DOH/base.o -MD -MP
-MF $depbase.Tpo -c -o DOH/base.o DOH/base.c &&\
mv -f $depbase.Tpo $depbase.Po
In file included from /usr/include/string.h:630:0,
                 from DOH/dohint.h:21,
                 from DOH/base.c:15:
/usr/include/x86_64-linux-gnu/bits/string2.h:1282:19: error: attempt to
use poisoned "calloc"
        ? (char *) calloc ((size_t) 1, (size_t) 1)        \
                   ^
/usr/include/x86_64-linux-gnu/bits/string2.h:1284:32: error: attempt to
use poisoned "malloc"
      char *__retval = (char *) malloc (__len);       \
                                ^
/usr/include/x86_64-linux-gnu/bits/string2.h:1302:19: error: attempt to
use poisoned "calloc"
        ? (char *) calloc ((size_t) 1, (size_t) 1)        \
                   ^
/usr/include/x86_64-linux-gnu/bits/string2.h:1308:26: error: attempt to
use poisoned "malloc"
      __retval = (char *) malloc (__len);        \
                          ^
This commit is contained in:
William S Fulton 2022-03-12 10:47:01 +00:00
commit 77853770bd

View file

@ -496,11 +496,15 @@ extern void DohMemoryDebug(void);
/* This works around bison's template checking if malloc and free are defined,
* which triggers GCC's poison checks.
*/
/*
# pragma GCC poison malloc free
# pragma GCC poison realloc calloc
*/
# endif
/* Use Exit() instead (which will remove output files on error). */
/*
# pragma GCC poison abort exit
*/
#endif
#endif /* DOH_H */