Craig A. Berry wrote:
At 5:14 PM -0600 2/15/05, John E. Malmberg wrote:

On Tue, 15 Feb 2005, Craig Berry wrote:


The global PL_osname is set in S_init_predump_symbols in perl.c, which is
called from S_parse_body when a Perl script is compiled.  If you put in
your own value in start-up code, I'm pretty sure it will get overwritten
later.  You could stick some code in S_init_predump_symbols to check for
a logical name and reset accordingly.  That might be a little dangerous
since we don't really know what side effects there might be to dynamically
changing the OS name.

Apparently the OS name is dynamically set now by a perl script, config.p*, and I can not find a pre-compiled version of it. So what I think I might try is modifying that script to change the OS type and see what happens.

That's not dynamic in the sense of being set at run time. Config is hard-wired to return the same value that's in config.h:

$ perl -"V:osname"
osname='VMS';

config.h has the C macro OSNAME, which is in turn used by
S_init_predump_symbols as I mentioned above.  Config the Perl module
and config.h the C header both get their values from config.sh, which
is generated at configuration time by configure.com.

I did a search of the source code before I posted, while the osname macro is defined in config.h, I can not find anything in the perl .C files that reference any of the osname macros in any of the .H files, or any macros that would hide such references.


I will have to look at the S_init_predump_symbols to see if that gives me any more clues.

Thanks,
-John
Personal Opinion Only

Reply via email to