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>
This commit is contained in:
Nigel Croxon 2013-06-25 08:47:03 -04:00
parent 401d5b7194
commit 9d6b441ec5
2 changed files with 7 additions and 3 deletions

View File

@ -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

View File

@ -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