-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix ld "multiple definition" errors #4258
Conversation
Thanks Claudio. I'm also confused by how some of this worked before - must have been luck. That said, I think some of your changes here are wrong. The arrays used by Sayantan's bitslice DES code should probably be shared and only initialized once per format, not separate in each of the several plug files that the same format uses. So I think they shouldn't be |
Reverted to what it used to be, but now using Running my CI session now. |
Now this looks sane for There should be just one shared |
Why did this pass CI? Are we not testing |
Yes, we are (AMD OpenCL and Mac). LM variables do not need to be global, they can be local (my conclusion).
|
My conclusion from source code grepping is different. For example, |
I expect |
I'll make it global. BTW:
When you start working on 2.0, we can add some rules about:
|
We should discuss JtR 2.0 on john-dev ML, but anyway: I'm getting more and more tempted to "start over" from scratch. Heavily re-using existing code, but with extreme care. And not adding a single line of code until defining lots of things, like code style (tho' actually the code style could be not to have one), plug-in interface (we could have mode plugs as well), source tree structure and so on. As for features:
|
All good thoughts, Claudio and magnum! However, I think 2.0 should be nothing more than a stabilized release of the 1.9.x series, without major changes. Out of the changes listed, we should only do "ditch OpenSSL" and maybe "all formats are plug-ins" before 2.0. I'd also consider merging Johnny, but Shinnok brought up some bad news about that possibility (in private e-mail). We can try and start over for 3.0, but I am not sure if we actually have the willpower to bring it to a new release. |
Also, remove a couple of unused variables.
I think 1.9 is the stabilized series. Good enough (TM), at least.
Probably not. But, is there any other open, good for CPU, complete, with hundred of formats, with "dynamic", for Linux, Windows, BSD, ..., tool out there? If not, you should start thinking about how to build the future of JtR.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now this looks to me like it should work. Please make sure -format=lm-opencl -test -mask
works. Then it's OK to merge. Thanks!
Sure. I recognize that there's value in the kind of functionality we have in JtR, and that it's in need of a partial redesign/rewrite. I've been thinking about its future for years. |
You might want to look into ztex formats, as there are similar errors there. |
First attempt; I'm still confused by how it was working before.