Hi,
attached patch changes several things in the buildsystem: - Single instance of the CC build rule in Makefile, instantiated as necessary
- Remove manual static.o and option_table.o rules, they're now covered by those instances of the CC build rule
- Normalize object file paths, so it can be $(obj)/option_table.o instead of $(obj)/arch/i386/../../option_table.o now
- Add -pipe to compiler flags. It might be detrimental on rare scenarios (building with extremly high disk bandwidth, eg. RAM disk), but it significantly helps on win32 (which seems to cache less aggressively than most unix-alikes)
- Silence stderr on hostname and domainname invocations (cosmetic fix for cygwin)
- Test for -Wa,--divide functionality of the target compiler (taken from abuild). It might be possible to remove most patches in crossgcc with that.
- Report build of failover.inc and romstage.inc
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de
Patrick Georgi wrote:
- Single instance of the CC build rule in Makefile, instantiated as
necessary
Haha, wow, that really looks, interesting.. Not at all saying there's any better way.
- Report build of failover.inc and romstage.inc
Are these built into assembly files? Are those files named .S? What does .inc mean?
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de
Acked-by: Peter Stuge peter@stuge.se
Am 16.03.2010 12:57, schrieb Peter Stuge:
Haha, wow, that really looks, interesting.. Not at all saying there's any better way.
Main advantage: a single rule that covers gcc invocations
Main disadvantage: Three levels of variable expansion ($, $$, $$$$)
Given that few people need to touch this, I considered the trade-off to be okay.
- Report build of failover.inc and romstage.inc
Are these built into assembly files? Are those files named .S? What does .inc mean?
Maybe they really should be called .S, as that's what they are. We use .inc by convention for assembly files that are supposed to be _inc_luded into some larger form (mostly by crt0_includes.h)
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de
Acked-by: Peter Stuge peter@stuge.se
Thanks, r5224
Patrick
On Tue, Mar 16, 2010 at 5:40 AM, Patrick Georgi patrick@georgi-clan.de wrote:
Hi,
attached patch changes several things in the buildsystem:
- Single instance of the CC build rule in Makefile, instantiated as
necessary
- Remove manual static.o and option_table.o rules, they're now covered
by those instances of the CC build rule
- Normalize object file paths, so it can be $(obj)/option_table.o
instead of $(obj)/arch/i386/../../option_table.o now
- Add -pipe to compiler flags. It might be detrimental on rare scenarios
(building with extremly high disk bandwidth, eg. RAM disk), but it significantly helps on win32 (which seems to cache less aggressively than most unix-alikes)
- Silence stderr on hostname and domainname invocations (cosmetic fix
for cygwin)
- Test for -Wa,--divide functionality of the target compiler (taken from
abuild). It might be possible to remove most patches in crossgcc with that.
Can crossgcc benefit from the -pipe flag too?
Marc