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:
- ldd-out.txt [download] added by bll on 2018-11-10 05:54:36. [details]