Subject: Re: bug#74312: 31.0.50; Cygw32 build break

From: Ken Brown <[email-masked]>
Date: Mon, 11 Nov 2024 17:50:47 -0500

On 11/11/2024 3:13 PM, Eli Zaretskii wrote:
>> Date: Mon, 11 Nov 2024 13:08:13 -0500
>> Cc: [email-masked]
>> From: Ken Brown <[email-masked]>
>>
>> On 11/11/2024 11:07 AM, Eli Zaretskii wrote:
>>>> Date: Mon, 11 Nov 2024 23:51:33 +0900
>>>> From: Kazuhiro Ito <[email-masked]>
>>>>
>>>> Cygw32 build fails on  master
>>>
>>> Thanks, I've tried to fix it, please see if there are other problems.
>>> And when it does build, please try the drag-n-drop feature, both with
>>> dropping files and with dropping text on Emacs.
>>>
>>> (I repeatedly asked Ken to test these changes with the Cygwin build,
>>> but I guess he didn't yet have time.  So it's small wonder that the
>>> master branch fails to build on Cygwin.)
>>
>> I'm sorry, but I somehow missed your requests.  I'll try to look at this
>> within the next few days if Kazuhiro doesn't beat me to it.
> 
> Thanks, much appreciated.

The build still fails:

In function ‘dump_mm_heap_cb_release’,
     inlined from ‘dump_mmap_contiguous_heap’ at ../../src/pdumper.c:4919:3,
     inlined from ‘dump_mmap_contiguous’ at ../../src/pdumper.c:5064:50,
     inlined from ‘pdumper_load’ at ../../src/pdumper.c:5765:8:
../../src/pdumper.c:4857:11: warning: null pointer dereference 
[-Wnull-dereference]
  4857 |   if (--cb->refcount == 0)
       |         ~~^~~~~~~~~~
../../src/pdumper.c:4857:6: warning: null pointer dereference 
[-Wnull-dereference]
  4857 |   if (--cb->refcount == 0)
       |      ^
In file included from ../../src/pdumper.c:26:
In function ‘dump_mm_heap_cb_release’,
     inlined from ‘dump_mm_heap_cb_release’ at ../../src/pdumper.c:4854:1,
     inlined from ‘dump_mmap_contiguous_heap’ at ../../src/pdumper.c:4919:3,
     inlined from ‘dump_mmap_contiguous’ at ../../src/pdumper.c:5064:50,
     inlined from ‘pdumper_load’ at ../../src/pdumper.c:5765:8:
../../src/pdumper.c:4859:7: warning: null pointer dereference 
[-Wnull-dereference]
  4859 |       free (cb->mem);
       |       ^

../../src/w32menu.c: In function ‘w32_popup_dialog’:
../../src/w32menu.c:200:21: warning: implicit declaration of function 
‘pMultiByteToWideChar’; did you mean ‘MultiByteToWideChar’? 
[-Wimplicit-function-declaration]
   200 |                   * pMultiByteToWideChar (CP_UTF8, 0, title, 
-1, NULL, 0));
       |                     ^~~~~~~~~~~~~~~~~~~~
       |                     MultiByteToWideChar
../../src/w32menu.c:200:21: warning: nested extern declaration of 
‘pMultiByteToWideChar’ [-Wnested-externs]

../../src/w32dwrite.c:41: warning: macro "INITGUID" is not used 
[-Wunused-macros]
    41 | # define INITGUID
       |
../../src/w32dwrite.c: In function ‘w32_dwrite_encode_char’:
../../src/w32dwrite.c:662:51: warning: pointer targets in passing 
argument 2 of ‘dwrite_font_face->lpVtbl->GetGlyphIndicesA’ differ in 
signedness [-Wpointer-sign]
   662 |                                                   &c, 1, &index);
       |                                                   ^~
       |                                                   |
       |                                                   int *
../../src/w32dwrite.c:662:51: note: expected ‘const UINT32 *’ {aka 
‘const unsigned int *’} but argument is of type ‘int *’

/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
w32menu.o: in function `w32_popup_dialog':
/home/kbrown/src/emacs/master/build-w32/src/../../src/w32menu.c:200:(.text+0xb6a): 
undefined reference to `pMultiByteToWideChar'
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
/home/kbrown/src/emacs/master/build-w32/src/../../src/w32menu.c:202:(.text+0xba5): 
undefined reference to `pMultiByteToWideChar'
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
/home/kbrown/src/emacs/master/build-w32/src/../../src/w32menu.c:252:(.text+0xc1e): 
undefined reference to `pMultiByteToWideChar'
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
/home/kbrown/src/emacs/master/build-w32/src/../../src/w32menu.c:256:(.text+0xc6a): 
undefined reference to `pMultiByteToWideChar'
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
/home/kbrown/src/emacs/master/build-w32/src/../../src/w32menu.c:230:(.text+0xdfe): 
undefined reference to `pMultiByteToWideChar'
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
w32menu.o:/home/kbrown/src/emacs/master/build-w32/src/../../src/w32menu.c:233: 
more undefined references to `pMultiByteToWideChar' follow

I don't have time right now to look into the reasons for these errors 
and warnings, but, again, I'll try to do that within a few days if no 
one beats me to it.

Ken