Open ringtailedfox opened 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...)
I thought it would work... I don't know what else to do.
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.
oh, it was giving that nested error on a virgin install of mageia linux without any symlinks being made...
This is the kind of random hackery that unfortunately can survive a reinstall. You need wipe-and-reinstall, as I wrote earlier...
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...
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.
For example, liftiff depends on libjpeg or libjpeg-turbo, so you need to have the corresponding 32-bit dev package for libjpeg too.
i figured i'd only need the 64-bit libraries but I'll give it a shot and report back with my findings!
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.
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....
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.
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:
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?