]> git.draconx.ca Git - rrace.git/blobdiff - configure.ac
Avoid linking against libXt/libXm string tables.
[rrace.git] / configure.ac
index 4be4c2aa21ff49799df1c8e4ced50a512f2af92b..064c3247e7c31428343dda1b86c3ef0c4f9aeaa5 100644 (file)
@@ -1,4 +1,4 @@
-dnl Copyright © 2022 Nick Bowler
+dnl Copyright © 2022-2023 Nick Bowler
 dnl
 dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2.
 dnl This is free software: you are free to do what the fuck you want to.
@@ -98,6 +98,20 @@ AS_IF([test x"$dx_cv_motif_have_pixmap_and_string" = x"yes"],
     [Define to 1 if Motif supports XmPIXMAP_AND_STRING])])
 ])
 
+dnl On ELF systems, linking a program against a string table in shared
+dnl library is very expensive and actually makes things much worse than
+dnl just duplicating the needed strings in the program.
+dnl
+dnl It may help a little bit when static linking or on other shared
+dnl library implementations, which could maybe be auto-detected with
+dnl a configure test, but the penalty for setting these anyway is
+dnl very small (couple hundred bytes of rodata).
+m4_foreach_w([lib], [Xt Xm],
+[AC_DEFINE(m4_toupper(m4_defn([lib]))[STRINGDEFINES], [1],
+[Define to 1 to avoid using the string tables from lib]m4_defn([lib])[.
+On some platforms, or when statically linking lib]m4_defn([lib])[,
+leaving this undefined may reduce the executable size somewhat.])])
+
 AC_CONFIG_TESTDIR([.], [t:.])
 DX_PROG_AUTOTEST
 AM_CONDITIONAL([HAVE_AUTOTEST], [test x"$dx_cv_autotest_works" = x"yes"])