Operating System - Linux
1748280 Members
3991 Online
108761 Solutions
New Discussion юеВ

Re: Using aC++ A.06.15 compiler version => Identifier "__fpreg" is undefined

 
SOLVED
Go to solution
Neel2
Regular Advisor

Re: Using aCC 06.15 compiler veersion => Identifier "__fpreg" is undefined

Hi,

Could you please let me know the meaning of the following error.

1)
ld: Unsatisfied symbol "VCursor::VCursor(char const*,char const*,unsigned long,PPredicate const&)(complete)" in file db2tty.o

In above error (complete) what does it mean?
Also I have seen ld:(warning) ... ?

2)
ld: Unsatisfied symbol "ch_l_classname" in file /disk/nkhemkar/BUILD/aCC_6.15_build/cxx/7.0.1.4/HP-UX_32bit/dbg//lib/libcxxcls.a[checkapi.o]

And when I use:
$/usr/ccs/bin/nm -oA /disk/nkhemkar/VOD_BUILD/aCC_6.15_build/cxx/7.0.1.4/HP-UX_32bit/dbg//lib/libcxxcls.a | grep ch_l_classname
[148] |0000000000000|0000001020|FUNC |GLOB |0| .text|/disk/nkhemkar/VOD_BUILD/aCC_6.15_build/cxx/7.0.1.4/HP-UX_32bit/dbg//lib/libcxxcls.a[check.o]:ch_l_classname
[91] |0000000000000|0000000000|FUNC |GLOB |0| UNDEF|/disk/nkhemkar/VOD_BUILD/aCC_6.15_build/cxx/7.0.1.4/HP-UX_32bit/dbg//lib/libcxxcls.a[checkapi.o]:ch_l_classname


So, As per my understanding the function definition (.text) is present inside the archive. Then why it giving unsatisfied error?

Also, I am looking for what has been change in linker settings for the aCC6.15 compiler version from earlier version of aCC3.57? Could you please provide me the details of changes or some link of documents which contains the details.

Best regards,
Neel
Dennis Handly
Acclaimed Contributor

Re: Using aC++ A.06.15 compiler version => Identifier "__fpreg" is undefined

>Could you please let me know the meaning of the following error.
>1) ld: Unsatisfied symbol "VCursor::VCursor(char const*,char const*,unsigned long,PPredicate const&)(complete)"

It says the "complete" entry point to the constructor is missing. The one that constructs virtual base classes.

>I have seen ld:(warning)?
>2) ld: Unsatisfied symbol "ch_l_classname" in libcxxcls.a[checkapi.o]

Where should it be defined?

>And when I use:
$nm -oA libcxxcls.a | grep ch_l_classname
FUNC |GLOB |0| .text| libcxxcls.a[check.o]:ch_l_classname
FUNC |GLOB |0| UNDEF| libcxxcls.a[checkapi.o]:ch_l_classname

(You should be using -x for hex and not -o.)

>As per my understanding the function definition (.text) is present inside the archive. Then why it giving unsatisfied error?

Perhaps you used a foreign devil ar(1) to create the archive? Use "/usr/ccs/bin/ar -rs libcxxcls.a" to fix it. Then remove/rename all gnu object file tools in /usr/local/bin/.

You can check by:
elfdump -g libcxxcls.a | fgrep ch_l_classname

>I am looking for what has been changed in linker settings for the A.06.15 compiler version from earlier version of A.03.57?

These are completely different. There is no earlier. One is SOM the other is ELF.

>Could you please provide me the details of changes or some link of documents which contains the details.

You need to look at the man pages and the Online Help for the compiler and ld:
ld +help
aCC +help

Neel2
Regular Advisor

Re: Using aCC 06.15 compiler veersion => Identifier "__fpreg" is undefined

Hi,

When I use file command on, it shows:

$file /usr/ccs/bin/ar
ar: ELF-64 executable object file - IA64

And when I use file command on, it shows:

$file /usr/local/bin/ar
ar: ELF-32 executable object file - IA64


And my build type is 32bit. then which ar should I use ?


Best regards,
Neel
Dennis Handly
Acclaimed Contributor

Re: Using aC++ A.06.15 compiler version => Identifier "__fpreg" is undefined

>When I use file command on, it shows:
>$file /usr/ccs/bin/ar
ar: ELF-64 executable object file - IA64

This check is meaningless. The whole HP-UX compiler tool chain is now 64 bit. But it can handle either 32 or 64 bit binaries.

>And my build type is 32bit, then which ar should I use?

Remove the foreign devil gnu ar(1). You can't use this on HP-UX. (Or you can use it to look but not touch. :-)

Neel2
Regular Advisor

Re: Using aCC 06.15 compiler veersion => Identifier "__fpreg" is undefined

Hi,

Ok now I have renamed the devils.
After compilation and linking ( explicitly provided the .o files) when I run my executable i got the following errors:

I also noticed that after linking the following exe. does not have execute permission, so I menually give it(chmod +x)

$db2tty
/usr/lib/hpux32/dld.so: Unsatisfied data symbol '_ZN4PDOM9defaultDbE' in load module 'db2tty'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol 'dom' in load module 'db2tty.save'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol 'vpp_mt_safe' in load module 'db2tty'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol '_vpp_o_during_scap' in load module 'db2tty'.
/usr/lib/hpux32/dld.so: Unsatisfied data symbol '_vpp_PDOM_defaultLock' in load module 'db2tty'.
/usr/lib/hpux32/dld.so: Unsatisfied code symbol '_ZN6PErrorD1Ev' in load module 'db2tty'.
Killed

