tytso / e2fsprogs

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

Building for Windows #176

Open jaehongyoon opened 7 months ago

jaehongyoon commented 7 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?