Compile fails on multithreading

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
phnoggie
Newbie
Newbie
Posts: 2
Joined: Thu Mar 23, 2023 7:46 am

Compile fails on multithreading

Post by phnoggie »

Hi!

I have some strange behavour when compiling 8.4 in multithreading.

Not an actual bug - because it actual compiles some times.

And most likely me doing something not allowed :D :D

CPU: Intel i7 13700K
RAM: 64GB DDR5-5600

Compiling on 1 thread
Successed 3/3 runs!

Compiling on 4 threads
Successed 3/3 runs!

Compiling on 8 threads
Successed 3/3 runs!

Compiling on 12 threads
Successed 3/3 runs!

Compiling on 13 threads
Successed 3/3 runs!

Compiling on 14 threads
Successed 2/3 runs!

Code: Select all

gcc -m64 -c -o dlls/dinput8/joystick_hid.o dlls/dinput/joystick_hid.c -Idlls/dinput8 -Idlls/dinput -Iinclude -Iinclude/msvcrt \
  -D_UCRT -D__WINESRC__ -DDIRECTINPUT_VERSION=0x0800 -Wall -pipe -fcf-protection=none \
  -fno-stack-protector -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body \
  -Wignored-qualifiers -Winit-self -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes \
  -Wtype-limits -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op \
  -gdwarf-4 -fPIC -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wno-format \
  -mabi=ms -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
In file included from include/winbase.h:47,
                 from dlls/dinput/joystick_hid.c:28:
include/threadpoolapiset.h:54:1: internal compiler error: Segmentfejl
   54 | WINBASEAPI void        WINAPI SetEventWhenCallbackReturns(PTP_CALLBACK_INSTANCE,HANDLE);
      | ^~~~~~~~~~
Compiling on 15 threads
Successed 2/3 runs!

Code: Select all

gcc -m64 -c -o dlls/kernel32/tests/time.o dlls/kernel32/tests/time.c -Idlls/kernel32/tests -Iinclude -Iinclude/msvcrt \
  -D_MSVCR_VER=0 -D__WINESRC__ -Wall -pipe -fcf-protection=none -fno-stack-protector \
  -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \
  -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
  -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -fPIC \
  -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wno-format -mabi=ms -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
In file included from dlls/kernel32/tests/sync.c:28:
include/winbase.h:2297:1: internal compiler error: Segmentfejl
 2297 | WINADVAPI  BOOL        WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,LPDWORD);
      | ^~~~~~~~~
Compiling on 16 threads
Successed 0/3 runs!

Code: Select all

gcc -m64 -c -o dlls/oledb32/main.o dlls/oledb32/main.c -Idlls/oledb32 -Iinclude -Iinclude/msvcrt -D_UCRT -D__WINESRC__ \
  -Wall -pipe -fcf-protection=none -fno-stack-protector -fno-strict-aliasing \
  -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \
  -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
  -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -fPIC \
  -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wno-format -mabi=ms -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
In file included from dlls/oledb32/errorinfo.c:25:
include/winbase.h:2731:1: internal compiler error: Segmentfejl
 2731 | WINBASEAPI BOOL        WINAPI SetThreadErrorMode(DWORD,LPDWORD);
      | ^~~~~~~~~~

Code: Select all

gcc -m64 -c -o dlls/d3dx9_24/volume.o dlls/d3dx9_36/volume.c -Idlls/d3dx9_24 -Idlls/d3dx9_36 -Iinclude -Iinclude/msvcrt \
  -D_UCRT -D__WINESRC__ -DD3DX_SDK_VERSION=24 -Wall -pipe -fcf-protection=none -fno-stack-protector \
  -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \
  -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
  -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -fPIC \
  -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wno-format -mabi=ms -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
In file included from include/winnt.h:24,
                 from include/windef.h:290,
                 from include/wine/debug.h:30,
                 from dlls/d3dx9_36/d3dx9_private.h:26,
                 from dlls/d3dx9_36/volume.c:20:
include/basetsd.h:97:1: internal compiler error: Segmentfejl
   97 | typedef unsigned __int64 DECLSPEC_ALIGN(8) UINT64, *PUINT64;
      | ^~~~~~~

Code: Select all

gcc -m64 -c -o programs/progman/group.o programs/progman/group.c -Iprograms/progman -Iinclude -Iinclude/msvcrt -D_UCRT \
  -D__WINESRC__ -Wall -pipe -fcf-protection=none -fno-stack-protector -fno-strict-aliasing \
  -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \
  -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
  -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -fPIC \
  -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wno-format -mabi=ms -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
In file included from include/combaseapi.h:29,
                 from include/objbase.h:267,
                 from include/ole2.h:25,
                 from include/unknwn.h:13,
                 from programs/oleview/main.h:27,
                 from programs/oleview/typelib.c:21:
