Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

like image 814
jaccus Avatar asked Aug 08 '12 15:08

jaccus


2 Answers

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...

like image 157
Stephan Lokum Avatar answered Sep 23 '22 06:09

Stephan Lokum


A little note for people having this issue with other binaries like ssh. I had this error since cygwin was trying to run windows ssh client instead of the version in cygwin

like image 29
Nuno Furtado Avatar answered Sep 26 '22 06:09

Nuno Furtado