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.

Reply via email to