Follow us on Twitter or via RSS feeds with tweets or complete announcement texts or excerpts
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 17 Sep 2008 07:40:47 +0400
From: Solar Designer <solar@...nwall.com>
To: john-users@...ts.openwall.com
Subject: Re: jumbo patch for 1.7.3.1

On Tue, Sep 16, 2008 at 10:38:01AM +0400, SmarTeam Support wrote:
> some errors i get under cygwin
...
> gcc -O2 -s -lm -DEXTERNAL genmkvpwd.c mkvlib.c memory.c -o ../run/genmkvpwd.exe
> /cygdrive/c/DOCUME~1/Elijah/LOCALS~1/Temp/ccdOAA7i.o:memory.c:(.text+0x5b): undefined reference to `_error'

Yes, there was a bug in the way genmkvpwd was being linked in myjohn.tgz
and thus also in john-1.7.3.1-all-4 since I imported those Makefile
hacks almost verbatim.  I'll have this fixed in the next revision of the
jumbo patch.

Meanwhile, does the attached patch make things work for you?

Thanks,

Alexander

diff -urp john-1.7.3.1-all-4/src/Makefile john-1.7.3.1/src/Makefile
--- john-1.7.3.1-all-4/src/Makefile	2008-09-15 02:45:13 +0000
+++ john-1.7.3.1/src/Makefile	2008-09-17 03:27:32 +0000
@@ -18,13 +18,10 @@ CPPFLAGS = -E
 CFLAGS = -c -Wall -O2 -fomit-frame-pointer -I/usr/local/include -L/usr/local/lib
 ASFLAGS = -c
 LDFLAGS = -s -L/usr/local/lib -L/usr/local/ssl/lib -lcrypto -lm
+LDFLAGS_MKV = -s -lm
 OPT_NORMAL = -funroll-loops
 OPT_INLINE = -finline-functions
 
-# MKVFLAGS have to be fairly generic because they are not overridden when
-# using non-gcc.  This is a dirty hack.
-MKVFLAGS = -O2 -s -lm
-
 JOHN_OBJS_MINIMAL = \
 	DES_fmt.o DES_std.o DES_bs.o \
 	BSDI_fmt.o \
@@ -106,6 +103,9 @@ BENCH_OBJS = \
 	bench.o best.o common.o config.o formats.o math.o memory.o miscnl.o \
 	params.o path.o signals.o tty.o
 
+GENMKVPWD_OBJS = \
+	genmkvpwd.o mkvlib.o memory.o miscnl.o
+
 PROJ = ../run/john ../run/unshadow ../run/unafs ../run/unique ../run/undrop \
 	../run/genmkvpwd ../run/mkvcalcproba ../run/calc_stat
 PROJ_DOS = ../run/john.bin ../run/john.com \
@@ -869,7 +869,7 @@ john.com: john.asm
 	@echo Use Borland TASM/TLINK to make JOHN.COM
 
 ../run/john.exe: $(JOHN_OBJS)
-	$(LD) $(JOHN_OBJS) -lkernel32 -lssl -lcrypto -o ../run/john.exe
+	$(LD) $(JOHN_OBJS) -lkernel32 -lcrypto -o ../run/john.exe
 	strip ../run/john.exe
 
 ../run/unshadow.exe: symlink.c
@@ -888,23 +888,23 @@ john.com: john.asm
 	$(CC) symlink.c -o ../run/unique.exe
 	strip ../run/unique.exe
 
-../run/genmkvpwd: genmkvpwd.c mkvlib.o misc.o
-	$(CC) $(MKVFLAGS) -DEXTERNAL genmkvpwd.c mkvlib.c memory.c -o ../run/genmkvpwd
+../run/genmkvpwd: $(GENMKVPWD_OBJS)
+	$(LD) $(GENMKVPWD_OBJS) $(LDFLAGS_MKV) -o ../run/genmkvpwd
 
-../run/genmkvpwd.exe: genmkvpwd.c mkvlib.o misc.o
-	$(CC) $(MKVFLAGS) -DEXTERNAL genmkvpwd.c mkvlib.c memory.c -o ../run/genmkvpwd.exe
+../run/genmkvpwd.exe: $(GENMKVPWD_OBJS)
+	$(LD) $(GENMKVPWD_OBJS) $(LDFLAGS_MKV) -o ../run/genmkvpwd.exe
 
-../run/mkvcalcproba: mkvcalcproba.c 
-	$(CC) $(MKVFLAGS) mkvcalcproba.c -o ../run/mkvcalcproba
+../run/mkvcalcproba: mkvcalcproba.o
+	$(LD) mkvcalcproba.o $(LDFLAGS_MKV) -o ../run/mkvcalcproba
 
-../run/mkvcalcproba.exe: mkvcalcproba.c 
-	$(CC) $(MKVFLAGS) mkvcalcproba.c -o ../run/mkvcalcproba.exe
+../run/mkvcalcproba.exe: mkvcalcproba.o
+	$(LD) mkvcalcproba.o $(LDFLAGS_MKV) -o ../run/mkvcalcproba.exe
 
-../run/calc_stat: calc_stat.c
-	$(CC) $(MKVFLAGS) calc_stat.c -o ../run/calc_stat 
+../run/calc_stat: calc_stat.o
+	$(LD) calc_stat.o $(LDFLAGS_MKV) -o ../run/calc_stat
 
-../run/calc_stat.exe: calc_stat.c
-	$(CC) $(MKVFLAGS) calc_stat.c -o ../run/calc_stat.exe 
+../run/calc_stat.exe: calc_stat.o
+	$(LD) calc_stat.o $(LDFLAGS_MKV) -o ../run/calc_stat.exe
 
 # Inlining the S-boxes produces faster code, as long as they fit in the cache
 # (that is, on RISC with at least 8 KB of L1 code cache).
diff -urp john-1.7.3.1-all-4/src/mkvlib.c john-1.7.3.1/src/mkvlib.c
--- john-1.7.3.1-all-4/src/mkvlib.c	2007-09-21 13:29:53 +0000
+++ john-1.7.3.1/src/mkvlib.c	2008-09-17 03:11:00 +0000
@@ -159,11 +159,7 @@ void init_probatables(char * filename)
 	if(!fichier)
 	{
 		fprintf(stderr, "could not open %s\n", filename);
-#ifdef EXTERNAL
-		perror(filename);
-#else
 		error();
-#endif
 	}
 
 	first = mem_alloc( sizeof(int) * 256 );


-- 
To unsubscribe, e-mail john-users-unsubscribe@...ts.openwall.com and reply
to the automated confirmation request that will be sent to you.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux - Powered by OpenVZ