supranational / blst

Multilingual BLS12-381 signature library
Apache License 2.0
461 stars 176 forks source link

Building for x86 on windows and getting build error #103

Closed spylogsster closed 2 years ago

spylogsster commented 2 years ago

image

dot-asm commented 2 years ago

This is not exactly helpful. I mean just the final exit code from compiler. It's the [compiler] error messages that are needed to assess the problem. Background might be relevant too. I mean how exactly do you build? And could you paste [or attach] text instead of picture?

dot-asm commented 2 years ago

One potential problem I can think of is that ms C compiler is known for not fully complying with contemporary language standards. Given that no_asm.h assumes at least C9x one can wonder if it's a problem for ms compiler. I can see that you have a recent compiler version. And they recently added /std:<c11|c17> option. So I suppose the first question is what happens if you pass additional /std:c11 flag?

spylogsster commented 2 years ago

log.txt

dot-asm commented 2 years ago

...\src\no_asm.h(1103): error C2133: 'tmp': unknown size

Yes, this is C9x code that is not recognized as valid by ms C compiler. As already suggested, what happens if you add /std:c11? With Rust one can assign CFLAGS environment variable. Though -std:c11 might be safer choice. In other words, set CFLAGS=-std:c11 followed by cargo ... [Assuming you're at cmd prompt.]

dot-asm commented 2 years ago

npm ERR! code ELIFECYCLE

Just in case, it might be more convenient to troubleshoot if you git clone https://github.com/supranational/blst by itself and run cargo test ... in bindings/rust. The reference to npm ought to mean that it's a part of a bigger project build procedure, and it ought to be inconvenient to perform "what-if-this-n-that" tests...

spylogsster commented 2 years ago

We can’t do that because all rust code is compiled together and we don't want to apply it to all rust code, that seems not too big issues, can you please fix them? @dot-asm

dot-asm commented 2 years ago

In order to fix the problem, one has to understand it first. Just check out blst separately, and let's figure out what it takes to make it work. And then [we can] adjust blst's build.rs accordingly...

dot-asm commented 2 years ago

164ce6280bf9579086fe60c5cc2ca9c8bc1f0093