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

Not OK: perl 5.00563 on MSWin32-x86 4.0 #927

Closed
p5pRT opened this issue Dec 9, 1999 · 5 comments
Closed

Not OK: perl 5.00563 on MSWin32-x86 4.0 #927

p5pRT opened this issue Dec 9, 1999 · 5 comments

Comments

@p5pRT
Copy link

p5pRT commented Dec 9, 1999

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

Searchable as RT1870$

@p5pRT
Copy link
Author

p5pRT commented Dec 9, 1999

From Paul.Moore@uk.origin-it.com

The failure is actually 5.005_63 - but I can't run perlbug against that
for obvious reasons...

Building with most of the same configuration as below for 5.005_03,
basically Win32, NT4 SP5, MSVC 6 SP 3.

Make options​:

USE_ITHREADS

none of
USE_THREADS
USE_MULTI
USE_OBJECT
USE_IMP_SYS

The build failed in compiling sv.c, with the attached errors.

It looks like USE_ITHREADS requires one of the other options (USE_MULTI),
but doesn't enforce it.

The line in error is
  ret = (void*)(((char*)aTHXo) + (((char*)v) - (char*)proto_perl));

Presumably, under this combination, aTHXo isn't defined, so the result is
a syntax error.

A search of the sources indicates aTHXo is only used in a couple of
places, and in the rest it seems "correct" - is this just a typo which
should be some other aTHX macro?

Paul Moore.

Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

  cl -c -I.. -nologo -Gf -W3 -I..\lib\CORE -I.\include -I. -I..
-DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERLDLL -DPERL_CORE -O1
-MD -DNDEBUG -DUSE_ITHREADS -Fo..\sv.obj ..\sv.c
sv.c
..\sv.c(6304) : error C2059​: syntax error : ')'
..\sv.c(6311) : error C2143​: syntax error : missing '{' before '*'
..\sv.c(6313) : warning C4142​: benign redefinition of type
..\sv.c(6313) : error C2371​: 'Perl_ss_dup' : redefinition; different basic
types
  ..\proto.h(779) : see declaration of 'Perl_ss_dup'
..\sv.c(6314) : error C2039​: 'Tsavestack' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6315) : error C2039​: 'Tsavestack_ix' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6316) : error C2039​: 'Tsavestack_max' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6534) : warning C4133​: 'return' : incompatible types - from 'union
any *' to 'int *'
..\sv.c(6645) : error C2039​: 'Idebug' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6654) : error C2039​: 'Isv_undef' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6654) : error C2198​: 'Perl_ptr_table_store' : too few actual
parameters
..\sv.c(6667) : error C2039​: 'Isv_no' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6667) : error C2198​: 'Perl_ptr_table_store' : too few actual
parameters
..\sv.c(6680) : error C2039​: 'Isv_yes' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6680) : error C2198​: 'Perl_ptr_table_store' : too few actual
parameters
..\sv.c(6686) : error C2039​: 'Istrtab' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6686) : error C2198​: 'Perl_ptr_table_store' : too few actual
parameters
..\sv.c(6688) : error C2039​: 'Icompiling' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6691) : error C2039​: 'Icompiling' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6691) : error C2198​: 'Perl_ptr_table_store' : too few actual
parameters
..\sv.c(6694) : error C2039​: 'Tcurcop' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6694) : error C2198​: 'Perl_any_dup' : too few actual parameters
..\sv.c(6697) : error C2039​: 'Iorigargc' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6702) : error C2039​: 'Iorigargv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6702) : error C2039​: 'Iorigargv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6702) : error C2198​: 'Perl_savepv' : too few actual parameters
..\sv.c(6704) : error C2039​: 'Ienvgv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6704) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6705) : error C2039​: 'Iincgv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6705) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6706) : error C2039​: 'Ihintgv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6706) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6707) : error C2039​: 'Iorigfilename' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6707) : error C2039​: 'Iorigfilename' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6707) : error C2198​: 'Perl_savepv' : too few actual parameters
..\sv.c(6708) : error C2039​: 'Idiehook' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6708) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6709) : error C2039​: 'Iwarnhook' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6709) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6712) : error C2039​: 'Iminus_c' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6713) : error C2039​: 'Ipatchlevel' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6713) : warning C4022​: 'memcpy' : pointer mismatch for actual
parameter 2
..\sv.c(6713) : error C2198​: 'memcpy' : too few actual parameters
..\sv.c(6714) : error C2039​: 'Ilocalpatches' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6715) : error C2039​: 'Isplitstr' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6716) : error C2039​: 'Ipreprocess' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6717) : error C2039​: 'Iminus_n' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6718) : error C2039​: 'Iminus_p' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6719) : error C2039​: 'Iminus_l' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6720) : error C2039​: 'Iminus_a' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6721) : error C2039​: 'Iminus_F' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6722) : error C2039​: 'Idoswitches' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6723) : error C2039​: 'Idowarn' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6724) : error C2039​: 'Idoextract' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6725) : error C2039​: 'Isawampersand' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6726) : error C2039​: 'Iunsafe' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6727) : error C2039​: 'Iinplace' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6727) : error C2039​: 'Iinplace' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6727) : error C2198​: 'Perl_savepv' : too few actual parameters
..\sv.c(6728) : error C2039​: 'Ie_script' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6728) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6729) : error C2039​: 'Iperldb' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6730) : error C2039​: 'Iperl_destruct_level' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6734) : error C2039​: 'Ibasetime' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6735) : error C2039​: 'Iformfeed' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6735) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6737) : error C2039​: 'Imaxsysfd' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6738) : error C2039​: 'Imultiline' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6739) : error C2039​: 'Istatusvalue' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6745) : error C2039​: 'Istdingv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6745) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6746) : error C2039​: 'Istderrgv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6746) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6747) : error C2039​: 'Idefgv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6747) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6748) : error C2039​: 'Iargvgv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6748) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6749) : error C2039​: 'Iargvoutgv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6749) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6750) : error C2039​: 'Iargvout_stack' : is not a member of
'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6750) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6753) : error C2039​: 'Ireplgv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6753) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6756) : error C2039​: 'Ierrgv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6756) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6759) : error C2039​: 'IDBgv' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6759) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6760) : error C2039​: 'IDBline' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6760) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6761) : error C2039​: 'IDBsub' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6761) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6762) : error C2039​: 'IDBsingle' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6762) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6763) : error C2039​: 'IDBtrace' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6763) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6764) : error C2039​: 'IDBsignal' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6764) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6765) : error C2039​: 'Ilineary' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6765) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6766) : error C2039​: 'Idbargs' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6766) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6769) : error C2039​: 'Tdefstash' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6769) : error C2198​: 'Perl_sv_dup' : too few actual parameters
..\sv.c(6770) : error C2039​: 'Tcurstash' : is not a member of 'interpreter'
  ..\perl.h(2522) : see declaration of 'interpreter'
