You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Building everything with -xmemalign-4i and the program is OK. rm tiger.o followed by a tiger.cpp rebuild without the flag is OK. A rm iterhash.o tiger.o followed by a rebuild without the flag is bad.
It seems iterhash.cpp is [incorrectly] handling unaligned data. It is also worth mention Tiger uses word64.
Now, the problem is, gdb does not really work so we have not been able to run it under the debugger and learn something useful. Sigh... I guess we have to try the native dbx debugger next.
And here we have it:
(dbx) run v
...
Tiger validation suite running...
passed 3293ac630c13f0245f92bbb1766e16167a4e58492dde73f3 ""
passed 2aab1484e8c158f2bfb8c5ff41b57a525129131c957b5f93 "abc"
passed dd00230799f5009fec6debc838bb6a27df2b9d6f110c7937 "Tiger"
passed f71c8583902afb879edfe610f82c0d4786a3a534504486b5 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-"
signal BUS (invalid address alignment) in CryptoPP::ByteReverse<unsigned long> at line 2074 in file "misc.h"
2074 out[i] = ByteReverse(in[i]);^M
(dbx)
The text was updated successfully, but these errors were encountered:
Man, Sparc does not mess around with unaligned buffers. Without -xmemalign=4i the hardware wants 8-byte aligned word64's so it can use the high performance 64-bit move or add.
Since we do not use -xmemalign we get the default behavior of either -xmemalgin=8i or -xmemalgin=8s. It shoul dnot matter to us since we removed unaligned data access at GH #682.
It looks like GetAlignmentOf was returning the "UnsignedMin(4U, sizeof(T))" for SunCC. It was causing SIGBUSes on Sparc when T=word64. OpenCSW provided access to their build farm and we were able to test "__alignof__(T)" back to an early SunCC on Solaris 9.
Compiling with Sun Studio 12.3 is leading to a crash on Solaris 11 on Sparc:
Building everything with
-xmemalign-4i
and the program is OK.rm tiger.o
followed by atiger.cpp
rebuild without the flag is OK. Arm iterhash.o tiger.o
followed by a rebuild without the flag is bad.It seems
iterhash.cpp
is [incorrectly] handling unaligned data. It is also worth mention Tiger usesword64
.Now, the problem is,
gdb
does not really work so we have not been able to run it under the debugger and learn something useful. Sigh... I guess we have to try the nativedbx
debugger next.And here we have it:
The text was updated successfully, but these errors were encountered: