tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

the __ namespace in the kernel



Hi,

In an attempt to isolate the rump virtual kernel namespace from the
process hosting it we now bulk-rename all the symbols to have a "rumpns"
prefix.  This allows e.g. problib to exist both in the application and
the "kernel".

Unfortunately, there's a but: our toolchain generates some unresolved
symbols which are supposed to be satisfied by linking libgcc.  Those
cannot be renamed, or fail will result.  Luckily, almost all toolchain
symbols are in the __ namespace.  The exceptions are _GLOBAL_OFFSET_TABLE
and a few quirks for mips and hppa (look at src/sys/rump/Makefile.rump
if feeling curious).

However, there are a kernel few symbols in the __ namespace (I checked
i386).  These are listed below.  To solve the issue, I propose simply
to remove one underscore.  Notably, byte swap and simplelock are MD and
shared with userspace, so if it's a sunny day outside, I might just
let those two slide to avoid a macro crusade and/or other trickery.
Can anyone think of any sensible reasons to object?  We might need
something special for pcc, but I don't see why the pcc toolchain couldn't
be fitted under a similar __ regime.

__ symbols:
__byte_swap_u16_variable
__byte_swap_u32_variable
__cpu_simple_lock
__cpu_simple_lock_init
__cpu_simple_lock_try
__cpu_simple_unlock
__kernassert
__secmodel_none
__sigtimedwait1
__wdccommand_done
__wdccommand_done_end
__wdccommand_intr
__wdccommand_kill_xfer
__wdccommand_start
__wdcerror
__wdcwait
__wdcwait_reset
__wdstart


Home | Main Index | Thread Index | Old Index