..\sv.c(6770) : fatal error C1003​: error count exceeds 100; stopping
compilation
NMAKE : fatal error U1077​: 'cl' : return code '0x2'
Stop.

Perl Info


Site configuration information for perl 5.00503:

Summary of my perl5 (5.0 patchlevel 5 subversion 03) configuration:
  Platform:
    osname=MSWin32, osvers=4.0, archname=MSWin32-x86
    uname=''
    hint=recommended, useposix=true, d_sigaction=undef
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='cl.exe', optimize='-O2 -MD -DNDEBUG', gccversion=
    cppflags='-DWIN32'
    ccflags ='-O2 -MD -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT
-DHAVE_DES_FCRYPT '
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='link', ldflags ='-nologo -nodefaultlib -release -machine:x86'
    libpth=C:\VisualStudio\VC98\lib
    libs=R:\Libraries\Lib\MD\libdes.lib oldnames.lib kernel32.lib user32.lib
gdi32.lib  winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib
oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib
version.lib odbc32.lib odbccp32.lib PerlCRT.lib
    libc=PerlCRT.lib, so=dll, useshrplib=yes, libperl=perl.lib
  Dynamic Linking:
    dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -release
-machine:x86'

Locally applied patches:
    


@INC for perl 5.00503:
    C:\Applications\Perl\lib/MSWin32-x86
    C:\Applications\Perl\lib
    C:\Applications\Perl\site\lib/MSWin32-x86
    C:\Applications\Perl\site\lib
    .


Environment for perl 5.00503:
    HOME (unset)
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
 
PATH=C:\WINNT\system32;C:\WINNT;C:\UTILS;C:\Applications\Perl\Bin;C:\Applica
tions\Perl\Bin\MSWin32-x86;C:\VisualStudio\Common\Tools\WinNT;C:\VisualStudi
o\Common\MSDev98\Bin;C:\VisualStudio\Common\Tools;C:\VisualStudio\VC98\bin;C
:\Program Files\Mts;C:\MSSQL7\BINN;C:\DMINT40\Win32\Bin;C:\Program
Files\CWNT;C:\NTRESKIT;C:\Oracle\Ora81\bin;C:\Program
Files\Oracle\jre\1.1.7\bin;C:\APPLIC~1\Tcl\bin;C:\Applications\Mingw32\bin
    PERL_BADLANG (unset)
    SHELL (unset)

@p5pRT
Copy link
Author

p5pRT commented Dec 9, 1999

From [Unknown Contact. See original ticket]

Further information. Perl builds with USE_MULTI, but it fails tests.
Basically, Perl still thinks that fork() is unimplemented. Is this expected?

Paul.

-----Original Message-----
From​: Moore, Paul
Sent​: 09 December 1999 16​:04
To​: perl5-porters@​perl.org
Subject​: [ID 19991209.004] Not OK​: perl 5.00563 on MSWin32-x86 4.0

This is a build failure report for perl from paul.moore@​uk.origin-it.com,
generated with the help of perlbug 1.26 running under perl 5.00503.


[Please enter your report here]

The failure is actually 5.005_63 - but I can't run perlbug against that
for obvious reasons...

Building with most of the same configuration as below for 5.005_03,
basically Win32, NT4 SP5, MSVC 6 SP 3.

Make options​:

USE_ITHREADS

none of
USE_THREADS
USE_MULTI
USE_OBJECT
USE_IMP_SYS

The build failed in compiling sv.c, with the attached errors.

It looks like USE_ITHREADS requires one of the other options (USE_MULTI),
but doesn't enforce it.

The line in error is
  ret = (void*)(((char*)aTHXo) + (((char*)v) - (char*)proto_perl));

Presumably, under this combination, aTHXo isn't defined, so the result is
a syntax error.

A search of the sources indicates aTHXo is only used in a couple of
places, and in the rest it seems "correct" - is this just a typo which
should be some other aTHX macro?

Paul Moore.

[[ Rest of original deleted ]]

@p5pRT
Copy link
Author

p5pRT commented Dec 9, 1999

From @gsar

On Thu, 09 Dec 1999 16​:04​:01 GMT, "Moore, Paul" wrote​:

The failure is actually 5.005_63 - but I can't run perlbug against that
for obvious reasons...

Building with most of the same configuration as below for 5.005_03,
basically Win32, NT4 SP5, MSVC 6 SP 3.

Make options​:

USE_ITHREADS

none of
USE_THREADS
USE_MULTI
USE_OBJECT
USE_IMP_SYS

The build failed in compiling sv.c, with the attached errors.

It looks like USE_ITHREADS requires one of the other options (USE_MULTI),
but doesn't enforce it.

I guess that's why there's the following disclaimer​:

  # Beginnings of interpreter cloning/threads​: still rather rough, fails
  # tests. This should be enabled to get the fork() emulation. Do not
  # enable unless you know what you're doing!

It shouldn't fail any tests though, unless you enable TOP_CLONE,
which is designed to fail some tests. :-)

USE_ITHREADS is meant to be used with either USE_OBJECT or USE_MULTI.
It could be auto-enabled in future when you ask for USE_THREADS with
either USE_OBJECT or USE_MULTI.

A search of the sources indicates aTHXo is only used in a couple of
places, and in the rest it seems "correct" - is this just a typo which
should be some other aTHX macro?

Nope, it's not a typo.

Sarathy
gsar@​ActiveState.com

@p5pRT
Copy link
Author

p5pRT commented Dec 9, 1999

From @gsar

On Thu, 09 Dec 1999 16​:34​:03 GMT, "Moore, Paul" wrote​:

Further information. Perl builds with USE_MULTI, but it fails tests.

Which ones exactly? If it's posix.t#2, see README.win32.

Basically, Perl still thinks that fork() is unimplemented. Is this expected?

Not if you enable USE_MULTI/USE_OBJECT, USE_ITHREADS, and USE_IMP_SYS.
See pp.c/pp_fork().

Sarathy
gsar@​ActiveState.com

@p5pRT
Copy link
Author

p5pRT commented Dec 10, 1999

From [Unknown Contact. See original ticket]

From​: Gurusamy Sarathy [mailto​:gsar@​ActiveState.com]

On Thu, 09 Dec 1999 16​:34​:03 GMT, "Moore, Paul" wrote​:

Further information. Perl builds with USE_MULTI, but it fails tests.

Which ones exactly? If it's posix.t#2, see README.win32.

Nope. It was the fork.t tests - failing with "fork is unimplemented"
messages. I don't have the exact results now, as I worked out what I'd done
wrong (see below)...

Basically, Perl still thinks that fork() is unimplemented.
Is this expected?

Not if you enable USE_MULTI/USE_OBJECT, USE_ITHREADS, and USE_IMP_SYS.
See pp.c/pp_fork().

Yes, I got to this combination in the end. Now passes all tests. Sorry for
the false alarm.

BTW, I noticed that t/io/pipe.t (and others) still skips testing as
$Config{d_fork} is undef. Would it be reasonable to define this at some
point, so that modules which test for fork like this will work in the
presence of "pseudo-fork"? OTOH, just changing config.vc doesn't work, as
this triggets a rebuild with HAVE_FORK defined, which is *not* right...

Anyway, at present t/io/pipe.t fails anyway, as it looks like the open("|-")
stuff is not implemented (yet).

On a related note, what is a good way of testing if fork() works? eval {
fork } seems inappropriate, as it will actually fork if the test works.
Using %Config, assuming it is changed, is quite a large overhead. Testing
$^O is error-prone and (conceptually) wrong. Maybe the common approach of
just forking and letting people withyout fork diagnose the errors is
actually a realistic approach :-)

Cheers,
Paul.

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