This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PPC -mlongcall, take two


Andreas Tobler wrote:
> 
> Andreas Tobler wrote:
> 
> > This one above makes darwin fail when I bootstrap. The c_target_objs &
> > cxx_target_objs get overwritten by this rs6000 stuff and the darwin-c
> > will not be built and the result are undefined references to a few
> > symbols. The patchlet below makes it at least to compile. Bootstrap
> > ongoing. Though I don't know if correct since I'm not at home and I only
> > have my powerbook handy.
> 
> Hmm, I'm not quite happy with this one. I get tons of warnings since
> REGISTER_TARGET_PRAGMAS is defined twice here on darwin. Once in
> darwin.h and once in rs6000.h.

Heh, completely forgot that Darwin had its own pragmas...

> How is this longcall meant to work with
> darwin?

It's conceptually useful, although perhaps only with Darwin kernel
code.

> Should we check in rs6000.h for
> if !defined REGISTER_TARGET_PRAGMAS
> define REGISTER_TARGET_PRAGMAS
> fi
> And add the longcall pragma to darwin.h?

config/darwin* is supposed to be processor-neutral, and indeed
I have a set of patches for x86 Darwin almost ready to submit,
so it can't go in there.  Perhaps the right thing is to introduce
a second macro, and either invoke it directly from c-pragma.c,
or from the Darwin macro (it's all just registering of pragmas,
not finicky about ordering or anything like that).  The second
choice is lower impact, better since this whole situation is
kind of an oddball.

Stan

> Regards,
> Andreas
> 
> > --- config.gcc.orig     Sun May 12 10:44:32 2002
> > +++ config.gcc  Sun May 12 10:45:47 2002
> > @@ -3650,8 +3650,8 @@
> >                         fi
> >                         ;;
> >         esac
> > -       c_target_objs="rs6000-c.o"
> > -       cxx_target_objs="rs6000-c.o"
> > +       c_target_objs="${c_target_objs} rs6000-c.o"
> > +       cxx_target_objs="${cxx_target_objs} rs6000-c.o"
> >         tmake_file="${tmake_file} rs6000/t-rs6000-c-rule"
> >         ;;
> >  sparc*-*-*)


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