Hi Pals: Fail when compile emacs with jpeg library on MinGW32, then change the code to follow clip will compile successful, @@ -6189,7 +6189,7 @@ jpeg_image_p (Lisp_Object object) different name. This name, jpeg_boolean, remains in effect through the rest of image.c. */ -#if defined CYGWIN && defined HAVE_NTGUI +#if defined HAVE_NTGUI #define boolean jpeg_boolean #endif #include and the configure command is: ../emacs-24.4.src/configure --with-w32 PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/d/MinGW/lib/pkgconfig:/d/MinGW/mingw32/lib/pkgconfig:/d/MinGW/sys-root/lib/pkgconfig CFLAGS="-I/d/MinGW/sys-root/include -I/mingw/include -I/mingw/mingw32/include" LDFLAGS="-L/d/MinGW/sys-root/lib -L/mingw/lib -L/mingw/mingw32/lib" The error message without modification as follow: gcc -std=gnu99 -c -mtune=pentium4 -DUSE_CRT_DLL=1 -I /d/mydata/home/user123/work-dev/emacs-24.4.mingw/../emacs-24.4.src/nt/inc -Demacs -I. -I../../emacs-24.4.src/src -I../lib -I../../emacs-24.4.src/src/../lib -mtune=pentium4 -Id:/MinGW/sys-root/include/libxml2 -MMD -MF deps/image.d -MP -I/d/MinGW/sys-root/include -I/mingw/include -I/mingw/mingw32/include ../../emacs-24.4.src/src/image.c ../../emacs-24.4.src/src/image.c:1843:68: error: expected declaration specifiers or '...' before '*' token #define DEF_IMGLIB_FN(rettype,func,args) static rettype (FAR CDECL *fn_##func)args ^ ../../emacs-24.4.src/src/image.c:6203:1: note: in expansion of macro 'DEF_IMGLIB_FN' DEF_IMGLIB_FN (boolean, jpeg_start_decompress, (j_decompress_ptr)); ^ ../../emacs-24.4.src/src/image.c:1843:68: error: expected declaration specifiers or '...' before '*' token #define DEF_IMGLIB_FN(rettype,func,args) static rettype (FAR CDECL *fn_##func)args ^ ../../emacs-24.4.src/src/image.c:6204:1: note: in expansion of macro 'DEF_IMGLIB_FN' DEF_IMGLIB_FN (boolean, jpeg_finish_decompress, (j_decompress_ptr)); ^ ../../emacs-24.4.src/src/image.c:6206:58: error: unknown type name 'boolean' DEF_IMGLIB_FN (int, jpeg_read_header, (j_decompress_ptr, boolean)); ^ ../../emacs-24.4.src/src/image.c:1843:79: note: in definition of macro 'DEF_IMGLIB_FN' #define DEF_IMGLIB_FN(rettype,func,args) static rettype (FAR CDECL *fn_##func)args ^ ../../emacs-24.4.src/src/image.c:1843:68: error: expected declaration specifiers or '...' before '*' token #define DEF_IMGLIB_FN(rettype,func,args) static rettype (FAR CDECL *fn_##func)args ^ ../../emacs-24.4.src/src/image.c:6209:1: note: in expansion of macro 'DEF_IMGLIB_FN' DEF_IMGLIB_FN (boolean, jpeg_resync_to_restart, (j_decompress_ptr, int)); ^ ../../emacs-24.4.src/src/image.c: In function 'init_jpeg_functions': ../../emacs-24.4.src/src/image.c:1847:5: error: 'fn_jpeg_finish_decompress' undeclared (first use in this function) fn_##func = (void *) GetProcAddress (lib, #func); \ ^ ../../emacs-24.4.src/src/image.c:6219:3: note: in expansion of macro 'LOAD_IMGLIB_FN' LOAD_IMGLIB_FN (library, jpeg_finish_decompress); ^ ../../emacs-24.4.src/src/image.c:1847:5: note: each undeclared identifier is reported only once for each function it appears in fn_##func = (void *) GetProcAddress (lib, #func); \ ^ ../../emacs-24.4.src/src/image.c:6219:3: note: in expansion of macro 'LOAD_IMGLIB_FN' LOAD_IMGLIB_FN (library, jpeg_finish_decompress); ^ ../../emacs-24.4.src/src/image.c:1847:5: error: 'fn_jpeg_start_decompress' undeclared (first use in this function) fn_##func = (void *) GetProcAddress (lib, #func); \ ^ ../../emacs-24.4.src/src/image.c:6221:3: note: in expansion of macro 'LOAD_IMGLIB_FN' LOAD_IMGLIB_FN (library, jpeg_start_decompress); ^ ../../emacs-24.4.src/src/image.c:1847:5: error: 'fn_jpeg_read_header' undeclared (first use in this function) fn_##func = (void *) GetProcAddress (lib, #func); \ ^ ../../emacs-24.4.src/src/image.c:6222:3: note: in expansion of macro 'LOAD_IMGLIB_FN' LOAD_IMGLIB_FN (library, jpeg_read_header); ^ ../../emacs-24.4.src/src/image.c:1847:5: error: 'fn_jpeg_resync_to_restart' undeclared (first use in this function) fn_##func = (void *) GetProcAddress (lib, #func); \ ^ ../../emacs-24.4.src/src/image.c:6226:3: note: in expansion of macro 'LOAD_IMGLIB_FN' LOAD_IMGLIB_FN (library, jpeg_resync_to_restart); ^ ../../emacs-24.4.src/src/image.c: At top level: ../../emacs-24.4.src/src/image.c:6233:1: error: unknown type name 'boolean' jpeg_resync_to_restart_wrapper (j_decompress_ptr cinfo, int desired) ^ ../../emacs-24.4.src/src/image.c: In function 'jpeg_resync_to_restart_wrapper': ../../emacs-24.4.src/src/image.c:6235:3: warning: implicit declaration of function 'fn_jpeg_resync_to_restart' [-Wimplicit-function-declaration] return fn_jpeg_resync_to_restart (cinfo, desired); ^ ../../emacs-24.4.src/src/image.c: At top level: ../../emacs-24.4.src/src/image.c:6303:1: error: unknown type name 'boolean' our_memory_fill_input_buffer (j_decompress_ptr cinfo) ^ ../../emacs-24.4.src/src/image.c:6367:3: error: unknown type name 'boolean' boolean finished; ^ ../../emacs-24.4.src/src/image.c:6382:1: error: unknown type name 'boolean' our_stdio_fill_input_buffer (j_decompress_ptr cinfo) ^ ../../emacs-24.4.src/src/image.c: In function 'jpeg_load_body': ../../emacs-24.4.src/src/image.c:6561:3: warning: implicit declaration of function 'fn_jpeg_read_header' [-Wimplicit-function-declaration] fn_jpeg_read_header (&mgr->cinfo, 1); ^ ../../emacs-24.4.src/src/image.c:6566:3: warning: implicit declaration of function 'fn_jpeg_start_decompress' [-Wimplicit-function-declaration] fn_jpeg_start_decompress (&mgr->cinfo); ^ ../../emacs-24.4.src/src/image.c:6634:3: warning: implicit declaration of function 'fn_jpeg_finish_decompress' [-Wimplicit-function-declaration] fn_jpeg_finish_decompress (&mgr->cinfo); ^ make[1]: *** [image.o] Error 1 make[1]: Leaving directory `/d/mydata/home/user123/work-dev/emacs-24.4.mingw/src' make: *** [src] Error 2 Best Regards Sunline