#
# Copyright (C) 2001-2003 Hewlett-Packard Co.
# Contributed by Stephane Eranian <eranian@hpl.hp.com>
+# Contributed by Chandramouli Narayanan<mouli@linux.intel.com>
#
# This file is part of ELILO, the LINUX EFI boot loader.
#
# They are installed as part of the GNU-EFI package installation
#
EFIINC = /usr/include/efi
-GNUEFILIB = /usr/lib
+GNUEFILIB = /usr/lib
EFILIB = /usr/lib
EFICRT0 = /usr/lib
TOPDIR =
ARCH = $(shell uname -m | sed s,i[3456789]86,ia32,)
-INCDIR = -I. -I$(TOPDIR) -I$(EFIINC) -I$(EFIINC)/$(ARCH) -I$(EFIINC)/protocol
+INCDIR = -I. -I$(TOPDIR) -I$(EFIINC) -I$(EFIINC)/$(ARCH) -I$(EFIINC)/protocol -I$(TOPDIR)/efi110
CPPFLAGS = -DCONFIG_$(ARCH)
OPTIMFLAGS = -O2
DEBUGFLAGS = -Wall
-CFLAGS = $(OPTIMFLAGS) -fpic -fshort-wchar $(DEBUGFLAGS)
-LDFLAGS = -nostdlib
+CFLAGS = $(OPTIMFLAGS) -fno-strict-aliasing -fpic -fshort-wchar $(DEBUGFLAGS)
+LDFLAGS = -nostdlib -znocombreloc
INSTALL = install
ifeq ($(CONFIG_machspec_netconfig),y)
CFLAGS += -DCONFIG_CHOOSER_TEXTMENU
endif
+prefix = /usr/bin/
+ # Redhat 8.0 ia32 gcc-3.x version is reported to produce working EFI binaries.
+ # Redhat 9.0 ia32 gcc-3.x version is reported to produce BAD binaries.
+CC = $(prefix)gcc
+AS = $(prefix)as
+LD = $(prefix)ld
+AR = $(prefix)ar
+RANLIB = $(prefix)ranlib
+OBJCOPY = $(prefix)objcopy
+
+# Use Modified binutils that supports x86_64 using UEFI ABI
+ifeq ($(ARCH), x86_64)
+ CFLAGS += -DEFI_FUNCTION_WRAPPER
+ OBJCOPY = /usr/bin/objcopy
+endif
+
ifeq ($(ARCH),ia64)
- prefix =
- prefix = /opt/gcc3.1/bin/
- CC = $(prefix)gcc
- AS = $(prefix)as
- LD = $(prefix)ld
- LD = ld
- AR = $(prefix)ar
- RANLIB = $(prefix)ranlib
- OBJCOPY = $(prefix)objcopy
-
-GCC_VERSION=$(shell $(CROSS_COMPILE)$(CC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' | cut -f1 -d'.')
-
-ifneq ($(GCC_VERSION),2)
+ GCC_VERSION=$(shell $(CROSS_COMPILE)$(CC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' | cut -f1 -d'.')
+
+ ifneq ($(GCC_VERSION),2)
CFLAGS += -frename-registers
-endif
-#
-# EFI specs allows only lower floating point partition to be used
-#
-# Redhat 8.0 gcc-3.x version is reported to produce working EFI binaries.
-# Redhat 9.0 gcc-3.x version is reported to produce BAD binaries.
-#
-CFLAGS += -mfixed-range=f32-f127
-else
- ifeq ($(ARCH),ia32)
- prefix =
- CC = $(prefix)gcc3
- AS = $(prefix)as
- LD = $(prefix)ld
- AR = $(prefix)ar
- RANLIB = $(prefix)ranlib
- OBJCOPY = $(prefix)objcopy
endif
+
+ # EFI specs allows only lower floating point partition to be used
+ CFLAGS += -mfixed-range=f32-f127
endif