Meson issue with -L--export-dynamic flag

Gerald gerald.b.nunn at gmail.com
Mon Sep 3 13:19:41 UTC 2018


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 at exe/source_secretc_secrettypes.d.o' 
'tilix at exe/source_secretc_secret.d.o' 'tilix at exe/source_app.d.o' 
'tilix at exe/source_x11_X.d.o' 'tilix at exe/source_x11_Xlib.d.o' 
'tilix at exe/source_secret_SchemaAttribute.d.o' 
'tilix at exe/source_secret_Item.d.o' 
'tilix at exe/source_secret_Schema.d.o' 
'tilix at exe/source_secret_Service.d.o' 
'tilix at exe/source_secret_Prompt.d.o' 
'tilix at exe/source_secret_Collection.d.o' 
'tilix at exe/source_secret_Secret.d.o' 
'tilix at exe/source_secret_Value.d.o' 
'tilix at exe/source_gx_util_array.d.o' 
'tilix at exe/source_gx_util_path.d.o' 
'tilix at exe/source_gx_util_string.d.o' 
'tilix at exe/source_gx_gtk_cairo.d.o' 
'tilix at exe/source_gx_gtk_clipboard.d.o' 
'tilix at exe/source_gx_gtk_x11.d.o' 
'tilix at exe/source_gx_gtk_resource.d.o' 
'tilix at exe/source_gx_gtk_vte.d.o' 
'tilix at exe/source_gx_gtk_actions.d.o' 
'tilix at exe/source_gx_gtk_threads.d.o' 
'tilix at exe/source_gx_gtk_dialog.d.o' 
'tilix at exe/source_gx_gtk_settings.d.o' 
'tilix at exe/source_gx_gtk_util.d.o' 
'tilix at exe/source_gx_gtk_color.d.o' 
'tilix at exe/source_gx_tilix_appwindow.d.o' 
'tilix at exe/source_gx_tilix_terminal_advpaste.d.o' 
'tilix at exe/source_gx_tilix_terminal_search.d.o' 
'tilix at exe/source_gx_tilix_terminal_regex.d.o' 
'tilix at exe/source_gx_tilix_terminal_actions.d.o' 
'tilix at exe/source_gx_tilix_terminal_activeprocess.d.o' 
'tilix at exe/source_gx_tilix_terminal_terminal.d.o' 
'tilix at exe/source_gx_tilix_terminal_layout.d.o' 
'tilix at exe/source_gx_tilix_terminal_password.d.o' 
'tilix at exe/source_gx_tilix_terminal_util.d.o' 
'tilix at exe/source_gx_tilix_terminal_exvte.d.o' 
'tilix at exe/source_gx_tilix_terminal_monitor.d.o' 
'tilix at exe/source_gx_tilix_sidebar.d.o' 
'tilix at exe/source_gx_tilix_customtitle.d.o' 
'tilix at exe/source_gx_tilix_prefeditor_bookmarkeditor.d.o' 
'tilix at exe/source_gx_tilix_prefeditor_profileeditor.d.o' 
'tilix at exe/source_gx_tilix_prefeditor_common.d.o' 
'tilix at exe/source_gx_tilix_prefeditor_prefdialog.d.o' 
'tilix at exe/source_gx_tilix_prefeditor_titleeditor.d.o' 
'tilix at exe/source_gx_tilix_prefeditor_advdialog.d.o' 
'tilix at exe/source_gx_tilix_preferences.d.o' 
'tilix at exe/source_gx_tilix_application.d.o' 
'tilix at exe/source_gx_tilix_shortcuts.d.o' 
'tilix at exe/source_gx_tilix_colorschemes.d.o' 
'tilix at exe/source_gx_tilix_session.d.o' 
'tilix at exe/source_gx_tilix_constants.d.o' 
'tilix at exe/source_gx_tilix_common.d.o' 
'tilix at exe/source_gx_tilix_cmdparams.d.o' 
'tilix at exe/source_gx_tilix_encoding.d.o' 
'tilix at exe/source_gx_tilix_closedialog.d.o' 
'tilix at exe/source_gx_tilix_bookmark_manager.d.o' 
'tilix at exe/source_gx_tilix_bookmark_bmchooser.d.o' 
'tilix at exe/source_gx_tilix_bookmark_bmeditor.d.o' 
'tilix at exe/source_gx_tilix_bookmark_bmtreeview.d.o' 
'tilix at 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 at 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 at 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 at 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




More information about the Digitalmars-d-learn mailing list