diff options
author | Chris Nandor <pudge@pobox.com> | 2001-03-10 09:23:55 -0500 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-03-10 21:58:48 +0000 |
commit | db5fd3951bd11f350bba21084582656186031ed8 (patch) | |
tree | 29c15a65c98cabe91a1f6c6de6876a09dbfe2abf /ext | |
parent | 8269fa76d2972b02e844f46a88d03e7d25fb51d7 (diff) | |
download | perl-db5fd3951bd11f350bba21084582656186031ed8.tar.gz |
Portability fixes for Mac OS / bleadperl
Message-Id: <p05010401b6d02f70211f@[10.0.1.177]>
p4raw-id: //depot/perl@9099
Diffstat (limited to 'ext')
-rw-r--r-- | ext/B/defsubs_h.PL | 3 | ||||
-rw-r--r-- | ext/DynaLoader/dl_mac.xs | 10 | ||||
-rw-r--r-- | ext/Errno/Errno_pm.PL | 65 |
3 files changed, 47 insertions, 31 deletions
diff --git a/ext/B/defsubs_h.PL b/ext/B/defsubs_h.PL index 800bb2ca7d..da6566b0d7 100644 --- a/ext/B/defsubs_h.PL +++ b/ext/B/defsubs_h.PL @@ -21,7 +21,8 @@ foreach my $const (qw( } foreach my $file (qw(op.h cop.h)) { - open(OPH,"../../$file") || die "Cannot open ../../$file:$!"; + my $path = $^O eq 'MacOS' ? ":::$file" : "../../$file"; + open(OPH,"$path") || die "Cannot open $path:$!"; while (<OPH>) { doconst($1) if (/#define\s+(\w+)\s+([\(\)\|\dx]+)\s*(?:$|\/\*)/); diff --git a/ext/DynaLoader/dl_mac.xs b/ext/DynaLoader/dl_mac.xs index 136e6d58c3..5f48139c56 100644 --- a/ext/DynaLoader/dl_mac.xs +++ b/ext/DynaLoader/dl_mac.xs @@ -63,7 +63,7 @@ dl_load_file(filename, flags=0) Ptr mainAddr; Str255 errName; CODE: - DLDEBUG(1,fprintf(stderr,"dl_load_file(%s):\n", filename)); + DLDEBUG(1,PerlIO_printf(Perl_debug_log,"dl_load_file(%s):\n", filename)); err = GUSIPath2FSp(filename, &spec); if (!err) err = @@ -78,7 +78,7 @@ dl_load_file(filename, flags=0) RETVAL = connID; } else RETVAL = (ConnectionID) 0; - DLDEBUG(2,fprintf(stderr," libref=%d\n", RETVAL)); + DLDEBUG(2,PerlIO_printf(Perl_debug_log," libref=%d\n", RETVAL)); ST(0) = sv_newmortal() ; if (err) SaveError(aTHX_ "DynaLoader error [%d, %#s]", err, errName) ; @@ -94,13 +94,13 @@ dl_find_symbol(connID, symbol) OSErr err; Ptr symAddr; CFragSymbolClass symClass; - DLDEBUG(2,fprintf(stderr,"dl_find_symbol(handle=%x, symbol=%#s)\n", + DLDEBUG(2,PerlIO_printf(Perl_debug_log,"dl_find_symbol(handle=%x, symbol=%#s)\n", connID, symbol)); err = FindSymbol(connID, symbol, &symAddr, &symClass); if (err) symAddr = (Ptr) 0; RETVAL = (void *) symAddr; - DLDEBUG(2,fprintf(stderr," symbolref = %x\n", RETVAL)); + DLDEBUG(2,PerlIO_printf(Perl_debug_log," symbolref = %x\n", RETVAL)); ST(0) = sv_newmortal() ; if (err) SaveError(aTHX_ "DynaLoader error [%d]!", err) ; @@ -122,7 +122,7 @@ dl_install_xsub(perl_name, symref, filename="$Package") void * symref char * filename CODE: - DLDEBUG(2,fprintf(stderr,"dl_install_xsub(name=%s, symref=%x)\n", + DLDEBUG(2,PerlIO_printf(Perl_debug_log,"dl_install_xsub(name=%s, symref=%x)\n", perl_name, symref)); ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)())symref, filename))); diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL index dd165157f6..2d5a54b081 100644 --- a/ext/Errno/Errno_pm.PL +++ b/ext/Errno/Errno_pm.PL @@ -41,11 +41,19 @@ sub process_file { return; } } - while(<FH>) { - $err{$1} = 1 - if /^\s*#\s*define\s+(E\w+)\s+/; - } - close(FH); + + if ($^O eq 'MacOS') { + while(<FH>) { + $err{$1} = $2 + if /^\s*#\s*define\s+(E\w+)\s+(\d+)/; + } + } else { + while(<FH>) { + $err{$1} = 1 + if /^\s*#\s*define\s+(E\w+)\s+/; + } + } + close(FH); } my $cppstdin; @@ -90,6 +98,11 @@ sub get_files { # Some Linuxes have weird errno.hs which generate # no #file or #line directives $file{'/usr/include/errno.h'} = 1; + } elsif ($^O eq 'MacOS') { + # note that we are only getting the GUSI errno's here ... + # we might miss out on compiler-specific ones + $file{"$ENV{GUSI}include:sys:errno.h"} = 1; + } else { open(CPPI,"> errno.c") or die "Cannot open errno.c"; @@ -152,31 +165,33 @@ sub write_errno_pm { close(CPPI); + unless ($^O eq 'MacOS') { # trust what we have # invoke CPP and read the output - if ($^O eq 'VMS') { - my $cpp = "$Config{cppstdin} $Config{cppflags} $Config{cppminus}"; - $cpp =~ s/sys\$input//i; - open(CPPO,"$cpp errno.c |") or - die "Cannot exec $Config{cppstdin}"; - } elsif ($^O eq 'MSWin32') { - open(CPPO,"$Config{cpprun} $Config{cppflags} errno.c |") or - die "Cannot run '$Config{cpprun} $Config{cppflags} errno.c'"; - } else { - my $cpp = default_cpp(); - open(CPPO,"$cpp < errno.c |") - or die "Cannot exec $cpp"; - } + if ($^O eq 'VMS') { + my $cpp = "$Config{cppstdin} $Config{cppflags} $Config{cppminus}"; + $cpp =~ s/sys\$input//i; + open(CPPO,"$cpp errno.c |") or + die "Cannot exec $Config{cppstdin}"; + } elsif ($^O eq 'MSWin32') { + open(CPPO,"$Config{cpprun} $Config{cppflags} errno.c |") or + die "Cannot run '$Config{cpprun} $Config{cppflags} errno.c'"; + } else { + my $cpp = default_cpp(); + open(CPPO,"$cpp < errno.c |") + or die "Cannot exec $cpp"; + } - %err = (); + %err = (); - while(<CPPO>) { - my($name,$expr); - next unless ($name, $expr) = /"(.*?)"\s*\[\s*\[\s*(.*?)\s*\]\s*\]/; - next if $name eq $expr; - $err{$name} = eval $expr; + while(<CPPO>) { + my($name,$expr); + next unless ($name, $expr) = /"(.*?)"\s*\[\s*\[\s*(.*?)\s*\]\s*\]/; + next if $name eq $expr; + $err{$name} = eval $expr; + } + close(CPPO); } - close(CPPO); # Write Errno.pm |