Description of problem: The Fedora-specific multilib opensslconf.h relies on GCC predefined macros to separate between ppc64 BE and LE: *** multilib <openssl/opensslconf.h> *** #elif defined(__powerpc64__) #include <endian.h> #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ #include "opensslconf-ppc64.h" #else #include "opensslconf-ppc64le.h" #endif *** <bits/endian.h> *** #if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN # if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN # error Both BIG_ENDIAN and LITTLE_ENDIAN defined! # endif # define __BYTE_ORDER __BIG_ENDIAN #else # if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN # define __BYTE_ORDER __LITTLE_ENDIAN # else # warning Cannot determine current byte order, assuming big-endian. # define __BYTE_ORDER __BIG_ENDIAN # endif #endif However, when swig is used, it defines neither __LITTLE_ENDIAN__ nor __BIG_ENDIAN__, and so incorrectly assumes BE. This wrapper header is only needed on multilib systems to prevent conflicts between the 31/32-bit and 64-bit openssl-devel. Since ppc64le is not actually a multilib arch, this wrapper technically should not be necessary and could be avoided in openssl.spec: -%define multilib_arches %{ix86} ia64 %{mips} ppc %{power64} s390 s390x sparcv9 sparc64 x86_64 +%define multilib_arches %{ix86} ia64 %{mips} ppc ppc64 s390 s390x sparcv9 sparc64 x86_64 Version-Release number of selected component (if applicable): openssl-1.0.2k-12.el7.ppc64le How reproducible: 100% Steps to Reproduce: 1. dnf install openssl-devel python2-devel 2. pip2 install M2Crypto Actual results: swig -python -D__powerpc64__ -D_CALL_ELF=2 -I/usr/include/python2.7 -I/usr/include/openssl -I/usr/lib/gcc/ppc64le-redhat-linux/8/include -I/usr/local/include -I/usr/include -includeall -modern -builtin -outdir /tmp/pip-build-TWu1Rg/M2Crypto/M2Crypto -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i /usr/include/bits/endian.h:33: Warning 204: CPP #warning, "Cannot determine current byte order, assuming big-endian.". /usr/include/openssl/opensslconf.h:27: Error: Unable to find 'opensslconf-ppc64.h' error: command 'swig' failed with exit status 1 Expected results: Build succeeds.