darlinghq / darling

Darwin/macOS emulation layer for Linux
http://www.darlinghq.org
GNU General Public License v3.0
11.32k stars 435 forks source link

make fails at 54%: tiffconf.h and other header issues #891

Open ringtailedfox opened 3 years ago

ringtailedfox commented 3 years ago

Build Log So... on Mageia Linux, you need to make the folder /usr/include/multiarch-x86_64-_MULTIARCH_OS/ then symlink /usr/include/tiffconf.h into it or you get missing header file errors...

I've already done that, but now I see another error:

[ 54%] Building C object src/external/cocotron/Onyx2D/CMakeFiles/Onyx2D.dir/O2TIFFImageDirectory.m.o
In file included from /home/user/Downloads/darling/src/external/cocotron/Onyx2D/O2TIFFImageDirectory.m:30:
In file included from /usr/include/tiffio.h:31:
In file included from /usr/include/tiff.h:28:
In file included from /usr/include/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
In file included from /usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:
In file included from /usr/include/multiarch-dispatch.h:80:
/usr/include/multiarch-x86_64-_MULTIARCH_OS/tiffconf.h:2:10: error: #include nested too deeply
#include <multiarch-dispatch.h>
         ^
In file included from /home/user/Downloads/darling/src/external/cocotron/Onyx2D/O2TIFFImageDirectory.m:30:
In file included from /usr/include/tiffio.h:31:
/usr/include/tiff.h:66:9: error: unknown type name 'TIFF_INT8_T'
typedef TIFF_INT8_T   int8;
        ^
/usr/include/tiff.h:67:9: error: unknown type name 'TIFF_UINT8_T'
typedef TIFF_UINT8_T  uint8;
        ^
/usr/include/tiff.h:69:9: error: unknown type name 'TIFF_INT16_T'
typedef TIFF_INT16_T  int16;
        ^
/usr/include/tiff.h:70:9: error: unknown type name 'TIFF_UINT16_T'
typedef TIFF_UINT16_T uint16;
        ^
/usr/include/tiff.h:72:9: error: unknown type name 'TIFF_INT32_T'
typedef TIFF_INT32_T  int32;
        ^
/usr/include/tiff.h:73:9: error: unknown type name 'TIFF_UINT32_T'
typedef TIFF_UINT32_T uint32;
        ^
/usr/include/tiff.h:75:9: error: unknown type name 'TIFF_INT64_T'
typedef TIFF_INT64_T  int64;
        ^
/usr/include/tiff.h:76:9: error: unknown type name 'TIFF_UINT64_T'
typedef TIFF_UINT64_T uint64;
        ^
In file included from /home/user/Downloads/darling/src/external/cocotron/Onyx2D/O2TIFFImageDirectory.m:30:
/usr/include/tiffio.h:65:9: error: unknown type name 'TIFF_SSIZE_T'
typedef TIFF_SSIZE_T tmsize_t;
        ^
