generate 64-bit DLLs (and update gcc for it to work)#2
generate 64-bit DLLs (and update gcc for it to work)#2dgruss wants to merge 1 commit intoUltraStar-Deluxe:ultrastardxfrom
Conversation
0644782 to
f2f5220
Compare
s09bQ5
left a comment
There was a problem hiding this comment.
The 32 bit build contains some patches to force the DLLs to specific non-overlapping virtual address regions (linker parameter --image-base and --disable-dynamicbase) to ease debugging. Did you check if the chosen addresses still work?
i have only seen that in some ffmpeg patch, not anywhere else? |
|
changed it and the local compile worked fine |
|
@s09bQ5 i basically only need to adjust the urls and then it could be merged, right? that would allow to proceed in the USDX repo then |
|
it is a bit of a chicken-egg problem. this PR needs the 64-bit PR's code, but the USDX 64-bit PR needs the build artifacts / release zip from this PR. So, we could/should maybe:
|
|
To solve that chicken-egg-problem, I suggest you make a separate PR in USDX for your changes to the projectM wrapper and the OpenCV wrapper def file. |
|
Not sure I need the opencvwrapper.def file in there - mxe does not pull that from the USDX repo |
|
Actually, you are right. The def file is needed only to generate a static library that contains the import section for code that wants to use the dll. But Free Pascal creates the import section from the function declaration. |
|
tested it, the mxe part works, the game runs without issues. as soon as this is merged i will adjust the x64 PR in the other repo |
|
all discussed changes implemented, tested it again, works still fine |
|
tested the CI built dlls locally and they work (all but libopencv_core460.dll are byte-identical to my local build, and that one just has a few bytes of difference) |
|
should i make a force push to make it 1 commit? or do you want to squash it? or so? |
|
Make a force push so that we get that nice commit message |
Extend the MXE-based Windows dependency build to produce the x86_64 DLL set needed by 64-bit USDX, including the OpenCV and projectM wrapper DLLs. Update build.sh to target x86_64, fetch the USDX wrapper sources from the USDX repository, build the new wrapper packages, and collect the resulting DLL bundle in the format expected by USDX. Refresh the surrounding toolchain and package setup: - update GCC to 13.4.0 and adjust the MinGW header layout patching - force DWARF-friendly settings for the x86_64 build where needed - trim OpenCV to the smaller feature set required by the wrapper and add an MXE package for the USDX OpenCV wrapper - add MXE packaging and MinGW compatibility fixes for projectM, including autoreconf-based build fixes used on other platforms and the USDX projectM C wrapper This prepares the MXE repo for the upcoming USDX Windows x86_64 builds.
|
done |
With this change we hopefully switch to x64_64 and do not need the old 32-bit dlls anymore. Therefore: