Project

General

Profile

Bug #20109

src/common/crc32c_ppc_asm.s ppc64le build break

Added by Andrew Solomon about 4 years ago. Updated about 4 years ago.

Status:
Resolved
Priority:
Normal
Category:
build
Target version:
% Done:

0%

Source:
Community (dev)
Tags:
Backport:
Regression:
Yes
Severity:
2 - major
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

It looks like there is a build break on ppc64le architecture associated with a recent change. The error message looks like this ...

[ 51%] ?[32mBuilding ASM object src/CMakeFiles/common-objs.dir/common/crc32c_ppc_asm.s.o?[0m
/home/ubuntu/ceph/kestrels.1/ceph/src/common/crc32c_ppc_asm.s: Assembler messages:
/home/ubuntu/ceph/kestrels.1/ceph/src/common/crc32c_ppc_asm.s:84: Error: unrecognized opcode: `func_start(__crc32_vpmsum)'
/home/ubuntu/ceph/kestrels.1/ceph/src/common/crc32c_ppc_asm.s:127: Error: unrecognized opcode: `mtvrd(v8,'
/home/ubuntu/ceph/kestrels.1/ceph/src/common/crc32c_ppc_asm.s:200: Error: unrecognized opcode: `vperm(v16,v16,v16,byteswap)'
/home/ubuntu/ceph/kestrels.1/ceph/src/common/crc32c_ppc_asm.s:201: Error: unrecognized opcode: `vperm(v17,v17,v17,byteswap)'

This occurs because someone renamed the file src/common/crc32c_ppc_asm.S to .s and now gcc doesn't accept that as an assembly file.

git log --follow -p crc32c_ppc_asm.s | pg
commit e1c3985148869c55b3725e208ec3bc5acf5fceae
Author: Bassam Tabbara <>
Date: Wed May 17 17:41:16 2017 -0700

cmake: workaound ccache issue with .S assembly files
when building with -DWITH_CCACHE=ON recent versions of ccache
(for example 3.3.3) seem to mangle object files from the cache
for source files that have a .S extension. This seems similar
but unrelated to PR #14633. The workaround here is to rename .S
files to .s (lower case).
Signed-off-by: Bassam Tabbara &lt;&gt;

Here is the url for the merge of the above commit:
https://github.com/ceph/ceph/commit/e1c3985148869c55b3725e208ec3bc5acf5fceae

Here is the url for the pull request of the above commit:
https://github.com/ceph/ceph/pull/15142


Related issues

Duplicates Ceph - Bug #20106: Rename of assembler source code file from .S to .s breaks ppc64le build Duplicate 05/30/2017

History

#1 Updated by Andrew Solomon about 4 years ago

I believe the original issue was specific to intel / yasm and had nothing to do with ppc64le. The ppc64le assembly file was simply changed to maintain symmetry (ie a cosmetic reason, not a functional one).

I'm currently testing the fix, which would be to rename src/common/crc32c_ppc_asm.s to .S (and change the corresponding name in src/CMakeLists.txt).

#2 Updated by Nathan Cutler about 4 years ago

  • Duplicates Bug #20106: Rename of assembler source code file from .S to .s breaks ppc64le build added

#3 Updated by Nathan Cutler about 4 years ago

Hi. I'm working on this issue, too - see #20106

So far I have determined that merely renaming crc32_ppc_asm.s to crc32_ppc_asm.sx does not fix the issue. The build still fails, though in a different way.

Completely reverting PR#15142 does fix the issue. I'm still not sure why, though.

#4 Updated by Kefu Chai about 4 years ago

  • Status changed from New to Resolved

Also available in: Atom PDF