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:
Norman Feske
2016-12-23 12:57:29 +01:00
parent 5c186cdc1d
commit 9ea4a491d6
3 changed files with 12 additions and 102 deletions

View File

@ -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
*/
*;
};