public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: "Dave Korn" <dave.korn.cygwin@googlemail.com>
To: cygwin@cygwin.com
Subject: Re: GNU coreutils does not work on Cygwin because of freopen() ?
Date: Sun, 18 Jan 2009 22:19:00 -0000	[thread overview]
Message-ID: <2ca21dcc0901181342p5d565f2bhdabf09ed769b427b@mail.gmail.com> (raw)
In-Reply-To: <49739071.8030307@dazjorz.com>

dazjorz wrote:

> - Cygwin didn't have md5sum,

  Cygwin does have md5sum in coreutils.  You can see this at the cygwin
package list:

   http://cygwin.com/packages/

by entering 'md5sum.exe' in the search box.

> - It should work, and "Because I Can" is always a valid reason in UNIX
> world

  However, you may have to recreate all the cygwin-specific patches that the
cygwin bash maintainer hasn't managed to send upstream yet...

> - I'm trying to bootstrap Debian on Cygwin, and coreutils from Debian is
> my first try; getting coreutils from Cygwin may be done later.

  Dunno if your project makes sense.  You'll have to end up porting
everything where the differences in the underlying OS show through... which is
basically what Cygwin package maintainers have already done for most of this
stuff.  Do you mean you're trying to cross-compile Debian on Cygwin, or do you
actually want to build the whole Debian distro under Cygwin to run on Windows
rather than natively under a linux kernel?

> However, I noticed there are some very weird bugs happening. See for
> example, this bug in cat (don't look at the title of the page, I blamed
> bash first)
> http://paster.dazjorz.com/?p=3845
>
> A friend of mine and me have been trying to figure out what causes this.
> First, we tested if it wasn't a bug in open() + fork(). This seemed not
> to be the case. So we started looking further, and we're down to GNU
> `cat` calling freopen(). This is not POSIX-compliant and can cause
> problems like this.

?? Are you using an old version??  It should be fixed by now.

http://www.mail-archive.com/bug-coreutils@gnu.org/msg10188.html

> `cat` and other coreutils tools only call freopen() if O_BINARY is
> defined on this platform. It's defined on Cygwin, because Cygwin makes a
> difference between O_TEXT and O_BINARY.
>
> 1. Why does Cygwin distinguish between O_TEXT and O_BINARY? Shouldn't
> this difference be removed from the Linux API side of Cygwin?

  Nope.  Cygwin runs on windows, which uses CR-LF for line endings, but
Cygwin is POSIX-compliant and uses LF internally.  This is exactly what O_TEXT
was invented for: it translates LF->CRLF on write and CRLF->LF on read.  On
Linux platforms, the native format is LF line-ends, so O_TEXT and O_BINARY are
the same, but not here.

> 2. I don't know why coreutils is calling freopen() at all. Should I
> patch it out completely, or add something like an #ifndef __CYGWIN__
> around the pieces of code in question?

  Well, if you really want to build coreutils under cygwin, why not use
setup.exe to install the corresponding source package, which comes with all
these problems pre-solved for you?

    cheers,
      DaveK

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

  reply	other threads:[~2009-01-18 21:42 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-18 21:21 dazjorz
2009-01-18 22:19 ` Dave Korn [this message]
2009-01-19  2:42   ` Eric Blake
2009-01-18 21:25 dazjorz
2009-01-18 21:37 ` Larry Hall (Cygwin)
2009-01-18 21:42   ` Sjors Gielen
2009-01-18 22:19     ` Yaakov (Cygwin/X)
2009-01-18 22:22       ` Sjors Gielen
2009-01-18 22:26         ` Matt Wozniski
2009-01-18 22:29         ` Ed Schouten
2009-01-19  2:16           ` Eric Blake
2009-01-18 23:52         ` Eric Blake

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2ca21dcc0901181342p5d565f2bhdabf09ed769b427b@mail.gmail.com \
    --to=dave.korn.cygwin@googlemail.com \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).