#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include <dlfcn.h>
#include <smop/base.h>
void* load_so(char* filename) {
void* handle = dlopen(filename,RTLD_LAZY | RTLD_GLOBAL);
if (!handle) {
printf("Loader.load(%s): %s\n",filename,dlerror());
abort();
}
}
MODULE = SMOP::Embed PACKAGE = SMOP::Embed
void
load(char* filename)
CODE:
load_so(filename);
void
load_and_run(char* filename)
CODE:
void* handle = load_so(filename);
void* (*run)() = dlsym(handle,"run");
run();