CLucene upstream did not react to the bug report
https://sourceforge.net/p/clucene/bugs/233/

IMO the cleanest fix is changing the ABI to let float_t be float and
providing the shared library using a different name, at least on s390x.

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to libreoffice in Ubuntu.
https://bugs.launchpad.net/bugs/1915927

Title:
  defining float_t as double breaks libreoffice autopkgtest with glibc
  2.33 on s390x

Status in clucene-core package in Ubuntu:
  Triaged
Status in libreoffice package in Ubuntu:
  Triaged

Bug description:
  Glibc 2.33 changed the float_t type from double to compiler-defined
  which is float on s390x:

  https://sourceware.org/pipermail/libc-alpha/2021-February/122207.html
  ...

  * On s390(x), the type float_t is now derived from the macro
    __FLT_EVAL_METHOD__ that is defined by the compiler, instead of being
    hardcoded to double.  This does not affect the ABI of any libraries
    that are part of the GNU C Library, but may affect the ABI of other
    libraries that use this type in their interfaces.  The new definition
    improves consistency with compiler behavior in many scenarios.
  ...

  To not break clucene's ABI accidentally clucene fixed float_t to be
  double:

  clucene-core (2.3.3.4+dfsg-1ubuntu1) hirsute; urgency=medium

    * Fix float_t abi to double ahead of glibc change.

   -- Dimitri John Ledkov <x...@ubuntu.com>  Mon, 01 Feb 2021 10:22:06
  +0000

  This conflicts with GCC's definition in libreoffice's autopkgtest:

  
https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-hirsute/hirsute/s390x/libr/libreoffice/20210215_232647_879ab@/log.gz
  ...
  configure: error: Your version of libclucene has contribs-lib missing.
  Error running configure at ./autogen.sh line 299.
  make: *** [debian/rules:1936: config_host.mk] Error 25
  ...

  In local reproduction the error is the following:
  ...
  configure:22199: checking for CLucene/analysis/cjk/CJKAnalyzer.h
  configure:22199: s390x-linux-gnu-g++ -c -g1 -O2 
-ffile-prefix-map=/tmp/autopkgtest.RtAhHJ/build.yBG/src=. 
-fstack-protector-strong -Wformat -Werror=format-security -isystem 
/usr/lib/s390x-linux-gnu -Wdate-time -D_FORTIFY_SOURCE=2 -isystem 
/usr/lib/s390x-linux-gnu conftest.cpp >&5
  In file included from /usr/include/CLucene/StdHeader.h:20,
                   from /usr/include/CLucene.h:11,
                   from conftest.cpp:83:
  /usr/include/CLucene/SharedHeader.h:72:16: error: conflicting declaration 
'typedef double float_t'
     72 | typedef double float_t;
        |                ^~~~~~~
  In file included from /usr/include/c++/10/cmath:45,
                   from /usr/include/c++/10/math.h:36,
                   from /usr/include/CLucene/SharedHeader.h:61,
                   from /usr/include/CLucene/StdHeader.h:20,
                   from /usr/include/CLucene.h:11,
                   from conftest.cpp:83:
  /usr/include/math.h:149:15: note: previous declaration as 'typedef float 
float_t'
    149 | typedef float float_t;
        |               ^~~~~~~
  configure:22199: $? = 1
  ...

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/clucene-core/+bug/1915927/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to