Subject: Re: Just updated cygutils and cygstart no longer works
From: Brian Inglis <[email-masked]>
To: [email-masked]
Date: Fri, 13 Aug 2021 20:41:25 -0600
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>

On 2021-08-13 19:54, Takashi Yano via Cygwin wrote:
> On Fri, 13 Aug 2021 15:20:40 -0700, Mark Geisert wrote:
>> Jay Abel via Cygwin wrote:
>>> On Fri, Aug 13, 2021 at 10:27 AM Jay Abel <[email-masked]> 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.

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

Any chance this could have been built with test gcc 11 using 
non-standard values instead of defaults -march=x86-64/i686 -mtune=generic?

Could validate by posting /proc/cpuinfo output from non-/working systems 
using e.g.

$ awk '/^processor\t+: +0$/,/^$/' /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 21
model           : 101
model name      : AMD A10-9700 RADEON R7, 10 COMPUTE CORES 4C+6G
stepping        : 1
microcode       : 0x6006118
cpu MHz         : 3500.000
cache size      : 1024 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 22
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge 
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext 
fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good acc_power nopl 
tsc_reliable nonstop_tsc cpuid aperfmperf pni pclmuldq monitor ssse3 fma 
cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm 
cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch 
osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm perfctr_core 
perfctr_nb bpext ptsc mwaitx cpb hw_pstate fsgsbase bmi1 avx2 smep bmi2 
xsaveopt arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean 
flushbyasid decode_assists pausefilter pfthreshold avic v_vmsave_vmload 
vgif overflow_recov
bogomips        : 7000.00
TLB size        : 1536 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro acc_power

$ awk '/^processor\t+: +0$/,/^$/' /proc/cpuinfo | fgrep avx
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge 
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext 
fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good acc_power nopl 
tsc_reliable nonstop_tsc cpuid aperfmperf pni pclmuldq monitor ssse3 fma 
cx16 sse4_1 sse4_2 movbe popcnt aes xsave *avx* f16c rdrand lahf_lm 
cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch 
osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm perfctr_core 
perfctr_nb bpext ptsc mwaitx cpb hw_pstate fsgsbase bmi1 *avx*2 smep 
bmi2 xsaveopt arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean 
flushbyasid decode_assists pausefilter pfthreshold avic v_vmsave_vmload 
vgif overflow_recov

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]

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