Operating System - HP-UX
1752725 Members
5714 Online
108789 Solutions
New Discussion юеВ

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...