[perl #33892] Add Interix support
Todd Vierling [Fri, 21 Jan 2005 14:36:31 +0000 (14:36 +0000)]
From: Todd Vierling (via RT) <perlbug-followup@perl.org>
Message-ID: <rt-3.0.11-33892-106280.17.6407478352545@perl.org>

(except the Configure chunk)
(and bump version numbers of modules)

p4raw-id: //depot/perl@23849

MANIFEST
Makefile.SH
hints/interix.sh [new file with mode: 0644]
lib/ExtUtils/MM_Unix.pm
lib/File/Find.pm
lib/File/Temp.pm
t/io/openpid.t
t/op/groups.t

index dbc95f7..7ace81f 100644 (file)
--- 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
index 859b328..1844c39 100644 (file)
@@ -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 (file)
index 0000000..74f5a52
--- /dev/null
@@ -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
index 33bb5dc..678c441 100644 (file)
@@ -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
index e25d9d8..f2cecc1 100644 (file)
@@ -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
index 4b92033..490e9e4 100644 (file)
@@ -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<safe_level> is set to MEDIUM or higher.
 
 {
   my $TopSystemUID = 10;
+  $TopSystemUID = 197108 if $^O eq 'interix'; # "Administrator"
   sub top_system_uid {
     my $self = shift;
     if (@_) {
index c6ed840..23d75ef 100755 (executable)
@@ -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"];
index 695f989..6110fb8 100755 (executable)
@@ -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 {