> 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.
this is against libc advice, and IBM recommendation. It would
unnecessary cause an ABI break, requiring ABI transitions.
It is best for ABI to have stability continuity such that we don't need
to bump sonames.
It should be left up to upstream to break ABI and bump soname with a new
version, together with any other changes they want to make.
** Changed in: clucene-core (Ubuntu)
Status: Fix Released => Triaged
** Changed in: libreoffice (Ubuntu)
Status: New => Triaged
** Changed in: libreoffice (Ubuntu)
Assignee: (unassigned) => Dimitri John Ledkov (xnox)
** Changed in: clucene-core (Ubuntu)
Assignee: (unassigned) => Dimitri John Ledkov (xnox)
--
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 <[email protected]> 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 : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help : https://help.launchpad.net/ListHelp