[ https://issues.apache.org/jira/browse/ARROW-5007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17662029#comment-17662029 ]
Rok Mihevc commented on ARROW-5007: ----------------------------------- This issue has been migrated to [issue #21505|https://github.com/apache/arrow/issues/21505] on GitHub. Please see the [migration documentation|https://github.com/apache/arrow/issues/14542] for further details. > [C++] Move DCHECK out of sse-utils > ----------------------------------- > > Key: ARROW-5007 > URL: https://issues.apache.org/jira/browse/ARROW-5007 > Project: Apache Arrow > Issue Type: Improvement > Components: C++ > Reporter: Francois Saint-Jacques > Assignee: Francois Saint-Jacques > Priority: Minor > Labels: pull-request-available > Fix For: 0.14.0 > > Time Spent: 20m > Remaining Estimate: 0h > > Some users tried to compile arrow on ppc64, but they face the following error > {code:bash} > In file included from /root/repos/arrow/cpp/src/arrow/json/chunker.h:26:0, > from /root/repos/arrow/cpp/src/arrow/json/chunker.cc:18: > /root/repos/arrow/cpp/src/arrow/util/sse-util.h: In function ‘__m128i > arrow::SSE4_cmpestrm(__m128i, int, __m128i, int)’: > /root/repos/arrow/cpp/src/arrow/util/sse-util.h:125:3: error: there are no > arguments to ‘DCHECK’ that depend on a template parameter, so a declaration > of ‘DCHECK’ must be available [-fpermissive] > DCHECK(false) << "CPU doesn't support SSE 4.2"; > ^~~~~~ > /root/repos/arrow/cpp/src/arrow/util/sse-util.h:125:3: note: (if you use > ‘-fpermissive’, G++ will accept your code, but allowing the use of an > undeclared name is deprecated) > /root/repos/arrow/cpp/src/arrow/util/sse-util.h: In function ‘int > arrow::SSE4_cmpestri(__m128i, int, __m128i, int)’: > /root/repos/arrow/cpp/src/arrow/util/sse-util.h:131:3: error: there are no > arguments to ‘DCHECK’ that depend on a template parameter, so a declaration > of ‘DCHECK’ must be available [-fpermissive] > DCHECK(false) << "CPU doesn't support SSE 4.2"; > ^~~~~~ > /root/repos/arrow/cpp/src/arrow/util/sse-util.h: In function ‘uint32_t > arrow::SSE4_crc32_u8(uint32_t, uint8_t)’: > /root/repos/arrow/cpp/src/arrow/util/sse-util.h:136:3: error: ‘DCHECK’ was > not declared in this scope > DCHECK(false) << "SSE support is not enabled"; > ^~~~~~ > /root/repos/arrow/cpp/src/arrow/util/sse-util.h: In function ‘uint32_t > arrow::SSE4_crc32_u16(uint32_t, uint16_t)’: > /root/repos/arrow/cpp/src/arrow/util/sse-util.h:141:3: error: ‘DCHECK’ was > not declared in this scope > DCHECK(false) << "SSE support is not enabled"; > ^~~~~~ > /root/repos/arrow/cpp/src/arrow/util/sse-util.h: In function ‘uint32_t > arrow::SSE4_crc32_u32(uint32_t, uint32_t)’: > /root/repos/arrow/cpp/src/arrow/util/sse-util.h:146:3: error: ‘DCHECK’ was > not declared in this scope > DCHECK(false) << "SSE support is not enabled"; > ^~~~~~ > /root/repos/arrow/cpp/src/arrow/util/sse-util.h: In function ‘uint32_t > arrow::SSE4_crc32_u64(uint32_t, uint64_t)’: > /root/repos/arrow/cpp/src/arrow/util/sse-util.h:151:3: error: ‘DCHECK’ was > not declared in this scope > DCHECK(false) << "SSE support is not enabled"; > {code} > By importing `logging.h` or removing `DCHECK`, they can compile. The fix > should be to refactor the SSE detection macro out of this file such that the > needing code does not need to import this file and only a header with macro > detection. -- This message was sent by Atlassian Jira (v8.20.10#820010)