[llvm-commits] CVS: llvm/Makefile.rules

Reid Spencer reid at x10sys.com
Mon Jan 10 20:31:20 PST 2005



Changes in directory llvm:

Makefile.rules updated: 1.288 -> 1.289
---
Log message:

Implement the LOADABLE_MODULE option when building a shared library. This
passes the -module option on the libtool command line to ensure that the
shared library being built can be dlopened and dlsym can work on that 
module. LOADABLE_MODULE should be sent only in conjunction with the 
SHARED_LIBRARY directive. It should generally be used for any module that
is intended to be the target of an LLVM -load option. Note that loadable
modules will not have the lib prefix but otherwise look like shared 
libraries. This is per the libtool recommendations and prevents these 
special shared libraries from being linked in via -l option to the linker.


---
Diffs of the changes:  (+13 -4)

Index: llvm/Makefile.rules
diff -u llvm/Makefile.rules:1.288 llvm/Makefile.rules:1.289
--- llvm/Makefile.rules:1.288	Fri Jan  7 01:51:11 2005
+++ llvm/Makefile.rules	Mon Jan 10 22:31:07 2005
@@ -264,11 +264,16 @@
 # Adjust to user's request
 #--------------------------------------------------------------------
 
-# Adjust LIBTOOL flags for shared libraries, or not.
-ifndef SHARED_LIBRARY
-  LibTool.Flags += --tag=disable-shared
-else
+# Adjust LD.Flags and Libtool.Flags depending on the kind of library that is
+# to be built. Note that if LOADABLE_MODULE is specified then the resulting
+# shared library can be opened with dlopen
+ifdef SHARED_LIBRARY
   LD.Flags += -rpath $(LibDir)
+  ifdef LOADABLE_MODULE
+    LD.Flags += -module
+  endif
+else
+  LibTool.Flags += --tag=disable-shared
 endif
 
 ifdef TOOL_VERBOSE
@@ -571,7 +576,11 @@
 
 # Make sure there isn't any extranous whitespace on the LIBRARYNAME option
 LIBRARYNAME := $(strip $(LIBRARYNAME))
+ifdef LOADABLE_MODULE
+LibName.LA := $(LibDir)/$(LIBRARYNAME).la
+else
 LibName.LA := $(LibDir)/lib$(LIBRARYNAME).la
+endif
 LibName.A  := $(LibDir)/lib$(LIBRARYNAME).a
 LibName.O  := $(LibDir)/$(LIBRARYNAME).o
 LibName.BCA:= $(LibDir)/lib$(LIBRARYNAME).bca






More information about the llvm-commits mailing list