You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2023/06/13 05:44:00 UTC

[jira] [Commented] (KUDU-3475) Build on Ubuntu 20 ARM hits errors due to redeclaration of vld1q_u8_x4

    [ https://issues.apache.org/jira/browse/KUDU-3475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17731892#comment-17731892 ] 

ASF subversion and git services commented on KUDU-3475:
-------------------------------------------------------

Commit f2c337011c81dc2ef6dcb36e478103b9be943c13 in kudu's branch refs/heads/branch-1.17.x from Joe McDonnell
[ https://gitbox.apache.org/repos/asf?p=kudu.git;h=f2c337011 ]

KUDU-3475: Update to the most recent sse2neon.h

ARM builds on Ubuntu 20.04 hit an error about the
redeclaration of vld1q_u8_x4 in sse2neon.h. This is
because Ubuntu 20.04 uses GCC 9.4, which has its own
definition of vld1q_u8_x4, and the preprocessor checks
in the current sse2neon.h don't account for this
correctly.

Newer versions of sse2neon.h have namespaced their
macros so that vld1q_u8_x4 is no longer used and
improved the checks for GCC versions. This updates
sse2neon.h to the latest available (commithash b7417bc).

sse2neon.h has a large number of lint issues related
to style (whitespace/braces, readability/casting) and
none look like real correctness issues, so this exempts
sse2neon.h from lint.

Testing:
 - Built Kudu on Ubuntu 20.04 ARM64 and Ubuntu 18.04 ARM64

Change-Id: Id156a0b2c3984f9cb1032fa7747d7f9ed76c1f8c
Reviewed-on: http://gerrit.cloudera.org:8080/19847
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin <al...@apache.org>
Reviewed-by: Yingchun Lai <la...@apache.org>
(cherry picked from commit 7feb2cfc1e238ddaeb974aac24790fe36d920a48)
Reviewed-on: http://gerrit.cloudera.org:8080/20049
Tested-by: Alexey Serbin <al...@apache.org>


> Build on Ubuntu 20 ARM hits errors due to redeclaration of vld1q_u8_x4
> ----------------------------------------------------------------------
>
>                 Key: KUDU-3475
>                 URL: https://issues.apache.org/jira/browse/KUDU-3475
>             Project: Kudu
>          Issue Type: Bug
>          Components: build
>    Affects Versions: 1.17.0
>            Reporter: Joe McDonnell
>            Assignee: Joe McDonnell
>            Priority: Major
>             Fix For: 1.17.0
>
>
> When building on an Ubunu 20 ARM machine, it now uses GCC 9.4, which includes a definition of vld1q_u8_x4. The build fails with messages like this:
> {noformat}
> 20:28:53 In file included from /home/ubuntu/kudu/src/kudu/util/group_varint-inl.h:25,
> 20:28:53                  from /home/ubuntu/kudu/src/kudu/util/group_varint.cc:18:
> 20:28:53 /home/ubuntu/kudu/src/kudu/util/sse2neon.h:184:27: error: ‘uint8x16x4_t vld1q_u8_x4(const uint8_t*)’ redeclared inline without ‘gnu_inline’ attribute
> 20:28:53   184 | FORCE_INLINE uint8x16x4_t vld1q_u8_x4(const uint8_t *p) {
> 20:28:53       |                           ^~~~~~~~~~~
> 20:28:53 In file included from /home/ubuntu/kudu/src/kudu/util/sse2neon.h:66,
> 20:28:53                  from /home/ubuntu/kudu/src/kudu/util/group_varint-inl.h:25,
> 20:28:53                  from /home/ubuntu/kudu/src/kudu/util/group_varint.cc:18:
> 20:28:53 /usr/lib/gcc/aarch64-linux-gnu/9/include/arm_neon.h:18122:1: note: ‘uint8x16x4_t vld1q_u8_x4(const uint8_t*)’ previously defined here
> 20:28:53 18122 | vld1q_u8_x4 (const uint8_t *__a)
> 20:28:53       | ^~~~~~~~~~~{noformat}
> There have been major changes in the logic of sse2neon.h over the past couple years. The code uses a different name to avoid collisions and it has more sophisticated version checks.
> See these commits: [https://github.com/DLTcollab/sse2neon/commit/e96c9818e25f019629a6b96f62382d42179eab3c]
> [https://github.com/DLTcollab/sse2neon/commit/26011f2ca7f22fd2b93b85fa84a2465ffc489710]
> One possible fix is to update sse2neon to a more recent version.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)