diff options
author | peter <peter@FreeBSD.org> | 2001-10-29 10:10:10 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2001-10-29 10:10:10 +0000 |
commit | 7f637f2bb2ae5510edd8461a7ccc1ab9bb20c34d (patch) | |
tree | c6f2e920ed301497d5c70408b7fe99cd0e111427 /libexec/rtld-elf/rtld.h | |
parent | 0135add4a6138b4850540eb42f6a4345c3956c2a (diff) | |
download | FreeBSD-src-7f637f2bb2ae5510edd8461a7ccc1ab9bb20c34d.zip FreeBSD-src-7f637f2bb2ae5510edd8461a7ccc1ab9bb20c34d.tar.gz |
Update rtld for the "new" ia64 ABI. In the old toolchain, the
DT_INIT and DT_FINI tags pointed to fptr records. In 2.11.2, it points
to the actuall address of the function. On IA64 you cannot just take
an address of a function, store it in a function pointer variable and
call it.. the function pointers point to a fptr data block that has the
target gp and address in it. This is absolutely necessary for using
the in-tree binutils toolchain, but (unfortunately) will not work with
old shared libraries. Save your old ld-elf.so.1 if you want to use
old ones still. Do not mix-and-match.
This is a no-op change for i386 and alpha.
Reviewed by: dfr
Diffstat (limited to 'libexec/rtld-elf/rtld.h')
-rw-r--r-- | libexec/rtld-elf/rtld.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libexec/rtld-elf/rtld.h b/libexec/rtld-elf/rtld.h index c8cb398..b425013 100644 --- a/libexec/rtld-elf/rtld.h +++ b/libexec/rtld-elf/rtld.h @@ -145,8 +145,8 @@ typedef struct Struct_Obj_Entry { const char *rpath; /* Search path specified in object */ Needed_Entry *needed; /* Shared objects needed by this one (%) */ - InitFunc init; /* Initialization function to call */ - InitFunc fini; /* Termination function to call */ + Elf_Addr init; /* Initialization function to call */ + Elf_Addr fini; /* Termination function to call */ bool mainprog; /* True if this is the main program */ bool rtld; /* True if this is the dynamic linker */ |