emit glibcname in glibc.spec
[glibc.git] / dlfcn / dlclose.c
blob3ddedcffbe388320ad76faf505644b5d6d002818
1 /* Close a handle opened by `dlopen'.
2 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2004
3 Free Software Foundation, Inc.
4 This file is part of the GNU C Library.
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, write to the Free
18 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19 02111-1307 USA. */
21 #include <dlfcn.h>
23 #if !defined SHARED && defined IS_IN_libdl
25 int
26 dlclose (void *handle)
28 return __dlclose (handle);
31 #else
33 static void
34 dlclose_doit (void *handle)
36 _dl_close (handle);
39 int
40 __dlclose (void *handle)
42 # ifdef SHARED
43 if (__builtin_expect (_dlfcn_hook != NULL, 0))
44 return _dlfcn_hook->dlclose (handle);
45 # endif
47 return _dlerror_run (dlclose_doit, handle) ? -1 : 0;
49 # ifdef SHARED
50 strong_alias (__dlclose, dlclose)
51 # endif
52 #endif