Operating System - HP-UX
1826378 Members
4188 Online
109692 Solutions
New Discussion

Re: Problem linking library compiled with aCC into code compiled with gcc

 
ed carraway
New Member

Problem linking library compiled with aCC into code compiled with gcc

I have a library compiled with HP-UX 10.20 aCC that I am trying to link with code generated on gcc 2.8. In order to resolve the _eh symbols (for aCC exception handling routines) I try to link with /opt/CC/lib/eh/libC.a. However, this results in duplicate symbols from libstdc++.a. And not linking in libstdc++.a results in unrecognized symbols. Has anybody seen this problem or have an idea how to fix it?

Thanks.
3 REPLIES 3
Alex Glennie
Honored Contributor

Re: Problem linking library compiled with aCC into code compiled with gcc

"/opt/gcc/bin/gcc -s -g -L. -lstdc++ [list of objects]" ??? or is that what you are using ?

NB : You must have objects before the libraries.
ed carraway
New Member

Re: Problem linking library compiled with aCC into code compiled with gcc

I tried the "-s" but get the same thing.

This is what I get without /opt/CC/lib/eh/libC.a:

/usr/ccs/bin/ld: Unsatisfied symbols:
__vec_new (code)
__eh_do_throw(__eh_thrown_object *) (code)
operator new(unsigned int)(code)
operator delete(void *)(code)
__eh_thrown_object::dealloc_object( (int))(code)
__eh_dt_count (data)
__vec_delete (code)
allocate__18__eh_thrown_objectSFPP13__eh_typeinfoiT2 (code)

And this is what I get with it:

collect2: ld returned 1 exit status
/usr/ccs/bin/ld: Duplicate symbol "setw(int)" in files
/opt/CC/lib/eh/libC.a(manip.o) and /usr/local/lib/libstdc++.a(iomanip.o)
/usr/ccs/bin/ld: Duplicate symbol "setprecision(int)" in files
/opt/CC/lib/eh/libC.a(manip.o) and /usr/local/lib/libstdc++.a(iomanip.o)
/usr/ccs/bin/ld: Duplicate symbol "setfill(int)" in files
/opt/CC/lib/eh/libC.a(manip.o) and /usr/local/lib/libstdc++.a(iomanip.o)
/usr/ccs/bin/ld: Duplicate symbol "setbase(int)" in files
/opt/CC/lib/eh/libC.a(manip.o) and /usr/local/lib/libstdc++.a(iomanip.o)
/usr/ccs/bin/ld: Duplicate symbol "flush(ostream &) " in files
/opt/CC/lib/eh/libC.a(manip.o) and
/usr/local/lib/libstdc++.a(iostream.o)
/usr/ccs/bin/ld: Duplicate symbol "ws(istream &) " in files
/opt/CC/lib/eh/libC.a(manip.o) and
/usr/local/lib/libstdc++.a(iostream.o)
/usr/ccs/bin/ld: Duplicate symbol "ends(ostream &) " in files
/opt/CC/lib/eh/libC.a(manip.o) and
/usr/local/lib/libstdc++.a(iostream.o)
/usr/ccs/bin/ld: Duplicate symbol "endl(ostream &) " in files
/opt/CC/lib/eh/libC.a(manip.o) and
/usr/local/lib/libstdc++.a(iostream.o)
/usr/ccs/bin/ld: Duplicate symbol "oct(ios &) " in files
/opt/CC/lib/eh/libC.a(manip.o) and
/usr/local/lib/libstdc++.a(iostream.o)
/usr/ccs/bin/ld: Duplicate symbol "hex(ios &) " in files
/opt/CC/lib/eh/libC.a(manip.o) and
/usr/local/lib/libstdc++.a(iostream.o)
/usr/ccs/bin/ld: Duplicate symbol "dec(ios &) " in files
/opt/CC/lib/eh/libC.a(manip.o) and
/usr/local/lib/libstdc++.a(iostream.o)
/usr/ccs/bin/ld: Duplicate symbol "cout" in files
/opt/CC/lib/eh/libC.a(cstreams.o) and
/usr/local/lib/libstdc++.a(stdstreams.o)
/usr/ccs/bin/ld: Duplicate symbol "cin" in files
/opt/CC/lib/eh/libC.a(cstreams.o) and
/usr/local/lib/libstdc++.a(stdstreams.o)
/usr/ccs/bin/ld: Duplicate symbol "cerr" in files
/opt/CC/lib/eh/libC.a(cstreams.o) and
/usr/local/lib/libstdc++.a(stdstreams.o)
/usr/ccs/bin/ld: Duplicate symbol "clog" in files
/opt/CC/lib/eh/libC.a(cstreams.o) and
/usr/local/lib/libstdc++.a(stdstreams.o)
/usr/ccs/bin/ld: Duplicate symbol "terminate(void)" in files
/opt/CC/lib/eh/libC.a(ehterm.o) and
/usr/local/lib/gcc-lib/hppa1.1-hp-hpux10.20/2.8.1/libgcc.a(exception.o)
/usr/ccs/bin/ld: Duplicate symbol "unexpected(void)" in files
/opt/CC/lib/eh/libC.a(ehunex.o) and
/usr/local/lib/gcc-lib/hppa1.1-hp-hpux10.20/2.8.1/libgcc.a(exception.o)
/usr/ccs/bin/ld: Duplicate symbol "set_unexpected(void (*)(void))" in
files /opt/CC/lib/eh/libC.a(err.o) and
/usr/local/lib/gcc-lib/hppa1.1-hp-hpux10.20/2.8.1/libgcc.a(exception.o)
/usr/ccs/bin/ld: Duplicate symbol "set_terminate(void (*)(void))" in
files /opt/CC/lib/eh/libC.a(err.o) and
/usr/local/lib/gcc-lib/hppa1.1-hp-hpux10.20/2.8.1/libgcc.a(exception.o)
/usr/ccs/bin/ld: Unsatisfied symbols:
U_update_state_vector (code)
U_resume_execution (code)
U_get_previous_frame_x (code)
U_get_shLib_recv_tbl (code)
U_STACK_TRACE (code)
U_get_shLib_text_addr (code)
U_get_recover_table (code)
/usr/ccs/bin/ld: Found 19 duplicate symbol(s)
ed carraway
New Member

Re: Problem linking library compiled with aCC into code compiled with gcc

Corection: I am using g++ not gcc...