ddd
[Top][All Lists]
Advanced

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

Re: DDD configure breaks on solaris 8


From: Tim Mooney
Subject: Re: DDD configure breaks on solaris 8
Date: Thu, 22 May 2003 16:16:39 -0500 (CDT)

In regard to: Re: DDD configure breaks on solaris 8, Melissa Terwilliger...:

>Here is the log as requested.
>
>configure:7944: checking for XOpenDisplay in -lX11
>configure:7966: c++ -o conftest -g -O2 -fpermissive   -isystem
>/usr/openwin/include   -L/usr/lib/sparcv9 -R/usr/lib/sparcv9
>conftest.C -lX11  -lSM -lICE -lsocket  -lnsl  -lSM -lICE -lsocket  -lnsl
>1>&5
>/usr/openwin/lib/libdga.so.1: could not read symbols: Invalid operation
>collect2: ld returned 1 exit status
>configure: failed program was:
>#line 7952 "configure"
>#include "confdefs.h"
>/* Override any gcc2 internal prototype to avoid an error.  */
>#ifdef __cplusplus
>extern "C"
>#endif
>/* We use char because int might match the return type of a gcc2
>    builtin and then its argument prototype would still apply.  */
>char XOpenDisplay();
>
>int main() {
>XOpenDisplay()
>; return 0; }
>
>
>I don't know why it's looking in /usr/openwin/lib/ because I am specifying
>--x-libraries=/usr/lib/sparcv9

Well, that's definitely not the way to do it.  For any compiler that
supports both ABIs (ILP32 on 32 bit Solaris and LP64 on 64 bit Solaris),
there's a compiler option to select which ABI you want to generate code
for.  That option *alone* should tell your compiler (and hopefully it
will be passed to your linker too, if the linker is used) which variant
library directory to search.

So, don't try force c++ to read from the v9 directories, tell it what
ABI you want.  I'm not sure what c++/gcc flag does this, though it is
certainly documented in the gcc/c++ info documentation, and very likely
begins with `-m'.

>I do have another copy of the file in /usr/openwin/lib/sparcv9/libdga.so.1
>Is there a way to tell it just to grab this file from the other folder?  Is
>this the file that the --x-includes would  refer to?

No.  --x-includes specifies where to find your header files.
--x-libraries specifies where your X11 libraries are hiding *but* for
OSes that support multiple ABIs, the development toolchain will quietly
modify the directories that are searched for libraries *if* you tell it
you want to generate libraries and binaries for the non-default ABI.

Don't include the `v9' directories in any of the flags you set up in
your environment (LDFLAGS most likely), and don't include the v9
directories in any of the options you pass to configure (e.g. don't
say --x-libraries=/usr/openwin/lib/v9).

*Do* find the option (in the gcc/c++ info docs) to make gcc/c++ compile
for the LP64 abi, and add that to your CFLAGS and CXXFLAGS environment
variables before running configure.  I'm guessing it's something like

        -march=64

or

        -march=v9

or
        -mabi=v9a

but those are just guesses.

Once you know the options, you would do something like

        CFLAGS='-mabi=whatever' CXXFLAGS='-mabi=whatever' ./configure <more 
stuff>

Tim
-- 
Tim Mooney                              address@hidden
Information Technology Services         (701) 231-1076 (Voice)
Room 242-J6, IACC Building              (701) 231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164




reply via email to

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