diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2023-11-18 16:26:18 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2023-11-18 16:26:18 +0000 |
commit | eebaec8bf69b2db1088ab7a84b8bc96a3d02473e (patch) | |
tree | 01c4cdb241357ce61e341e655dd01bce0c5d750d /lib/csu/powerpc/md_init.h | |
parent | 9039430940e09de13f4467d9fd1a12296a6746f4 (diff) |
crt0 uses a helper function in a MD src/libexec/ld.so .h file (rather than
reproducing the relevant defines and code in a different place) to perform
minor relocations. If things go very wrong, it would call _dl_exit() --
a locally defined crt0 function which is syscall exit(2). We don't need
to call exit(2) for this obscure case which doesn't happen and provides no
debugging information. An 'abort' is going to provide better information.
So let's change the function name to _dso_abort() and make it a single
illegal instruction.
ok guenther
Diffstat (limited to 'lib/csu/powerpc/md_init.h')
-rw-r--r-- | lib/csu/powerpc/md_init.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/csu/powerpc/md_init.h b/lib/csu/powerpc/md_init.h index fa4a3f514fb..7c206e640b2 100644 --- a/lib/csu/powerpc/md_init.h +++ b/lib/csu/powerpc/md_init.h @@ -1,4 +1,4 @@ -/* $OpenBSD: md_init.h,v 1.11 2020/10/15 16:30:23 deraadt Exp $ */ +/* $OpenBSD: md_init.h,v 1.12 2023/11/18 16:26:16 deraadt Exp $ */ /*- * Copyright (c) 2001 Ross Harvey @@ -119,10 +119,8 @@ __asm( \ " \n" \ " .text \n" \ " .align 2 \n" \ -" .globl _dl_exit \n" \ -" .type _dl_exit, @function \n" \ -"_dl_exit: \n" \ -" li %r0, " STR(SYS_exit) " \n" \ -" sc \n" \ +" .globl _csu_abort \n" \ +" .type _csu_abort, @function \n" \ +"_csu_abort: \n" \ " .long 0 # illegal \n" \ ) |