On Fri, Feb 14, 2020 at 10:44 AM Gerald Pfeifer <gerald@pfeifer.com> wrote:
Even after patches by Michael Cronenworth and me, cf.
  https://www.winehq.org/pipermail/wine-devel/2020-January/157945.html
  https://www.winehq.org/pipermail/wine-devel/2020-January/158454.html
Wine still fails to build with GCC 10 development snapshots.

This is due to a change of defaults in GCC, from -fcommon to -fno-common,
cf. the following from http://gcc.gnu.org/gcc-10/porting_to.html :

  A common mistake in C is omitting extern when declaring a global
  variable in a header file. If the header is included by several files it
  results in multiple definitions of the same variable. In previous GCC
  versions this error is ignored. GCC 10 defaults to -fno-common, which
  means a linker error will now be reported. To fix this, use extern in
  header files when declaring global variables, and ensure each global is
  defined in exactly one C file. As a workaround, legacy C code can be
  compiled with -fcommon.


The failure left is

  gmake[1]: Entering directory '/home/gerald/wine/dlls/schedsvc/tests'
  ../../../tools/winegcc/winegcc -o schedsvc_test-stripped.exe.so
  --wine-objdir ../../.. -fno-PIC -fasynchronous-unwind-tables \
  -s -Wb,-F,schedsvc_test.exe -mno-cygwin atsvcapi.o rpcapi.o atsvc_c.o
  schrpc_c.o testlist.o \  -lrpcrt4 -lole32 -L/home/gerald/11-i386/lib
  schrpc_c.o:(.bss+0x0): multiple definition of `rpc_handle'
  atsvc_c.o:(.bss+0x0): first defined here
  winebuild: /home/gerald/11-i386/bin/ld failed with status 1
  winegcc: ../../../tools/winebuild/winebuild failed
  gmake[1]: *** [Makefile:367: schedsvc_test-stripped.exe.so] Error 2
  gmake[1]: Leaving directory '/home/gerald/wine/dlls/schedsvc/tests'
  gmake: *** [Makefile:8961: dlls/schedsvc/tests] Error 2

You can probably try to use different names for variables defined with implicit_handle() attribute.
 

atsvc_c.c and schrpc_c.c are auto-generated from atsvc.idl and
schrpc.idl, so I'm not sure how to tackle this.

Anyone who can help and take this?

Thank you,
Gerald