Hi,
On Fri, 8 Jan 2010, Colm MacCárthaigh wrote:
On Fri, Jan 8, 2010 at 7:50 PM, Brian Havard <[email protected]> wrote:
Colm MacCárthaigh wrote:
There is a 1.3.42 release candidate for testing, and voting, at;
http://people.apache.org/~colm/1.3.42/
I just tried building on a fairly stock Ubuntu Karmic system and ran
into this compile error:
gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE
-DUSE_HSREGEX -DNO_DL_NEEDED `../apaci` htpasswd.c
htpasswd.c:101: error: conflicting types for ?getline?
/usr/include/stdio.h:651: note: previous declaration of ?getline? was here
So getline() is a system provided function here.
I used the top level configure with /bin/sh changed to /bin/bash as
mentioned elsewhere, no options.
On fixing this I found that htdigest.c and logrotate.c have the same
problem.
The obvious fix would be to namespace protect these getline
implementations,
Thanks for the report - disinclined to fix anything that isn't a
regression from 1.3.41 though. This is a security release, for
upgraders only - so presumably people who've managed to work around
these problems. Making life easy for new users is a deliberate
non-goal :-) 2.2 is much much better for new users.
Just for information: Only out of curiosity (we use 2.2) I tried to
compile 1.3.42 on a current OpenSUSE 11.2 system and found also the above
described compile problem (but on OpenSUSE 11.1 compiling is ok).
The orign seems to lie in the used newer "glibc"-library respectively the
changed file "stdio.h". In the "glibc"-ChangeLog I found
2009-02-26 Ulrich Drepper <[email protected]>
* libio/stdio.h: dprintf, fmemopen, getdelim, getline, open_memstream,
and vdprintf are in POSIX 2008.
The above patch would be better but for clarification I added in the Linux
block of src/include/ap_config.h the following lines
/* glibc 2.10 and later define getline in stdio.h if __USE_XOPEN2K8
* is defined but that conflicts with getline definitions in
* support/htpasswd.c, support/htdigest.c and support/logresolve.c.
*/
#if (__GLIBC__ == 2 && __GLIBC_MINOR__ > 9)
#undef __USE_XOPEN2K8
#endif
and it works also (but I am not a C expert).
But I accept the arguments of Colm and deleted the apache_1.3.42 directory
but I expect some according bug reports after releasing 1.3.42 :-(
Regards,
Jens