Update of /cvsroot/sbcl/sbcl
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv24272
Modified Files:
Tag: lutex-branch
base-target-features.lisp-expr make-config.sh
package-data-list.lisp-expr version.lisp-expr
Log Message:
0.9.12.26.lutex-branch.42:
* Fix saving purified cores with lutexes
* Clean up remnants of the original semaphore-based lutex implementation
* Automatically set the right features for lutex-using platforms
in make-config.sh
* Remove restoration of %fs from the signal context (obsoleted earlier
by restoring it from TLS)
* Other minor cleanups
Index: base-target-features.lisp-expr
===================================================================
RCS file: /cvsroot/sbcl/sbcl/base-target-features.lisp-expr,v
retrieving revision 1.38.2.3
retrieving revision 1.38.2.4
diff -u -d -r1.38.2.3 -r1.38.2.4
--- base-target-features.lisp-expr 29 Mar 2006 09:50:19 -0000 1.38.2.3
+++ base-target-features.lisp-expr 31 May 2006 23:21:12 -0000 1.38.2.4
@@ -166,23 +166,17 @@
;;
;; While on linux we are able to use futexes for our locking
;; primitive, on other platforms we don't have this luxury. NJF's
- ;; lutexes present a locking API compatible with the futex-based API
- ;; that allows for sb-thread support on MacOS X on Intel. Other
- ;; platforms are untested, but this could server as a starting point
- ;; for implementing threads on other OSes and architectures.
+ ;; lutexes present a locking API similar to the futex-based API that
+ ;; allows for sb-thread support on x86 OS X, Solaris and
+ ;; FreeBSD.
;;
; :sb-lutex
- ;; IMPORTANT!!!!! When building on darwin with lutexes we need to
- ;; enable one (and only one!) of these features!!!! FIXME!
- ;
- ; :mach-semaphores
- ; :carbon-semaphores
-
- ;; IMPORTANT!!!!! When building on darwin or freebsd with lutexes we
- ;; MUST turn this on!!! FIXME!
- ;
- ; :restore-tls-segment-register-from-context
+ ;; On some operating systems the FS segment register (used for SBCL's
+ ;; thread local storage) is not reliably preserved in signal
+ ;; handlers, so we need to restore its value from the pthread thread
+ ;; local storage.
+ ; :restore-tls-segment-register-from-tls
;; Support for detection of unportable code (when applied to the
;; COMMON-LISP package, or SBCL-internal pacakges) or bad-neighbourly
Index: make-config.sh
===================================================================
RCS file: /cvsroot/sbcl/sbcl/make-config.sh,v
retrieving revision 1.61.2.4
retrieving revision 1.61.2.5
diff -u -d -r1.61.2.4 -r1.61.2.5
--- make-config.sh 22 Apr 2006 03:08:09 -0000 1.61.2.4
+++ make-config.sh 31 May 2006 23:21:12 -0000 1.61.2.5
@@ -184,6 +184,9 @@
freebsd)
printf ' :elf' >> $ltf
printf ' :freebsd' >> $ltf
+ if [ $sbcl_arch = "x86" ]; then
+ printf ' :sb-lutex :restore-tls-segment-register-from-tls' >> $ltf
+ fi
link_or_copy Config.$sbcl_arch-freebsd Config
;;
openbsd)
@@ -205,14 +208,20 @@
darwin)
printf ' :mach-o' >> $ltf
printf ' :bsd' >> $ltf
+ printf ' :darwin' >> $ltf
+ if [ $sbcl_arch = "x86" ]; then
+ printf ' :sb-lutex :restore-tls-segment-register-from-tls' >> $ltf
+ fi
link_or_copy $sbcl_arch-darwin-os.h target-arch-os.h
link_or_copy bsd-os.h target-os.h
- printf ' :darwin' >> $ltf
link_or_copy Config.$sbcl_arch-darwin Config
;;
sunos)
printf ' :elf' >> $ltf
printf ' :sunos' >> $ltf
+ if [ $sbcl_arch = "x86" ]; then
+ printf ' :sb-lutex' >> $ltf
+ fi
link_or_copy Config.$sbcl_arch-sunos Config
link_or_copy $sbcl_arch-sunos-os.h target-arch-os.h
link_or_copy sunos-os.h target-os.h
Index: package-data-list.lisp-expr
===================================================================
RCS file: /cvsroot/sbcl/sbcl/package-data-list.lisp-expr,v
retrieving revision 1.349.2.3
retrieving revision 1.349.2.4
diff -u -d -r1.349.2.3 -r1.349.2.4
--- package-data-list.lisp-expr 15 May 2006 17:07:52 -0000 1.349.2.3
+++ package-data-list.lisp-expr 31 May 2006 23:21:12 -0000 1.349.2.4
@@ -538,7 +538,7 @@
"INITIAL-FUN-CORE-ENTRY-TYPE-CODE"
"*!LOAD-TIME-VALUES*"
"LOAD-TYPE-PREDICATE"
- #!+sb-lutex "LUTEX-TABLE-CORE-ENTRY-TYPE-CODE"
+ #!+(and sb-thread sb-lutex) "LUTEX-TABLE-CORE-ENTRY-TYPE-CODE"
"NEW-DIRECTORY-CORE-ENTRY-TYPE-CODE"
"OPEN-FASL-OUTPUT" "PAGE-TABLE-CORE-ENTRY-TYPE-CODE"
"READ-ONLY-CORE-SPACE-ID"
Index: version.lisp-expr
===================================================================
RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v
retrieving revision 1.2745.2.43
retrieving revision 1.2745.2.44
diff -u -d -r1.2745.2.43 -r1.2745.2.44
--- version.lisp-expr 21 May 2006 18:33:08 -0000 1.2745.2.43
+++ version.lisp-expr 31 May 2006 23:21:12 -0000 1.2745.2.44
@@ -17,4 +17,4 @@
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.12.26.lutex-branch.41"
+"0.9.12.26.lutex-branch.42"
|