[vmkit-commits] [vmkit] r180376 - add a rule for shared library

Peter Senna Tschudin peter.senna at gmail.com
Thu Apr 25 10:10:33 PDT 2013


Author: peter.senna
Date: Thu Apr 25 12:03:06 2013
New Revision: 180376

URL: http://llvm.org/viewvc/llvm-project?rev=180376&view=rev
Log:
add a rule for shared library
(cherry picked from commit 2459d899bf1332cc928d84376495e17c4fdb4b30)

Modified:
    vmkit/trunk/Makefile.config.in
    vmkit/trunk/Makefile.rules
    vmkit/trunk/autoconf/configure.ac
    vmkit/trunk/configure

Modified: vmkit/trunk/Makefile.config.in
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.config.in?rev=180376&r1=180375&r2=180376&view=diff
==============================================================================
--- vmkit/trunk/Makefile.config.in (original)
+++ vmkit/trunk/Makefile.config.in Thu Apr 25 12:03:06 2013
@@ -33,3 +33,8 @@ $(error Unsupported classpath implementa
 endif
 
 LLVM_CONFIG=@LLVM_CONFIG@
+
+SHOPT=@SHOPT@
+LDOPT=@LDOPT@
+EXEEXT=@EXEEXT@
+SHLIBEXT=@SHLIBEXT@

Modified: vmkit/trunk/Makefile.rules
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.rules?rev=180376&r1=180375&r2=180376&view=diff
==============================================================================
--- vmkit/trunk/Makefile.rules (original)
+++ vmkit/trunk/Makefile.rules Thu Apr 25 12:03:06 2013
@@ -1,5 +1,8 @@
 VMJC      := $(ToolDir)/vmjc$(EXEEXT)
 
+$(LibName.SO): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths) $(SharedLibDir)/.dir
+	$(Echo) "**[20] Linking $(BuildMode) $(SharedLibKindMessage) $(notdir $@)"
+	$(Verb) $(CLANGXX) -O0 -o $@ $(SHOPT) -Wl,-R -Wl,'$ORIGIN' -shared $(ObjectsO)
 
 # Set the LLVM build file location 
 LLVMBuildTool   := $(LLVM_SRC_ROOT)/utils/llvm-build/llvm-build
@@ -14,7 +17,7 @@ ifdef VMKIT_RUNTIME
 .PRECIOUS: LLVMRuntime.inc
 
 LLVMRuntime.inc : $(LLVMAS) $(LLC) $(VMKIT_RUNTIME)
-	$(Echo) "Building LLVM runtime with $(VMKIT_RUNTIME)"
+	$(Echo) "**[7] Building LLVM runtime with $(VMKIT_RUNTIME)"
 	$(Verb) cat $(VMKIT_RUNTIME) | $(LLVMAS) -o - | $(LLC) $(LLC_CPP_FLAGS) -march=cpp -cppgen=contents -o $@
 
 all-local:: LLVMRuntime.inc
@@ -35,7 +38,7 @@ ifdef VMJC_ASSEMBLY
 glibj.zip.s : $(LOPT) $(LLC) $(VMJC)
 
 glibj.zip.bc :
-	$(Echo) "Compiling glibj.zip to llvm"
+	$(Echo) "**[8] Compiling glibj.zip to llvm"
 	$(Verb) if test -d $(GLIBJ); then \
 	  $(VMJC) -f $(VMJC_GLIBJ_FLAGS) $(GLIBJ)/glibj.zip -o glibj.zip.bc; \
 	else \
@@ -43,15 +46,15 @@ glibj.zip.bc :
 	fi
 
 glibj-optimized.zip.bc : glibj.zip.bc
-	$(Echo) "Optimizing glibj.zip"
+	$(Echo) "**[9] Optimizing glibj.zip"
 	$(Verb) $(LOPT) $(OPT_VMJC_FLAGS) -f glibj.zip.bc -o glibj-optimized.zip.bc
 
 glibj.zip.s : glibj-optimized.zip.bc
-	$(Echo) "Compiling glibj.zip.bc to native"
+	$(Echo) "**[10] Compiling glibj.zip.bc to native"
 	$(Verb) $(LLC) $(LLC_GLIBJ_FLAGS) -disable-cfi -relocation-model=pic -disable-fp-elim glibj-optimized.zip.bc -o glibj.zip.s
 
 $(ObjDir)/%.o: %.s $(ObjDir)/.dir $(BUILT_SOURCES)
