Tk Source Code

View Ticket
Login
Ticket UUID: 9a6ed28e98d31bc322efe3ffd9a360a048a11de2
Title: link fails on Ubuntu 18.04
Type: Bug Version: core-8-6-branch
Submitter: marc_culler Created on: 2018-11-10 05:13:45
Subsystem: 84. Unix Build Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2021-01-27 11:36:03
Resolution: Out of Date Closed By: jan.nijtmans
    Closed on: 2021-01-27 11:36:03
Description:
When I built the core-8-6-branch on the Ubuntu 18.04 LTS distribution the link
failed because the name of libieee has changed.  The new name seems to be
libieee1284.  I suppose the configure script needs to be adjusted to check for
this.
User Comments: jan.nijtmans added on 2021-01-27 11:36:03:

Since we no longer link with -lieee, no problem any more.


bll added on 2018-11-10 16:50:55:
I have run into that problem before.
And Francois has also, even if he does not realize it.

I now try to do a:
   ./configure --prefix ...; make distclean; ./configure --prefix ...
every time.
I agree, the build system is quite sucky.

Given --prefix mypath, tk configure should look in mypath/lib/tclConfig.sh
first.   And if --with-tcl is specified, it should look there first.
Not in random other places.

marc_culler (claiming to be Marc Culler) added on 2018-11-10 14:57:42:
I checked again and it still happened.  So then I checked on a different
Ubuntu 18.04 system and there was no problem.  So then I compared the
config.log files from the two systems to see how they differed.  That
revealed the problem.

On the system where the link failed I had previously built and installed
Tcl 8.7. In fact I had done that before I upgraded from 16.04 to 18.04.
The configure script was reading /usr/local/lib/tclConfig.sh.  Look at this:

$ grep ieee /usr/local/lib/tclConfig.sh 
TCL_LIBS='-ldl -lz  -lpthread -lieee -lm'

So I guess the question is: Why is the configure script using a tclConfig.sh
which was installed by a different version of Tk (and a different version of
the operating system)?

Even on the system where the build succeeds the behavior is weird. The
configure script is reading /usr/lib/tclConfig.sh.  Why is it assuming that
I want to use the same compiler and linker flags that the package maintainer
happened to use?  And if I had installed the Tk 8.7 package and then tried to
build Tk 8.6 it would have used the 8.7 linker flags, so it would link against
the ieee library even though 8.6 doesn't need that library.

This does not seem very robust to me.

bll added on 2018-11-10 06:36:00:
Checked again, no issues.

bll added on 2018-11-10 05:54:14:
Unable to duplicate.

Attachments: