Subject: bug#19050: closed (Re: bug#19050: Fail compile emacs with jpeg library on MinGW32)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 18 Nov 2014 03:40:05 +0000

Your bug report

#19050: Fail compile emacs with jpeg library on MinGW32

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
19050: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19050
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#19050: Fail compile emacs with jpeg library on MinGW32
From: Eli Zaretskii <[email-masked]>
To: Lin Sun <[email-masked]> (孙林)
Cc: [email-masked]
Date: Tue, 18 Nov 2014 05:39:11 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Lin Sun (孙林) <[email-masked]>
> CC: "[email-masked]" <[email-masked]>
> Date: Tue, 18 Nov 2014 00:30:09 +0000
> 
> You're right. Follow your instruction, without any modification, the Emacs can be compile success and work fine with the jpeg library.
> Please mark this ticket as invalid.
> Thank you.

OK, thanks.  I'm closing this bug.

Subject: Fail compile emacs with jpeg library on MinGW32
From: Lin Sun (孙林) <[email-masked]>
To: "[email-masked]" <[email-masked]>
Date: Fri, 14 Nov 2014 00:58:49 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

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 <jpeglib.h>

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