aboutsummaryrefslogtreecommitdiff
path: root/Makefile.main
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2015-02-23 16:44:16 +0800
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-11-13 13:51:18 +1100
commit66680887735352de0f737b4f823d8e45d3993795 (patch)
tree9fad1bb58af82e6a440370fcc4469d46d3274b16 /Makefile.main
parent66625890a23fa3bf0d5dcaa3432e01dcbe54bc63 (diff)
downloadskiboot-66680887735352de0f737b4f823d8e45d3993795.zip
skiboot-66680887735352de0f737b4f823d8e45d3993795.tar.gz
skiboot-66680887735352de0f737b4f823d8e45d3993795.tar.bz2
libflash: Provide an internal parity implementation, to remove libgcc dependency
In commit 8f5b8616, we introduced a dependency on libgcc, for the __builtin_parityl() function in commit 6cfaa3ba. However, if we're building with a biarch compiler, we may not have a libgcc available. This commit removes the __builtin_parityl() call, and replaces with the equivalent instructions, and removes the dependency on libgcc. Although this is untested, I have confirmed that the __builtin_parityl() functions emits the same instructions (on power7 and power8, with gcc-4.9) as we're using in the parity() function. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> [stewart@linux.vnet.ibm.com: only use inline asm for skiboot build] Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'Makefile.main')
-rw-r--r--Makefile.main5
1 files changed, 2 insertions, 3 deletions
diff --git a/Makefile.main b/Makefile.main
index 71bce5d..78bab2d 100644
--- a/Makefile.main
+++ b/Makefile.main
@@ -158,7 +158,6 @@ OBJS += $(LIBPORE)
endif
OBJS += $(LIBC) $(CCAN) $(DEVSRC_OBJ)
OBJS_NO_VER = $(OBJS)
-EXTRA_LIBS = -Wl,-lgcc
ALL_OBJS = $(OBJS) version.o
ALL_OBJS_1 = $(ALL_OBJS) asm/dummy_map.o
@@ -168,12 +167,12 @@ $(TARGET).lid: $(TARGET).elf
$(call Q,OBJCOPY, $(OBJCOPY) -O binary -S $^ $@, $@)
$(TARGET).tmp.elf: $(ALL_OBJS_1) $(TARGET).lds $(KERNEL)
- $(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_1) $(EXTRA_LIBS) -o $@, $@)
+ $(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_1) -o $@, $@)
asm/real_map.o : $(TARGET).tmp.map
$(TARGET).elf: $(ALL_OBJS_2) $(TARGET).lds $(KERNEL)
- $(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_2) $(EXTRA_LIBS) -o $@, $@)
+ $(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_2) -o $@, $@)
$(SUBDIRS):
$(call Q,MKDIR,mkdir $@, $@)