https://sourceware.org/bugzilla/show_bug.cgi?id=18458

            Bug ID: 18458
           Summary: -z now generates wrong binary
           Product: binutils
           Version: 2.26 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: hjl.tools at gmail dot com
  Target Milestone: ---

[hjl@gnu-6 gotplt-4]$ cat a.c
#include <stdio.h>
void 
a (void)
{
  printf("Hello, World!\n");
}
[hjl@gnu-6 gotplt-4]$ cat b.c
extern void a (void);
void
b (void)
{
  a();
}
[hjl@gnu-6 gotplt-4]$ cat main.c
extern void a(void);
extern void b(void);

void dummy (void)
{
  a();
}
int
compare (void (*f)(void))
{
  return a == f;
}
int
main (void)
{
  b ();
  return 0;
}
[hjl@gnu-6 gotplt-4]$ make
gcc -m32 -O -g    -c -o main.o main.c
gcc -m32 -O -g  -fpic -o a.o -c a.c
gcc -m32 -O -g  -Wl,-z,now -shared -o a.so a.o
gcc -m32 -O -g  -fpic -o b.o -c b.c
gcc -m32 -O -g  -Wl,-z,now -shared -o b.so b.o a.so
gcc -m32 -O -g  -Wl,-rpath=. -Wl,-z,now -o main main.o a.so b.so
[hjl@gnu-6 gotplt-4]$ ./main

"main" enters an infinite loop.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to