bash-minimal fails to build on x86_64-w64-mingw32

  • Open
  • quality assurance status badge
Details
One participant
  • Ekaitz Zarraga
Owner
unassigned
Submitted by
Ekaitz Zarraga
Severity
normal
E
E
Ekaitz Zarraga wrote on 16 Mar 2023 20:50
(name . bug-guix@gnu.org)(address . bug-guix@gnu.org)
w5ToAECm6QVz81owny9pmPnjKuy2Mf0jVTA17w4HNLw653YowDp9SFpV_cecIsdqzKik9N40o1LqviSIQhSkhSizFHn0exzgxO0Z8ZCZkPA=@elenq.tech
Any package that uses `bash-minimal` to build in mingw (all of them?) fails when trying to build `bash-minimal` with the following error:

```
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `build'
rm -f mksyntax.exe
gcc -DPROGRAM='"bash.exe"' -DCONF_HOSTTYPE='"x86_64"' -DCONF_OSTYPE='"mingw32"' -DCONF_MACHTYPE='"x86_64-w64-mingw32"' -DCONF_VENDOR='"w64"' -DLOCALEDIR='"/gnu/store/lb1afqc8mx7jjynpf8qbn6mc13h9p4ji-bash-minimal-5.1.8/share/locale"' -DPACKAGE='"bash"' -DSHELL -DHAVE_CONFIG_H -I. -I. -I./include -I./lib -g -DCROSS_COMPILING -g -DCROSS_COMPILING -o mksyntax.exe ./mksyntax.c
In file included from ./mksyntax.c:23:
./config.h:361:19: error: two or more data types in declaration specifiers
361 | #define socklen_t unsigned int
| ^~~~~~~~
./config.h:361:28: error: two or more data types in declaration specifiers
361 | #define socklen_t unsigned int
| ^~~
make: *** [Makefile:720: mksyntax.exe] Error 1
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: () exit-status: 2 term-signal: #f stop-signal: #f>
phase `build' failed after 0.0 seconds
command "make" failed with status 2
note: keeping build directory `/tmp/guix-build-bash-minimal-5.1.8.drv-2'
builder for `/gnu/store/r3kiyak1js85m8achjf9jcbqq7asmjy3-bash-minimal-5.1.8.drv' failed with exit code 1
build of /gnu/store/r3kiyak1js85m8achjf9jcbqq7asmjy3-bash-minimal-5.1.8.drv failed
View build log at '/var/log/guix/drvs/r3/kiyak1js85m8achjf9jcbqq7asmjy3-bash-minimal-5.1.8.drv.gz'.
```

I'll investigate but I don't think I'll reach far on this one.

I already tried removing the offending lines from the `config.h` but other errors appear (how surprising :) )

Thanks all,
Ekaitz
E
E
Ekaitz Zarraga wrote on 1 Apr 2023 13:14
(name . 62226@debbugs.gnu.org)(address . 62226@debbugs.gnu.org)
w6O3eWqBMn7g1oZS1-4SFahGohlakG_MOkBE-B6MmDutk1DmjEww6mTAeZRRjDSBpnRJbAVv3a1HT1X52cfgB-f0O04WpMyAiVVvloerRMo=@elenq.tech
Hi,

Adding:

```
"ac_cv_header_sys_socket_h=no"
```

To configure flags in the case the target is mingw solves the first issue, but more issues appear.

I have no enough knowledge about autotools to dig into this much further but it looks like we are finding wrong stuff in the configure step:

```
In file included from shell.c:28:
config.h:340:18: error: ‘long long long’ is too long for GCC
340 | #define intmax_t long long
| ^~~~
config.h:340:23: error: ‘long long long’ is too long for GCC
340 | #define intmax_t long long
| ^~~~
config.h:343:19: error: duplicate ‘unsigned’
343 | #define uintmax_t unsigned long long
| ^~~~~~~~
config.h:343:28: error: ‘long long long’ is too long for GCC
343 | #define uintmax_t unsigned long long
| ^~~~
config.h:343:33: error: ‘long long long’ is too long for GCC
343 | #define uintmax_t unsigned long long
| ^~~~
In file included from bashjmp.h:24,
from shell.h:25,
from shell.c:53:
./include/posixjmp.h:29:21: error: unknown type name ‘sigjmp_buf’
29 | # define procenv_t sigjmp_buf
| ^~~~~~~~~~
bashjmp.h:26:8: note: in expansion of macro ‘procenv_t’
26 | extern procenv_t top_level;
| ^~~~~~~~~
./include/posixjmp.h:29:21: error: unknown type name ‘sigjmp_buf’
29 | # define procenv_t sigjmp_buf
| ^~~~~~~~~~
bashjmp.h:27:8: note: in expansion of macro ‘procenv_t’
27 | extern procenv_t subshell_top_level;
| ^~~~~~~~~
./include/posixjmp.h:29:21: error: unknown type name ‘sigjmp_buf’
29 | # define procenv_t sigjmp_buf
| ^~~~~~~~~~
bashjmp.h:28:8: note: in expansion of macro ‘procenv_t’
28 | extern procenv_t return_catch; /* used by `return' builtin */
| ^~~~~~~~~
./include/posixjmp.h:29:21: error: unknown type name ‘sigjmp_buf’
29 | # define procenv_t sigjmp_buf
| ^~~~~~~~~~
bashjmp.h:29:8: note: in expansion of macro ‘procenv_t’
29 | extern procenv_t wait_intr_buf;
| ^~~~~~~~~
In file included from shell.h:28,
from shell.c:53:
/gnu/store/7b119byi86gb3ab5x87ld9fz5xg5bwyd-mingw-w64-x86_64-10.0.0/include/ctype.h:144:13: error: expected identifier or ‘(’ before ‘int’
144 | int __cdecl isblank(int _C);
| ^~~~~~~
syntax.h:103:27: error: expected ‘)’ before ‘==’ token
103 | # define isblank(x) ((x) == ' ' || (x) == '\t')
| ^~
In file included from shell.h:29,
from shell.c:53:
general.h:33:12: fatal error: sys/resource.h: No such file or directory
33 | # include <sys/resource.h>
| ^~~~~~~~~~~~~~~~
compilation terminated.
```


ElenQ Technology
Ethical Innovation
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 62226@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 62226
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch