AndreRH / hangover

Hangover runs simple Win64 and Win32 applications on arm64 Linux
GNU Lesser General Public License v2.1
1.43k stars 101 forks source link

fail to compile on manjaro due unrecognised option: '-DPACKAGE_VERSION_STRING=\"1.15\"' #38

Closed ghost closed 4 years ago

ghost commented 5 years ago
libtool:   error: unrecognised option: '-DPACKAGE_VERSION_STRING=\"1.15\"'
make[2]: *** [Makefile:93: libiconv.res.lo] Error 1
make[2]: se sale del directorio '/home/pi/Escritorio/hangover/build/libiconv32/lib'
make[1]: *** [Makefile:53: install] Error 2
make[1]: se sale del directorio '/home/pi/Escritorio/hangover/build/libiconv32'
make: *** [Makefile:43: build/i686-w64-mingw32/bin/libcharset-1.dll] Error 2
make: *** Se espera a que terminen otras tareas....
libtool:   error: unrecognised option: '-DPACKAGE_VERSION_STRING=\"1.15\"'
make[2]: *** [Makefile:93: libiconv.res.lo] Error 1
make[2]: se sale del directorio '/home/pi/Escritorio/hangover/build/libiconv64/lib'
make[1]: *** [Makefile:53: install] Error 2
make[1]: se sale del directorio '/home/pi/Escritorio/hangover/build/libiconv64'
make: *** [Makefile:47: build/x86_64-w64-mingw32/bin/libcharset-1.dll] Error 2

the qemu stuff werent compiled (and I have already compile qemu on my system)

parkerlreed commented 5 years ago

Same here. Building on an AArch64 Arch chroot.

make[2]: Entering directory '/home/alarm/build/hangover/build/libiconv64/lib'
/bin/sh ../libtool --mode=compile --tag=RC  `/bin/sh ../../../libiconv/lib/../windows/windres-options --escape 1.15` -i ../../../libiconv/lib/../windows/libiconv.rc -o libiconv.res.lo --output-format=coff
Usage: /home/alarm/build/hangover/build/libiconv64/libtool [OPTION]... [MODE-ARG]...
Try 'libtool --help' for more information.
libtool:   error: unrecognised option: '-DPACKAGE_VERSION_STRING=\"1.15\"'
make[2]: *** [Makefile:93: libiconv.res.lo] Error 1
make[2]: Leaving directory '/home/alarm/build/hangover/build/libiconv64/lib'
make[1]: *** [Makefile:53: install] Error 2
make[1]: Leaving directory '/home/alarm/build/hangover/build/libiconv64'
make: *** [Makefile:47: build/x86_64-w64-mingw32/bin/libcharset-1.dll] Error 2
make: *** Waiting for unfinished jobs....
Dante4 commented 5 years ago

Have you tried what described in this issue https://github.com/AndreRH/hangover/issues/12 ?

parkerlreed commented 5 years ago

I just realized that. I can't easily get mingw since the compile requires gcc-ada and that also isn't available.

https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=mingw-w64-gcc

https://archlinuxarm.org/forum/viewtopic.php?f=9&t=11534

ghost commented 5 years ago

ohh,sorry Dante. ok, I mean, manjaro its the only reliable 64 bits os for rpi4 right now, and I cant find the way to install that deps, could you suggest a clue on how to? I will try raspbian 64 bits (with 32 bits userspace), but I am not too much in love with raspbian at all.

[pi@pi ~]$ yay -S --needed mingw-w64-gcc mingw-w64-g++ 
:: There are 2 providers available for mingw-w64-gcc:
:: Repository AUR
    1) mingw-w64-gcc 2) mingw-w64-gcc-bin 

Enter a number (default=1): 1
:: There are 2 providers available for mingw-w64-binutils:
:: Repository AUR
    1) mingw-w64-binutils 2) mingw-w64-binutils-bin 

Enter a number (default=1): 1
:: There are 3 providers available for mingw-w64-winpthreads:
:: Repository AUR
    1) mingw-w64-winpthreads 2) mingw-w64-winpthreads-bin 3) mingw-w64-winpthreads-git 

Enter a number (default=1): 1
:: There are 3 providers available for mingw-w64-headers:
:: Repository AUR
    1) mingw-w64-headers 2) mingw-w64-headers-bin 3) mingw-w64-headers-git 

Enter a number (default=1): 1
:: There are 2 providers available for gcc-ada:
:: Repository AUR
    1) gcc-ada-git 2) gcc-ada-multilib-x32 

