Just updated cygutils and cygstart no longer works

Takashi Yano takashi.yano@nifty.ne.jp
Sat Aug 14 01:54:05 GMT 2021


Hi Mark,

On Fri, 13 Aug 2021 15:20:40 -0700
Mark Geisert wrote:
> Hello Jay,
> 
> Jay Abel via Cygwin wrote:
> > Sorry, more information.  I'm running Windows 10, 64-bit, AMD.
> > 
> > I've reverted cygutils back to 1.4.16-2 and the problem is resolved.
> > 
> > Jay
> > 
> > On Fri, Aug 13, 2021 at 10:27 AM Jay Abel <jay.abel@gmail.com> wrote:
> > 
> >> Run cygstart with anything and no window opens.  I've tried URLS cygstart
> >> http://www.cygwin.com, directories cygstart . and cygstart ./  as well as
> >> pdf files cygstart example.pdf.
> >>
> >> None of these seems to do anything anymore.
> 
> I have the same setup as you but all seems well here.  With 1.4.16-3 installed all 
> four of your testcases work for me.  I don't know what to suggest.
> 
> When you have a chance, what does 'echo $?' say at the prompt after cygstart 
> finishes one of your testcases?  0 means successful, 1 (or something else) means 
> failure.

I have the same issue with cygstart in cygutils 1.4.16-3.
"cygstart .; echo $?" says 0.

This issue only happens in 64bit cygwin and cygstart in 32bit cygwin works.

To look into this problem, I tried to build cygutils from source,
however, it fails in the link stage of getclip with the error:

/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ld: src/clip/getclip.o: in function `getclip':
/usr/src/debug/cygutils-1.4.16-3/src/clip/getclip.c:431: undefined reference to `__imp_RtlUnicodeToUTF8N'

It seems that -lntdll flag is required to build it. Doesn't this error
happen in your environment?

So I modified Makefile.am to:
src_clip_getclip_LDADD              = -lpopt -lntdll
src_clip_putclip_LDADD              = -lpopt -lntdll
and tried to build again and succeeded.

The cygstart built locally works fine.

So I tried to debug cygstart using gdb and it says:
Thread 1 received signal SIGILL, Illegal instruction.

The disassembling result at $rip is:
=> 0x0000000100401c15 <+389>:   vmovdqa 0x18c3(%rip),%xmm0        # 0x1004034e0

This is a AVX instruction.

My CPU is Core i7-870, which does not support AVX.

Then I ran cygstart in another machine whose CPU is Core i7-4790
and it works without the issue.

Conclusion:
cygstart in cygutils 1.4.16-3 is compiled with AVX extentions,
therefore it can not run in old machine.

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>


More information about the Cygwin mailing list