When using the -s flag of gnat make, the flag -gnatW8 is stripped during switches comparison (and therefore forces unnecessary compilation).
Example: > cat dummy.adb procedure Dummy is begin null; end; > gnat make -v -s -gnat05 -gnatW8 dummy GNATMAKE 4.4.3 Copyright (C) 1995-2008, Free Software Foundation, Inc. "dummy.ali" being checked ... -> "dummy.adb" different number of switches -gnat05 -gnatW8 -gnat05 gcc-4.4 -c -gnat05 -gnatW8 dummy.adb End of compilation gnatbind -x dummy.ali gnatlink dummy.ali The line "-gnat05 -gnatW8" has the flags used at the previous compilation (they are correct). The line "-gnat05" has the flags used for the current compilation (they are incorrect: -gnatW8 given on the command line was stripped here). The unit is recompiled also the expected behavior was not to do it. > gcc -v Using built-in specs. Target: i486-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu Thread model: posix gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) -- Summary: Incorrect behaviour of gnat make -s flag with -gnatW8 Product: gcc Version: 4.4.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pini_os at yahoo dot fr GCC host triplet: i686 GNU/Linux 2.6.32-22-generic http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44633