Enter a number (default=1): 1
:: There are 3 providers available for mingw-w64-crt:
:: Repository AUR
    1) mingw-w64-crt 2) mingw-w64-crt-bin 3) mingw-w64-crt-git 

Enter a number (default=1): 1
:: There are 2 providers available for lib32-gcc-libs:
:: Repository AUR
    1) lib32-gcc-libs-git 2) lib32-gcc-libs-gitb 

Enter a number (default=1): 1
==> Error: Could not find all required packages:
    lib32-glibc (Wanted by: mingw-w64-gcc -> mingw-w64-crt -> mingw-w64-gcc -> gcc-ada-git -> gcc-git -> gcc-libs-git)
    lib32-glibc (Wanted by: mingw-w64-gcc -> mingw-w64-crt -> mingw-w64-gcc -> gcc-ada-git -> gcc-git)
    lib32-glibc (Wanted by: mingw-w64-gcc -> mingw-w64-crt -> mingw-w64-gcc -> gcc-ada-git)
    lib32-glibc>=2.20 (Wanted by: mingw-w64-gcc -> mingw-w64-crt -> mingw-w64-gcc -> gcc-ada-git -> gcc-git -> gcc-libs-git -> lib32-gcc-libs-git)
    mingw-w64-g++ (Target)
Dante4 commented 5 years ago

It's okay, maybe Manjaro simply don't have necessary packages, so you need to build or install them by yourself, but I'm not much of help there

psstoyanov commented 4 years ago

I'm making progress on Manjaro ARM and my Pinebook Pro. I've got gcc with ada support that should allow you make your own version of mingw-w64 fairly quickly. Check the Manjaro ARM forum if you you want to check it out.

parkerlreed commented 4 years ago

Link?

psstoyanov commented 4 years ago

https://forum.manjaro.org/t/experimental-hangover-wine-requirements-for-aarch64/118167/7 Expect some DIY elements. I've posted packages only for gcc-ada as it's harder to bootstrap but you can still see the route I've taken to get there and do it completely on your own if you want.

I'm stuck at getting qemu to compile for some reason. Will check how far I will get with this ticket that I've opened: https://github.com/AndreRH/hangover/issues/52

parkerlreed commented 4 years ago

Regarding the -j6, I think you have to let the hangover build compile at defaults. There's so many parts to it that trying to multi thread it is bound to step on itself.

Thanks for the ada package. May give this a shot later tonight.

stefand commented 4 years ago

Do you have a pixman.h on your system? It should be in /usr/include normally.

parkerlreed commented 4 years ago

I'll get it fired up and see, It may just be a missing include on the part of qemu as well (so even if the file exists, it may not know where to look)

stefand commented 4 years ago

You can also try something along those lines (applies to the top level hangover Makefile) 0001-vhost-disable.txt

It is completely untested though.

psstoyanov commented 4 years ago

Mmm, @stefand , I can see the file here: /usr/include/pixman-1/pixman.h Maybe it's searching for the header at the wrong location?

@parkerlreed , if you compile the rest of the dependencies (mingw-w64-gcc && mingw-w64-base for example) on the device itself, it will take a few solid hours. Building the wine libs on just one core can also eat quite a bit of time :smile:

parkerlreed commented 4 years ago

So do I need mingw-w64-gcc or mingw-w64-gcc-base? They both seem to provide base.

Currently installing gcc-base

psstoyanov commented 4 years ago

@parkerlreed , to compile mingw-w64-gcc you have to have mingw-w64-gcc-base first.

Since you will have gcc-base anyway, it will be good to check if it provides x86_64-w64-mingw32-gcc && i686-w64-mingw32-gcc. I believe those two aren't part of the gcc-base version but there's no harm in double-checking.

parkerlreed commented 4 years ago

We'll see in a bit :P image

parkerlreed commented 4 years ago

It does include it in gcc-base. Anything else I may be needing/missing?

