[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