Compiling v9 with DEDICATED=1 makes the build process fail at linking the executable. #212

Closed
opened 2025-11-16 20:44:38 +01:00 by Kuborros · 1 comment
Kuborros commented 2025-11-16 20:44:38 +01:00 (Migrated from github.com)

As in the title, compiling the dedicated server build fails on Debian 13.1 when setting DEDICATED=1 with linker errors:

DEDICATED=1 make -j4

....

Linking lsrb2kartd.debug...
/usr/bin/ld: ../make/linux/64/Dedicated/debug/objs/./m_menu.o: in function `M_Ticker':
/home/kart/SRB2Kart-Saturn/src/m_menu.c:1706:(.text+0xa65e): undefined reference to `I_HandleControllerHatRepeat'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:384: ../bin/debug/lsrb2kartd.debug] Error 1

Skipping DEDICATED=1 flag lets it compile just fine:

make -j4

...

Linking lsdl2srb2kart.debug...
=== Build is done, look for lsdl2srb2kart at /home/kart/SRB2Kart-Saturn/bin/debug ===
make[1]: Leaving directory '/home/kart/SRB2Kart-Saturn/src'

Tested on a clean clone of the latest Saturn branch commit (84a3503)

It seems that src/dedicated/i_video.c does not define I_HandleControllerHatRepeat properly (or really, at all).
By following the same idea as other functions there and simply defining it as an empty function:

void I_HandleControllerHatRepeat(void)
{

}

the linking process succeeds:

Checking dependency files...
-- dedicated/i_video.c ...
-- comptime.c ...
Linking lsrb2kartd.debug...
=== Build is done, look for lsrb2kartd at /home/kart/SRB2Kart-Saturn/bin ===
make[1]: Leaving directory '/home/kart/SRB2Kart-Saturn/src'

So it seems it should be an easy fix (i hope :) )

As in the title, compiling the dedicated server build fails on Debian 13.1 when setting DEDICATED=1 with linker errors: ``` DEDICATED=1 make -j4 .... Linking lsrb2kartd.debug... /usr/bin/ld: ../make/linux/64/Dedicated/debug/objs/./m_menu.o: in function `M_Ticker': /home/kart/SRB2Kart-Saturn/src/m_menu.c:1706:(.text+0xa65e): undefined reference to `I_HandleControllerHatRepeat' collect2: error: ld returned 1 exit status make[1]: *** [Makefile:384: ../bin/debug/lsrb2kartd.debug] Error 1 ``` Skipping DEDICATED=1 flag lets it compile just fine: ``` make -j4 ... Linking lsdl2srb2kart.debug... === Build is done, look for lsdl2srb2kart at /home/kart/SRB2Kart-Saturn/bin/debug === make[1]: Leaving directory '/home/kart/SRB2Kart-Saturn/src' ``` Tested on a clean clone of the latest Saturn branch commit (84a3503) It seems that ``src/dedicated/i_video.c`` does not define ``I_HandleControllerHatRepeat`` properly (or really, _at all_). By following the same idea as other functions there and simply defining it as an empty function: ```c void I_HandleControllerHatRepeat(void) { } ``` the linking process succeeds: ``` Checking dependency files... -- dedicated/i_video.c ... -- comptime.c ... Linking lsrb2kartd.debug... === Build is done, look for lsrb2kartd at /home/kart/SRB2Kart-Saturn/bin === make[1]: Leaving directory '/home/kart/SRB2Kart-Saturn/src' ``` So it seems it should be an easy fix (i hope :) )
alufolie91 commented 2025-11-16 20:49:33 +01:00 (Migrated from github.com)

Whoops yea small oversight when the Controller Fixes were merged, just can be an empty function since its not needed for dedi
Will push a fix in a moment
Thanks for the report! c:

Whoops yea small oversight when the Controller Fixes were merged, just can be an empty function since its not needed for dedi Will push a fix in a moment Thanks for the report! c:
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: saturn/SRB2Kart-Saturn#212