Tcl Source Code

View Ticket
Login
Ticket UUID: 554351
Title: Sample Extension not 64-bit Aware
Type: Bug Version: obsolete: 8.5a0
Submitter: dgp Created on: 2002-05-10 02:25:29
Subsystem: 70. Sample Extension Assigned To: hobbs
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2003-12-09 01:28:34
Resolution: Fixed Closed By: hobbs
    Closed on: 2003-12-08 18:28:34
Description:
OK, the main point of the sampleextension
is the TEA config/build/install stuff, but
the extension still ought to actually work.
It does not work on 64-bit Linux/Alpha:

$ make test
TCL_LIBRARY=`echo /local/src/tcl/library`
LD_LIBRARY_PATH=".:/local/src/tcl/unix:/home/dgp/alpha/linux/lib:/usr/local/lib:/usr/lib"
LIBPATH=".:/local/src/tcl/unix:"
SHLIB_PATH=".:/local/src/tcl/unix:"
PATH=".:/local/src/tcl/unix:/home/dgp/alpha/linux/bin:/home/dgp/Tcl:/home/dgp/Perl:/home/dgp/bin:/home/dgp/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/X11:/usr/openwin/bin:/usr/games:."
TCLLIBPATH="." "/local/src/tcl/unix/tclsh" `echo
./tests/all.tcl` 
Tests running in interp:      
/local/src/tcl/unix/tclsh
Tests running with pwd:       
/local/src/sampleextension
Tests running in working dir: 
/local/src/sampleextension/tests
Only sourcing test files that match:  *.test
Tests began at Thu May 09 22:24:44 EDT 2002
sample.test

==== sha-1.1 Use of -string operand FAILED
==== Contents of test case:

    set result [sha1 -string foo]

---- Result was:
b0b801b1bf5f29352b10094e72d6842b9676a1f8
---- Result should have been (exact matching):
0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33
==== sha-1.1 FAILED

make: *** [test] Segmentation fault


My guess is that there's an implicit assumption
of 32-bit "registers".
User Comments: hobbs added on 2003-12-09 01:28:34:
Logged In: YES 
user_id=72656

2nd patch applied for sample0.5.

dgp added on 2003-12-08 23:27:11:

File Added - 69939: 554351.patch

Logged In: YES 
user_id=80530


With the recent changes (TEA 3)
this slightly modified patch seems
to be all we need for 64-bit support.
Thanks, dkf.  tclguy, please test and
apply.

dkf added on 2003-03-07 18:27:24:
Logged In: YES 
user_id=79902

Status: I was busy (and still am, alas.)

dgp added on 2003-03-05 13:43:57:
Logged In: YES 
user_id=80530


status on this one?

dgp added on 2002-08-01 03:32:29:
Logged In: YES 
user_id=80530


After commenting out the assert(), I get
a [load]-able shared library; thus a valid
pkgIndex.tcl file, and after installing a
`make test` runs successfully with 0 failures.

So, good 64-bit fix (modulo assert-removal),
but new build/install issues discovered.

dgp added on 2002-08-01 03:26:53:
Logged In: YES 
user_id=80530


Problem 1:  The shared library produced with
an --enable-symbols configuration will not
[load].  This means that generation of
pkgIndex.tcl also fails -- silently.  Neither is good.

% load libsample0.4g.so
couldn't load file "libsample0.4g.so":
/local/src/sampleextension/libsample0.4g.so: undefined
symbol: assert

Same problem without --enable-symbols actually:

% load libsample0.4.so
couldn't load file "libsample0.4.so":
/local/src/sampleextension/libsample0.4.so: undefined
symbol: assert

dgp added on 2002-07-27 12:34:16:
Logged In: YES 
user_id=80530

assigning to myself so I'll remember to test this when I get 
home

dkf added on 2002-07-26 22:04:56:

File Added - 27812: 64bit.patch

Logged In: YES 
user_id=79902

Could someone try this possible fix?

dkf added on 2002-06-25 21:27:01:
Logged In: YES 
user_id=79902

Well, it's already scared *me* off for a while! ;^)

Perhaps if I was to start by working from the tcllib
version!

dgp added on 2002-06-25 21:17:30:
Logged In: YES 
user_id=80530

that's enough to scare me away.

dkf added on 2002-06-25 16:10:36:
Logged In: YES 
user_id=79902

Ooer!  SHA1Transform (in sample.c) is absolutely not
portable to 64-bit systems (it assumes that
sizeof(long)==4*sizeof(char) and that
sizeof(long[16])==sizeof(char[64]), neither of which is
guaranteed to be true, and both of which could fail
independently.)  Maybe the rest of that file is better, but
I somehow doubt it...

Fixing this bug requires a hefty rewrite of that file, so
I'm dropping the priority.

dgp added on 2002-06-21 23:58:28:
Logged In: YES 
user_id=80530

I'll try to look into this.

mdejong added on 2002-05-22 01:20:54:
Logged In: YES 
user_id=90858

I don't have access to a 64 bit system. Sending back to
hobbs in the hope that he can find someone with a 64 bit
system.

Attachments: