On 13 August 2016 at 14:58, Eli Zaretskii <[email protected]> wrote: >> The gnulib definition comes in from the "realloc-posix" module, which >> is a dependency of "getdelim", which in turn is a dependency of >> "getline", which we ask for explicitly. >> >> The purpose of realloc-posix is for errno to be set properly to >> ENOMEM. The dependency was introduced on 2007-09-09. >> (http://git.savannah.gnu.org/cgit/gnulib.git/log/modules/getdelim). An >> email here about it: >> http://lists.gnu.org/archive/html/bug-gnulib/2007-09/msg00067.html >> >> I think that the Perl realloc is using the system realloc directly, >> and gnulib realloc (rpl_realloc) isn't being used at all. >> >> The only solution I can think of is removing the dependency on >> "realloc-posix" by "getdelim". "getdelim" doesn't appear to check >> errno itself for ENOMEM - "realloc-posix" would be for calling code >> that wanted to see what errno was after getdelim was called. > > Can we instead "#under realloc" in some suitable place, like before > including the Perl headers? I think this will shut up the warning. >
Yes, I think "#undef realloc" would work, and would do nothing if realloc hadn't been previously #define'd. > Or do we need the Gnulib redefinition in the XSpara sources? No. Most of all we need to use the same function throughout (i.e. the Perl function). Otherwise there will be "problems". We don't rely on the value of errno in the XSParagraph sources.
