This is the mail archive of the c++-embedded@sourceware.cygnus.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: gcc vs g++ and linking with as


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]