[cgma-dev] Finding ACIS in Cubit

Jason Kraftcheck kraftche at cae.wisc.edu
Mon Oct 19 17:32:06 CDT 2009


Robert Smith wrote:
> Interestingly, I'm getting a very similar error.  I'm trying to 
> configure CGM with an MPICH2 build using the PG 8.0.5 compiler.
> 
> I tried your compile test below and I get a name different than that in 
> libcubiti19.so.  The results are below.  I don't get the same issues if 
> I'm using MPICH based on GCC 4.2.4 or Intel 11.0.
> 

It appears that the PG compiler uses a different C++ ABI than g++ and 
ICC.  This means that it will not be possible to build CGM with libcubit 
unless cubit is compiled with PG, which would require that the ACIS 
libraries in turn be compiled with PG.

- jason




> smithrm at octagon:~/projects/test$ nm icc_acistest.o
>                  U _ZN15AcisQueryEngine9instance_E
>                  U __gxx_personality_v0
>                  U __intel_new_proc_init
> 0000000000000000 T main
> smithrm at octagon:~/projects/test$
> smithrm at octagon:~/projects/test$ nm gcc_acistest.o
>                  U _ZN15AcisQueryEngine9instance_E
>                  U __gxx_personality_v0
> 0000000000000000 T main
> smithrm at octagon:~/projects/test$ nm pg_acistest.o
> 0000000000000018 t __mainEND
>                  U _main
>                  U instance___15AcisQueryEngine
> 0000000000000000 T main
> 0000000000000000 t pgCC_compiled.
> 
> 
> smithrm at octagon:~/projects/test$ nm 
> ../sharp/3rdparty/Cubit/Cubit64/cubit-10.2-amd64/bin/libcubiti19.so | 
> grep AcisQueryEngine
> ...
> 0000000001abc680 D _ZN15AcisQueryEngine9instance_E
> 
> 
> 
> On Oct 19, 2009, at 1:03 PM, Jed Brown wrote:
> 
>> Jason Kraftcheck wrote:
>>
>>> I see that in this output the script is no longer trying to use libtool,
>>> which is a start.  I'm still unsure why the link is failing.  If you
>>> compile the following (just compile, not link: g++ -c ...):
>>>
>>> class AcisQueryEngine { public: static AcisQueryEngine* instance_; };
>>>
>>> int main()
>>> {
>>>  AcisQueryEngine::instance_ = 0;
>>>  return 0;
>>> }
>>>
>>> and then run "nm main.o | fgrep instance_".  Is it the same mangled name
>>> as you see the Cubit library?
>>
>> $ cat > acis.C
>> class AcisQueryEngine { public: static AcisQueryEngine* instance_; };
>>
>> int main()
>> {
>> AcisQueryEngine::instance_ = 0;
>> return 0;
>> }
>> $ g++ -c acis.C
>> $ nm acis.o
>>                 U _ZN15AcisQueryEngine9instance_E
>>                 U __gxx_personality_v0
>> 0000000000000000 T main
>> $ nm -D /home/jed/usr/cubit-20091014/bin/libcubiti19.so |grep 
>> AcisQueryEngine.*instance_
>> 0000000001da4148 D _ZN15AcisQueryEngine9instance_E
>>
>>
>>
>> They match.
>>
>> Jed
>>
> 



More information about the cgma-dev mailing list