[perl #37997] r10604 build failure on Cygwin

0 views
Skip to first unread message

Ron Blaschke

unread,
Mar 26, 2007, 3:59:01 PM3/26/07
to perl6-i...@perl.org
Not sure about the details of this issue, but r17772 seems to build fine
on Cygwin.

Here's the output of "make test" on my box.

Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/codingstd/c_code_coda.t 1 256 2 1 50.00% 1
t/codingstd/c_indent.t 2 512 2 2 100.00% 1-2
t/codingstd/cppcomments.t ?? ?? % ??
t/codingstd/tabs.t 1 256 1 1 100.00% 1
t/codingstd/trailing_space.t 1 256 1 1 100.00% 1
t/op/trans.t 1 256 21 1 4.76% 13
t/pmc/iterator.t 2 512 43 2 4.65% 42-43
t/pmc/os.t 2 512 15 2 13.33% 6 9
t/src/compiler.t 1 256 6 1 16.67% 1
t/src/extend.t 12 3072 16 12 75.00% 1-12
t/src/intlist.t 4 1024 4 4 100.00% 1-4
t/src/io.t 9 2304 20 9 45.00% 2-4 6-7 16-19
t/stm/runtime.t 2 512 5 2 40.00% 2 4
8 tests and 577 subtests skipped.
Failed 13/270 test scripts, 95.19% okay. 39/6675 subtests failed, 99.42%
okay.

Ron

Joshua Gatcomb

unread,
Mar 26, 2007, 7:19:37 PM3/26/07
to r...@rblasch.org, perl6-i...@perl.org
On 3/26/07, Ron Blaschke <mailin...@rblasch.org> wrote:
>
> Not sure about the details of this issue, but r17772 seems to build fine
> on Cygwin.


Really? No one on #parrot has been able to get parrot to work on Cygwin for
months. The reason has changed since this specific ticket but if you have a
working cygwin build can you please share more details such as:

perl -V
cat myconfig
perl Configure.pl
which gcc
gcc -v
windows version (usually winver from command line)
output of make (as an attachment)
strings /bin/cygwin1.dll | grep -i cygwin-1. (just need 1 line of output
to determine version of cygwin1.dll)

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region

Ron Blaschke

unread,
Mar 28, 2007, 5:56:38 AM3/28/07
to Joshua Gatcomb, perl6-i...@perl.org
Joshua Gatcomb wrote:
> On 3/26/07, Ron Blaschke <mailin...@rblasch.org> wrote:
>>
>> Not sure about the details of this issue, but r17772 seems to build fine
>> on Cygwin.
>
> Really? No one on #parrot has been able to get parrot to work on Cygwin
> for months.

Interesting, didn't know about this.


> The reason has changed since this specific ticket but if you
> have a working cygwin build can you please share more details such as:

Could you, or someone else, please add the error message to the ticket,
or create a new one? Maybe I can help with that.

It's a fairly standard Windows XP SP2 box with Cygwin, everything up to
date. I have tried to install everything optional (like ICU), too.

There's one important thing to remember. Although Cygwin may look
UNIXish, shared libraries are linked and loaded the Windows (DLL) Way.
IIRC, binaries on (some) UNIXish platforms remember their link paths, so
if you don't move the library the referrer can still find and load it.
Not so with Windows. A linked application just remembers the library
name, and the usual Windows DLL lookup applies.

On Window, which means MSWin32, not Cygwin, this is handled by copying
libparrot.dll into the root directory, where parrot.exe lives. For
Cygwin I added the blib/lib directory to the PATH. Which reminds me I
should really submit a patch for resolving this. Maybe just copy the
lib, like on "real" Windows.

Actually, if parrot can't find libparrot.dll it receives the exception
0xc0000135, which is Windows' way to say "DLL not found."

> perl -V

Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
Platform:
osname=cygwin, osvers=1.5.18(0.13242),
archname=cygwin-thread-multi-64int
uname='cygwin_nt-5.1 inspiron 1.5.18(0.13242) 2005-07-02 20:30 i686
unknown unknown cygwin '
config_args='-de -Dmksymlinks -Duse64bitint -Dusethreads
-Uusemymalloc -Doptimize=-O3 -Dman3ext=3pm -Dusesitecustomi
ze'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing
-pipe -I/usr/local/include',
optimize='-O3',
cppflags='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe
-I/usr/local/include'
ccversion='', gccversion='3.4.4 (cygming special) (gdc 0.12, using
dmd 0.125)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='ld2', ldflags =' -s -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
rb@sbs203 win32-x86-cygwin_1.5.24> perl -V
Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
Platform:
osname=cygwin, osvers=1.5.18(0.13242),
archname=cygwin-thread-multi-64int
uname='cygwin_nt-5.1 inspiron 1.5.18(0.13242) 2005-07-02 20:30 i686
unknown unknown cygwin '
config_args='-de -Dmksymlinks -Duse64bitint -Dusethreads
-Uusemymalloc -Doptimize=-O3 -Dman3ext=3pm -Dusesitecustomi
ze'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing
-pipe -I/usr/local/include',
optimize='-O3',
cppflags='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe
-I/usr/local/include'
ccversion='', gccversion='3.4.4 (cygming special) (gdc 0.12, using
dmd 0.125)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='ld2', ldflags =' -s -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lgdbm -ldb -lcrypt -lgdbm_compat
perllibs=-lcrypt -lgdbm_compat
libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' -s'
cccdlflags=' ', lddlflags=' -s -L/usr/local/lib'


Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_64_BIT_INT
USE_LARGE_FILES USE_SITECUSTOMIZE
PERL_IMPLICIT_CONTEXT
Locally applied patches:
SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962
Built under cygwin
Compiled at Dec 30 2005 02:44:25
%ENV:
CYGWIN=""
@INC:
/usr/lib/perl5/5.8/cygwin
/usr/lib/perl5/5.8
/usr/lib/perl5/site_perl/5.8/cygwin
/usr/lib/perl5/site_perl/5.8
/usr/lib/perl5/site_perl/5.8/cygwin
/usr/lib/perl5/site_perl/5.8
/usr/lib/perl5/vendor_perl/5.8/cygwin
/usr/lib/perl5/vendor_perl/5.8
/usr/lib/perl5/vendor_perl/5.8/cygwin
/usr/lib/perl5/vendor_perl/5.8
.

> perl Configure.pl

Parrot Version 0.4.10 Configure 2.0
Copyright (C) 2001-2007, The Perl Foundation.

Hello, I'm Configure. My job is to poke and prod your system to figure out
how to build Parrot. The process is completely automated, unless you
passed in
the `--ask' flag on the command line, in which case it'll prompt you for
a few
pieces of info.

Since you're running this program, you obviously have Perl 5--I'll be
pulling
some defaults from its configuration.

Checking MANIFEST.....................................................done.
Setting up Configure's default values.................................done.
Setting up installation paths.........................................done.
Tweaking settings for miniparrot...................................skipped.
Loading platform and local hints files................................done.
Determining nongenerated header files.................................done.
Determining what C compiler and linker to use.........................done.
Determining whether make is installed..................................yes.
Determining whether lex is installed...............................skipped.
Determining whether yacc is installed..............................skipped.
Determining if your C compiler is actually gcc.........................yes.
Determining if your C compiler is actually Visual C++...................no.
Enabling optimization...................................................no.
Determining flags for building shared libraries.......................done.
Determine if parrot should be linked against a shared library..........yes.
Determining what charset files should be compiled in..................done.
Determining what encoding files should be compiled in.................done.
Determining what types Parrot should use..............................done.
Determining what opcode files should be compiled in...................done.
Determining what pmc files should be compiled in......................done.
Determining your minimum pointer alignment......................... 1 byte.
Probing for C headers.................................................done.
Determining some sizes................................................done.
Computing native byteorder for Parrot's wordsize.............little-endian.
Test the type of va_ptr (this test is likely to segfault)..............x86.
Figuring out how to pack() Parrot's types.............................done.
Figuring out what formats should be used for sprintf..................done.
Determining if your C library has a working S_ISREG....................yes.
Determining architecture, OS and JIT capability.......................done.
Generating CPU specific stuff.........................................done.
Verifying that the compiler supports function pointer casts............yes.
Determining whether your compiler supports computed goto...............yes.
Determining if your compiler supports inline...........................yes.
Determining what allocator to use.....................................done.
Determining if your C library supports memalign........................yes.
Determining some signal stuff.........................................done.
Determining whether there is socklen_t.................................yes.
Determining if your C library has setenv / unsetenv...................both.
Determining if your platform supports AIO...............................no.
Determining if your platform supports GMP..............................yes.
Determining if your platform supports readline.........................yes.
Determining if your platform supports gdbm.............................yes.
Testing snprintf......................................................done.
Determining whether perldoc is installed...............................yes.
Determining whether python is installed.........................yes, 2.5.0.
Determining whether GNU bc is installed................................yes.
Determining whether GNU m4 is installed.................................no.
Running CPU specific stuff............................................done.
Determining whether ICU is installed...................................yes.
Determining Parrot's revision.......................................r17772.
Generating C headers..................................................done.
Generating core pmc list..............................................done.
Generating runtime/parrot/include.....................................done.
Configuring languages.................................................done.
Generating makefiles and other build files............................done.
Moving platform files into place......................................done.
Recording configuration data for later retrieval......................done.
Okay, we're done!

You can now use `make' to build your Parrot.
(NOTE: do not use `make -j <n>'!)
After that, you can use `make test' to run the test suite.

Happy Hacking,
The Parrot Team
> which gcc

/usr/bin/gcc

> gcc -v

Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with:
/usr/build/package/orig/test.respin/gcc-3.4.4-3/configure --verbose
--prefix=/usr --exec-prefix=/usr --
sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib
--mandir=/usr/share/man --infodir=/usr/share/info --enable-langu
ages=c,ada,c++,d,f77,pascal,java,objc --enable-nls
--without-included-gettext --enable-version-specific-runtime-libs --w
ithout-x --enable-libgcj --disable-java-awt --with-system-zlib
--enable-interpreter --disable-libgcj-debug --enable-thre
ads=posix --enable-java-gc=boehm --disable-win32-registry
--enable-sjlj-exceptions --enable-hash-synchronization --enabl
e-libstdcxx-debug
Thread model: posix
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)

