Compiling Perl under b20.1

Charles Wilson
Sun Mar 7 23:19:00 GMT 1999

Sebastien Barre wrote:

> At 15:07 06/03/99 -0500, Charles Wilson wrote:
> (some solutions, and some new problems regarding installation (new patch ?)
> and Modules)

WOW! You haven't been working on this all day, have you?

Let me summarize, and see if I've got this straight:
(1) according to Earnie Boyd (but contradicted by Pierre Humblet) CYGWIN=binmode
should have no effect. Two contradictory authorities, hmmm...we'll call this one an
open question. However, since CYGWIN=binmode is the default (?? - geez, I'm not
sure of *anything* anymore) and all of your tests were either CYGWIN=binmode or
CYGWIN=________, not CYGWIN=nobinmode, you really weren't changing anything here.
So, we'll throw that variable out.

(2) Text-mounted build, text-mounted tests, CYGWIN=__________. test results
(abbreviated version)

9 tests skipped, plus 20 subtests skipped.
Failed 7/186 test scripts, 96.24% okay. 39/6193 subtests failed, 99.37% okay.

(3) Text-mounted build, text-mounted tests, CYGWIN=ntea. test results

> 10 tests skipped, plus 20 subtests skipped.
> Failed 6/186 test scripts, 96.77% okay. 33/6191 subtests failed, 99.47% okay.

(4) Text-mounted build, binary-mounted test, CYGWIN=ntea binmode. test results

> 10 tests skipped, plus 20 subtests skipped.
> Failed 4/186 test scripts, 97.85% okay. 11/6191 subtests failed, 99.82% okay.
> Bingo ! This is similar to you, except for this test (yours) :
> op/stat.t                    58    2   3.45%  4, 35

Okay, digging into the stat.t code: You failed tests 18-20 and 26 in stat.t.  Tests
18-20 are testing (readable by owner?) (writeable by owner?) and (executable by
owner) after doing a chmod 0700. I can't remember if I was building perl under the
Administrator account or under my normal NT user account. But, the "everything
created by a member of the Administrators group belongs to the group, not the user"
NTism may be the culprit here.

Test 26 is testing (I just wrote this file. Do I own it?). Again, probably that
ugly NTism.

So, here's another item for the build-kit: {Do / Don't} build as an member of
Administrators group.

(5) Binary-mounted build, binary-mounted test, CYGWIN=ntea binmode.

So, you set ntea, (and binmode....), mounted everything binary, applied the
patches, and *rebuilt.* Rebuild was successful, and the test had similar (NOT
identical) results to (4) above. stat.t failed on tests "*2*, 18-20, 26, 35", not
"*4*, 18-20, 26, 35". Okay, what's the difference between tests 2 and 4? Well, I
don't completely understand them, but they seem to be comparing file-creation times
and file-modified times. I don't really get it. ????

> 10 tests skipped, plus 20 subtests skipped.
> Failed 4/186 test scripts, 97.85% okay. 11/6191 subtests failed, 99.82% okay.
> => which is exactly the same as previously. This means that binary and/or
> text mode *might not* (I'm still wondering)  influence the perl build, only
> it's runtime behaviour, like tests.

I believe you are correct. The only real difference between your original
text-mounted build / binary-mounted tests (with appropriate CYGWIN settings) -- ie.
number (4) -- and mine was the extra failures you got on op/stat.t, which I believe
are due to Administrators group problems.

(6) binary-mounted build, binary mounted test, CYGWIN=ntea
> same results (as (4) and (5)), 4 tests failed !

(7) binary-mounted build, text mounted test, CYGWIN=ntea
>  6 tests failed (same as (3))

(8) binary-mounted build, text mounted test, CYGWIN=ntea binmode
> same as (4) and (5)

My conclusions are the same as yours:
    (1) Earnie is right ==> binmode has no effect
    (2) binary mounted / text mounted don't affect the build, only the runtime
behavior and tests. Why is another question.

=> this seems to highlight your explanation. The sdbm and anydbm script

> open files, and they will fail if these file are opened in text mode ? This
> might be logical if these scripts try to read Unix-text files included in
> the distribution, but is strange if they *create* these files, because
> whatever the mode the translation should work (pb will raise only if
> different text mode collide).

Yup. Very strange. I don't really understand Perl all that well (I built the thing
so I could play with it...) I notice that the "problem" tests, anydbm and sdbm,
"open" the files using a construct like:

print (tie(%h,AnyDBM_File,'Op_dbmx', O_RDWR|O_CREAT, 0640)
    ? "ok 1\n" : "not ok 1\n");

I just assumed that the file-open flags would be passed to an fopen()-like function
directly, but maybe I was wrong...I dunno.

> => I do NOT know what to choose : binary mount and 'nobinmode' in CYGWIN,
> or 'text mount' and 'binmode' in CYGWIN ? For now on, I guess I might
> better mount my cygwin partitions as binary, so that build and tests of
> classical Unix tools might have a better chance to succeed. But I choose
> cygwin32 so that I might use Unix tools on (text) files created with
> Windows software : what shall I do ? For sure, I will have to experiment :
> leaving CYGWIN *without* 'binmode' for the moment, and if it fails, put
> 'binmode' back to CYGWIN... Any advice based on real-life experience ?

Well, your experiments show that binmode doesn't matter - besides, it's the
default. The only real issue here is that the CR/LF translation (which should be
invisible to the application ?) doesn't seem to be working properly when you've got
the partition mounted text.

Reply to the rest of your message in a followup (this one's getting way too long.)


Want to unsubscribe from this list?
Send a message to

More information about the Cygwin mailing list