浏览代码

be more pedantic when linking

Don't allow duplicate symbols, abort upon first error.
also make sure the linker script comes last for apps.

Signed-off-by: David Decotigny <decot@googlers.com>
Nigel Croxon 12 年之前
父节点
当前提交
9d6b441ec5
共有 2 个文件被更改,包括 7 次插入3 次删除
  1. 1 1
      gnu-efi-3.0/Make.defaults
  2. 6 2
      gnu-efi-3.0/apps/Makefile

+ 1 - 1
gnu-efi-3.0/Make.defaults

@@ -114,4 +114,4 @@ CFLAGS  += $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \
            -fno-merge-constants -ffreestanding -fno-stack-protector       \
            -fno-stack-check
 ASFLAGS += $(ARCH3264)
-LDFLAGS	+= -nostdlib --no-undefined
+LDFLAGS	+= -nostdlib --warn-common --no-undefined --fatal-warnings

+ 6 - 2
gnu-efi-3.0/apps/Makefile

@@ -52,8 +52,12 @@ ifneq (,$(findstring FreeBSD,$(OS)))
 LDSCRIPT	= $(TOPDIR)/gnuefi/elf_$(ARCH)_fbsd_efi.lds
 endif
 
-LDFLAGS		+= -T $(LDSCRIPT) -shared -Bsymbolic -L../lib -L../gnuefi $(CRTOBJS)
-LOADLIBES	= -lefi -lgnuefi $(shell $(CC) $(ARCH3264) -print-libgcc-file-name)
+LDFLAGS		+= -shared -Bsymbolic -L../lib -L../gnuefi $(CRTOBJS)
+
+LOADLIBES	+= -lefi -lgnuefi
+LOADLIBES	+= $(shell $(CC) $(ARCH3264) -print-libgcc-file-name)
+LOADLIBES	+= -T $(LDSCRIPT)
+
 FORMAT		= efi-app-$(ARCH)
 
 TARGETS = t.efi t2.efi t3.efi t4.efi t5.efi t6.efi printenv.efi t7.efi tcc.efi modelist.efi route80h.efi