> windows version (usually winver from command line)

Windows XP, Service Pack 2, latest patches.

> output of make (as an attachment)

Done.

> strings /bin/cygwin1.dll | grep -i cygwin-1. (just need 1 line of output
> to determine version of cygwin1.dll)

/ext/build/netrel/src/cygwin-1.5.24-2/winsup/cygwin/cygheap.cc

The version is "1.5.24-cr-0x5f1".

>
> Cheers,
> Joshua Gatcomb
> a.k.a. Limbic~Region

Ron

make.log

Eric Hanchrow

unread,
Mar 28, 2007, 12:56:16 PM3/28/07
to perl6-i...@perl.org
I use Cygwin and am willing to occasionally test the build on it.
Alas I have no clue how to actually -develop- for Cygwin, so I doubt
I'd be much help fixing any problems that I find. But I'd be happy to
"svn up; perl Configure.pl && make all test" and summarize or post the
results.
--
I'd like to see Rush Limbaugh tell Omar he can't get
married.
--Alex Kotlowitz. You hadda be there

Nick Glencross

unread,
Mar 28, 2007, 1:34:01 PM3/28/07
to perl6-i...@perl.org, Joshua Gatcomb, r...@rblasch.org
Hi All!

On 28/03/07, Ron Blaschke <mailin...@rblasch.org> wrote:
> Joshua Gatcomb wrote:
> > On 3/26/07, Ron Blaschke <mailin...@rblasch.org> wrote:
> >>
> >> Not sure about the details of this issue, but r17772 seems to build fine
> >> on Cygwin.
> >
> > Really? No one on #parrot has been able to get parrot to work on Cygwin
> > for months.


