diff options
Diffstat (limited to 'ports/sysdeps/ia64/dl-fptr.h')
-rw-r--r-- | ports/sysdeps/ia64/dl-fptr.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ports/sysdeps/ia64/dl-fptr.h b/ports/sysdeps/ia64/dl-fptr.h index c2bef6c288..447c098aff 100644 --- a/ports/sysdeps/ia64/dl-fptr.h +++ b/ports/sysdeps/ia64/dl-fptr.h @@ -32,4 +32,14 @@ #define ELF_MACHINE_LOAD_ADDRESS(var, symbol) \ asm ("movl %0 = @gprel (" #symbol ");; add %0 = %0, gp" : "=&r" (var)); +/* We don't have a gcc helper to extract the plabel info. */ +#define ELF_PTR_TO_FDESC(ptr) \ + ({ union { \ + void *_ptr; \ + struct fdesc *_fdesc; \ + } _u; \ + _u._ptr = ptr; \ + _u._fdesc; \ + }) + #endif /* !dl_ia64_fptr_h */ |