aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-06-23 03:41:08 +0000
committerdos-reis <gdr@axiomatics.org>2011-06-23 03:41:08 +0000
commitf56be9ed6d6a46f558dfa4e65bc261b61739d91d (patch)
tree98560e24ee385a655c5095e9399cc4b78fcf49ae
parent5c371a307a201cf425f848d0a0b24631ff47978e (diff)
downloadopen-axiom-f56be9ed6d6a46f558dfa4e65bc261b61739d91d.tar.gz
* driver/Makefile.in (open_axiom_LDADD): Use library archives for
linking, to prevent accidental use of dynamic libraries.
-rw-r--r--src/ChangeLog5
-rw-r--r--src/driver/Makefile.in7
-rw-r--r--src/lisp/core.lisp.in7
3 files changed, 18 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index a041ef1a..9b13be6f 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,10 @@
2011-06-22 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * driver/Makefile.in (open_axiom_LDADD): Use library archives for
+ linking, to prevent accidental use of dynamic libraries.
+
+2011-06-22 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* interp/br-con.boot: Remove reference to asharp constructors.
* interp/br-op2.boot: Likewise.
* interp/br-saturn.boot: Likewise.
diff --git a/src/driver/Makefile.in b/src/driver/Makefile.in
index 6682602b..5db6e056 100644
--- a/src/driver/Makefile.in
+++ b/src/driver/Makefile.in
@@ -36,8 +36,13 @@ open_axiom_SOURCES = main.cc
open_axiom_objects = $(open_axiom_SOURCES:.cc=.lo)
+## Ideally, we want a standalone binary driver unencounbered by
+## any sort of dependencies. However, static program linking is not
+## available on all plaforms (think Mac OS, Solaris, etc.) So we must link
+## against library archives. Thefore we avoid using $(axiom_target_libdir)
+## below. On purpose.
open_axiom_LDADD = \
- -L$(axiom_target_libdir)/ \
+ -L$(builddir)/../utils \
-L$(builddir)/../lib \
-lOpenAxiom $(oa_c_libs)
diff --git a/src/lisp/core.lisp.in b/src/lisp/core.lisp.in
index 1638f75d..17bde458 100644
--- a/src/lisp/core.lisp.in
+++ b/src/lisp/core.lisp.in
@@ -938,6 +938,9 @@
(progn
(mapcar #'(lambda (p) (|loadOrElse| p)) lisp-files)
(eval prologue)
+ (let ((d nil))
+ (maphash #'(lambda (k v) (setq d (cons (cons k v) d))) |$driverTable|)
+ (format t "~%==> driver table before saveCore = ~s <==~%" d))
(|saveCore| core-image entry-point))
#+:ecl
(let* ((compiler::*ld* oa-cxx)
@@ -959,6 +962,7 @@
(|coreQuit|)))
)
+(trace |link|)
;;
;; -*- Handling Command Line Arguments -*-
@@ -1169,6 +1173,9 @@
(defun |topLevel|()
(let ((*package* (find-package "AxiomCore"))
(command-args (|getCommandLineArguments|)))
+ (let ((d nil))
+ (maphash #'(lambda (k v) (setq d (cons (cons k v) d))) |$driverTable|)
+ (format t "~%==> driver table = ~s <==~%" d))
(when (null command-args)
(|internalError| "empty command line args"))
;; Existing system programming practive, and POSIX, have it