Author: chaoren Date: Tue Jul 21 12:50:16 2015 New Revision: 242813 URL: http://llvm.org/viewvc/llvm-project?rev=242813&view=rev Log: Update TestLoadUnload to use base Makefile.
Summary: The current Makefile scheme only allows one dylib to be specified in each make invocation, so TestLoadUnload had a custom Makefile that's unrelated to the base Makefile.rules. This change uses recursive make invocations to bypass the single dylib restriction. See D11202 for more context. Reviewers: clayborg Subscribers: chaoren, lldb-commits Differential Revision: http://reviews.llvm.org/D11367 Added: lldb/trunk/test/functionalities/load_unload/a.mk lldb/trunk/test/functionalities/load_unload/b.mk lldb/trunk/test/functionalities/load_unload/c.mk lldb/trunk/test/functionalities/load_unload/d.mk lldb/trunk/test/functionalities/load_unload/hidden/Makefile lldb/trunk/test/functionalities/load_unload/hidden/d.c - copied, changed from r242783, lldb/trunk/test/functionalities/load_unload/d.c Removed: lldb/trunk/test/functionalities/load_unload/hidden/.keep Modified: lldb/trunk/test/functionalities/load_unload/Makefile lldb/trunk/test/functionalities/load_unload/d.c lldb/trunk/test/make/Makefile.rules Modified: lldb/trunk/test/functionalities/load_unload/Makefile URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/load_unload/Makefile?rev=242813&r1=242812&r2=242813&view=diff ============================================================================== --- lldb/trunk/test/functionalities/load_unload/Makefile (original) +++ lldb/trunk/test/functionalities/load_unload/Makefile Tue Jul 21 12:50:16 2015 @@ -1,84 +1,24 @@ -CC ?= clang -ifeq "$(ARCH)" "" - ARCH = x86_64 -endif - -ifeq "$(OS)" "" - OS = $(shell uname -s) -endif - -CFLAGS ?= -g -O0 -CWD := $(shell pwd) - -LIB_PREFIX := libloadunload_ - -ifeq "$(OS)" "Darwin" - CFLAGS += -arch $(ARCH) - DS := dsymutil - LD_FLAGS := -dynamiclib - LIB_A := $(LIB_PREFIX)a.dylib - LIB_B := $(LIB_PREFIX)b.dylib - LIB_C := $(LIB_PREFIX)c.dylib - LIB_D := $(LIB_PREFIX)d.dylib - EXEC_PATH := "@executable_path" - EXEC_PATH_A := -install_name $(EXEC_PATH)/$(LIB_A) - EXEC_PATH_B := -install_name $(EXEC_PATH)/$(LIB_B) - EXEC_PATH_C := -install_name $(EXEC_PATH)/$(LIB_C) - EXEC_PATH_D := -install_name $(CWD)/$(LIB_D) - - DS_IF_DARWIN = $(DS) -o $@.dSYM $@ -else - CFLAGS += -fPIC - LD_FLAGS := -shared - LIB_DL := -ldl - LIB_A := $(LIB_PREFIX)a.so - LIB_B := $(LIB_PREFIX)b.so - LIB_C := $(LIB_PREFIX)c.so - LIB_D := $(LIB_PREFIX)d.so -endif - -all: a.out $(LIB_A) $(LIB_B) $(LIB_C) $(LIB_D) hidden/$(LIB_D) - -a.out: main.o $(LIB_D) - $(CC) $(CFLAGS) -o a.out main.o -L. -pie -lloadunload_d $(LIB_DL) - -main.o: main.c - $(CC) $(CFLAGS) -c main.c - -hidden/$(LIB_D): dh.o - $(CC) $(CFLAGS) $(LD_FLAGS) -o hidden/$(LIB_D) dh.o - $(DS_IF_DARWIN) - -$(LIB_A): a.o $(LIB_B) - $(CC) $(CFLAGS) $(LD_FLAGS) $(EXEC_PATH_A) -o $(LIB_A) a.o -L. -lloadunload_b - $(DS_IF_DARWIN) - -a.o: a.c - $(CC) $(CFLAGS) -c a.c - -$(LIB_B): b.o - $(CC) $(CFLAGS) $(LD_FLAGS) $(EXEC_PATH_B) -o $(LIB_B) b.o - $(DS_IF_DARWIN) - -b.o: b.c - $(CC) $(CFLAGS) -c b.c - -$(LIB_C): c.o - $(CC) $(CFLAGS) $(LD_FLAGS) $(EXEC_PATH_C) -o $(LIB_C) c.o - $(DS_IF_DARWIN) - -c.o: c.c - $(CC) $(CFLAGS) -c c.c - -$(LIB_D): d.o - $(CC) $(CFLAGS) $(LD_FLAGS) $(EXEC_PATH_D) -o $(LIB_D) d.o - $(DS_IF_DARWIN) +LEVEL := ../../make -d.o: d.c - $(CC) $(CFLAGS) -c d.c +LIB_PREFIX := loadunload_ -dh.o: d.c - $(CC) $(CFLAGS) -DHIDDEN -c d.c -o dh.o +LD_EXTRAS := -L. -l$(LIB_PREFIX)d -ldl +C_SOURCES := main.c -clean: - rm -rf $(wildcard *.o *~ *.dylib *.so a.out *.dSYM hidden/*) +include $(LEVEL)/Makefile.rules + +.PHONY: +a.out: lib_a lib_b lib_c lib_d hidden_lib_d + +lib_%: + $(MAKE) -f $*.mk + +hidden_lib_d: + $(MAKE) -C hidden + +clean:: + $(MAKE) -f a.mk clean + $(MAKE) -f b.mk clean + $(MAKE) -f c.mk clean + $(MAKE) -f d.mk clean + $(MAKE) -C hidden clean Added: lldb/trunk/test/functionalities/load_unload/a.mk URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/load_unload/a.mk?rev=242813&view=auto ============================================================================== --- lldb/trunk/test/functionalities/load_unload/a.mk (added) +++ lldb/trunk/test/functionalities/load_unload/a.mk Tue Jul 21 12:50:16 2015 @@ -0,0 +1,21 @@ +LEVEL := ../../make + +LIB_PREFIX := loadunload_ + +CFLAGS_EXTRAS := -fPIC +LD_EXTRAS := -L. -l$(LIB_PREFIX)b + +DYLIB_NAME := $(LIB_PREFIX)a +DYLIB_C_SOURCES := a.c +DYLIB_ONLY := YES + +include $(LEVEL)/Makefile.rules + +.PHONY: +$(DYLIB_FILENAME): lib_b + +lib_b: + $(MAKE) -f b.mk + +clean:: + $(MAKE) -f b.mk clean Added: lldb/trunk/test/functionalities/load_unload/b.mk URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/load_unload/b.mk?rev=242813&view=auto ============================================================================== --- lldb/trunk/test/functionalities/load_unload/b.mk (added) +++ lldb/trunk/test/functionalities/load_unload/b.mk Tue Jul 21 12:50:16 2015 @@ -0,0 +1,9 @@ +LEVEL := ../../make + +LIB_PREFIX := loadunload_ + +DYLIB_NAME := $(LIB_PREFIX)b +DYLIB_C_SOURCES := b.c +DYLIB_ONLY := YES + +include $(LEVEL)/Makefile.rules Added: lldb/trunk/test/functionalities/load_unload/c.mk URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/load_unload/c.mk?rev=242813&view=auto ============================================================================== --- lldb/trunk/test/functionalities/load_unload/c.mk (added) +++ lldb/trunk/test/functionalities/load_unload/c.mk Tue Jul 21 12:50:16 2015 @@ -0,0 +1,9 @@ +LEVEL := ../../make + +LIB_PREFIX := loadunload_ + +DYLIB_NAME := $(LIB_PREFIX)c +DYLIB_C_SOURCES := c.c +DYLIB_ONLY := YES + +include $(LEVEL)/Makefile.rules Modified: lldb/trunk/test/functionalities/load_unload/d.c URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/load_unload/d.c?rev=242813&r1=242812&r2=242813&view=diff ============================================================================== --- lldb/trunk/test/functionalities/load_unload/d.c (original) +++ lldb/trunk/test/functionalities/load_unload/d.c Tue Jul 21 12:50:16 2015 @@ -9,9 +9,5 @@ int d_function () { // Find this line number within d_dunction(). -#ifdef HIDDEN - return 12345; -#else return 700; -#endif } Added: lldb/trunk/test/functionalities/load_unload/d.mk URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/load_unload/d.mk?rev=242813&view=auto ============================================================================== --- lldb/trunk/test/functionalities/load_unload/d.mk (added) +++ lldb/trunk/test/functionalities/load_unload/d.mk Tue Jul 21 12:50:16 2015 @@ -0,0 +1,11 @@ +LEVEL := ../../make + +LIB_PREFIX := loadunload_ + +DYLIB_EXECUTABLE_PATH := $(CURDIR) + +DYLIB_NAME := $(LIB_PREFIX)d +DYLIB_C_SOURCES := d.c +DYLIB_ONLY := YES + +include $(LEVEL)/Makefile.rules Removed: lldb/trunk/test/functionalities/load_unload/hidden/.keep URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/load_unload/hidden/.keep?rev=242812&view=auto ============================================================================== (empty) Added: lldb/trunk/test/functionalities/load_unload/hidden/Makefile URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/load_unload/hidden/Makefile?rev=242813&view=auto ============================================================================== --- lldb/trunk/test/functionalities/load_unload/hidden/Makefile (added) +++ lldb/trunk/test/functionalities/load_unload/hidden/Makefile Tue Jul 21 12:50:16 2015 @@ -0,0 +1,9 @@ +LEVEL := ../../../make + +LIB_PREFIX := loadunload_ + +DYLIB_NAME := $(LIB_PREFIX)d +DYLIB_C_SOURCES := d.c +DYLIB_ONLY := YES + +include $(LEVEL)/Makefile.rules Copied: lldb/trunk/test/functionalities/load_unload/hidden/d.c (from r242783, lldb/trunk/test/functionalities/load_unload/d.c) URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/load_unload/hidden/d.c?p2=lldb/trunk/test/functionalities/load_unload/hidden/d.c&p1=lldb/trunk/test/functionalities/load_unload/d.c&r1=242783&r2=242813&rev=242813&view=diff ============================================================================== --- lldb/trunk/test/functionalities/load_unload/d.c (original) +++ lldb/trunk/test/functionalities/load_unload/hidden/d.c Tue Jul 21 12:50:16 2015 @@ -9,9 +9,5 @@ int d_function () { // Find this line number within d_dunction(). -#ifdef HIDDEN return 12345; -#else - return 700; -#endif } Modified: lldb/trunk/test/make/Makefile.rules URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/make/Makefile.rules?rev=242813&r1=242812&r2=242813&view=diff ============================================================================== --- lldb/trunk/test/make/Makefile.rules (original) +++ lldb/trunk/test/make/Makefile.rules Tue Jul 21 12:50:16 2015 @@ -200,6 +200,7 @@ EXE ?= a.out ifneq "$(DYLIB_NAME)" "" ifeq "$(OS)" "Darwin" DYLIB_FILENAME = lib$(DYLIB_NAME).dylib + DYLIB_EXECUTABLE_PATH ?= @executable_path else ifeq "$(OS)" "Windows_NT" DYLIB_FILENAME = $(DYLIB_NAME).dll else @@ -452,7 +453,7 @@ $(DYLIB_OBJECTS) : CFLAGS += -DCOMPILING $(DYLIB_FILENAME) : $(DYLIB_OBJECTS) ifeq "$(OS)" "Darwin" - $(LD) $(DYLIB_OBJECTS) $(LDFLAGS) -install_name "@executable_path/$(DYLIB_FILENAME)" -dynamiclib -o "$(DYLIB_FILENAME)" + $(LD) $(DYLIB_OBJECTS) $(LDFLAGS) -install_name "$(DYLIB_EXECUTABLE_PATH)/$(DYLIB_FILENAME)" -dynamiclib -o "$(DYLIB_FILENAME)" ifneq "$(MAKE_DSYM)" "NO" ifneq "$(DS)" "" "$(DS)" $(DSFLAGS) "$(DYLIB_FILENAME)" _______________________________________________ lldb-commits mailing list lldb-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits