Package: icmake Version: 10.01.01-2 Severity: normal X-Debbugs-Cc: daniel.bung...@canonical.com
Dear Maintainer, Tested against both Debian Sid and Ubuntu Jammy, icmake will fail to build valid binaries for bobcat on s390x. Sample build log: https://launchpadlibrarian.net/583339337/buildlog_ubuntu-jammy-s390x.bobcat_5.09.01-2build1_BUILDING.txt.gz # Compile the package: ./build libraries all ./build man ... mv debian/libbobcat-dev/usr/lib/libbobcat.so.* debian/libbobcat5/usr/lib mv: cannot stat 'debian/libbobcat-dev/usr/lib/libbobcat.so.*': No such file or directory make[1]: *** [debian/rules:39: override_dh_auto_install] Error 1 The './build libraries all step' does not appear to build anything. Invoking build with 'icmake -V' shows it just exiting promptly: + icmake -V -t. ./build libraries all calling `/usr/libexec/icmake/icm-pp ./build /tmp/94266ipFzw' calling `/usr/libexec/icmake/icm-comp /tmp/94266ipFzw /tmp/9426.bim.0pXFqt' calling `/usr/libexec/icmake/icm-exec /tmp/9426.bim.0pXFqt libraries all' On other architectures the equivalent command actually builds things. I played with valgrind on this a bit. One thing that I found was that there was an invalid read in lex.cc, seeming from an empty d_matched. This seems to make it not crash, but it still does not produce build artifacts. --- a/pp/scanner/lex.cc +++ b/pp/scanner/lex.cc @@ -602,7 +602,7 @@ setMatchedSize(finalPtr->length); - d_atBOL = d_matched.back() == '\n'; + d_atBOL = !d_matched.empty() && d_matched.back() == '\n'; return finalPtr->rule; Where I stopped was the following: ==9451== Invalid read of size 8 ==9451== at 0x12D434: std::__uniq_ptr_impl<VarBase, std::default_delete<VarBase> >::reset(VarBase*) (unique_ptr.h:179) ==9451== by 0x1325E3: std::__uniq_ptr_impl<VarBase, std::default_delete<VarBase> >::operator=(std::__uniq_ptr_impl<VarBase, std::default_delete<VarBase> >&&) (unique_ptr.h:167) ==9451== by 0x13230D: std::__uniq_ptr_data<VarBase, std::default_delete<VarBase>, true, true>::operator=(std::__uniq_ptr_data<VarBase, std::default_delete<VarBase>, true, true>&&) (unique_ptr.h:212) ==9451== by 0x132355: std::unique_ptr<VarBase, std::default_delete<VarBase> >::operator=(std::unique_ptr<VarBase, std::default_delete<VarBase> >&&) (unique_ptr.h:371) ==9451== by 0x13239D: Variable::operator=(Variable&&) (variable.h:23) ==9451== by 0x135937: CPU::popVar() (popvar.cc:10) ==9451== by 0x136A11: CPU::run() (run.cc:23) ==9451== by 0x138763: main (main.cc:91) ==9451== Address 0x52f0860 is 32 bytes before a block of size 48 in arena "client" -Dan