Myself and some others are looking at replacing autotools in
Tilix with meson for the various Linux distros to use when
building and packaging the binary. However we are running into an
issue with meson around the use of the "-L--export-dynamic" flag.
When compiling with meson using LDC and that flag the following
errors are generated:
[66/66] Linking target tilix.
FAILED: tilix
ldc -of tilix 'tilix@exe/source_secretc_secrettypes.d.o'
'tilix@exe/source_secretc_secret.d.o' 'tilix@exe/source_app.d.o'
'tilix@exe/source_x11_X.d.o' 'tilix@exe/source_x11_Xlib.d.o'
'tilix@exe/source_secret_SchemaAttribute.d.o'
'tilix@exe/source_secret_Item.d.o'
'tilix@exe/source_secret_Schema.d.o'
'tilix@exe/source_secret_Service.d.o'
'tilix@exe/source_secret_Prompt.d.o'
'tilix@exe/source_secret_Collection.d.o'
'tilix@exe/source_secret_Secret.d.o'
'tilix@exe/source_secret_Value.d.o'
'tilix@exe/source_gx_util_array.d.o'
'tilix@exe/source_gx_util_path.d.o'
'tilix@exe/source_gx_util_string.d.o'
'tilix@exe/source_gx_gtk_cairo.d.o'
'tilix@exe/source_gx_gtk_clipboard.d.o'
'tilix@exe/source_gx_gtk_x11.d.o'
'tilix@exe/source_gx_gtk_resource.d.o'
'tilix@exe/source_gx_gtk_vte.d.o'
'tilix@exe/source_gx_gtk_actions.d.o'
'tilix@exe/source_gx_gtk_threads.d.o'
'tilix@exe/source_gx_gtk_dialog.d.o'
'tilix@exe/source_gx_gtk_settings.d.o'
'tilix@exe/source_gx_gtk_util.d.o'
'tilix@exe/source_gx_gtk_color.d.o'
'tilix@exe/source_gx_tilix_appwindow.d.o'
'tilix@exe/source_gx_tilix_terminal_advpaste.d.o'
'tilix@exe/source_gx_tilix_terminal_search.d.o'
'tilix@exe/source_gx_tilix_terminal_regex.d.o'
'tilix@exe/source_gx_tilix_terminal_actions.d.o'
'tilix@exe/source_gx_tilix_terminal_activeprocess.d.o'
'tilix@exe/source_gx_tilix_terminal_terminal.d.o'
'tilix@exe/source_gx_tilix_terminal_layout.d.o'
'tilix@exe/source_gx_tilix_terminal_password.d.o'
'tilix@exe/source_gx_tilix_terminal_util.d.o'
'tilix@exe/source_gx_tilix_terminal_exvte.d.o'
'tilix@exe/source_gx_tilix_terminal_monitor.d.o'
'tilix@exe/source_gx_tilix_sidebar.d.o'
'tilix@exe/source_gx_tilix_customtitle.d.o'
'tilix@exe/source_gx_tilix_prefeditor_bookmarkeditor.d.o'
'tilix@exe/source_gx_tilix_prefeditor_profileeditor.d.o'
'tilix@exe/source_gx_tilix_prefeditor_common.d.o'
'tilix@exe/source_gx_tilix_prefeditor_prefdialog.d.o'
'tilix@exe/source_gx_tilix_prefeditor_titleeditor.d.o'
'tilix@exe/source_gx_tilix_prefeditor_advdialog.d.o'
'tilix@exe/source_gx_tilix_preferences.d.o'
'tilix@exe/source_gx_tilix_application.d.o'
'tilix@exe/source_gx_tilix_shortcuts.d.o'
'tilix@exe/source_gx_tilix_colorschemes.d.o'
'tilix@exe/source_gx_tilix_session.d.o'
'tilix@exe/source_gx_tilix_constants.d.o'
'tilix@exe/source_gx_tilix_common.d.o'
'tilix@exe/source_gx_tilix_cmdparams.d.o'
'tilix@exe/source_gx_tilix_encoding.d.o'
'tilix@exe/source_gx_tilix_closedialog.d.o'
'tilix@exe/source_gx_tilix_bookmark_manager.d.o'
'tilix@exe/source_gx_tilix_bookmark_bmchooser.d.o'
'tilix@exe/source_gx_tilix_bookmark_bmeditor.d.o'
'tilix@exe/source_gx_tilix_bookmark_bmtreeview.d.o'
'tilix@exe/source_gx_i18n_l10n.d.o' -L-L/usr/lib// -L-lgtkd-3
-L-ldl -L-lvted-3 -L-L/usr/lib// -L-lgtkd-3 -L-ldl -L-lX11
/usr/bin/ld: tilix@exe/source_gx_tilix_appwindow.d.o: in function
`_D2gx5tilix6common__T12GenericEventTCQBjQBj7session7SessionZQBn11__xopEqualsFKxSQDaQDaQCx__TQCtTQCiZQDbKxQBaZb':
/tmp/tilix/build/../source/gx/tilix/common.d:28: undefined
reference to
`_D6object__T8__equalsTxDFC2gx5tilix7session7SessionZvTxQBgZQBvFNaNbNiNfAxQByQfZb'
/usr/bin/ld: tilix@exe/source_gx_tilix_terminal_terminal.d.o: in
function
`_D2gx5tilix6common__T12GenericEventTEQBjQBjQBg10ActionTypeTCQCgQCgQCd__T16CumulativeResultTbZQvZQCx11__xopEqualsFKxSQEkQEkQEh__TQEdTQDsTQCzZQEpKxQBeZb':
/tmp/tilix/build/../source/gx/tilix/common.d:28: undefined
reference to
`_D6object__T8__equalsTxDFE2gx5tilix6common10ActionTypeCQBdQBdQBa__T16CumulativeResultTbZQvZvTxQCtZQDiFNaNbNiNfAxQDlQfZb'
/usr/bin/ld: tilix@exe/source_gx_tilix_terminal_terminal.d.o: in
function
`_D2gx5tilix6common__T12GenericEventTAyaTQeTQhTQkZQBc11__xopEqualsFKxSQCpQCpQCm__TQCiTQBxTQCbTQCfTQCjZQDcKxQBmZb':
/tmp/tilix/build/../source/gx/tilix/common.d:28: undefined
reference to
`_D6object__T8__equalsTxDFAyaQdQfQhZvTxQpZQBdFNaNbNiNfAxQBgQfZb'
collect2: error: ld returned 1 exit status
Error: /usr/bin/gcc failed with status: 1
ninja: build stopped: subcommand failed.
Taking out the export-dynamic flag it all works fine.
Unfortunately this flag is the default for the DMD compiler
(which apparently exhibits the same behavior) as well as LDC on
some distros like Arch. That flag looks pretty innocuous so I'm
not sure why it is causing an issue.
I could use some help from someone more experienced with the
compiler to help understand what is going on and if there is an
issue with tilix, meson or the compiler itself. A full discussion
of the issue can be viewed here:
https://github.com/gnunn1/tilix/issues/1502