$(Q)$(INSTALL) -d $(dir $@)
$(Q)$(RM) $@ $@.$(2) $(dir $@)$(1)
@$(disp_ld)
- $(Q)$(LD) $(LDFLAGS-$(notdir $@)) -soname=$(notdir $@).$(2) \
- -o $(dir $@)$(1) $(START_FILE-$(notdir $@)) \
- --whole-archive $(firstword $^) --no-whole-archive \
+ $(Q)$(CC) $(LDFLAGS-$(notdir $@)) -Wl,-soname=$(notdir $@).$(2) \
+ -nostdlib -o $(dir $@)$(1) $(START_FILE-$(notdir $@)) \
+ -Wl,--whole-archive $(firstword $^) -Wl,--no-whole-archive \
$(LIBS-$(notdir $@)) $(LIBGCC) $(END_FILE-$(notdir $@))
$(Q)$(LN) -sf $(1) $@.$(2)
$(Q)$(LN) -sf $(1) $@
$(Q)$(INSTALL) -d $(dir $@)
$(Q)$(RM) $(1) $@
@$(disp_ld)
- $(Q)$(LD) $(LDFLAGS-$(notdir $@)) -o $(1) \
- -elf2flt -shared-lib-id $(2) $(top_builddir)lib/Scrt1.o \
- $(top_builddir)/lib/crti.o --whole-archive $(firstword $^) \
- --no-whole-archive $(LIBS-$(notdir $@)) $(LIBGCC) \
+ $(Q)$(CC) $(LDFLAGS-$(notdir $@)) -nostdlib -o $(1) \
+ -Wl,-elf2flt -Wl,-shared-lib-id $(2) $(top_builddir)lib/Scrt1.o \
+ $(top_builddir)/lib/crti.o -Wl,--whole-archive $(firstword $^) \
+ -Wl,--no-whole-archive $(LIBS-$(notdir $@)) $(LIBGCC) \
$(top_builddir)/lib/crtn.o
endef
$(Q)$(INSTALL) -d $(dir $@)
$(Q)$(RM) $@ $@.$(2) $(dir $@)$(1)
@$(disp_ld)
- $(Q)$(LD) $(LDFLAGS-$(notdir $@)) -soname=$(notdir $@).$(2) \
- -o $(dir $@)$(1) $(START_FILE-$(notdir $@)) $^ \
+ $(Q)$(CC) $(LDFLAGS-$(notdir $@)) -Wl,-soname=$(notdir $@).$(2) \
+ -nostdlib -o $(dir $@)$(1) $(START_FILE-$(notdir $@)) $^ \
$(LIBS-$(notdir $@)) $(LIBGCC) $(END_FILE-$(notdir $@))
$(Q)$(LN) -sf $(1) $@.$(2)
$(Q)$(LN) -sf $(1) $@
ldso :=
endif
+comma:=,
+space:= #
+
ifndef CROSS
CROSS=$(subst ",, $(strip $(CROSS_COMPILER_PREFIX)))
endif
ifeq ($(TARGET_ARCH),arm)
OPTIMIZATION+=-fstrict-aliasing
- CPU_LDFLAGS-$(ARCH_LITTLE_ENDIAN)+=-EL
- CPU_LDFLAGS-$(ARCH_BIG_ENDIAN)+=-EB
+ CPU_LDFLAGS-$(ARCH_LITTLE_ENDIAN)+=-Wl,-EL
+ CPU_LDFLAGS-$(ARCH_BIG_ENDIAN)+=-Wl,-EB
CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN)+=-mlittle-endian
CPU_CFLAGS-$(ARCH_BIG_ENDIAN)+=-mbig-endian
CPU_CFLAGS-$(CONFIG_GENERIC_ARM)+=
endif
ifeq ($(TARGET_ARCH),mips)
- CPU_LDFLAGS-$(ARCH_LITTLE_ENDIAN)+=-EL
- CPU_LDFLAGS-$(ARCH_BIG_ENDIAN)+=-EB
+ CPU_LDFLAGS-$(ARCH_LITTLE_ENDIAN)+=-Wl,-EL
+ CPU_LDFLAGS-$(ARCH_BIG_ENDIAN)+=-Wl,-EB
CPU_CFLAGS-$(CONFIG_MIPS_ISA_1)+=-mips1
CPU_CFLAGS-$(CONFIG_MIPS_ISA_2)+=-mips2 -mtune=mips2
CPU_CFLAGS-$(CONFIG_MIPS_ISA_3)+=-mips3 -mtune=mips3
CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32)+=-mips32 -mtune=mips32
CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64)+=-mips64 -mtune=mips32
ifeq ($(strip $(ARCH_BIG_ENDIAN)),y)
- CPU_LDFLAGS-$(CONFIG_MIPS_N64_ABI)+=-melf64btsmip
- CPU_LDFLAGS-$(CONFIG_MIPS_O32_ABI)+=-melf32btsmip
+ CPU_LDFLAGS-$(CONFIG_MIPS_N64_ABI)+=-Wl,-melf64btsmip
+ CPU_LDFLAGS-$(CONFIG_MIPS_O32_ABI)+=-Wl,-melf32btsmip
endif
ifeq ($(strip $(ARCH_LITTLE_ENDIAN)),y)
- CPU_LDFLAGS-$(CONFIG_MIPS_N64_ABI)+=-melf64ltsmip
- CPU_LDFLAGS-$(CONFIG_MIPS_O32_ABI)+=-melf32ltsmip
+ CPU_LDFLAGS-$(CONFIG_MIPS_N64_ABI)+=-Wl,-melf64ltsmip
+ CPU_LDFLAGS-$(CONFIG_MIPS_O32_ABI)+=-Wl,-melf32ltsmip
endif
CPU_CFLAGS-$(CONFIG_MIPS_N64_ABI)+=-mabi=64
CPU_CFLAGS-$(CONFIG_MIPS_O32_ABI)+=-mabi=32
endif
ifeq ($(TARGET_ARCH),nios)
- CPU_LDFLAGS-y+=-m32
- CPU_CFLAGS-y+=-m32
+ CPU_LDFLAGS-y+=-Wl,-m32
+ CPU_CFLAGS-y+=-Wl,-m32
endif
ifeq ($(TARGET_ARCH),sh)
OPTIMIZATION+=-fstrict-aliasing
OPTIMIZATION+= $(call check_gcc,-mprefergot,)
- CPU_LDFLAGS-$(ARCH_LITTLE_ENDIAN)+=-EL
- CPU_LDFLAGS-$(ARCH_BIG_ENDIAN)+=-EB
+ CPU_LDFLAGS-$(ARCH_LITTLE_ENDIAN)+=-Wl,-EL
+ CPU_LDFLAGS-$(ARCH_BIG_ENDIAN)+=-Wl,-EB
CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN)+=-ml
CPU_CFLAGS-$(ARCH_BIG_ENDIAN)+=-mb
CPU_CFLAGS-$(CONFIG_SH2)+=-m2
ifeq ($(TARGET_ARCH),sh64)
OPTIMIZATION+=-fstrict-aliasing
- CPU_LDFLAGS-$(ARCH_LITTLE_ENDIAN):=-EL
- CPU_LDFLAGS-$(ARCH_BIG_ENDIAN):=-EB
+ CPU_LDFLAGS-$(ARCH_LITTLE_ENDIAN):=-Wl,-EL
+ CPU_LDFLAGS-$(ARCH_BIG_ENDIAN):=-Wl,-EB
CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN):=-ml
CPU_CFLAGS-$(ARCH_BIG_ENDIAN):=-mb
CPU_CFLAGS-$(CONFIG_SH5)+=-m5-32media
endif
ifeq ($(TARGET_ARCH),h8300)
- CPU_LDFLAGS-$(CONFIG_H8300H)+= -ms8300h
- CPU_LDFLAGS-$(CONFIG_H8S) += -ms8300s
+ CPU_LDFLAGS-$(CONFIG_H8300H)+= -Wl,-ms8300h
+ CPU_LDFLAGS-$(CONFIG_H8S) += -Wl,-ms8300s
CPU_CFLAGS-$(CONFIG_H8300H) += -mh -mint32
CPU_CFLAGS-$(CONFIG_H8S) += -ms -mint32
endif
ifeq ($(TARGET_ARCH),cris)
- CPU_LDFLAGS-$(CONFIG_CRIS)+=-mcrislinux
- CPU_LDFLAGS-$(CONFIG_CRISV32)+=-mcrislinux
+ CPU_LDFLAGS-$(CONFIG_CRIS)+=-Wl,-mcrislinux
+ CPU_LDFLAGS-$(CONFIG_CRISV32)+=-Wl,-mcrislinux
CPU_CFLAGS-$(CONFIG_CRIS)+=-mlinux
PICFLAG:=-fpic
PIEFLAG_NAME:=-fpie
endif
ifeq ($(TARGET_ARCH),frv)
- CPU_LDFLAGS-$(CONFIG_FRV)+=-melf32frvfd
+ CPU_LDFLAGS-$(CONFIG_FRV)+=-Wl,-melf32frvfd
# Using -pie causes the program to have an interpreter, which is
# forbidden, so we must make do with -shared. Unfortunately,
# -shared by itself would get us global function descriptors
# and calls through PLTs, dynamic resolution of symbols, etc,
# which would break as well, but -Bsymbolic comes to the rescue.
- export LDPIEFLAG:=-shared -Bsymbolic
+ export LDPIEFLAG:=-Wl,-shared -Wl,-Bsymbolic
UCLIBC_LDSO=ld.so.1
endif
CFLAGS += $(call check_gcc,-std=gnu99,)
-LDFLAGS_NOSTRIP:=$(CPU_LDFLAGS-y) -shared --warn-common --warn-once -z combreloc
+LDFLAGS_NOSTRIP:=$(CPU_LDFLAGS-y) -Wl,-shared \
+ -Wl,--warn-common -Wl,--warn-once -Wl,-z,combreloc
# binutils-2.16.1 warns about ignored sections, 2.16.91.0.3 and newer are ok
#LDFLAGS_NOSTRIP+=$(call check_ld,--gc-sections)
ifeq ($(UCLIBC_BUILD_RELRO),y)
-LDFLAGS_NOSTRIP+=-z relro
+LDFLAGS_NOSTRIP+=-Wl,-z,relro
endif
ifeq ($(UCLIBC_BUILD_NOW),y)
-LDFLAGS_NOSTRIP+=-z now
+LDFLAGS_NOSTRIP+=-Wl,-z,now
endif
-LDFLAGS:=$(LDFLAGS_NOSTRIP) -z defs
+LDFLAGS:=$(LDFLAGS_NOSTRIP) -Wl,-z,defs
ifeq ($(DODEBUG),y)
#CFLAGS += -g3
CFLAGS += -O0 -g3
CFLAGS += $(OPTIMIZATION) $(XARCH_CFLAGS)
endif
ifeq ($(DOSTRIP),y)
-LDFLAGS += -s
+LDFLAGS += -Wl,-s
else
STRIPTOOL := true -Stripping_disabled
endif