On 23 September 2015 at 03:50, Vinh Nguyen wrote: > Hi, > > We have gcc 4.8.3 installed on AIX 6.1; the binaries were kindly > provided by the maintainter of this site: > http://www.perzl.org/aix/index.php?n=Main.Gcc. > > Been trying to install/compile different R and Python packages, and > I've been running into issues where multiple included header files > contain the same symbols. An example could be found here > https://github.com/Rdatatable/data.table/issues/1351, where we > ultimately fixed the compilation error by changing the symbol names. > > Trying to compile numpy and other packages, and am also getting > similar errors. When googling 'gcc aix previous declaration > conflicting types', I see that many packages run into this problem. The Python Pyconfig.h header is very rude and should not be redefining that feature-test macro, but lots of people have complained about that for many years and the Python devs won't do anything about it. > My question is why does this happen only in AIX? Is there any way to > fix this? My guess is that GCC on other OS takes the symbol from the > first header it encounters for the particular file, and ignores the > rest. Can one specify this behavior in AIX as well? No, GCC doesn't do anything like that. I think it's just that on other targets the types in the function declarations do not change when _XOPEN_SOURCE=700 is defined, so the naughty Python header causes a warning about redefining the macro, but doesn't cause errors about conflicting function definitions.