app-text/texlive-core-2019-r4 fails to compile with LTO while configuring libs/cairo: checking whether float word ordering is bigendian... unknown configure: error: Unknown float word ordering. You need to manually preset ax_cv_c_float_words_bigendian=no (or yes) according to your system. In cairo the issue has been fixed long ago in commit 7cfebce. In the texlive source the fixed autoconf macro is available as libs/cairo/cairo-src/build/aclocal.float.m4, but the one actually used (libs/cairo/m4/float.m4) is still broken. Replace the broken file with the fixed copy. Bug: https://bugs.gentoo.org/688544 --- texlive-20190410-source/libs/cairo/m4/float.m4.orig +++ texlive-20190410-source/libs/cairo/m4/float.m4 @@ -12,7 +12,7 @@ AC_DEFUN([AX_C_FLOAT_WORDS_BIGENDIAN], [AC_CACHE_CHECK(whether float word ordering is bigendian, ax_cv_c_float_words_bigendian, [ -# The endianess is detected by first compiling C code that contains a special +# The endianness is detected by first compiling C code that contains a special # double float value, then grepping the resulting object file for certain # strings of ascii values. The double is specially crafted to have a # binary representation that corresponds with a simple string. In this @@ -24,16 +24,17 @@ AC_DEFUN([AX_C_FLOAT_WORDS_BIGENDIAN], # is found, the user is instructed to specify the ordering. ax_cv_c_float_words_bigendian=unknown -AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ +AC_LINK_IFELSE([AC_LANG_SOURCE([[ -double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0; +double d __attribute__((used)) = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0; +int main() { return 0; } ]])], [ -if strings - conftest.$ac_objext | grep noonsees >/dev/null ; then +if strings -a conftest$ac_exeext | grep noonsees >/dev/null ; then ax_cv_c_float_words_bigendian=yes fi -if strings - conftest.$ac_objext | grep seesnoon >/dev/null ; then +if strings -a conftest$ac_exeext | grep seesnoon >/dev/null ; then if test "$ax_cv_c_float_words_bigendian" = unknown; then ax_cv_c_float_words_bigendian=no else --- texlive-20190410-source/libs/cairo/configure.orig +++ texlive-20190410-source/libs/cairo/configure @@ -5650,7 +5650,7 @@ if ${ax_cv_c_float_words_bigendian+:} fa else -# The endianess is detected by first compiling C code that contains a special +# The endianness is detected by first compiling C code that contains a special # double float value, then grepping the resulting object file for certain # strings of ascii values. The double is specially crafted to have a # binary representation that corresponds with a simple string. In this @@ -5666,17 +5666,18 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ /* end confdefs.h. */ -double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0; +double d __attribute__((used)) = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0; +int main() { return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_link "$LINENO"; then : -if strings - conftest.$ac_objext | grep noonsees >/dev/null ; then +if strings -a conftest$ac_exeext | grep noonsees >/dev/null ; then ax_cv_c_float_words_bigendian=yes fi -if strings - conftest.$ac_objext | grep seesnoon >/dev/null ; then +if strings -a conftest$ac_exeext | grep seesnoon >/dev/null ; then if test "$ax_cv_c_float_words_bigendian" = unknown; then ax_cv_c_float_words_bigendian=no else @@ -5686,7 +5687,8 @@ fi fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_float_words_bigendian" >&5 $as_echo "$ax_cv_c_float_words_bigendian" >&6; }