Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 616102 - =dev-lang/tk-8.6.6 fails to build with LTO -- libtk8.6.so: error: undefined reference to 'tclStubsPtr'
Summary: =dev-lang/tk-8.6.6 fails to build with LTO -- libtk8.6.so: error: undefined r...
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: TCL/TK Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: lto
  Show dependency tree
 
Reported: 2017-04-20 10:54 UTC by Petross404(Petros S)
Modified: 2018-09-20 06:41 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (dev-lang:tk-8.6.6:20170420-104652.log,216.79 KB, text/x-log)
2017-04-20 10:54 UTC, Petross404(Petros S)
Details
emerge --info (info,23.22 KB, text/plain)
2017-04-20 10:55 UTC, Petross404(Petros S)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Petross404(Petros S) 2017-04-20 10:54:46 UTC
Created attachment 470460 [details]
build.log

dev-lang/tk can't play nice with GCC6.3 and LTO : 

/tmp/portage/dev-lang/tk-8.6.6/temp/cc8sLhEC.lto.o
/tmp/portage/dev-lang/tk-8.6.6/work/tk8.6.6/unix-abi_x86_64.amd64/libtk8.6.so: error: undefined reference to 'tclStubsPtr'
/tmp/portage/dev-lang/tk-8.6.6/work/tk8.6.6/unix-abi_x86_64.amd64/libtk8.6.so: error: undefined reference to 'Tcl_InitStubs'
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: initial tasks run time: (user: 0.010000 sys: 0.010000 wall: 0.160000)
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: middle tasks run time: (user: 0.000000 sys: 0.000000 wall: 0.000000)
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: final tasks run time: (user: 0.000000 sys: 0.000000 wall: 0.000000)
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: total run time: (user: 0.010000 sys: 0.010000 wall: 0.170000)
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: total space allocated by malloc: 6406144 bytes
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: total bytes mapped for read: 22246866
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: maximum bytes mapped for read at one time: 22246866
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: archive libraries: 12
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: total archive members: 1128
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: loaded archive members: 1
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: lib groups: 0
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: total lib groups members: 0
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: loaded lib groups members: 0
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: output file size: 11896 bytes
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: symbol table entries: 9284; buckets: 28411
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: symbol table stringpool entries: 6325; buckets: 28411
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: symbol table stringpool Stringdata structures: 97
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: section name pool entries: 30; buckets: 47
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: section name pool Stringdata structures: 1
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: output symbol name pool entries: 35; buckets: 59
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: output symbol name pool Stringdata structures: 1
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: dynamic name pool entries: 31; buckets: 59
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: dynamic name pool Stringdata structures: 1
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: .rodata merged constants size: 4; input: 1; output: 1
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: .rodata merged strings input bytes: 28
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: .rodata merged strings input strings: 3
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: .rodata merged strings entries: 3; buckets: 5
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: .rodata merged strings Stringdata structures: 1
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: .comment merged strings input bytes: 192
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: .comment merged strings input strings: 6
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: .comment merged strings entries: 2; buckets: 5
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: .comment merged strings Stringdata structures: 1
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: total free lists: 0
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: total free list nodes: 0
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: calls to Free_list::remove: 0
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: nodes visited: 0
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: calls to Free_list::allocate: 0
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: nodes visited: 0
collect2: error: ld returned 1 exit status
make: *** [Makefile:618: wish] Error 1
Comment 1 Petross404(Petros S) 2017-04-20 10:55:32 UTC
Created attachment 470462 [details]
emerge --info
Comment 2 curious 2017-04-30 22:43:32 UTC
i do confirm this problem exist also with gcc-5.4.0 
to resolve you have to rebuild tcl without lto , then emerge tk again.
Comment 3 Paolo Pedroni 2017-05-16 08:07:02 UTC
(In reply to curious from comment #2)
> i do confirm this problem exist also with gcc-5.4.0 
> to resolve you have to rebuild tcl without lto , then emerge tk again.

I can confirm both the bug (with both gcc-5.4.0 and gcc-6.3.0) and the workaround.
Comment 4 Jason Lamb 2017-08-17 00:51:05 UTC
As previously stated, when trying to emerge dev-lang/tk-8.6.6 with LTO, it was necessary to first emerge dev-lang/tcl-8.6.6 without LTO, and then emerge dev-lang/tk-8.6.6 with LTO, to avoid this error and emerge failure.

However, with the update to dev-lang/tcl-8.6.7 and dev-lang/tk-8.6.7, this no longer worked. It was actually necessary to emerge both without LTO to avoid this error emerging dev-lang/tk-8.6.7.
Comment 5 Tupone Alfredo gentoo-dev 2018-09-20 06:41:27 UTC
Adding those to make.conf:

AR="gcc-ar"
NM="gcc-nm"
RANLIB="gcc-ranlib"


make me build it succesfully