@@ -96,7 +96,7 @@ CFLAGS += -Woverride-init -Wmissing-prototypes -Wstrict-prototypes
autodepend-flags = -MMD -MF $(dir $*).$(notdir $*).d
-LDFLAGS += $(CFLAGS)
+LDFLAGS += -nostdlib
$(libcflat): $(cflatobjs)
$(AR) rcs $@ $^
@@ -60,7 +60,7 @@ libeabi = lib/arm/libeabi.a
eabiobjs = lib/arm/eabi_compat.o
FLATLIBS = $(libcflat) $(LIBFDT_archive) $(libeabi)
-%.elf: LDFLAGS = -nostdlib $(arch_LDFLAGS)
+%.elf: LDFLAGS += $(arch_LDFLAGS)
%.elf: %.o $(FLATLIBS) $(SRCDIR)/arm/flat.lds $(cstart.o)
$(CC) $(CFLAGS) -c -o $(@:.elf=.aux.o) $(SRCDIR)/lib/auxinfo.c \
-DPROGNAME=\"$(@:.elf=.flat)\" -DAUXFLAGS=$(AUXFLAGS)
@@ -49,7 +49,7 @@ OBJDIRS += lib/powerpc
FLATLIBS = $(libcflat) $(LIBFDT_archive)
%.elf: CFLAGS += $(arch_CFLAGS)
-%.elf: LDFLAGS = $(arch_LDFLAGS) -nostdlib -pie -n
+%.elf: LDFLAGS += $(arch_LDFLAGS) -pie -n
%.elf: %.o $(FLATLIBS) $(SRCDIR)/powerpc/flat.lds $(cstart.o) $(reloc.o)
$(CC) $(CFLAGS) -c -o $(@:.elf=.aux.o) $(SRCDIR)/lib/auxinfo.c \
-DPROGNAME=\"$@\"
@@ -76,7 +76,7 @@ CFLAGS += -O2
CFLAGS += -march=zEC12
CFLAGS += -mbackchain
CFLAGS += -fno-delete-null-pointer-checks
-LDFLAGS += -nostdlib -Wl,--build-id=none
+LDFLAGS += -Wl,--build-id=none
# We want to keep intermediate files
.PRECIOUS: %.o %.lds
@@ -31,7 +31,7 @@ endif
OBJDIRS += lib/x86
-$(libcflat): LDFLAGS += -nostdlib $(arch_LDFLAGS)
+$(libcflat): LDFLAGS += $(arch_LDFLAGS)
$(libcflat): CFLAGS += -ffreestanding -I $(SRCDIR)/lib -I lib
COMMON_CFLAGS += -m$(bits)
@@ -62,7 +62,7 @@ else
# We want to keep intermediate file: %.elf and %.o
.PRECIOUS: %.elf %.o
-%.elf: LDFLAGS = -nostdlib $(arch_LDFLAGS)
+%.elf: LDFLAGS += $(arch_LDFLAGS)
%.elf: %.o $(FLATLIBS) $(SRCDIR)/x86/flat.lds $(cstart.o)
$(LD) $(LDFLAGS) -T $(SRCDIR)/x86/flat.lds -o $@ \
$(filter %.o, $^) $(FLATLIBS)
Currently the LDFLAGS settings from the main Makefile are ignored in most architecture specific directories (except s390x), which is very confusing when you try to add a linker switch for all architectures. Let's change this so that all architectures extend the common LDFLAGS instead of replacing them. So it is sufficient now to specify the "-nostdlib" switch in the main Makefile now instead of repeating it everywhere. While we're at it, avoid to repeat the whole set of CFLAGS in the common LDFLAGS - the options that are meant for the C compiler should not be exposed unconditionally to the linker. Signed-off-by: Thomas Huth <thuth@redhat.com> --- Makefile | 2 +- arm/Makefile.common | 2 +- powerpc/Makefile.common | 2 +- s390x/Makefile | 2 +- x86/Makefile.common | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-)