develooper Front page | perl.perl5.porters | Postings from September 2021

NetWare/ has been broken since 2009 - it should go

Thread Next
From:
Nicholas Clark
Date:
September 29, 2021 09:09
Subject:
NetWare/ has been broken since 2009 - it should go
Message ID:
YVQtP3GtiwkXxtpu@etla.org
The port in NetWare/ has been broken since 2009 and no-one has noticed.

Whodunnit? It was me! Oops. :-)

This commit:

commit 3df97b6db7f5849e9f9cfea221d12f5b011fc923
Author: Nicholas Clark <nick@ccl4.org>
Date:   Tue Jan 9 21:44:05 2007 +0000

    Make makedef.pl warnings and strict clean.

    p4raw-id: //depot/perl@29740

did this:

+use strict;


and added the first `use` statement to makedef.pl


This must have immediately broken the build on platforms such as AIX that
use Makefile.SH, as Rafael fixed my goof 3 days later:

commit c560d966b003defa80c2baa9fedc0a294d2b3afe
Author: Rafael Garcia-Suarez <rgarciasuarez@gmail.com>
Date:   Fri Jan 12 13:57:45 2007 +0000

    makedef.pl should be able to load "strict"

    p4raw-id: //depot/perl@29774

diff --git a/makedef.pl b/makedef.pl
index 12a17b37fc..6c0803317f 100644
--- a/makedef.pl
+++ b/makedef.pl
@@ -8,6 +8,8 @@
 #
 # reads global.sym, pp.sym, perlvars.h, intrpvar.h, thrdvar.h, config.h
 # On OS/2 reads miniperl.map and the previous version of perl5.def as well
+
+BEGIN { unshift @INC, "lib" }
 use strict;

 use vars qw($PLATFORM $CCTYPE $FILETYPE $CONFIG_ARGS $ARCHNAME $PATCHLEVEL);


I had assumed that I must have broken Win32 and NetWare with that first
commit, but seems that actually it took me another two years. We have
this *fix*:

commit c1effa61278e47c916466883d74905b04fedc388
Author: Nicholas Clark <nick@ccl4.org>
Date:   Wed Sep 23 16:20:37 2009 +0100

    Following b0e687f7 Win32 requires an -I..\lib for makedef.pl and x2p\*.PL

 win32/Makefile    | 6 +++---
 win32/makefile.mk | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)



because of this change 6 hours earlier:

commit b0e687f777617f7ff223559dbda04c4f53864b19
Author: Nicholas Clark <nick@ccl4.org>
Date:   Wed Sep 23 10:42:00 2009 +0100

    Restrict miniperl to just -I..., the split of $ENV{PERL5LIB}, and "." in @INC

diff --git a/perl.c b/perl.c
index 22c18ebde7..8691a15645 100644
--- a/perl.c
+++ b/perl.c
@@ -4058,6 +4058,10 @@ S_init_perllib(pTHX)
 #endif /* VMS */
     }

+#ifndef PERL_IS_MINIPERL
+    /* miniperl gets just -I..., the split of $ENV{PERL5LIB}, and "." in @INC
+       (and not the architecture specific directories from $ENV{PERL5LIB}) */
+
 /* Use the ~-expanded versions of APPLLIB (undocumented),
     ARCHLIB PRIVLIB SITEARCH SITELIB VENDORARCH and VENDORLIB
 */
@@ -4188,6 +4192,7 @@ S_init_perllib(pTHX)
                      INCPUSH_ADD_OLD_VERS|INCPUSH_ADD_ARCHONLY_SUB_DIRS
                      |INCPUSH_CAN_RELOCATE);
 #endif
+#endif /* !PERL_IS_MINIPERL */

     if (!PL_tainting)
        S_incpush(aTHX_ STR_WITH_LEN("."), 0);



VMS didn't start using makedef.pl until 2011, with commit 93ea32b83e27783a,
and WinCE was likely broken from that commit in 2009 until Nov 2012, when

commit 517bb5c6f8501a4a11c30ba6d11dbc96cc1f5ce2
Author: Konovalov, Vadim (Vadim)** CTR ** <vadim.konovalov@alcatel-lucent.com>
Date:   Thu Nov 1 14:03:34 2012 +0000

    Initial (incomplete) patch to start restoring WinCE build

    Subject: RE: status of WinCE Perl port in 2012
    From: "Konovalov, Vadim (Vadim)** CTR **" <vadim.konovalov@alcatel-lucent.com>
    Date: Tue, 23 Oct 2012 14:26:49 +0200
    Message-ID: <35BF8D9716175C43BB9D67CA60CC345E028EE0C899@FRMRSSXCHMBSC2.dc-m.alcatel-lucent.com>

 win32/Makefile.ce | 44 ++++++++++++++++++++++++++------------------
 win32/wince.c     | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 72 insertions(+), 20 deletions(-)


did this:

 perldll.def : $(HPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl
-       $(HPERL) -MCross -I..\lib create_perllibst_h.pl
-       $(HPERL) -MCross -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
+       $(HPERL) -I..\lib -MCross create_perllibst_h.pl
+       $(HPERL) -I..\lib -MCross -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
            CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) TARG_DIR=..\ > perldll.def



The last *real* update to NetWare/Makefile was this commit:

commit 1a95e36d92295cabb6c213a2f397c4cb7614d12c
Author: Jarkko Hietaniemi <jhi@iki.fi>
Date:   Fri Jun 28 13:15:17 2002 +0000

    NetWare update from Ananth Kesari.

    p4raw-id: //depot/perl@17376

 NetWare/Makefile                |  12 ++--
 NetWare/netware.h               |   6 ++
 NetWare/nw5.c                   | 149 ++++++++++++++++++++++++++++++++++++++--
 ext/DynaLoader/DynaLoader_pm.PL |  20 ++----
 lib/ExtUtils/MM_NW5.pm          |   8 +--
 5 files changed, 165 insertions(+), 30 deletions(-)


Hence NetWare/Makefile has been broken for at least 12 years, quite possibly
more like 20, and no-one has noticed.

Nicholas Clark

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About