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

            Bug ID: 21481
           Summary: -z bndplt doesn't work with IFUNC
           Product: binutils
           Version: 2.29 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: hjl.tools at gmail dot com
  Target Milestone: ---
            Target: x86-64

[hjl@gnu-6 xxx]$ cat x.c
extern void check (void);

int
main ()
{
  check ();
  return 0;
}
[hjl@gnu-6 xxx]$ cat func1.S 
        .section        .rodata.str1.1,"aMS",@progbits,1
.LC0:
        .string "PASS"
        .text
        .globl  check
        .type   check, @function
check:
        subq    $8, %rsp
        call    *get_func1@GOTPCREL(%rip)
        cmpl    $func1, %eax
        jne     .L3
        movq    func1_p@GOTPCREL(%rip), %rdx
        cmpq    %rax, (%rdx)
        jne     .L3
        call    *func1@GOTPCREL(%rip)
        cmpl    $1, %eax
        jne     .L3
        call    *call_func1@GOTPCREL(%rip)
        cmpl    $1, %eax
        jne     .L3
        leaq    .LC0(%rip), %rdi
        addq    $8, %rsp
        jmp     *puts@GOTPCREL(%rip)
.L3:
        call    *abort@GOTPCREL(%rip)
        .size   check, .-check
        .globl  get_func1
        .type   get_func1, @function
get_func1:
        movq    func1@GOTPCREL(%rip), %rax
        ret
        .size   get_func1, .-get_func1
        .globl  call_func1
        .type   call_func1, @function
call_func1:
        jmp     *func1@GOTPCREL(%rip)
        .size   call_func1, .-call_func1
        .globl  func1_p
        .section        .rodata,"a",@progbits
        .align 8
        .size   func1_p, 8
        .type   func1_p, @object
func1_p:
        .dc.a   func1
implementation1:
        movl    $1, %eax
        ret
        .size   implementation1, .-implementation1
        .globl  func1
        .type   func1, @gnu_indirect_function
func1:
        leaq    implementation1(%rip), %rax
        ret
        .size   func1, .-func1
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-6 xxx]$ make
gcc -B./ -g   -c -o x.o x.c
gcc -B./ -c -g func1.S -o func1.o
gcc -B./ -Wl,-z,bndplt -o x x.o func1.o
./x
Makefile:13: recipe for target 'all' failed
make: *** [all] Aborted
[hjl@gnu-6 xxx]$

-- 
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