Skip to content
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

[PATCH] perl5.005_61 cygwin port #430

Closed
p5pRT opened this issue Aug 25, 1999 · 2 comments
Closed

[PATCH] perl5.005_61 cygwin port #430

p5pRT opened this issue Aug 25, 1999 · 2 comments

Comments

@p5pRT
Copy link

p5pRT commented Aug 25, 1999

Migrated from rt.perl.org#1271 (status was 'resolved')

Searchable as RT1271$

@p5pRT
Copy link
Author

p5pRT commented Aug 25, 1999

From cwilson@cc865179-c.chmbl1.ga.home.com

Minor fixes and cleanup for the cygwin port (includes
patches previously submitted by Eric Fifer, which were
against 5.005_60).

Also implements a change to installperl and utils/perldoc.PL
so that installation of pod documentation files works on
systems with case-sensitive filenames but case-insensitive
directory names -- such as Win32 and cygwin.

Pod documentation is now installed in {installprivlib}/pod-docs
instead of {installprivlib}/pod.

Inline Patch
diff -urN perl5.005_61-orig/cygwin/Makefile.SHs perl5.005_61/cygwin/Makefile.SHs
--- perl5.005_61-orig/cygwin/Makefile.SHs	Sun Aug 01 16:25:26 1999
+++ perl5.005_61/cygwin/Makefile.SHs	Tue Aug 24 13:34:44 1999
@@ -132,6 +132,7 @@
 	;;
 *)
 $spitshell >>Makefile <<'!NO!SUBS!'
+cwobj = $(obj)
 
 # perl library
 $(LIBPERL)$(LIB_EXT): $& perl$(OBJ_EXT) $(cwobj)
diff -urN perl5.005_61-orig/ext/ByteLoader/byterun.h perl5.005_61/ext/ByteLoader/byterun.h
--- perl5.005_61-orig/ext/ByteLoader/byterun.h	Tue Jul 20 13:17:55 1999
+++ perl5.005_61/ext/ByteLoader/byterun.h	Tue Aug 24 13:34:44 1999
@@ -151,7 +151,12 @@
     OPt_COP		/* 10 */
 };
 
-EXT void byterun(pTHXo_ struct bytestream bs);
+#if defined(CYGWIN)
+extern
+#else
+EXT
+#endif
+void byterun(pTHXo_ struct bytestream bs);
 
 #define INIT_SPECIALSV_LIST STMT_START { \
 	PL_specialsv_list[0] = Nullsv; \
diff -urN perl5.005_61-orig/ext/SDBM_File/sdbm/sdbm.c perl5.005_61/ext/SDBM_File/sdbm/sdbm.c
--- perl5.005_61-orig/ext/SDBM_File/sdbm/sdbm.c	Tue Jul 20 13:17:56 1999
+++ perl5.005_61/ext/SDBM_File/sdbm/sdbm.c	Tue Aug 24 13:34:44 1999
@@ -128,7 +128,7 @@
  * open the files in sequence, and stat the dirfile.
  * If we fail anywhere, undo everything, return NULL.
  */
-#if defined(OS2) || defined(MSDOS) || defined(WIN32)
+#if defined(OS2) || defined(MSDOS) || defined(WIN32) || defined(CYGWIN)
 	flags |= O_BINARY;
 #	endif
 	if ((db->pagf = open(pagname, flags, mode)) > -1) {
diff -urN perl5.005_61-orig/hints/cygwin.sh perl5.005_61/hints/cygwin.sh
--- perl5.005_61-orig/hints/cygwin.sh	Sun Aug 01 16:25:26 1999
+++ perl5.005_61/hints/cygwin.sh	Tue Aug 24 13:34:44 1999
@@ -25,6 +25,7 @@
 useshrplib='true'
 libperl='libperl.a'
 dlext='dll'
+dynamic_ext=' '
 
 man1dir=/usr/local/man/man1
 man3dir=/usr/local/man/man3
diff -urN perl5.005_61-orig/installperl perl5.005_61/installperl
--- perl5.005_61-orig/installperl	Wed Jul 28 14:11:20 1999
+++ perl5.005_61/installperl	Tue Aug 24 13:53:08 1999
@@ -113,6 +113,7 @@
 # Shared library and dynamic loading suffixes.
 my $so = $Config{so};
 my $dlext = $Config{dlext};
+my $dlsrc = $Config{dlsrc};
 
 my $d_dosuid = $Config{d_dosuid};
 my $binexp = $Config{binexp};
@@ -161,14 +162,16 @@
   $perldll = 'perl56.' . $dlext if $Config{'ccflags'} =~ /PERL_OBJECT/i;
 }
 
