public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
From: Mathieu Malaterre <mathieu.malaterre@gmail.com>
To: Richard Earnshaw <Richard.Earnshaw@foss.arm.com>
Cc: gcc-help <gcc-help@gcc.gnu.org>
Subject: Re: Warning: conditional outside an IT block for Thumb.
Date: Thu, 25 Aug 2022 15:48:21 +0200	[thread overview]
Message-ID: <CA+7wUswjaGeRWHOTBFrEONfr79uFUTRHQoC6_xYAKQHQ9PZ4Jw@mail.gmail.com> (raw)
In-Reply-To: <a7509c7a-d98d-f75c-dd0c-d3e79dfb43db@foss.arm.com>

Hi Richard,

Thanks for the kind help.

On Thu, Aug 25, 2022 at 12:28 PM Richard Earnshaw
<Richard.Earnshaw@foss.arm.com> wrote:
>
>
>
> On 25/08/2022 07:40, Mathieu Malaterre via Gcc-help wrote:
> > Hi all,
> >
> > I am seeing a flood of warnings when compiling openvdb+tbb on Debian/armel:
> >
> > [...]
> >   [  2%] Building CXX object
> > openvdb/openvdb/CMakeFiles/openvdb_shared.dir/io/Archive.cc.o
> >   cd /<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/openvdb/openvdb &&
> > /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_IOSTREAMS_DYN_LINK
> > -DOPENVDB_DLL -DOPENVDB_PRIVATE -DOPENVDB_USE_LOG4CPLUS
> > -Dopenvdb_shared_EXPORTS -I/<<PK
> > GBUILDDIR>>/openvdb/openvdb/..
> > -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/openvdb/openvdb
> > -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/openvdb/openvdb/openvdb
> > -I/<<PKGBUILDDIR>>/openvdb/openvdb/. -I/usr/include/Imat
> > h -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong
> > -Wformat -Werror=format-security -Wno-psabi -fvisibility=hidden
> > -fvisibility-inlines-hidden -Wa,-mimplicit-it=thumb -Wdate-time
> > -D_FORTIFY
> > _SOURCE=2 -fPIC -std=c++17 -MD -MT
> > openvdb/openvdb/CMakeFiles/openvdb_shared.dir/Grid.cc.o -MF
> > CMakeFiles/openvdb_shared.dir/Grid.cc.o.d -o
> > CMakeFiles/openvdb_shared.dir/Grid.cc.o -c /<<PKGBUILDDIR>>/openvdb/o
> > penvdb/Grid.cc
> >   cd /<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/openvdb/openvdb &&
> > /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_IOSTREAMS_DYN_LINK
> > -DOPENVDB_DLL -DOPENVDB_PRIVATE -DOPENVDB_USE_LOG4CPLUS
> > -Dopenvdb_shared_EXPORTS -I/<<PK
> > GBUILDDIR>>/openvdb/openvdb/..
> > -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/openvdb/openvdb
> > -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/openvdb/openvdb/openvdb
> > -I/<<PKGBUILDDIR>>/openvdb/openvdb/. -I/usr/include/Imat
> > h -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong
> > -Wformat -Werror=format-security -Wno-psabi -fvisibility=hidden
> > -fvisibility-inlines-hidden -Wa,-mimplicit-it=thumb -Wdate-time
> > -D_FORTIFY
> > _SOURCE=2 -fPIC -std=c++17 -MD -MT
> > openvdb/openvdb/CMakeFiles/openvdb_shared.dir/io/Archive.cc.o -MF
> > CMakeFiles/openvdb_shared.dir/io/Archive.cc.o.d -o
> > CMakeFiles/openvdb_shared.dir/io/Archive.cc.o -c /<<PKGBU
> > ILDDIR>>/openvdb/openvdb/io/Archive.cc
> > /tmp/ccFlliCl.s: Assembler messages:
> > /tmp/ccFlliCl.s:294: Warning: conditional outside an IT block for Thumb.
> > /tmp/ccFlliCl.s:338: Warning: conditional outside an IT block for Thumb.
> > [...]
> >
> > There are so many warnings that it eventually times out the compilation.
> >
> > I could not find a way to tell gcc not to print a warning. Is there a
> > way to remove this warning ?
>
> The warning is coming from the assembler.  But I don't think it should
> be just 'ignored'.  You'll need to track down why it's happening at all.
>   The most likely case is that there is some inlined assembly code
> somewhere that was written on the assumption that the compiler would be
> targeting the A32 state rather than the T32 state (thumb), but there's
> not enough information here to work out what's happened for sure.
>
> What we need is a snippet of the assembler output when compiled with
> debugging information, so that we can track back to the source code that
> is generating this.
>
> >
> > For reference the very large log:
> >
> > * https://buildd.debian.org/status/fetch.php?pkg=openvdb&arch=armel&ver=9.1.0-4&stamp=1661358853&raw=0
> >
> > Thanks much,
>
> The log isn't much help, it's the contents of the file that's being
> assembled that will tell us what we need to know.

I did add '-save-temps' to one TU compilation:

 % cd /home/malat/openvdb-9.1.0/obj-arm-linux-gnueabi/openvdb/openvdb
&& /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_IOSTREAMS_DYN_LINK
-DOPENVDB_DLL -DOPENVDB_PRIVATE -DOPENVDB_USE_LOG4CPLUS
-Dopenvdb_shared_EXPORTS
-I/home/malat/openvdb-9.1.0/openvdb/openvdb/..
-I/home/malat/openvdb-9.1.0/obj-arm-linux-gnueabi/openvdb/openvdb
-I/home/malat/openvdb-9.1.0/obj-arm-linux-gnueabi/openvdb/openvdb/openvdb
-I/home/malat/openvdb-9.1.0/openvdb/openvdb/. -I/usr/include/Imath -g
-O2 -ffile-prefix-map=/home/malat/openvdb-9.1.0=.
-fstack-protector-strong -Wformat -Werror=format-security -Wno-psabi
-fvisibility=hidden -fvisibility-inlines-hidden
-Wa,-mimplicit-it=thumb -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC
-std=c++17 -MD -MT
openvdb/openvdb/CMakeFiles/openvdb_shared.dir/io/Compression.cc.o -MF
CMakeFiles/openvdb_shared.dir/io/Compression.cc.o.d -o
CMakeFiles/openvdb_shared.dir/io/Compression.cc.o -save-temps -c
/home/malat/openvdb-9.1.0/openvdb/openvdb/io/Compression.cc

Output is:

 % cd /home/malat/openvdb-9.1.0/obj-arm-linux-gnueabi/openvdb/openvdb
&& /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_IOSTREAMS_DYN_LINK
-DOPENVDB_DLL -DOPENVDB_PRIVATE -DOPENVDB_USE_LOG4CPLUS
-Dopenvdb_shared_EXPORTS
-I/home/malat/openvdb-9.1.0/openvdb/openvdb/..
-I/home/malat/openvdb-9.1.0/obj-arm-linux-gnueabi/openvdb/openvdb
-I/home/malat/openvdb-9.1.0/obj-arm-linux-gnueabi/openvdb/openvdb/openvdb
-I/home/malat/openvdb-9.1.0/openvdb/openvdb/. -I/usr/include/Imath -g
-O2 -ffile-prefix-map=/home/malat/openvdb-9.1.0=.
-fstack-protector-strong -Wformat -Werror=format-security -Wno-psabi
-fvisibility=hidden -fvisibility-inlines-hidden
-Wa,-mimplicit-it=thumb -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC
-std=c++17 -MD -MT
openvdb/openvdb/CMakeFiles/openvdb_shared.dir/io/Compression.cc.o -MF
CMakeFiles/openvdb_shared.dir/io/Compression.cc.o.d -o
CMakeFiles/openvdb_shared.dir/io/Compression.cc.o -save-temps -c
/home/malat/openvdb-9.1.0/openvdb/openvdb/io/Compression.cc
CMakeFiles/openvdb_shared.dir/io/Compression.cc.s: Assembler messages:
CMakeFiles/openvdb_shared.dir/io/Compression.cc.s:146: Warning:
conditional outside an IT block for Thumb.
CMakeFiles/openvdb_shared.dir/io/Compression.cc.s:162: Warning:
conditional outside an IT block for Thumb.
CMakeFiles/openvdb_shared.dir/io/Compression.cc.s:215: Warning:
conditional outside an IT block for Thumb.
CMakeFiles/openvdb_shared.dir/io/Compression.cc.s:330: Warning:
conditional outside an IT block for Thumb.
CMakeFiles/openvdb_shared.dir/io/Compression.cc.s:344: Warning:
conditional outside an IT block for Thumb.
CMakeFiles/openvdb_shared.dir/io/Compression.cc.s:352: Warning:
conditional outside an IT block for Thumb.
CMakeFiles/openvdb_shared.dir/io/Compression.cc.s:598: Warning:
conditional outside an IT block for Thumb.
CMakeFiles/openvdb_shared.dir/io/Compression.cc.s:768: Warning:
conditional outside an IT block for Thumb.
CMakeFiles/openvdb_shared.dir/io/Compression.cc.s:934: Warning:
conditional outside an IT block for Thumb.
[truncated]

My gcc version is:

 % /usr/bin/c++ -v
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabi/12/lto-wrapper
Target: arm-linux-gnueabi
Configured with: ../src/configure -v --with-pkgversion='Debian
12.2.0-1' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs
--enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2
--prefix=/usr --with-gcc-major-version-only --program-suffix=-12
--program-prefix=arm-linux-gnueabi- --enable-shared
--enable-linker-build-id --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --libdir=/usr/lib
--enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new
--enable-gnu-unique-object --disable-libitm --disable-libquadmath
--disable-libquadmath-support --enable-plugin --enable-default-pie
--with-system-zlib --enable-libphobos-checking=release
--with-target-system-zlib=auto --enable-objc-gc=auto
--enable-multiarch --disable-sjlj-exceptions --with-arch=armv5te
--with-float=soft --disable-werror --enable-checking=release
--build=arm-linux-gnueabi --host=arm-linux-gnueabi
--target=arm-linux-gnueabi
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Debian 12.2.0-1)

*.ii file:
https://people.debian.org/~malat/openvdb/Compression.cc.ii.xz


Once again thanks again for your time,
-- 
Mathieu

  reply	other threads:[~2022-08-25 13:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-25  6:40 Mathieu Malaterre
2022-08-25 10:28 ` Richard Earnshaw
2022-08-25 13:48   ` Mathieu Malaterre [this message]
2022-08-25 13:58     ` Mathieu Malaterre
2022-08-25 14:09       ` Richard Earnshaw

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CA+7wUswjaGeRWHOTBFrEONfr79uFUTRHQoC6_xYAKQHQ9PZ4Jw@mail.gmail.com \
    --to=mathieu.malaterre@gmail.com \
    --cc=Richard.Earnshaw@foss.arm.com \
    --cc=gcc-help@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).