Yeah.. But I'm stuck on the scrypt thingy (some other ppl to...)
{standard input}: Assembler messages:
{standard input}:23: Warning: .type pseudo-op used outside of .def/.endef ignore
d.
...
Still haven't found a fix for this..
This rabbit hole seems to go pretty deep. (Unless there is a magic define I'm missing).
The error messages are because as 2.22 on Linux uses the ELF x86 assembly dialect and as 2.22 on mingw32 uses the PE/COFF assembly dialect.
In src/scrypt-jane/code/scrypt-jane-portable-x86.h, replace the macro definitions around line 170 for asm_naked_* through asm_gcc_end() with:
#if defined(WIN32)
#define asm_naked_fn_proto(type, fn) extern type STDCALL fn
#define asm_naked_fn(fn) ; __asm__ (".intel_syntax noprefix;\n.text\n.globl " #fn "\n .def " #fn "; .scl 2; .align 32;\n.endef\n" #fn ":\n"
#define asm_naked_fn_end(fn) );
#define asm_gcc() __asm__ __volatile__(".intel_syntax noprefix;\n"
#define asm_gcc_parms() ".att_syntax prefix;"
#define asm_gcc_trashed() __asm__ __volatile__("" :::
#define asm_gcc_end() );
#else
#define asm_naked_fn_proto(type, fn) extern type STDCALL fn
#define asm_naked_fn(fn) ; __asm__ (".intel_syntax noprefix;\n.text\n" asm_align16 GNU_ASL(fn)
#define asm_naked_fn_end(fn) ".att_syntax prefix;\n.type " #fn ",@funct
ion\n.size " #fn ",.-" #fn "\n" );
#define asm_gcc() __asm__ __volatile__(".intel_syntax noprefix;\n"
#define asm_gcc_parms() ".att_syntax prefix;"
#define asm_gcc_trashed() __asm__ __volatile__("" :::
#define asm_gcc_end() );
#endif
And that will get you further, but equally as stuck:
{standard input}: Assembler messages:
{standard input}:400: Error: no such instruction: `pushl %esi'
{standard input}:403: Error: no such instruction: `movl %eax,%esi'
{standard input}:404: Error: no such instruction: `movl %edx,%eax'
mingw32-make: *** [build/scrypt-jane.o] Error 1
Those line numbers are not very instructive on where or why these att syntax lines are not valid.
Hopefully, someone with more x86 assembly-fu can set all this straight. I'm not particularly confident that my macro changes are 100% correct either.