Package: tcl8.6 Version: 8.6.8+dfsg-2 Severity: normal Tags: patch User: debian-gl...@lists.debian.org Usertags: 2.27
Starting with glibc 2.27, support for the "ieee" library (part of SVID specification) has been removed. The libieee.a library is therefore not shipped anymore. tcl8.6 already works without this library however the configure script detects it and enable support for it if available. The side effects are that the "-lieee" link option is then shipped in tclConfig.sh, and that the library ends up with the _LIB_VERSION symbol. To avoid ease the glibc 2.27, I believe it's better to separate the two. I have therefore attached a patch to always disable libieee support in tcl8.6. The patch can be removed once glibc 2.27 is in testing (but can also be kept safely). It will require tk8.6 to be rebuilt against the new tcl8.6 as it also exports the "-lieee" link option through tkConfig.sh and also removes the _LIB_VERSION symbol. A patch is also attached for that. Do you feel it is an acceptable way to proceed. Another alternative would be to just declare the _LIB_VERSION symbol as optional in both tcl8.6 and tk8.6, and handle the change through binNMUs as part of the glibc 2.27 transition. Please feel free to suggest other options. Thanks, Aurelien
diff -Nru tcl8.6-8.6.8+dfsg/debian/libtcl8.6.symbols tcl8.6-8.6.8+dfsg/debian/libtcl8.6.symbols --- tcl8.6-8.6.8+dfsg/debian/libtcl8.6.symbols +++ tcl8.6-8.6.8+dfsg/debian/libtcl8.6.symbols @@ -875,6 +875,5 @@ TclpSetInitialEncodings@Base 8.6.0 TclpUnloadFile@Base 8.6.2 TclpUtfNcmp2@Base 8.6.0 - _LIB_VERSION@Base 8.6.0 #MISSING: 8.6.7# notifierInitMutex@Base 8.6.5 #MISSING: 8.6.7# notifierMutex@Base 8.6.5 diff -Nru tcl8.6-8.6.8+dfsg/debian/patches/libeee.diff tcl8.6-8.6.8+dfsg/debian/patches/libeee.diff --- tcl8.6-8.6.8+dfsg/debian/patches/libeee.diff +++ tcl8.6-8.6.8+dfsg/debian/patches/libeee.diff @@ -0,0 +1,73 @@ +Support for the "ieee" library (part of SVID specification) has been +removed from glibc 2.27 onwards. While this is correctly autodetected +in the configure script, it's better to already disable support for it +as 1) it ends up in tclConfig.sh and 2) it slightly changes the symbol +file. + +--- tcl8.6-8.6.8+dfsg.orig/unix/configure ++++ tcl8.6-8.6.8+dfsg/unix/configure +@@ -4280,8 +4280,6 @@ $as_echo "#define TCL_CFGVAL_ENCODING \" + #-------------------------------------------------------------------- + # On a few very rare systems, all of the libm.a stuff is + # already in libc.a. Set compiler flags accordingly. +- # Also, Linux requires the "ieee" library for math to work +- # right (and it must appear before "-lm"). + #-------------------------------------------------------------------- + + ac_fn_c_check_func "$LINENO" "sin" "ac_cv_func_sin" +@@ -4291,40 +4289,6 @@ else + MATH_LIBS="-lm" + fi + +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lieee" >&5 +-$as_echo_n "checking for main in -lieee... " >&6; } +-if ${ac_cv_lib_ieee_main+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lieee $LIBS" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +- +-int +-main () +-{ +-return main (); +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_ieee_main=yes +-else +- ac_cv_lib_ieee_main=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ieee_main" >&5 +-$as_echo "$ac_cv_lib_ieee_main" >&6; } +-if test "x$ac_cv_lib_ieee_main" = xyes; then : +- MATH_LIBS="-lieee $MATH_LIBS" +-fi +- + + #-------------------------------------------------------------------- + # Interactive UNIX requires -linet instead of -lsocket, plus it +--- tcl8.6-8.6.8+dfsg.orig/unix/tcl.m4 ++++ tcl8.6-8.6.8+dfsg/unix/tcl.m4 +@@ -2475,12 +2475,9 @@ AC_DEFUN([SC_TCL_LINK_LIBS], [ + #-------------------------------------------------------------------- + # On a few very rare systems, all of the libm.a stuff is + # already in libc.a. Set compiler flags accordingly. +- # Also, Linux requires the "ieee" library for math to work +- # right (and it must appear before "-lm"). + #-------------------------------------------------------------------- + + AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm") +- AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"]) + + #-------------------------------------------------------------------- + # Interactive UNIX requires -linet instead of -lsocket, plus it diff -Nru tcl8.6-8.6.8+dfsg/debian/patches/series tcl8.6-8.6.8+dfsg/debian/patches/series --- tcl8.6-8.6.8+dfsg/debian/patches/series +++ tcl8.6-8.6.8+dfsg/debian/patches/series @@ -4,3 +4,4 @@ confsearch.diff non-linux.diff manpages.diff +libeee.diff
diff -Nru tk8.6-8.6.8/debian/control tk8.6-8.6.8/debian/control --- tk8.6-8.6.8/debian/control +++ tk8.6-8.6.8/debian/control @@ -5,7 +5,7 @@ Uploaders: Sergei Golovan <sgolo...@debian.org> Build-Depends: debhelper (>= 9.0.0), dpkg-dev (>= 1.16.1~), x11proto-core-dev, libx11-dev, libxt-dev, libxss-dev, libxext-dev, libxft-dev, - tcl8.6-dev (>= 8.6.0-2) + tcl8.6-dev (>= 8.6.8+dfsg-3) Standards-Version: 4.1.3 Homepage: http://www.tcl.tk/ diff -Nru tk8.6-8.6.8/debian/libtk8.6.symbols tk8.6-8.6.8/debian/libtk8.6.symbols --- tk8.6-8.6.8/debian/libtk8.6.symbols +++ tk8.6-8.6.8/debian/libtk8.6.symbols @@ -439,4 +439,3 @@ TkpTesttextCmd@Base 8.6.0 TkpUseWindow@Base 8.6.0 TkpWmSetState@Base 8.6.0 - _LIB_VERSION@Base 8.6.0