Could you please, let me know the reason of above failure.

Best regards,
Neel
Dennis Handly
Acclaimed Contributor

Re: Using aC++ A.06.15 compiler version => Identifier "__fpreg" is undefined

>linking (explicitly provided the .o files) when I run my executable i got the following errors:

You should instead recreate those archives.

>I also noticed that after linking the following exe. does not have execute permission, so I manually give it (chmod +x)

Well, what link errors did you get? You have just moved the errors to runtime with a more confusing messages.

Unsatisfied data symbol '_ZN4PDOM9defaultDbE'
Unsatisfied data symbol 'dom'
Unsatisfied data symbol 'vpp_mt_safe'
Unsatisfied data symbol '_vpp_o_during_scap'
Unsatisfied data symbol '_vpp_PDOM_defaultLock'
Unsatisfied code symbol '_ZN6PErrorD1Ev'

>let me know the reason of above failure.

The same as before. Where are these symbols defined and where are they used?
Most are data symbols.

The two mangled names can be demangled with:
$ c++filt _ZN4PDOM9defaultDbE _ZN6PErrorD1Ev
PDOM::defaultDb
PError::~PError()

Neel2
Regular Advisor

Re: Using aCC 06.15 compiler veersion => Identifier "__fpreg" is undefined

Hi,

Where can i find the below documents:

Transitioning from PA-RISC to HP-UX 11i on Integrity servers

http://devresource.hp.com/drc/STK/PA_Integrity.jsp

Above link is not accessible. Could you please let me know where can i find the document.

Best regards,
Neel
Dennis Handly
Acclaimed Contributor

Re: Using aC++ A.06.15 compiler version => Identifier "__fpreg" is undefined

>Transitioning from PA-RISC to HP-UX 11i on Integrity servers
>Above link is not accessible.

If you can't find it with google, it's probably gone.

Using your words above in the "search all of HP" finds a bunch for STK.
Unfortunately it finds a bunch on h21007.www2.hp.com, which seems to be having problems now??

What kind of help are you looking for?

Neel2
Regular Advisor

Re: Using aCC 06.15 compiler veersion => Identifier "__fpreg" is undefined

Hi,

I am getting the following error:

//================================
aCC -D_REENTRANT -AA -mt -g0 -Wl,+n +DD32 -Wl,+compat +z -I/.. Wl,+s /HP-UX_32bit/dbg//lib/libcxxcls.a /disk/nkhemkar/BUILD/aCC_6.15_build/lib/liboscfe.a -Wl,-a,default -lpthread -lm -o /disk/nkhemkar/BUILD/aCC_6.15_build/cxx/7.0.1.4/HP-UX_32bit/dbg//bin/db2tty
ld: Unsatisfied symbol "_V_Context::_V_Context(_V_flag,char*,char*,PClass*,PClass*,int,int,_V_Context*)(complete)" in file /disk/nkhemkar/BUILD/aCC_6.15_build/cxx/7.0.1.4/HP-UX_32bit/dbg//lib/libcxxcls.a[fund.o]
1 errors.
//=======================================

So, I searched for the above function, and found:
$ nm++ -xA pclass.o | grep _V_Context::_V_Context
[460] |0x00000000|0x000000f0|FUNC |GLOB |0| .text|pclass.o:_V_Context::_V_Context(_V_flag,char*,char*,PClass*,PClass*,long,long,_V_Context*)(complete)
[461] |0x00000000|0x00000100|FUNC |GLOB |0| .text|pclass.o:_V_Context::_V_Context(_V_flag,char*,char*,PClass*,PClass*,long,long,_V_Context*)(base)

Its defined inside pclass.o, when i again relink against pclass.o added in linking command, it does not resolve the above error, it still shows as unsatisfied symbols.

Could you point out what goes wrong here?
And i was looking for the documents so i could figure out the linker changes between PA-RISC Vs. IPF other than http://docs.hp.com/en/B2355-90968/linkerdifferencesiapa.htm

Best regards,
Neel
Dennis Handly
Acclaimed Contributor

Re: Using aC++ A.06.15 compiler version => Identifier "__fpreg" is undefined

>I am getting the following error:
ld: Unsatisfied symbol _V_Context::_V_Context(_V_flag,char*,char*,PClass*,PClass*,int,int,_V_Context*) (complete) libcxxcls.a[fund.o]

>I searched for the above function, and found:
$ nm++ -xA pclass.o | grep _V_Context::_V_Context
FUNC |GLOB|pclass.o: _V_Context::_V_Context(_V_flag,char*,char*,PClass*,PClass*,long,long,_V_Context*)(complete)

>It's defined inside pclass.o
>Could you point out what goes wrong here?

You aren't looking close enough. You should be using the raw mangled name and then you can't fail.
Link with -Wf,-o. That will give you both the mangled and demangled names. Use the mangled name and NOT nm++ and you'll see that those symbols are NOT in pclass.o.

You have illegally used two different typedefs for the parms 6 & 7, int vs long.

>And i was looking for the documents so i could figure out the linker changes between PA-RISC vs. IPF

This unsat has nothing to do with PA vs IPF. This is just C++ and would fail on any OS.