diff options
-rw-r--r-- | ChangeLog | 16 | ||||
-rw-r--r-- | changes | 5 | ||||
-rw-r--r-- | doc/CrtChnlHdlr.3 | 1 | ||||
-rw-r--r-- | doc/CrtCloseHdlr.3 | 1 | ||||
-rw-r--r-- | generic/tclInt.h | 2 | ||||
-rw-r--r-- | library/platform/pkgIndex.tcl | 2 | ||||
-rw-r--r-- | library/platform/platform.tcl | 87 | ||||
-rw-r--r-- | unix/Makefile.in | 4 | ||||
-rw-r--r-- | win/Makefile.in | 4 |
9 files changed, 87 insertions, 35 deletions
@@ -1,9 +1,23 @@ -2011-06-21 Don Porter <dgp@users.sourceforge.net> +2011-06-23 Don Porter <dgp@users.sourceforge.net> *** 8.5.10 TAGGED FOR RELEASE *** * changes: Update for 8.5.10 release. +2011-06-22 Andreas Kupries <andreask@activestate.com> + + * library/platform/pkgIndex.tcl: Updated to platform 1.0.10. Added + * library/platform/platform.tcl: handling of the DEB_HOST_MULTIARCH + * unix/Makefile.in: location change for libc. + * win/Makefile.in: + + * generic/tclInt.h: Fixed the inadvertently committed disabling of + stack checks, see my 2010-11-15 commit. + +2011-06-21 Don Porter <dgp@users.sourceforge.net> + + * changes: Update for 8.5.10 release. + * library/tcltest/tcltest.tcl (loadIntoSlaveInterpreter): * library/tcltest/pkgIndex.tcl: Backport tcltest 2.3.3 for release * unix/Makefile.in: with Tcl 8.5.*. @@ -7541,4 +7541,7 @@ memory with buffer backup (ferrieux) 2011-06-21 (new cmd) [tcltest::loadIntoSlaveInterpreter] (fellows) => tcltest 2.3.3 ---- Released 8.5.10, June 22, 2011 --- See ChangeLog for details --- +2011-06-22 (new feature) DEB_HOST_MULTIARCH support (kupries) +=> platform 1.0.10 + +--- Released 8.5.10, June 23, 2011 --- See ChangeLog for details --- diff --git a/doc/CrtChnlHdlr.3 b/doc/CrtChnlHdlr.3 index fa7f46f..f5fd1bd 100644 --- a/doc/CrtChnlHdlr.3 +++ b/doc/CrtChnlHdlr.3 @@ -4,6 +4,7 @@ '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" +.so man.macros .TH Tcl_CreateChannelHandler 3 7.5 Tcl "Tcl Library Procedures" .BS '\" Note: do not modify the .SH NAME line immediately below! diff --git a/doc/CrtCloseHdlr.3 b/doc/CrtCloseHdlr.3 index 32cd7a5..c8804b1 100644 --- a/doc/CrtCloseHdlr.3 +++ b/doc/CrtCloseHdlr.3 @@ -4,6 +4,7 @@ '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" +.so man.macros .TH Tcl_CreateCloseHandler 3 7.5 Tcl "Tcl Library Procedures" .BS '\" Note: do not modify the .SH NAME line immediately below! diff --git a/generic/tclInt.h b/generic/tclInt.h index 679277a..854404f 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -17,8 +17,6 @@ #ifndef _TCLINT #define _TCLINT -#define TCL_NO_STACK_CHECK /* DISABLE C RUNTIME STACK CHECK - Test AIX */ - /* * Some numerics configuration options. */ diff --git a/library/platform/pkgIndex.tcl b/library/platform/pkgIndex.tcl index 35da3b7..220a67b 100644 --- a/library/platform/pkgIndex.tcl +++ b/library/platform/pkgIndex.tcl @@ -1,3 +1,3 @@ -package ifneeded platform 1.0.9 [list source [file join $dir platform.tcl]] +package ifneeded platform 1.0.10 [list source [file join $dir platform.tcl]] package ifneeded platform::shell 1.1.4 [list source [file join $dir shell.tcl]] diff --git a/library/platform/platform.tcl b/library/platform/platform.tcl index 572a8b4..dd2e66b 100644 --- a/library/platform/platform.tcl +++ b/library/platform/platform.tcl @@ -194,42 +194,45 @@ proc ::platform::identify {} { # Do not look into /lib64 even if present, if the cpu # doesn't fit. + # TODO: Determine the prefixes (i386, x86_64, ...) for + # other cpus. The path after the generic one is utterly + # specific to intel right now. Ok, on Ubuntu, possibly + # other Debian systems we may apparently be able to query + # the necessary CPU code. If we can't we simply use the + # hardwired fallback. + switch -exact -- $tcl_platform(wordSize) { 4 { - set base /lib + lappend bases /lib + if {[catch { + exec dpkg-architecture -qDEB_HOST_MULTIARCH + } res]} { + lappend bases /lib/i386-linux-gnu + } else { + # dpkg-arch returns the full tripled, not just cpu. + lappend bases /lib/$res + } } 8 { - set base /lib64 + lappend bases /lib64 + if {[catch { + exec dpkg-architecture -qDEB_HOST_MULTIARCH + } res]} { + lappend bases /lib/x86_64-linux-gnu + } else { + # dpkg-arch returns the full tripled, not just cpu. + lappend bases /lib/$res + } } default { return -code error "Bad wordSize $tcl_platform(wordSize), expected 4 or 8" } } - set libclist [lsort [glob -nocomplain -directory $base libc*]] - if {[llength $libclist]} { - set libc [lindex $libclist 0] - - # Try executing the library first. This should suceed - # for a glibc library, and return the version - # information. - - if {![catch { - set vdata [lindex [split [exec $libc] \n] 0] - }]} { - regexp {([0-9]+(\.[0-9]+)*)} $vdata -> v - foreach {major minor} [split $v .] break - set v glibc${major}.${minor} - } else { - # We had trouble executing the library. We are now - # inspecting its name to determine the version - # number. This code by Larry McVoy. - - if {[regexp -- {libc-([0-9]+)\.([0-9]+)} $libc -> major minor]} { - set v glibc${major}.${minor} - } - } + foreach base $bases { + if {[LibcVersion $base -> v]} break } + append plat -$v return "${plat}-${cpu}" } @@ -238,6 +241,38 @@ proc ::platform::identify {} { return $id } +proc ::platform::LibcVersion {base _->_ vv} { + upvar 1 $vv v + set libclist [lsort [glob -nocomplain -directory $base libc*]] + + if {![llength $libclist]} { return 0 } + + set libc [lindex $libclist 0] + + # Try executing the library first. This should suceed + # for a glibc library, and return the version + # information. + + if {![catch { + set vdata [lindex [split [exec $libc] \n] 0] + }]} { + regexp {([0-9]+(\.[0-9]+)*)} $vdata -> v + foreach {major minor} [split $v .] break + set v glibc${major}.${minor} + return 1 + } else { + # We had trouble executing the library. We are now + # inspecting its name to determine the version + # number. This code by Larry McVoy. + + if {[regexp -- {libc-([0-9]+)\.([0-9]+)} $libc -> major minor]} { + set v glibc${major}.${minor} + return 1 + } + } + return 0 +} + # -- platform::patterns # # Given an exact platform identifier, i.e. _not_ the generic @@ -333,7 +368,7 @@ proc ::platform::patterns {id} { # ### ### ### ######### ######### ######### ## Ready -package provide platform 1.0.9 +package provide platform 1.0.10 # ### ### ### ######### ######### ######### ## Demo application diff --git a/unix/Makefile.in b/unix/Makefile.in index 82578f6..1ed5484 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -783,8 +783,8 @@ install-libraries: libraries $(INSTALL_TZDATA) install-msgs @echo "Installing package tcltest 2.3.3 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/tcltest-2.3.3.tm; - @echo "Installing package platform 1.0.9 as a Tcl Module"; - @$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform-1.0.9.tm; + @echo "Installing package platform 1.0.10 as a Tcl Module"; + @$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform-1.0.10.tm; @echo "Installing package platform::shell 1.1.4 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/platform/shell.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform/shell-1.1.4.tm; diff --git a/win/Makefile.in b/win/Makefile.in index 6308165..b48f1f4 100644 --- a/win/Makefile.in +++ b/win/Makefile.in @@ -649,8 +649,8 @@ install-libraries: libraries install-tzdata install-msgs @$(COPY) $(ROOT_DIR)/library/msgcat/msgcat.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/msgcat-1.4.4.tm; @echo "Installing package tcltest 2.3.3 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/tcltest-2.3.3.tm; - @echo "Installing package platform 1.0.9 as a Tcl Module"; - @$(COPY) $(ROOT_DIR)/library/platform/platform.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform-1.0.9.tm; + @echo "Installing package platform 1.0.10 as a Tcl Module"; + @$(COPY) $(ROOT_DIR)/library/platform/platform.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform-1.0.10.tm; @echo "Installing package platform::shell 1.1.4 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/platform/shell.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform/shell-1.1.4.tm; @echo "Installing encodings"; |