From: Todd Vierling Date: Fri, 21 Jan 2005 14:36:31 +0000 (+0000) Subject: [perl #33892] Add Interix support X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0c52c6a9db5934c6cadc50a4a66634da7bea4268;p=p5sagit%2Fp5-mst-13.2.git [perl #33892] Add Interix support From: Todd Vierling (via RT) Message-ID: (except the Configure chunk) (and bump version numbers of modules) p4raw-id: //depot/perl@23849 --- diff --git a/MANIFEST b/MANIFEST index dbc95f7..7ace81f 100644 --- a/MANIFEST +++ b/MANIFEST @@ -970,6 +970,7 @@ hints/gnu.sh Hints for named architecture hints/greenhills.sh Hints for named architecture hints/hpux.sh Hints for named architecture hints/i386.sh Hints for named architecture +hints/interix.sh Hints for named architecture hints/irix_4.sh Hints for named architecture hints/irix_5.sh Hints for named architecture hints/irix_6_0.sh Hints for named architecture diff --git a/Makefile.SH b/Makefile.SH index 859b328..1844c39 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -76,6 +76,10 @@ true) netbsd*|freebsd[234]*|openbsd*) linklibperl="-L. -lperl" ;; + interix*) + linklibperl="-L. -lperl" + shrpldflags="$shrpldflags -Wl,--image-base,0x57000000" + ;; aix*) shrpldflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:perl.exp" case "$osvers" in diff --git a/hints/interix.sh b/hints/interix.sh new file mode 100644 index 0000000..74f5a52 --- /dev/null +++ b/hints/interix.sh @@ -0,0 +1,26 @@ +# hints/interix.sh +# +# Please check with tech-pkg@netbsd.org before making modifications +# to this file. + +cc='gcc' +cccdlflags="-DPIC $cccdlflags" +ccdlflags='-Wl,-E' +ccflags="-D_ALL_SOURCE $ccflags" +d_poll="$undef" +ld='gcc' +lddlflags="-shared $lddlflags" +rpathflag='-Wl,-R' +sharpbang='#!' +usenm='false' + +# This script UU/usethreads.cbu will get 'called-back' by Configure +# after it has prompted the user for whether to use threads. +cat > UU/usethreads.cbu <<'EOCBU' +case "$usethreads" in +$define|true|[yY]*) + ccflags="-D_REENTRANT $ccflags" + libswanted="$libswanted pthread" + ;; +esac +EOCBU diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm index 33bb5dc..678c441 100644 --- a/lib/ExtUtils/MM_Unix.pm +++ b/lib/ExtUtils/MM_Unix.pm @@ -13,14 +13,14 @@ use DirHandle; use vars qw($VERSION @ISA $Is_OS2 $Is_VMS $Is_Win32 $Is_Win95 $Is_Dos $Is_VOS $Is_QNX $Is_AIX $Is_OSF $Is_IRIX $Is_NetBSD $Is_BSD - $Is_SunOS4 $Is_Solaris $Is_SunOS + $Is_SunOS4 $Is_Solaris $Is_SunOS $Is_Interix $Verbose %pm %Config_Override ); use ExtUtils::MakeMaker qw($Verbose neatvalue); -$VERSION = '1.46'; +$VERSION = '1.46_01'; require ExtUtils::MM_Any; @ISA = qw(ExtUtils::MM_Any); @@ -36,10 +36,11 @@ $Is_AIX = $^O eq 'aix'; $Is_OSF = $^O eq 'dec_osf'; $Is_IRIX = $^O eq 'irix'; $Is_NetBSD = $^O eq 'netbsd'; +$Is_Interix = $^O eq 'interix'; $Is_SunOS4 = $^O eq 'sunos'; $Is_Solaris = $^O eq 'solaris'; $Is_SunOS = $Is_SunOS4 || $Is_Solaris; -$Is_BSD = $^O =~ /^(?:free|net|open)bsd|bsdos$/; +$Is_BSD = $^O =~ /^(?:free|net|open)bsd|bsdos|interix$/; =head1 NAME @@ -1084,7 +1085,7 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) blibdirs.ts $(EXPORT_LIST) $ my $libs = '$(LDLOADLIBS)'; - if ($Is_NetBSD && $Config{'useshrplib'}) { + if (($Is_NetBSD || $Is_Interix) && $Config{'useshrplib'}) { # Use nothing on static perl platforms, and to the flags needed # to link against the shared libperl library on shared perl # platforms. We peek at lddlflags to see if we need -Wl,-R diff --git a/lib/File/Find.pm b/lib/File/Find.pm index e25d9d8..f2cecc1 100644 --- a/lib/File/Find.pm +++ b/lib/File/Find.pm @@ -3,7 +3,7 @@ use 5.006; use strict; use warnings; use warnings::register; -our $VERSION = '1.08'; +our $VERSION = '1.09'; require Exporter; require Cwd; @@ -1236,7 +1236,7 @@ $File::Find::current_dir = File::Spec->curdir || '.'; $File::Find::dont_use_nlink = 1 if $^O eq 'os2' || $^O eq 'dos' || $^O eq 'amigaos' || $^O eq 'MSWin32' || - $^O eq 'cygwin' || $^O eq 'epoc' || $^O eq 'qnx' || + $^O eq 'interix' || $^O eq 'cygwin' || $^O eq 'epoc' || $^O eq 'qnx' || $^O eq 'nto'; # Set dont_use_nlink in your hint file if your system's stat doesn't diff --git a/lib/File/Temp.pm b/lib/File/Temp.pm index 4b92033..490e9e4 100644 --- a/lib/File/Temp.pm +++ b/lib/File/Temp.pm @@ -175,7 +175,7 @@ Exporter::export_tags('POSIX','mktemp'); # Version number -$VERSION = '0.14'; +$VERSION = '0.14_01'; # This is a list of characters that can be used in random filenames @@ -2012,6 +2012,7 @@ The value is only relevant when C is set to MEDIUM or higher. { my $TopSystemUID = 10; + $TopSystemUID = 197108 if $^O eq 'interix'; # "Administrator" sub top_system_uid { my $self = shift; if (@_) { diff --git a/t/io/openpid.t b/t/io/openpid.t index c6ed840..23d75ef 100755 --- a/t/io/openpid.t +++ b/t/io/openpid.t @@ -23,6 +23,7 @@ plan tests => 10; use Config; $| = 1; $SIG{PIPE} = 'IGNORE'; +$SIG{HUP} = 'IGNORE' if $^O eq 'interix'; my $perl = which_perl(); $perl .= qq[ "-I../lib"]; diff --git a/t/op/groups.t b/t/op/groups.t index 695f989..6110fb8 100755 --- a/t/op/groups.t +++ b/t/op/groups.t @@ -133,7 +133,7 @@ for (split(' ', $()) { print "# gr = @gr\n"; -if ($^O =~ /^(?:uwin|cygwin|solaris)$/) { +if ($^O =~ /^(?:uwin|cygwin|interix|solaris)$/) { # Or anybody else who can have spaces in group names. $gr1 = join(' ', grep(!$did{$_}++, sort split(' ', join(' ', @gr)))); } else {