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

pod2usage and podchecker not being built on Win32/MSVC 2019 #17145

Closed
p5pRT opened this issue Sep 5, 2019 · 7 comments
Closed

pod2usage and podchecker not being built on Win32/MSVC 2019 #17145

p5pRT opened this issue Sep 5, 2019 · 7 comments

Comments

@p5pRT
Copy link

p5pRT commented Sep 5, 2019

Migrated from rt.perl.org#134406 (status was 'open')

Searchable as RT134406$

@p5pRT
Copy link
Author

p5pRT commented Sep 5, 2019

From @tonycoz

Created by @tonycoz

Ever since I switched to windows 10 and MSVC 2019 I've had a problem
where test_porting would fail, complaining about missing pod2usage
and podchecker​:

porting/dual-life.t ....... 1/? # Failed test 11 - Verify -f '../cpan/Pod-Checker/podchecker' at porting/dual-life.t line 70
# Failed test 12 - Verify -f '../cpan/Pod-Usage/pod2usage' at porting/dual-life.t line 70
porting/dual-life.t ....... Failed 2/18 subtests
porting/exec-bit.t ........ skipped​: -x on MSWin32 only indicates file has executable suffix. Try Cygwin?
porting/extrefs.t ......... ok
porting/filenames.t ....... ok
porting/FindExt.t ......... ok
porting/globvar.t ......... skipped​: Code to read symbols not ported to MSWin32
porting/libperl.t ......... skipped​: no libperl.a
porting/maintainers.t ..... ok
porting/manifest.t ........ ok
porting/pending-author.t .. skipped​: No pending changes
porting/perlfunc.t ........ ok
porting/pod_rules.t ....... ok
porting/podcheck.t ........ ok
porting/re_context.t ...... ok
porting/readme.t .......... ok
porting/regen.t ........... ok
porting/ss_dup.t .......... ok
porting/test_bootstrap.t .. ok
porting/utils.t ........... Can't open 'cpan/Pod-Usage/blib/script/pod2usage'​: No such file or directory at porting/utils.t line 66, <$fh> line 39.
porting/utils.t ........... Dubious, test returned 2 (wstat 512, 0x200)
No subtests run

Tracing this it turned out to be glob not returning any files for this part of
generated Makefile.PLs​:

