New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Interix support #7760
Comments
From @tvierlingCreated by @tvierlingThe following diff implements support for Interix (Windows Services for UNIX) Diff is against 5.8.6. Note that platform tracking info at the bottom of Inline Patch--- hints/interix.sh.orig 2005-01-21 09:27:04.000000000 -0500
+++ hints/interix.sh 2005-01-21 09:27:04.000000000 -0500
@@ -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
--- lib/ExtUtils/MM_Unix.pm.orig 2005-01-21 09:24:09.000000000 -0500
+++ lib/ExtUtils/MM_Unix.pm 2005-01-21 09:25:56.000000000 -0500
@@ -12,7 +12,7 @@
use vars qw($VERSION @ISA
$Is_Mac $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_QNX $Is_AIX $Is_OSF $Is_IRIX $Is_NetBSD $Is_BSD $Is_Interix
$Is_SunOS4 $Is_Solaris $Is_SunOS
$Verbose %pm %static
%Config_Override
@@ -37,10 +37,11 @@
$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
@@ -1120,7 +1121,7 @@
my $libs = '$(LDLOADLIBS)';
- if ($Is_NetBSD) {
+ if ($Is_NetBSD || $Is_Interix) {
# 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
--- lib/File/Find.pm.orig 2005-01-21 09:27:20.000000000 -0500
+++ lib/File/Find.pm 2005-01-21 09:27:40.000000000 -0500
@@ -1221,7 +1221,7 @@
$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
--- lib/File/Temp.pm.orig 2005-01-21 09:28:12.000000000 -0500
+++ lib/File/Temp.pm 2005-01-21 09:28:57.000000000 -0500
@@ -2012,6 +2012,7 @@
{
my $TopSystemUID = 10;
+ $TopSystemUID = 197108 if $^O eq 'interix'; # "Administrator"
sub top_system_uid {
my $self = shift;
if (@_) {
--- t/io/openpid.t.orig 2005-01-21 09:29:19.000000000 -0500
+++ t/io/openpid.t 2005-01-21 09:29:28.000000000 -0500
@@ -23,6 +23,7 @@
use Config;
$| = 1;
$SIG{PIPE} = 'IGNORE';
+$SIG{HUP} = 'IGNORE' if $^O eq 'interix';
my $perl = which_perl();
$perl .= qq[ "-I../lib"];
--- t/op/groups.t.orig 2005-01-21 09:29:44.000000000 -0500
+++ t/op/groups.t 2005-01-21 09:29:53.000000000 -0500
@@ -133,7 +133,7 @@
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 {
--- Configure.orig 2005-01-21 09:22:04.000000000 -0500
+++ Configure 2005-01-21 09:22:17.000000000 -0500
@@ -7852,7 +7852,7 @@
solaris)
xxx="-R $shrpdir"
;;
- freebsd|netbsd|openbsd)
+ freebsd|netbsd|openbsd|interix)
xxx="-Wl,-R$shrpdir"
;;
bsdos|linux|irix*|dec_osf)
--- Makefile.SH.orig 2005-01-21 09:26:16.000000000 -0500
+++ Makefile.SH 2005-01-21 09:26:48.000000000 -0500
@@ -72,6 +72,10 @@
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 Perl Info
|
From @TuxOn 21 Jan 2005 14:36:31 -0000, Todd Vierling (via RT)
This part separately committed with change #23848 on Pumpkin's request -- |
The RT System itself - Status changed from 'new' to 'open' |
From @rgsTodd Vierling (via RT) wrote:
Thanks, I've applied your patch to the development version of perl as Could you test whether the development version (currently self-known as I've also bumped the version numbers of File::Temp and ExtUtils::MM_Unix -- |
@rgs - Status changed from 'open' to 'resolved' |
From @tvierlingOn Fri, 21 Jan 2005, Rafael Garcia-Suarez via RT wrote:
Wow, that was fast. I'll do that and respond again to this ticket within -- |
From @tvierlingOn Fri, 21 Jan 2005, Rafael Garcia-Suarez via RT wrote:
With one additional change (see below), I've verified that "make test" on ext/IO/t/io_sock..........................FAILED at test 18 I'm trying to track that one down and understand it, but this failure Inline Patch--- hints/interix.sh.orig Fri Jan 21 14:34:38 2005
+++ hints/interix.sh Fri Jan 21 14:34:55 2005
@@ -12,6 +12,7 @@
lddlflags="-shared $lddlflags"
rpathflag='-Wl,-R'
sharpbang='#!'
+usemymalloc='false'
usenm='false'
# This script UU/usethreads.cbu will get 'called-back' by Configure
-- -- Todd Vierling <tv@duh.org> <tv@pobox.com> |
From @rgsTodd Vierling wrote:
Thanks, applied as change #23870 to bleadperl. |
Migrated from rt.perl.org#33892 (status was 'resolved')
Searchable as RT33892$
The text was updated successfully, but these errors were encountered: