Operating System - HP-UX
1752798 Members
6016 Online
108789 Solutions
New Discussion

Re: ld: (Warning) Ignore library libCommon.a with bad machine type 15 and ld: Mismatched ABI

 
SOLVED
Go to solution
sunsl
Occasional Advisor

ld: (Warning) Ignore library libCommon.a with bad machine type 15 and ld: Mismatched ABI

I got the following errors when compiling a module linking another module's libraries. 

My machine info is lasted below:

CPU info:
  5 Intel(R) Itanium 2 9100 series processors (1.59 GHz, 12 MB)
          266 MHz bus, CPU version A1
HP-UX B.11.31
Machine:   ia64
 
result (to link to libCommon.a) =>

       aCC -v +DD64  +DSitanium2 -D_HP_SOURCE +z -z -ext +eh -D_REENTRANT  -g a.o b.o -Llib -lCommon -lNet -lrwtool -o result 

LPATH=/usr/lib/hpux64:/opt/langtools/lib/hpux64
 /usr/ccs/bin/ld -z -o mascollectorreader -u___exit -umain -L/opt/aCC/lib/hpux64 a.o b.o -Llib -lCommon -lNet -lrwtool -lstd_v2 -lCsup -lm -lunwind -lCsup -lc -ldl >/var/tmp/AAA014657 2>&1
 /opt/aCC/bin/c++filt </var/tmp/AAA014657 1>&2
 
ld: (Warning) Ignore library lib/libCommon.a with bad
 machine type 15
ld: Mismatched ABI for -lCommon, found lib/libCommon.a
Fatal error.
 

libCommon.a =>
The compiling/ld commands for generating libCommon.a without a problem is listed below:
aCC -v +DD64 +DSitanium2 -DUNIX +DA2.0W -O -D_HP_SOURCE +z -I../include
-c Common.C
/opt/aCC/lbin/ecom -architecture 64 -ia64abi all -inst compiletime -sysdir /usr/include -test namespaces -koenig_lookup on -ansi_for_scope on -inline_power 2 -
link_type dynamic -fpeval float -fpevaldec _Decimal32 -tls_dyn on -xmath_ielf_path /opt/aCC/lib/hpux64/libmielf -target_os 11.31 -scheduler itanium2 -I../include --sys_include /opt/aCC/include_std --sys_include /opt/aCC/include_std/iostream_compat --sys_include /usr/include --sys_include /usr -D_HP_IA64ABI -D__BUILTIN_MILLI -D_BIND_LIBCALLS -D_Math_errhandling=MATH_ERREXCEPT -D__hpux -D__unix -D__ia64=1 -D__ia64__=1 -D_BIG_ENDIAN=1 -D__STDCPP__ -D_HP_NAMESPACE_STD -D_LP64 -D__LP64__ -D__cplusplus=199711L -D_INCLUDE__STDC_A1_SOURCE -D__HP_aCC=62500 -D_HP_INSTANTIATE_T_IN_LIB -D_INLINE_ASM -D_FLT_EVAL_METHOD=0 D_DEC_EVAL_METHOD=0 -DUNIX -D_HP_SOURCE -ucode hdriver=optlevel%2% -plusolistoption -Ol06all! -plusolis
toption -Ol12indirect! -plusolistoption -Ol13moderate! -plusooption -Oq02,al,ag,
cn,sz,ic,vo,Mf,Po,es,rs,Rf,Pr,sp,In,cl,om,vc,pi,fa,Pe,rr,pa,pv,nf,cp,Lx,Pg,ug,lu
,lb,uj,dn,sg,pt,kt,em,np,ar,rp,dl,Fs,bp,wp,Pc,mp,lr,cx,cr,pi,so,Rc,fa,ft,fe,ap,s
t,lc,Bl,sr,Qs,do,ib,pl,sd,ll,rl,dl,Lt,ol,fl,lm,ts,rd,Dp,If! Common.C

 

Please share your light. Thanks a lot.
 
 
P.S. this thread has been moved from HP-UX > Messaging  to HP-UX > languages - HP Forum Moderator

 

17 REPLIES 17
Dennis Handly
Acclaimed Contributor

Re: ld: (Warning) Ignore library libCommon.a with bad machine type 15 and ld: Mismatched ABI

What does "file lib/libCommon.a" show?  What's in that archive?

How did you create that archive?  With /usr/ccs/bin/ar?

 

