This is the mail archive of the
c++-embedded@sourceware.cygnus.com
mailing list .
Re: gcc vs g++ and linking with as
- To: Dave Hansen <dave dot hansen at btree dot com>
- Subject: Re: gcc vs g++ and linking with as
- From: Chris Howard <choward at intellistor dot com>
- Date: Thu, 25 Jun 1998 17:50:42 +0000
- CC: c++-embedded at cygnus dot com, crossgcc at cygnus dot com
- Organization: Fujitsu Computer Products of America
- References: <s5923122.008@btree.com>
- Reply-To: choward at intellistor dot com
But none of it is C++ code. It's all C or assembler.
Shouldn't gcc and g++ compile a *.c file the same way?
Also, we have calls going both ways c-->asm() asm-->c()
Sounds like name mangling will make asm-->c++() impossible (?)
Dave Hansen wrote:
>
> This is the name mangling that g++ uses to resolve overloaded functions.
> To prevent this, declare the assembly functions as extern "C" in the
> C++ code. For example:
>
> extern "C" asm_fn();
>
> HTH. Regards,
>
> -=Dave
>
> >>> Chris Howard <choward@intellistor.com> 06/25/98 10:29AM >>>
> binutils 2.9
> gcc/g++ 2.8.0
>
> Host Sun Sparc Solaris 2.5
> Target Motorola Coldfire (-m5200) a.out object format
>
> ---
>
> Not using stdlib (-nostdlib)
>
> We have some code in assembler, and some in C.
> Compiling with as,gcc and linking with ld works fine.
> Compiling with as,g++ and linking with ld does not work,
> undefined symbols for those things written in assembler.
>
> The .o files output from g++ compilation have exported symbols that
> end in '__Fv' whereas the assembler output .o files don't have
> '__Fv' on the symbols. Is that the problem? Is there
> some way to make it work? What is __Fv?
>
> An alternative might be to put the assembly code in
> C/C++ wrapper functions. Any hints/comments that
> would be appreciated also.
>
> --
> Chris Howard Fujitsu Computer Products of America
> Longmont, Colorado
>
--
Chris Howard Fujitsu Computer Products of America
Longmont, Colorado