-
Notifications
You must be signed in to change notification settings - Fork 578
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
Windows build C PoW doesn't work #1919
Comments
Cool! Let them try the exe from my release. Because I also could not test it properly. |
@g1itch I am the person who reported it and can confirm that the release you linked:
In other words, working as expected. |
Thanks, I read the reddit. The difference in my release is Microsoft visual C compiler for python27 used to compile the ext: https://github.com/g1itch/PyBitmessage/tree/windows-binary |
The first mention seems to be #1622 |
I suspect in this case it's also related to a CPU. Maybe some compilation flags can work around it. |
I don't meant to say that Nov. 2021 was the first appearance, only that in my testing of the snapshots @ https://download.bitmessage.org/snapshots/ "20211126" does not display the problem and every later snapshot does. I tested the 20220125 snapshot and it still shows the C PoW error message. |
@PeterSurda: No change on today's snapshot. (20220210) |
@PeterSurda: No change on today's snapshot. (20220216) Perhaps consulting the changelogs around the time of the 20211126 build might help diagnose the problem. |
@BeholdersEye There isn't anyone working on this issue for the time being. That being said, my educated guess is that this is caused by the dll compiler options at https://github.com/Bitmessage/PyBitmessage/blob/v0.6/buildscripts/winbuild.sh#L151 and https://github.com/Bitmessage/PyBitmessage/blob/v0.6/buildscripts/winbuild.sh#L157 . The build is done on a Zen 2 CPU so it probably tries to use instructions that Zen 2 understands but your CPU doesn't. Someone with adequate expertise can probably write a fix very quickly. |
I agree that does appear to be the problem area. Specifically "march=native". Quoth the documentation: https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
In the case of building for 64-bit targets, the march=x86-64 option seems more appropriate for release builds that are expected to be run on machines other than those on which the binaries were built.
Or, in the case of building for 32-bit targets, the march=i686 option.
Can this change be implemented, please? As you say, implementing the fix is not especially difficult but I suspect reproducing the build environment for bitmessage on windows might be more challenging. |
Hmm, I agree. |
I've built another release with |
@g1itch: that release's proof of work is functional, though the release in your earlier reply also had functional proof-of-work. I am using bitmessage in lieu of email on a website and would like to be able to recommend / point to the "official" release of bitmessage (which I take this repository to represent) to the website's users without saying "Make sure to download the snapshot from November 26, 2021 unless you have such-and-such CPU." It is possible that many users won't even know their CPU's manufacturer so expecting them to pick the right version of bitmessage based on their processor's microarchitecture is optimistic. @PeterSurda in case mentioning is necessary to notify someone on github. |
@BeholdersEye if you want, you can make a pull request, then I can have the windows binary built and you can test it |
Although I will if it is absolutely necessary, if at all possible I would rather avoid taking the trouble to fork this repository and make the changes just to correct two lines of code. Is opening the issue and proposing the solution not sufficient to get this addressed? |
Went ahead and made the pull request. It is possible the change might not solve the problem which would mean I may need to submit further changes in the future. |
I think, that changing the |
I got a report that the windows executables report C Pow missing. I tried it in Windows Server 2012 and 2016 and couldn't reproduce it, but the person reporting claims on Windows 7 and Windows 10 they get an error message.
The text was updated successfully, but these errors were encountered: