Hello,
I have two reports. A brief description of the system:
$ uname -a | sed "s/${HOSTNAME}/\${HOSTNAME}/g"
CYGWIN_NT-10.0 ${HOSTNAME} 3.1.7(0.340/5/3) 2020-08-22 17:48 x86_64 Cygwin
The first report:
$ cpp /usr/include/threads.h
# 1 "/usr/include/threads.h"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/usr/include/threads.h"
/usr/include/threads.h:30:10: fatal error: machine/_threads.h: No such
file or directory
30 | #include <machine/_threads.h>
| ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
$ cygcheck -p machine/_threads.h
Found 0 matches for machine/_threads.h
$ cygcheck -f /usr/include/threads.h
cygwin-devel-3.1.7-1
$ cygcheck -c cygwin-devel
Cygwin Package Information
Package Version Status
cygwin-devel 3.1.7-1 OK
I'm not sure what to do from here. I don't remember where I ran into this,
but this feels like something that shouldn't happen
The second report:
$ cat test.c
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
long double a, b, c;
char *num_end = NULL;
a = b = c = 0.0L;
if (argc != 2) {
fprintf(stderr, "Usage: %s NUMBER\n", argv[0]);
exit(1);
}
a = strtold(argv[1], &num_end);
b = modfl(a, &c);
printf("%Lf %Lf %Lf\n", a, b, c);
return 0;
}
$ gcc -Og -ggdb -g3 -Wall -Wextra -std=c99 -pedantic test.c -o test.exe
$ ./test.exe 123.456
Segmentation fault (core dumped)
$ gdb --args ./test.exe 123.456
GNU gdb (GDB) (Cygwin 8.3.1-1) 8.3.1
...
Reading symbols from ./test.exe...
(gdb) break modfl
(gdb) run
Starting program: /home/Daniel/test.exe 123.456
[New Thread 13960.0x3cf4]
[New Thread 13960.0xbdc]
[New Thread 13960.0x4028]
[New Thread 13960.0x3224]
[New Thread 13960.0x3810]
[New Thread 13960.0x1ae4]
[New Thread 13960.0x3714]
[Thread 13960.0x4028 exited with code 3697672192]
[Thread 13960.0x3714 exited with code 0]
Thread 1 "test" hit Breakpoint 1, modfl (value=<optimized out>,
iptr=iptr@entry=0xffffcbd0) at
/usr/src/debug/cygwin-3.1.7-1/winsup/cygwin/math/modfl.c:16
16 asm ("subq $8, %%rsp\n"
(gdb) step
38 if (iptr)
(gdb) step
39 *iptr = int_part;
(gdb) step
40 return (isinf (value) ? 0.0L : value - int_part);
(gdb) step
0 [main] test 28439 cygwin_exception::open_stackdumpfile: Dumping
stack trace to test.exe.stackdump
[Thread 13960.0x3b5c exited with code 35584]
[Thread 13960.0x1ae4 exited with code 35584]
[Thread 13960.0x3810 exited with code 35584]
[Thread 13960.0xbdc exited with code 35584]
[Thread 13960.0x3cf4 exited with code 35584]
[Inferior 1 (process 13960) exited with code 0105400]
(gdb)
isinf and isinfl both work just fine, so I'm not sure what's going on there.
Please let me know if you need more information.
--
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