>There was a "fix" posted some time back but while it compiled fine,
>I couldn't get it to run properly. Has anyone?
The patches below are what I used to get Crack working on an Alpha
running OSF 1.2. It still works under 1.3.
--
University of California, Irvine phone: (714) 856-6926
Office of Academic Computing FAX: (714) 725-2069
Distributed Computing Support
*** ufc-crypt/ufc-crypt.h.dist Thu Mar 19 21:24:09 1992
--- ufc-crypt/ufc-crypt.h Wed Nov 25 08:52:18 1992
***************
*** 53,58 ****
--- 53,64 ----
#define _UFC_64_
#endif
+ #ifdef __alpha
+ typedef unsigned long ufc_long;
+ typedef unsigned long long64;
+ #define _UFC_64_
+ #endif
+
/*
* For debugging 64 bit code etc with 'gcc'
*/
*** Sources/bytesex.c.dist Thu Mar 19 21:13:46 1992
--- Sources/bytesex.c Tue Feb 23 17:26:25 1993
***************
*** 4,9 ****
--- 4,10 ----
{
char *p;
long int l;
+ int endian = 0; /* 1 = big, -1 = little */
l = 'a' << 24 | 'b' << 16 | 'c' << 8 | 'd';
p = (char *) &l;
***************
*** 23,32 ****
}
if (!strncmp (p, "abcd", 4))
{
! puts ("-DBIG_ENDIAN");
} else if (!strncmp (p, "dcba", 4))
{
! puts ("-DLITTLE_ENDIAN");
}
exit (0);
}
--- 24,56 ----
}
if (!strncmp (p, "abcd", 4))
{
! endian = 1;
} else if (!strncmp (p, "dcba", 4))
{
! endian = -1;
}
+ if (endian == 0) { /* try again after shifting l back 32 */
+ l >>= 32;
+ if (!strncmp (p, "abcd", 4))
+ {
+ endian = 1;
+ } else if (!strncmp (p, "dcba", 4))
+ {
+ endian = -1;
+ }
+ }
+ switch (endian)
+ {
+ case 0:
+ fprintf (stderr, "bytesex: Can't figure out endian of this system!\n");
+ exit(1);
+ case 1:
+ puts ("-DBIG_ENDIAN");
+ break;
+ case -1:
+ puts ("-DLITTLE_ENDIAN");
+ }
+
+
exit (0);
}
*** Sources/crack-supp.c.dist Thu Mar 19 21:13:47 1992
--- Sources/crack-supp.c Fri Nov 27 17:46:18 1992
***************
*** 44,53 ****
char *fmt;
long int a, b, c, d, e, f, g, h, i, j;
{
! long t;
time (&t);
! printf ("pwc: %-15.15s ", ctime (&t) + 4);
printf (fmt, a, b, c, d, e, f, g, h, i, j);
fflush (stdout);
}
--- 44,53 ----
char *fmt;
long int a, b, c, d, e, f, g, h, i, j;
{
! time_t t;
time (&t);
! printf ("pwc: %-15.15s ", (char *) ctime (&t) + 4);
printf (fmt, a, b, c, d, e, f, g, h, i, j);
fflush (stdout);
}