http://bugzilla.opensuse.org/show_bug.cgi?id=1141188
http://bugzilla.opensuse.org/show_bug.cgi?id=1141188#c2
Martin Liška changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |martin.liska@suse.com
--- Comment #2 from Martin Liška ---
So the problem is following:
include/schily/schily.h defines:
/*PRINTFLIKE1*/
extern int error __PR((const char *, ...)) __printflike__(1, 2);
/*PRINTFLIKE1*/
extern int gterror __PR((const char *, ...)) __printflike__(1, 2);
#ifdef GT_ERROR
#undef error
#define error gterror
#endif
So it's a different declaration of function error that has a different
signature in glibc:
void error(int status, int errnum, const char *format, ...);
And I bet GT_ERROR is not defined for all source files that are then linked
with LTO. In LTO linking, we end up with duplicate and different function
signatures and the from glibc is taken:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7f67331 in __strlen_avx2 () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff7f67331 in __strlen_avx2 () from /lib64/libc.so.6
#1 0x00007ffff7e731ae in __vfprintf_internal () from /lib64/libc.so.6
#2 0x00007ffff7e7418e in buffered_vfprintf () from /lib64/libc.so.6
#3 0x00007ffff7e71384 in __vfprintf_internal () from /lib64/libc.so.6
#4 0x00007ffff7e7b16a in locked_vfxprintf () from /lib64/libc.so.6
#5 0x00007ffff7e7b26d in __vfxprintf () from /lib64/libc.so.6
#6 0x00007ffff7f0173e in error_tail () from /lib64/libc.so.6
#7 0x00007ffff7f018bc in error () from /lib64/libc.so.6
#8 0x0000555555560b20 in main (argc=4, argv=0x7fffffffe8b8) at mkisofs.c:2801
while without LTO the libschily/gterror.c is taken:
(gdb) bt
#0 0x00007ffff7fa9a10 in error () from
../libs/x86_64-linux-gcc/pic/libschily.so.2.0
#1 0x00005555555602b9 in main (argc=4, argv=0x7fffffffe8b8) at mkisofs.c:2801
--
You are receiving this mail because:
You are on the CC list for the bug.