tools: add userspace linker table sandbox

Add a userspace sandbox to allow easy experimentation and
test extensions with linker tables, section ranges and the
new section core definitions.

The userspace sandbox tries to mimic the Linux kernel development
flow as much as possible, it however relies on and uses libc. Support
is currently only provided to x86_64.

v5:

o moves tools/include/linux/printk.h to tools
  linker-table/include/linux/printk.h -- we cannot generalize this
  just yet, more work is needed in terms of providing a namespace for
  headers for types of ports of kernel functionality to userspace.

o Adjust code according to the latest discussions for the linker
  tables API (section name macros are now gone).

v4: this patch is new in this series -- added to the kenrel as
    suggested by Boris, as otherwise it'd be really hard to keep
    an external userspace repository in sync.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
71 files changed