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

Reply via email to