Navigation

    Kopano
    • Register
    • Login
    • Search
    • Categories
    • Get Official Kopano Support
    • Recent
    Statement regarding the closure of the Kopano community forum and the end of the community edition

    Building kc master: ./.libs/libmapi.so: undefined reference to `KC::ECLocale::

    Development
    kopano core
    3
    16
    5186
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • bosim
      bosim last edited by

      Hi

      @umgfoin said in Building kc master: ./.libs/libmapi.so: undefined reference to `KC::ECLocale:::

      ./.libs/libmapi.so: undefined reference to KC::ECLocale::operator=(KC::ECLocale const&)' ./.libs/libmapi.so: undefined reference to KC::ECLocale::ECLocale()’
      ./.libs/libmapi.so: undefined reference to `KC::ECLocale::~ECLocale()’

      As far as I remember you need libicu-devel to fix this. We should have that to autoconf.

      Bo

      1 Reply Last reply Reply Quote 0
      • umgfoin
        umgfoin last edited by

        @bosim said in Building kc master: ./.libs/libmapi.so: undefined reference to `KC::ECLocale:::

        libicu-devel

        Bo, thanks a lot - worked!

        Additionally I needed:

        • ncurses-devel

        • in common/ECLogger.cpp:
          #include <climits>
          (defines UINT_MAX)

        • in common/ustringutil.cpp l. 1365/1366:
          const_cast <unsigned char>

        assert(wcslen(reinterpret_cast<wchar_t *>(const_cast<unsigned char*>(lpKey1))) == (cbKey1 / sizeof(wchar_t)) - 1);
        assert(wcslen(reinterpret_cast<wchar_t *>(const_cast<unsigned char*>(lpKey2))) == (cbKey2 / sizeof(wchar_t)) - 1);
        

        ++umgfoin.

        bosim 1 Reply Last reply Reply Quote 0
        • bosim
          bosim @umgfoin last edited by

          @umgfoin said in Building kc master: ./.libs/libmapi.so: undefined reference to `KC::ECLocale:::

          Additionally I needed:

          ncurses-devel

          in common/ECLogger.cpp:
          #include <climits>
          (defines UINT_MAX)

          in common/ustringutil.cpp l. 1365/1366:
          const_cast <unsigned char>

          Wasn’t aware of the ncurses dependency. Wanted to remove it from my system to test out, but took out several more dependencies.

          The following 4 packages are going to be REMOVED:
              libxml2-devel ncurses-devel php5-devel readline-devel
          

          We are making libicu a hard requirement now, so in the future this error message you experienced should be gone and instead configure will complain about missing libicu-devel.

          Thanks for reminding me of this problem.

          Bo

          umgfoin 1 Reply Last reply Reply Quote 0
          • umgfoin
            umgfoin @bosim last edited by umgfoin

            Hi Bo,
            with today’s master we have a new (or related) problem building kopano-stats:

            ld: ECtools/stats/kopano_stats-stats.o: undefined reference to symbol 'wtimeout’
            //lib64/libtinfo.so.5: error adding symbols: DSO missing from command line

            make  all-recursive
            make[1]: Verzeichnis „/usr/src/kopano/kopanocore“ wird betreten
            Making all in .
            make[2]: Verzeichnis „/usr/src/kopano/kopanocore“ wird betreten
              CXXLD  kopano-stats
            /opt/rh/devtoolset-6/root/usr/libexec/gcc/x86_64-redhat-linux/6.2.1/ld: ECtools/stats/kopano_stats-stats.o: undefined reference to symbol 'wtimeout'
            //lib64/libtinfo.so.5: error adding symbols: DSO missing from command line
            collect2: error: ld returned 1 exit status
            
            bosim 1 Reply Last reply Reply Quote 0
            • bosim
              bosim @umgfoin last edited by

              @umgfoin said in Building kc master: ./.libs/libmapi.so: undefined reference to `KC::ECLocale:::

              ld: ECtools/stats/kopano_stats-stats.o: undefined reference to symbol ‘wtimeout’
              //lib64/libtinfo.so.5: error adding symbols: DSO missing from command line

              From what I can see this one should come from ncurses. I compiled the master yesterday without problems. When running configure do you see?

              ncurses libs	:	-L/usr/lib64/ncurses6 -lncursesw -ltinfo
              

              Bo

              1 Reply Last reply Reply Quote 0
              • umgfoin
                umgfoin last edited by

                My entry looks different:

                ncurses libs    :       -lncursesw
                

                If I manually add -ltinfo to NCURSES_LIBS = in Makefile, it builds.

                1 Reply Last reply Reply Quote 0
                • bosim
                  bosim last edited by bosim

                  What does the following commands give you?

                  11:02:47 bo@bo-suse ~/src/kopanocore (master) > ncursesw5-config --libs
                  -lncursesw -ltinfo
                  11:02:50 bo@bo-suse ~/src/kopanocore (master) > ncursesw6-config --libs
                  -L/usr/lib64/ncurses6 -lncursesw -ltinfo
                  

                  Assume not the same as mine?

                  Bo

                  1 Reply Last reply Reply Quote 0
                  • umgfoin
                    umgfoin last edited by umgfoin

                    Yes, just -lncursesw

                    [tadao@ando kopanocore]# ncursesw5-config --libs
                    -lncursesw
                    [tadao@ando kopanocore]# ncursesw6-config --libs
                    -bash: ncursesw6-config: Kommando nicht gefunden.
                    

                    “Kommando nicht gefunden” ~ command not found ;-)

                    bosim 1 Reply Last reply Reply Quote 0
                    • bosim
                      bosim @umgfoin last edited by

                      @umgfoin said in Building kc master: ./.libs/libmapi.so: undefined reference to `KC::ECLocale:::

                      Yes, just -lncursesw

                      [tadao@ando kopanocore]# ncursesw5-config --libs
                      -lncursesw
                      [tadao@ando kopanocore]# ncursesw6-config --libs
                      -bash: ncursesw6-config: Kommando nicht gefunden.
                      

                      “Kommando nicht gefunden” ~ command not found ;-)

                      Yeah that’s the problem. But it used to work?

                      Bo

                      umgfoin 1 Reply Last reply Reply Quote 0
                      • umgfoin
                        umgfoin @bosim last edited by

                        @bosim
                        Yes, used to work 2 days ago.

                        My findings:
                        libncurses links against libltinfo. If we don’t/ can’t explicitely specify this dependancy, newer toolchains can be called with ld-flag --copy-dt-needed-entries. As stated here, implicitely satisfying deep-link dependencies is no longer default behaviour for ld. The above flag forces this behaviour.

                        With option LDFLAGS = -Xlinker --copy-dt-needed-entries in Makefile, the dependency is correctly resolved, again.
                        Atleast valid for gcc version 6.2.1 20160916 (Red Hat 6.2.1-3) (GCC)
                        ++umgfoin.

                        1 Reply Last reply Reply Quote 0
                        • bosim
                          bosim last edited by

                          @umgfoin said in Building kc master: ./.libs/libmapi.so: undefined reference to `KC::ECLocale:::

                          Yes, used to work 2 days ago.

                          I looked for commits related to configure.ac, but couldn’t find anything that changed that. Did you get any updates from your distribution?

                          Bo

                          umgfoin 1 Reply Last reply Reply Quote 0
                          • umgfoin
                            umgfoin @bosim last edited by

                            @bosim said:

                            Did you get any updates from your distribution?

                            Nothing obvious - since 14.03.:

                            MariaDB-xxx,
                            php71,
                            perl-XML-LibXML,
                            perl-Test-Harness

                            bosim 1 Reply Last reply Reply Quote 0
                            • bosim
                              bosim @umgfoin last edited by bosim

                              @umgfoin said in Building kc master: ./.libs/libmapi.so: undefined reference to `KC::ECLocale:::

                              @bosim said:

                              Did you get any updates from your distribution?

                              Nothing obvious - since 14.03.:

                              MariaDB-xxx,
                              php71,
                              perl-XML-LibXML,
                              perl-Test-Harness

                              That’s wierd, I will create a JIRA ticket to investigate.
                              https://jira.kopano.io/browse/KC-600

                              1 Reply Last reply Reply Quote 0
                              • mkromer
                                mkromer last edited by

                                long ago but for reference: fixed upstream. https://bugs.centos.org/view.php?id=6668

                                1 Reply Last reply Reply Quote 0
                                • umgfoin
                                  umgfoin last edited by umgfoin

                                  Hi @mkromer ,
                                  thanks - read that, too, but though differently stated in the rel-notes of ncurses-5.7-4.20090207.el6, we still get:

                                  [hias@wurzler kopano-core]# ncurses5-config --libs
                                  -lncurses
                                  
                                  [hias@wurzler kopano-core]# ncursesw5-config --libs
                                  -lncursesw
                                  
                                  [hias@wurzler kopano-core]# pkg-config ncurses --libs
                                  -lncurses
                                  
                                  [hias@wurzler kopano-core]# ncurses5-config --version
                                  5.7.20090207
                                  
                                  

                                  A working fix is switching to ncurses-header instead of curses.h in configure.ac:

                                  AC_CHECK_HEADERS([ncurses.h])
                                  versus
                                  AC_CHECK_HEADERS([curses.h])

                                  ++umgfoin.

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post