bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/13558] binutils 2.22 v. AIX 6.1 -- build fails with large-


From: haubi at gentoo dot org
Subject: [Bug binutils/13558] binutils 2.22 v. AIX 6.1 -- build fails with large-file support problems (and mkdtemp confusion)
Date: Wed, 14 Mar 2012 08:29:24 +0000

http://sourceware.org/bugzilla/show_bug.cgi?id=13558

Michael Haubenwallner <haubi at gentoo dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |haubi at gentoo dot org

--- Comment #1 from Michael Haubenwallner <haubi at gentoo dot org> 2012-03-14 
08:29:24 UTC ---
Quite similar troubles here on AIX 7.1:

(In reply to comment #0)
> In file included from syslex.c:549:
> /usr/include/unistd.h:171: error: conflicting types for 'lseek64'
> /usr/include/unistd.h:169: error: previous declaration of 'lseek64' was here
> In file included from /usr/include/unistd.h:746,
>                  from syslex.c:549:

> blue# diff binutils/syslex.c_orig binutils/syslex.c
> 1c1
> <
> ---
> > #include "config.h"
> 
> From the looks of it, I suspect that this thing is generated, and so the
> change would need to be made elsewhere, but the essence is to get
> "config.h" processed before the system header files.

Particular reason here is the _LARGE_FILES macro, defined by config.h, which
has to be defined before any system header.

> blue# diff binutils/od-xcoff.c_orig binutils/od-xcoff.c
> 21a22,23
> > #include "config.h"

Same here.

>    Also, the "configure" test for 'mkdtemp' gets a result which might
> best be described as unfortunate:

> bucomm.c:531: warning: implicit declaration of function 'mkdtemp'

>    I didn't look at the details, but I'm guessing that "configure" did
> some less-than-thorough test for "mkdtemp".  Perhaps "mkdtemp" is in
> some run-time library, so a link-only test might work, but it appears
> not to be in any of the system header files, so an actual compilation
> (with "warnings being treated as errors") will fail this way.

Exactly: Since AIX 6.1, mkdtemp() is declared upon _XOPEN_SOURCE >= 700, and
thus the symbol is available in libc.

The difference is: Upon _ALL_SOURCE (defined in config.h),
AIX 6.1 defines (overrides!) _XOPEN_SOURCE=600, while
AIX 7.1 defines (overrides!) _XOPEN_SOURCE=700, 

This particularly isn't a problem on AIX 7.1, but still the check for mkdtemp()
should be extended to if the declaration is available too.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]