Tup: LLVM adjustments

This commit is contained in:
Emery Hemingway 2020-02-11 13:53:42 +01:00
parent da0c9da996
commit e0b84beafa
5 changed files with 14 additions and 10 deletions

View File

@ -34,7 +34,7 @@ LIBGCC = `$(CC) $(CC_MARCH) -print-libgcc-file-name`
!ld = | $(DEV_DIR)/<lib> $(DEV_DIR)/<pkg-config> |> ^o LD %o^ $(LD) $(LDFLAGS) `$(PKG_CONFIG) --libs $(LIBS)` --whole-archive --start-group %f --no-whole-archive --end-group -o %o |> !ld = | $(DEV_DIR)/<lib> $(DEV_DIR)/<pkg-config> |> ^o LD %o^ $(LD) $(LDFLAGS) `$(PKG_CONFIG) --libs $(LIBS)` --whole-archive --start-group %f --no-whole-archive --end-group -o %o |>
!incbin = |> ^ incbin %f^ \ !incbin = |> ^ incbin %f^ \
export SYM=_binary_`echo %f | sed 's/\./_/g'`; \ export SYM=_binary_`echo %b | sed 's/\./_/g'`; \
echo ".global ${SYM}_start, ${SYM}_end; .data; .align 4; ${SYM}_start:; .incbin \"%f\"; ${SYM}_end:" \ echo ".global ${SYM}_start, ${SYM}_end; .data; .align 4; ${SYM}_start:; .incbin \"%f\"; ${SYM}_end:" \
| llvm-mc -filetype=obj - > %o \ | llvm-mc -filetype=obj - > %o \
|> binary_%b.o |> binary_%b.o

View File

@ -18,8 +18,13 @@ endif
-e "s/^\(\w\+\) W/.text; .weak \1; .type \1,%%function; \1:/" \ -e "s/^\(\w\+\) W/.text; .weak \1; .type \1,%%function; \1:/" \
-e "s/^\(\w\+\) B \(\w\+\)\$/.bss; .global \1; .type \1,%%object; .size \1,\2; \1:/" \ -e "s/^\(\w\+\) B \(\w\+\)\$/.bss; .global \1; .type \1,%%object; .size \1,\2; \1:/" \
-e "s/^\(\w\+\) U/.text; .global \1; $(ASM_SYM_DEPENDENCY)/" \ -e "s/^\(\w\+\) U/.text; .global \1; $(ASM_SYM_DEPENDENCY)/" \
%f \ %f > stub.s; \
| $(CC) $(CC_MARCH) -x assembler -c - -Wl,-shared -Wl,-T&(LD_SCRIPT_SO) -o %o \ $(CC) $(CC_MARCH) -x assembler -c stub.s; \
$(LD) -o %o \
-shared \
-T &(LD_SCRIPT_SO) \
stub.o; \
rm -v stub.o stub.s; \
|> $(DEV_LIB_DIR)/%B.lib.so $(DEV_DIR)/<lib> |> $(DEV_LIB_DIR)/%B.lib.so $(DEV_DIR)/<lib>
BASE_DIR = $(GENODE_DIR)/repos/base BASE_DIR = $(GENODE_DIR)/repos/base

View File

@ -41,7 +41,11 @@ LDFLAGS += -Ttext=0x01000000
LDFLAGS += -T$(BASE_DIR)/src/ld/genode.ld LDFLAGS += -T$(BASE_DIR)/src/ld/genode.ld
LDFLAGS += -T$(REP_DIR)/src/ld/stack_area.ld LDFLAGS += -T$(REP_DIR)/src/ld/stack_area.ld
ifdef IS_LLVM
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs cxx-baremetal`
else
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs cxx` PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs cxx`
endif
: {obj} | \ : {obj} | \
$(DEV_DIR)/<lib> \ $(DEV_DIR)/<lib> \

View File

@ -104,8 +104,8 @@ ifdef IS_LLVM
: supc++.tmp |> @(OBJCOPY) $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) %f %o |> supc++.o : supc++.tmp |> @(OBJCOPY) $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) %f %o |> supc++.o
: supc++-baremetal.tmp |> @(OBJCOPY) $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) %f %o |> supc++-baremetal.o : supc++-baremetal.tmp |> @(OBJCOPY) $(LOCAL_SYMBOLS) $(REDEF_SYMBOLS) %f %o |> supc++-baremetal.o
: supc++.o |> !ar |> cxx.a {bin} : supc++.o unwind.o |> !ar |> cxx.a {bin}
: supc++-baremetal.o |> !ar |> cxx-baremetal.a {bin} : supc++-baremetal.o unwind.o |> !ar |> cxx-baremetal.a {bin}
: foreach {bin} |> !collect_static |> : foreach {bin} |> !collect_static |>
: |> !emit_lib_pkg_config |> : |> !emit_lib_pkg_config |>

View File

@ -1,5 +0,0 @@
include_rules
LIBS += vfs
: foreach *.cc |> !cxx |> {obj}
: {obj} |> !prg |> {bin}
: {bin} |> !collect_bin |>