aix gcc question

Robert A Nesius rnesius@ichips.intel.com
Fri Jan 18 14:15:00 GMT 2002


I got a build of gcc on aix 4.3.3. to compile.  The same
version of gcc (g++ being the compiler I'm invoking) on
linux compiles the following code:

#include <iostream>

int main() {
    unsigned long long int x = 0;
    std::cout << x << std::endl;
}

BUT, on AIX it does not.  It complains about an ambiguous
overload of the << operator, and lists all the types that
are actually defined on that operator.

I wrote a C program that just declared an unsigned long long int
to see if /usr/bin/cc understood it, and in fact cc (xlc)
did handle the type with no trouble.

So I'm a bit confused as to why g++ can't handle this on
AIX 4.3.3, since it seems the type unsigned long long int
was at least defined in the original system headers.

Any ideas?

Follow up question - might it make sense to build a 64-bit
compiler instead of a 32-bit one?  If so, does anyone have
some advice to offer on how to proceed with that?  I know
how to tell /usr/bin/cc to compile 64bit objects (-q64),
but I've noticed that when I put vendor compiler options
in CFLAGS and then run configure, those same values in
CFLAGS get pased on to the stage 2 and stage3 compilers
which don't understand -q64, and complain.  Can I just
ignore the complaints about "unknown option" or am I
going about things in the wrong way?  I didn't see anything
I could assign to --host-prefix to force configure to
set things up for 64-bit mode...

Thanks for any help/ideas you can offer.

-Rob




-- 
#include <sig.h>
------------------------------------------------------------------
Robert Nesius             rnesius@ichips.intel.com    503.712.2181
DPG Engineering Computing SW Applications Team




More information about the Gcc-help mailing list