--f $perldll || die "No perl DLL built\n";
+   if ($dlsrc != "dl_none.xs") {
+      -f $perldll || die "No perl DLL built\n";
 
 # Install the DLL
 
-safe_unlink("$installbin/$perldll");
-copy("$perldll", "$installbin/$perldll");
-chmod(0755, "$installbin/$perldll");
-}
+      safe_unlink("$installbin/$perldll");
+      copy("$perldll", "$installbin/$perldll");
+      chmod(0755, "$installbin/$perldll");
+   }
+} # if ($Is_W32 or $Is_Cygwin)
 
 # This will be used to store the packlist
 my $packlist = ExtUtils::Packlist->new("$installarchlib/.packlist");
@@ -365,19 +368,19 @@
     }
 }
 
-# Install pod pages.  Where? I guess in $installprivlib/pod.
+# Install pod pages.  Where? I guess in $installprivlib/pod-docs.
 
 unless ( $versiononly && !($installprivlib =~ m/\Q$]/)) {
-    mkpath("${installprivlib}/pod", 1, 0777);
+    mkpath("${installprivlib}/pod-docs", 1, 0777);
 
     # If Perl 5.003's perldiag.pod is there, rename it.
-    if (open POD, "${installprivlib}/pod/perldiag.pod") {
+    if (open POD, "${installprivlib}/pod-docs/perldiag.pod") {
 	read POD, $_, 4000;
 	close POD;
 	# Some of Perl 5.003's diagnostic messages ended with periods.
 	if (/^=.*\.$/m) {
-	    my ($from, $to) = ("${installprivlib}/pod/perldiag.pod",
-			       "${installprivlib}/pod/perldiag-5.003.pod");
+	    my ($from, $to) = ("${installprivlib}/pod-docs/perldiag.pod",
+			       "${installprivlib}/pod-docs/perldiag-5.003.pod");
 	    print "  rename $from $to";
 	    rename($from, $to)
 		or warn "Couldn't rename $from to $to: $!\n"
@@ -385,9 +388,10 @@
 	}
     }
 
-    foreach my $file (@pods) {
-	# $file is a name like  pod/perl.pod
-	copy_if_diff($file, "${installprivlib}/${file}");
+    for (@pods) {
+	# $_ is a name like  pod/perl.pod
+        (my $base = $_) =~ s#.*/##;
+	copy_if_diff($_, "${installprivlib}/pod-docs/${base}");
     }
 
 }
diff -urN perl5.005_61-orig/perl.h perl5.005_61/perl.h
--- perl5.005_61-orig/perl.h	Tue Aug 24 13:03:10 1999
+++ perl5.005_61/perl.h	Tue Aug 24 13:34:44 1999
@@ -2571,7 +2571,7 @@
 EXT struct perl_vars PL_Vars;
 EXT struct perl_vars *PL_VarsPtr INIT(&PL_Vars);
 #else /* PERL_CORE */
-#if !defined(__GNUC__) || !(defined(WIN32) || defined(CYGWIN))
+#if !defined(__GNUC__) || !defined(WIN32)
 EXT
 #endif /* WIN32 */
 struct perl_vars *PL_VarsPtr;
diff -urN perl5.005_61-orig/pp_sys.c perl5.005_61/pp_sys.c
--- perl5.005_61-orig/pp_sys.c	Tue Aug 24 13:03:12 1999
+++ perl5.005_61/pp_sys.c	Tue Aug 24 13:34:44 1999
@@ -4740,7 +4740,7 @@
 PP(pp_spwent)
 {
     djSP;
-#if defined(HAS_PASSWD) && defined(HAS_SETPWENT) && !defined(CYGWIN)
+#if defined(HAS_PASSWD) && defined(HAS_SETPWENT)
     setpwent();
 #   ifdef HAS_SETSPENT
     setspent();
diff -urN perl5.005_61-orig/t/io/fs.t perl5.005_61/t/io/fs.t
--- perl5.005_61-orig/t/io/fs.t	Tue Jul 20 13:18:12 1999
+++ perl5.005_61/t/io/fs.t	Tue Aug 24 13:34:44 1999
@@ -10,7 +10,7 @@
 use Config;
 
 $Is_Dosish = ($^O eq 'MSWin32' or $^O eq 'dos' or
-	      $^O eq 'os2' or $^O eq 'mint' or $^O =~ /cygwin/);
+	      $^O eq 'os2' or $^O eq 'mint');
 
 print "1..28\n";
 
diff -urN perl5.005_61-orig/t/io/tell.t perl5.005_61/t/io/tell.t
--- perl5.005_61-orig/t/io/tell.t	Tue Jul 20 13:18:12 1999
+++ perl5.005_61/t/io/tell.t	Tue Aug 24 13:34:44 1999
@@ -7,7 +7,7 @@
 $TST = 'tst';
 
 $Is_Dosish = ($^O eq 'MSWin32' or $^O eq 'dos' or
-	      $^O eq 'os2' or $^O eq 'mint' or $^O =~ /cygwin/);
+	      $^O eq 'os2' or $^O eq 'mint');
 
 open($TST, '../Configure') || (die "Can't open ../Configure");
 binmode $TST if $Is_Dosish;
diff -urN perl5.005_61-orig/t/lib/anydbm.t perl5.005_61/t/lib/anydbm.t
--- perl5.005_61-orig/t/lib/anydbm.t	Tue Aug 24 13:03:13 1999
+++ perl5.005_61/t/lib/anydbm.t	Tue Aug 24 13:34:45 1999
@@ -13,7 +13,7 @@
 print "1..12\n";
 
 $Is_Dosish = ($^O eq 'amigaos' || $^O eq 'MSWin32' or $^O eq 'dos' or
-	      $^O eq 'os2' or $^O eq 'mint' or $^O =~ /cygwin/);
+	      $^O eq 'os2' or $^O eq 'mint');
 
 unlink <Op_dbmx*>;
 
