Closed ric96 closed 4 years ago
I have encountered this problem, you are just missing build dependencies, if you work on ubuntu, you need
sudo apt build-dep libxml2 libxslt libpng qemu wine
But in the end it is still the problem
https://github.com/AndreRH/hangover/issues/22
sudo apt build-dep libxml2 libxslt libpng qemu wine
that didn't help
The build deps should not be the issue in this case. Libxml and libxslt are compiled for the guest side (i.e., x86 and x86_64 windows) so that the guest side msxml.dll from Wine can link against it.
It seems that your libxslt does not find libxml. A few things to try:
) Don't use a parallel make, i.e., run just "make" and not "make -j XX". Start with a clean hangover tree. ) If that fails with the same error, build libxslt with V=1. Look for the libxslt dir in build/, cd into it and run "make V=1". It will give more details. Sorry, I don't have the exact name of the directory in my head.
Errors with 'make V=1' https://pastebin.com/Wdz1Qq0W
my failed command was
/bin/bash ../libtool --silent --tag=CC --mode=link x86_64-w64-mingw32-gcc -I/home/eugene/hangover/build/x86_64-w64-mingw32/include/libxml2 -I/home/eugene/hangover/build/x86_64-w64-mingw32/include -g -O2 -Wall -Wformat=2 -Wmissing-format-attribute -version-info 8:20:8 -no-undefined -o libexslt.la -rpath /home/eugene/hangover/build/x86_64-w64-mingw32/lib exslt.lo common.lo crypto.lo math.lo sets.lo functions.lo strings.lo date.lo saxon.lo dynamic.lo ../libxslt/libxslt.la
I have added ../../libxml2_64/libxml2.la
at the end to include libxml2 and apparently it fixed the build
It is not trying to link to libxml2. Is libxml2 built correctly?
Er, I did not read your last commend carefully enough. So libxml2 is there, although I think it should be built as a dynamic DLL, not a statically linked library. Something is certainly wrong - you shouldn't have to manually patch up build instructions...
so for building 64-bit libexslt.la I had to manually add ../../libxml2_64/libxml2.la
to the cmd line, and for 32-bit libexslt.la - ../../libxml2_32/libxml2.la
apparently root Makefile need to be amended to include those libraries for linking
pkgconfig should figure this out. We invoke libxslt's configure with a PKG_CONFIG_PATH that points to the location where the Win32/Win64 build of libxml2.dll is placed.
Do you have pkgconfig installed on your system? If it is missing it might explain the symptom, although I would expect libxslt's configure to fail because it isn't able to find libxml2.
did you mean pkg-config? it is present, but I assume this is for system libraries - but as I am on aarch64, local aarch64 libxml2 will not help, as I need x86_64 one to link
As stefand said, the libxml2 static library was not found during the link phase, but it has been built correctly. You need to add the $(LIBXML_LIBS) parameter to the /hangover/libxslt64/libexslt/Makefile 144 line libexslt_la_LINK variable. This parameter is in the Makefile. Already defined but not used, I don't know why, after the generated libxslt32 also has the same problem
I tried to add $(LIBXML_LIBS) in the hangover/libxslt/libexslt/Makefile.am 30 line variable libexslt_la_LIBADD, the libexslt.la dependency library is included, and the compilation is successful, I don't know if there is any impact on other locations.
fixed by 51c0399a04a1b668391be2028a09a72a4380fa62
gcc version 8.2-win32 20190215 (GCC) Complete Build log: https://pastebin.com/rif0iCxT