Project

General

Profile

Actions

Bug #7667

closed

Fix ceph code to build with llvm (clang/clang++)

Added by Danny Al-Gaaf about 10 years ago. Updated about 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

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

Description

Currently the code don't compile with clang++ due to non c++ standard usage of VLAs (http://clang.llvm.org/compatibility.html#vla) in some places as e.g.:

rgw/rgw_main.cc:368:17: error: variable length array of non-POD element type 'string' (aka 'basic_string<char>')
  string buckets[num_buckets];

The following block needs refactoring (check discussion on http://thread.gmane.org/gmane.comp.file-systems.ceph.devel/12933/focus=13039):

key_value_store/kv_flat_btree_async.cc:1123:40: error: variable length array of non-POD element type 'librados::ObjectWriteOperation'
    librados::ObjectWriteOperation owos[idata.to_delete.size() + 1];
                                       ^
  CXX      test/cls_version/ceph_test_cls_version-test_cls_version.o
clang: warning: argument unused during compilation: '-fno-builtin-malloc'
clang: warning: argument unused during compilation: '-fno-builtin-calloc'
clang: warning: argument unused during compilation: '-fno-builtin-realloc'
clang: warning: argument unused during compilation: '-fno-builtin-free'
key_value_store/kv_flat_btree_async.cc:1897:38: error: variable length array of non-POD element type 'librados::ObjectWriteOperation'
  librados::ObjectWriteOperation owos[2 + 2 * to_delete.size()
                                     ^
Actions #1

Updated by Sage Weil about 7 years ago

  • Status changed from New to Resolved
Actions

Also available in: Atom PDF