Re: i586: make test: event-parse.c:5643:(.text+0x16e6): undefined reference to `_tep_local___stack_chk_fail_local'

Steven Rostedt <[email protected]> Tue, 30 Dec 2025 09:57:34 -0500
Newsgroups org.kernel.vger.linux-trace-devel
Message-ID <[email protected]>
On Tue, 30 Dec 2025 09:51:43 -0500
Steven Rostedt <[email protected]> wrote:

> > [00:00:30] ( gcc /usr/src/RPM/BUILD/libtraceevent-1.8.5/utest/trace-utest.o /usr/src/RPM/BUILD/libtraceevent-1.8.5/utest/traceevent-utest.o /usr/src/RPM/BUILD/libtraceevent-1.8.5/lib/libtraceevent.a -rdynamic -o /usr/src/RPM/BUILD/libtraceevent-1.8.5/utest/trace-utest   -ldl -lcunit -ldl /usr/src/RPM/BUILD/libtraceevent-1.8.5/lib/libtraceevent.a)
> > [00:00:30] ld: /usr/src/RPM/BUILD/libtraceevent-1.8.5/lib/libtraceevent.a(event-parse.o): in function `print_ip6c_addr':
> > [00:00:30] /usr/src/RPM/BUILD/libtraceevent-1.8.5/src/event-parse.c:5643:(.text+0x16e6): undefined reference to `_tep_local___stack_chk_fail_local'  
> 
> This looks like the code that is used to hide internal global functions in
> the static library. I'll have to set up a x86_32 VM and see if I can
> reproduce it.

I forgot I had a 32bit VM available. I tried it there and it gave me:

~# make test
  DESCEND            src libtraceevent.a
  DESCEND            utest test
  COMPILE FPIC       trace-utest.o
  COMPILE FPIC       traceevent-utest.o
traceevent-utest.c: In function ‘test_btf_read’:
traceevent-utest.c:385:33: warning: unsigned conversion from ‘long long int’ to ‘long unsigned int’ changes value from ‘140730998977488’ to ‘2100556752’ [-Woverflow]
  385 |         unsigned long args[] = {0x7ffe7d33f3d0, 0, 0, 0, 0, 0};
      |                                 ^~~~~~~~~~~~~~
  BUILD              trace-utest
/usr/bin/ld: /work/git/libtraceevent.git/lib/libtraceevent.a(event-parse.o): in function `consolidate_op_arg':
/work/git/libtraceevent.git/src/event-parse.c:2302: undefined reference to `_tep_local___udivdi3'
/usr/bin/ld: /work/git/libtraceevent.git/src/event-parse.c:2305: undefined reference to `_tep_local___umoddi3'
/usr/bin/ld: /work/git/libtraceevent.git/lib/libtraceevent.a(event-parse.o): in function `eval_num_arg':
/work/git/libtraceevent.git/src/event-parse.c:4561: undefined reference to `_tep_local___udivdi3'
/usr/bin/ld: /work/git/libtraceevent.git/src/event-parse.c:4564: undefined reference to `_tep_local___umoddi3'
/usr/bin/ld: /work/git/libtraceevent.git/lib/libtraceevent.a(event-parse.o): in function `print_event_time':
/work/git/libtraceevent.git/src/event-parse.c:7168: undefined reference to `_tep_local___udivdi3'
/usr/bin/ld: /work/git/libtraceevent.git/src/event-parse.c:7175: undefined reference to `_tep_local___umoddi3'
/usr/bin/ld: /work/git/libtraceevent.git/src/event-parse.c:7175: undefined reference to `_tep_local___udivdi3'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:22: /work/git/libtraceevent.git/utest/trace-utest] Error 1
make: *** [Makefile:258: test] Error 2

I have a pretty good idea what the issue is.

Thanks for reporting it.

-- Steve