diff -urN perl5.005_61-orig/t/op/stat.t perl5.005_61/t/op/stat.t
--- perl5.005_61-orig/t/op/stat.t	Tue Jul 20 13:18:15 1999
+++ perl5.005_61/t/op/stat.t	Tue Aug 24 13:34:45 1999
@@ -13,7 +13,7 @@
 
 $Is_MSWin32 = $^O eq 'MSWin32';
 $Is_Dos = $^O eq 'dos';
-$Is_Dosish = $Is_Dos || $^O eq 'os2' || $Is_MSWin32 || $^O =~ /cygwin/;
+$Is_Dosish = $Is_Dos || $^O eq 'os2' || $Is_MSWin32;
 chop($cwd = ($Is_MSWin32 ? `cd` : `pwd`));
 
 $DEV = `ls -l /dev` unless $Is_Dosish;
diff -urN perl5.005_61-orig/utils/perldoc.PL perl5.005_61/utils/perldoc.PL
--- perl5.005_61-orig/utils/perldoc.PL	Thu Jul 29 03:16:59 1999
+++ perl5.005_61/utils/perldoc.PL	Tue Aug 24 13:59:10 1999
@@ -276,8 +276,8 @@
 		     $ret = check_file $dir,"$s.cmd")
 		or ( ($Is_MSWin32 or $Is_Dos or $^O eq 'os2') and
 		     $ret = check_file $dir,"$s.bat")
