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]

Reply via email to