From: Juho S. <js...@us...> - 2006-05-31 23:21:23
|
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" |