From: "Gary Mussar" <Gary.Mussar.mussar@nt.com>
To: choward@intellistor.com, Dave Hansen <dave.hansen@btree.com>
Cc: c++-embedded@cygnus.com, crossgcc@cygnus.com
Subject: RE: gcc vs g++ and linking with as
Date: Thu, 25 Jun 1998 11:36:00 -0000 [thread overview]
Message-ID: <F033F6FEF3F1D111BD150000F8CD1431555360@zcard007.ca.nortel.com> (raw)
> 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?
>
No, gcc and g++ shells are almost alike but g++ always assumes that the
source is c++ rather than examining the extension to make that
determination.
> Also, we have calls going both ways c-->asm() asm-->c()
>
> Sounds like name mangling will make asm-->c++() impossible (?)
>
Its not impossible. You need to either know what the mangled name is to
invoke the routine (not recommended because it changes) or you need to
create the routine with C++ name mangling (using the C++ extern "C" stuff).
Turning off name mangling for a particular function will prevent you from
overloading that function.
You are treading on dangerous ground if you attempt to call member functions
of C++ objects because you will need to know the internals of how the "this"
pointer is passed around, etc..
Gary
> 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
next reply other threads:[~1998-06-25 11:36 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-06-25 11:36 Gary Mussar [this message]
-- strict thread matches above, loose matches on Subject: below --
1998-06-25 11:26 Gary Mussar
[not found] <s5923122.008@btree.com>
1998-06-25 10:53 ` Chris Howard
1998-06-25 9:21 Dave Hansen
1998-06-25 8:32 Chris Howard
1998-06-25 20:20 ` C. M. Heard/VVNET, Inc.
1998-06-25 23:03 ` Stephen Williams
1998-06-26 0:59 ` Robert J. Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=F033F6FEF3F1D111BD150000F8CD1431555360@zcard007.ca.nortel.com \
--to=gary.mussar.mussar@nt.com \
--cc=c++-embedded@cygnus.com \
--cc=choward@intellistor.com \
--cc=crossgcc@cygnus.com \
--cc=dave.hansen@btree.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).