>aCC -v +DD64 a.o b.o -Llib -lCommon -lNet -lrwtool

 

Instead of -lrwtool you should have -lrwtool_v2

 

 

sunsl
Occasional Advisor

Re: ld: (Warning) Ignore library libCommon.a with bad machine type 15 and ld: Mismatched ABI

Thanks for the reply. The libNet.a was generated from compiled Common.o as listed below without a problem.

ar rvu libNet.a Common.o

 

ar t libNet.a

Common.o    (BTW, Common.o include <sys/socket.h>

 

I replaced the -lrwtool with -lrwtool_v2 to generate the binary result, the same warning and error were reported.

Dennis Handly
Acclaimed Contributor

Re: ld: (Warning) Ignore library libCommon.a with bad machine type 15 and ld: Mismatched ABI

>ar rvu libNet.a Common.o

 

Again, which ar(1) did you use?  What does this show?

$ whence ar

 

You must not use a foreign devil ar.

sunsl
Occasional Advisor

Re: ld: (Warning) Ignore library libCommon.a with bad machine type 15 and ld: Mismatched ABI

whence ar =>
/usr/bin/ar

Dennis Handly
Acclaimed Contributor

Re: ld: (Warning) Ignore library libCommon.a with bad machine type 15 and ld: Mismatched ABI

>/usr/bin/ar

 

Assuming that is a symlink to /usr/ccs/bin/ar, what do these show?

$ file lib/libCommon.a

$ /usr/ccs/bin/elfdump -f -g lib/libCommon.a

 

Have you removed and recreated libCommon.a?

 

>ar rvu libNet.a Common.o

 

What's in libCommon.a?

 

sunsl
Occasional Advisor

Re: ld: (Warning) Ignore library libCommon.a with bad machine type 15 and ld: Mismatched ABI

ls -l /usr/bin/ar
lrwxr-xr-x 1 bin bin 15 Aug 10 2010 /usr/bin/ar@ -> /usr/ccs/bin/ar

 

Actually I have two .a file created with the same warning and error displayed. I always do "make clean" before creating them.

file libNet.a
libNet.a: archive file

 

file libCommon.a
libCommon.a: archive file

 

ar t libNet.a
Connection.o

 

/usr/ccs/bin/elfdump -f -g libNet.a 

libNet.a:

*** Archive Symbol Table ***
1174 _ZN21Connection_Err_SocketC1EPc
1174 _ZN21Connection_Err_SocketC3EPc
1174 _ZN21Connection_Err_SocketC2EPc
1174 _ZN18Connection_Err_SvcC1EPc
1174 _ZN18Connection_Err_SvcC3EPc
1174 _ZN18Connection_Err_SvcC2EPc
1174 _ZN18Connection_Err_SecC1EPc
1174 _ZN18Connection_Err_SecC3EPc
1174 _ZN18Connection_Err_SecC2EPc
1174 _ZN10ConnectionC1Ev
1174 _ZN10ConnectionC2Ev
1174 _ZN10ConnectionD1Ev
1174 _ZN10ConnectionD0Ev
1174 _ZN10ConnectionD2Ev
1174 _ZN10Connection11receiveDataEPci
1174 _ZN10Connection17simpleReceiveDataEPci
1174 _ZN10Connection19setErrorExplanationEPc
1174 _ZN10Connection19getErrorExplanationEv
1174 _ZN10Connection8sendDataEPhi

Dennis Handly
Acclaimed Contributor

Re: ld: (Warning) Ignore library libCommon.a with bad machine type 15 and ld: Mismatched ABI

Also please do this:

/usr/ccs/bin/elfdump -f -g libCommon.a

sunsl
Occasional Advisor

Re: ld: (Warning) Ignore library libCommon.a with bad machine type 15 and ld: Mismatched ABI

Thanks Dennis. Please see attached.

Dennis Handly
Acclaimed Contributor

Re: ld: (Warning) Ignore library libCommon.a with bad machine type 15 and ld: Mismatched ABI

>ld: (Warning) Ignore library lib/libCommon.a with bad machine type 15

 

This error says that this archive has 64 bit PA objects in it.

Remove lib/libCommon.a and rebuild.

Are you doing anything tricky and using XPADE?

 

>Please see attached.

 

The -f output all has:

Machine:                 IPF

Flags:                       IA-64

I don't see:

Machine:                PA-RISC
Flags:                      PA2.0

 

Do you still get that error?