radiant: build netradiant as non-PIE binary on Linux to workaround a mime-type bug
authorThomas Debesse <dev@illwieckz.net>
Sun, 7 Mar 2021 05:33:31 +0000 (06:33 +0100)
committerThomas Debesse <dev@illwieckz.net>
Sun, 7 Mar 2021 09:13:02 +0000 (10:13 +0100)
PIE executables were wrongly recognized as shared libraries on Linux
because of a mistake in the mime-type library.
Because of that it was not possible to launch such executables from
the file browser.

While the problem is fixed upstream, most distributions still ship
with a faulty mime-type library and may do for a long time.

See: https://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/11

radiant/CMakeLists.txt

index 93fedea428a461f615136ae3964c7d2e9e5f0238..aa52ef32ed842f2a75f83a7b62468f7f56a5b7f9 100644 (file)
@@ -132,4 +132,15 @@ if (X11_LIBRARIES)
     target_link_libraries(${RADIANT_BASENAME} ${X11_LIBRARIES})
 endif ()
 
+# PIE executables were wrongly recognized as shared libraries on Linux
+# because of a mistake in the mime-type library.
+# Because of that it was not possible to launch such executables from
+# the file browser.
+# While the problem is fixed upstream, most distributions still ship
+# with a faulty mime-type library and may do for a long time.
+# See: https://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/11
+if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
+    target_link_libraries(${RADIANT_BASENAME} -no-pie)
+endif()
+
 copy_dlls(${RADIANT_BASENAME})