If you wish to have the original 3.1.2 efun:: behavior, simply add a line to master.c that looks like this:
int valid_override(string file, string efun) { return 1; }
Here is an example valid_override that is more restrictive:
int
valid_override(string file, string name)
{
if (file == "/adm/obj/simul_efun") {
return 1;
}
if (name == "destruct")
return 0;
if (name == "shutdown")
return 0;
if (name == "snoop")
return 0;
if (name == "exec")
return 0;
return 1;
}