Enable math functions linking with static library for LTO
authorXiong Hu Luo <luoxhu@linux.ibm.com>
Wed, 14 Aug 2019 02:18:33 +0000 (02:18 +0000)
committerXiong Hu Luo <luoxhu@gcc.gnu.org>
Wed, 14 Aug 2019 02:18:33 +0000 (02:18 +0000)
commit5747e0c0e1bce0df39ab7ac342162ecdc6e1343d
treea0ffc5e9ca2f76f3a97f9789f8956e8d11d02f53
parent37987c39eb22e5666745fd5edcfc518d1e59ed72
Enable math functions linking with static library for LTO

In LTO mode, if static library and dynamic library contains same
function and both libraries are passed as arguments, linker will link
the function in dynamic library no matter the sequence.  This patch
will output LTO symbol node as UNDEF if BUILT_IN_NORMAL function FNDECL
is a math function, then the function in static library will be linked
first if its sequence is ahead of the dynamic library.

gcc/ChangeLog

2019-08-14  Xiong Hu Luo  <luoxhu@linux.ibm.com>

PR lto/91287
* builtins.c (builtin_with_linkage_p): New function.
* builtins.h (builtin_with_linkage_p): New function.
* symtab.c (write_symbol): Remove redundant assert.
* lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
Remove FIXME and use builtin_with_linkage_p.

From-SVN: r274411
gcc/ChangeLog
gcc/builtins.c
gcc/builtins.h
gcc/lto-streamer-out.c
gcc/symtab.c