Yes it's broken and I didn't bother fixing it. At some point, when x64 starts working and mingw-w64 has proper exception handling support (not sure how far that is), I might have a look at that again though.
I just wanted to know whether it is generally possible to handle that.
So currently there is no need to fix it, but it's good, if it's fixable.


Am 19.07.2013 21:43, schrieb Thomas Faber:
> Hmm probably not. When I tried with x64 MSVC, it didn't go too well (but
> MSVC doesn't need rsym).
> I thought x64 gcc was broken ages ago? We can probably fix it to work
> on x64 if that's actually useful (we we didn't think it was).
>
>
> On 2013-07-19 10:46, Timo Kreuzer wrote:
>>
>> Seeing the __x86_64__  change, I wonder: Does the code work with 64 bit
>> GCC builds? I mean 64 bit target not 64 bit host.
>>
>>
>> Am 19.07.2013 02:11, schrieb akhaldi@svn.reactos.org:
>>> Author: akhaldi
>>> Date: Fri Jul 19 00:11:08 2013
>>> New Revision: 59507
>>>
>>> URL: http://svn.reactos.org/svn/reactos?rev=59507&view=rev
>>> Log:
>>> [DBGHELPHOST]
>>> * Fix some warnings. Brought to you by Thomas Faber.
>>>
>>> Modified:
>>>     trunk/reactos/dll/win32/dbghelp/compat.h
>>>     trunk/reactos/dll/win32/dbghelp/symbol.c
>>>
>>> Modified: trunk/reactos/dll/win32/dbghelp/compat.h
>>> URL:
>> http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/compat.h?rev=59507&r1=59506&r2=59507&view=diff
>>>
>> ==============================================================================
>>> --- trunk/reactos/dll/win32/dbghelp/compat.h    [iso-8859-1] (original)
>>> +++ trunk/reactos/dll/win32/dbghelp/compat.h    [iso-8859-1] Fri Jul
>> 19 00:11:08 2013
>>> @@ -15,7 +15,11 @@
>>>  #define min(x, y) (((x) < (y)) ? (x) : (y))
>>>  #define max(x, y) (((x) > (y)) ? (x) : (y))
>>>
>>> +#ifdef __i386__
>>>  #define CDECL __cdecl
>>> +#else
>>> +#define CDECL
>>> +#endif
>>>  typedef PVOID IUnknown, IDispatch, IRecordInfo;
>>>
>>>  // windef.h
>>> @@ -719,7 +723,6 @@
>>>
>>>  BOOL WINAPI SymEnumerateModulesW64(HANDLE hProcess,
>> PSYM_ENUMMODULES_CALLBACKW64 EnumModulesCallback, PVOID UserContext);
>>>
>>> -#ifndef _LP64
>>>  typedef struct _tagADDRESS
>>>  {
>>>      DWORD                       Offset;
>>> @@ -763,23 +766,6 @@
>>>  typedef BOOL  (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(PCSTR, ULONG,
>> ULONG, PVOID);
>>>  typedef BOOL  (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACKW)(PCWSTR, ULONG,
>> ULONG, PVOID);
>>>
>>> -#else
>>> -#define ADDRESS ADDRESS64
>>> -#define LPADDRESS LPADDRESS64
>>> -#define IMAGEHLP_MODULE IMAGEHLP_MODULE64
>>> -#define PIMAGEHLP_MODULE PIMAGEHLP_MODULE64
>>> -#define IMAGEHLP_MODULEW IMAGEHLP_MODULEW64
>>> -#define PIMAGEHLP_MODULEW PIMAGEHLP_MODULEW64
>>> -#define PENUMLOADED_MODULES_CALLBACK PENUMLOADED_MODULES_CALLBACK64
>>> -#define PFUNCTION_TABLE_ACCESS_ROUTINE PFUNCTION_TABLE_ACCESS_ROUTINE64
>>> -#define PTRANSLATE_ADDRESS_ROUTINE PTRANSLATE_ADDRESS_ROUTINE64
>>> -#define PSYMBOL_REGISTERED_CALLBACK PSYMBOL_REGISTERED_CALLBACK64
>>> -#define PREAD_PROCESS_MEMORY_ROUTINE PREAD_PROCESS_MEMORY_ROUTINE64
>>> -#define PGET_MODULE_BASE_ROUTINE PGET_MODULE_BASE_ROUTINE64
>>> -#define PSYM_ENUMMODULES_CALLBACK PSYM_ENUMMODULES_CALLBACK64
>>> -#define PSYM_ENUMSYMBOLS_CALLBACK PSYM_ENUMSYMBOLS_CALLBACK64
>>> -#define PSYM_ENUMSYMBOLS_CALLBACKW PSYM_ENUMSYMBOLS_CALLBACKW64
>>> -#endif
>>>  typedef struct _IMAGEHLP_MODULE64
>>>  {
>>>      DWORD                       SizeOfStruct;
>>>
>>> Modified: trunk/reactos/dll/win32/dbghelp/symbol.c
>>> URL:
>> http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/symbol.c?rev=59507&r1=59506&r2=59507&view=diff
>>>
>> ==============================================================================
>>> --- trunk/reactos/dll/win32/dbghelp/symbol.c    [iso-8859-1] (original)
>>> +++ trunk/reactos/dll/win32/dbghelp/symbol.c    [iso-8859-1] Fri Jul
>> 19 00:11:08 2013
>>> @@ -70,7 +70,7 @@
>>>
>>>  DWORD             symt_ptr2index(struct module* module, const struct
>> symt* sym)
>>>  {
>>> -#ifdef _WIN64
>>> +#ifdef __x86_64__
>>>      const struct symt** c;
>>>      int                 len = vector_length(&module->vsymt), i;
>>>
>>> @@ -91,7 +91,7 @@
>>>
>>>  struct symt*      symt_index2ptr(struct module* module, DWORD id)
>>>  {
>>> -#ifdef _WIN64
>>> +#ifdef __x86_64__
>>>      if (!id-- || id >= vector_length(&module->vsymt)) return NULL;
>>>      return *(struct symt**)vector_at(&module->vsymt, id);
>>>  #else
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev@reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>