AndreRH / hangover

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

qemu error compile on hangover. Linux arm64 on my cosmo Communicator. #60

Closed cam1965 closed 4 years ago

cam1965 commented 4 years ago

After some time and some adjusts I have compiled everything of hangover , except qemu. I have changed in Makefile --winebuild to -B and --wine-objdir to --sysroot to work. ( in qemu ). I am compiling in my cosmo communicator arm64. The qemu log file shows : /home/gemini/hangover/build/wine-host/tools/winegcc/winegcc -B /home/gemini/hangover/build/wine-host/tools/winebuild/winebuild -I/home/gemini/hangover/ build/wine-host/include -I/home/gemini/hangover/wine/include --sysroot=/home/gemini/hangover/build/wine-host -lpthread -DWINE_NOWINSOCK -U_WIN32 -UWIN6 4 -UWIN32 -DNOGDI -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wall -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c /home/gemini/hangover/build/wine-host/tools/winegcc/winegcc -B /home/gemini/hangover/build/wine-host/tools/winebuild/winebuild -I/home/gemini/hangover/ build/wine-host/include -I/home/gemini/hangover/wine/include --sysroot=/home/gemini/hangover/build/wine-host -lpthread -DWINE_NOWINSOCK -U_WIN32 -UWIN6 4 -UWIN32 -DNOGDI -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wall -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -c -o config-temp/qemu-conf.o config-temp/qemu-conf.c config-temp/qemu-conf.c:2:2: error: #error i386 not defined

error i386 not defined

same for config-temp/qemu-conf.c:2:2: error: #error __x86_64__ not defined

error __x86_64__ not defined

config-temp/qemu-conf.c:2:2: error: #error sparc not defined

error sparc not defined

same for (just the last line )

error _ARCH_PPC not defined

error mips not defined

error s390 not defined

error __riscv not defined

error arm not defined

winegcc: winebuild failed

qemu-conf.c has only 1 line int main(void) { return 0; } Please, help me . Thanks

AndreRH commented 4 years ago

can you send us the qemu configure line that leads to that error please

cam1965 commented 4 years ago

Hi . Thank you. I have already solved this problem . But I am having another problems compiling the dlls . I had to change the options from wigegcc as I said before ( -B and --sysroot ) in all Makefiles and also had to put the dll library path inside all Makefile s. It would be nice if you have provided all dlls instead of compiling them. The problem in this topic was solved changing the Makefile as below ( in this case I had to remove the sysroot option and placed the configure first). Hangover/Makefie

Build qemu

build/qemu/Makefile: build/wine-host/.built qemu/configure @mkdir -p $(@D) cd build/qemu ; ../../qemu/configure --python=/usr/bin/python2.7 --enable-windows-user $(QEMU_DISABLES); cd ../.. ; touch $@

build/qemu/x86_64-windows-user/qemu-x86_64.exe.so: build/qemu/Makefile +$(MAKE) -C build/qemu CC="$(WINE_HOST)/tools/winegcc/winegcc -B $(WINE_HOST)/tools/winebuild/winebuild -I$(WINE_HOST)/include -I$(WINE_SRC)/include -lpthread -DWINE_NOWINSOCK -U_WIN32 -UWIN64 -UWIN32 -DNOGDI" CXX="$(WINE_HOST)/tools/winegcc/wineg++ -B $(WINE_HOST)/tools/winebuild/winebuild -I$(WINE_HOST)/include -I$(WINE_SRC)/include -lpthread -DWINE_NOWINSOCK -U_WIN32 -UWIN64 -UWIN32 -DNOGDI"

AndreRH commented 4 years ago

that looks totally wrong, something is wrong with your setup. did you do a "git submodule update"???

cam1965 commented 4 years ago

Thank you. Yesm I did it manually ( the automatic update didn't work ). I've dowloaded from the links after I did git submodule init Please see below gemini@cosmopda:~/Downloads/hangover$ git submodule init Submodule 'freetype' (https://github.com/aseprite/freetype2) registered for path 'freetype' Submodule 'glib' (https://github.com/AndreRH/glib.git) registered for path 'glib' Submodule 'libpng' (https://github.com/glennrp/libpng) registered for path 'libpng' Submodule 'libxml2' (https://gitlab.gnome.org/GNOME/libxml2.git) registered for path 'libxml2' Submodule 'libxslt' (https://gitlab.gnome.org/GNOME/libxslt.git) registered for path 'libxslt' Submodule 'qemu' (https://github.com/AndreRH/qemu.git) registered for path 'qemu' Submodule 'wine' (https://github.com/AndreRH/wine.git) registered for path 'wine' gemini@cosmopda:~/Downloads/hangover$ Because after this I did git submodule update and the command stops as below gemini@cosmopda:~/Downloads/hangover$ git submodule update Cloning into '/home/gemini/Downloads/hangover/freetype'..

And nothing happens even if I wait 30 minutes . So I did it manyually downloading from the links .

cam1965 commented 4 years ago

Please, the original Makefile is as below ( but it didn't work ).

Build qemu

build/qemu/Makefile: build/wine-host/.built qemu/configure @mkdir -p $(@D) cd build/qemu ; CC="$(WINE_HOST)/tools/winegcc/winegcc --winebuild $(WINE_HOST)/tools/winebuild/winebuild -I$(WINE_HOST)/include -I$(WINE_SRC)/include --wine-objdir $(WINE_HOST) -lpthread -DWINE_NOWINSOCK -U_WIN32 -UWIN64 -UWIN32 -DNOGDI" CXX="$(WINE_HOST)/tools/winegcc/wineg++ --winebuild $(WINE_HOST)/tools/winebuild/winebuild -I$(WINE_HOST)/include -I$(WINE_SRC)/include --wine-objdir $(WINE_HOST) -lpthread -DWINE_NOWINSOCK -U_WIN32 -UWIN64 -UWIN32 -DNOGDI" ../../qemu/configure --python=/usr/bin/python2.7 --enable-windows-user $(QEMU_DISABLES); cd ../.. ; touch $@

AndreRH commented 4 years ago

You likely have a totally wrong state now with wrong versions of all submodules, that simply can't work

cam1965 commented 4 years ago

ok. I have already compiled wine successfully. I have also tried do download hangover and submodules from another computer running linux without success. Only the manual download was successfull. Thank you again.

cam1965 commented 4 years ago

Note that I have placed only a part of Makefile. I also have compared my hangover tree with the one provided in your site and it is exactly the same. Every file is the same.

AndreRH commented 4 years ago

I just tested a fresh clone and git submodule update works here... freetype is around 22MB The problem is not a hangover one. Your best bet is to make git submodule work

cam1965 commented 4 years ago

when I have updated my hangover manually as I said before, I did a git clone inside hangover from the links mentioned before m for example git clone https://github.com/aseprite/freetype2, so it is the same as git submodule update I have the full tree of hangover updated. Thank you again