Operating System - Linux
1753947 Members
7679 Online
108811 Solutions
New Discussion юеВ

Re: error #2266: "input_iterator_tag with aCC 6.15

 
SOLVED
Go to solution
Dennis Handly
Acclaimed Contributor

Re: error #2266: "input_iterator_tag with aCC 6.15

>Please find attached .o file.

I have no problems with it:
$ nm -oA ut.o | grep ut_arg_strcmp
[316] |0000000000000|0000000400|FUNC |GLOB |0| .text|ut.o:_Z13ut_arg_strcmpPcS_l

I'm using these two versions of nm:
$ nm -V
92453-07 linker nm HP Itanium(R) B.12.46 PHSS_36342
92453-07 linker nm HP Itanium(R) B.12.49.01

The latest linker patch is: PHSS_37947
Neel2
Regular Advisor

Re: error #2266: "input_iterator_tag with aCC 6.15

My nm version is:

$nm -V
GNU nm 2.17

$type nm
nm is /usr/local/bin/nm

In order us HP's nm which path need to be added.



Dennis Handly
Acclaimed Contributor

Re: error #2266: "input_iterator_tag with aCC 6.15

>My nm version is: GNU nm 2.17

Ah, you must not use foreign devil linker tools. You should rename that file to gnm, as useless.

The correct path is /usr/ccs/bin.
Neel2
Regular Advisor

Re: error #2266: "input_iterator_tag with aCC 6.15

Hi Dennis,

One more question:
What should be the byte ordering for hpia64 platform?

I can locate in my source code like:

#define O_RISC_BYTE_ORDERING 1 /* 0x12345678 = 0x12 0x34 0x56 0x78 */

#define O_INTEL_BYTE_ORDERING 2 /* 0x12345678 = 0x78 0x56 0x34 0x12 */

So, I need to follow the same RISC byte ordering for ia64 or Intel byte ordering, In order to build product on hpia64 platform?

Thanks in advance for your suggestion.
Neel
Dennis Handly
Acclaimed Contributor

Re: error #2266: "input_iterator_tag with aCC 6.15

>What should be the byte ordering for hpia64 platform?

All versions of HP-UX are big endian.

>I can locate in my source code like:
#define O_RISC_BYTE_ORDERING 1 /* 0x12345678 = 0x12 0x34 0x56 0x78

This is broken. It should use the technical term: Big endian

>I need to follow the same RISC byte ordering for ia64

You need to use big endian.
If you look at the documentation you see a macro that gets set:
http://docs.hp.com/en/10946/options.htm#opt-Dname
-D_BIG_ENDIAN=1
Neel2
Regular Advisor

Re: error #2266: "input_iterator_tag with aCC 6.15

Thanks for your quick reply.

I will go thru the documentation. Also, I need your help to know the following questions, In order to compile with aCC 06.15, like what extra care to be taken(while porting from aCC 03.57 to aCC 06.15) ?

Such as,

1. What is the difference between C & CPP(c++) flags while compiling & linking?

2. In order to build completely in CPP which linking flags need to be added?

3. If my source file extn is .c then by default it will be compile & link by C compiler? In case if i want to compile the .c files with CPP compiler what extra flags need to be added?

4. Since, Our product is ported completely in such a way that it should be build with CPP compiler, even the file extns are .c, so what extra need to be taken care while porting to aCC 06.15 from aCC 03.57.

5. The latest patch for linker PHSS_37947 is necessary to install to avoid linking error?
since, i am still getting the errors like Unsatisfied Symbols with libs.

6. On my hpbox the default compiler installed is /opt/aCC 03.57, and i have installed /opt/aCC 06.15. So in above scenario is it possible that while linking it picking up some libs from default compiler and other libs from latest compiler which has been installed externaly just for porting. Now, in this case do we need to externally add "/opt/aCC.06.15/opt/aCC/lib" path in SHLIB_PATH, or compiler automatically picks up the libs accordingly.


Thanks,
Neel




Dennis Handly
Acclaimed Contributor

