Hi,
A number of packages have multilib header file wrappers such as this one (blkid_types.h from e2fsprogs):
/* This file is here to prevent a file conflict on multiarch systems. A * conflict will occur because blkid_types.h has arch-specific definitions. * * DO NOT INCLUDE THE NEW FILE DIRECTLY -- ALWAYS INCLUDE THIS ONE INSTEAD. */
#if defined(__i386__) #include "blkid_types-i386.h" #elif defined(__ia64__) #include "blkid_types-ia64.h" #elif defined(__powerpc64__) #include "blkid_types-ppc64.h" #elif defined(__powerpc__) #include "blkid_types-ppc.h" #elif defined(__s390x__) #include "blkid_types-s390x.h" #elif defined(__s390__) #include "blkid_types-s390.h" #elif defined(__x86_64__) #include "blkid_types-x86_64.h" #elif defined(__alpha__) #include "blkid_types-alpha.h" #else #error "This e2fsprogs-devel package does not work your architecture?" #endif
It seems that most of such header files are (directly or indirectly) copied from some original example that didn't test for ARM, and so, a couple of examples in the distro right now lack the proper definitions for ARM, causing ARM to end up with unusable -devel packages.
On ARM, the preprocessor symbol __arm__ is defined, and %{_arch} is set to 'arm', so something like this will work:
#if defined(__i386__) #include "blkid_types-i386.h" +#elif defined(__arm__) +#include "blkid_types-arm.h" #elif defined(__ia64__) #include "blkid_types-ia64.h" #elif defined(__powerpc64__)
If you have such a construct in your package, please consider adding the relevant __arm__ bits.
thanks, Lennert