Jim Meyering <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] (Bob Proulx) wrote: > >> Jim Meyering wrote: >>> Check out the red columns here: >>> >>> http://proulx.com:9000/ >>> >>> Maybe a system-provided mempcpy macro is causing trouble? >>> ... >>> cc -I. -Ae -O -c mempcpy.c >>> cc: "string.h", line 39: error 1000: Unexpected symbol: "__dest". >>> cc: "string.h", line 39: error 1000: Unexpected symbol: "__src". >>> cc: "string.h", line 39: error 1573: Type of "__src" is undefined due to an >>> illegal declaration. >> >> Line 39 in the file is this: >> >> void *mempcpy (void *restrict __dest, void const *restrict __src, size_t >> __n); > > Hi Bob, > > Thanks for the info. > Can I get to the build directory for one of the losing systems? > Or just get a copy of its config.log? > > That should tell us why the configure-time check for restrict isn't working.
Actually restrict-detection is working just fine. The problem is that "config.h" isn't included. I've changed mempcpy.c to include it before <string.h>. I have mixed feelings. The gnulib convention is to require inclusion of config.h before all else. Maybe we should see this as a way to enforce that :) But anything that delays finding portability problems to buildbot runs is a hint that we need better process. coreutils' automated check for config.h inclusion wouldn't have caught this one, since mempcpy.c has long been on the exclusion list. 2007-01-27 Jim Meyering <[EMAIL PROTECTED]> * lib/mempcpy.c: Include <config.h> before <string.h>. This fixes a compilation error on HP-UX, due to the system's "restrict"-using mempcpy prototype. Index: lib/mempcpy.c =================================================================== RCS file: /sources/gnulib/gnulib/lib/mempcpy.c,v retrieving revision 1.3 diff -u -p -r1.3 mempcpy.c --- lib/mempcpy.c 26 Jan 2007 22:16:55 -0000 1.3 +++ lib/mempcpy.c 27 Jan 2007 07:34:19 -0000 @@ -15,6 +15,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#include <config.h> + /* Specification. */ #include <string.h>