The second question is arguable. Preprocessing certainly is not compilation in the classical computer-science sense.
The output of a macro assembler after it has expanded macros is no more object code ready for execution by the host CPU than the output of the C preprocessor is.
To extend your reasoning, enumerate the other "steps of compilation". Assembly is also compilation. So is optimization. So is linking.
What does that leave?
Well, uh, "compilation".
As is often the case, terms have contextual definitions. In some contexts, everything that happens after you execute gcc is "compilation". In others, gcc does a whole bunch of things, only some of which are "compilation".
I think it was astute of Mr. Edge to leave out the preprocessor-output-as-source-code angle, frankly. A close look at that example makes the case against Red Hat's decision with recent kernel SRPMs stronger, not weaker--and that's not the conclusion he wanted to reach.
Good polemics. Substandard journalism.
Copyright © 2018, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds