mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-17 06:38:28 +00:00
ld: generate symbol map from base/lib/symbols/ld
This patch removes the manually maintained symbol map from the dynamic linker. This way, the symbol map stays in sync with the ABI and - more importantly - no longer uses wildcards. So the symbols exported by the dynamic linker are strictly limited by the ABI. Issue #2190
This commit is contained in:
@ -1,100 +0,0 @@
|
||||
/*
|
||||
* Symbols exported by the ld.lib.so
|
||||
*/
|
||||
{
|
||||
global:
|
||||
|
||||
/* We export all C++ symbols with prefix Genode::, as well as all vtables,
|
||||
* type informations and operators new and delete
|
||||
*/
|
||||
extern "C++" {
|
||||
Genode::*;
|
||||
*typeinfo*;
|
||||
vtable*;
|
||||
init_exception_handling*;
|
||||
operator*new*;
|
||||
operator*delete*;
|
||||
genode_atexit*;
|
||||
genode_exit*;
|
||||
genode___cxa_finalize*;
|
||||
genode_envp;
|
||||
genode_argv;
|
||||
genode_argc;
|
||||
};
|
||||
__dynamic_cast;
|
||||
|
||||
/*
|
||||
* Symbols for calls generated by the compiler (i.e., on ARM), and
|
||||
* provided by the C++ runtime.
|
||||
*/
|
||||
memcpy;
|
||||
memset;
|
||||
memmove;
|
||||
|
||||
/*
|
||||
* Debugging
|
||||
*/
|
||||
wait_for_continue;
|
||||
stdout_write;
|
||||
stdout_reconnect;
|
||||
|
||||
/* Testing */
|
||||
extern "C++" {
|
||||
__ldso_raise_exception*;
|
||||
};
|
||||
|
||||
/* GNU verbose terminate handler */
|
||||
extern "C++" { __gnu_cxx::__verbose_terminate_handler*; };
|
||||
|
||||
extern "C++" { std::terminate*; };
|
||||
extern "C++" { std::bad_exception*; };
|
||||
extern "C++" { std::exception*; };
|
||||
extern "C++" { std::uncaught_exception*; };
|
||||
|
||||
/* x86 */
|
||||
__cxa*;
|
||||
_Unwind_Complete;
|
||||
_Unwind_DeleteException;
|
||||
_Unwind_Resume;
|
||||
__gxx_personality_v0;
|
||||
dl_iterate_phdr;
|
||||
|
||||
/* ARM */
|
||||
__aeabi_*;
|
||||
dl_unwind_find_exidx;
|
||||
|
||||
/*
|
||||
* Kernel specific symbols
|
||||
*/
|
||||
|
||||
/* Fiasco.OC */
|
||||
l4_utcb_wrap;
|
||||
__l4_sys_direct_sycalls;
|
||||
l4_atomic_cmpxchg;
|
||||
|
||||
extern "C++" {
|
||||
main_thread_utcb*;
|
||||
};
|
||||
|
||||
/* Linux */
|
||||
lx_syscall;
|
||||
|
||||
/* Linux hybrid */
|
||||
lx_environ;
|
||||
|
||||
/* Base HW */
|
||||
extern "C++" {
|
||||
Kernel::*;
|
||||
};
|
||||
|
||||
/* Pistachio */
|
||||
__L4_ThreadSwitch;
|
||||
__L4_Ipc;
|
||||
|
||||
local:
|
||||
|
||||
/*
|
||||
* Everything else is local
|
||||
*/
|
||||
*;
|
||||
};
|
Reference in New Issue
Block a user