blob: 82803e41f48749ca6fecd4336c513eb22e7b2f50 [file] [log] [blame]
CFLAGS:=-Wno-incompatible-library-redeclaration
ifeq ($(NACL_ARCH),arm)
QEMU := $(NATIVE_CLIENT_PATH)/toolchain/linux_x86/arm_trusted/run_under_qemu_arm
HELPER := ./nacl_helper_bootstrap
ARGS := --r_debug=0xXXXXXXXXXXXXXXXX --reserved_at_zero=0xXXXXXXXXXXXXXXXX
endif
RUN_STATIC_CMD:=$(QEMU) $(HELPER) ./sel_ldr $(ARGS) -a -c -c -Q -B irt_core.nexe
define BUILD_STATIC
$(call BASIC_LINK_TARGET,$(1)_static.nexe,$(2),$(LD),$(3),$(4))
.PHONY : $(1)_static_test
$(1)_static_test : $(1)_static.nexe
ifneq ($(V),)
@echo "V=$(V)"
@echo "**************************************************************"
@echo RUN STATIC TEST $(1)
@echo "**************************************************************"
@echo ""
endif
$(RUN_STATIC_CMD) $(1)_static.nexe $(5) || (echo "FAILED $(1), non-zero return."; exit 1)
ifneq ($(V),)
@echo "**************************************************************"
@echo "PASSED STATIC $(1)"
@echo "**************************************************************"
@echo ""
endif
static_tests: $(basename $(1))_static_test
$(basename $(1))_test : $(basename $(1))_static_test
endef
TEST_C_FILES:= \
micro_hello.c \
libc_hello.c \
glibc_compat.c
$(foreach src,$(TEST_C_FILES),$(eval $(call BASIC_COMPILE_TARGET,$(basename $(src)).o,$(SRC_ROOT)/$(src),$(CC),-std=gnu99 -g $(TARGET_COMPILE_ARGS) $(CFLAGS))))
$(eval $(call BUILD_STATIC,micro_hello,micro_hello.o))
$(eval $(call BUILD_STATIC,libc_hello,libc_hello.o,$(INS_ROOT)/crtbeginT.o,$(INS_ROOT)/crtend.o $(INS_ROOT)/libc.a $(INS_ROOT)/libgcc.a))
$(eval $(call BUILD_STATIC,glibc_compat,glibc_compat.o,$(INS_ROOT)/crtbeginT.o,$(INS_ROOT)/crtend.o $(INS_ROOT)/libc.a $(INS_ROOT)/libgcc.a))
#
# LINKER TESTS
#
# Verify R_ARM_COPY happens after local relocations in libdynamic
#$(eval $(call BUILD_SO,dynamic.c,-nostdlib))
#$(eval $(call BUILD_DYNAMIC,micro.c,-nostdlib -ldynamic,libdynamic.so))
# Verify re-order of of dependencies Main (A,C); A (B); B (C) puts
# C ahead of B.
#$(eval $(call BUILD_SO,dyn_c.c,-nostdlib))
#$(eval $(call BUILD_SO,dyn_b.c,-nostdlib -ldyn_c,libdyn_c.so))
#$(eval $(call BUILD_SO,dyn_a.c,-nostdlib -ldyn_b,libdyn_b.so))
#$(eval $(call BUILD_DYNAMIC,order.c,-nostdlib -ldyn_a -ldyn_c,libdyn_a.so))
#$(eval $(call BUILD_BOTH,basic_cpp.cpp,,,1 2 3 4))