From: James Nobis Date: Thu, 11 Nov 2010 02:21:50 +0000 (-0600) Subject: linux cuda boinc build! X-Git-Url: https://git.sesse.net/?p=freerainbowtables;a=commitdiff_plain;h=00282114b5d4c186a2767318628d21f9ca3953b6 linux cuda boinc build! --- diff --git a/BOINC software/BOINC client apps/distrrtgen_cuda/Makefile b/BOINC software/BOINC client apps/distrrtgen_cuda/Makefile index 86eb1fa..185bef0 100644 --- a/BOINC software/BOINC client apps/distrrtgen_cuda/Makefile +++ b/BOINC software/BOINC client apps/distrrtgen_cuda/Makefile @@ -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 index 0000000..7349cef --- /dev/null +++ b/BOINC software/BOINC client apps/distrrtgen_cuda/Makefile.linux_x86_64 @@ -0,0 +1,138 @@ +# freerainbowtables is a project for generating, distributing, and using +# perfect rainbow tables +# +# Copyright (C) Zhu Shuanglei +# Copyright 2010 Martin Westergaard Jørgensen +# Copyright 2009, 2010 Daniël Niggebrugge +# Copyright 2009, 2010 James Nobis +# +# 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 . + +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 "" > 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 "" > 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 "" > 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 index 0000000..1090b0a --- /dev/null +++ b/BOINC software/BOINC client apps/distrrtgen_cuda/README @@ -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 diff --git a/BOINC software/BOINC client apps/distrrtgen_cuda/distrrtgen.cpp b/BOINC software/BOINC client apps/distrrtgen_cuda/distrrtgen.cpp index 9ed924e..3ab24db 100644 --- a/BOINC software/BOINC client apps/distrrtgen_cuda/distrrtgen.cpp +++ b/BOINC software/BOINC client apps/distrrtgen_cuda/distrrtgen.cpp @@ -56,13 +56,13 @@ #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 }