[parker@alarm ~]$ pacman -Q mingw-w64-binutils mingw-w64-gcc-base mingw-w64-headers mingw-w64-headers-bootstrap 
mingw-w64-binutils 2.33.1-1
mingw-w64-gcc-base 8.3.0-1
mingw-w64-headers 7.0.0-1
mingw-w64-headers-bootstrap 5.0.3-1
[parker@alarm ~]$ ls -lah /usr/bin/*mingw*
-rwxr-xr-x 1 root root 1.1M Jan  8 18:03 /usr/bin/i686-w64-mingw32-addr2line
-rwxr-xr-x 2 root root 1.1M Jan  8 18:03 /usr/bin/i686-w64-mingw32-ar
-rwxr-xr-x 2 root root 2.0M Jan  8 18:03 /usr/bin/i686-w64-mingw32-as
-rwxr-xr-x 1 root root 1.1M Jan  8 18:03 /usr/bin/i686-w64-mingw32-c++filt
-rwxr-xr-x 1 root root 990K Jan  8 18:12 /usr/bin/i686-w64-mingw32-cpp
-rwxr-xr-x 2 root root 1.1M Jan  8 18:03 /usr/bin/i686-w64-mingw32-dlltool
-rwxr-xr-x 1 root root  51K Jan  8 18:03 /usr/bin/i686-w64-mingw32-dllwrap
-rwxr-xr-x 1 root root  39K Jan  8 18:03 /usr/bin/i686-w64-mingw32-elfedit
-rwxr-xr-x 2 root root 994K Jan  8 18:12 /usr/bin/i686-w64-mingw32-gcc
-rwxr-xr-x 2 root root 994K Jan  8 18:12 /usr/bin/i686-w64-mingw32-gcc-8.3.0
-rwxr-xr-x 1 root root  30K Jan  8 18:12 /usr/bin/i686-w64-mingw32-gcc-ar
-rwxr-xr-x 1 root root  30K Jan  8 18:12 /usr/bin/i686-w64-mingw32-gcc-nm
-rwxr-xr-x 1 root root  30K Jan  8 18:12 /usr/bin/i686-w64-mingw32-gcc-ranlib
-rwxr-xr-x 1 root root 663K Jan  8 18:12 /usr/bin/i686-w64-mingw32-gcov
-rwxr-xr-x 1 root root 499K Jan  8 18:12 /usr/bin/i686-w64-mingw32-gcov-dump
-rwxr-xr-x 1 root root 523K Jan  8 18:12 /usr/bin/i686-w64-mingw32-gcov-tool
-rwxr-xr-x 1 root root 1.1M Jan  8 18:03 /usr/bin/i686-w64-mingw32-gprof
-rwxr-xr-x 4 root root 1.5M Jan  8 18:03 /usr/bin/i686-w64-mingw32-ld
-rwxr-xr-x 4 root root 1.5M Jan  8 18:03 /usr/bin/i686-w64-mingw32-ld.bfd
-rwxr-xr-x 2 root root 1.1M Jan  8 18:03 /usr/bin/i686-w64-mingw32-nm
-rwxr-xr-x 2 root root 1.2M Jan  8 18:03 /usr/bin/i686-w64-mingw32-objcopy
-rwxr-xr-x 2 root root 2.5M Jan  8 18:03 /usr/bin/i686-w64-mingw32-objdump
-rwxr-xr-x 2 root root 1.1M Jan  8 18:03 /usr/bin/i686-w64-mingw32-ranlib
-rwxr-xr-x 2 root root 747K Jan  8 18:03 /usr/bin/i686-w64-mingw32-readelf
-rwxr-xr-x 1 root root 1.1M Jan  8 18:03 /usr/bin/i686-w64-mingw32-size
-rwxr-xr-x 1 root root 1.1M Jan  8 18:03 /usr/bin/i686-w64-mingw32-strings
-rwxr-xr-x 2 root root 1.2M Jan  8 18:03 /usr/bin/i686-w64-mingw32-strip
-rwxr-xr-x 1 root root 1.1M Jan  8 18:03 /usr/bin/i686-w64-mingw32-windmc
-rwxr-xr-x 1 root root 1.2M Jan  8 18:03 /usr/bin/i686-w64-mingw32-windres
-rwxr-xr-x 1 root root 1.3M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-addr2line
-rwxr-xr-x 2 root root 1.3M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-ar
-rwxr-xr-x 2 root root 2.2M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-as
-rwxr-xr-x 1 root root 1.3M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-c++filt
-rwxr-xr-x 1 root root 990K Jan  8 18:12 /usr/bin/x86_64-w64-mingw32-cpp
-rwxr-xr-x 2 root root 1.4M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-dlltool
-rwxr-xr-x 1 root root  51K Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-dllwrap
-rwxr-xr-x 1 root root  39K Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-elfedit
-rwxr-xr-x 2 root root 994K Jan  8 18:12 /usr/bin/x86_64-w64-mingw32-gcc
-rwxr-xr-x 2 root root 994K Jan  8 18:12 /usr/bin/x86_64-w64-mingw32-gcc-8.3.0
-rwxr-xr-x 1 root root  30K Jan  8 18:12 /usr/bin/x86_64-w64-mingw32-gcc-ar
-rwxr-xr-x 1 root root  30K Jan  8 18:12 /usr/bin/x86_64-w64-mingw32-gcc-nm
-rwxr-xr-x 1 root root  30K Jan  8 18:12 /usr/bin/x86_64-w64-mingw32-gcc-ranlib
-rwxr-xr-x 1 root root 663K Jan  8 18:12 /usr/bin/x86_64-w64-mingw32-gcov
-rwxr-xr-x 1 root root 499K Jan  8 18:12 /usr/bin/x86_64-w64-mingw32-gcov-dump
-rwxr-xr-x 1 root root 523K Jan  8 18:12 /usr/bin/x86_64-w64-mingw32-gcov-tool
-rwxr-xr-x 1 root root 1.4M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-gprof
-rwxr-xr-x 4 root root 1.8M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-ld
-rwxr-xr-x 4 root root 1.8M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-ld.bfd
-rwxr-xr-x 2 root root 1.3M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-nm
-rwxr-xr-x 2 root root 1.4M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-objcopy
-rwxr-xr-x 2 root root 2.7M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-objdump
-rwxr-xr-x 2 root root 1.3M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-ranlib
-rwxr-xr-x 2 root root 747K Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-readelf
-rwxr-xr-x 1 root root 1.3M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-size
-rwxr-xr-x 1 root root 1.3M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-strings
-rwxr-xr-x 2 root root 1.4M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-strip
-rwxr-xr-x 1 root root 1.3M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-windmc
-rwxr-xr-x 1 root root 1.4M Jan  8 18:03 /usr/bin/x86_64-w64-mingw32-windres
parkerlreed commented 4 years ago

I may need the gcc non base after all? Immediately after starting compile

checking whether make sets $(MAKE)... checking build system type... yes
checking whether make supports nested variables... yes
checking whether make sets $(MAKE)... (cached) yes
checking for x86_64-w64-mingw32-gcc... x86_64-w64-mingw32-gcc
checking whether the C compiler works... no
configure: error: in `/home/parker/build/hangover/build/libiconv64':
configure: error: C compiler cannot create executables
See `config.log' for more details
make: *** [Makefile:39: build/libiconv64/Makefile] Error 77
make: *** Waiting for unfinished jobs....
aarch64-unknown-linux-gnu
checking host system type... aarch64-unknown-linux-gnu
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
psstoyanov commented 4 years ago

That's very probable.

PS: I've went directly to the full-fat version.

parkerlreed commented 4 years ago

Yeah it's building now. Thanks for the help.

parkerlreed commented 4 years ago

Yeah.... dont install base. The actual GCC is a bit bigger and replaces base

[parker@alarm mingw-w64-gcc]$ sudo pacman -U mingw-w64-gcc-9.2.0-1-aarch64.pkg.tar 
[sudo] password for parker: 
loading packages...
resolving dependencies...
looking for conflicting packages...
:: mingw-w64-gcc and mingw-w64-gcc-base are in conflict. Remove mingw-w64-gcc-base? [y/N] y

Packages (2) mingw-w64-gcc-base-8.3.0-1 [removal]  mingw-w64-gcc-9.2.0-1

Total Installed Size:  713.97 MiB
Net Upgrade Size:      594.53 MiB
parkerlreed commented 4 years ago

@stefand Well I forgot to apply your patch to begin with and I ended up with no qemu build. I applied the patch and reran make in the top level and it's still seemingly not touching qemu.

make[2]: Leaving directory '/home/parker/build/hangover/build/wine-guest32/programs/xcopy'
Wine build complete.
make[1]: Leaving directory '/home/parker/build/hangover/build/wine-guest32'
make -C build/qemu
make[1]: Entering directory '/home/parker/build/hangover/build/qemu'
make[1]: *** No targets.  Stop.
make[1]: Leaving directory '/home/parker/build/hangover/build/qemu'
make: *** [Makefile:120: build/qemu/x86_64-windows-user/qemu-x86_64.exe.so] Error 2
parkerlreed commented 4 years ago

Ok so that build/qemu/Makefile is straight up empty. That's why it's just bailing. Is there any way to recreate that without redoing everything?

parkerlreed commented 4 years ago

Ok removing the build/qemu and rerunning is doing the trick. Seems I need to specify python 3...

Wine build complete.
make[1]: Leaving directory '/home/parker/build/hangover/build/wine-guest32'
cd build/qemu ; CC="/home/parker/build/hangover/build/wine-host/tools/winegcc/winegcc --winebuild /home/parker/build/hangover/build/wine-host/tools/winebuild/winebuild -I/home/parker/build/hangover/build/wine-host/include -I/home/parker/build/hangover/wine/include --wine-objdir /home/parker/build/hangover/build/wine-host -lpthread -DWINE_NOWINSOCK -U_WIN32 -UWIN64 -UWIN32 -DNOGDI" CXX="/home/parker/build/hangover/build/wine-host/tools/winegcc/wineg++ --winebuild /home/parker/build/hangover/build/wine-host/tools/winebuild/winebuild -I/home/parker/build/hangover/build/wine-host/include -I/home/parker/build/hangover/wine/include --wine-objdir /home/parker/build/hangover/build/wine-host -lpthread -DWINE_NOWINSOCK -U_WIN32 -UWIN64 -UWIN32 -DNOGDI" ../../qemu/configure --disable-bzip2 --disable-libusb --disable-sdl --disable-snappy --disable-virtfs --disable-opengl --python=/usr/bin/python2.7 --disable-xen --disable-lzo --disable-qom-cast-debug --disable-vnc --disable-seccomp --disable-strip --disable-hax --disable-gnutls --disable-nettle --disable-replication --disable-tpm --disable-gtk --disable-gcrypt --disable-linux-aio --disable-system --disable-tools --disable-linux-user --disable-guest-agent --enable-windows-user --disable-fdt --disable-capstone --disable-bluez --disable-werror --disable-vhost-net --disable-vhost-vsock --disable-vhost-scsi --disable-vhost-crypto --disable-vhost-kernel --disable-vhost-user ; cd ../.. ; touch build/qemu/Makefile
../../qemu/configure: line 1856: /usr/bin/python2.7: No such file or directory

ERROR: Cannot use '/usr/bin/python2.7', Python 2 >= 2.7 or Python 3 is required.
       Use --python=/path/to/python to specify a supported Python.
parkerlreed commented 4 years ago

Ok so at the very end

make -C build/dlls32/opengl32 opengl32.dll
make[1]: Entering directory '/home/parker/build/hangover/build/dlls32/opengl32'
i686-w64-mingw32-gcc ../../../dlls/opengl32/main.c -c -o main_g.o -I../../../dlls/opengl32/../include -I../../../dlls/opengl32/../../qemu/include -DQEMU_CURRENT_DLL=DLL_OPENGL32 -O2 -DCONST_VTABLE -DGUEST_BIT=32 -DHOST_BIT=64 -D_WIN32_WINNT=0x0603 -DQEMU_DLL_GUEST
../../../dlls/ntdll/reg.c:1038:28: error: conflicting types for ‘NtQueryMultipleValueKey’
 1038 | WINBASEAPI NTSTATUS WINAPI NtQueryMultipleValueKey(HANDLE KeyHandle, PKEY_MULTIPLE_VALUE_INFORMATION ListOfValuesToQuery, ULONG NumberOfItems, PVOID MultipleValueInformation, ULONG Length, PULONG ReturnLength)
      |                            ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../dlls/ntdll/reg.c:25:
/usr/i686-w64-mingw32/include/winternl.h:1088:18: note: previous declaration of ‘NtQueryMultipleValueKey’ was here
 1088 |   NTSTATUS NTAPI NtQueryMultipleValueKey(HANDLE KeyHandle, PKEY_VALUE_ENTRY ValueEntries, ULONG EntryCount, PVOID ValueBuffer, PULONG BufferLength, PULONG RequiredBufferLength);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~
../../../dlls/ntdll/reg.c:1176:28: error: conflicting types for ‘NtSetInformationKey’
 1176 | WINBASEAPI NTSTATUS WINAPI NtSetInformationKey(HANDLE KeyHandle, const int KeyInformationClass, PVOID KeyInformation, ULONG KeyInformationLength)
      |                            ^~~~~~~~~~~~~~~~~~~
In file included from ../../../dlls/ntdll/reg.c:25:
/usr/i686-w64-mingw32/include/winternl.h:1089:18: note: previous declaration of ‘NtSetInformationKey’ was here
 1089 |   NTSTATUS NTAPI NtSetInformationKey(HANDLE KeyHandle, KEY_SET_INFORMATION_CLASS KeySetInformationClass, PVOID KeySetInformation, ULONG KeySetInformationLength);
      |                  ^~~~~~~~~~~~~~~~~~~
make[1]: *** [../../../dlls/ntdll/Makefile:18: reg_g.o] Error 1
make[1]: Leaving directory '/home/parker/build/hangover/build/dlls32/ntdll'
make: *** [Makefile:196: build/dlls32/ntdll/ntdll.dll] Error 2
make: *** Waiting for unfinished jobs....

When I tried to run something despite that

[parker@alarm hangover]$ DISPLAY=:0 /home/parker/build/hangover/build/wine-host/loader/wine64 /home/parker/build/hangover/build/qemu/x86_64-windows-user/qemu-x86_64.exe.so notepad++.exe 
0020:err:winediag:xrandr12_init_modes Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead.
000d:err:winediag:xrandr12_init_modes Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead.
Did not manage to load any host DLLs.
Failed to load host DLLs
psstoyanov commented 4 years ago

@parkerlreed , on the topic of Python 2 - unless you have some dependency, it's best to use Python 3 as system version. Usually, it's build systems that require Python 2 but there could be plenty of packages that haven't updated yet. You can use virtualenv to switch between python 3 and python 2 for building things.

btw, what's your system setup? I am using Pinebook Pro with Panfrost usually in Wayfire of Plasma.

I'm waiting on qemu to compile again to see if I will get the same error.

Some instruction or option in Hangover's Makefile to clean the qemu build (or wine build) would be great indeed. Compiling the wine side on one a72 core is getting old pretty fast :smile:

stefand commented 4 years ago

qemu should be rebuilt if you change the qemu code. I guess The top level makefile should be fixed to make itself a dependency of everything - thus, if you change it, everything rebuilds.

But build systems are a mess...

On the topic of the ntdll failure. This is now finally hangover code :-). It looks like you have a different definition of NtQueryMultipleValueKey than I have. The easy way to hack it on your side is to try the following steps:

) Remove the WINBASEAPI ) change PKEY_MULTIPLE_VALUE_INFORMATION -> PKEY_VALUE_ENTRY *) Rename it in our .c file to e.g. qemu_NtQueryMultipleValueKey and adjust ntdll.spec accordingly.

The proper fix is to switch building ntdll's PE side to wine headers to be independent of the whims of mingw. See e.g. b7152f766aaec0aeddae41c08b5e8abb7d765db1.

parkerlreed commented 4 years ago

@psstoyanov Yeah the python thing was just pointing to 2.7. I changed to 3 and that seemed to work fine.

System is a Nintendo Switch running Arch ARM.

@stefand Thanks. You lost me at those steps. Heh. I'm dangerous enough to get around but not enough to fully understand all this.

parkerlreed commented 4 years ago

Yes! I interpreted your changes well enough to actually get past that error. It's building now. I will update once I know more.

parkerlreed commented 4 years ago

For reference here were the changes

Still waiting on build

parkerlreed commented 4 years ago

Well it appeared to build fine but still errors out. notepad++ 64bit portable is supposed to work, right?

x86_64-w64-mingw32-gcc ../../../dlls/advapi32/service.c -c -o service_g.o -I../../../dlls/advapi32/../include -I../../../dlls/advapi32/../../qemu/include -DQEMU_CURRENT_DLL=DLL_ADVAPI32 -O2 -D_WIN32_WINNT=0x0603 -DGUEST_BIT=64 -DHOST_BIT=64 -DQEMU_DLL_GUEST
x86_64-w64-mingw32-gcc ../../../dlls/advapi32/wmi.c -c -o wmi_g.o -I../../../dlls/advapi32/../include -I../../../dlls/advapi32/../../qemu/include -DQEMU_CURRENT_DLL=DLL_ADVAPI32 -O2 -D_WIN32_WINNT=0x0603 -DGUEST_BIT=64 -DHOST_BIT=64 -DQEMU_DLL_GUEST
../../../build/wine-host/tools/winegcc/winegcc --winebuild ../../../build/wine-host/tools/winebuild/winebuild -I../../../build/wine-host/include -I../../../wine/include --wine-objdir ../../../build/wine-guest -shared -b x86_64-w64-mingw32 ../../../dlls/d3d11/d3d11.spec *_g.o -o d3d11.dll -ldxguid -ldxgi
make[1]: Leaving directory '/home/parker/build/hangover/build/dlls64/d3d11'
../../../build/wine-host/tools/winegcc/winegcc --winebuild ../../../build/wine-host/tools/winebuild/winebuild --wine-objdir ../../../build/wine-host -I../../../build/wine-host/include -I../../../wine/include --wine-objdir ../../../build/wine-guest -shared -b x86_64-w64-mingw32 ../../../dlls/advapi32/advapi32.spec *_g.o -lwinecrt0 -o advapi32.dll -nodefaultlibs -nostdlib -lkernel32 -Wl,--image-base,0x40000000
make[1]: Leaving directory '/home/parker/build/hangover/build/dlls64/advapi32'
[parker@alarm hangover]$ sync
[parker@alarm hangover]$ DISPLAY=:0 /home/parker/build/hangover/build/wine-host/loader/wine64 /home/parker/build/hangover/build/qemu/x86_64-windows-user/qemu-x86_64.exe.so notepad++.exe
001f:err:winediag:xrandr12_init_modes Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead.
000d:err:winediag:xrandr12_init_modes Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead.
Did not manage to load any host DLLs.
Failed to load host DLLs
parkerlreed commented 4 years ago

loaddll debug

[parker@alarm hangover]$ WINEDEBUG=+loaddll DISPLAY=:0 /home/parker/build/hangover/build/wine-host/loader/wine64 /home/parker/build/hangover/build/qemu/x86_64-windows-user/qemu-x86_64.exe.so notepad++.exe 
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernelbase.dll" at 0x7fadc20000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernel32.dll" at 0x7b420000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\wineboot.exe" at 0x7fadae0000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x7fada50000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\msvcrt.dll" at 0x7fad980000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernelbase.dll" at 0x7f91a00000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernel32.dll" at 0x7b420000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\winemenubuilder.exe" at 0x7f918b0000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x7f915d0000: builtin
000f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernelbase.dll" at 0x7f85c40000: builtin
000f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernel32.dll" at 0x7b420000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x7f911d0000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\msvcrt.dll" at 0x7f910d0000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x7f911a0000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x7f91370000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x7f91020000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\ole32.dll" at 0x7f91670000: builtin
000f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\services.exe" at 0x7f85b00000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\oleaut32.dll" at 0x7f90ee0000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\propsys.dll" at 0x7f90e90000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\shlwapi.dll" at 0x7f90e20000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\shcore.dll" at 0x7f90de0000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\windowscodecs.dll" at 0x7f917e0000: builtin
000f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x7f859d0000: builtin
000f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\msvcrt.dll" at 0x7f858f0000: builtin
000f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x7f85a60000: builtin
000f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\userenv.dll" at 0x7f858b0000: builtin
000f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x7f85800000: builtin
000f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\setupapi.dll" at 0x7f85820000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\shell32.dll" at 0x7f903e0000: builtin
0012:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernelbase.dll" at 0x7fa6f40000: builtin
0012:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernel32.dll" at 0x7b420000: builtin
0012:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\plugplay.exe" at 0x7fa7880000: builtin
0012:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x7fa6db0000: builtin
0012:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\msvcrt.dll" at 0x7fa6ce0000: builtin
0012:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x7fa6c30000: builtin
0019:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernelbase.dll" at 0x7f7a480000: builtin
0019:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernel32.dll" at 0x7b420000: builtin
0019:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\winedevice.exe" at 0x7f7adb0000: builtin
0019:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x7f7a2f0000: builtin
0019:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\msvcrt.dll" at 0x7f7a1a0000: builtin
0019:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\ntoskrnl.exe" at 0x7f7a270000: builtin
0019:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x7f7a0e0000: builtin
001b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\drivers\\winebus.sys" at 0x7f7a0a0000: builtin
001b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x7f79f60000: builtin
001b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\setupapi.dll" at 0x7f79f90000: builtin
001b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\hidclass.sys" at 0x7f79f30000: builtin
001b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\drivers\\winehid.sys" at 0x7f7a080000: builtin
001b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\hid.dll" at 0x7f79f00000: builtin
001b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x7f79b20000: builtin
001b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x7f79cb0000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x7f8fdc0000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernelbase.dll" at 0x7f8ccb0000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernel32.dll" at 0x7b420000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\explorer.exe" at 0x7f8cb70000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x7f8ca40000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\msvcrt.dll" at 0x7f8c970000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x7f8cad0000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x7f8c570000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x7f8c530000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x7f8c700000: builtin
001b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x7f794e0000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x7f8bf30000: builtin
0022:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernelbase.dll" at 0x7f991a0000: builtin
0022:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernel32.dll" at 0x7b420000: builtin
0022:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\winedevice.exe" at 0x7f99ae0000: builtin
0022:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x7f99010000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\setupapi.dll" at 0x7f8bbd0000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\winex11.drv" at 0x7f8be70000: builtin
0022:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\msvcrt.dll" at 0x7f98ec0000: builtin
0022:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\ntoskrnl.exe" at 0x7f98f90000: builtin
001f:err:winediag:xrandr12_init_modes Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead.
0022:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x7f98e10000: builtin
0024:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\drivers\\mountmgr.sys" at 0x7f98dc0000: builtin
0024:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x7f98a30000: builtin
0024:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\setupapi.dll" at 0x7f98a60000: builtin
0026:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x7f98640000: builtin
0026:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x7f987e0000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x7facaf0000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x7facac0000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x7facc90000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\shlwapi.dll" at 0x7facef0000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x7fac880000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\ole32.dll" at 0x7fac930000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\shcore.dll" at 0x7faca90000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\shlwapi.dll" at 0x7f8ba70000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\ole32.dll" at 0x7f8ae60000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\shcore.dll" at 0x7f8afb0000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\shell32.dll" at 0x7f8b000000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\oleaut32.dll" at 0x7f8abd0000: builtin
001f:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\actxprxy.dll" at 0x7f8ad30000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\setupapi.dll" at 0x7f8fa70000: builtin
000d:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\winex11.drv" at 0x7f8fd10000: builtin
000d:err:winediag:xrandr12_init_modes Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead.
0026:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x7f98030000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x7fac270000: builtin
000b:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\shell32.dll" at 0x7facf70000: builtin
0009:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernelbase.dll" at 0x7f9fe90000: builtin
0009:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\kernel32.dll" at 0x7b420000: builtin
0009:trace:loaddll:load_so_dll Loaded L"F:\\home\\parker\\build\\hangover\\build\\qemu\\x86_64-windows-user\\qemu-x86_64.exe" at 0x7f9da70000: builtin
0009:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x7f9cd50000: builtin
0009:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\advapi32.dll" : builtin
0009:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x7f9cd50000: builtin
0009:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\advapi32.dll" : builtin
0009:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x7f9c5d0000: builtin
0009:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x7f9c670000: builtin
0009:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\msvcrt.dll" at 0x7f9c4e0000: builtin
0009:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x7f9c5a0000: builtin
0009:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x7f9c800000: builtin
0009:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x7f9c070000: builtin
Did not manage to load any host DLLs.
Failed to load host DLLs
psstoyanov commented 4 years ago

@parkerlreed , it might be better to create a new ticket for this new error on the Tegra device.

Add the system setup at the top of the ticket. Future you or other users with similar problem will benefit from it 😉

parkerlreed commented 4 years ago

Ahh ok thanks. I realized after rerunning make that my modifications above weren't as successful as I thought.

Wine build complete.
make[1]: Leaving directory '/home/parker/build/hangover/build/wine-guest32'
ln -sf ../../../dlls64/ntdll/ntdll.dll build/qemu/x86_64-windows-user/qemu_guest_dll64/
make -C build/dlls64/ntdll ntdll.dll
make[1]: Entering directory '/home/parker/build/hangover/build/dlls64/ntdll'
../../../build/wine-host/tools/winegcc/winegcc --winebuild ../../../build/wine-host/tools/winebuild/winebuild -I../../../build/wine-host/include -I../../../wine/include --wine-objdir ../../../build/wine-guest -shared -b x86_64-w64-mingw32 ../../../dlls/ntdll/ntdll.spec *_g.o -o ntdll.dll -nodefaultlibs -nostdlib -Wl,--image-base,0x9000000
/usr/lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld: ntdll.dll-3xxOKd.spec.o:fake:(.edata+0x434): undefined reference to `NtSetContextThread'
/usr/lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld: ntdll.dll-3xxOKd.spec.o:fake:(.edata+0xfb8): undefined reference to `NtSetContextThread'
collect2: error: ld returned 1 exit status
winegcc: x86_64-w64-mingw32-gcc failed
make[1]: *** [../../../dlls/ntdll/Makefile:12: ntdll.dll] Error 2
make[1]: Leaving directory '/home/parker/build/hangover/build/dlls64/ntdll'
make: *** [Makefile:203: build/dlls64/ntdll/ntdll.dll] Error 2
parkerlreed commented 4 years ago

@psstoyanov Submitted

AndreRH commented 4 years ago

I made some commits, please test again without modifications on current master

AndreRH commented 4 years ago

Can we close this issue?

ghost commented 4 years ago

@AndreRH I would extremely recommeded to go with a box86 approach and get involved in that development.