10 errors generated.
make[2]: *** [src/external/cocotron/Onyx2D/CMakeFiles/Onyx2D.dir/build.make:1194: src/external/cocotron/Onyx2D/CMakeFiles/Onyx2D.dir/O2TIFFImageDirectory.m.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:56978: src/external/cocotron/Onyx2D/CMakeFiles/Onyx2D.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

So... before you ask what does /usr/include/tiffconf.h look like, it contains just two lines:

define _MULTIARCH_HEADER tiffconf.h

include

System Information What system are you building with?

Software Version
GCC 8.4.0
Clang 8.0.0
CMake 3.4.13
Linux Kernel 5.7.19-3
Mageia Linux 7.1 x86-64
Darling 6fcacfc1f30d4a4941d348eef01fec33841525f1
HinTak commented 3 years ago

Who ever gave you the idea to do symlinks should be shot. That would mess up your system badly in general and you may need to reinstall and / or do quite painful thing to your system to recover from your mistakes.

If Mageia Linux came with multiarch headers like that, the compiler should be able to find them in those locations that way - you may need to install some "multiarch" support packages from Mageia. You are not the only one who is building any c++ programs on Mageia Linux, so it must work somehow and by default, without manual hackery. The correct way to deal with private headers in a different locations is to add -I to CFLAGS /CPPFLAGS/CXXFLAGS (if that's even needed...)

ringtailedfox commented 3 years ago

I thought it would work... I don't know what else to do.

HinTak commented 3 years ago

The error "error: #include nested too deeply" is typical of systems with messed-up symlinks in the include directory. At this point, I suspect that you cannot compile any non-trivial programs at all, especially anything to do with libtiff. It is also possible that the problem is not fixable by merely reinstalling libtiff/libtiff-devel , depending on what hackery you did. You may need to ask a more experienced friend to fix it, or a more serious wipe-and-reinstall...

I suspect your original problem was that you did not have all the development packages needed. In particular, you need both libtiff.x86_64 libtiff-devel.x86_64 and their i686 counterparts I.e. You need both architectures. See fedora/suse requirements in the build instructions.

ringtailedfox commented 3 years ago

oh, it was giving that nested error on a virgin install of mageia linux without any symlinks being made...

HinTak commented 3 years ago

This is the kind of random hackery that unfortunately can survive a reinstall. You need wipe-and-reinstall, as I wrote earlier...

ringtailedfox commented 3 years ago

yeah i did wipe the drive and re-installed everything... it still fails during make at 54%.... not too sure what I can do to get darling to build on mageia linux...

HinTak commented 3 years ago

You mostly likely need to have both of 32-but and 64-bit dev packages installed... Use the fedora / suse / ubuntu lists as reference in the install instructions.

HinTak commented 3 years ago

For example, liftiff depends on libjpeg or libjpeg-turbo, so you need to have the corresponding 32-bit dev package for libjpeg too.

ringtailedfox commented 3 years ago

i figured i'd only need the 64-bit libraries but I'll give it a shot and report back with my findings!

HinTak commented 3 years ago

You figured it wrong: regardless whether you want to run alternative arch binaries on the host on any scale, mac os x binaries, until very recently, are all multiarch / fat . Since darling needs to support running those, it needs all the multiarch dev packages on the host side to build. 

ringtailedfox commented 3 years ago

okay. i have all the libraries (i686/32-bit and x86_64/64-bit) installed and it changed nothing... I wonder if I should just try compiling the new kernel module, despite being on kernel 5.7.19-3....

pianocomp81 commented 2 years ago

I ran into this same problem and found a temporary solution. For some reason __linux__ isn't defined when building this particular module, which messes up Mageia's multiarch-utils header files. This issue is specific to Mageia only (see the multiarch-utils package in Mageia; I haven't found any documentation on how they expect it to work yet, though).

It's kind of odd that __linux__ isn't defined, but I'm not familiar with how darling sets up its build.

Temporary diff that fixes it:

diff -Nupr multiarch-dispatch.h.orig multiarch-dispatch.h
--- multiarch-dispatch.h.orig   2022-02-26 18:39:49.143515479 -0500
+++ multiarch-dispatch.h    2022-02-26 18:35:07.325662005 -0500
@@ -72,9 +72,9 @@
 #endif

 /* Dispatch arch dependent header */
-#if defined(__linux__)
+/*#if defined(__linux__)*/
 #define _MULTIARCH_OS linux
-#endif
+/*#endif*/
 #define _MULTIARCH_MAKE_HEADER(arch,header) <multiarch-arch-_MULTIARCH_OS/header>
 #if defined(__x86_64__)
 #include _MULTIARCH_MAKE_HEADER(x86_64,_MULTIARCH_HEADER)

Is there a way to define a preprocessor variable on the cmake or make command line? I'm thinking Mageia users could then define "_MULTIARCH_OS=linux" for the preprocessor.