|
@@ -27,8 +27,6 @@ IMAGE_OFFSET := $(shell /bin/bash -c 'printf "0x%08x" \
|
|
|
$(CONFIG_BOOT_LINK_OFFSET)]')
|
|
|
endif
|
|
|
|
|
|
-LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
|
|
|
-
|
|
|
ifeq ($(CONFIG_MCOUNT),y)
|
|
|
ORIG_CFLAGS := $(KBUILD_CFLAGS)
|
|
|
KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
|
|
@@ -37,7 +35,25 @@ endif
|
|
|
LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \
|
|
|
-T $(obj)/../../kernel/vmlinux.lds
|
|
|
|
|
|
-$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(LIBGCC) FORCE
|
|
|
+#
|
|
|
+# Pull in the necessary libgcc bits from the in-kernel implementation.
|
|
|
+#
|
|
|
+lib1funcs-$(CONFIG_SUPERH32) := ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S \
|
|
|
+ lshrsi3.S
|
|
|
+lib1funcs-obj := \
|
|
|
+ $(addsuffix .o, $(basename $(addprefix $(obj)/, $(lib1funcs-y))))
|
|
|
+
|
|
|
+lib1funcs-dir := $(srctree)/arch/$(SRCARCH)/lib
|
|
|
+ifeq ($(BITS),64)
|
|
|
+ lib1funcs-dir := $(addsuffix $(BITS), $(lib1funcs-dir))
|
|
|
+endif
|
|
|
+
|
|
|
+KBUILD_CFLAGS += -I$(lib1funcs-dir)
|
|
|
+
|
|
|
+$(addprefix $(obj)/,$(lib1funcs-y)): $(obj)/%: $(lib1funcs-dir)/% FORCE
|
|
|
+ $(call cmd,shipped)
|
|
|
+
|
|
|
+$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(lib1funcs-obj) FORCE
|
|
|
$(call if_changed,ld)
|
|
|
@:
|
|
|
|