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: [buildrobot] [PATCH] r202527: ssa / ssanames restructure broke alpha-linux


Hi,

On Mon, 16 Sep 2013, Uros Bizjak wrote:

> > Why do you think so?  The t-* frags are includes via
> > ...
> > tmake_file=...$(srcdir)/config/i386/t-i386
> > ...
> > ifneq ($(tmake_file),)
> > include $(tmake_file)
> > endif
> > ...
> >
> > It's just that there's no t-alpha frag yet.
> 
> No, there is no problem with includes. The *dependencies* from t-*
> files are missing.

No, because the t- frags contain the dependencies and the t- frags are 
included by make verbatim, hence they're there when building target.o.

> Please compare i386.o dependencies from config/i386/t-i386 with
> $(out_object_file) from the resulting Makefile in the build directory.
> They are NOT the same,

Of course not.  But as $(out_object_file) is 'i386.o' they will be 
dependencies for the same target.

> the dependencies in the Makefile from the build
> directory for $(out_object_file) AKA i386.o are copied verbatim from
> Makefile.in.

Sure.  And the Makefile _includes_ the t- frags, which means for i386, 
that there are two dependency sets, once from Makefile.in copied into 
Makefile, for $(out_object_file), and once explicitely for i386.o from the 
t-i386 frag included by Makefile.

> >> These are "universal" dependecies used to compile config/${cpu-type}.o
> >> for any target, no matter what their t- fragment says.
> >
> > The universal deps are amended by the t- frags, as above.
> 
> No, they are copied directly from Makefile.in.

Sure they are amended.  I'm unsure what thing you're missing, but you do 
miss something.  Maybe that the 'include' directives in the Makefile are 
not autoconf directives by real make directives?  IOW, the generated 
Makefile is not all that's interpreted by make; it's amended with all the 
included frags when reading the Makefile.  If you don't believe me: make 
an experiment, on a i386 devel tree:

% cd gcc; make i386.o
% vi ..../config/i386/t-i386
... add something like "nonexisting" to the deps of i386.o ...
# make i386.o
make: *** No rule to make target `nonexisting', needed by `i386.o'.  Stop.

So, clearly, the deps from t-i386 _are_ used.


Ciao,
Michael.


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