]> git.sesse.net Git - freerainbowtables/commitdiff
linux cuda boinc build!
authorJames Nobis <quel@quelrod.net>
Thu, 11 Nov 2010 02:21:50 +0000 (20:21 -0600)
committerJames Nobis <quel@quelrod.net>
Thu, 11 Nov 2010 02:21:50 +0000 (20:21 -0600)
BOINC software/BOINC client apps/distrrtgen_cuda/Makefile
BOINC software/BOINC client apps/distrrtgen_cuda/Makefile.linux_x86_64 [new file with mode: 0644]
BOINC software/BOINC client apps/distrrtgen_cuda/README [new file with mode: 0644]
BOINC software/BOINC client apps/distrrtgen_cuda/distrrtgen.cpp

index 86eb1fa981fcc0cc101e2c2d331f305634c8e0ad..185bef0eb0600e89d51e5f2a0d9fb77ee5bf952e 100644 (file)
@@ -29,31 +29,45 @@ BOINC_API_DIR = $(BOINC_DIR)/api
 BOINC_LIB_DIR = $(BOINC_DIR)/lib
 CC = g++
 COMMON_LIB_DIR = /usr/lib
-INCLUDES = -I../../../Common/rt\ api -I$(BOINC_DIR) -I$(BOINC_LIB_DIR) -I$(BOINC_API_DIR) -I/usr/local/cuda/include
+CUDA_PATH = /usr/local/cuda
+INCLUDES = -I../../../Common/rt\ api -I$(BOINC_DIR) -I$(BOINC_LIB_DIR) \
+       -I$(BOINC_API_DIR) -I$(CUDA_PATH)/include
 COMMON_API_PATH = ../../../Common/rt\ api
 
 OPTIMIZATION = -O3
-WARNALL = -Wextra -Wunused-macros -Wunsafe-loop-optimizations -Wundef -Woverlength-strings -Wdisabled-optimization -Wformat-extra-args -Wformat-security -Winline
+WARNALL = -Wextra -Wunused-macros -Wunsafe-loop-optimizations -Wundef \
+       -Woverlength-strings -Wdisabled-optimization -Wformat-extra-args \
+       -Wformat-security -Winline
 
-#    -static -static-libgcc
-CXXFLAGS = -Wall -static-libgcc -ansi -c -DBOINC $(INCLUDES) $(OPTIMIZATION) $(DEBUG)
+CXXFLAGS = -Wall -static -static-libgcc -ansi -c -DBOINC $(INCLUDES) \
+       $(OPTIMIZATION) $(DEBUG)
 
-# -static-libgcc
-LFLAGS = -Wall -static-libgcc -ansi $(INCLUDES) $(OPTIMIZATION) -L$(BOINC_API_DIR) \
-       -L$(BOINC_LIB_DIR) -L/usr/X11R6/lib -L/usr/lib -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib -L. $(DEBUG)
+# -static
+LFLAGS = -Wall -static-libgcc -ansi $(INCLUDES) $(OPTIMIZATION) \
+       -L$(BOINC_API_DIR) -L$(BOINC_LIB_DIR) -L/usr/X11R6/lib -L/usr/lib \
+       -L$(CUDA_PATH)/lib64 -L$(CUDA_PATH)/lib -L. -Xlinker -rpath . \
+       $(DEBUG)
 
-LIBS = -lboinc_api -lboinc -lpthread -lssl -lcudart libstdc++.a $(COMMON_LIB_DIR)/libssl.a $(COMMON_LIB_DIR)/libpthread.a
-OBJS = ChainWalkContext.o des_enc.o des_setkey.o distrrtgen.o ecb_enc.o HashAlgorithm.o HashRoutine.o md4.o md5.o Public.o rcuda_ext.o rcuda.o
+LIBS = -lboinc_api -lboinc -lpthread -lcudart libcudart.so.3 libgcc_s.so.1 \
+       libstdc++.so.6 $(COMMON_LIB_DIR)/libpthread.a
+OBJS = ChainWalkContext.o des_enc.o des_setkey.o distrrtgen.o ecb_enc.o \
+       HashAlgorithm.o HashRoutine.o md4.o md5.o Public.o rcuda_ext.o rcuda.o
 
 OSNAME = $(shell uname -s)
 
 all: distrrtgen
 
-distrrtgen: libstdc++.a $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a $(OBJS)
+distrrtgen: libcudart.so.3 libgcc_s.so.1 libstdc++.so.6 $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a $(OBJS)
        $(CXX) $(LFLAGS) $(OBJS) $(LIBS) -o distrrtgen
 