-		or ( $ret = check_file "$dir/pod","$s.pod")
-		or ( $ret = check_file "$dir/pod",$s)
+		or ( $ret = check_file "$dir/pod-docs","$s.pod")
+		or ( $ret = check_file "$dir/pod-docs",$s)
 	) {
 	    return $ret;
 	}
@@ -708,6 +708,10 @@
 =cut
 
 #
+# Version 1.15: Tue Aug 24 01:50:20 EST 1999
+#       Charles Wilson <cwilson@ece.gatech.edu>
+#	changed /pod/ directory to /pod-docs/
+#         to support cygwin/win32
 # Version 1.14: Wed Jul 15 01:50:20 EST 1998
 #       Robin Barker <rmb1@cise.npl.co.uk>
 #	-strict, -w cleanups
Perl Info


Site configuration information for perl 5.00561:

Configured by cwilson at Wed Aug 25 02:04:53  1999.

Summary of my perl5 (revision 5.0 version 5 subversion 61) configuration:
  Platform:
    osname=cygwin_nt-4.0, osvers=20.1, archname=cygwin
    uname='cygwin_nt-4.0 belgarion 20.1 (0.411) 1998-12-19 17:47:08 i586 unknown '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
    use64bits=undef usemultiplicity=undef
  Compiler:
    cc='gcc', optimize='-O', gccversion=egcs-2.91.66 19990314 (egcs-1.1.2 release)
    cppflags='-DCYGWIN -I/usr/include -I/usr/local/include -I/usr/local/include'
    ccflags ='-DCYGWIN -I/usr/include -I/usr/local/include -I/usr/local/include'
    stdchar='char', d_stdstdio=undef, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='ld2', ldflags ='-L/usr/i586-cygwin32/lib -L/usr/lib -L/usr/local/lib'
    libpth=/usr/i586-cygwin32/lib /usr/lib /usr/local/lib
    libs=-lcygwin -lm -lkernel32
    libc=/usr/i586-cygwin32/lib/libc.a, so=dll, useshrplib=true, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_cygwin.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-L/usr/local/lib -L/usr/i586-cygwin32/lib -L/usr/lib'

Locally applied patches:
    


@INC for perl 5.00561:
    /usr/local/lib/perl5/5.00561/cygwin
    /usr/local/lib/perl5/5.00561
    /usr/local/lib/site_perl/5.00561/cygwin
    /usr/local/lib/site_perl
    .


Environment for perl 5.00561:
    HOME=/e/Users/cwilson
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/bin:/usr/local/bin:/usr/X11R6.4/bin
    PERL_BADLANG (unset)
    SHELL=/bin/bash

@p5pRT
Copy link
Author

p5pRT commented Aug 25, 1999

From [Unknown Contact. See original ticket]

Hi there,
I have an observation concerning your patch. There's a hunk in it
addressing a function proptotype in /ext/ByteLoader/byterun.h This is
not the only file to patch, you need to patch bytecode.pl, the script
that generates /ext/ByteLoader/byterun.h The header file is there just
for those guys that don't have a running Perl at the moment of building
a new release.

Here's the patch
(to be applied by patch -p3 -N < <patch_file>)

Inline Patch
--- /d/perl5.005_61.orig/bytecode.pl	Tue Jul 20 20:17:52 1999
+++ /d/perl5.005_61/bytecode.pl	Tue Aug 24 16:44:18 1999
@@ -234,7 +234,12 @@
 printf BYTERUN_H "    OPt_%s\t\t/* %d */\n};\n\n", $optype[$i], $i;
 
 print BYTERUN_H <<'EOT';
-EXT void byterun(pTHXo_ struct bytestream bs);
+#if defined(CYGWIN)
+extern
+#else
+EXT
+#endif
+void byterun(pTHXo_ struct bytestream bs);
 
 #define INIT_SPECIALSV_LIST STMT_START { \
 EOT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant