From 4ef414197ba007861526ef8dc5fbbc6ae2232d0f Mon Sep 17 00:00:00 2001
From: Reid Spencer
Date: Tue, 11 Jan 2005 05:12:54 +0000
Subject: [PATCH] * Describe the LOADABLE_MODULE feature * Get rid of
non-compliant elements (how did that get in there?)
llvm-svn: 19458
---
docs/MakefileGuide.html | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/docs/MakefileGuide.html b/docs/MakefileGuide.html
index 64fe536cb6f..c91b14c3737 100644
--- a/docs/MakefileGuide.html
+++ b/docs/MakefileGuide.html
@@ -240,6 +240,16 @@
Note that you normally do not need to specify the sources involved. The LLVM
Makefile system will infer the source files from the contents of the source
directory.
+ The LOADABLE_MODULE=1 directive can be used in conjunction with
+ SHARED_LIBRARY=1 to indicate that the resulting shared library should
+ be openable with the dlopen function and searchable with the
+ dlsym function (or your operating system's equivalents). While this
+ isn't strictly necessary on Linux and a few other platforms, it is required
+ on systems like HP-UX and Darwin. You should use LOADABLE_MODULE for
+ any shared library that you intend to be loaded into an tool via the
+ -load option. See the
+ WritingAnLLVMPass.html document
+ for an example of why you might want to do this.
@@ -539,8 +549,8 @@
$(BUILD_OBJ_ROOT) directoy by removing its content entirely and
reconfiguring the directory. This returns the $(BUILD_OBJ_ROOT)
directory to a completely fresh state. All content in the directory except
- configured files and top-level makefiles will be lost.
- Use with caution.
+ configured files and top-level makefiles will be lost.
+
@@ -652,6 +662,12 @@
LLVMLIBS
Specifies the set of libraries from the LLVM $(ObjDir) that will be
linked into the tool or library.
+ LOADABLE_MODULE
+ If set to any value, causes the shared library being built to also be
+ a loadable module. Loadable modules can be opened with the dlopen() function
+ and searched with dlsym (or the operating system's equivalent). Note that
+ setting this variable without also setting SHARED_LIBRARY will have
+ no effect.
MODULE_NAME
Specifies the name of a bytecode module to be created. A bytecode
module can be specified in conjunction with other kinds of library builds