I was using strdup and it triggered this warning in gnulib: _GL_WARN_ON_USE (strdup, "strdup is unportable - " "use gnulib module strdup for portability");
However the strdup module is deprecated according to modules/strdup: This module is obsolete. But you may want to use the strdup-posix module. So string.h should probably point to strdup-posix? But what is the purpose of the strdup module then? According to http://www.gnu.org/software/gnulib/manual/html_node/strdup.html the difference is that strdup-posix also sets errno correctly on mingw but the strdup module does not fix that bug. Can't we just rename strdup-posix to strdup? If the dependency on malloc-posix module is the problem, strdup.c could easily set errno itself if it gets a NULL back from malloc, couldn't it? I suspect strdup is one of the initial modules a new gnulib user would import, so this complexity might be confusing and I don't see the gain. /Simon