From b623837257dcf414bb25d4eb68f8b73d5fd8ed74 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Tue, 18 Jul 2006 21:35:55 +0000 Subject: [PATCH] Automatic cross-compiler flags Detect cross-compiling flags (CROSSCFLAGS) automatically based on endian and word size differences. git-svn-id: svn://coreboot.org/openbios/openbios-devel@66 f158a5a8-5612-0410-a976-696ce0be7e32 --- Makefile | 5 +++-- config/examples/amd64_rules.xml | 1 - config/examples/cross-ppc_rules.xml | 1 - config/examples/cross-sparc32_rules.xml | 1 - config/examples/cross-sparc64_rules.xml | 1 - config/examples/sparc32_rules.xml | 1 - config/examples/sparc64_rules.xml | 1 - config/examples/x86_rules.xml | 1 - kernel/cross.h | 24 ------------------------ 9 files changed, 3 insertions(+), 33 deletions(-) diff --git a/Makefile b/Makefile index ccdaac1..d95a62b 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ ARCH= $(shell cat rules.xml |grep "^ARCH" |cut -d\= -f2|tr -d \ ) HOSTARCH=$(shell config/scripts/archname) +CROSSCFLAGS=$(shell config/scripts/crosscflags $(HOSTARCH) $(ARCH)) ODIR=obj-$(ARCH) all: info build @@ -53,12 +54,12 @@ xml: directories build: xml @printf "Building..." - @( $(MAKE) -f $(ODIR)/Makefile > $(ODIR)/build.log 2>&1 && echo "ok." ) || \ + @( $(MAKE) -f $(ODIR)/Makefile CROSSCFLAGS=$(CROSSCFLAGS) > $(ODIR)/build.log 2>&1 && echo "ok." ) || \ ( echo "error:"; tail -15 $(ODIR)/build.log ) build-verbose: @echo "Building..." - $(MAKE) -f $(ODIR)/Makefile + $(MAKE) -f $(ODIR)/Makefile "CROSSCFLAGS=$(CROSSCFLAGS)" run: @echo "Running..." diff --git a/config/examples/amd64_rules.xml b/config/examples/amd64_rules.xml index a5e8bec..c1407df 100644 --- a/config/examples/amd64_rules.xml +++ b/config/examples/amd64_rules.xml @@ -9,7 +9,6 @@ ARCH := amd64 ODIR := obj-$(ARCH) HOSTCC := gcc -CROSSCFLAGS := -DNATIVE_BITWIDTH_EQUALS_HOST_BITWIDTH -USWAP_ENDIANNESS HOSTCFLAGS := -O -g -fprofile-arcs -ftest-coverage -Wall -W -DFCOMPILER -DBOOTSTRAP $(CROSSCFLAGS) HOSTINCLUDES := -Iinclude -Ikernel/include -I$(ODIR)/target/include diff --git a/config/examples/cross-ppc_rules.xml b/config/examples/cross-ppc_rules.xml index d6733fd..e43b556 100644 --- a/config/examples/cross-ppc_rules.xml +++ b/config/examples/cross-ppc_rules.xml @@ -9,7 +9,6 @@ ARCH := ppc ODIR := obj-$(ARCH) HOSTCC := gcc -CROSSCFLAGS := -DNATIVE_BITWIDTH_SMALLER_THAN_HOST_BITWIDTH -DSWAP_ENDIANNESS HOSTCFLAGS := -Os -Wall -W -DFCOMPILER -DBOOTSTRAP $(CROSSCFLAGS) HOSTINCLUDES := -Iinclude -Ikernel/include -I$(ODIR)/target/include # diff --git a/config/examples/cross-sparc32_rules.xml b/config/examples/cross-sparc32_rules.xml index d2a9736..536559c 100644 --- a/config/examples/cross-sparc32_rules.xml +++ b/config/examples/cross-sparc32_rules.xml @@ -9,7 +9,6 @@ ARCH := sparc32 ODIR := obj-$(ARCH) HOSTCC := gcc -CROSSCFLAGS := -DNATIVE_BITWIDTH_SMALLER_THAN_HOST_BITWIDTH -DSWAP_ENDIANNESS HOSTCFLAGS := -O2 -g -Wall -W -DFCOMPILER -DBOOTSTRAP $(CROSSCFLAGS) HOSTINCLUDES := -Iinclude -Ikernel/include -I$(ODIR)/target/include diff --git a/config/examples/cross-sparc64_rules.xml b/config/examples/cross-sparc64_rules.xml index f775309..3ddab20 100644 --- a/config/examples/cross-sparc64_rules.xml +++ b/config/examples/cross-sparc64_rules.xml @@ -9,7 +9,6 @@ ARCH := sparc64 ODIR := obj-$(ARCH) HOSTCC := gcc -CROSSCFLAGS := -DNATIVE_BITWIDTH_SMALLER_THAN_HOST_BITWIDTH -DSWAP_ENDIANNESS HOSTCFLAGS := -O2 -g -Wall -W -DFCOMPILER -DBOOTSTRAP $(CROSSCFLAGS) HOSTINCLUDES := -Iinclude -Ikernel/include -I$(ODIR)/target/include diff --git a/config/examples/sparc32_rules.xml b/config/examples/sparc32_rules.xml index c7ce858..a3c1132 100644 --- a/config/examples/sparc32_rules.xml +++ b/config/examples/sparc32_rules.xml @@ -9,7 +9,6 @@ ARCH := sparc32 ODIR := obj-$(ARCH) HOSTCC := gcc -CROSSCFLAGS := -DNATIVE_BITWIDTH_SMALLER_THAN_HOST_BITWIDTH -USWAP_ENDIANNESS HOSTCFLAGS := -O2 -g -Wall -W -DFCOMPILER -DBOOTSTRAP $(CROSSCFLAGS) HOSTINCLUDES := -Iinclude -Ikernel/include -I$(ODIR)/target/include diff --git a/config/examples/sparc64_rules.xml b/config/examples/sparc64_rules.xml index abe4976..2f293e0 100644 --- a/config/examples/sparc64_rules.xml +++ b/config/examples/sparc64_rules.xml @@ -9,7 +9,6 @@ ARCH := sparc64 ODIR := obj-$(ARCH) HOSTCC := gcc -CROSSCFLAGS := -DNATIVE_BITWIDTH_SMALLER_THAN_HOST_BITWIDTH -USWAP_ENDIANNESS HOSTCFLAGS := -O2 -g -Wall -W -DFCOMPILER -DBOOTSTRAP $(CROSSCFLAGS) HOSTINCLUDES := -Iinclude -Ikernel/include -I$(ODIR)/target/include diff --git a/config/examples/x86_rules.xml b/config/examples/x86_rules.xml index 5a1a5de..0b0ddfe 100644 --- a/config/examples/x86_rules.xml +++ b/config/examples/x86_rules.xml @@ -9,7 +9,6 @@ ARCH := x86 ODIR := obj-$(ARCH) HOSTCC := gcc -CROSSCFLAGS := -DNATIVE_BITWIDTH_SMALLER_THAN_HOST_BITWIDTH -USWAP_ENDIANNESS HOSTCFLAGS := -O2 -g -Wall -W -DFCOMPILER -DBOOTSTRAP $(CROSSCFLAGS) -Wno-unused HOSTINCLUDES := -Iinclude -Ikernel/include -I$(ODIR)/target/include diff --git a/kernel/cross.h b/kernel/cross.h index 81be5ed..480dace 100644 --- a/kernel/cross.h +++ b/kernel/cross.h @@ -14,30 +14,6 @@ * unchanged memory access for performance. */ -#if 0 -// This is being moved to rules.xml for now. - -#ifdef FCOMPILER - -/* FIXME these should be automatically determinded. - * Manually setting them here is a PITA. - */ - -#define NATIVE_BITWIDTH_LARGER_THAN_HOST_BITWIDTH -//#define NATIVE_BITWIDTH_EQUALS_HOST_BITWIDTH -//#define NATIVE_BITWIDTH_SMALLER_THAN_HOST_BITWIDTH - -//#define SWAP_ENDIANNESS -#undef SWAP_ENDIANNESS - -#else /* FCOMPILER */ - -#define NATIVE_BITWIDTH_EQUALS_HOST_BITWIDTH -#undef SWAP_ENDIANNESS - -#endif -#endif - /* byte swapping */ #ifndef SWAP_ENDIANNESS