<div dir="ltr"><div>Hi,</div><div>gcc linker crashes when using -flto gcc (link time optimization), wondering if you can provide a work around. The cause seems to be the TRACEPOINT_LOGLEVEL() generated 2 lines.</div><div><br></div><div>Environment:</div><div>uname -a<br>... 3.19.0-30-generic #34~14.04.1-Ubuntu SMP Fri Oct 2 22:09:39 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux</div><p>gcc version:<br>gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04)</p><p>Here is a simple sample program that crashes the gcc linker:</p><p>tst.c:<br>[<br>#include "tst_trace.h" <br>main(void) {<br>    int i;<br>    for (i = 0; i < 10; i++)<br>        tracepoint(tst, tst_main);<br>}<br>]</p><p>tst_trace.c:<br>[<br>#define TRACEPOINT_CREATE_PROBES<br>#define TRACEPOINT_DEFINE<br>#include "./tst_trace.h" <br>]</p><p>tst_trace.h:<br>[<br>#undef TRACEPOINT_PROVIDER<br>#define TRACEPOINT_PROVIDER tst<br>#undef TRACEPOINT_INCLUDE<br>#define TRACEPOINT_INCLUDE "./tst_trace.h" <br>#if !defined(_TST_TRACE_H) || defined(TRACEPOINT_HEADER_MULTI_READ)<br>#define _TST_TRACE_H<br>#include <lttng/tracepoint.h><br>TRACEPOINT_EVENT(<br>    tst, tst_main, TP_ARGS(), TP_FIELDS()<br>)<br>TRACEPOINT_LOGLEVEL(tst, tst_main, TRACE_DEBUG_UNIT)<br>#endif /* _TST_TRACE_H */<br>#include <lttng/tracepoint-event.h><br>]</p><p>these compile & link command options:<br>[<br>cc -O3 -g -flto -I. -c -o tst.o tst.c<br>cc -O3 -g -flto -I. -c -o tst_trace.o tst_trace.c<br>g++ -O3 -g -flto tst_trace.o tst.o -o tst -l lttng-ust -l dl<br>]</p><p>crash the linker:<br>[<br>lto1: internal compiler error: Segmentation fault<br>Please submit a full bug report,<br>with preprocessed source if appropriate.<br>]</p><div>thanks, John</div><div><br></div></div>