On 8 Mar 2020, at 22:21, Aurelien Jarno <aure...@debian.org> wrote: > > Source: simgrid > Version: 3.25+dfsg-1 > Severity: normal > Tags: patch > Justification: fails to build from source (but built successfully in the past) > User: debian-ri...@lists.debian.org > Usertags: riscv64 > > Dear maintainer, > > ceph fails to build on riscv64 with the following error: > > | dh_install > | dh_install: warning: Cannot find (any matches for) > "usr/lib/libsimgrid-java.so" (tried in ., debian/tmp) > | > | dh_install: warning: libsimgrid-dev missing files: > usr/lib/libsimgrid-java.so > | dh_install: error: missing files, aborting > | make[1]: *** [debian/rules:89: override_dh_install] Error 25 > | make[1]: Leaving directory '/<<BUILDDIR>>/simgrid-3.25+dfsg' > | make: *** [debian/rules:39: binary-arch] Error 2 > | dpkg-buildpackage: error: fakeroot debian/rules binary-arch subprocess > returned exit status 2 > > The full build log is available there: > https://buildd.debian.org/status/fetch.php?pkg=simgrid&arch=riscv64&ver=3.25%2Bdfsg-1&stamp=1583603229&raw=0 > > The problem is that java support is not enabled on riscv64. After > enabling it (as well as ns3 which is also available) I have verified that > simgrid builds fine on riscv64. > > I have attached the patch I have used. Would it be possible to include > it in the next upload? > > Thanks, > Aurelien > > [...] > diff -Nru simgrid-3.25+dfsg/debian/rules simgrid-3.25+dfsg/debian/rules > --- simgrid-3.25+dfsg/debian/rules 2020-02-21 20:31:20.000000000 +0100 > +++ simgrid-3.25+dfsg/debian/rules 2020-03-08 12:05:53.000000000 +0100 > @@ -21,7 +21,7 @@ > CFLAGS += -O3 > endif > > -ifneq (,$(findstring $(DEB_HOST_ARCH_CPU),amd64 arm64 armel armhf i386 > mips64el mipsel ppc64el s390x)) > +ifneq (,$(findstring $(DEB_HOST_ARCH_CPU),amd64 arm64 armel armhf i386 > mips64el mipsel ppc64el riscv64 s390x))
This code was and still is wrong. It should be filter not findstring (otherwise any substring of one of those names will match), and DEB_HOST_ARCH_CPU is not always the same as the last component of the architecture name; specifically, armel and armhf both have a DEB_HOST_ARCH_CPU of arm, which happens to work because arm is a substring of armel/armhf, and x32 has a DEB_HOST_ARCH_CPU of amd64, which happens to work because it already handles amd64. James