From 32d9614d63d9610f14773a4f02f0ded33e569398 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Wed, 14 May 2025 16:12:56 -0400 Subject: [PATCH] Fix d_a_ks weak func order with pragmas --- configure.py | 2 +- src/d/actor/d_a_ks.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/configure.py b/configure.py index 276fdb733..ce84020f4 100755 --- a/configure.py +++ b/configure.py @@ -1468,7 +1468,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_kantera"), ActorRel(NonMatching, "d_a_kn"), ActorRel(NonMatching, "d_a_kokiie"), - ActorRel(Equivalent, "d_a_ks", extra_cflags=["-sym off"]), # weak func order + ActorRel(Matching, "d_a_ks", extra_cflags=["-sym off"]), ActorRel(NonMatching, "d_a_kt"), # regalloc, weak func order ActorRel(NonMatching, "d_a_mflft"), ActorRel(NonMatching, "d_a_npc_cb1"), diff --git a/src/d/actor/d_a_ks.cpp b/src/d/actor/d_a_ks.cpp index cf6420f55..a327a69d7 100644 --- a/src/d/actor/d_a_ks.cpp +++ b/src/d/actor/d_a_ks.cpp @@ -3,12 +3,18 @@ // Translation Unit: d_a_ks.cpp // +// Fakematch? Having sym off before d_a_ks.h but then turning it on before +// d_a_player_main.h fixes the weak function ordering of +// `daPy_py_c::getSwordTopPos() const` and `daPy_py_c::getHeadTopPos() const` +// in this TU. +#pragma sym off #include "d/actor/d_a_ks.h" #include "d/d_procname.h" #include "d/d_com_inf_game.h" #include "d/d_s_play.h" #include "f_op/f_op_camera.h" #include "d/d_snap.h" +#pragma sym on #include "d/actor/d_a_player_main.h" #include "d/actor/d_a_gm.h" #include "d/res/res_ks.h"