Re: [RFC][PATCH] libtraceevent: Fix static library to hide hidden functions
Steven Rostedt <[email protected]> Tue, 19 Aug 2025 15:56:17 -0400
| Newsgroups | org.kernel.vger.linux-trace-devel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 19 Aug 2025 15:04:32 +0100 Metin Kaya <[email protected]> wrote: > Now this is what I get when I try to build trace-cmd: > > BUILD trace-cmd > /usr/bin/ld: /out/lib64/libtraceevent.a(libtraceevent.o): in function > `load_plugin': > /libtraceevent/src/event-plugin.c:459:(.text+0x1458c): warning: Using > 'dlopen' in statically linked applications requires at runtime the > shared libraries from the glibc version used for linking > /usr/bin/ld: /trace-cmd/tracecmd/trace-setup-guest.o: in function > `trace_setup_guest': > trace-setup-guest.c:(.text+0x5c8): warning: Using 'getgrnam' in > statically linked applications requires at runtime the shared libraries > from the glibc version used for linking > /usr/bin/ld: /trace-cmd/tracecmd/trace-record.o: in function > `record_trace.isra.0': > trace-record.c:(.text+0xe705): warning: Using 'initgroups' in statically > linked applications requires at runtime the shared libraries from the > glibc version used for linking > /usr/bin/ld: /trace-cmd/tracecmd/trace-record.o: in function > `do_getaddrinfo': > trace-record.c:(.text+0x865): warning: Using 'getaddrinfo' in statically > linked applications requires at runtime the shared libraries from the > glibc version used for linking > /usr/bin/ld: /trace-cmd/tracecmd/trace-record.o: in function > `record_trace.isra.0': > trace-record.c:(.text+0xe6ee): warning: Using 'getpwnam' in statically > linked applications requires at runtime the shared libraries from the > glibc version used for linking Do you get the above warnings regardless? > /usr/bin/ld: /trace-cmd/tracecmd/trace-record.o: in function > `tracecmd_stat_cpu_instance': > trace-record.c:(.text+0x12ec): undefined reference to `trace_seq_printf' > /usr/bin/ld: /trace-cmd/tracecmd/trace-record.o: in function `record_stats': > trace-record.c:(.text+0x1419): undefined reference to `trace_seq_init' > /usr/bin/ld: /trace-cmd/lib/trace-cmd/libtracecmd.a(trace-input.o): in > function `update_page_info': > trace-input.c:(.text+0x15d7): undefined reference to > `kbuffer_load_subbuffer' > /usr/bin/ld: trace-input.c:(.text+0x15df): undefined reference to > `kbuffer_subbuffer_size' Oops, I forgot that trace_seq* and kbuffer_* are also supplied. I made everything that didn't start with 'tep_*' "static". I could add kbuffer_* and trace_seq_* to that list (the easy way out), or I can parse `nm libtraceevent.so` and convert everything that's static in it to static in the static library. -- Steve