comparison notes.txt @ 5921:68639fb08af8 cygwin

no obvious 64 vs. 32 pblms in compilation, but still crashing in event-msw
author Henry Thompson <ht@markup.co.uk>
date Wed, 23 Apr 2014 22:22:37 +0100
parents 0f2338afbabf
children 518bf1108435
comparison
equal deleted inserted replaced
5920:0f2338afbabf 5921:68639fb08af8
59 Build completes 59 Build completes
60 xemacs -nw works 60 xemacs -nw works
61 but xemacs as such does not: 61 but xemacs as such does not:
62 > ./xemacs 62 > ./xemacs
63 Fatal error: assertion failed, file event-msw.c, line 4149, !NILP (Vmswindows_frame_being_created) 63 Fatal error: assertion failed, file event-msw.c, line 4149, !NILP (Vmswindows_frame_being_created)
64 --------------
65 console-msw.c:116:3: warning: format '%ld' expects argument of type
66 'long int', but argument 3 has type 'DWORD' [-Wformat=]
67 resolution: cast the DWORDs to long
68 ----
69 event-msw.c: In function 'mswindows_wnd_proc':
70 event-msw.c:2741:6: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
71 ((LCID) GetKeyboardLayout (0) & 0xFFFF),
72 cast to intptr_t first
73
74 event-msw.c:2825:50: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
75 virtual_key = qxeMapVirtualKeyEx (scan, 1, (HKL) lcid);
76 cast to intptr_t first
77 ^
78 event-msw.c:2839:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
79 (HKL) lcid);
80 ^ ditto
81
82 event-msw.c:2861:7: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
83 (HKL) lcid);
84 ^ ditto
85
86 [I _really_ don't understand the size hacking going on between LCIDs
87 and HKLs here!]
88 event-msw.c: In function 'emacs_mswindows_remove_timeout':
89 event-msw.c:4200:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
90 (void *) id, MECR_DEALLOCATE_EVENT);
91 ^
92 This is a hack!!! Use intptr_t instead, still a hack.
93
94
95 frame-msw.c: In function ‘mswindows_init_frame_1’:
96 frame-msw.c:274:41: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
97 qxeSetWindowLong (hwnd, XWL_FRAMEOBJ, (LONG)STORE_LISP_IN_VOID (frame_obj));
98 intptr_t
99
100 frame-msw.c: In function ‘mswindows_get_mouse_position’:
101 frame-msw.c:554:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
102 *frame = GET_LISP_FROM_VOID ((void *) qxeGetWindowLong (hwnd, XWL_FRAMEOBJ));
103 qxeGetWindowLongPtr (hwnd, XWL_FRAMEOBJ
104
105 frame-msw.c: In function ‘mswindows_get_frame_parent’:
106 frame-msw.c:822:36: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
107 parent = GET_LISP_FROM_VOID ((void *) qxeGetWindowLong (hwnd, XWL_FRAMEOBJ));
108 ditto
109
110 glyphs-msw.c: In function 'mswindows_widget_instantiate':
111 glyphs-msw.c:2261:8: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
112 (HMENU)id, /* No menu */
113 intptr_t id = -1;
114
115 menubar-msw.c: In function 'empty_menu':
116 menubar-msw.c:98:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
117 #define EMPTY_ITEM_ID ((UINT)STORE_LISP_IN_VOID (Qunbound))
118 menubar-msw.c:181:49: note: in expansion of macro 'EMPTY_ITEM_ID'
119 qxeAppendMenu (menu, MF_STRING | MF_GRAYED, EMPTY_ITEM_ID,
120 resolved:#define EMPTY_ITEM_ID ((UINT)STORE_LISP_IN_VOID (Qunbound))
121 intptr_t
122
123 dialog-msw.c:764:9: warning: passing argument 4 of 'qxeCreateDialogIndirectParam' from incompatible pointer type [enabled by default]
124 (LPARAM) STORE_LISP_IN_VOID (obj));
125 ^
126 intptr_t
127
128 toolbar-msw.c: In function 'mswindows_clear_toolbar':
129 toolbar-msw.c:100:55: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
130 qxeSendMessage (toolbarwnd, TB_GETIMAGELIST, 0, (LONG) &ilist);
131 ^
132 intptr_t
133 toolbar-msw.c: In function 'mswindows_output_toolbar':
134 toolbar-msw.c:370:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
135 (HMENU)(TOOLBAR_ID_BIAS + pos),
136 ^
137 (intptr_t)
138 In file included from mule-coding.c:32:0:
139 mule-coding.c: In function 'parse_charset_conversion_specs':
140
141 win32.c: In function 'mswindows_lisp_error_1':
142 win32.c:259:9: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'DWORD' [-Wformat=]
143 errnum, GetLastError ());
144 ^
145 (long)
146 win32.c: In function 'Fmswindows_shell_execute':
147 win32.c:352:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
148 ret = (int) qxeShellExecute (NULL, opext, doc, parmext, path,
149 ^
150 intptr-t
151 win32.c: In function 'setitimer_helper':
152 win32.c:847:7: warning: passing argument 3 of 'timeSetEvent' from incompatible pointer type [enabled by default]
153 event_type);
154 ^
155 resoluion: pblm is elsewhere?
156 setitimer_helper_proc (UINT UNUSED (uID), UINT UNUSED (uMsg), DWORD[_PTR] dwUser,
157 DWORD[_PTR] UNUSED (dw1), DWORD[_PTR] UNUSED (dw2))
158
159 > make clean, try again
160
161 /usr/local/src/xemacs-21.5-64bit/lib-src/winclient.c: In function 'doFile':
162 /usr/local/src/xemacs-21.5-64bit/lib-src/winclient.c:299:4: warning: pointer targ
163 ets in passing argument 1 of 'DdeClientTransaction' differ in signedness [-Wpoint
164 er-sign]
165 0, XTYP_EXECUTE, TRANSACTION_TIMEOUT, NULL);
166 ^
167 In file included from /usr/local/src/xemacs-21.5-64bit/lib-src/winclient.c:27:0:
168 /usr/include/w32api/ddeml.h:208:19: note: expected 'LPBYTE' but argument is of ty
169 pe 'char *'
170 HDDEDATA WINAPI DdeClientTransaction(LPBYTE pData,DWORD cbData,HCONV hConv,HSZ
171 hszItem,UINT wFmt,UINT wType,DWORD dwTimeout,LPDWORD pdwResult);
172 ^
173 [note it's arg1 that's the problem, cast to LPBYTE]
174
175 event-msw.c:4200:6: warning: passing argument 4 of 'map_event_chain_remove' makes pointer from integer without a cast [enabled by default]
176 (intptr_t)id, MECR_DEALLOCATE_EVENT);
177 ^
178 In file included from event-msw.c:72:0:
179 events.h:956:5: note: expected 'void *' but argument is of type 'long int'
180 int map_event_chain_remove (int (*fn) (Lisp_Object ev, void *user_data),
181 resolution: hack, but cast _again_, i.e. (void *)(intptr_t)
182
183 dialog-msw.c:764:9: warning: passing argument 4 of 'qxeCreateDialogIndirectParam' from incompatible pointer type [enabled by default]
184 (intptr_t) STORE_LISP_IN_VOID (obj));
185 ^
186 In file included from syswindows.h:642:0,
187 from console-msw.h:39,
188 from console-msw-impl.h:37,
189 from dialog-msw.c:37:
190 intl-auto-encap-win32.h:627:6: note: expected 'DLGPROC' but argument is of type 'BOOL (*)(struct HWND__ *, UINT, WPARAM, LPARAM)'
191 HWND qxeCreateDialogIndirectParam (HINSTANCE hInstance, LPCDLGTEMPLATEW lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam);
192 resolved by adding a cast: (DLGPROC)dialog_proc, but not at all sure
193 that's right
194
195 > make clean, try again
196
197 intl-win32.c:1509:27: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
198 TranslateCharsetInfo ((DWORD *) (DWORD) old_logfont.lfCharSet, &info,
199 ^
200 resolution: do nothing -- I think this is necessary because of
201 extremely aggressive argument overloading by MS
202
203 intl-auto-encap-win32.c:126:5: warning: passing argument 1 of 'ShellExecuteExA' from incompatible pointer type [enabled by default]
204 return ShellExecuteExA (pExecInfo);
205 ^
206 In file included from syswindows.h:220:0,
207 from intl-auto-encap-win32.c:12:
208 /usr/include/w32api/shellapi.h:345:22: note: expected 'struct SHELLEXECUTEINFOA *' but argument is of type 'struct SHELLEXECUTEINFOW *'
209 SHSTDAPI_(WINBOOL) ShellExecuteExA (SHELLEXECUTEINFOA *pExecInfo);
210 ^
211 resolution: ignored, never used, removed from intl-encap-win32.c
212
213 intl-auto-encap-win32.c: In function 'qxeFreeEnvironmentStrings':
214 intl-auto-encap-win32.c:1771:5: warning: passing argument 1 of 'FreeEnvironmentStringsA' from incompatible pointer type [enabled by default]
215 return FreeEnvironmentStringsA (penv);
216 ^
217 In file included from /usr/include/w32api/winbase.h:28:0,
218 from /usr/include/w32api/windows.h:70,
219 from syswindows.h:204,
220 from intl-auto-encap-win32.c:12:
221 /usr/include/w32api/processenv.h:29:29: note: expected 'LPCH' but argument is of type 'LPWCH'
222 WINBASEAPI WINBOOL WINAPI FreeEnvironmentStringsA (LPCH penv);
223 ^
224 intl-encap-win32.c: In function 'qxeUpdateICMRegKey':
225 intl-encap-win32.c:1426:36: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
226 return UpdateICMRegKeyW (arg1, (DWORD) arg2, (LPWSTR) arg3, arg4);
227 ^
228 intl-encap-win32.c:1426:5: warning: passing argument 2 of 'UpdateICMRegKeyW' makes pointer from integer without a cast [enabled by default]
229 return UpdateICMRegKeyW (arg1, (DWORD) arg2, (LPWSTR) arg3, arg4);
230 ^
231 In file included from /usr/include/w32api/windows.h:71:0,
232 from syswindows.h:204,
233 from console-msw.h:39,
234 from intl-encap-win32.c:44:
235 /usr/include/w32api/wingdi.h:3425:28: note: expected 'LPWSTR' but argument is of type 'unsigned int'
236 WINGDIAPI WINBOOL WINAPI UpdateICMRegKeyW(DWORD reserved,LPWSTR lpszCMID,LPWSTR lpszFileName,UINT command);
237 resolution: nothing, known problem
238
239 Similarly wrt qxeEnumResourceTypes, qxeEnumResourceNames,
240 qxeEnumResourceLanguages, qxeImmSetCompositionString
241
242 ---------
243 make clean, recompile, all looks OK, try to track down the problem --
244 the error in event-msw.c inside mswindow_find_frame, inside
245 intercepted_wnd_proc (a signal handler?),
246 where we have a
247 window with no frame saved, appears to happen when the main thread is
248 in mswindows_init_frame_1 at frame-msw.c:139
249 at recompute_all_cached_specifiers_in_frame at specifier.c:3483
250 at recompute_one_cached_specifier_in_frame at specifier.c:3444
251 around the sixth one