Operating System - Linux
1752564 Members
5199 Online
108788 Solutions
New Discussion юеВ

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

 
SOLVED
Go to solution
Dennis Handly
Acclaimed Contributor

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

>I found that +ESnolit needed for compiler/linker workaround for templates at least through ACC 03.33/03.30.

This is not needed for aCC6.

>And -DOS_ENABLE_MEMBER_TEMPLATE_FEATURES in one of our makefiles, Is it still available with aCC6?

Member templates are implemented for aCC6. But that define is not for HP's supplied STL.

>+inst_compiletime flag can be useful for the above discussed issue of template?

No, it is the default.

>I am looking for a flag which will treat .c file as .cpp and will be compile with aCC.

This is the default, all files are C++. If it is invoking cc, you need to fix your makefile suffix rules.

Neel2
Regular Advisor

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

Thanks a lot for your reply.

Neel2
Regular Advisor

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

Hi,

In order to build with aCC6.15 on IPF 11.23 machine, do we need to change our linking order/re-order of object files, since earlier with aCC 3.57 on PA-RICS the same source code & makefiles( the order of linking object files ) works fine without changing any object files linking order in makefiles.

While porting the same on IPF, aCC 6.15 we are continusely getting unsatisfied error while linking.

Can someone point out or suggest what need to be change in our makefiles OR provide any command line flag which will take care of the above discussed issue.

(Remark: I already tried with +n cmd line
option)

Best regards,
Neel


Neel2
Regular Advisor

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

Hi,

I am getting usatisfied linking error for
ospace 5.0.6 using aCC6.15 on IPF.
//--------------------------------------
ld: Unsatisfied symbol "os_init_network_toolkit()" in file veddriver.o
ld: Unsatisfied symbol "os_exit_network_toolkit()" in file veddriver.o
//---------------------------------------

The following is my findings so far:

//
// DLL settings.
//

#if !(defined _MSC_VER || defined __BORLANDC__)
# define OS_STATIC_LIB
#endif

#if defined OS_STATIC_LIB
# define OS_PUBLIC
# define OS_VCC_PUBLIC
# define OS_BCC_PUBLIC
............
.................

A function definition from sockinit.cpp.

// Initialize Network.

OS_VCC_PUBLIC void OS_BCC_PUBLIC
os_init_network_toolkit()
{
os_init_io_toolkit();

if ( !os_network_toolkit_startup_count_++ )
{
# ifdef OS_WIN32
os_init_winsock();
# endif

os_host::my_host();
os_ip_address::my_address();
}
}


Any clues?

Best regards,
Neel
Dennis Handly
Acclaimed Contributor

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

>do we need to change our linking order/re-order of object files, since earlier with aCC 3.57 on PA-RISC the same source code & makefiles (the order of linking object files) works fine without changing any object files linking order in makefiles.

It depends. There are several issues:
1) Template definitions and unsats may be in different places in archive libs.
2) Order of static construction is reversed. You have wrong runtime results.
3) Your template layout is illegal.

>While porting the same on IPF, aCC 6.15 we are continuously getting unsatisfied error while linking.

Which kind? If it was 1) above, just use -Wl,+n and you never have to worry about it again.

>Can someone point out or suggest what need to be change in our makefiles OR provide any command line flag which will take care of the above discussed issue.
>(Remark: I already tried with +n cmd line option)

I can only suggest for issue 1). If you still have problems, then they have to be addressed individually.

Dennis Handly
Acclaimed Contributor

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

>I am getting unsatisfied linking error for ospace 5.0.6 using A.06.15 on IPF.
ld: Unsatisfied symbol "os_init_network_toolkit()" veddriver.o
ld: Unsatisfied symbol "os_exit_network_toolkit()" veddriver.o

These aren't templates. You just need to do macro spelunking.

>The following is my findings so far:
#if !(defined _MSC_VER || defined __BORLANDC__)
# define OS_STATIC_LIB
#endif

#if defined OS_STATIC_LIB
# define OS_PUBLIC
# define OS_VCC_PUBLIC
# define OS_BCC_PUBLIC

>A function definition from sockinit.cpp.
OS_VCC_PUBLIC void OS_BCC_PUBLIC
os_init_network_toolkit(){
...
}

>Any clues?

Compile sockinit.cpp and veddriver.cpp with -E -.i and look at the macro expansion.

Neel2
Regular Advisor

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

CPP_AR=ar cr
C_AR=ar rv
PIC_FLAG=+Z
STATIC_LIB_FLAG=-Wl,-a,archive
SHARED_LIB_FLAG=-Wl,-a,default

the above is correct for aCC6.15 on IPF machine?

Regards,
Neel
Dennis Handly
Acclaimed Contributor

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

>PIC_FLAG=+Z
>the above is correct for aCC6.15 on IPF machine?

+Z/+Z does nothing on IPF since PIC is the default. You could keep it for documentation purposes.

Neel2
Regular Advisor

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

Hi,

1) /opt/aCC/lib/shlrt0.o

Earlier, my makefiles used the above mentioned .o file, does this .o file have any relation with aCC6.15 now? If yes, what should be the new path?

2) I have installed the patch PHSS_37947. How should i confirmed it, whether the patch is installed or not?

I have my compiler installed at following location:
/opt/aCC.06.15/opt/aCC

3) When I looked at:/opt/aCC.06.15/opt/aCC/lib/hpux32/libmielf
I could see only .o files, I have installed compiler for evolution purpose. So the above folder contains only .o files?

4) To get rid of "ld: Unsatisfied symbol" I used +compat flag, still I am getting the same linking errors, Do I missing something to add while linking?

Best regards,
Neel
Dennis Handly
Acclaimed Contributor

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

>1) /opt/aCC/lib/shlrt0.o
>my makefiles used the above mentioned .o file, does this .o file have any relation with aCC6.15 now?

You should have NO knowledge of this file. You must create aC++ shlibs with aCC -b.
(It is only for PA32.)

>2) I have installed the patch PHSS_37947. How should i confirm it

$ swlist PHSS_37947

>3) When I looked at /opt/aCC/lib/hpux32/libmielf. So the above directory contains only .o files?

Yes.

>4) To get rid of "ld: Unsatisfied symbol" I used +compat flag, still I am getting the same linking errors

I'm not aware of +compat fixing any linking errors, only +n. Basically you have to do what I said above.