Opened 5 hours ago

Last modified 4 hours ago

#1862 new defect

Chicken 5.4.0 doesn't build on Windows — at Version 1

Reported by: MickeyKnox Owned by:
Priority: major Milestone: someday
Component: unknown Version: 5.4.0
Keywords: Cc: MickeyKnox
Estimated difficulty:

Description (last modified by MickeyKnox)

I've been following this guide to get up and running with Chicken on Windows:

https://wiki.call-cc.org/msys2#installing-chicken-50-on-msys2

When trying to compile Chicken I get compiler errors:

gcc -fno-strict-aliasing -fwrapv -DHAVE_CHICKEN_CONFIG_H -DC_ENABLE_PTABLES -c -Os  -DC_BUILDING_LIBCHICKEN posixwin.c -o posixwin-static.o -I. -I./
In file included from posixwin.c:9:
posixwin.c: In function 'f_4799':
posixwin.c:185:57: error: passing argument 2 of 'execve' from incompatible pointer type [-Wincompatible-pointer-types]
  185 | #define C_u_i_execve(f,a,e) C_fix(execve(C_c_string(f), (const char *const *)C_c_pointer_ve, (const char *const *)C_c_pointer_vector_or_null(e)))
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                         |
      |                                                         const char * const*
chicken.h:1046:56: note: in definition of macro 'C_fix'
 1046 | #define C_fix(n)                   ((C_word)((C_uword)(n) << C_FIXNUM_SHIFT) | C_FIXNUM_BIT)
      |                                                        ^
posixwin.c:9646:17: note: in expansion of macro 'C_u_i_execve'
 9646 | t6=(C_truep(t4)?C_u_i_execve(t2,t3,t4):C_u_i_execvp(t2,t3));
      |                 ^~~~~~~~~~~~
In file included from C:/msys64/ucrt64/include/unistd.h:11,
                 from chicken.h:134:
