This preserves globally defined CFLAGS and LDFLAGS and simply
extends those variables to aid distro based packaging toolchains
and predefined distro wide defaults like SSP, relro etc.
This is only likely to come up when using DESTDIR to point to an
alternate directory tree, or if the user has pointed at some
exotic PREFIX for some reason, but should be harmless in the
normal case.
This is a common thing for distros or build environments that want
to install to a sandbox location as part of testing or package-building.
It should be a harmless/no-op change when make is called without
DESTDIR defined.
This makes use of git export-subst to insert the current ref names.
If git describe fails because because an extracted tarball is used
to build from source then the fallback will get called and the last
part of the ref names will be used for the version variable.
if it is a git checkout and HEAD is the current tag:
v3.00-beta
If it is a git checkout and HEAD is ahead of the latest tag:
v3.00-beta-36-g24a6095
If it is a tarball from a tag created via 'git archive HEAD --format=tar':
v3.00-beta
If it is a tarball from the master created via 'git archive HEAD --format=tar':
master
NOTE: If a tarball is manually created (without git archive) then the
version will "$Format:%D$", however before this commit it would not be
possible to build a release tarball at all (because git describe would fail)
Tarballs that you manually want to distribute on your website need to be either
downloaded from github and re-uploaded or need to be create via git-archive:
gzip:
git archive --format=tar HEAD|gzip > oclHashcat.tar.gz
bzip2:
git archive --format=tar HEAD|bzip2 > oclHashcat.tar.bz2
You can also use a tag for git archive like:
git archive --format=tar v2.01|bzip2 > oclHashcat-2.01.tar.bz2
This makes use of git export-subst to insert the current ref names.
If git describe fails because because an extracted tarball is used
to build from source then the fallback will get called and the last
part of the ref names will be used for the version variable.
if it is a git checkout and HEAD is the current tag:
- v3.00-beta
If it is a git checkout and HEAD is ahead of the latest tag:
- v3.00-beta-36-g24a6095
If it is a tarball from a tag created via 'git archive HEAD --format=tar':
- v3.00-beta
If it is a tarball from the master created via 'git archive HEAD --format=tar':
- master
NOTE: If a tarball is manually created (without git archive) then the
version will "$Format:%D$", however before this commit it would not be
possible to build a release tarball that is not a git checkout (because
git describe would fail)
- Some performance on low-end GPU may drop because of that, but only for a few hash-modes
- Dropped scalar code (aka warp) since we do not have any vector datatypes anymore
- Renamed C++ overloading functions memcat32_9 -> memcat_c32_w4x4_a3x4
- Still need to fix kernels to new function names, needs to be done manually
- Temperature Management needs to be rewritten partially because of conflicting datatypes names
- Added code to create different codepaths for NV on AMD in runtime in host (see data.vendor_id)
- Added code to create different codepaths for NV on AMD in runtime in kernels (see IS_NV and IS_AMD)
- First tests working for -m 0, for example
- Great performance increases in general for NV so far
- Tested amp_* and markov_* kernel
- Migrated special NV optimizations for rule processor
TODOS:
- Let oclHashcat actually use the new paths
- Find a better way for native compilation
- Replace /bin/cp with /usr/bin/install where it has to copy files recursive
Problem here is; This process requires alot of memory. If host memory is too small it will segfault somewhere inside AMD's OpenCL runtime library. Therefore it's better to stick to NPROCS as part of a workaround.
This reverts commit e5adccbf38.