open(EM, ">embed.h") || die "Can't create embed.h: $!\n";
print EM <<'END';
-/* This file is derived from global.sym and interp.sym */
+/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ This file is derived from global.sym and interp.sym
+ Any changes made here will be lost
+*/
/* (Doing namespace management portably in C is really gross.) */
+/* EMBED has no run-time penalty, but helps keep the Perl namespace
+ from colliding with that used by other libraries pulled in
+ by extensions or by embedding perl. Allow a cc -DNO_EMBED
+ override, however, to keep binary compatability with previous
+ versions of perl.
+*/
+#ifndef NO_EMBED
+# define EMBED 1
+#endif
+
#ifdef EMBED
/* globals we need to hide from the world */
#ifdef MULTIPLICITY
+/* Undefine symbols that were defined by EMBED. Somewhat ugly */
+
+#undef curcop
+#undef envgv
+#undef siggv
+#undef stack
+#undef tainting
+
END
open(INT, "<interp.sym") || die "Can't open interp.sym: $!\n";