"couldn't make stderr distinct from stdout" when running Cygwin commands

jaccus picture jaccus · Aug 8, 2012 · Viewed 11.4k times · Source

I am trying to setup some old version of Cygwin on my Windows 7 x64 OS. So far so good. Now I am stuck at srdout/stderr distinction problem:

$ vmake
  1 [main] make 7060 dtable::stdio_init: couldn't make stderr distinct from stdout

$ ls /
  1 [main] ls 8180 dtable::stdio_init: couldn't make stderr distinct from stdout
Cygwin.bat  Cygwin.ico  bin  cygdrive  etc  lib  proc  setup.log  setup.log.full  tmp  usr  var

I am running:

$ uname -srv
  1 [main] uname 5876 dtable::stdio_init: couldn't make stderr distinct from stdout
CYGWIN_NT-6.1-WOW64 1.5.25(0.156/4/2) 2008-06-12 19:34

The Cygwin installation had DOS line-endings option selected (for some legacy code compatibility).

To fix another issues with line endings (bash had troubles processing /cygdrive/c/cygwin-legacy/bin/vmake script, like issue described here: http://chess.eecs.berkeley.edu/softdevel/faq/5.html ) I've added these to ~/.bash_profile:

export SHELLOPTS
set -o igncr

After reading http://lists-archives.com/cygwin/50369-run-requires-cygwin-tty.html I also set:

$ CYGWIN=tty

This changed nothing. I am still getting

1 [main] make 7060 dtable::stdio_init: couldn't make stderr distinct from stdout

with different 4-digit number each time.

Answer

Stephan Lokum picture Stephan Lokum · Oct 18, 2012

I have had the same problem here. Then I remembered, that we replaced the "make" command by an MSYS-Version (since the 'make' of the new cygwin package did not handle any pathes with colons (":") -> this lead to "multiple target" errors.

The replacement of the 'make' command solved this problem, but caused "stdio_init: couldn't make stderr distinct from stdout" when I was trying to compile other projects.

Therefore:

Do you have MSYS/MinGW installed on your machine, too ?

Try this:

make --version

it should look like:

GNU Make 3.82.90
Built for i686-pc-cygwin

if you get something like:

GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i686-pc-msys

You need to use the cygwin 'make' instead.

Perhaps this error occurs if you mix up the components of different cygwin versions...