Files

2.4 KiB

Linux:

Pre:

gcc -c -O3 -m64 exts\blake3_sse2_x86-64_windows_gnu.S -o exts\blake3_sse2.obj
gcc -c -O3 -m64 exts\blake3_sse41_x86-64_windows_gnu.S -o exts\blake3_sse41.obj
gcc -c -O3 -m64 exts\blake3_avx2_x86-64_windows_gnu.S -o exts\blake3_avx2.obj
gcc -c -O3 -m64 exts\blake3_avx512_x86-64_windows_gnu.S -o exts\blake3_avx512.obj
gcc -c -O3 exts\blake3.c -o exts\blake3.obj
gcc -c -O3 exts\blake3_dispatch.c -o exts\blake3_dispatch.obj
gcc -c -O3 exts\blake3_portable.c -o exts\blake3_portable.obj

Compile CMD's: static lib

ldc2 -c -O3 -release -boundscheck=off -unittest=0 main.d
llvm-ar rcs libthreefish512.a main.o exts/blake3.o exts/blake3_dispatch.o exts/blake3_portable.o exts/blake3_sse2.o exts/blake3_sse41.o exts/blake3_avx2.o exts/blake3_avx512.o

so ldc2 -O3 -release -boundscheck=off -unittest=0 -shared -fPIC main.d exts/blake3.o exts/blake3_dispatch.o exts/blake3_portable.o exts/blake3_sse2.o exts/blake3_sse41.o exts/blake3_avx2.o exts/blake3_avx512.o -of=libthreefish512.so

for the test_vec:

gcc -O3 test_vec.c -L. -lthreefish512 -o test_vec -lpthread -lm
gcc -O3 test_vec.c -L. -lthreefish512 -o test_vec -Wl,-rpath=. -lpthread -lm

Windows:

Pre:

gcc -c -O3 -m64 exts\blake3_sse2_x86-64_windows_gnu.S -o exts\blake3_sse2.obj
gcc -c -O3 -m64 exts\blake3_sse41_x86-64_windows_gnu.S -o exts\blake3_sse41.obj
gcc -c -O3 -m64 exts\blake3_avx2_x86-64_windows_gnu.S -o exts\blake3_avx2.obj
gcc -c -O3 -m64 exts\blake3_avx512_x86-64_windows_gnu.S -o exts\blake3_avx512.obj
gcc -c -O3 exts\blake3.c -o exts\blake3.obj
gcc -c -O3 exts\blake3_dispatch.c -o exts\blake3_dispatch.obj
gcc -c -O3 exts\blake3_portable.c -o exts\blake3_portable.obj

Compile CMD's: static lib

ldc2 -c -O3 -release -boundscheck=off -unittest=0 -shared main.d
llvm-ar rcs threefish512.lib main.obj exts\blake3.obj exts\blake3_dispatch.obj exts\blake3_portable.obj exts/blake3_sse2.obj exts/blake3_sse41.obj exts/blake3_avx2.obj exts/blake3_avx512.obj exts/blake3.obj exts/blake3_dispatch.obj exts/blake3_portable.obj

dll&static lib (direct ldc2) ldc2 -O3 -release -boundscheck=off -unittest=0 -shared main.d exts\blake3.obj exts\blake3_dispatch.obj exts\blake3_portable.obj exts\blake3_sse2.obj exts\blake3_sse41.obj exts\blake3_avx2.obj exts\blake3_avx512.obj

for the test_vec: (compile in MSVC x64 IMPORTANT it must be x64 developer command prompt) cl /O2 test_vec.c main.lib (or threefish512.lib, whatever you prefer)