Re: error #2266: "input_iterator_tag with aCC 6.15

>In order to compile with aCC 06.15, like what extra care to be taken (while porting from aCC A.03.57 to aCC A.06.15)?

This is a whole new architecture with lots more options.

>1. What is the difference between C & C++ flags while compiling & linking?

The difference between cc and aCC options?
Or the difference between compiling and linking?
For the latter, you can use both types of options for both compiling and linking and the driver will do the right thing.

>2. In order to build completely in C++ which linking flags need to be added?

The default should work. Also you would have to add your own -L paths and -l libs.

>3. If my source file extn is .c then by default it will be compile & link by C compiler? In case if I want to compile the .c files with C++ compiler what extra flags need to be added?

The default is based on the driver. cc will only compile .c files. aCC by default will compile anything with .[Cc]* as C++. You can add -Ae/-AC89/-AC99 to compile .c as C.

>4. Our product is ported completely in such a way that it should be build with C++ compiler, even the file extns are .c, so what extra need to be taken care while porting to aCC A.06.15 from aCC A.03.57.

Nothing. Just use aCC for everything.

>5. The latest patch for linker PHSS_37947 is necessary to install to avoid linking error?

No but it is recommended.

>i am still getting the errors like Unsatisfied Symbols with libs.

These are all user errors. I mentioned above how to use "nm -pxAN" to debug this.

>6. On my HP box the default compiler installed is /opt/aCC A.03.57, and I have installed /opt/aCC A.06.15.

Are you confusing the PA A.03.57 with the obsolete IPF A.05.57 version?

You can't have both PA and IPF compilers on the same system. And not likely under /opt/aCC.

>So in above scenario is it possible that while linking it picking up some libs from default compiler and other libs from latest compiler which has been installed externally just for porting.

No, the linker will ignore the wrong architecture (PA) or wrong bitsize libs.

>in this case do we need to externally add /opt/aCC.06.15/opt/aCC/lib path in SHLIB_PATH, or driver automatically picks up the libs accordingly.

There are no libs in /opt/aCC/lib on IPF.
Neel2
Regular Advisor

Re: error #2266: "input_iterator_tag with aCC 6.15

My hpbox has /opt/acc 03.57, /opt/03.70, /opt/acc 06.10, /opt/acc 06.15. the last one which i have installed and using it. And My path is:

PATH=/usr/local/bin:/usr/ccs/bin:/opt/aCC.06.15/opt/aCC/bin:/opt/aCC.06.15/opt/ansic/bin:/opt/aCC.06.15/opt/langtools/bin:/disk/nkhemkar/BUILD/aCC_6.15_build/bin:....

SHLIB_PATH=:/disk/nkhemkar/BUILD/aCC_6.15_build/lib:/disk/nkhemkar/VOD_BUILD/aCC_6.15_build/lib

Now, other than above shlib path, do i need to add any path in order to build with acc 6.15?

Thanks for your suggestion in advanced.
Neel

Dennis Handly
Acclaimed Contributor

Re: error #2266: "input_iterator_tag with aCC 6.15

>My hpbox has /opt/acc 03.57, /opt/03.70, /opt/acc 06.10, /opt/acc 06.15.

You can't really use A.03.57 on IPF.
What's in /opt/aCC/?

>other than above shlib path, do i need to add any path in order to build with acc 6.15?

Unless you want to use +O4 or -ipo, you should be fine. Floating installation should handle everything relative to /opt/aCC.06.15/opt/aCC.
Neel2
Regular Advisor

Re: error #2266: "input_iterator_tag with aCC 6.15

Ok, Thanks i will check and remove unwanted installation. Meanwhile just wanted to know, is there are any changes in linking procedure/flags in 06.15 aCC compiler version compare to earlier 03.57, since i am still stuck up with unsatisfied symbol error?

I used the "nm -pxAN" for debugging, it shows that the function is defined in libut.a, but it still give the error, then i tried to re-order the linking libs,but no use. Do we need to change any order of linking libs?

Thanks,
Neel