tech-kern archive

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

Re: the __ namespace in the kernel



In article <20090401134314.GD4198%cs.hut.fi@localhost>,
Antti Kantee  <pooka%cs.hut.fi@localhost> wrote:
>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

I think these are very few, so I am fine to remove one underscore.

christos



Home | Main Index | Thread Index | Old Index