-	$(Echo) "Compiling $*.s for $(BuildMode) build" $(PIC_FLAG)
+	$(Echo) "**[11] Compiling $*.s for $(BuildMode) build" $(PIC_FLAG)
 	$(Verb) $(Compile.C) $< -o $(ObjDir)/$*.o
 
 clean-local::
@@ -73,7 +76,7 @@ endif
 ifeq ($(COMPILE_MMTK), 1)
   all::
 	$(Verb) $(ANT) -buildfile $(PROJ_OBJ_ROOT)/mmtk/java/build.xml
-	$(Echo) Building $(BuildMode) $(JARNAME).jar $(notdir $@)
+	$(Echo) "**[12] Building $(BuildMode) $(JARNAME).jar $(notdir $@)"
 	$(Verb) $(LOPT) -load=$(LibDir)/JITGCPass$(SHLIBEXT) $(OPT_MMTK_FLAGS) -JITGCPass -f $(LibDir)/MMTKAlloc.bc -o $(LibDir)/MMTKAlloc.bc
 	$(Verb) $(VMJC) $(VMJC_MMTK_FLAGS) -load=$(LibDir)/MMTKRuntime$(SHLIBEXT) -load=$(LibDir)/MMTKMagic$(SHLIBEXT) -LowerMagic $(PROJ_OBJ_ROOT)/mmtk/java/$(JARNAME).jar -disable-exceptions -disable-cooperativegc -with-clinit=org/mmtk/vm/VM,org/mmtk/utility/*,org/mmtk/policy/*,org/j3/config/* -Dmmtk.hostjvm=org.j3.mmtk.Factory -o $(JARNAME).bc -Dmmtk.properties=$(PROJ_SRC_ROOT)/mmtk/java/vmkit.properties -disable-stubs -assume-compiled
 	$(Verb) $(LOPT) -load=$(LibDir)/MMTKMagic$(SHLIBEXT) $(OPT_MMTK_FLAGS) -LowerJavaRT -f $(JARNAME).bc -o $(JARNAME)-optimized.bc
@@ -104,7 +107,6 @@ endif
 ifdef MODULE_WITH_GC
 
 ObjectsBCWithGC   := $(BaseNameSources:%=$(ObjDir)/%_gc.bc)
-#ObjectsSWithGC    := $(BaseNameSources:%=$(ObjDir)/%_gc.s)
 ObjectsWithGC     := $(BaseNameSources:%=$(ObjDir)/%_gc.o)
 AModule           := $(LibDir)/lib$(MODULE_WITH_GC).a
 
@@ -115,19 +117,14 @@ $(ObjectsBCWithGC): $(ObjDir)/%_gc.bc: $
 $(ObjectsWithGC): $(ObjDir)/%_gc.o: $(ObjDir)/%_gc.bc $(LLC)
 	$(Echo) "**[5] Compiling $*.bc to $*.o for $(BuildMode) build" # $(LLC_ASM_FLAGS)
 	$(Verb) $(LLC) -filetype=obj -disable-cfi -disable-fp-elim -load=$(VMKIT_OBJ_ROOT)/$(BuildMode)/lib/StaticGCPrinter$(SHLIBEXT) $< -o $@
-#	$(Verb) $(LLC) $(LLC_ASM_FLAGS) -disable-cfi -disable-fp-elim -load=$(VMKIT_OBJ_ROOT)/$(BuildMode)/lib/StaticGCPrinter$(SHLIBEXT) $< -o $@
-
-#$(ObjectsWithGC): $(ObjDir)/%_gc.o: $(ObjDir)/%_gc.s $(ObjDir)/.dir
-#	$(Echo) "Compiling $*.s for $(BuildMode) build $(PIC_FLAG) $(Compile.C)"
-#	$(Verb) $(Compile.C) $< -o $@
 
 $(AModule): $(ObjectsWithGC) $(LibDir)/.dir
-	$(Echo) Building $(BuildMode) Archive Library $(notdir $@)
+	$(Echo) "**[6] Building $(BuildMode) Archive Library $(notdir $@)"
 	-$(Verb) $(RM) -f $@
 	$(Verb) $(Archive) $@ $(ObjectsWithGC)
 	$(Verb) $(Ranlib) $@
 
-all-local:: $(AModule)
+all-local:: $(AModule) $(OModule)
 
 clean-local::
 	-$(Verb) $(RM) -f $(AModule) $(ObjectsBCWithGC) $(ObjectsSWithGC) $(ObjectsWithGC)
@@ -168,7 +165,7 @@ clean-local::
 
 
 $(VMKIT_OPENJDK_ZIP): $(addprefix $(PROJ_SRC_DIR)/,$(OPENJDK_JAVA_SOURCES))
-	$(Echo) "Building OpenJDK java sources into zip"
+	$(Echo) "**[13] Building OpenJDK java sources into zip"
 	-$(Verb) $(RM) -rf $@ $(CLASSES_DIR)
 	$(Verb) $(MKDIR) $(CLASSES_DIR)
 	$(Verb) $(JAVAC) $^ -d $(CLASSES_DIR)
@@ -205,7 +202,7 @@ $(ObjectsBC): $(ObjDir)/%.bc: %.cpp $(Ob
 	$(Echo) "**[1] Compiling $*.cpp for $(BuildMode) build (bytecode)"
 	$(Verb) $(CLANGXX) -S $(CXXFLAGS) -emit-llvm -c "$<" -o $@
 
-$(ObjDir)/%.ll: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES)
+$(ObjDir)/%.ll: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMCXX)
 	$(Echo) "**[2] Compiling $*.cpp for $(BuildMode) build (bytecode)"
 	$(Verb) $(CLANGXX) -S $(CXXFLAGS) -emit-llvm -c "$<" -o $@
 

Modified: vmkit/trunk/autoconf/configure.ac
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/autoconf/configure.ac?rev=180376&r1=180375&r2=180376&view=diff
==============================================================================
--- vmkit/trunk/autoconf/configure.ac (original)
+++ vmkit/trunk/autoconf/configure.ac Thu Apr 25 12:03:06 2013
@@ -95,6 +95,8 @@ AC_CACHE_CHECK([type of operating system
     vmkit_cv_platform_type="Unix" ;;
   *-*-darwin*)
     DYLIB_EXTENSION="dylib"
+		SHLIBEXT=".dylib"
+    SHOPT="-fno-common -Wl,-flat_namespace -Wl,-undefined,suppress"
     vmkit_cv_os_type="Darwin"
     vmkit_cv_platform_type="Unix" ;;
   *-*-freebsd*)
@@ -119,6 +121,8 @@ AC_CACHE_CHECK([type of operating system
     vmkit_cv_platform_type="Unix" ;;
   *-*-linux*)
     DYLIB_EXTENSION="so"
+    SHLIBEXT=".so"
+    LDOPT="-Wl,-export-dynamic"
     vmkit_cv_os_type="Linux"
     vmkit_cv_platform_type="Unix" ;;
   *-*-solaris*)
@@ -142,6 +146,10 @@ esac])
 dnl Make sure we aren't attempting to configure for an unknown system
 
 AC_SUBST([DYLIB_EXTENSION])
+AC_SUBST([SHOPT])
+AC_SUBST([LDOPT])
+AC_SUBST([SHLIBEXT])
+AC_SUBST([EXEEXT])
 
 dnl===-----------------------------------------------------------------------===
 dnl===

Modified: vmkit/trunk/configure
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/configure?rev=180376&r1=180375&r2=180376&view=diff
==============================================================================
--- vmkit/trunk/configure (original)
+++ vmkit/trunk/configure Thu Apr 25 12:03:06 2013
@@ -637,7 +637,6 @@ CXXFLAGS
 CXX
 CPP
 OBJEXT
-EXEEXT
 ac_ct_CC
 CPPFLAGS
 LDFLAGS
@@ -651,6 +650,10 @@ classpathglibj
 MMTK_PLAN
 GC_FLAGS
 WITH_64
+EXEEXT
+SHLIBEXT
+LDOPT
+SHOPT
 DYLIB_EXTENSION
 target_os
 target_vendor
@@ -2461,6 +2464,8 @@ else
     vmkit_cv_platform_type="Unix" ;;
   *-*-darwin*)
     DYLIB_EXTENSION="dylib"
+		SHLIBEXT=".dylib"
+    SHOPT="-fno-common -Wl,-flat_namespace -Wl,-undefined,suppress"
     vmkit_cv_os_type="Darwin"
     vmkit_cv_platform_type="Unix" ;;
   *-*-freebsd*)
@@ -2485,6 +2490,8 @@ else
     vmkit_cv_platform_type="Unix" ;;
   *-*-linux*)
     DYLIB_EXTENSION="so"
+    SHLIBEXT=".so"
+    LDOPT="-Wl,-export-dynamic"
     vmkit_cv_os_type="Linux"
     vmkit_cv_platform_type="Unix" ;;
   *-*-solaris*)
@@ -2510,6 +2517,10 @@ $as_echo "$vmkit_cv_os_type" >&6; }
 
 
 
+
+
+
+
 
 
 





More information about the vmkit-commits mailing list