Closed p5pRT closed 21 years ago
I tried to build RC2 on Windows 9X. I used the dmake port at: http://www.cpan.org/authors/id/GSAR/dmake-4.1pl1-win32.zip
Following README.win32\, I made the following changes:
C:\> diff -c perl-5.8.0-RC2/win32/0config.vc perl-5.8.0-RC2/win32/config.vc *** perl-5.8.0-RC2/win32/0config.vc Wed Jun 12 14:17:20 2002 --- perl-5.8.0-RC2/win32/config.vc Fri Jul 5 21:59:08 2002 *************** *** 700\,706 **** lseektype='off_t' mail='' mailx='' ! make='nmake' make_set_make='#' mallocobj='malloc.o' mallocsrc='malloc.c' --- 700\,706 ---- lseektype='off_t' mail='' mailx='' ! make='dmake' make_set_make='#' mallocobj='malloc.o' mallocsrc='malloc.c'
C:\> diff -c perl-5.8.0-RC2/win32/0makefile.mk perl-5.8.0-RC2/win32/makefile.mk *** perl-5.8.0-RC2/win32/0makefile.mk Fri Jun 21 15:28:32 2002 --- perl-5.8.0-RC2/win32/makefile.mk Fri Jul 5 22:10:04 2002 *************** *** 109\,115 **** # # uncomment this if you are compiling under Windows 95/98 and c # (not needed if you're running under 4DOS/NT 6.01 or later) ! #IS_WIN95 *= define
# # uncomment next line if you want debug version of perl (big\,sl --- 109\,115 ---- # # uncomment this if you are compiling under Windows 95/98 and c # (not needed if you're running under 4DOS/NT 6.01 or later) ! IS_WIN95 *= define
# # uncomment next line if you want debug version of perl (big\,sl *************** *** 136\,142 **** # File::DosGlob that are more powerful. This option is support # Visual C. # ! #USE_SETARGV *= define
# # if you have the source for des_fcrypt()\, uncomment this and m --- 136\,142 ---- # File::DosGlob that are more powerful. This option is support # Visual C. # ! USE_SETARGV *= define
# # if you have the source for des_fcrypt()\, uncomment this and m
C:\>
dmake failed. The report ended:
C:\perl-5.8.0-RC2\win32> ..\miniperl.exe -I..\lib buildext.pl C:\WFB\BIN\DMAKE.EXE -S perldll.def ..\ext C:\PERL-5~1.0-R\MINIPERL.EXE C:\PERL-5~1.0-R\win32\bin\pl2bat.pl C:\PERL-5~1.0-R\win32\bin\pl2bat.pl
Running Makefile.PL in B C:\PERL-5~1.0-R\MINIPERL.EXE -IC:\perl-5.8.0-RC2\win32\..\lib Makefile.PL INSTALLDIRS=perl PERL_CORE=1 Writing Makefile for B::C Writing Makefile for B Making B C:\WFB\BIN\DMAKE.EXE -S DMAKE.EXE: makefile: line 646: Error -- Expecting macro or rule defn\, found neither Unsuccessful make(B): code=65280 at buildext.pl line 98.
C:\perl-5.8.0-RC2\win32>
Build process complete. Ignore any errors after this message. Run "dmake test" to test and "dmake install" to install DMAKE.EXE: Error -- `__no_such_target' not found\, and can't be made
C:\perl-5.8.0-RC2\win32>
I made the following change (replacing each run of spaces with a tab)
C:\> diff -c perl-5.8.0-RC2/lib/ExtUtils/0MM_Win95.pm perl-5.8.0-RC2/lib//ExtUtils/MM_Win95.pm *** perl-5.8.0-RC2/lib/ExtUtils/0MM_Win95.pm Sat Jun 1 18:03:16 2002 --- perl-5.8.0-RC2/lib/ExtUtils/MM_Win95.pm Sun Jul 7 22:36:52 2002 *************** *** 26\,36 **** my($self) = shift; return q{ disttest : distdir ! cd $(DISTVNAME) ! $(ABSPERLRUN) Makefile.PL ! $(MAKE) $(PASTHRU) ! $(MAKE) test $(PASTHRU) ! cd .. }; }
--- 26\,36 ---- my($self) = shift; return q{ disttest : distdir ! cd $(DISTVNAME) ! $(ABSPERLRUN) Makefile.PL ! $(MAKE) $(PASTHRU) ! $(MAKE) test $(PASTHRU) ! cd .. }; }
C:\>
This time dmake failed: C:\PERL-5~1.0-R\MINIPERL.EXE "-I..\..\lib" "-I..\..\lib" -MExtUtils::Command -e chmod 644 ..\..\lib\auto\B\B.bs Making B/C C:\WFB\BIN\DMAKE.EXE -S DMAKE.EXE: Error -- Ambiguous inference chains for target 'C.obj DMAKE.EXE: 1. C.obj(%.obj) --> C.xs(%.xs) DMAKE.EXE: 2. C.obj(%.obj) --> C.c(%.c) DMAKE.EXE: Error -- resolve ambiguity before proceeding. Unsuccessful make(B/C): code=65280 at buildext.pl line 98.
C:\perl-5.8.0-RC2\win32>
I find this almost impossible to diagnose because there is no indication of the current directory. The fix adds to that above:
C:\perl-5.8.0-RC2\lib\ExtUtils> diff -c MM_Win95.pm 1MM_Win95.pm *** MM_Win95.pm Sun Jul 7 22:36:52 2002 --- 1MM_Win95.pm Sat Jul 6 00:48:08 2002 *************** *** 59\,68 **** my($self) = shift; return '' unless $self->needs_linking(); ' ! .xs$(OBJ_EXT): ! $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) \\ ! $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.c ! $(CCCMD) $(CCCDLFLAGS) -I$(PERL_INC) $(DEFINE) $*.c '; }
--- 59\,74 ---- my($self) = shift; return '' unless $self->needs_linking(); ' ! # Commented out 20000705 by Walter Briscoe in W9X to avoid ! # DMAKE.EXE: Error -- Ambiguous inference chains for target ! # DMAKE.EXE: 1. B.obj(%.obj) --> B.xs(%.xs) ! # DMAKE.EXE: 2. B.obj(%.obj) --> B.c(%.c) ! # DMAKE.EXE: Error -- resolve ambiguity before proceeding. ! # ! # .xs$(OBJ_EXT): ! # $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) \\ ! # $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.c ! # $(CCCMD) $(CCCDLFLAGS) -I$(PERL_INC) $(DEFINE) $*.c '; }
C:\perl-5.8.0-RC2\lib\ExtUtils>
This time\, I had to interrupt dmake:
Running Makefile.PL in Devel/DProf
C:\PERL-5~1.0-R\MINIPERL.EXE -IC:\perl-5.8.0-RC2\win32\..\lib Makefile.PL INSTALLDIRS=perl PERL_CORE=1 File creation error File creation error File creation error Writing Makefile for Devel::DProf Making Devel/DProf C:\WFB\BIN\DMAKE.EXE -S Skip ..\..\..\lib\Devel\DProf.pm (unchanged) C:\PERL-5~1.0-R\MINIPERL.EXE -I..\..\..\lib -I..\..\..\lib ...\..\..\lib\ExtUtils/xsubpp \ -typemap ..\..\..\lib\ExtUtils\typemap DProf.xs > DProf.c cl -c -MD -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL_IMPLICIT_CONT EXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_READFIX -MD -DNDEB UG -O1 -DVERSION=\"20000000.00_01\" -DXS_VERSION=\"20000000.00_01\" "I..\..\..\lib\CORE" -DPERLDBf_NONAME=0x40 -DPERLDBf_GOTO=0x80 -DG_NODEBUG =32 -DPL_NEEDED DProf.c Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
DProf.c DProf.c(751) : error C2061: syntax error : identifier 'specify' DProf.c(751) : error C2059: syntax error : ';' DProf.c(751) : error C2061: syntax error : identifier 'behavior' DProf.c(751) : error C2059: syntax error : ';' DProf.c(751) : error C2059: syntax error : 'for' "Running Mkbootstrap for Devel::DProf ()" Terminating on signal SIGINT(2)
C:\perl-5.8.0-RC2\win32>
I believe the file creation errors are due to the following:
While looking at a problem building ext/Devel/DProf\, I saw that a file called &1 was created by MakeMaker. I protected it and ran in the debugger. The relevant extract is:
DB\<8> n ExtUtils::MM_Win32::find_perl(C:\perl-5.8.0RC2\win32\..\lib/ExtUtils/MM_Wi n32.p m:130): 130: $val = `$safe_abs -e "require $ver;" 2>&1`; DB\<8> n File creation error ExtUtils::MM_Win32::find_perl(C:\perl-5.8.0-RC2\win32\..\lib/ExtUtils/MM_W in32. pm:131): 131: if ($? == 0) {
[ How to run a "script" of commands in perl -d?. hand retyping is tedious.]
This is a problem because the W9X "shell" COMMAND.COM does not support the backtick operation nor redirections more complicated than the simplest \< and > operators.
The C compilation errors are due to:
C:\perl-5.8.0-RC2> sed 751!d ext/Devel/DProf/DProf.c Please specify prototyping behavior for DProf.xs (see perlxs manual)
C:\perl-5.8.0-RC2>
There are many modules which fail the same way. I read that PROTOTYPES: ENABLE is the default condition in pod/perlxs.pod. Changing DProf.pm etc. would be wrong as well as tedious.
That is enough for now.
Sorry for the delay getting to this.
On Tue\, Jul 09\, 2002 at 09:48:00AM +0100\, W.BRISCOE@ponl.com wrote:
I made the following change (replacing each run of spaces with a tab)
My bad. The Axe Of Tab Eradication +5 must have run wild that day.
C:\> diff -c perl-5.8.0-RC2/lib/ExtUtils/0MM_Win95.pm perl-5.8.0-RC2/lib//ExtUtils/MM_Win95.pm *** perl-5.8.0-RC2/lib/ExtUtils/0MM_Win95.pm Sat Jun 1 18:03:16 2002 --- perl-5.8.0-RC2/lib/ExtUtils/MM_Win95.pm Sun Jul 7 22:36:52 2002 *************** *** 26\,36 **** my($self) = shift; return q{ disttest : distdir ! cd $(DISTVNAME) ! $(ABSPERLRUN) Makefile.PL ! $(MAKE) $(PASTHRU) ! $(MAKE) test $(PASTHRU) ! cd .. }; }
--- 26\,36 ---- my($self) = shift; return q{ disttest : distdir ! cd $(DISTVNAME) ! $(ABSPERLRUN) Makefile.PL ! $(MAKE) $(PASTHRU) ! $(MAKE) test $(PASTHRU) ! cd .. }; }
This time dmake failed: C:\PERL-5~1.0-R\MINIPERL.EXE "-I..\..\lib" "-I..\..\lib" -MExtUtils::Command -e chmod 644 ..\..\lib\auto\B\B.bs Making B/C C:\WFB\BIN\DMAKE.EXE -S DMAKE.EXE: Error -- Ambiguous inference chains for target 'C.obj DMAKE.EXE: 1. C.obj(%.obj) --> C.xs(%.xs) DMAKE.EXE: 2. C.obj(%.obj) --> C.c(%.c) DMAKE.EXE: Error -- resolve ambiguity before proceeding. Unsuccessful make(B/C): code=65280 at buildext.pl line 98.
C:\perl-5.8.0-RC2\win32>
I find this almost impossible to diagnose because there is no indication of the current directory. The fix adds to that above:
Dunno what to do about this.
C:\perl-5.8.0-RC2\lib\ExtUtils> diff -c MM_Win95.pm 1MM_Win95.pm *** MM_Win95.pm Sun Jul 7 22:36:52 2002 --- 1MM_Win95.pm Sat Jul 6 00:48:08 2002 *************** *** 59\,68 **** my($self) = shift; return '' unless $self->needs_linking(); ' ! .xs$(OBJ_EXT): ! $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) \\ ! $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.c ! $(CCCMD) $(CCCDLFLAGS) -I$(PERL_INC) $(DEFINE) $*.c '; }
--- 59\,74 ---- my($self) = shift; return '' unless $self->needs_linking(); ' ! # Commented out 20000705 by Walter Briscoe in W9X to avoid ! # DMAKE.EXE: Error -- Ambiguous inference chains for target ! # DMAKE.EXE: 1. B.obj(%.obj) --> B.xs(%.xs) ! # DMAKE.EXE: 2. B.obj(%.obj) --> B.c(%.c) ! # DMAKE.EXE: Error -- resolve ambiguity before proceeding. ! # ! # .xs$(OBJ_EXT): ! # $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) \\ ! # $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.c ! # $(CCCMD) $(CCCDLFLAGS) -I$(PERL_INC) $(DEFINE) $*.c '; }
I believe the file creation errors are due to the following:
While looking at a problem building ext/Devel/DProf\, I saw that a file called &1 was created by MakeMaker. I protected it and ran in the debugger. The relevant extract is:
DB\<8> n ExtUtils::MM_Win32::find_perl(C:\perl-5.8.0RC2\win32\..\lib/ExtUtils/MM_Wi n32.p m:130): 130: $val = `$safe_abs -e "require $ver;" 2>&1`; DB\<8> n File creation error ExtUtils::MM_Win32::find_perl(C:\perl-5.8.0-RC2\win32\..\lib/ExtUtils/MM_W in32. pm:131): 131: if ($? == 0) {
[ How to run a "script" of commands in perl -d?. hand retyping is tedious.]
do "some_script";
This is a problem because the W9X "shell" COMMAND.COM does not support the backtick operation nor redirections more complicated than the simplest \< and > operators.
Well\, somehow it has to run a small program to try and figure out if it's found a perl and it's the right version. This will cause errors so STDOUT and STDERR have to be trapped or supressed. How do you do that in COMMAND.COM? Even if it means writing out a batch file.
--
Michael G. Schwern \schwern@​pobox\.com http://www.pobox.com/~schwern/ Perl Quality Assurance \perl\-qa@​perl\.org Kwalitee Is Job One Free beer w/riot!
Sorry for the delay getting to this. I understand. My interests are unusual
On Tue\, Jul 09\, 2002 at 09:48:00AM +0100\, W.BRISCOE@ponl.com wrote:
I made the following change (replacing each run of spaces with a tab)
My bad. The Axe Of Tab Eradication +5 must have run wild that day. I shall assume this will be fixed. Where do I look for the fix?
C:\> diff -c perl-5.8.0-RC2/lib/ExtUtils/0MM_Win95.pm perl-5.8.0-RC2/lib//ExtUtils/MM_Win95.pm *** perl-5.8.0-RC2/lib/ExtUtils/0MM_Win95.pm Sat Jun 1 18:03:16 2002 --- perl-5.8.0-RC2/lib/ExtUtils/MM_Win95.pm Sun Jul 7 22:36:52 2002 *************** *** 26\,36 **** my($self) = shift; return q{ disttest : distdir ! cd $(DISTVNAME) ! $(ABSPERLRUN) Makefile.PL ! $(MAKE) $(PASTHRU) ! $(MAKE) test $(PASTHRU) ! cd .. }; [snip]
This time dmake failed: C:\PERL-5~1.0-R\MINIPERL.EXE "-I..\..\lib" "-I..\..\lib" -MExtUtils::Command -e chmod 644 ..\..\lib\auto\B\B.bs Making B/C C:\WFB\BIN\DMAKE.EXE -S DMAKE.EXE: Error -- Ambiguous inference chains for target 'C.obj DMAKE.EXE: 1. C.obj(%.obj) --> C.xs(%.xs) DMAKE.EXE: 2. C.obj(%.obj) --> C.c(%.c) DMAKE.EXE: Error -- resolve ambiguity before proceeding. Unsuccessful make(B/C): code=65280 at buildext.pl line 98.
C:\perl-5.8.0-RC2\win32>
I find this almost impossible to diagnose because there is no indication of the current directory. The fix adds to that above:
Dunno what to do about this. It is fixed in 5.8.0
C:\perl-5.8.0-RC2\lib\ExtUtils> diff -c MM_Win95.pm 1MM_Win95.pm *** MM_Win95.pm Sun Jul 7 22:36:52 2002 --- 1MM_Win95.pm Sat Jul 6 00:48:08 2002 *************** *** 59\,68 **** my($self) = shift; return '' unless $self->needs_linking(); ' ! .xs$(OBJ_EXT): ! $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) \\ ! $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.c ! $(CCCMD) $(CCCDLFLAGS) -I$(PERL_INC) $(DEFINE) $*.c '; }
--- 59\,74 ---- my($self) = shift; return '' unless $self->needs_linking(); ' ! # Commented out 20000705 by Walter Briscoe in W9X to avoid ! # DMAKE.EXE: Error -- Ambiguous inference chains for target ! # DMAKE.EXE: 1. B.obj(%.obj) --> B.xs(%.xs) ! # DMAKE.EXE: 2. B.obj(%.obj) --> B.c(%.c) ! # DMAKE.EXE: Error -- resolve ambiguity before proceeding. ! # ! # .xs$(OBJ_EXT): ! # $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) \\ ! # $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.c ! # $(CCCMD) $(CCCDLFLAGS) -I$(PERL_INC) $(DEFINE) $*.c '; }
I believe the file creation errors are due to the following:
While looking at a problem building ext/Devel/DProf\, I saw that a file called &1 was created by MakeMaker. I protected it and ran in the debugger. The relevant extract is:
DB\<8> n
ExtUtils::MM_Win32::find_perl(C:\perl-5.8.0RC2\win32\..\lib/ExtUtils/MM_Wi n32.p m:130): 130: $val = `$safe_abs -e "require $ver;" 2>&1`; DB\<8> n File creation error
ExtUtils::MM_Win32::find_perl(C:\perl-5.8.0-RC2\win32\..\lib/ExtUtils/MM_W in32. pm:131): 131: if ($? == 0) {
[ How to run a "script" of commands in perl -d?. hand retyping is tedious.]
do "some_script"; I did not find that in the debugger description in the early Perl5 Camel book. (I've mislaid or had the later one "borrowed".) I have just failed to find anything in *deb*.pod I would appreciate an RTFM reference.
This is a problem because the W9X "shell" COMMAND.COM does not support the backtick operation nor redirections more complicated than the simplest \< and > operators.
Well\, somehow it has to run a small program to try and figure out if it's found a perl and it's the right version. This will cause errors so STDOUT and STDERR have to be trapped or supressed. How do you do that in COMMAND.COM? Even if it means writing out a batch file. You don't do that in COMMAND.COM. You sometimes write another shell to do the redirection and call COMMAND.COM to do its thing.
I expect to be off air after 2002-08-30. I will look at these things again once I have a new mailto.
Walter
The contents of this e-mail are confidential to the ordinary user of the e-mail address to which it was addressed and may also be privileged. If you are not the addressee of this e-mail you should not copy\, forward\, disclose or otherwise use it or any part of it in any form whatsoever. If you have received this e-mail in error please notify us by telephone or e-mail the sender by replying to this message\, and then delete this e-mail and other copies of it from your computer system. Thank you.
We reserve the right to monitor all e-mail communications through our network.
On Wed\, Aug 28\, 2002 at 12:53:00PM +0100\, W.BRISCOE@ponl.com wrote:
Dunno what to do about this.
It is fixed in 5.8.0
Wait\, is this all against 5.6.1's MakeMaker? Grab the latest MakeMaker off CPAN instead. 6.05.
[ How to run a "script" of commands in perl -d?. hand retyping is tedious.]
do "some_script"; I did not find that in the debugger description in the early Perl5 Camel book.
It's not a debugger command\, it's just a perl function.
This is a problem because the W9X "shell" COMMAND.COM does not support the backtick operation nor redirections more complicated than the simplest \< and > operators.
Well\, somehow it has to run a small program to try and figure out if it's found a perl and it's the right version. This will cause errors so STDOUT and STDERR have to be trapped or supressed. How do you do that in COMMAND.COM? Even if it means writing out a batch file. You don't do that in COMMAND.COM. You sometimes write another shell to do the redirection and call COMMAND.COM to do its thing.
I was afraid of that.
--
Michael G. Schwern \schwern@​pobox\.com http://www.pobox.com/~schwern/ Perl Quality Assurance \perl\-qa@​perl\.org Kwalitee Is Job One "That's what Jagulars always do\," said Pooh\, much interested. "They call 'Help! Help!' and then when you look up they drop down on you."
The find_perl() problem of Win9X not understanding 2>&1 has finally been solved in the latest development snapshot of MakeMaker. This was causing the spurious "File creation error" messages from Makefile.PL.
It can be gotten from makemaker.org and will be in 6.06.
On Tue\, Jul 09\, 2002 at 09:48:00AM +0100\, W.BRISCOE@ponl.com wrote:
While looking at a problem building ext/Devel/DProf\, I saw that a file called &1 was created by MakeMaker. I protected it and ran in the debugger. The relevant extract is:
DB\<8> n ExtUtils::MM_Win32::find_perl(C:\perl-5.8.0RC2\win32\..\lib/ExtUtils/MM_Wi n32.p m:130): 130: $val = `$safe_abs -e "require $ver;" 2>&1`; DB\<8> n File creation error ExtUtils::MM_Win32::find_perl(C:\perl-5.8.0-RC2\win32\..\lib/ExtUtils/MM_W in32. pm:131): 131: if ($? == 0) { \
This is a problem because the W9X "shell" COMMAND.COM does not support the backtick operation nor redirections more complicated than the simplest \< and > operators.
--
Michael G. Schwern \schwern@​pobox\.com http://www.pobox.com/~schwern/ Perl Quality Assurance \perl\-qa@​perl\.org Kwalitee Is Job One Good tidings\, my native American Indian friend! America will soon again be yours! Please accept 5th Avenue as an initial return!
perl.org@triv.org - Status changed from 'open' to 'resolved'
Migrated from rt.perl.org#10032 (status was 'resolved')
Searchable as RT10032$