vserver 1.9.3
[linux-2.6.git] / arch / ia64 / Makefile
index f2ca1e2..a32ebd6 100644 (file)
@@ -13,6 +13,8 @@ READELF := $(CROSS_COMPILE)readelf
 
 export AWK
 
+CHECKFLAGS     += -m64 -D__ia64=1 -D__ia64__=1 -D_LP64 -D__LP64__
+
 OBJCOPYFLAGS   := --strip-all
 LDFLAGS_vmlinux        := -static
 LDFLAGS_MODULE += -T $(srctree)/arch/ia64/module.lds
@@ -20,14 +22,12 @@ AFLAGS_KERNEL       := -mconstant-gp
 EXTRA          :=
 
 cflags-y       := -pipe $(EXTRA) -ffixed-r13 -mfixed-range=f12-f15,f32-f127 \
-                  -falign-functions=32 -frename-registers
+                  -falign-functions=32 -frename-registers -fno-optimize-sibling-calls
 CFLAGS_KERNEL  := -mconstant-gp
 
-GCC_VERSION=$(shell $(CC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' | cut -f1 -d'.')
-GCC_MINOR_VERSION=$(shell $(CC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' | cut -f2 -d'.')
-
-GAS_STATUS     = $(shell $(srctree)/arch/ia64/scripts/check-gas $(CC) $(OBJDUMP))
-CPPFLAGS += $(shell $(srctree)/arch/ia64/scripts/toolchain-flags $(CC) $(OBJDUMP) $(READELF))
+GCC_VERSION     := $(call cc-version)
+GAS_STATUS     = $(shell $(srctree)/arch/ia64/scripts/check-gas "$(CC)" "$(OBJDUMP)")
+CPPFLAGS += $(shell $(srctree)/arch/ia64/scripts/toolchain-flags "$(CC)" "$(OBJDUMP)" "$(READELF)")
 
 ifeq ($(GAS_STATUS),buggy)
 $(error Sorry, you need a newer version of the assember, one that is built from        \
@@ -37,16 +37,14 @@ $(error Sorry, you need a newer version of the assember, one that is built from
                ftp://ftp.hpl.hp.com/pub/linux-ia64/gas-030124.tar.gz)
 endif
 
-ifeq ($(GCC_VERSION),2)
+ifneq ($(shell if [ $(GCC_VERSION) -lt 0300 ] ; then echo "bad"; fi ;),)
 $(error Sorry, your compiler is too old.  GCC v2.96 is known to generate bad code.)
 endif
 
-ifeq ($(GCC_VERSION),3)
- ifeq ($(GCC_MINOR_VERSION),4)
+ifeq ($(GCC_VERSION),0304)
 # Workaround Itanium 1 bugs in gcc 3.4.
 #      cflags-$(CONFIG_ITANIUM)        += -mtune=merced
        cflags-$(CONFIG_MCKINLEY)       += -mtune=mckinley
- endif
 endif
 
 cflags-$(CONFIG_ITANIUM_BSTEP_SPECIFIC)        += -mb-step