-
Notifications
You must be signed in to change notification settings - Fork 11
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
Update to boost 1.84 #123
base: master
Are you sure you want to change the base?
Update to boost 1.84 #123
Conversation
SDK builds OK, but building FreeOrion with the MSVC project files gives me a bunch of Boost log linker errors. Small sampling of 10k+ errors:
|
@geoffthemedio is it for 1.84 or 1.85? |
f3133ab
to
d96555d
Compare
I've tried to build SDK with boost 1.84 https://github.com/o01eg/freeorion-sdk/releases/tag/v15 and started CI for FreeOrion with it https://github.com/o01eg/freeorion/actions/runs/12511698599 |
1.85 Trying again with 1.84... |
With 1.84 I also get similar boost log linker errors. Googling suggests the issue might be different versions of Windows being targeted due to defines of (previous edit of this comment about other linker errors was due to using the wrong config (Win32/x64) in MSVC) |
Tried adding |
Boost definitely changed something https://www.boost.org/users/history/version_1_84_0.html FreeOrion on CI builds correctly. Maybe some local modifications? if("${_VS_PLATFORM_TOOLSET_TARGET}" STREQUAL "_xp")
list(APPEND BOOST_CONFIGURE_FLAGS define=BOOST_USE_WINAPI_VERSION=BOOST_WINAPI_VERSION_WINXP) # 0x0501
else()
list(APPEND BOOST_CONFIGURE_FLAGS define=BOOST_USE_WINAPI_VERSION=BOOST_WINAPI_VERSION_VISTA) # 0x0600
endif() XP looks unactual, as both 32 and 64 builds in CI ouputs
|
In FreeOrion's CMakeLists.txt it looks like: # Set minimum Windows target version to WindowsXP or Vista depending on toolset
# https://msdn.microsoft.com/en-us/library/aa383745.aspx
# Use numeric to correctly compare it in <boost\log\detail\config.hpp>
$<$<PLATFORM_ID:Windows>:_WIN32_WINNT=$<IF:$<STREQUAL:${_VS_PLATFORM_TOOLSET_TARGET},_xp>,0x0501,0x0600>> |
I've been trying to get it to build for a couple hours now... There are a bunch of different .props files, as well as the project files themselves, with settings sprinkled randomly throughout with no obvious way to tell where I can specify what. Half the time it tells me that I need to install the version of Visual Studio I'm using because its own toolset version isn't found... |
I suppose there should be some single point where to put that definition. Still it's strange in builds in CI but not locally. What MS VS version do you use? CI shows msbuild version |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can build the SDK, can build FO, but it crashes on startup. Apparently libSDL2.dylib
can't be found (again 😉), maybe I need to build a adapted test version of FO like before? I've built current master.
Here is the crash report:
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: FreeOrion [38165]
Path: /Volumes/VOLUME/FreeOrion.app/Contents/MacOS/FreeOrion
Identifier: org.freeorion.FreeOrion
Version: 0.5.1+ (build 2024-12-22.ce66e2b) (0.5.1+ (build 2024-12-22.ce66e2b))
Code Type: X86-64 (Native)
Parent Process: launchd [1]
User ID: 501
Date/Time: 2024-12-27 12:28:18.9759 +0100
OS Version: macOS 12.6 (21G115)
Report Version: 12
Bridge OS Version: 6.6 (19P6067)
Anonymous UUID: DBE14CFB-5083-F51E-3D62-E711C220B917
Time Awake Since Boot: 14000 seconds
System Integrity Protection: enabled
Crashed Thread: 0
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace DYLD, Code 1 Library missing
Library not loaded: '@rpath/libSDL2.dylib'
Referenced from: '/Volumes/VOLUME/FreeOrion.app/Contents/MacOS/FreeOrion'
Reason: tried: '' (no such file), '' (no such file), '' (no such file), '' (no such file), '' (no such file), '' (no such file)
(terminated at launch; ignore backtrace)
Thread 0 Crashed:
0 dyld 0x110c6c98e __abort_with_payload + 10
1 dyld 0x110c82a72 abort_with_payload_wrapper_internal + 80
2 dyld 0x110c82aa4 abort_with_payload + 9
3 dyld 0x110c30699 dyld4::halt(char const*) + 615
4 dyld 0x110c2c5b5 dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*) + 3995
5 dyld 0x110c2b4e4 start + 388
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000002000209 rbx: 0x0000000000000000 rcx: 0x00007ff7bae2d668 rdx: 0x00007ff7bae2dad0
rdi: 0x0000000000000006 rsi: 0x0000000000000001 rbp: 0x00007ff7bae2d6b0 rsp: 0x00007ff7bae2d668
r8: 0x00007ff7bae2d6d0 r9: 0x0000000000000000 r10: 0x0000000000000063 r11: 0x0000000000000246
r12: 0x0000000000000063 r13: 0x00007ff7bae2dad0 r14: 0x0000000000000001 r15: 0x0000000000000006
rip: 0x0000000110c6c98e rfl: 0x0000000000000246 cr2: 0x0000000105fba000
Logical CPU: 0
Error Code: 0x02000209
Trap Number: 133
Binary Images:
0x110c26000 - 0x110c91fff dyld (*) <71febccd-d9dc-3599-9971-2b3407c588a8> /usr/lib/dyld
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
VM Region Summary:
ReadOnly portion of Libraries: Total=47.2M resident=0K(0%) swapped_out_or_unallocated=47.2M(100%)
Writable regions: Total=9412K written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=9412K(100%)
VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
STACK GUARD 56.0M 1
Stack 8192K 1
VM_ALLOCATE 12K 3
__DATA 576K 9
__DATA_CONST 944K 5
__LINKEDIT 21.5M 6
__TEXT 25.7M 5
dyld private memory 1024K 1
=========== ======= =======
TOTAL 113.7M 31
@Vezzra yes, it's still need updated FreeOrion's CMakeLists.txt to put libSDL2.dylib to SharedSupport folder |
There are a bunch of .props files that set various options for the projects, and then you can also set the same things in the project files themselves to override the .props files. But there's no obvious logic about where in the props files things should go. Some entries that appear together in the UI will work and others not when placed together in the .props files.
Visual Studio 2022 latest update. I had 2019 also installed, but I've just removed that and done a Repair on 2022 to hopefully get whatever problematic environment variables fixed that were causing problems.
I can try building the SDK with the v142 toolset, I suppose. |
@o01eg , what exactly do I need to add? There is already this line in
|
Built with toolset v142 and v143 and it gives the same Boost log linker errors. I think the issue is that Boost has changed the .lib files to include the exact version of Windows for which it was compiled, as determined by the I think at this point we can move to assuming most people are on 10, rather than 8 for default building the SDK. |
Wait, there shouldn't be such line in master version 0.5.1+ (build 2024-12-22.ce66e2b) (0.5.1+ (build 2024-12-22.ce66e2b)) |
I can try to raise it. |
I guess:
|
Ah, right, my bad - when I looked at |
f2a4e28 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, now it worked.
Looks like XP was dropped in 11th SDK. |
Trying to build FreeOrion with toolset v143 and Windows10 in https://github.com/o01eg/freeorion/actions/runs/12520222621 with SDK https://github.com/o01eg/freeorion-sdk/releases/tag/v16 |
888d96c works with freeorion/freeorion@1f96bd4 |
No description provided.