X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=Make.defaults;h=e541ea86d77055f0ed561e52ffec9b17f59d9128;hb=refs%2Fheads%2Fmaster;hp=8037303f2a9133e24ba5e679c8642eca119c2cae;hpb=176953673e992bd3812c32dc5d13eb8fa9b3c5b7;p=debian%2Felilo diff --git a/Make.defaults b/Make.defaults index 8037303..e541ea8 100644 --- a/Make.defaults +++ b/Make.defaults @@ -1,6 +1,7 @@ # # Copyright (C) 2001-2003 Hewlett-Packard Co. # Contributed by Stephane Eranian +# Contributed by Chandramouli Narayanan # # This file is part of ELILO, the LINUX EFI boot loader. # @@ -54,7 +55,7 @@ CONFIG_machspec_netconfig=y # 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 @@ -62,13 +63,13 @@ CDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) 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-stack-protector -fno-strict-aliasing -fpic -fshort-wchar $(DEBUGFLAGS) +LDFLAGS = -nostdlib -znocombreloc INSTALL = install ifeq ($(CONFIG_machspec_netconfig),y) @@ -95,36 +96,29 @@ ifeq ($(CONFIG_chooser_textmenu),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 = /usr/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 = /usr/bin/ - CC = $(prefix)gcc - 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