--- Begin Message ---
Subject: |
Re: findutils-4.2.10 build feedback |
Date: |
Sat, 18 Dec 2004 10:32:53 -0700 (MST) |
>> ...
>> Typescript.spe171.testdrive.hp.com.2004.12.09.11.03.19:
>>
>> The gl_CHECK_TYPE_STRUCT_DIRENT_D_INO problem is fixed in my local
>> code, but I'll send a patch upstream to gnulib. This is really
>> worrying though:
>>
>> gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/local/include -g -O2 -c
>> getline.c
>> In file included from getline.c:26:
>> getline.h:32: error: conflicting types for `gnu_getline'
>> /usr/local/include/stdio.h:62: error: previous declaration of
>> `gnu_getline'
>> getline.h:35: error: conflicting types for `getdelim'
>> /usr/local/include/stdio.h:61: error: previous declaration of `getdelim'
>>
>> What on earth are they doing with /usr/local/include/stdio.h?
>> ...
Here is where the conflict arises. getline.h uses int return values:
% sed -n -e 33,38p getline.h
int
getline PARAMS ((char **_lineptr, size_t *_n, FILE *_stream));
int
getdelim PARAMS ((char **_lineptr, size_t *_n, int _delimiter, FILE
*_stream));
However, /usr/local/include/stdio.h uses size_t return values:
% sed -n -e 61,62p /usr/local/include/stdio.h
extern size_t getdelim __((char **, size_t *, int, FILE *));
extern size_t getline __((char **, size_t *, FILE *));
The preamble of that file begins
* Copyright (c) 1999, 2000, 2002 Compaq Computer Corporation.
The problem is the old one of defining prototypes in user code of
vendor-provided library routines that may have prototypes in system
header files that disagree with those in the user code. As always,
configure should be checking whether those user prototypes are needed.
If I force a different include file order, compilation succeeds:
% gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/include -g -O2 -c
getline.c
When I tried to force a rebuild with CFLAGS=-I/usr/include, I found
that CFLAGS was not correctly propagated to subdirectory Makefiles:
% make CFLAGS='-g -O2 -I/usr/include'
That problem should be fixed. Instead, I had to do this:
% env CC='gcc -I/usr/include' make -e
That produced a successful build. I then ran the check: it completed,
but of course did nothing useful since dejagnu is not available.
The machines in the HP benchmark lab don't have enough disk space, so
they've asked the guest users not to leave much stuff in their
directories; as a consequence, after doing test builds there, I never
run the installs, and I delete the build directory as soon as I have
the logs safely moved to my system at Utah.
-------------------------------------------------------------------------------
- Nelson H. F. Beebe Tel: +1 801 581 5254 -
- University of Utah FAX: +1 801 581 4148 -
- Department of Mathematics, 110 LCB Internet e-mail: address@hidden -
- 155 S 1400 E RM 233 address@hidden address@hidden -
- Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe -
-------------------------------------------------------------------------------
--- End Message ---