Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ld failure in libibus-emoji-dialog-1.0.so #1917

Closed
felixonmars opened this issue Mar 28, 2017 · 5 comments
Closed

ld failure in libibus-emoji-dialog-1.0.so #1917

felixonmars opened this issue Mar 28, 2017 · 5 comments

Comments

@felixonmars
Copy link

I keep getting the following build failure with the latest 1.5.15 tag, which is not present in the 1.5.14 release:

./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_set_page_size'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_emoji_data_get_description'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_emoji_data_get_annotations'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_set_cursor_pos'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_cursor_down'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_clear'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_emoji_data_get_category'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_emoji_data_set_annotations'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_get_language_name'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_page_up'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_cursor_up'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_get_cursor_pos'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_keyval_to_unicode'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_get_cursor_in_page'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_text_new_from_string'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_new'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_emoji_data_load'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_page_down'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_get_candidate'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_text_get_text'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_get_page_size'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_append_candidate'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_lookup_table_get_number_of_candidates'
./.libs/libibus-emoji-dialog-1.0.so: undefined reference to `ibus_emoji_data_get_emoji'
collect2: error: ld returned 1 exit status
linking of temporary binary failed: Command '['/bin/sh', '../../libtool', '--mode=link', '--tag=CC', '--silent', 'gcc', '-o', '/build/ibus/src/ibus-1.5.15/ui/gtk3/tmp-introspect9k_5le0d/IBusEmojiDialog-1.0', '-export-dynamic', '-D_FORTIFY_SOURCE=2', '-march=x86-64', '-mtune=generic', '-O2', '-pipe', '-fstack-protector-strong', '-Wl,-O1,--sort-common,--as-needed,-z,relro', 'tmp-introspect9k_5le0d/build/ibus/src/ibus-1.5.15/ui/gtk3/tmp-introspect9k_5le0d/IBusEmojiDialog-1.0.o', '-L.', '../../src/libibus-1.0.la', 'libibus-emoji-dialog-1.0.la', '-Wl,--export-dynamic', '-lgmodule-2.0', '-pthread', '-lgtk-3', '-lgdk-3', '-lpangocairo-1.0', '-lpango-1.0', '-latk-1.0', '-lcairo-gobject', '-lcairo', '-lgdk_pixbuf-2.0', '-lgio-2.0', '-lgobject-2.0', '-lglib-2.0']' returned non-zero exit status 1.
make[3]: *** [/usr/share/gobject-introspection-1.0/Makefile.introspection:156: IBusEmojiDialog-1.0.gir] Error 1
make[3]: Leaving directory '/build/ibus/src/ibus-1.5.15/ui/gtk3'
make[2]: *** [Makefile:510: all-recursive] Error 1
make[2]: Leaving directory '/build/ibus/src/ibus-1.5.15/ui'
make[1]: *** [Makefile:682: all-recursive] Error 1
make[1]: Leaving directory '/build/ibus/src/ibus-1.5.15'
make: *** [Makefile:589: all] Error 2
@fujiwarat
Copy link
Member

Probably I know your problem.
Can you show me the value of LDFLAGS with make AM_DEFAULT_VERBOSITY=1?

@felixonmars
Copy link
Author

It is LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro".

@fujiwarat
Copy link
Member

When you delete --as-needed, your problem will be fixed.

Probably you can ask your distribution how --as-needed works with foo_gir_LIBS in Makefile.am.
https://github.com/ibus/ibus/blob/master/ui/gtk3/Makefile.am#L208

/usr/share/gobject-introspection-1.0/Makefile.introspection explains to add libfoo.la in foo_gir_LIBS.

@foutrelis
Copy link

It needs to be IBusEmojiDialog_1_0_gir_LIBS = $(libibus_emoji_dialog) $(libibus) otherwise libibus-1.0.la is considered unused and thus gets omitted when --as-needed is in effect.

@fujiwarat
Copy link
Member

Thank you for the suggestion. I will change the order.

@fujiwarat fujiwarat reopened this Mar 28, 2017
fujiwarat added a commit that referenced this issue Mar 29, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants