https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115253
Bug ID: 115253
Summary: New tests added by r14-10122-gad45086178d833 fail on
Cortex M23 and M55 bare metal targets
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: thiago.bauermann at linaro dot org
Target Milestone: ---
Commit g:ad45086178d833254d66fab518b14234418f002b, r14-10122-gad45086178d833,
introduces the tests gcc.target/arm/cmse/extend-param.c and
gcc.target/arm/cmse/extend-return.c.
They have the following failures on --with-cpu=cortex-m23, --with-float=soft,
--target=arm-eabi (full configure flags further below):
Running gcc:gcc.target/arm/cmse/cmse.exp ...
FAIL: gcc.target/arm/cmse/extend-param.c -O0 check-function-bodies
__acle_se_boolSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O0 check-function-bodies
__acle_se_enumSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O0 check-function-bodies
__acle_se_shortSignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O0 check-function-bodies
__acle_se_shortUnsignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O0 check-function-bodies
__acle_se_signSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O0 check-function-bodies
__acle_se_unsignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O1 check-function-bodies
__acle_se_boolSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O1 check-function-bodies
__acle_se_enumSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O1 check-function-bodies
__acle_se_shortSignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O1 check-function-bodies
__acle_se_shortUnsignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O1 check-function-bodies
__acle_se_signSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O1 check-function-bodies
__acle_se_unsignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O2 check-function-bodies
__acle_se_boolSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O2 check-function-bodies
__acle_se_enumSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O2 check-function-bodies
__acle_se_shortSignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O2 check-function-bodies
__acle_se_shortUnsignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O2 check-function-bodies
__acle_se_signSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O2 check-function-bodies
__acle_se_unsignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O3 -g check-function-bodies
__acle_se_boolSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O3 -g check-function-bodies
__acle_se_enumSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O3 -g check-function-bodies
__acle_se_shortSignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O3 -g check-function-bodies
__acle_se_shortUnsignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O3 -g check-function-bodies
__acle_se_signSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -O3 -g check-function-bodies
__acle_se_unsignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -Os check-function-bodies
__acle_se_boolSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -Os check-function-bodies
__acle_se_enumSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -Os check-function-bodies
__acle_se_shortSignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -Os check-function-bodies
__acle_se_shortUnsignSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -Os check-function-bodies
__acle_se_signSecureFunc
FAIL: gcc.target/arm/cmse/extend-param.c -Os check-function-bodies
__acle_se_unsignSecureFunc
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
boolNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
enumNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
shortSignNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
shortUnsignNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
signNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
unsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O0 (internal compiler error: in
extract_insn, at recog.cc:2812)
FAIL: gcc.target/arm/cmse/extend-return.c -O0 (test for excess errors)
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
boolNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
enumNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
shortSignNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
shortUnsignNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
signNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
unsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O1 (internal compiler error: in
extract_insn, at recog.cc:2812)
FAIL: gcc.target/arm/cmse/extend-return.c -O1 (test for excess errors)
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
boolNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
enumNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
shortSignNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
shortUnsignNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
signNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
unsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O2 (internal compiler error: in
extract_insn, at recog.cc:2812)
FAIL: gcc.target/arm/cmse/extend-return.c -O2 (test for excess errors)
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
boolNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
enumNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
shortSignNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
shortUnsignNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
signNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
unsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O3 -g (internal compiler error: in
extract_insn, at recog.cc:2812)
FAIL: gcc.target/arm/cmse/extend-return.c -O3 -g (test for excess errors)
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
boolNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
enumNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
shortSignNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
shortUnsignNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
signNonsecure0
UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
unsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -Os (internal compiler error: in
extract_insn, at recog.cc:2812)
FAIL: gcc.target/arm/cmse/extend-return.c -Os (test for excess errors)
And these failures on --with-arch=armv8.1-m.main+mve.fp+fp.dp,
--with-float=hard, --target=arm-eabi (Cortex M55):
Running gcc:gcc.target/arm/cmse/cmse.exp ...
FAIL: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
boolNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
enumNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
shortSignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
shortUnsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
signNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O0 check-function-bodies
unsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
boolNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
enumNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
shortSignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
shortUnsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
signNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O1 check-function-bodies
unsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
boolNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
enumNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
shortSignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
shortUnsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
signNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O2 check-function-bodies
unsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
boolNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
enumNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
shortSignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
shortUnsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
signNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies
unsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
boolNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
enumNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
shortSignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
shortUnsignNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
signNonsecure0
FAIL: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies
unsignNonsecure0
Here's how to reproduce with a cross-compiler on x86_64-linux-gnu:
For Cortex M23:
# Create combined tree:
$ mkdir /tmp/combined-tree-src
$ cd ~/src/newlib-cygwin && find . -print | cpio -pdlm /tmp/combined-tree-src
$ cd ~/src/binutils-gdb && find . -print | cpio -pdlmu /tmp/combined-tree-src
$ cd ~/src/gcc && find . -print | cpio -pdlmu /tmp/combined-tree-src
$ mkdir /tmp/build && cd /tmp/build
$ /bin/bash /tmp/combined-tree-src/configure \
SHELL=/bin/bash \
--with-gnu-as \
--with-gnu-ld \
--disable-libmudflap \
--enable-lto \
--enable-shared \
--without-included-gettext \
--enable-nls \
--with-system-zlib \
--disable-sjlj-exceptions \
--enable-gnu-unique-object \
--enable-linker-build-id \
--disable-libstdcxx-pch \
--enable-c99 \
--enable-clocale=gnu \
--enable-libstdcxx-debug \
--enable-long-long \
--with-cloog=no \
--with-ppl=no \
--with-isl=no \
--enable-threads=no \
--disable-multiarch \
--disable-multilib \
--with-mode=thumb \
--with-cpu=cortex-m23 \
--with-float=soft \
--with-headers=yes \
--with-native-system-header-dir=/include \
--with-newlib \
--enable-checking=yes \
--disable-bootstrap \
--disable-gdb \
--enable-languages=c,c++,lto \
--prefix=/tmp/thumb-m23-soft-eabi \
--build=x86_64-pc-linux-gnu \
--host=x86_64-pc-linux-gnu \
--target=arm-eabi
$ make check-c \
CFLAGS_FOR_BUILD="-pipe" \
CXXFLAGS_FOR_BUILD="-pipe" \
-j $(nproc) \
-w \
RUNTESTFLAGS=gcc.target/arm/cmse/cmse.exp
For Cortext M55 it's the same as above except with this configure command
instead:
$ /bin/bash /tmp/combined-tree-src/configure \
SHELL=/bin/bash \
--with-gnu-as \
--with-gnu-ld \
--disable-libmudflap \
--enable-lto \
--enable-shared \
--without-included-gettext \
--enable-nls \
--with-system-zlib \
--disable-sjlj-exceptions \
--enable-gnu-unique-object \
--enable-linker-build-id \
--disable-libstdcxx-pch \
--enable-c99 \
--enable-clocale=gnu \
--enable-libstdcxx-debug \
--enable-long-long \
--with-cloog=no \
--with-ppl=no \
--with-isl=no \
--enable-threads=no \
--disable-multiarch \
--disable-multilib \
--with-mode=thumb \
--with-arch=armv8.1-m.main+mve.fp+fp.dp \
--with-float=hard \
--with-headers=yes \
--with-native-system-header-dir=/include \
--with-newlib \
--enable-checking=yes \
--disable-bootstrap \
--disable-gdb \
--enable-languages=c,c++,lto \
--prefix=/tmp/thumb-m55-hard-eabi \
--build=x86_64-pc-linux-gnu \
--host=x86_64-pc-linux-gnu \
--target=arm-eabi