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".
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.
Logged In: YES
user_id=80530
I'll try to look into this.
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.
Logged In: YES
user_id=80530
that's enough to scare me away.
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!
Logged In: YES
user_id=79902
Could someone try this possible fix?
Potential Fix (Unified Diff)
Logged In: YES
user_id=80530
assigning to myself so I'll remember to test this when I get
home
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
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.
Logged In: YES
user_id=80530
status on this one?
Logged In: YES
user_id=79902
Status: I was busy (and still am, alas.)
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.
Logged In: YES
user_id=72656
2nd patch applied for sample0.5.