#
1.22 |
|
29-Jan-2023 |
gnezdo |
Unite all nitems copies in ld.so/util.h
OK deraadt
|
Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
|
#
1.21 |
|
08-Jan-2022 |
guenther |
Prep .c files for removing the #includes from */archdep.h * replace #include "archdep.h" with #includes of what is used, pulling in "syscall.h", "util.h", and "archdep.h" as needed * delete #include <sys/syscall.h> from syscall.h * only pull in <sys/stat.h> to the three files that use _dl_fstat(), forward declare struct stat in syscall.h for the others * NBBY is for <sys/select.h> macros; just use '8' in dl_printf.c * <machine/vmparam.h> is only needed on i386; conditionalize it * stop using __LDPGSZ: use _MAX_PAGE_SHIFT (already used by malloc.c) where necessary * delete other bogus #includes, order legit per style: <sys/*> then <*/*>, then <*>, then "*"
dir.c improvement from jsg@ ok and testing assistance deraadt@
|
Revision tags: OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
|
#
1.20 |
|
18-Feb-2020 |
kettenis |
Now that the kernel skips the two instructions immediately following a syscall, replace the double nop with a dsb nsh; isb; sequence which stops the CPU from speculating any further. This fix was suggested by Anthony Steinhauser.
ok deraadt@
|
#
1.19 |
|
26-Jan-2020 |
kettenis |
Insert two nop instructions after each svc #0 instruction in userland. The will be replaced by a speculation barrier as soon as we teach the kernel to skip over these two instructions when returning from a system call.
ok patrick@, deraadt@
|
#
1.18 |
|
07-Dec-2019 |
guenther |
Disable ltrace for objects linked with -znow, as at least on amd64, linking that was deletes the lazy relocation trampoline which ltrace currently depends on
problem reported by tb@ directional feedback kettenis@ ok mpi@
|
#
1.17 |
|
28-Nov-2019 |
guenther |
Revert yesterday's _dl_md_reloc() and _dl_md_reloc_got() changes: something's broken on at least i386.
|
#
1.16 |
|
27-Nov-2019 |
guenther |
Delete now obsolete comments
|
#
1.15 |
|
27-Nov-2019 |
guenther |
armv7 and aarch64 specify GLOB_DAT as having an addend, so treat it exactly like the ABS{32,64} relocation there.
noted by and ok kettenis@
|
#
1.14 |
|
26-Nov-2019 |
guenther |
Clean up _dl_md_reloc(): instead of having tables and piles of conditionals that handle a dozen relocation types for each, just have a nice little switch for the four specific relocations that actually occur.
Besides being smaller and easier to understand, this fixes the COPY relocation handling to only do one symbol lookup, instead of looking up the symbol and then immediately looking it up again (with the correct flags to find the instance it needs).
ok kettenis@
|
#
1.13 |
|
26-Nov-2019 |
guenther |
Make aarch64, amd64, arm, and i386 more like sparc64: move non-lazy relocation from _dl_md_reloc() to _dl_md_reloc_all_plt() which has the minimal code to do it.
Also, avoid division on PLTRELSZ; just use it to offset to the end.
ok kettenis@
|
#
1.12 |
|
24-Oct-2019 |
guenther |
Delete unused support for relocations that don't require alignment.
ok mpi@ kettenis@
|
#
1.11 |
|
23-Oct-2019 |
guenther |
Prefer the size-independent ELF identifiers over the size-specific ones. Strip superfluous parens from return statements while here.
Done programatically with two perl invocations
idea ok kettenis@ drahn@ ok visa@
|
Revision tags: OPENBSD_6_6_BASE
|
#
1.10 |
|
05-Oct-2019 |
guenther |
Delete some obsolete debugging #ifdefs blocks
ok mlarkin@, mpi@, krw@, deraadt@
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.21 |
|
08-Jan-2022 |
guenther |
Prep .c files for removing the #includes from */archdep.h * replace #include "archdep.h" with #includes of what is used, pulling in "syscall.h", "util.h", and "archdep.h" as needed * delete #include <sys/syscall.h> from syscall.h * only pull in <sys/stat.h> to the three files that use _dl_fstat(), forward declare struct stat in syscall.h for the others * NBBY is for <sys/select.h> macros; just use '8' in dl_printf.c * <machine/vmparam.h> is only needed on i386; conditionalize it * stop using __LDPGSZ: use _MAX_PAGE_SHIFT (already used by malloc.c) where necessary * delete other bogus #includes, order legit per style: <sys/*> then <*/*>, then <*>, then "*"
dir.c improvement from jsg@ ok and testing assistance deraadt@
|
Revision tags: OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
|
#
1.20 |
|
18-Feb-2020 |
kettenis |
Now that the kernel skips the two instructions immediately following a syscall, replace the double nop with a dsb nsh; isb; sequence which stops the CPU from speculating any further. This fix was suggested by Anthony Steinhauser.
ok deraadt@
|
#
1.19 |
|
26-Jan-2020 |
kettenis |
Insert two nop instructions after each svc #0 instruction in userland. The will be replaced by a speculation barrier as soon as we teach the kernel to skip over these two instructions when returning from a system call.
ok patrick@, deraadt@
|
#
1.18 |
|
07-Dec-2019 |
guenther |
Disable ltrace for objects linked with -znow, as at least on amd64, linking that was deletes the lazy relocation trampoline which ltrace currently depends on
problem reported by tb@ directional feedback kettenis@ ok mpi@
|
#
1.17 |
|
28-Nov-2019 |
guenther |
Revert yesterday's _dl_md_reloc() and _dl_md_reloc_got() changes: something's broken on at least i386.
|
#
1.16 |
|
27-Nov-2019 |
guenther |
Delete now obsolete comments
|
#
1.15 |
|
27-Nov-2019 |
guenther |
armv7 and aarch64 specify GLOB_DAT as having an addend, so treat it exactly like the ABS{32,64} relocation there.
noted by and ok kettenis@
|
#
1.14 |
|
26-Nov-2019 |
guenther |
Clean up _dl_md_reloc(): instead of having tables and piles of conditionals that handle a dozen relocation types for each, just have a nice little switch for the four specific relocations that actually occur.
Besides being smaller and easier to understand, this fixes the COPY relocation handling to only do one symbol lookup, instead of looking up the symbol and then immediately looking it up again (with the correct flags to find the instance it needs).
ok kettenis@
|
#
1.13 |
|
26-Nov-2019 |
guenther |
Make aarch64, amd64, arm, and i386 more like sparc64: move non-lazy relocation from _dl_md_reloc() to _dl_md_reloc_all_plt() which has the minimal code to do it.
Also, avoid division on PLTRELSZ; just use it to offset to the end.
ok kettenis@
|
#
1.12 |
|
24-Oct-2019 |
guenther |
Delete unused support for relocations that don't require alignment.
ok mpi@ kettenis@
|
#
1.11 |
|
23-Oct-2019 |
guenther |
Prefer the size-independent ELF identifiers over the size-specific ones. Strip superfluous parens from return statements while here.
Done programatically with two perl invocations
idea ok kettenis@ drahn@ ok visa@
|
Revision tags: OPENBSD_6_6_BASE
|
#
1.10 |
|
05-Oct-2019 |
guenther |
Delete some obsolete debugging #ifdefs blocks
ok mlarkin@, mpi@, krw@, deraadt@
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.20 |
|
18-Feb-2020 |
kettenis |
Now that the kernel skips the two instructions immediately following a syscall, replace the double nop with a dsb nsh; isb; sequence which stops the CPU from speculating any further. This fix was suggested by Anthony Steinhauser.
ok deraadt@
|
#
1.19 |
|
26-Jan-2020 |
kettenis |
Insert two nop instructions after each svc #0 instruction in userland. The will be replaced by a speculation barrier as soon as we teach the kernel to skip over these two instructions when returning from a system call.
ok patrick@, deraadt@
|
#
1.18 |
|
07-Dec-2019 |
guenther |
Disable ltrace for objects linked with -znow, as at least on amd64, linking that was deletes the lazy relocation trampoline which ltrace currently depends on
problem reported by tb@ directional feedback kettenis@ ok mpi@
|
#
1.17 |
|
28-Nov-2019 |
guenther |
Revert yesterday's _dl_md_reloc() and _dl_md_reloc_got() changes: something's broken on at least i386.
|
#
1.16 |
|
27-Nov-2019 |
guenther |
Delete now obsolete comments
|
#
1.15 |
|
27-Nov-2019 |
guenther |
armv7 and aarch64 specify GLOB_DAT as having an addend, so treat it exactly like the ABS{32,64} relocation there.
noted by and ok kettenis@
|
#
1.14 |
|
26-Nov-2019 |
guenther |
Clean up _dl_md_reloc(): instead of having tables and piles of conditionals that handle a dozen relocation types for each, just have a nice little switch for the four specific relocations that actually occur.
Besides being smaller and easier to understand, this fixes the COPY relocation handling to only do one symbol lookup, instead of looking up the symbol and then immediately looking it up again (with the correct flags to find the instance it needs).
ok kettenis@
|
#
1.13 |
|
26-Nov-2019 |
guenther |
Make aarch64, amd64, arm, and i386 more like sparc64: move non-lazy relocation from _dl_md_reloc() to _dl_md_reloc_all_plt() which has the minimal code to do it.
Also, avoid division on PLTRELSZ; just use it to offset to the end.
ok kettenis@
|
#
1.12 |
|
24-Oct-2019 |
guenther |
Delete unused support for relocations that don't require alignment.
ok mpi@ kettenis@
|
#
1.11 |
|
23-Oct-2019 |
guenther |
Prefer the size-independent ELF identifiers over the size-specific ones. Strip superfluous parens from return statements while here.
Done programatically with two perl invocations
idea ok kettenis@ drahn@ ok visa@
|
Revision tags: OPENBSD_6_6_BASE
|
#
1.10 |
|
05-Oct-2019 |
guenther |
Delete some obsolete debugging #ifdefs blocks
ok mlarkin@, mpi@, krw@, deraadt@
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.19 |
|
26-Jan-2020 |
kettenis |
Insert two nop instructions after each svc #0 instruction in userland. The will be replaced by a speculation barrier as soon as we teach the kernel to skip over these two instructions when returning from a system call.
ok patrick@, deraadt@
|
#
1.18 |
|
07-Dec-2019 |
guenther |
Disable ltrace for objects linked with -znow, as at least on amd64, linking that was deletes the lazy relocation trampoline which ltrace currently depends on
problem reported by tb@ directional feedback kettenis@ ok mpi@
|
#
1.17 |
|
28-Nov-2019 |
guenther |
Revert yesterday's _dl_md_reloc() and _dl_md_reloc_got() changes: something's broken on at least i386.
|
#
1.16 |
|
27-Nov-2019 |
guenther |
Delete now obsolete comments
|
#
1.15 |
|
27-Nov-2019 |
guenther |
armv7 and aarch64 specify GLOB_DAT as having an addend, so treat it exactly like the ABS{32,64} relocation there.
noted by and ok kettenis@
|
#
1.14 |
|
26-Nov-2019 |
guenther |
Clean up _dl_md_reloc(): instead of having tables and piles of conditionals that handle a dozen relocation types for each, just have a nice little switch for the four specific relocations that actually occur.
Besides being smaller and easier to understand, this fixes the COPY relocation handling to only do one symbol lookup, instead of looking up the symbol and then immediately looking it up again (with the correct flags to find the instance it needs).
ok kettenis@
|
#
1.13 |
|
26-Nov-2019 |
guenther |
Make aarch64, amd64, arm, and i386 more like sparc64: move non-lazy relocation from _dl_md_reloc() to _dl_md_reloc_all_plt() which has the minimal code to do it.
Also, avoid division on PLTRELSZ; just use it to offset to the end.
ok kettenis@
|
#
1.12 |
|
24-Oct-2019 |
guenther |
Delete unused support for relocations that don't require alignment.
ok mpi@ kettenis@
|
#
1.11 |
|
23-Oct-2019 |
guenther |
Prefer the size-independent ELF identifiers over the size-specific ones. Strip superfluous parens from return statements while here.
Done programatically with two perl invocations
idea ok kettenis@ drahn@ ok visa@
|
Revision tags: OPENBSD_6_6_BASE
|
#
1.10 |
|
05-Oct-2019 |
guenther |
Delete some obsolete debugging #ifdefs blocks
ok mlarkin@, mpi@, krw@, deraadt@
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.18 |
|
07-Dec-2019 |
guenther |
Disable ltrace for objects linked with -znow, as at least on amd64, linking that was deletes the lazy relocation trampoline which ltrace currently depends on
problem reported by tb@ directional feedback kettenis@ ok mpi@
|
#
1.17 |
|
28-Nov-2019 |
guenther |
Revert yesterday's _dl_md_reloc() and _dl_md_reloc_got() changes: something's broken on at least i386.
|
#
1.16 |
|
27-Nov-2019 |
guenther |
Delete now obsolete comments
|
#
1.15 |
|
27-Nov-2019 |
guenther |
armv7 and aarch64 specify GLOB_DAT as having an addend, so treat it exactly like the ABS{32,64} relocation there.
noted by and ok kettenis@
|
#
1.14 |
|
26-Nov-2019 |
guenther |
Clean up _dl_md_reloc(): instead of having tables and piles of conditionals that handle a dozen relocation types for each, just have a nice little switch for the four specific relocations that actually occur.
Besides being smaller and easier to understand, this fixes the COPY relocation handling to only do one symbol lookup, instead of looking up the symbol and then immediately looking it up again (with the correct flags to find the instance it needs).
ok kettenis@
|
#
1.13 |
|
26-Nov-2019 |
guenther |
Make aarch64, amd64, arm, and i386 more like sparc64: move non-lazy relocation from _dl_md_reloc() to _dl_md_reloc_all_plt() which has the minimal code to do it.
Also, avoid division on PLTRELSZ; just use it to offset to the end.
ok kettenis@
|
#
1.12 |
|
24-Oct-2019 |
guenther |
Delete unused support for relocations that don't require alignment.
ok mpi@ kettenis@
|
#
1.11 |
|
23-Oct-2019 |
guenther |
Prefer the size-independent ELF identifiers over the size-specific ones. Strip superfluous parens from return statements while here.
Done programatically with two perl invocations
idea ok kettenis@ drahn@ ok visa@
|
Revision tags: OPENBSD_6_6_BASE
|
#
1.10 |
|
05-Oct-2019 |
guenther |
Delete some obsolete debugging #ifdefs blocks
ok mlarkin@, mpi@, krw@, deraadt@
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.17 |
|
28-Nov-2019 |
guenther |
Revert yesterday's _dl_md_reloc() and _dl_md_reloc_got() changes: something's broken on at least i386.
|
#
1.16 |
|
27-Nov-2019 |
guenther |
Delete now obsolete comments
|
#
1.15 |
|
27-Nov-2019 |
guenther |
armv7 and aarch64 specify GLOB_DAT as having an addend, so treat it exactly like the ABS{32,64} relocation there.
noted by and ok kettenis@
|
#
1.14 |
|
26-Nov-2019 |
guenther |
Clean up _dl_md_reloc(): instead of having tables and piles of conditionals that handle a dozen relocation types for each, just have a nice little switch for the four specific relocations that actually occur.
Besides being smaller and easier to understand, this fixes the COPY relocation handling to only do one symbol lookup, instead of looking up the symbol and then immediately looking it up again (with the correct flags to find the instance it needs).
ok kettenis@
|
#
1.13 |
|
26-Nov-2019 |
guenther |
Make aarch64, amd64, arm, and i386 more like sparc64: move non-lazy relocation from _dl_md_reloc() to _dl_md_reloc_all_plt() which has the minimal code to do it.
Also, avoid division on PLTRELSZ; just use it to offset to the end.
ok kettenis@
|
#
1.12 |
|
24-Oct-2019 |
guenther |
Delete unused support for relocations that don't require alignment.
ok mpi@ kettenis@
|
#
1.11 |
|
23-Oct-2019 |
guenther |
Prefer the size-independent ELF identifiers over the size-specific ones. Strip superfluous parens from return statements while here.
Done programatically with two perl invocations
idea ok kettenis@ drahn@ ok visa@
|
Revision tags: OPENBSD_6_6_BASE
|
#
1.10 |
|
05-Oct-2019 |
guenther |
Delete some obsolete debugging #ifdefs blocks
ok mlarkin@, mpi@, krw@, deraadt@
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.16 |
|
27-Nov-2019 |
guenther |
Delete now obsolete comments
|
#
1.15 |
|
27-Nov-2019 |
guenther |
armv7 and aarch64 specify GLOB_DAT as having an addend, so treat it exactly like the ABS{32,64} relocation there.
noted by and ok kettenis@
|
#
1.14 |
|
26-Nov-2019 |
guenther |
Clean up _dl_md_reloc(): instead of having tables and piles of conditionals that handle a dozen relocation types for each, just have a nice little switch for the four specific relocations that actually occur.
Besides being smaller and easier to understand, this fixes the COPY relocation handling to only do one symbol lookup, instead of looking up the symbol and then immediately looking it up again (with the correct flags to find the instance it needs).
ok kettenis@
|
#
1.13 |
|
26-Nov-2019 |
guenther |
Make aarch64, amd64, arm, and i386 more like sparc64: move non-lazy relocation from _dl_md_reloc() to _dl_md_reloc_all_plt() which has the minimal code to do it.
Also, avoid division on PLTRELSZ; just use it to offset to the end.
ok kettenis@
|
#
1.12 |
|
24-Oct-2019 |
guenther |
Delete unused support for relocations that don't require alignment.
ok mpi@ kettenis@
|
#
1.11 |
|
23-Oct-2019 |
guenther |
Prefer the size-independent ELF identifiers over the size-specific ones. Strip superfluous parens from return statements while here.
Done programatically with two perl invocations
idea ok kettenis@ drahn@ ok visa@
|
Revision tags: OPENBSD_6_6_BASE
|
#
1.10 |
|
05-Oct-2019 |
guenther |
Delete some obsolete debugging #ifdefs blocks
ok mlarkin@, mpi@, krw@, deraadt@
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.13 |
|
26-Nov-2019 |
guenther |
Make aarch64, amd64, arm, and i386 more like sparc64: move non-lazy relocation from _dl_md_reloc() to _dl_md_reloc_all_plt() which has the minimal code to do it.
Also, avoid division on PLTRELSZ; just use it to offset to the end.
ok kettenis@
|
#
1.12 |
|
24-Oct-2019 |
guenther |
Delete unused support for relocations that don't require alignment.
ok mpi@ kettenis@
|
#
1.11 |
|
23-Oct-2019 |
guenther |
Prefer the size-independent ELF identifiers over the size-specific ones. Strip superfluous parens from return statements while here.
Done programatically with two perl invocations
idea ok kettenis@ drahn@ ok visa@
|
Revision tags: OPENBSD_6_6_BASE
|
#
1.10 |
|
05-Oct-2019 |
guenther |
Delete some obsolete debugging #ifdefs blocks
ok mlarkin@, mpi@, krw@, deraadt@
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.12 |
|
24-Oct-2019 |
guenther |
Delete unused support for relocations that don't require alignment.
ok mpi@ kettenis@
|
#
1.11 |
|
23-Oct-2019 |
guenther |
Prefer the size-independent ELF identifiers over the size-specific ones. Strip superfluous parens from return statements while here.
Done programatically with two perl invocations
idea ok kettenis@ drahn@ ok visa@
|
Revision tags: OPENBSD_6_6_BASE
|
#
1.10 |
|
05-Oct-2019 |
guenther |
Delete some obsolete debugging #ifdefs blocks
ok mlarkin@, mpi@, krw@, deraadt@
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.11 |
|
23-Oct-2019 |
guenther |
Prefer the size-independent ELF identifiers over the size-specific ones. Strip superfluous parens from return statements while here.
Done programatically with two perl invocations
idea ok kettenis@ drahn@ ok visa@
|
Revision tags: OPENBSD_6_6_BASE
|
#
1.10 |
|
05-Oct-2019 |
guenther |
Delete some obsolete debugging #ifdefs blocks
ok mlarkin@, mpi@, krw@, deraadt@
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.10 |
|
05-Oct-2019 |
guenther |
Delete some obsolete debugging #ifdefs blocks
ok mlarkin@, mpi@, krw@, deraadt@
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.9 |
|
06-Aug-2019 |
guenther |
Factor out TEXTREL mprotecting from the per-arch files into _dl_rtld(), hiding the actual grotty bits in inline functions
ok mpi@
|
#
1.8 |
|
04-Aug-2019 |
guenther |
Simplify _dl_find_symbol(). Currently, it returns three values: - the symbol it found, returned via the second argument - the base offset of the the object it was found in, via the return value - optionally: the object it was found in, returned via the last argument
Instead, return a struct with the symbol and object pointers and let the caller get the base offset from the object's obj_base member. On at least aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this is passed in registers.
ok mpi@, kettenis@
|
Revision tags: OPENBSD_6_5_BASE
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.7 |
|
16-Nov-2018 |
guenther |
Finish ld.so's transition to GNU_RELRO: eliminate support for using __got_{start,end} to find a region to mark read-only. It was only used for binaries that didn't have a GNU_RELRO segment, but all archs have been using that for over a year. Since support for insecure-PLT layouts on powerpc and alpha have been removed, all archs handle GNU_RELRO the same way and the support can be moved from the MD code to the MI code.
ok mpi@
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.6 |
|
25-Oct-2018 |
guenther |
The compilers already put static arrays in .rodata when not written to; marking them const will keep a source change from silently moving them back to .data
ok deraadt@ kettenis@
|
Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|
#
1.5 |
|
21-Dec-2017 |
kettenis |
Implement missing bits to support lazy binding. Note that the code deliberately does not save the floating-point argument registers before calling _dl_bind(). Doing so would force an FPU context switch upon every function call through the PLT. But since we compile ld.so with -march=armv8-a+nofp+nosimd this is safe since nothing in the _dl_bind() codepath uses he FPU registers.
ok guenther@, drahn@
|
#
1.4 |
|
24-Oct-2017 |
guenther |
R_AARCH64_NONE should be zero, not 256. The latter was a deprecated assignment and isn't used by clang/lld.
ok jsg@
|
Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.3 |
|
24-Jan-2017 |
guenther |
On fatal errors, kill ourselves with thrkill(0,9,NULL) instead of simply exiting, via helper functions _dl_die(), _dl_diedie(), and _dl_oom().
prompted by a complaint from jsing@ ok jsing@ deraadt@
|
#
1.2 |
|
23-Jan-2017 |
guenther |
Fix format string mismatches
testing assistance patrick@
|
#
1.1 |
|
11-Jan-2017 |
patrick |
Add support for AArch64.
|