Building with GCC 10 still broken (-fcommon, dlls/schedsvc/tests)

Nikolay Sivov bunglehead at gmail.com
Fri Feb 14 11:54:23 CST 2020


On Fri, Feb 14, 2020 at 10:44 AM Gerald Pfeifer <gerald at 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
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20200214/f369cfc6/attachment.htm>


More information about the wine-devel mailing list