Wireshark-dev: [Wireshark-dev] Problems building Wireshark under Windows

From: Richard Sharpe <realrichardsharpe@xxxxxxxxx>
Date: Tue, 5 Jul 2022 18:41:18 -0700
Hi folks,

I am seeing the following errors (a large number of them) while
building Wireshark under Windows:

---------------------
    83>C:\Users\Richard.Sharpe.A00187\source\wireshark-gl-ds\wsutil/wslog.h(280,6):
error C2054: expected '(' to follow '_Noreturn'
[C:\Development\wsbuild64\extcap\ssh-base.vcxproj]
C:\Users\Richard.Sharpe.A00187\source\wireshark-gl-ds\wsutil/wslog.h(280,6):
error C2054: void ws_log_fatal_full(const char *domain, enum
ws_log_level level, [C:\Development\wsbuild64\extcap\ssh-base.vcxproj]
C:\Users\Richard.Sharpe.A00187\source\wireshark-gl-ds\wsutil/wslog.h(280,6):
error C2054:      ^ [C:\Development\wsbuild64\extcap\ssh-base.vcxproj]
    83>C:\Users\Richard.Sharpe.A00187\source\wireshark-gl-ds\wsutil/wslog.h(282,64):
error C2085: 'ws_log_fatal_full': not in formal parameter list
[C:\Development\wsbuild64\extcap\ssh-base.vcxproj]
...
-------------------

They seem to come from the fact that include/ws_attributes.h where
WS_NORETURN etc are defined which does not define WS_NORETURN
correctly for C files.

#ifndef __cplusplus
  #define WS_NORETURN _Noreturn
#else /* __cplusplus */
#if __has_attribute(noreturn) \
    || WS_IS_AT_LEAST_GNUC_VERSION(2,5) \
    || WS_IS_AT_LEAST_SUNC_VERSION(5,9) \
    || WS_IS_AT_LEAST_XL_C_VERSION(10,1) \
    || WS_IS_AT_LEAST_HP_C_VERSION(6,10)
  /*
   * Compiler with support for __attribute__((noreturn)), or GCC 2.5 and
   * later, or Solaris Studio 12 (Sun C 5.9) and later, or IBM XL C 10.1
   * and later (do any earlier versions of XL C support this?), or
   * HP aCC A.06.10 and later.
   */
  #define WS_NORETURN __attribute__((noreturn))
#elif defined(_MSC_VER)
  /*
   * MSVC.
   */
  #define WS_NORETURN __declspec(noreturn)
#else
  #define WS_NORETURN
#endif
#endif /* __cplusplus */




-- 
Regards,
Richard Sharpe
(何以解憂?唯有杜康。--曹操)(传说杜康是酒的发明者)