Bug 151052

Summary: httpd isn't rebuildable against Rawhide
Product: [Fedora] Fedora Reporter: Robert Scheck <redhat-bugzilla>
Component: httpdAssignee: Joe Orton <jorton>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: jakub
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-03-20 10:38:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Robert Scheck 2005-03-14 14:06:29 UTC
Description of problem:
httpd isn't rebuildable against Rawhide, fails with this error messages:

--- snipp ---
[...]
/usr/lib/apr/build/libtool --silent --mode=compile gcc  -pthread  -O2 -Wall -g 
-pipe -Wp,-D_FORTIFY_SOURCE=2 -m32 -march=i386 -mtune=pentium4  -DLINUX=2 -
D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER -
DSSL_EXPERIMENTAL_ENGINE  -I/usr/include/apr-0 -I. -
I/usr/src/redhat/BUILD/httpd-2.0.53/prefork/include -
I/usr/src/redhat/BUILD/httpd-2.0.53/os/unix -I/usr/src/redhat/BUILD/httpd-
2.0.53/server/mpm/prefork -I/usr/src/redhat/BUILD/httpd-2.0.53/modules/http -
I/usr/src/redhat/BUILD/httpd-2.0.53/modules/filters -
I/usr/src/redhat/BUILD/httpd-2.0.53/modules/proxy -
I/usr/src/redhat/BUILD/httpd-2.0.53/include -I/usr/src/redhat/BUILD/httpd-
2.0.53/modules/generators -I/usr/src/redhat/BUILD/httpd-2.0.53/prefork/server -
I/usr/include/openssl -I/usr/kerberos/include -I/usr/src/redhat/BUILD/httpd-
2.0.53/modules/ssl -I/usr/src/redhat/BUILD/httpd-2.0.53/modules/dav/main -
DAP_FNAME=\"core.c\" -fPIE -prefer-non-pic -static -c 
/usr/src/redhat/BUILD/httpd-2.0.53/server/core.c && touch core.lo
/usr/src/redhat/BUILD/httpd-2.0.53/server/protocol.c:237:59: error: macro 
"read" passed 4 arguments, but takes just 3
/usr/src/redhat/BUILD/httpd-2.0.53/server/protocol.c: In function 
'ap_rgetline_core':
/usr/src/redhat/BUILD/httpd-2.0.53/server/protocol.c:237: warning: assignment 
makes integer from pointer without a cast
/usr/src/redhat/BUILD/httpd-2.0.53/server/protocol.c:349:59: error: macro 
"read" passed 4 arguments, but takes just 3
/usr/src/redhat/BUILD/httpd-2.0.53/server/protocol.c:349: warning: assignment 
makes integer from pointer without a cast
/usr/src/redhat/BUILD/httpd-2.0.53/server/protocol.c:324: warning: unused 
variable 'len'
/usr/src/redhat/BUILD/httpd-2.0.53/server/protocol.c:1181:59: error: macro 
"read" passed 4 arguments, but takes just 3
/usr/src/redhat/BUILD/httpd-2.0.53/server/protocol.c: In function 
'ap_content_length_filter':
/usr/src/redhat/BUILD/httpd-2.0.53/server/protocol.c:1181: warning: assignment 
makes integer from pointer without a cast
/usr/src/redhat/BUILD/httpd-2.0.53/server/protocol.c:1175: warning: unused 
variable 'ignored'
make[2]: *** [protocol.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/usr/src/redhat/BUILD/httpd-2.0.53/prefork/server'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/redhat/BUILD/httpd-2.0.53/prefork/server'
make: *** [all-recursive] Error 1
Fehler: Bad exit status from /var/tmp/rpm-tmp.49220 (%build)
--- snapp ---

Version-Release number of selected component (if applicable):
httpd-2.0.53-5

How reproducible:
Everytime, try to rebuild httpd

Actual results / Expected results:
Should be rebuildable.

Comment 1 Joe Orton 2005-03-19 22:11:08 UTC
Jakub, are these read() macros going to stay in the libc headers with
_FORTIFY_SOURCE defined?  I can't fix this problem without completely changing
the API, which is just not going to happen.

Comment 2 Joe Orton 2005-03-19 22:14:12 UTC
Oh, actually I see there is an easy workaround to avoid the macro being
expanded, so probably it *can* be fixed non-intrusively.  But still, the
question above stands: are the macros going to stay?

Comment 3 Jakub Jelinek 2005-03-19 23:47:19 UTC
glibc-2.3.4-15 (currently building) will stop using function-like macros for
fgets, fgets_unlocked, recv, recvfrom, read, pread, pread64, readlink, getcwd
and getwd.  Macros for
memcpy/memset/mempcpy/memmove/strcpy/stpcpy/bcopy/bzero/strcat/strncat/strncpy/strncat/gets and a bunch of others are going to stay.
Still, no guarantees it will not be introduced again when needed, or some other
libc will define them as macros.  Better fix it in upstream package.

Comment 4 Joe Orton 2005-03-20 10:38:40 UTC
Even the simple fix to avoid the macro-expansion of a parameterized read() macro
is not sufficient to be POSIXly-correct, I guess; I don't see a good argument
that it's worth breaking the API for this any time soon.  Marking as WONTFIX
since glibc has been fixed.