C:/msys64/ucrt64/include/process.h:187:64: note: expected 'char * const*' but argument is of type 'const char * const*'
  187 |   _CRTIMP int __cdecl execve(const char *_Filename,char *const _ArgList[],char *const _Env[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
      |                                                    ~~~~~~~~~~~~^~~~~~~~~~
posixwin.c:185:109: error: passing argument 3 of 'execve' from incompatible pointer type [-Wincompatible-pointer-types]
  185 | #define C_u_i_execve(f,a,e) C_fix(execve(C_c_string(f), (const char *const *)C_c_pointer_vector_or_null(a), (const char *const *)C_c_pointer_vector_or_null(e)))
      |
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |
                |
      |
                const char * const*
chicken.h:1046:56: note: in definition of macro 'C_fix'
 1046 | #define C_fix(n)                   ((C_word)((C_uword)(n) << C_FIXNUM_SHIFT) | C_FIXNUM_BIT)
      |                                                        ^
posixwin.c:9646:17: note: in expansion of macro 'C_u_i_execve'
 9646 | t6=(C_truep(t4)?C_u_i_execve(t2,t3,t4):C_u_i_execvp(t2,t3));
      |                 ^~~~~~~~~~~~
C:/msys64/ucrt64/include/process.h:187:87: note: expected 'char * const*' but argument is of type 'const char * const*'
  187 |   _CRTIMP int __cdecl execve(const char *_Filename,char *const _ArgList[],char *const _Env[) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
      |                                                                           ~~~~~~~~~~~~^~~~~
posixwin.c:184:57: error: passing argument 2 of 'execvp' from incompatible pointer type [-Wincompatible-pointer-types]
  184 | #define C_u_i_execvp(f,a)   C_fix(execvp(C_c_string(f), (const char *const *)C_c_pointer_ve))
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                         |
      |                                                         const char * const*
chicken.h:1046:56: note: in definition of macro 'C_fix'
 1046 | #define C_fix(n)                   ((C_word)((C_uword)(n) << C_FIXNUM_SHIFT) | C_FIXNUM_BIT)
      |                                                        ^
posixwin.c:9646:40: note: in expansion of macro 'C_u_i_execvp'
 9646 | t6=(C_truep(t4)?C_u_i_execve(t2,t3,t4):C_u_i_execvp(t2,t3));
      |                                        ^~~~~~~~~~~~
C:/msys64/ucrt64/include/process.h:188:64: note: expected 'char * const*' but argument is of type 'const char * const*'
  188 |   _CRTIMP int __cdecl execvp(const char *_Filename,char *const _ArgList[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
      |                                                    ~~~~~~~~~~~~^~~~~~~~~~
posixwin.c: In function 'f_4882':
posixwin.c:189:75: error: passing argument 3 of 'spawnvpe' from incompatible pointer type [-Wincompatible-pointer-types]
  189 | #define C_u_i_spawnvpe(m,f,a,e) C_fix(spawnvpe(C_unfix(m), C_c_string(f), (const char *cons, (const char *const *)C_c_pointer_vector_or_null(e)))
      |                                                                           ^~~~~~~~~~~~~~~~~
      |                                                                           |
      |                                                                           const char * const*
chicken.h:1046:56: note: in definition of macro 'C_fix'
 1046 | #define C_fix(n)                   ((C_word)((C_uword)(n) << C_FIXNUM_SHIFT) | C_FIXNUM_BIT)
      |                                                        ^
posixwin.c:9768:17: note: in expansion of macro 'C_u_i_spawnvpe'
 9768 | t6=(C_truep(t4)?C_u_i_spawnvpe(((C_word*)t0)[2],t2,t3,t4):C_u_i_spawnvp(((C_word*)t0)[2],t2,t3));
      |                 ^~~~~~~~~~~~~~
C:/msys64/ucrt64/include/process.h:199:75: note: expected 'char * const*' but argument is of type 'const char * const*'
  199 |   _CRTIMP intptr_t __cdecl spawnvpe(int,const char *_Filename,char *const _ArgList[],char *const _Env[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
      |                                                               ~~~~~~~~~~~~^~~~~~~~~~
posixwin.c:189:127: error: passing argument 4 of 'spawnvpe' from incompatible pointer type [-Wincompatible-pointer-types]
  189 | #define C_u_i_spawnvpe(m,f,a,e) C_fix(spawnvpe(C_unfix(m), C_c_string(f), (const char *const *)C_c_pointer_vector_or_null(a), (const char *const *)C_c_pointer_vector_or_null(e)))
      |
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |
                                  |
      |
                                  const char * const*
chicken.h:1046:56: note: in definition of macro 'C_fix'
 1046 | #define C_fix(n)                   ((C_word)((C_uword)(n) << C_FIXNUM_SHIFT) | C_FIXNUM_BIT)
      |                                                        ^
posixwin.c:9768:17: note: in expansion of macro 'C_u_i_spawnvpe'
 9768 | t6=(C_truep(t4)?C_u_i_spawnvpe(((C_word*)t0)[2],t2,t3,t4):C_u_i_spawnvp(((C_word*)t0)[2],t2,t3));
      |                 ^~~~~~~~~~~~~~
C:/msys64/ucrt64/include/process.h:199:98: note: expected 'char * const*' but argument is of type 'const char * const*'
  199 |   _CRTIMP intptr_t __cdecl spawnvpe(int,const char *_Filename,char *const _ArgList[],char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
      |                                                                                      ~~~~~~
posixwin.c:188:74: error: passing argument 3 of 'spawnvp' from incompatible pointer type [-Wincompatible-pointer-types]
  188 | #define C_u_i_spawnvp(m,f,a)    C_fix(spawnvp(C_unfix(m), C_c_string(f), (const char *const))
      |                                                                          ^~~~~~~~~~~~~~~~~~
      |                                                                          |
      |                                                                          const char * const
chicken.h:1046:56: note: in definition of macro 'C_fix'
 1046 | #define C_fix(n)                   ((C_word)((C_uword)(n) << C_FIXNUM_SHIFT) | C_FIXNUM_BIT)
      |                                                        ^
posixwin.c:9768:59: note: in expansion of macro 'C_u_i_spawnvp'
 9768 | t6=(C_truep(t4)?C_u_i_spawnvpe(((C_word*)t0)[2],t2,t3,t4):C_u_i_spawnvp(((C_word*)t0)[2],t2,t3));
      |                                                           ^~~~~~~~~~~~~
C:/msys64/ucrt64/include/process.h:198:74: note: expected 'char * const*' but argument is of type 'const char * const*'
  198 |   _CRTIMP intptr_t __cdecl spawnvp(int,const char *_Filename,char *const _ArgList[]) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
      |                                                              ~~~~~~~~~~~~^~~~~~~~~~
make: *** [rules.make:121: posixwin-static.o] Error 1

Change History (1)

comment:1 by MickeyKnox, 5 hours ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.