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
    5301
    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.
    • 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