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

Re: LDM Compile error



Greg,

> To: <address@hidden>
> From: "Burns, Greg M LRP" <address@hidden>
> Subject: LDM Compile error
> Organization: US Army
> Keywords: 200506281149.j5SBncW4015409 LDM configure compile gcc

The above message contained the following:

> =20
> When I run the "configure" command as user "ldm", I get the following =
> error
> messages:
> =20
> ./configure
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...=20
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether /usr/local/bin/gcc accepts -g... yes
> checking for /usr/local/bin/gcc option to accept ANSI C... none needed
> checking the C compiler... works
> configure: Checking how to maximize the (long, void*, off_t) programming
> environment
> checking if the system supports _XBS5_LPBIG_OFFBIG... yes
> configure: -U_MAPRGNS
> configure: cflags=3D"-xarch=3Dv9"
> configure: ldflags=3D"-xarch=3Dv9"
> configure: libs=3D""

The above lines indicate that the configure(1) script was able to
discover the compilation and linking flags that support a programing
environment in which longs, pointers, and off_t-s are at least 64-bits
wide.  By default, the configure(1) script attempts to use such a
programing environment so that, for example, a 6 gigabyte product-queue
is possible.  The getconf(1) utility is used by the configure(1) script
to discover these options.

Unfortunately, on your system, the getconf(1) utility reports those
options assuming that the native C compiler and linker will be used --
but you're using the GNU C compiler.  This inconsistency leads to the
problem you encountered:

> configure: ARFLAGS=3D"-cru"
> checking the C compiler (again)... configure: error: /usr/local/bin/gcc
> failed to compile test code
> See `config.log' for more details.
...

> The config.log file contains the following error messages:
...
> configure:2209: /usr/local/bin/gcc -c -O -xarch=3Dv9 -DNDEBUG conftest.c =
> >&5
> gcc: language arch=3Dv9 not recognized
> gcc: conftest.c: linker input file unused because linking not done
> .
> configure: failed program was:
> | int foo;
> configure:2236: error: /usr/local/bin/gcc failed to compile test code

There are several solutions:

    1.  Use the native C compiler and native linker for which the
        getconf(1) utility returns correct results.  This is done by
        setting the environment variables CC and LD to the pathnames of
        the compiler an linker, respectively, before re-executing the
        configure(1) script.

    2.  Tell the configure(1) script not to try to discover a 64-bit
        programing environment.  This is done by specifying the
        "--enable-max-size=no" option to the configure(1) script, when
        re-executing it.  If this solution is used, then you will not
        be able to have a large product-queue (i.e., larger than 2 or 4
        gigabytes, depending on your system).

    3.  Do #2 but set the CPPFLAGS, CFLAGS, and LDFLAGS environment
        variables prior to re-executing the configure(1) script so that
        a 64-bit programing environment is obtained with the GNU C
        compiler.

With all the above solutions, you must execute the command "make
distclean" before re-executing the configure(1) script.

Regards,
Steve Emmerson
LDM Developer

> NOTE: All email exchanges with Unidata User Support are recorded in the
> Unidata inquiry tracking system and then made publicly available
> through the web.  If you do not want to have your interactions made
> available in this way, you must let us know in each email you send to us.


NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.