icmake: Fails to build bobcat on s390x

Bug #1960082 reported by Dan Bungert
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
bobcat (Ubuntu)
New
Undecided
Unassigned
icmake (Debian)
Fix Released
Unknown
icmake (Ubuntu)
New
Undecided
Unassigned

Bug Description

Imported from Debian bug http://bugs.debian.org/1004986:

Package: icmake
Version: 10.01.01-2
Severity: normal
X-Debbugs-Cc: <email address hidden>

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

Dan Bungert (dbungert)
tags: added: ftbfs update-excuse
Changed in icmake (Debian):
importance: Undecided → Unknown
status: New → Fix Released
Changed in icmake (Debian):
status: Fix Released → New
Changed in icmake (Debian):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.