Guest User

zandronum-libgtk-x11-2.0-stub.c

a guest
Nov 1st, 2025
394
0
Never
10
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.23 KB | None | 0 0
  1. // GTK2 stub for Zandronum's 3.2.1 Linux binary (zandronum3.2.1-linux-x86_64.tar.bz2)
  2. // Compile to a "libgtk-x11-2.0.so.0" shared library file and make it visible to Zandronum.
  3. // For AUR's zandronum 3.2.1-2, you can do this by:
  4. // $ gcc zandronum-libgtk-x11-2.0-stub.c -shared -fPIC -o libgtk-x11-2.0.so.0
  5. // $ sudo mv libgtk-x11-2.0.so.0 /usr/share/zandronum/lib
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9.  
  10. // Zandronum calls this function on startup. Tell it GTK2 is not available.
  11. // https://foss.heptapod.net/zandronum/zandronum-stable/-/blob/ZA_3.2.1/src/sdl/i_main.cpp?ref_type=tags#L311
  12. int gtk_init_check(int *argc, char ***argv) {
  13.     return 0;
  14. }
  15.  
  16. // Stub all other required symbols (the list has been generated with objdump -T):
  17. #define STUB(sym) __attribute__((naked)) int sym(void) { printf("%s STUB!\n", __func__); abort(); }
  18.  
  19. STUB(gtk_widget_destroy)
  20. STUB(gtk_tree_selection_select_iter)
  21. STUB(gtk_box_pack_end)
  22. STUB(gtk_box_pack_start)
  23. STUB(gtk_main)
  24. STUB(gtk_window_set_title)
  25. STUB(gtk_cell_renderer_text_new)
  26. STUB(gtk_toggle_button_get_active)
  27. STUB(gtk_button_box_set_layout)
  28. STUB(gtk_tree_model_get_type)
  29. STUB(gtk_widget_grab_default)
  30. STUB(gtk_hbutton_box_new)
  31. STUB(gtk_misc_get_type)
  32. STUB(gtk_check_button_new_with_label)
  33. STUB(gtk_window_set_position)
  34. STUB(gtk_clipboard_set_text)
  35. STUB(gtk_label_new)
  36. STUB(gtk_clipboard_get)
  37. STUB(gtk_button_box_get_type)
  38. STUB(gtk_object_get_type)
  39. STUB(gtk_list_store_new)
  40. STUB(gtk_box_get_type)
  41. STUB(gtk_container_get_type)
  42. STUB(gtk_tree_model_get_value)
  43. STUB(gtk_list_store_append)
  44. STUB(gtk_tree_view_append_column)
  45. STUB(gtk_tree_view_column_new_with_attributes)
  46. STUB(gtk_clipboard_wait_for_text)
  47. STUB(gtk_vbox_new)
  48. STUB(gtk_button_new_from_stock)
  49. STUB(gtk_window_activate_default)
  50. STUB(gtk_widget_show_all)
  51. STUB(gtk_list_store_set)
  52. STUB(gtk_hbox_new)
  53. STUB(gtk_window_new)
  54. STUB(gtk_misc_set_alignment)
  55. STUB(gtk_tree_selection_get_selected)
  56. STUB(gtk_tree_view_get_type)
  57. STUB(gtk_tree_view_get_selection)
  58. STUB(gtk_container_add)
  59. STUB(gtk_toggle_button_get_type)
  60. STUB(gtk_window_get_type)
  61. STUB(gtk_widget_get_type)
  62. STUB(gtk_box_set_spacing)
  63. STUB(gtk_container_set_border_width)
  64. STUB(gtk_tree_view_new_with_model)
  65. STUB(gtk_toggle_button_set_active)
  66. STUB(gtk_main_quit)
  67.  
Advertisement
Comments
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
Add Comment
Please, Sign In to add comment