This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Re: fedora9 with its gcc 4.3 doesn't compile nginx 0.6.3x while fedora8 with gcc 4.1.2 does


Hi Andrew,
yes, that is just what you said, or at least author has now issued a patch which
adds that inclusion in to ngx_linux_config.h, superbly suggested, thanks


but what still puzzles me, as said earlier I'm not a programmer and merely started my acquaintance
with rpmdevtools, so how come that this same source code gets built with rpmbuild
on the very same machine that makefile fails to compile???
can you Andrew at least roughly point me?
cheers


ps. file eclosed herewith if anyone struggles with compiling nginx on f9


Andrew Haley wrote:
Pawel Eljasz wrote:
Hi Andrew,
I don't think so, there is an inclusion of what you mention, not
directly in the file which fails
besides, what I said, why it's just fine on fedora8 but not f9, and both
sets are pretty much
default distros, surely with regards to the compiler and related stuff
and to me, but with reservation I ain't a programmer,
declaration/definition of IOV_MAX is
in /usr/include/bits/stdio_lim.h
isn't it?

Yes. Defining IOV_MAX where it shouldn't be defined was a bug that we fixed. It's important to realize that defining a macro where it shouldn't be defined is a bug, just as not defining a macro where it should be defined. In this case IOV_MAX shouldn't be defined unless _XOPEN_SOURCE is defined.

cheers
and Hi Tom,
I actually asked them before I posted here, and creator of the program
said that is
highly probable it's related to my build environment
the same code works on fedora8
cheers

and! I grabbed source version from devel repo, nginx-0.6.31-1.fc10.src.rpm
I could build a rpm from it on f9, so? what is that, fedora patches?
if yes, which part? if I may ask?

It's hard to tell for sure, but ngx_posix_config.h does


#define _XOPEN_SOURCE

which is enought to make a simple test work:


#define _XOPEN_SOURCE


#include <stdio.h>
#include <limits.h>

int main()
{
  printf ("%d\n", IOV_MAX);
  return 0;
}


Andrew.


Index: src/os/unix/ngx_linux_config.h
===================================================================
--- src/os/unix/ngx_linux_config.h	(revision 1337)
+++ src/os/unix/ngx_linux_config.h	(working copy)
@@ -47,6 +47,7 @@
 
 #include <time.h>               /* tzset() */
 #include <malloc.h>             /* memalign() */
+#include <limits.h>             /* IOV_MAX */
 #include <sys/ioctl.h>
 #include <sys/sysctl.h>
 #include <crypt.h>

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]