From a2e107180871ccdccfa832582b8c9cf9f0354086 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Sun, 19 Nov 2023 22:57:30 +0300 Subject: [PATCH] game_launch: force link libm on Linux to workaround HL25 bug HL25 doesn't link libm probably because of toolchain updates, where --Wl,--as-needed became the default. hl_linux is linked to libm which is why they probably didn't noticed this bug. Workaround until Valve fixes it: https://github.com/ValveSoftware/halflife/issues/3492 --- game_launch/wscript | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/game_launch/wscript b/game_launch/wscript index 3034eb4c..29310701 100644 --- a/game_launch/wscript +++ b/game_launch/wscript @@ -21,21 +21,19 @@ def configure(conf): conf.define_cond('XASH_DISABLE_MENU_CHANGEGAME', conf.options.DISABLE_MENU_CHANGEGAME) def build(bld): - libs = ['sdk_includes'] source = ['game.cpp'] - defines = [] - if bld.env.DEST_OS != 'win32': - libs += [ 'DL' ] - else: - libs += ['USER32', 'SHELL32'] + if bld.env.DEST_OS == 'win32': source += ['game.rc'] + # Half-Life 25th anniversary update doesn't have server library explicitly linked to libm + if bld.env.DEST_OS == 'linux': + bld.env.LDFLAGS += ['-Wl,--no-as-needed', '-lm'] + bld(source = source, target = 'xash3d', # hl.exe features = 'c cxx cxxprogram', - use = libs, - defines = defines, + use = 'sdk_includes DL USER32 SHELL32', rpath = bld.env.DEFAULT_RPATH, install_path = bld.env.BINDIR, subsystem = bld.env.MSVC_SUBSYSTEM