-
Notifications
You must be signed in to change notification settings - Fork 6.7k
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
[gmp, nettle, ] build failure x64-windows/x64-windows-static using x86-yasm-tool and x86-yasm-tool-helper #14288
Comments
cc @BillyONeal |
Unfortunately we were forced to build yasm from source ourselves rather than downloading it through the particular one being: yasm/yasm#153 (comment)
You don't want to do that: those tools are used only when building nettle etc. and you use the x86 version even though you want an x64-windows-static output. We wanted to use an x64 version of yasm, but unfortunately when you build
(Note that I'm apologize that this experience is so confusing :(. We have other ports that need this crosscompiling "build the x86 one first" but not for x64 :/. If you have better suggestions or know how to put pressure on the yasm folks to make it not corrupt memory or produce malformed output so that we can go back to |
@BillyONeal - see inline...
What prevents us from building from source the x64 yasm for x64 triplets and x86 yasm for x86 triplets, as I have been doing for months? I have a script to build yasm x64-windows-static and copy the exe over to tools\yasm directory
I have not experienced this issue building the x64 yasm for x64 ports. The corruption issues have only been present for me when using an x86 yasm on x64 ports, the reason I hacked the new changes to create and use an x64 yasm
Yes, I receive this error when building x64 ports needing yasm when I use the x86 yasm, they disappear when I use the x64 build yasm
As I ran into the issue months ago, to eliminate these issues I locally customized the
No need to apologize, it is a learning experience. Just have an objective outlook to different ideas and/or solutions/suggestions. Really listen to what someone else is saying, instead of just hearing why they say but already having your mind made up before they finish. It took me a couple decades to really understand listening and hearing are really two totally different things.
I am thinking to fork vcpkg and build and x64-windows/x64-windows-static only package manager, no Unix/linux, macOS or x86 support, would this be ok? After all, the Unix/Linux/macOS all have several package managers, and x86 is on it way out as 16 bit was in the 80's/90's |
If you build yasm from source as 64 bit, it produces malformed output. Like they are writing a size_t in the output that should be a uint32_t or something like that. At least, with the SHA we had to fetch to get the fix for the other memory corruption bug indicated.
I'm not sure what's going on then; maybe the problem was committed between the version you tried and the version we're building?
I don't understand given that vcpkg has always only ever used the 32 bit yasm (vcpkg_find_acquire_program downloaded the 32 bit copy), and our CI infrastructure that builds nettle and gmp has had no such issues since. Although that change was admittedly only a couple of days ago.
I don't think you need to fork vcpkg over that; we would gladly just build it, like we do for protoc and friends, if the result would actually link. It did not in my testing. (To be clear, the link failure I posted was building gmp x64 using the x64 built from source yasm) I just wish that these ports didn't depend on build tools with so many memory corruption bugs :( |
I take your word for it on the CI build infrastructure, as I do not have something as elaborate. I do maintain a vanilla, as delivered vcpkg instance, so when I do have issues, I can see if same issue exists in the vanilla, then I can submit issue against vanilla and not worry it was some customization I have made. I close for now, and I will make customizations to keep my customized versions working. Thank you for all your hard work, I appreciate it a lots. |
Host Environment
Visual Studio Version: 15.9.28 VS Tools Version: 14.16.27023
Reference PR [vcpkg baseline] [vs-yasm] Build yasm instead of downloading it to work around memory corruption bugs in yasm itself. #14003 [vcpkg baseline] [vs-yasm] Build yasm instead of downloading it to work around memory corruption bugs in yasm itself
Reference Issue [nettle:x64-windows] build failure #12240 [nettle:x64-windows] build failure
Reference Issue [vcpkg] use x64 (64-bit) compiler/linker/utilities and tools when building x64 triplets on windows #13642 [vcpkg] use x64 (64-bit) compiler/linker/utilities and tools when building x64 triplets on windows
See additional context below...
To Reproduce
Steps to reproduce the behavior:
bootstrap-vcpkg.bat is run with -win64 option
./vcpkg install gmp:x64-nettle nettle:x64-windows --editable --x-use-aria2
Failure logs
Cut and past the appropriate build messages from the console output.
x64-windows and x64-windows-static
None - build just exits into oblivion.
Please attach any additional failure logs mentioned in the console output.
None
Additional context
The text was updated successfully, but these errors were encountered: