// Matrix Construct // // Copyright (C) Matrix Construct Developers, Authors & Contributors // Copyright (C) 2016-2019 Jason Volk // // Permission to use, copy, modify, and/or distribute this software for any // purpose with or without fee is hereby granted, provided that the above // copyright notice and this permission notice is present in all copies. The // full license for this software is available in the LICENSE file. // This file is platform specific. It is conditionally compiled and included // in libircd glibc+ELF supporting environments. Do not rely on these // definitions being available on all platforms. #include objname, e->errstring }; throw ircd::mods::error { "%s in %s (%d) %s", occasion, e->objname, errcode, e->errstring, }; } /////////////////////////////////////////////////////////////////////////////// // // symbolic dlsym hook // #ifdef IRCD_MODS_HOOK_DLSYM extern "C" void * __libc_dlsym(void *, const char *); extern "C" void * dlsym(void *const handle, const char *const symbol) { #ifdef RB_DEBUG_MODS_HOOK_DLSYM ircd::log::debug { ircd::mods::log, "handle:%p symbol lookup '%s'", handle, symbol }; #endif return __libc_dlsym(handle, symbol); } #endif IRCD_MODS_HOOK_DLSYM