tytso / e2fsprogs

Ext2/3/4 file system utilities
http://ext4.wiki.kernel.org
383 stars 224 forks source link

Building for Windows #176

Open jaehongyoon opened 10 months ago

jaehongyoon commented 10 months ago

Hi Im trying to build the e2fsprogs for windows using mingw toolchain from Windows server 2022. I'ved tried to configure the make file to enable _XOPEN_SOURCE to 600 by export CFLAG="-g -O2 -D_XOPEN_SOURCE_=600" export CFLAGS_SHLIB ="-g -O2 -D_XOPEN_SOURCE_=600" export CFLAGS_STLIB ="-g -O2 -D_XOPEN_SOURCE_=600" ./configure --host=x86_64-w64-mingw32 and build thru make. Based on the make file generated and the output from make command call, seems like the the right toolchain is being used and _XOPEN_SOURCE is defined as 600 but Im getting ../../../source/e2fsprogs/lib/ss/listen.c:64:5: warning: implicit declaration of function 'sigemptyset' [-Wimplicit-function-declaration] 64 | sigemptyset(&igmask); | ^~~~~~~~~~~ ../../../source/e2fsprogs/lib/ss/listen.c:65:5: warning: implicit declaration of function 'sigaddset' [-Wimplicit-function-declaration] 65 | sigaddset(&igmask, SIGINT); | ^~~~~~~~~ ../../../source/e2fsprogs/lib/ss/listen.c:66:5: warning: implicit declaration of function 'sigprocmask' [-Wimplicit-function-declaration] 66 | sigprocmask(SIG_BLOCK, &igmask, &omask); | ^~~~~~~~~~~ ../../../source/e2fsprogs/lib/ss/listen.c:66:17: error: 'SIG_BLOCK' undeclared (first use in this function); did you mean 'SIG_ACK'? 66 | sigprocmask(SIG_BLOCK, &igmask, &omask); | ^~~~~~~~~ | SIG_ACK ../../../source/e2fsprogs/lib/ss/listen.c:66:17: note: each undeclared identifier is reported only once for each function it appears in ../../../source/e2fsprogs/lib/ss/listen.c:70:17: error: 'SIG_SETMASK' undeclared (first use in this function) 70 | sigprocmask(SIG_SETMASK, &omask, (sigset_t *) 0); | ^~~~~~~~~~~ ../../../source/e2fsprogs/lib/ss/listen.c:70:39: error: 'sigset_t' undeclared (first use in this function); did you mean 'sigret_t'? 70 | sigprocmask(SIG_SETMASK, &omask, (sigset_t *) 0); | ^~~~~~~~ | sigret_t ../../../source/e2fsprogs/lib/ss/listen.c:70:49: error: expected expression before ')' token 70 | sigprocmask(SIG_SETMASK, &omask, (sigset_t *) 0); | ^ ../../../source/e2fsprogs/lib/ss/listen.c:74:27: error: 'SIGCONT' undeclared (first use in this function); did you mean 'SIGINT'? 74 | sig_cont = signal(SIGCONT, print_prompt); | ^~~~~~~ | SIGINT I see from mingw headers that the SIG_BLOCK and SIG_SETMASK are defined in pthread.h so included those headers to resolve it but unsure if that is the right approach nor where to find reference of SIGCONT. Is there a configuration arguments to be passed to build for Windows thru MinGW64 that you recommend?