summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorChris Nandor <pudge@pobox.com>2001-03-10 09:23:55 -0500
committerJarkko Hietaniemi <jhi@iki.fi>2001-03-10 21:58:48 +0000
commitdb5fd3951bd11f350bba21084582656186031ed8 (patch)
tree29c15a65c98cabe91a1f6c6de6876a09dbfe2abf /ext
parent8269fa76d2972b02e844f46a88d03e7d25fb51d7 (diff)
downloadperl-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.PL3
-rw-r--r--ext/DynaLoader/dl_mac.xs10
-rw-r--r--ext/Errno/Errno_pm.PL65
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