It's been a while since I've posted here! I contributed a few tweaks
for Cygwin some time back to help it build a bit smoother, but haven't
tried in the last 12 months due to work commitments. However, one
thing I note is that footnote *1 in Platforms has become orphaned in
r16662, which is ironically when it was changed to Broken.

Nick

Bernhard Schmalhofer

unread,
Mar 28, 2007, 1:49:34 PM3/28/07
to Eric Hanchrow, perl6-i...@perl.org
Eric Hanchrow schrieb:

> I use Cygwin and am willing to occasionally test the build on it.
> Alas I have no clue how to actually -develop- for Cygwin, so I doubt
> I'd be much help fixing any problems that I find. But I'd be happy to
> "svn up; perl Configure.pl && make all test" and summarize or post the
> results.
>
You can also use make smoke', as documented in docs/tests.pod.
The results of smoke testing should show up in
http://smoke.parrotcode.org/smoke/.

Regards, Bernhard

Eric Hanchrow

unread,
Mar 28, 2007, 3:08:53 PM3/28/07
to perl6-i...@perl.org
>>>>> "Joshua" == Joshua Gatcomb <joshua....@gmail.com> writes:

Joshua> Really? No one on #parrot has been able to get parrot to
Joshua> work on Cygwin for months. The reason has changed since
Joshua> this specific ticket but if you have a working cygwin
Joshua> build can you please share more details such as:

I doubt this is terribly useful, but I cannot get the cygwin build
working, and here's the output that I see. This is with r17772, which
someone claimed worked for them.

mail-me

Paul Cochrane

unread,
Mar 29, 2007, 4:54:27 AM3/29/07
to Eric Hanchrow, perl6-i...@perl.org
I don't know if it's of much help, but I too am getting the Cygwin
build barfing when miniparrot goes to build
runtime/parrot/include/config.fpmc.

Paul

Ron Blaschke

unread,
Mar 29, 2007, 6:07:11 AM3/29/07
to Paul Cochrane, Eric Hanchrow, perl6-i...@perl.org

I think that's actually a good sign. Try adding the absolute path to
F<blib/lib> and try again. If this is working please see my previous
post in this thread about library loading.

> Paul
Ron

Ron Blaschke

unread,
Mar 29, 2007, 6:33:27 AM3/29/07
to Joshua Gatcomb, perl6-i...@perl.org
Joshua Gatcomb wrote:

> On 3/28/07, Ron Blaschke <mailin...@rblasch.org> wrote:
>> Joshua Gatcomb wrote:

> If you could hang out on #parrot (irc.perl.org) when myself, Jonathan,
> particle, etc are around - it would go a long way towards getting a
> reproduceable test case that can be correctly articulated as to the nature
> of the problem. A few years ago I used to build parrot on cygwin daily and
> opened several tickets that years later I was asked if were still
> applicable. I am not interested in repeating the past.

Yes, that's bad.

> Despite having GMP and bc installed Configure.PL doesn't find them.
> I am interested in knowing why this is but I doubt it has anything to do
> with the problem.

GMP I don't know, but bc is explicitly disabled on all but selected
platforms. I have enabled it on my box a few days ago and will submit a
patch to add cygwin if it causes no problems. Also, the message should
say "skipped on this platform" or something similar, instead of "no."

> Here is the tail end of my make output:

Don't know if this is any help, but I'm seeing the exact output if I
remove C<-lparrot> while linking miniparrot.

Ron

Ron Blaschke

unread,
Mar 30, 2007, 4:16:33 AM3/30/07
to Paul Cochrane, Eric Hanchrow, perl6-i...@perl.org

