This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
>>>>> "Chris" == Chris Howard <choward@intellistor.com> writes: Chris> binutils 2.9 gcc/g++ 2.8.0 Chris> Host Sun Sparc Solaris 2.5 Target Motorola Coldfire Chris> (-m5200) a.out object format Chris> --- Chris> Not using stdlib (-nostdlib) Chris> We have some code in assembler, and some in C. Compiling Chris> with as,gcc and linking with ld works fine. Compiling with Chris> as,g++ and linking with ld does not work, undefined symbols Chris> for those things written in assembler. You will have to declare the asm routines "extern 'C'" because the assembler does not perform C++ name mangling for you. Chris> The .o files output from g++ compilation have exported Chris> symbols that end in '__Fv' whereas the assembler output .o Chris> files don't have '__Fv' on the symbols. Is that the Chris> problem? Is there some way to make it work? What is __Fv? These are C++ mangled names. Use c++filt to de-mangle C++ mangled names. The mangling encodes type information into the names so that the linker can resolve functions with the same name but different signatures. Chris> An alternative might be to put the assembly code in C/C++ Chris> wrapper functions. Any hints/comments that would be Chris> appreciated also. This is not necessary -- just declare the asm functions extern 'C' and the compiler will know not to mangle those names, so the linker will be able to resolve them. Chris> -- Chris Howard Fujitsu Computer Products of America Chris> Longmont, Colorado -- -------- "And there came a writing to him from Elijah" [2Ch 21:12] -------- R. J. Brown III rj@elilabs.com http://www.elilabs.com/~rj voice 847 543-4060 Elijah Laboratories Inc. 457 Signal Lane, Grayslake IL 60030 fax 847 543-4061 ----- M o d e l i n g t h e M e t h o d s o f t h e M i n d ------