GNU bug report logs -
#63079
coreutils-9.3: build failure with -mno-ssse3
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 63079 in the body.
You can then email your comments to 63079 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-coreutils <at> gnu.org
:
bug#63079
; Package
coreutils
.
(Tue, 25 Apr 2023 23:24:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Jaroslav Skarvada <jskarvad <at> redhat.com>
:
New bug report received and forwarded. Copy sent to
bug-coreutils <at> gnu.org
.
(Tue, 25 Apr 2023 23:24:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi,
building with the -mno-ssse3 causes build failure, e.g.:
CFLAGS="-O2 -march=bonnell -mtune=bonnell -mno-ssse3"
...
gcc -I. -I./lib -Ilib -I./lib -Isrc -I./src -mavx -mpclmul -O2
-march=bonnell -mtune=bonnell -mno-ssse3 -c -o
src/libcksum_pclmul_a-cksum_pclmul.o `test -f 'src/cksum_pclmul.c' ||
echo './'`src/cksum_pclmul.c
In file included from /usr/lib/gcc/i686-pc-linux-gnu/12/include/immintrin.h:37,
from /usr/lib/gcc/i686-pc-linux-gnu/12/include/x86intrin.h:32,
from src/cksum_pclmul.c:22:
/usr/lib/gcc/i686-pc-linux-gnu/12/include/tmmintrin.h: In function
'cksum_pclmul':
/usr/lib/gcc/i686-pc-linux-gnu/12/include/tmmintrin.h:136:1: error:
inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target
specific option mismatch
136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
| ^~~~~~~~~~~~~~~~
src/cksum_pclmul.c:103:19: note: called from here
103 | data7 = _mm_shuffle_epi8 (data7, shuffle_constant);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/i686-pc-linux-gnu/12/include/tmmintrin.h:136:1: error:
inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target
specific option mismatch
The problem is in the pclmul optimization. The configure.ac autodetect
script checks for the pclmul, but not for the ssse3 instructions which
are later utilized in the pclmul optimized code. Unfortunately, it
also seems there is no way to override the configure.ac check result
(e.g. by the ./configure --without-pclmul option). The attached patch
added the ssse3 detection and fixed the problem for me. Maybe it would
be better to split it into two checks - pclmul and ssse3, but I didn't
want to complicate it. The patch was initially created for
coreutils-9.1 where the problem initially manifested, but it also
applies to coreutils-9.3 which is also affected
thanks & regards
Jaroslav
[coreutils-9.1-pclmul-detect-no-ssse3-fix.patch (text/x-patch, attachment)]
Reply sent
to
Pádraig Brady <P <at> draigBrady.com>
:
You have taken responsibility.
(Wed, 26 Apr 2023 15:24:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Jaroslav Skarvada <jskarvad <at> redhat.com>
:
bug acknowledged by developer.
(Wed, 26 Apr 2023 15:24:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 63079-done <at> debbugs.gnu.org (full text, mbox):
On 26/04/2023 00:22, Jaroslav Skarvada wrote:
> Hi,
>
> building with the -mno-ssse3 causes build failure, e.g.:
> CFLAGS="-O2 -march=bonnell -mtune=bonnell -mno-ssse3"
> ...
> gcc -I. -I./lib -Ilib -I./lib -Isrc -I./src -mavx -mpclmul -O2
> -march=bonnell -mtune=bonnell -mno-ssse3 -c -o
> src/libcksum_pclmul_a-cksum_pclmul.o `test -f 'src/cksum_pclmul.c' ||
> echo './'`src/cksum_pclmul.c
> In file included from /usr/lib/gcc/i686-pc-linux-gnu/12/include/immintrin.h:37,
> from /usr/lib/gcc/i686-pc-linux-gnu/12/include/x86intrin.h:32,
> from src/cksum_pclmul.c:22:
> /usr/lib/gcc/i686-pc-linux-gnu/12/include/tmmintrin.h: In function
> 'cksum_pclmul':
> /usr/lib/gcc/i686-pc-linux-gnu/12/include/tmmintrin.h:136:1: error:
> inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target
> specific option mismatch
> 136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
> | ^~~~~~~~~~~~~~~~
> src/cksum_pclmul.c:103:19: note: called from here
> 103 | data7 = _mm_shuffle_epi8 (data7, shuffle_constant);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/lib/gcc/i686-pc-linux-gnu/12/include/tmmintrin.h:136:1: error:
> inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target
> specific option mismatch
>
> The problem is in the pclmul optimization. The configure.ac autodetect
> script checks for the pclmul, but not for the ssse3 instructions which
> are later utilized in the pclmul optimized code. Unfortunately, it
> also seems there is no way to override the configure.ac check result
> (e.g. by the ./configure --without-pclmul option). The attached patch
> added the ssse3 detection and fixed the problem for me. Maybe it would
> be better to split it into two checks - pclmul and ssse3, but I didn't
> want to complicate it. The patch was initially created for
> coreutils-9.1 where the problem initially manifested, but it also
> applies to coreutils-9.3 which is also affected
Pushed.
Marking this as done.
thanks!
Pádraig
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 25 May 2023 11:24:07 GMT)
Full text and
rfc822 format available.
This bug report was last modified 2 years and 27 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.