Sorry, I guess there was some mental PATH overloading going on. Try
adding the absolute path to F<blib/lib> to PATH.

export PATH=/path/to/parrot/blib/lib:$PATH

And then "make."

Ron

Ron Blaschke

unread,
Mar 30, 2007, 10:35:52 AM3/30/07
to Paul Cochrane, Eric Hanchrow, perl6-i...@perl.org
Paul Cochrane wrote:
>> Sorry, I guess there was some mental PATH overloading going on. Try
>> adding the absolute path to F<blib/lib> to PATH.
>>
>> export PATH=/path/to/parrot/blib/lib:$PATH
>>
>> And then "make."
>
> I tried this (although, I appended the blib path to PATH, not sure if
> that makes a difference) and parrot builds, but it fails a whole heap
> of tests, and gets to t/src/io.t and eventually runs out of memory.
> Attached is the 'make test' output of parrot from r17829.

The first libparrot.dll in PATH is used, so unless you've got an
installed Parrot it shouldn't matter.

I'm getting the same test results. That's the current state of Parrot
on Cygwin. See http://smoke.parrotcode/org/smoke section i386-cygwin-gcc.

Actually, you can't smoke parrot without user intervention.
F<t/src/io.t> seems to consume an infinite amount of memory, or at least
tries to. Haven't look into the details yet, but I think one test
creates an executable io_4.exe which doesn't stop printing results,
which cause the out of memory situation. I usually just kill io_4.exe.
(I know, that's a bad thing, but that's what bad people do.)

Not 100% on this, but I think one or two of the stm tests hang, too.

Ron

Chromatic

unread,
Mar 30, 2007, 12:52:57 PM3/30/07
to perl6-i...@perl.org, r...@rblasch.org
On Friday 30 March 2007 07:35, Ron Blaschke wrote:

> Not 100% on this, but I think one or two of the stm tests hang, too.

t/pmc/stmlog.t, test 2?

-- c

Ron Blaschke

unread,
Mar 30, 2007, 1:18:14 PM3/30/07
to chromatic, perl6-i...@perl.org, r...@rblasch.org

No, I think this one's fine. More like t/stm/queue.t test 2 and
t/stm/runtime.t test 4. Actually, t/stm/queue.t sometimes seems to work
(see cygwin smokes).

Ron

Ron Blaschke

unread,
Mar 30, 2007, 3:23:53 PM3/30/07
to Eric Hanchrow, Paul Cochrane, perl6-i...@perl.org
Eric Hanchrow wrote:

> I think it's relevant to note that I'm using the native Win32
> subversion client, and hence most of my files are in DOS format:
> carriage-return/linefeed at the end of each line. If I convert that
> file's line endings to Unix format (plain line-feeds) it works.

You're right, that's the missing piece. If, after a successful build, I
delete F<runtime/parrot/library/Crow.pbc>, unix2dos Crow.pir and try to
build Crow.pbc again I get the same error.

> make runtime/parrot/library/Crow.pbc
./parrot.exe -o runtime/parrot/library/Crow.pbc
runtime/parrot/library/Crow.pir
error:imcc:syntax error, unexpected $end
in file 'runtime/parrot/library/Crow.pir' line 146
make: *** [runtime/parrot/library/Crow.pbc] Error 1

Ron

Eric Hanchrow

unread,
Mar 30, 2007, 2:45:30 PM3/30/07
to r...@rblasch.org, Paul Cochrane, perl6-i...@perl.org
>>>>> "Ron" == Ron Blaschke <mailin...@rblasch.org> writes:
Ron> Sorry, I guess there was some mental PATH overloading going
Ron> on. Try adding the absolute path to F<blib/lib> to PATH.

Ron> export PATH=/path/to/parrot/blib/lib:$PATH

Ron> And then "make."

OK, that gets me past that failure, but then I run into another; see
attached.

mail-me
Reply all
Reply to author
Forward
0 new messages