extern c on init and toplevel