Package: ceph Version: 0.67.3-1 Severity: serious Tags: upstream Justification: fails to build from source (but built successfully in the past)
ceph fails to build on 64-bit architectures that are not x86-64 ones. It tries to build x86 specific assembly code on all 64-bit architectures: | common/crc32c-intel.c: In function 'crc32c_intel_le_hw_byte': | common/crc32c-intel.c:41:17: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c: In function 'ceph_crc32c_le_intel': | common/crc32c-intel.c:63:17: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:59:17: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c: In function 'crc32c_intel_le_hw_byte': | common/crc32c-intel.c:37:17: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c: In function 'ceph_crc32c_le_intel': | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:68:46: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:68:46: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:68:46: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:68:46: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:68:46: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:99:1: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:48:10: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:59:17: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:59:17: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:37:17: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:37:17: warning: matching constraint does not allow a register [enabled by default] | common/crc32c-intel.c:59:17: error: inconsistent operand constraints in an 'asm' | common/crc32c-intel.c:37:17: error: inconsistent operand constraints in an 'asm' | common/crc32c-intel.c:59:17: error: inconsistent operand constraints in an 'asm' | common/crc32c-intel.c:37:17: error: inconsistent operand constraints in an 'asm' | common/crc32c-intel.c:59:17: error: inconsistent operand constraints in an 'asm' | common/crc32c-intel.c:37:17: error: inconsistent operand constraints in an 'asm' | common/crc32c-intel.c: In function 'ceph_have_crc32c_intel': | common/crc32c-intel.c:80:9: error: unknown register name 'edx' in 'asm' | common/crc32c-intel.c:80:9: error: unknown register name 'ecx' in 'asm' | common/crc32c-intel.c:80:9: error: unknown register name 'ebx' in 'asm' | common/crc32c-intel.c:80:9: error: unknown register name 'eax' in 'asm' | make[5]: *** [libcommon_la-crc32c-intel.lo] Error 1 This is due to the weird following code, assuming that all 64-bit architectures are x86-64 | /* this probably isn't specific enough for x86_64? fix me someday */ | #ifdef __LP64__ This is even weirder later when the codes tests for BITS_PER_LONG == 64 inside the __LP64__ block. In order to match amd64 but not x32, which seems to be the goal of the original code, this code should be replaced by: | #if defined(__x86_64__) && defined(__LP64__) -- System Information: Debian Release: jessie/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: s390x Kernel: Linux 3.2.0-4-s390x (SMP w/2 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

