List:General Discussion« Previous MessageNext Message »
From:Joerg Bruehe Date:July 24 2006 6:22pm
Subject:Re: Compilation Failure
View as plain text  
Hi Ben, all!


Ben Clewett wrote (re-ordered):
> Chris,
> 
> Chris White wrote:
>> On Monday 24 July 2006 08:36 am, Ben Clewett wrote:
>>> Making all in storage/archive
>>>          if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include
>>> -I../../include       -DDBUG_OFF -O2 -mpowerpc64 -mminimal-toc -maix64
>>> -Wa,-many   -MT azio.o -MD -MP -MF ".deps/azio.Tpo" -c -o azio.o azio.c;
>>>   then mv -f ".deps/azio.Tpo" ".deps/azio.Po"; else rm -f
>>> ".deps/azio.Tpo"; exit 1; fi
>>> In file included from ../../include/my_sys.h:825,
>>>                   from ../../mysys/mysys_priv.h:18,
>>>                   from azlib.h:36,
>>>                   from azio.c:17:
>>> /usr/include/sys/mman.h:115: error: conflicting types for `mmap64'
>>> /usr/include/sys/mman.h:110: error: previous declaration of `mmap64'
>>> In file included from azio.c:17:
>>> azlib.h:147:1: warning: "Z_ASCII" redefined
>>> In file included from azlib.h:34,
>>>                   from azio.c:17:
>>> /opt/freeware/include/zlib.h:175:1: warning: this is the location of the
>>> previous definition
>>
>> Well, looking things over either a) glibc headers are jacked up (which 
>> is what /usr/include/sys/mman.h is installed by).  If things worked 
>> before, check if any updates to glibc were done.  Otherwise I'd just 
>> google around a bit for AIX+mmap64 and see what comes up.
>>
> 
> 
 > Previous version which did compile was 4.1.9.  May be glibc was not
 > required for this version.  Glibc is not native to AIX so I can see
 > some fun ahead.


First: The binaries built and distributed by MySQL for AIX are done 
using the IBM C compiler, not gcc, so we at MySQL do not encounter this 
problem - that's why I can only speculate.


I know that gcc on AIX uses the header files provided by IBM, but 
modifies them when gcc is installed - a vague memory says the tool for 
this is called "fixincludes".  Try to search for this, there are good 
chances in the archives of "comp.unix.aix" (or via Google Groups).

AFAIR, gcc on AIX does not link to "glibc" but to IBM's "libc", that's 
why the system headers must be used.


According to the error message, the system-provided header file 
/usr/include/sys/mman.h is now inconsistent between lines 110 and 115 - 
this might be a problem caused by "fixincludes".

Can you check the file and see what is happening there, maybe post the 
lines here or on comp.unix.aix ?


The warning about "Z_ASCII" being redefined seems to be less critical, 
but you should check that also to be sure.

I propose you look at the two conflicting definitions of "Z_ASCII" and 
compare them. If you have sources for the zlib and can compile them 
using gcc, this might be a way out (after you solved the conflict of the 
definitions).


If you do not need the "archive" table handler, you might also exclude 
that from the configuration and try without it - bypassing the problem, 
not solving it.


Regarding the successful build of 4.1.9: Most likely it did not need the 
header file(s) in question, so the inconsistency did not matter.
Also, if you upgraded gcc in the meantime, this might also be a reason.


I hope you get it solved!


Regards,
Joerg


PS: Curious:
1) What is your reason to compile yourself ?
2) I assume using IBM C is no alternative, because you do not have it ?
3) Remember that 5.1.6 does not have production quality, and please
    check the changelogs so that you do not get stuck on a later change.

-- 
Joerg Bruehe, Senior Production Engineer
MySQL AB, www.mysql.com

Thread
Compilation FailureBen Clewett24 Jul
  • Re: Compilation FailureChris White24 Jul
    • Re: Compilation FailureBen Clewett24 Jul
      • Re: Compilation FailureJoerg Bruehe24 Jul