-libstdc++.a:
-       ln -s `$(CC) $(CXXFLAGS) -print-file-name=libstdc++.a`
+libcudart.so.3:
+       ln -s $(CUDA_PATH)/lib64/libcudart.so.3 libcudart.so.3
+
+libstdc++.so.6:
+       ln -s `$(CC) $(CXXFLAGS) -print-file-name=libstdc++.so.6`
+
+libgcc_s.so.1:
+       ln -s `$(CC) $(CXXFLAGS) -print-file-name=libgcc_s.so.1`
 
 clean:
        /bin/rm -f distrrtgen *.o
@@ -65,7 +79,7 @@ debugall: DEBUG += -DDEBUG -g $(WARNALL)
 debugall: all
 
 distclean:
-       /bin/rm -f distrrtgen *.o libstdc++.a
+       /bin/rm -f distrrtgen *.o libcudart.so.3 libgcc_s.so.1 libstdc++.so.6
 
 rebuild: clean all
 
@@ -103,5 +117,5 @@ rcuda_ext.o: rcuda_ext.h rcuda_ext.cpp $(COMMON_API_PATH)/ChainWalkContext.h
        $(CXX) $(CXXFLAGS) rcuda_ext.cpp
 
 rcuda.o: rcuda.h rcuda.cu $(COMMON_API_PATH)/Public.h $(COMMON_API_PATH)/global.h
