https://sourceware.org/bugzilla/show_bug.cgi?id=32241
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-10-06 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 CC| |hjl.tools at gmail dot com --- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> --- A testcase: [hjl@gnu-tgl-3 pr32241]$ cat pr32241a.c #include <stdlib.h> #include <stdio.h> extern void *bar (size_t); extern void func1 (void); int main() { void *ptr = bar (200); free (ptr); func1 (); printf ("PASS\n"); return 0; } [hjl@gnu-tgl-3 pr32241]$ cat pr32241b.c #include <stdlib.h> #include <dlfcn.h> extern void foo (void *); static void *(*__real_malloc) (size_t) = NULL; void check (void * ptr) { foo (ptr); } void * malloc (size_t size) { if (__real_malloc == NULL) __real_malloc = (void*(*)(size_t))dlsym (RTLD_NEXT, "malloc"); void *p = __real_malloc (size); check (p); return p; } [hjl@gnu-tgl-3 pr32241]$ cat pr32241c.c #include <stdlib.h> void foo (void * ptr) { if (ptr == NULL) abort (); } void * bar (size_t size) { return malloc (size); } void func1 (void) { } [hjl@gnu-tgl-3 pr32241]$ make gcc -B./ -g -O0 -flto=auto -ffat-lto-objects -c -o pr32241a.o pr32241a.c gcc -B./ -g -O0 -flto=auto -ffat-lto-objects -c -o pr32241b.o pr32241b.c ar -rv libx.a pr32241b.o ar: creating libx.a a - pr32241b.o gcc -B./ -g -O0 -flto=auto -ffat-lto-objects -c -o pr32241c.o pr32241c.c ar -rv libx.a pr32241c.o a - pr32241c.o gcc -B./ -g -O0 -flto=auto -ffat-lto-objects -o x pr32241a.o libx.a -ldl ./ld: libx.a(pr32241b.o): in function `check': /export/home/hjl/bugs/binutils/pr32241/pr32241b.c:11:(.text+0x14): undefined reference to `foo' collect2: error: ld returned 1 exit status make: *** [Makefile:19: x] Error 1 [hjl@gnu-tgl-3 pr32241]$ -- You are receiving this mail because: You are on the CC list for the bug.