foreach (glob('scripts/pod*.PL')) {
  # The various pod*.PL extractors change directory. Doing that with relative

At this point of the build process on Win32/MSVC glob is handled by perlglob.exe,
which links with setargv.obj to enable wildcard expansion of the command-line.

If I run it directly in the directories with the problem​:

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>..\..\perlglob.exe scripts/pod*.PL

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>

But dir produces the expected files​:

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>dir scripts\pod*.PL
Volume in drive C has no label.
Volume Serial Number is B47B-B5E3

Directory of C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage\scripts

25/01/2019 09​:34 AM 5,151 pod2usage.PL
  1 File(s) 5,151 bytes
  0 Dir(s) 266,473,750,528 bytes free

Note that supplying \ instead of / to perlglob makes no difference​:

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>..\..\perlglob.exe scripts\pod*.PL

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>

perlglob produces strange output in other cases too​:

C​:\Users\Tony\dev\perl\git\perl\win32>perlglob bin\*.pl
bin\e bin\perlglob.pl bin\pl2bat.pl bin\runperl.pl bin\search.pl
C​:\Users\Tony\dev\perl\git\perl\win32>dir bin\*.pl
Volume in drive C has no label.
Volume Serial Number is B47B-B5E3

Directory of C​:\Users\Tony\dev\perl\git\perl\win32\bin

25/01/2019 09​:34 AM 2,740 exetype.pl
25/01/2019 09​:34 AM 1,171 perlglob.pl
25/01/2019 09​:34 AM 12,798 pl2bat.pl
25/01/2019 09​:34 AM 1,947 runperl.pl
25/01/2019 09​:34 AM 54,541 search.pl
  5 File(s) 73,197 bytes
  0 Dir(s) 266,473,295,872 bytes free

Note the truncation of bin\exetype.pl from perlglob.

A side issue​: we install win32/bin/perlglob.pl as perlglob.bat and
perlglob.exe, but they shouldn't be used in current installs
(File​::Glob does the job.) Perhaps that can be stopped.

Perl Info

Flags:
    category=install
    severity=low

Site configuration information for perl 5.31.4:

Configured by tony at Thu Sep  5 11:04:15 2019.

Summary of my perl5 (revision 5 version 31 subversion 4) configuration:
   
  Platform:
    osname=MSWin32
    osvers=10.0.17134.984
    archname=MSWin32-x64-multi-thread
    uname=''
    config_args='undef'
    hint=recommended
    useposix=true
    d_sigaction=undef
    useithreads=define
    usemultiplicity=define
    use64bitint=define
    use64bitall=undef
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='cl'
    ccflags ='-nologo -GF -W3 -Od -MD -Zi -DDEBUGGING -fp:precise -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO'
    optimize='-Od -MD -Zi -DDEBUGGING -fp:precise'
    cppflags='-DWIN32'
    ccversion='19.22.27905'
    gccversion=''
    gccosandvers=''
    intsize=4
    longsize=4
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=undef
    longlongsize=8
    d_longdbl=define
    longdblsize=8
    longdblkind=0
    ivtype='__int64'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='__int64'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='link'
    ldflags ='-nologo -nodefaultlib -debug -libpath:"c:\perl\lib\CORE" -machine:AMD64 -subsystem:console,"5.02"'
    libpth="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\\lib\x64"
    libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib
    perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib
    libc=ucrt.lib
    so=dll
    useshrplib=true
    libperl=perl531.lib
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_win32.xs
    dlext=dll
    d_dlsymun=undef
    ccdlflags=' '
    cccdlflags=' '
    lddlflags='-dll -nologo -nodefaultlib -debug -libpath:"c:\perl\lib\CORE" -machine:AMD64 -subsystem:console,"5.02"'



@INC for perl 5.31.4:
    lib
    C:/Users/Tony/dev/perl/git/perl/lib


Environment for perl 5.31.4:
    HOME (unset)
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\HostX64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin\Roslyn;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\vs2019\\x64;C:\Program Files (x86)\Microsoft Visual
Studio\Shared\Common\VSPerfCollectionTools\vs2019\;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\x64\;C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\\MSBuild\Current\Bin;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\HostX86\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin\Roslyn;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\vs2019\;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\;C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x86;C:\Program Files (x86)\Windows Kits\10\bin\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\\MSBuild\Current\Bin;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\;c:\sperl-5.28.1.1-64bit-portable\c\bin;C:\Program Files (x86)\Microsoft
Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\HostX86\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin\Roslyn;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\vs2019\;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\;C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x86;C:\Program Files (x86)\Windows Kits\10\bin\x86;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\\MSBuild\Current\Bin;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\;C:\Program Files\Microsoft MPI\Bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\Git\cmd;C:\Users\Tony\AppData\Local\Microsoft\WindowsApps;;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja
    PERL_BADLANG (unset)
    SHELL (unset)

@p5pRT
Copy link
Author

p5pRT commented Sep 5, 2019

From @tonycoz

On Wed, 04 Sep 2019 19​:06​:07 -0700, tonyc wrote​:

If I run it directly in the directories with the problem​:

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>..\..\perlglob.exe
scripts/pod*.PL

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>
...
Note that supplying \ instead of / to perlglob makes no difference​:

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>..\..\perlglob.exe
scripts\pod*.PL

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>

perlglob produces strange output in other cases too​:

C​:\Users\Tony\dev\perl\git\perl\win32>perlglob bin\*.pl
bin\e bin\perlglob.pl bin\pl2bat.pl bin\runperl.pl bin\search.pl

With the attached patch​:

C​:\Users\Tony\dev\perl\git\perl\win32>..\perlglob bin\*.pl
bin\exetype.pl bin\perlglob.pl bin\pl2bat.pl bin\runperl.pl bin\search.pl
C​:\Users\Tony\dev\perl\git\perl\win32>cd ..\cpan\Pod-Usage

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>..\..\perlglob scripts/pod*.PL
scripts/pod2usage.PL

Tony

@p5pRT
Copy link
Author

p5pRT commented Sep 5, 2019

From @tonycoz

0001-perl-134406-avoid-setargv-for-globbing.patch
From 6ef6fccefc402ee57472ee7f149dae883f074a9f Mon Sep 17 00:00:00 2001
From: Tony Cook <tony@develop-help.com>
Date: Thu, 5 Sep 2019 11:03:50 +1000
Subject: (perl #134406) avoid setargv for globbing

Since running windows 10 regularly, I've been seeing porting test
failure complaining that pod2usage and podchecker weren't being built
and installed.

I eventually tracked this down to perlglob scripts/pod*.PL not returning
any files.
---
 win32/GNUmakefile |  2 +-
 win32/Makefile    |  2 +-
 win32/makefile.mk |  2 +-
 win32/perlglob.c  | 87 +++++++++++++++++++++++++++++++++++------------
 4 files changed, 69 insertions(+), 24 deletions(-)

diff --git a/win32/GNUmakefile b/win32/GNUmakefile
index bad4db8107..a181678e09 100644
--- a/win32/GNUmakefile
+++ b/win32/GNUmakefile
@@ -1287,7 +1287,7 @@ ifeq ($(CCTYPE),GCC)
 	$(LINK32) $(OPTIMIZE) $(BLINK_FLAGS) -mconsole -o $@ perlglob.c $(LIBFILES)
 else
 	$(CC) $(OPTIMIZE) $(PDBOUT) -Fe$@ perlglob.c -link $(BLINK_FLAGS) \
-	setargv$(o) $(LIBFILES) && $(EMBED_EXE_MANI)
+	$(LIBFILES) && $(EMBED_EXE_MANI)
 endif
 
 ..\git_version.h : $(HAVEMINIPERL) ..\make_patchnum.pl
diff --git a/win32/Makefile b/win32/Makefile
index b5cdb287b2..9e8065e78b 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -964,7 +964,7 @@ static: $(PERLEXESTATIC)
 
 $(GLOBEXE) : perlglob$(o)
 	$(LINK32) $(BLINK_FLAGS) $(LIBFILES) -out:$@ \
-	    perlglob$(o) setargv$(o)
+	    perlglob$(o)
 	$(EMBED_EXE_MANI)
 
 perlglob$(o)  : perlglob.c
diff --git a/win32/makefile.mk b/win32/makefile.mk
index e11de053d9..f8d50784bc 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -1233,7 +1233,7 @@ $(GLOBEXE) : perlglob.c
 	$(LINK32) $(OPTIMIZE) $(BLINK_FLAGS) -mconsole -o $@ perlglob.c $(LIBFILES)
 .ELSE
 	$(CC) $(OPTIMIZE) $(PDBOUT) -Fe$@ perlglob.c -link $(BLINK_FLAGS) \
-	setargv$(o) $(LIBFILES) && $(EMBED_EXE_MANI)
+	$(LIBFILES) && $(EMBED_EXE_MANI)
 .ENDIF
 
 ..\git_version.h : $(HAVEMINIPERL) ..\make_patchnum.pl
diff --git a/win32/perlglob.c b/win32/perlglob.c
index 8add30f2a5..6edc000018 100644
--- a/win32/perlglob.c
+++ b/win32/perlglob.c
@@ -1,28 +1,35 @@
 /*
- * Globbing for NT.  Relies on the expansion done by the library
- * startup code (provided by Visual C++ by linking in setargv.obj).
+ * Globbing for NT.  Previously relied on the expansion done by the library
+ * startup code (provided by Visual C++ by linking in setargv.obj), but
+ * that was flaky in some cases.
  */
 
-/* Enable wildcard expansion for gcc's C-runtime library if not enabled by
- * default (currently necessary with the automated build of the mingw-w64
- * cross-compiler, but there's no harm in making sure for others too). */
-#ifdef __MINGW32__
-#include <_mingw.h>
-#if defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR)
-    // MinGW-w64
-    int _dowildcard = -1;
-#else
-    // MinGW
-    int _CRT_glob = -1;
-#endif
-#endif
-
 #include <stdio.h>
 #include <io.h>
 #include <fcntl.h>
 #include <string.h>
+#include <stdlib.h>
 #include <windows.h>
 
+static void
+resize_path(char **ppath, size_t *alloc, size_t needed) {
+    ++needed;
+    if (needed > *alloc) {
+        /* exponential growth, these are filenames we're fetching
+           from disk and from the command-line, both of which
+           have reasonably small size limits, so we don't need to
+           worry about overflow here.
+        */
+        size_t new_size = needed * 2;
+        *ppath = realloc(*ppath, new_size);
+        if (!*ppath) {
+            perror("Out of memory");
+            exit(1);
+        }
+        *alloc = new_size;
+    }
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -33,6 +40,9 @@ main(int argc, char *argv[])
     char volname[MAX_PATH];
     DWORD serial, maxname, flags;
     BOOL downcase = TRUE;
+    BOOL add_sep = FALSE;
+    char *base = NULL;
+    size_t base_alloc = 0;
 
     /* check out the file system characteristics */
     if (GetFullPathName(".", MAX_PATH, root, &dummy)) {
@@ -47,11 +57,46 @@ main(int argc, char *argv[])
 
     setmode(fileno(stdout), O_BINARY);
     for (i = 1; i < argc; i++) {
-	len = strlen(argv[i]);
-	if (downcase)
-	    strlwr(argv[i]);
-	if (i > 1) fwrite("\0", sizeof(char), 1, stdout);
-	fwrite(argv[i], sizeof(char), len, stdout);
+        WIN32_FIND_DATAA fd;
+        HANDLE fh = FindFirstFileA(argv[i], &fd);
+
+        if (fh != INVALID_HANDLE_VALUE) {
+            char *bs, *sl, *end;
+            ptrdiff_t end_off;
+            size_t len = strlen(argv[i]);
+            
+            resize_path(&base, &base_alloc, len);
+            strcpy(base, argv[i]);
+
+            bs = (char *)strrchr(base, '\\');
+            sl = (char *)strrchr(base, '/');
+            if (bs || sl) {
+                end = bs && sl ? ( bs < sl ? sl : bs )
+                    : bs ? bs : sl;
+                ++end;
+            }
+            else {
+                end = base; /* "*.c" or something similar */
+            }
+            end_off = end - base;
+        
+            do {
+                len = strlen(fd.cFileName);
+                if (downcase)
+                    strlwr(fd.cFileName);
+                resize_path(&base, &base_alloc, end_off + len);
+                strcpy(base + end_off, fd.cFileName);
+                if (add_sep) fwrite("\0", sizeof(char), 1, stdout);
+                fputs(base, stdout);
+                add_sep = 1;
+            } while (FindNextFileA(fh, &fd));
+            FindClose(fh);
+        }
+        else {
+            /* glob writes the pattern if no matches are found */
+            if (add_sep) fwrite("\0", sizeof(char), 1, stdout);
+            fputs(argv[i], stdout);
+        }
     }
     return 0;
 }
-- 
2.23.0.windows.1

@p5pRT
Copy link
Author

p5pRT commented Sep 5, 2019

From @xenu

On Wed, 04 Sep 2019 21​:16​:25 -0700
"Tony Cook via RT" <perlbug-followup@​perl.org> wrote​:

On Wed, 04 Sep 2019 19​:06​:07 -0700, tonyc wrote​:

If I run it directly in the directories with the problem​:

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>..\..\perlglob.exe
scripts/pod*.PL

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>
...
Note that supplying \ instead of / to perlglob makes no difference​:

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>..\..\perlglob.exe
scripts\pod*.PL

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>

perlglob produces strange output in other cases too​:

C​:\Users\Tony\dev\perl\git\perl\win32>perlglob bin\*.pl
bin\e bin\perlglob.pl bin\pl2bat.pl bin\runperl.pl bin\search.pl

With the attached patch​:

C​:\Users\Tony\dev\perl\git\perl\win32>..\perlglob bin\*.pl
bin\exetype.pl bin\perlglob.pl bin\pl2bat.pl bin\runperl.pl bin\search.pl
C​:\Users\Tony\dev\perl\git\perl\win32>cd ..\cpan\Pod-Usage

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>..\..\perlglob scripts/pod*.PL
scripts/pod2usage.PL

Tony

Are you using the latest Windows SDK? See
https://rt.perl.org/Public/Bug/Display.html?id=133666

@p5pRT
Copy link
Author

p5pRT commented Sep 5, 2019

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Sep 5, 2019

From @tonycoz

On Wed, Sep 04, 2019 at 09​:46​:36PM -0700, Tomasz Konojacki via RT wrote​:

On Wed, 04 Sep 2019 21​:16​:25 -0700
"Tony Cook via RT" <perlbug-followup@​perl.org> wrote​:

On Wed, 04 Sep 2019 19​:06​:07 -0700, tonyc wrote​:

If I run it directly in the directories with the problem​:

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>..\..\perlglob.exe
scripts/pod*.PL

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>
...
Note that supplying \ instead of / to perlglob makes no difference​:

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>..\..\perlglob.exe
scripts\pod*.PL

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>

perlglob produces strange output in other cases too​:

C​:\Users\Tony\dev\perl\git\perl\win32>perlglob bin\*.pl
bin\e bin\perlglob.pl bin\pl2bat.pl bin\runperl.pl bin\search.pl

With the attached patch​:

C​:\Users\Tony\dev\perl\git\perl\win32>..\perlglob bin\*.pl
bin\exetype.pl bin\perlglob.pl bin\pl2bat.pl bin\runperl.pl bin\search.pl
C​:\Users\Tony\dev\perl\git\perl\win32>cd ..\cpan\Pod-Usage

C​:\Users\Tony\dev\perl\git\perl\cpan\Pod-Usage>..\..\perlglob scripts/pod*.PL
scripts/pod2usage.PL

Tony

Are you using the latest Windows SDK? See
https://rt.perl.org/Public/Bug/Display.html?id=133666

C​:\> perl -le "print for split /;/, $ENV{PATH}"
...
C​:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64
...

So it looks like I'm using the latest SDK.

I am running Windows 10 1803 (1903 fails to install[1].)

Going by the issue link I'll need to upgrade the OS to fix this, if
only it would.

Tony

[1] and fails to install and fails to install on and on and on.

@tonycoz
Copy link
Contributor

tonycoz commented Nov 17, 2019

Upgrading (via installing 1903 from scratch) fixed this.

@tonycoz tonycoz closed this as completed Nov 17, 2019
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

2 participants