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.