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

libwallet_api_tests: add missing dependency on boost locale #4847

Merged
merged 2 commits into from
Nov 14, 2018

Conversation

stoffu
Copy link
Contributor

@stoffu stoffu commented Nov 14, 2018

No description provided.

@moneromooo-monero
Copy link
Collaborator

The message says on boost locale but the patch adds icu libs ?

@stoffu
Copy link
Contributor Author

stoffu commented Nov 14, 2018

I'm not too familiar with this locale business, but the Boost Locale library seems to depend on some ICU libraries. Replacing ${ICU_LIBRARIES} with ${Boost_LOCALE_LIBRARY} resulted in the following errors:

C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text+0x16d1): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text+0x17af): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text+0x186a): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text+0x1b41): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text+0x1c1f): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text+0x1cda): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text+0x1fb6): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text+0x208d): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text+0x2149): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE[_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE]+0x1f): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE[_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE]+0x32): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl13iconv_betweenD1Ev[_ZN5boost6locale4conv4impl13iconv_betweenD1Ev]+0x15): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl13iconv_betweenD0Ev[_ZN5boost6locale4conv4impl13iconv_betweenD0Ev]+0x1d): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl15iconverter_baseD1Ev[_ZN5boost6locale4conv4impl15iconverter_baseD1Ev]+0x15): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl15iconverter_baseD0Ev[_ZN5boost6locale4conv4impl15iconverter_baseD0Ev]+0x1d): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl12iconv_to_utfIcED1Ev[_ZN5boost6locale4conv4impl12iconv_to_utfIcED1Ev]+0x15): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl12iconv_to_utfIcED0Ev[_ZN5boost6locale4conv4impl12iconv_to_utfIcED0Ev]+0x1d): more undefined references to `libiconv_close' follow
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE[_ZThn24_N5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE]+0x32): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE[_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE]+0x1b): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE[_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE]+0x32): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x1c): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x35): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x1b): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x32): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x1c): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x35): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE]+0x1b): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE]+0x32): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x1b): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x32): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x1c): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x35): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x1c): undefined reference to `libiconv_close'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x35): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIwE7convertB5cxx11EPKwS6_[_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIwE7convertB5cxx11EPKwS6_]+0xce): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIwE7convertB5cxx11EPKwS6_[_ZThn24_N5boost6locale4conv4impl14iconv_from_utfIwE7convertB5cxx11EPKwS6_]+0x17a): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIwE7convertB5cxx11EPKcS6_[_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIwE7convertB5cxx11EPKcS6_]+0xce): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIwE7convertB5cxx11EPKcS6_[_ZThn24_N5boost6locale4conv4impl12iconv_to_utfIwE7convertB5cxx11EPKcS6_]+0x17c): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl12iconv_to_utfIwE7convertB5cxx11EPKcS6_[_ZN5boost6locale4conv4impl12iconv_to_utfIwE7convertB5cxx11EPKcS6_]+0xce): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl12iconv_to_utfIwE7convertB5cxx11EPKcS6_[_ZN5boost6locale4conv4impl12iconv_to_utfIwE7convertB5cxx11EPKcS6_]+0x17c): more undefined references to `libiconv' follow
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl10convert_toIwEENSt7__cxx1112basic_stringIT_St11char_traitsIS6_ESaIS6_EEEPKcSC_SC_NS1_11method_typeE[_ZN5boost6locale4conv4impl10convert_toIwEENSt7__cxx1112basic_stringIT_St11char_traitsIS6_ESaIS6_EEEPKcSC_SC_NS1_11method_typeE]+0x61): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl10convert_toIwEENSt7__cxx1112basic_stringIT_St11char_traitsIS6_ESaIS6_EEEPKcSC_SC_NS1_11method_typeE[_ZN5boost6locale4conv4impl10convert_toIwEENSt7__cxx1112basic_stringIT_St11char_traitsIS6_ESaIS6_EEEPKcSC_SC_NS1_11method_typeE]+0x13f): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl10convert_toIwEENSt7__cxx1112basic_stringIT_St11char_traitsIS6_ESaIS6_EEEPKcSC_SC_NS1_11method_typeE[_ZN5boost6locale4conv4impl10convert_toIwEENSt7__cxx1112basic_stringIT_St11char_traitsIS6_ESaIS6_EEEPKcSC_SC_NS1_11method_typeE]+0x1fa): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl12convert_fromIwEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKT_SC_PKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12convert_fromIwEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKT_SC_PKcNS1_11method_typeE]+0x61): undefined reference to `libiconv_open'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl12convert_fromIwEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKT_SC_PKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12convert_fromIwEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKT_SC_PKcNS1_11method_typeE]+0x140): undefined reference to `libiconv'
C:/msys64/mingw64/boost/1_65_1/lib/libboost_locale-mt-s.a(codepage.o):codepage.cpp:(.text$_ZN5boost6locale4conv4impl12convert_fromIwEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKT_SC_PKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12convert_fromIwEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKT_SC_PKcNS1_11method_typeE]+0x1fa): undefined reference to `libiconv'

@moneromooo-monero
Copy link
Collaborator

AFAIK. boost_locale depends on libicu. And monero depend on boost_locale.

@stoffu
Copy link
Contributor Author

stoffu commented Nov 14, 2018

I chose to use ${ICU_LIBRARIES} as it's defined to include Boost Locale:

  if(DEPENDS)
    set(ICU_LIBRARIES ${Boost_LOCALE_LIBRARY} sicuio sicuin sicuuc sicudt sicutu iconv)
  else()
    set(ICU_LIBRARIES ${Boost_LOCALE_LIBRARY} icuio icuin icuuc icudt icutu iconv)

which is used (only) by simplewallet. Would you like the following instead?

${Boost_LOCALE_LIBRARY} iconv

@moneromooo-monero
Copy link
Collaborator

That's... peculiar for ICU libs to include boost. That'd be like defining libcrypto.so to include libwallet.so just because wallet depend son crypto. I've just double checked that libicu does not depend on boost, just in case :) It feels wrong to build upon that since it's wrong. My opinion would be to add:
${Boost_LOCALE_LIBRARY} ${ICU_LIBRARIES}
if Boost_LOCALE_LIBRARY does not already contain ICU_LIBRARIES, which it probably doesn't since that'd cause a cycle.

@stoffu
Copy link
Contributor Author

stoffu commented Nov 14, 2018

Agreed, that style (made in #3313) seems quite odd. How about this fix?

@moneromooo-monero
Copy link
Collaborator

This seems much better, thanks.

Copy link
Contributor

@fluffypony fluffypony left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed

@fluffypony fluffypony merged commit 6d3311a into monero-project:master Nov 14, 2018
fluffypony added a commit that referenced this pull request Nov 14, 2018
6d3311a libwallet_api_tests: add missing dependency on Boost Locale and ICU (stoffu)
f0459ab cmake: move Boost_LOCALE_LIBRARY out of ICU_LIBRARIES (stoffu)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants