[makefile] Kill off arch/$(ARCH)/Config
authorMichael Brown <mcb30@etherboot.org>
Tue, 7 Oct 2008 21:46:43 +0000 (22:46 +0100)
committerMichael Brown <mcb30@etherboot.org>
Tue, 7 Oct 2008 21:46:43 +0000 (22:46 +0100)
The arch/i386/Config file has long been marked as deprecated.  Move all
the pertinent bits to arch/i386/Makefile instead and remove
arch/i386/Config.

src/Makefile
src/arch/i386/Config [deleted file]
src/arch/i386/Makefile

index 6c42da6..354ca00 100644 (file)
@@ -73,19 +73,6 @@ noargs : blib $(BIN)/NIC $(BIN)/gpxe.dsk $(BIN)/gpxe.iso $(BIN)/gpxe.usb $(BIN)/
 #
 ARCH           := $(shell uname -m | sed -e 's,i[3456789]86,i386,')
 
-# handle x86_64 like i386, but set -m32 option for 32bit code only
-ifeq ($(ARCH),x86_64)
-ARCH           := i386
-CFLAGS         += -m32
-ASFLAGS         += --32
-LDFLAGS         += -m elf_i386
-endif
-
-# Drag in architecture-specific Config
-#
-MAKEDEPS       += arch/$(ARCH)/Config
-include arch/$(ARCH)/Config
-
 # Common flags
 #
 CFLAGS         += -I include -I arch/$(ARCH)/include -I . -DARCH=$(ARCH)
diff --git a/src/arch/i386/Config b/src/arch/i386/Config
deleted file mode 100644 (file)
index 1c086ec..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-# -*- makefile -*-
-
-##############################################################################
-##############################################################################
-#
-# IMPORTANT!
-# 
-# The use of this file to set options that affect only single object
-# files is deprecated, because changing anything in this file results
-# in a complete rebuild, which is slow.  All options are gradually
-# being migrated to config.h, which does not suffer from this problem.
-# 
-# Only options that affect the entire build (e.g. overriding the $(CC)
-# Makefile variable) should be placed in here.
-#
-##############################################################################
-##############################################################################
-
-
-# Config for i386 Etherboot
-#
-# Do not delete the tag OptionDescription and /OptionDescription
-# It is used to automatically generate the documentation.
-#
-# @OptionDescrition@
-#
-#      BIOS interface options:
-#
-#      -DPCBIOS
-#                      Compile in support for the normal pcbios
-#      -DLINUXBIOS
-#                      Compile in support for LinuxBIOS
-#      -DBBS_BUT_NOT_PNP_COMPLIANT
-#                      Some BIOSes claim to be PNP but they don't conform
-#                      to the BBS spec which specifies that ES:DI must
-#                      point to the string $PnP on entry. This option
-#                      works around those. This option must be added to
-#                      LCONFIG.
-#      -DNO_DELAYED_INT
-#                      Take control as soon as BIOS detects the ROM.
-#                      Normally hooks onto INT18H or INT19H. Use only if you
-#                      have a very non-conformant BIOS as it bypasses
-#                      BIOS initialisation of devices. This only works for
-#                      legacy ROMs, i.e. PCI_PNP_HEADER not defined.
-#                      This option was formerly called NOINT19H.
-#      -DBOOT_INT18H
-#                      Etherboot normally hooks onto INT19H for legacy ROMs.
-#                      You can choose to hook onto INT18H (BASIC interpreter
-#                      entry point) instead. This entry point is used when
-#                      all boot devices have been exhausted. This option must
-#                      be added to LCONFIG.
-#      -DCONFIG_PCI_DIRECT
-#                      Define this for PCI BIOSes that do not implement
-#                      BIOS32 or not correctly. Normally not needed.
-#                      Only works for BIOSes of a certain era.
-#      -DCONFIG_TSC_CURRTICKS
-#                      Uses the processor time stamp counter instead of reading
-#                      the BIOS time counter.  This allows Etherboot to work
-#                      even without a BIOS.  This only works on late model
-#                      486s and above.
-#      -DCONFIG_NO_TIMER2
-#                      Some systems do not have timer2 implemented.
-#                      If you have a RTC this will allow you to roughly calibrate
-#                      it using outb instructions.
-#
-#      Extended cpu options
-
-#      -DCONFIG_X86_64 
-#                      Compile in support for booting x86_64 64bit binaries.
-#
-#      PXE loader options:
-#
-#      -DPXELOADER_KEEP_ALL
-#                      Prevent PXE loader (prefix) from unloading the
-#                      PXE stack.  You will want to use this if, for
-#                      example, you are booting via PXE-on-floppy.
-#                      You may want to use it under certain
-#                      circumstances when using the Etherboot UNDI
-#                      driver; these are complex and best practice is
-#                      not yet established.
-#                      
-#      Obscure options you probably don't need to touch:
-#
-#      -DIGNORE_E820_MAP
-#                      Ignore the memory map returned by the E820 BIOS
-#                      call.  May be necessary on some buggy BIOSes.
-#      -DT503_AUI
-#                      Use AUI by default on 3c503 cards.
-#      -DFLATTEN_REAL_MODE
-#                      Use 4GB segment limits when calling out to or
-#                      returning to real-mode code.  This is necessary to
-#                      work around some buggy code (e.g. OpenBSD's pxeboot)
-#                      that uses flat real-mode without being sufficiently
-#                      paranoid about the volatility of its segment limits.
-
-#
-# @/OptionDescription@
-
-# BIOS select don't change unless you know what you are doing
-# CFLAGS+=     -DPCBIOS
-
-# Compile in k8/hammer support
-# CFLAGS+=     -DCONFIG_X86_64
-
-# Options to make a version of Etherboot that will work under linuxBIOS.
-# CFLAGS+=     -DLINUXBIOS -DCONFIG_TSC_CURRTICKS  -DCONSOLE_SERIAL -DCOMCONSOLE=0x3f8 -DCOMPRESERVE -DCONFIG_PCI_DIRECT -DELF_IMAGE 
-
-# These options affect the loader that is prepended to the Etherboot image
-# LCONFIG+=    -DBBS_BUT_NOT_PNP_COMPLIANT
-# LCONFIG+=    -DBOOT_INT18H
-
-# Produce code that will work with OpenBSD's pxeboot
-# CFLAGS+=     -DFLATTEN_REAL_MODE
-
-CFLAGS+= -fstrength-reduce -fomit-frame-pointer -march=i386
-# Squeeze the code in as little space as possible.
-# gcc3 needs a different syntax to gcc2 if you want to avoid spurious warnings.
-GCC_VERSION     = $(subst ., ,$(shell $(CC) -dumpversion))
-GCC_MAJORVERSION = $(firstword $(GCC_VERSION))
-ifeq ($(GCC_MAJORVERSION),2)
-CFLAGS+=       -malign-jumps=1 -malign-loops=1 -malign-functions=1
-else
-CFLAGS+=       -falign-jumps=1 -falign-loops=1 -falign-functions=1
-endif
-
-# this is almost always a win. the kernel uses it, too.
-CFLAGS+= -mpreferred-stack-boundary=2
-
-# use regparm for all functions - C functions called from assembly (or
-# vice versa) need __cdecl now
-CFLAGS+= -mregparm=3
-
-# use -mrtd (same __cdecl requirements as above)
-CFLAGS+= -mrtd
-
-# this is the logical complement to -mregparm=3. 
-# it doesn't currently buy us anything, but if anything ever tries
-# to return small structures, let's be prepared
-CFLAGS+= -freg-struct-return
-
-LDFLAGS+=      -N --no-check-sections
-
-ifeq "$(shell uname -s)" "FreeBSD"
-CFLAGS+=       -DIMAGE_FREEBSD -DELF_IMAGE -DAOUT_IMAGE
-endif
-
-# An alternate location for isolinux.bin can be set here
-# ISOLINUX_BIN=/path/to/isolinux.bin
index 97ca077..c5d139e 100644 (file)
@@ -1,3 +1,59 @@
+# Force i386-only instructions
+#
+CFLAGS         += -march=i386
+
+# Code size reduction.
+#
+CFLAGS         += -fstrength-reduce -fomit-frame-pointer
+
+# Code size reduction.  gcc3 needs a different syntax to gcc2 if you
+# want to avoid spurious warnings.
+#
+GCC_VERSION    := $(subst ., ,$(shell $(CC) -dumpversion))
+GCC_MAJOR      := $(firstword $(GCC_VERSION))
+ifeq ($(GCC_MAJOR),2)
+CFLAGS         += -malign-jumps=1 -malign-loops=1 -malign-functions=1
+else
+CFLAGS         += -falign-jumps=1 -falign-loops=1 -falign-functions=1
+endif
+
+# Code size reduction.  This is almost always a win.  The kernel uses it, too.
+#
+CFLAGS         += -mpreferred-stack-boundary=2
+
+# Code size reduction.  Use regparm for all functions - C functions
+# called from assembly (or vice versa) need __cdecl now
+#
+CFLAGS         += -mregparm=3
+
+# Code size reduction.  Use -mrtd (same __cdecl requirements as above)
+CFLAGS         += -mrtd
+
+# Code size reduction.  This is the logical complement to -mregparm=3.
+# It doesn't currently buy us anything, but if anything ever tries to
+# return small structures, let's be prepared
+#
+CFLAGS         += -freg-struct-return
+
+# Stop ld from complaining about our customised linker script
+#
+LDFLAGS                += -N --no-check-sections
+
+# Force 32-bit code even on an x86-64 machine
+#
+CFLAGS         += -m32
+ASFLAGS         += --32
+LDFLAGS         += -m elf_i386
+
+# EFI requires -fshort-wchar, and nothing else currently uses wchar_t
+#
+CFLAGS         += -fshort-wchar
+
+# We need to undefine the default macro "i386" when compiling .S
+# files, otherwise ".arch i386" translates to ".arch 1"...
+#
+CFLAGS                 += -Ui386
+
 # Locations of utilities
 #
 ISOLINUX_BIN   = /usr/lib/syslinux/isolinux.bin
@@ -25,11 +81,6 @@ NON_AUTO_SRCS        += arch/i386/core/wince_loader.c
 OBJS_unnrv2b           = unnrv2b unnrv2b16
 CFLAGS_unnrv2b16       = -DCODE16
 
-# We need to undefine the default macro "i386" when compiling .S
-# files, otherwise ".arch i386" translates to ".arch 1"...
-#
-CFLAGS_S               += -Ui386
-
 # The i386 linker script
 #
 LDSCRIPT               = arch/i386/scripts/i386.lds