include/objidlbase.h:4859:1: internal compiler error: Segmentfejl
 4859 | static __WIDL_INLINE HRESULT IWaitMultiple_QueryInterface(IWaitMultiple* This,REFIID riid,void **ppvObject) {
      | ^~~~~~
Compiling on 20 threads
Successed 0/3 runs!

Code: Select all

gcc -m64 -c -o dlls/glu32/tess.o dlls/glu32/tess.c -Idlls/glu32 -Iinclude -Iinclude/msvcrt -D_UCRT -D__WINESRC__ \
  -Wall -pipe -fcf-protection=none -fno-stack-protector -fno-strict-aliasing \
  -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \
  -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
  -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -fPIC \
  -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wno-format -mabi=ms -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
In file included from dlls/glu32/sweep.c:41:
include/winbase.h:2189:1: internal compiler error: Segmentfejl
 2189 | WINBASEAPI DWORD       WINAPI GetFileAttributesW(LPCWSTR);
      | ^~~~~~~~~~

Code: Select all

gcc -m64 -c -o dlls/dmusic/tests/testlist.o dlls/dmusic/tests/testlist.c -Idlls/dmusic/tests -Iinclude -Iinclude/msvcrt \
  -D_MSVCR_VER=0 -D__WINESRC__ -Wall -pipe -fcf-protection=none -fno-stack-protector \
  -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \
  -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
  -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -fPIC \
  -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wno-format -mabi=ms -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
In file included from include/windows.h:41,
                 from dlls/dmscript/tests/testlist.c:4:
include/winuser.h:4742:255: internal compiler error: Segmentfejl
 4742 | 
      |                                                                                                                                                                                                                                                               ^
 4743 | static inline BOOL WINAPI SetRect(LPRECT rect, INT left, INT top, INT right, INT bottom)
      | ~~~~

Code: Select all

gcc -m64 -c -o dlls/kernel32/tests/fiber.o dlls/kernel32/tests/fiber.c -Idlls/kernel32/tests -Iinclude -Iinclude/msvcrt \
  -D_MSVCR_VER=0 -D__WINESRC__ -Wall -pipe -fcf-protection=none -fno-stack-protector \
  -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \
  -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
  -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -fPIC \
  -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wno-format -mabi=ms -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
In file included from dlls/kernel32/tests/change.c:37:
include/winternl.h:3994:1: internal compiler error: Segmentfejl
 3994 | NTSYSAPI NTSTATUS  WINAPI LdrSetDllDirectory(const UNICODE_STRING*);
      | ^~~~~~~~
Compiling on 24 threads
Successed 0/3 runs!

Code: Select all

gcc -m64 -c -o dlls/comctl32/toolbar.o dlls/comctl32/toolbar.c -Idlls/comctl32 -Iinclude -Iinclude/msvcrt -D_UCRT \
  -D__WINESRC__ -D_COMCTL32_ -Wall -pipe -fcf-protection=none -fno-stack-protector \
  -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \
  -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
  -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -fPIC \
  -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wno-format -mabi=ms -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
during RTL pass: ud_dce
dlls/comctl32/button.c: In function ‘notify_split_button_dropdown’:
dlls/comctl32/button.c:2493:1: internal compiler error: Segmentfejl
 2493 | }
      | ^

Code: Select all

gcc -m64 -c -o dlls/authz/authz.o dlls/authz/authz.c -Idlls/authz -Iinclude -Iinclude/msvcrt -D_UCRT -D__WINESRC__ \
  -Wall -pipe -fcf-protection=none -fno-stack-protector -fno-strict-aliasing \
  -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \
  -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
  -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -fPIC \
  -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wno-format -mabi=ms -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
In file included from include/windows.h:39,
                 from dlls/atlthunk/tests/testlist.c:4:
include/winbase.h:2301:1: internal compiler error: Segmentfejl
 2301 | WINADVAPI  BOOL        WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID *,LPBOOL);
      | ^~~~~~~~~

Code: Select all

gcc -m64 -c -o dlls/advapi32/tests/crypt.o dlls/advapi32/tests/crypt.c -Idlls/advapi32/tests -Iinclude -Iinclude/msvcrt \
  -D_MSVCR_VER=0 -D__WINESRC__ -Wall -pipe -fcf-protection=none -fno-stack-protector \
  -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \
  -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
  -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -fPIC \
  -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wno-format -mabi=ms -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
In file included from dlls/advapi32/wmi.c:24:
include/winbase.h:2015:1: internal compiler error: Segmentfejl
 2015 | WINBASEAPI BOOL        WINAPI EndUpdateResourceW(HANDLE,BOOL);
      | ^~~~~~~~~~

My conclusion / what I stick to for now
Difference between P and E cores, and their caches.
I'll stick to compiling in 12 threads

Again, not an actual bug, but maybe a help to understand things
winspool
Level 2
Level 2
Posts: 19
Joined: Fri Feb 22, 2008 3:39 pm

Re: Compile fails on multithreading

Post by winspool »

Every failure is prefixed with 'internal compiler error'.
Have you updated your compiler?

It is also possible, that your system fails under heavy load.
I would check the memory (boot an memtest image)
and avoid overclocking.

--
Regards ... Detlef (winspool)
phnoggie
Newbie
Newbie
Posts: 2
Joined: Thu Mar 23, 2023 7:46 am

Re: Compile fails on multithreading

Post by phnoggie »

winspool wrote: Sat Jun 10, 2023 6:55 pm Every failure is prefixed with 'internal compiler error'.
Have you updated your compiler?

It is also possible, that your system fails under heavy load.
I would check the memory (boot an memtest image)
and avoid overclocking.

--
Regards ... Detlef (winspool)
The compiler was fresh from apt.
System is not overclocked, but didn't run a memtest.
I couldn't find any other application/program that wouldn't compile in multithreading

Tested Wine 8.10
This time it compiled on 24 cores. So the cause seems to be fixed.
The only change on my system:
I switched from using Intel Rapid RAID to normal 'mdadm' RAID on the home-directory - so maybe Intel Rapid storage is causing problems??
Locked