From b612c6c4a11cdaad516e02409cedcc223dbe9558 Mon Sep 17 00:00:00 2001 From: kettenis <> Date: Sat, 28 Dec 2013 18:38:42 +0000 Subject: [PATCH] Move atexit(3) into crtbegin.c and certbeginS.c such that we can pass the right __dso_handle and have dlopen'ed shared objects run their atexit handlers when they get unloaded. This is what Linux does, and several ports depend on this behaviour (and will crash upon exit without this chang). Based on an earlier diff from matthew@ Tested by ajacoutot@ ok deraadt@ --- src/lib/libc/stdlib/atexit.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/lib/libc/stdlib/atexit.c b/src/lib/libc/stdlib/atexit.c index 52f1cf3c..049da326 100644 --- a/src/lib/libc/stdlib/atexit.c +++ b/src/lib/libc/stdlib/atexit.c @@ -1,4 +1,4 @@ -/* $OpenBSD: atexit.c,v 1.16 2013/06/02 21:08:36 matthew Exp $ */ +/* $OpenBSD: atexit.c,v 1.17 2013/12/28 18:38:42 kettenis Exp $ */ /* * Copyright (c) 2002 Daniel Hartmeier * All rights reserved. @@ -101,15 +101,6 @@ unlock: return (ret); } -/* - * Register a function to be performed at exit. - */ -int -atexit(void (*func)(void)) -{ - return (__cxa_atexit((void (*)(void *))func, NULL, NULL)); -} - /* * Call all handlers registered with __cxa_atexit() for the shared * object owning 'dso'.