2 L4DIR ?= $(PKGDIR)/../..
4 CON_DIR := $(PKGDIR)/../uclibc/lib/contrib/uclibc/ldso
5 PTH_DIR := $(PKGDIR)/../uclibc/lib/libpthread
6 UCC_DIR := $(PKGDIR)/../uclibc/lib/uclibc
15 vpath %.c $(CON_DIR)/ldso
16 vpath %.S $(CON_DIR)/ldso/$(DIR_$(ARCH))
17 vpath aeabi_read_tp-v6p.S $(UCC_DIR)/ARCH-arm
18 vpath aeabi_read_tp_generic.c $(UCC_DIR)/ARCH-arm
19 vpath ssp-l4.c $(UCC_DIR)
21 PRIVATE_INCDIR-x86 := $(CON_DIR)/../libc
22 PRIVATE_INCDIR := $(PRIVATE_INCDIR-$(ARCH)) \
23 $(CON_DIR)/ldso/$(DIR_$(ARCH)) \
27 $(PTH_DIR)/src/sysdeps/$(DIR_$(ARCH))
31 SRC_C := ldso.c fixup.c string.c
32 SRC_CC := syscalls.cc vfs.cc
33 #SRC_S_arm-l4f += aeabi_read_tp-v6p.S
34 SRC_C_arm-l4f += aeabi_read_tp_generic.c
37 CPPFLAGS := -DNOT_IN_libc -DIS_IN_rtld \
38 -DLDSO_ELFINTERP=\"$(DIR_$(ARCH))/elfinterp.c\" \
39 -include libc-symbols.h -DUCLIBC_LDSO=\"libld-l4.so\" \
40 -DUCLIBC_RUNTIME_PREFIX=\"/\" \
41 -D__LDSO_SEARCH_INTERP_PATH__=1 \
42 -DIS_IN_rtld -D__LIBDL_SHARED__ -DSHARED
44 DEFINES_x86-l4f += -DUSE_TLS=1 -DUSE___THREAD=1
45 DEFINES_amd64-l4f += -DUSE_TLS=1 -DUSE___THREAD=1
46 DEFINES_arm-l4f += -DUSE_TLS=1 -DUSE___THREAD=1
47 DEFINES_sparc-l4f += -DUSE_TLS=1 -DUSE___THREAD=1
49 LDFLAGS = -Bsymbolic -Bstatic --warn-common --sort-common \
50 --no-undefined -e _start -z defs -z now \
51 --discard-locals --discard-all \
52 --gc-sections -ll4sys-direct $(GCCLIB)
58 include $(L4DIR)/mk/lib.mk
60 # stack protector handling
61 ifdef CONFIG_BID_GCC_ENABLE_STACK_PROTECTOR
62 DEFINES += -D__UCLIBC_HAS_SSP__=1
64 CPPFLAGS := $(filter-out $(DEFINES), $(CPPFLAGS))
65 CPPFLAGS += $(DEFINES)
69 $(OBJCOPY) --weaken $< $@
71 CXXFLAGS := -DL4_NO_RTTI -fno-rtti -fno-exceptions -O99 -fvisibility=hidden \
72 -fno-threadsafe-statics $(CXXFLAGS_L4_GENERIC)
74 CPPFLAGS := $(filter-out -DL4SYS_USE_UTCB_WRAP=1, $(CPPFLAGS))