-       /usr/local/cuda/bin/nvcc $(OPTIMIZATION) $(DEBUG) -I../../../Common/rt\ api --compile rcuda.cu
-#      /usr/local/cuda/bin/nvcc -G $(DEBUG) --machine 32 -I../../../Common/rt\ api --compile rcuda.cu
+       $(CUDA_PATH)/bin/nvcc $(OPTIMIZATION) $(DEBUG) -I../../../Common/rt\ api --compile rcuda.cu
+#      $(CUDA_PATH)/bin/nvcc -G $(DEBUG) --machine 32 -I../../../Common/rt\ api --compile rcuda.cu
diff --git a/BOINC software/BOINC client apps/distrrtgen_cuda/Makefile.linux_x86_64 b/BOINC software/BOINC client apps/distrrtgen_cuda/Makefile.linux_x86_64
new file mode 100644 (file)
index 0000000..7349cef
--- /dev/null
@@ -0,0 +1,138 @@
+# freerainbowtables is a project for generating, distributing, and using
+# perfect rainbow tables
+#
+# Copyright (C) Zhu Shuanglei <shuanglei@hotmail.com>
+# Copyright 2010 Martin Westergaard Jørgensen <martinwj2005@gmail.com>
+# Copyright 2009, 2010 Daniël Niggebrugge <niggebrugge@fox-it.com>
+# Copyright 2009, 2010 James Nobis <frt@quelrod.net>
+#
+# This file is part of freerainbowtables.
+#
+# freerainbowtables is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# freerainbowtables is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with freerainbowtables.  If not, see <http://www.gnu.org/licenses/>.
+
+SHELL = /bin/sh
+
+#BOINC_DIR = /home/ubuntu/boinc
+BOINC_DIR = /usr/share/boinc-dev
+BOINC_API_DIR = $(BOINC_DIR)/api
+BOINC_LIB_DIR = $(BOINC_DIR)/lib
+CC = g++
+COMMON_LIB_DIR = /usr/lib
+CUDA_PATH = /usr/local/cuda
+INCLUDES = -I../../../Common/rt\ api -I$(BOINC_DIR) -I$(BOINC_LIB_DIR) \
+       -I$(BOINC_API_DIR) -I$(CUDA_PATH)/include
+COMMON_API_PATH = ../../../Common/rt\ api
+VERSION = 3.07
+
+OPTIMIZATION = -O3
+WARNALL = -Wextra -Wunused-macros -Wunsafe-loop-optimizations -Wundef \
+       -Woverlength-strings -Wdisabled-optimization -Wformat-extra-args \
+       -Wformat-security -Winline
+
+CXXFLAGS = -Wall -static -static-libgcc -ansi -c -DBOINC $(INCLUDES) \
+       $(OPTIMIZATION) $(DEBUG)
+
+# -static
+LFLAGS = -Wall -static-libgcc -ansi $(INCLUDES) $(OPTIMIZATION) \
+       -L$(BOINC_API_DIR) -L$(BOINC_LIB_DIR) -L/usr/X11R6/lib -L/usr/lib \
+       -L$(CUDA_PATH)/lib64 -L$(CUDA_PATH)/lib -L. -Xlinker -rpath . $(DEBUG)
+
+LIBS = -lboinc_api -lboinc -lpthread -lcudart \
+       libcudart.so.3=libcudart_x86_64-pc-linux-gnu_$(VERSION).so.3 \
+       libgcc_s.so.1=libgcc_s_x86_64-pc-linux-gnu_$(VERSION).so.1 \
+       libstdc++.so.6=libstdc++_x86_64-pc-linux-gnu_$(VERSION).so.6 \
+       $(COMMON_LIB_DIR)/libpthread.a
+OBJS = ChainWalkContext.o des_enc.o des_setkey.o distrrtgen.o ecb_enc.o \
+       HashAlgorithm.o HashRoutine.o md4.o md5.o Public.o rcuda_ext.o rcuda.o
+
+OSNAME = $(shell uname -s)
+
+all: distrrtgen
+
+distrrtgen: libcudart_x86_64-pc-linux-gnu.so.3 \
+       libgcc_s_x86_64-pc-linux-gnu.so.1 libstdc++_x86_64-pc-linux-gnu.so.6 \
+       $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a $(OBJS)
+       $(CXX) $(LFLAGS) $(OBJS) $(LIBS) -o distrrtgen
+
+libcudart_x86_64-pc-linux-gnu.so.3:
+       ln -s $(CUDA_PATH)/lib64/libcudart.so.3 \
+               libcudart.so.3=libcudart_x86_64-pc-linux-gnu_$(VERSION).so.3
+       echo -n "<copy_file/>" > libcudart.so.3=libcudart_x86_64-pc-linux-gnu_$(VERSION).so.3.file_ref_info
+
+libstdc++_x86_64-pc-linux-gnu.so.6:
+       ln -s `$(CC) $(CXXFLAGS) -print-file-name=libstdc++.so.6` \
+               libstdc++.so.6=libstdc++_x86_64-pc-linux-gnu_$(VERSION).so.6
+       echo -n "<copy_file/>" > libstdc++.so.6=libstdc++_x86_64-pc-linux-gnu_$(VERSION).so.6.file_ref_info
+
+libgcc_s_x86_64-pc-linux-gnu.so.1:
+       ln -s `$(CC) $(CXXFLAGS) -print-file-name=libgcc_s.so.1` \
+               libgcc_s.so.1=libgcc_s_x86_64-pc-linux-gnu_$(VERSION).so.1
+       echo -n "<copy_file/>" > libgcc_s.so.1=libgcc_s_x86_64-pc-linux-gnu_$(VERSION).so.1.file_ref_info
+
+clean:
+       /bin/rm -f distrrtgen *.o
+
+debug: DEBUG += -DDEBUG -g
+debug: all
+
+debugall: DEBUG += -DDEBUG -g $(WARNALL)
+debugall: all
+
+distclean:
+       /bin/rm -f distrrtgen *.o \
+               libgcc_s.so.1=libgcc_s_x86_64-pc-linux-gnu_$(VERSION).so.1 \
+               libstdc++.so.6=libstdc++_x86_64-pc-linux-gnu_$(VERSION).so.6 \
+               libcudart.so.3=libcudart_x86_64-pc-linux-gnu_$(VERSION).so.3 \
+               libgcc_s.so.1=libgcc_s_x86_64-pc-linux-gnu_$(VERSION).so.1.file_ref_info \
+               libstdc++.so.6=libstdc++_x86_64-pc-linux-gnu_$(VERSION).so.6.file_ref_info \
+               libcudart.so.3=libcudart_x86_64-pc-linux-gnu_$(VERSION).so.3.file_ref_info
+
+rebuild: clean all
+
+ChainWalkContext.o: $(COMMON_API_PATH)/ChainWalkContext.h $(COMMON_API_PATH)/ChainWalkContext.cpp $(COMMON_API_PATH)/HashRoutine.h $(COMMON_API_PATH)/Public.h
+       $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/ChainWalkContext.cpp
+
+des_enc.o: $(COMMON_API_PATH)/des_enc.c $(COMMON_API_PATH)/des_locl.h $(COMMON_API_PATH)/spr.h
+       $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/des_enc.c
+
+des_setkey.o: $(COMMON_API_PATH)/des_setkey.c $(COMMON_API_PATH)/des_locl.h $(COMMON_API_PATH)/podd.h $(COMMON_API_PATH)/sk.h
+       $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/des_setkey.c
+
+distrrtgen.o: distrrtgen.cpp distrrtgen.h $(COMMON_API_PATH)/ChainWalkContext.h $(COMMON_API_PATH)/Public.h
+       $(CXX) $(CXXFLAGS) distrrtgen.cpp
+
+ecb_enc.o: $(COMMON_API_PATH)/ecb_enc.c $(COMMON_API_PATH)/des_locl.h $(COMMON_API_PATH)/spr.h
+       $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/ecb_enc.c
+
+HashAlgorithm.o: $(COMMON_API_PATH)/HashAlgorithm.h $(COMMON_API_PATH)/HashAlgorithm.cpp $(COMMON_API_PATH)/Public.h $(COMMON_API_PATH)/md4.h 
+       $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/HashAlgorithm.cpp
+
+HashRoutine.o: $(COMMON_API_PATH)/HashRoutine.h $(COMMON_API_PATH)/HashRoutine.cpp $(COMMON_API_PATH)/global.h $(COMMON_API_PATH)/HashAlgorithm.h
+       $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/HashRoutine.cpp
+
+md4.o: $(COMMON_API_PATH)/md4.h $(COMMON_API_PATH)/md4.cpp $(COMMON_API_PATH)/global.h
+       $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/md4.cpp
+
+md5.o: $(COMMON_API_PATH)/md5.h $(COMMON_API_PATH)/md5.cpp $(COMMON_API_PATH)/global.h
+       $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/md5.cpp
+
+Public.o: $(COMMON_API_PATH)/Public.h $(COMMON_API_PATH)/Public.cpp $(COMMON_API_PATH)/global.h
+       $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/Public.cpp
+
+rcuda_ext.o: rcuda_ext.h rcuda_ext.cpp $(COMMON_API_PATH)/ChainWalkContext.h
+       $(CXX) $(CXXFLAGS) rcuda_ext.cpp
+
+rcuda.o: rcuda.h rcuda.cu $(COMMON_API_PATH)/Public.h $(COMMON_API_PATH)/global.h
+       $(CUDA_PATH)/bin/nvcc $(OPTIMIZATION) $(DEBUG) -I../../../Common/rt\ api --compile rcuda.cu
+#      $(CUDA_PATH)/bin/nvcc -G $(DEBUG) --machine 32 -I../../../Common/rt\ api --compile rcuda.cu
diff --git a/BOINC software/BOINC client apps/distrrtgen_cuda/README b/BOINC software/BOINC client apps/distrrtgen_cuda/README
new file mode 100644 (file)
index 0000000..1090b0a
--- /dev/null
@@ -0,0 +1,10 @@
+Makefile is for a standalone build
+Makefile.linux_x86_64 is for a boinc build which needs these files:
+       charset.txt
+       distrrtgen_3.07_x86_64-pc-linux-gnu__cuda30
+       libcudart.so.3=libcudart_x86_64-pc-linux-gnu_3.07.so.3
+       libcudart.so.3=libcudart_x86_64-pc-linux-gnu_3.07.so.3.file_ref_info
+       libgcc_s.so.1=libgcc_s_x86_64-pc-linux-gnu_3.07.so.1
+       libgcc_s.so.1=libgcc_s_x86_64-pc-linux-gnu_3.07.so.1.file_ref_info
+       libstdc++.so.6=libstdc++_x86_64-pc-linux-gnu_3.07.so.6
+       libstdc++.so.6=libstdc++_x86_64-pc-linux-gnu_3.07.so.6.file_ref_info
index 9ed924ea062b26654e55847952e206f98a0e2125..3ab24dbbd61120779d26f5e183048bf78e5db0a4 100644 (file)
 #include "filesys.h"
 #include "boinc_api.h"
 #include "Public.h"
-// Rainbowcrack code
-#include "ChainWalkContext.h"
 //typedef unsigned int uint32;
 //typedef unsigned __int64 uint64;
 #include "rcuda.h"
 #include "rcuda_ext.h"
 
+#define EXIT_CODE_TEMP_SLEEP -20
+
 
 using std::string;
 
@@ -137,6 +137,9 @@ int main(int argc, char **argv) {
                        // http://bolt.berkeley.edu/trac/changeset/22382
                        #ifdef _WIN32
                                boinc_temporary_exit(60);
+                       #else
+                               sleep(60);
+                               exit(EXIT_CODE_TEMP_SLEEP);
                        #endif
                }