Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 667952 - dev-util/meson-0.48.0-r2 - Failed test during build: 'test cases/rust/8 many files' - depfile has multiple output paths
Summary: dev-util/meson-0.48.0-r2 - Failed test during build: 'test cases/rust/8 many ...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: William Hubbs
URL:
Whiteboard:
Keywords: TESTFAILURE
Depends on:
Blocks:
 
Reported: 2018-10-07 13:14 UTC by eroen
Modified: 2018-10-08 16:24 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
dev-util/meson-0.48.0-r2:20181007-125014.log (meson-0.48.0-r2:20181007-125014.log,113.05 KB, text/plain)
2018-10-07 13:14 UTC, eroen
Details

Note You need to log in before you can comment on or make changes to this bug.
Description eroen 2018-10-07 13:14:09 UTC
Created attachment 549584 [details]
dev-util/meson-0.48.0-r2:20181007-125014.log

The Meson build system
Version: 0.48.0
Source dir: /var/tmp/portage/dev-util/meson-0.48.0-r2/work/meson-0.48.0/test cases/rust/8 many files
Build dir: /var/tmp/portage/dev-util/meson-0.48.0-r2/work/meson-0.48.0/b 3d9d0dff3f
Build type: native build
Project name: manyfiles
Project version: undefined
Appending LDFLAGS from environment: '-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu'
Native Rust compiler: rustc (rustc 1.29.1)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Build targets in project: 1
Found ninja-1.8.2.git.kitware.dyndep-1.jobserver-1 at /usr/bin/ninja
[0/1] Regenerating build files.
The Meson build system
Version: 0.48.0
Source dir: /var/tmp/portage/dev-util/meson-0.48.0-r2/work/meson-0.48.0/test cases/rust/8 many files
Build dir: /var/tmp/portage/dev-util/meson-0.48.0-r2/work/meson-0.48.0/b 3d9d0dff3f
Build type: native build
Project name: manyfiles
Project version: undefined
Native Rust compiler: rustc (rustc 1.29.1)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Build targets in project: 1
Found ninja-1.8.2.git.kitware.dyndep-1.jobserver-1 at /usr/bin/ninja
[1/1] Compiling Rust source '../test cases/rust/8 many files/main.rs'.
FAILED: manyfiles 
rustc --crate-type bin --crate-name manyfiles -g --emit dep-info=manyfiles.d --emit link -o manyfiles '../test cases/rust/8 many files/main.rs'
depfile has multiple output paths
ninja: build stopped: subcommand failed.
 

ninja explain: output build.ninja older than most recent input ../test cases/rust/8 many files/meson.build (1538916990650763401 vs 1538916991687773641)
ninja explain: deps for 'manyfiles' are missing
ninja explain: manyfiles is dirty
 

 * ERROR: dev-util/meson-0.48.0-r2::gentoo failed (test phase):
 *   Testing failed with python3.5
 * 
 * Call stack:
 *     ebuild.sh, line  124:  Called src_test
 *   environment, line 2683:  Called distutils-r1_src_test
 *   environment, line  907:  Called _distutils-r1_run_foreach_impl 'python_test'
 *   environment, line  346:  Called python_foreach_impl 'distutils-r1_run_phase' 'python_test'
 *   environment, line 2206:  Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test'
 *   environment, line 1561:  Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test'
 *   environment, line 1559:  Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test'
 *   environment, line  570:  Called distutils-r1_run_phase 'python_test'
 *   environment, line  838:  Called python_test
 *   environment, line 2585:  Called die
 * The specific snippet of code:
 *       ${EPYTHON} -u run_tests.py ) || die "Testing failed with ${EPYTHON}"
Comment 1 eroen 2018-10-07 13:14:59 UTC
occam ~ # emerge --info '=dev-util/meson-0.48.0-r2::gentoo'
Portage 2.3.50 (python 3.6.6-final-0, default/linux/amd64/17.0/hardened, gcc-8.2.0, glibc-2.27-r6, 4.18.7-gentoo-o0 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-4.18.7-gentoo-o0-x86_64-Intel-R-_Core-TM-_i5-2520M_CPU_@_2.50GHz-with-gentoo-2.6
KiB Mem:     7999296 total,   2338000 free
KiB Swap:   16777212 total,  16663052 free
Timestamp of repository gentoo: Sun, 07 Oct 2018 12:30:01 +0000
Head commit of repository gentoo: 809ee15fc9ed174d36f8738577bd014d7ba5f28e
Timestamp of repository eroen: Sun, 30 Oct 2016 21:58:42 +0000
Head commit of repository sapher: 9ef31d0bf6a902342746fb03a445d4f8b7ddabef

Head commit of repository wiktorb: 2436f2d433769b4a7c69a4088dbc5acd2645c38c

Head commit of repository gentoo-snappy: 0ea79c799ebe1bc6cd924b9dd707b710eea24e83

Head commit of repository stuff: 37ab7a0657b654f43a683e41d50b061a40bde1ee

sh bash 4.4_p23
ld GNU ld (Gentoo 2.31.1 p3) 2.31.1
ccache version 3.3.4 [disabled]
app-shells/bash:          4.4_p23::gentoo
dev-java/java-config:     2.2.0-r3::gentoo
dev-lang/perl:            5.26.2::gentoo
dev-lang/python:          2.7.15::gentoo, 3.4.8-r1::gentoo, 3.5.5-r1::gentoo, 3.6.6::gentoo, 3.7.0::gentoo
dev-util/ccache:          3.3.4-r1::gentoo
dev-util/cmake:           3.12.2::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/openrc:          0.38.2::gentoo
sys-apps/sandbox:         2.13::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.11.6-r3::gentoo, 1.13.4-r2::gentoo, 1.14.1-r2::gentoo, 1.15.1-r2::gentoo, 1.16.1-r1::gentoo
sys-devel/binutils:       2.31.1-r1::gentoo
sys-devel/gcc:            6.4.0-r3::gentoo, 7.3.0-r4::gentoo, 8.2.0-r3::gentoo
sys-devel/gcc-config:     2.0::gentoo
sys-devel/libtool:        2.4.6-r5::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 4.17::gentoo (virtual/os-headers)
sys-libs/glibc:           2.27-r6::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-extra-opts: 
    sync-rsync-verify-metamanifest: yes
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-max-age: 24

crossdev
    location: /var/lib/portage/crossdev
    masters: gentoo gamerlay eroen

eroen
    location: /usr/local/portage
    masters: gentoo
    priority: 0

sapher
    location: /var/lib/overlays/sapher
    sync-type: git
    sync-uri: https://github.com/apinsard/sapher-overlay.git
    masters: gentoo

wiktorb
    location: /var/lib/overlays/wiktorb
    sync-type: git
    sync-uri: https://github.com/wiktor-b/overlay.git
    masters: gentoo

dotnet
    location: /var/lib/layman/dotnet
    masters: gentoo
    priority: 50

enlightenment
    location: /var/lib/layman/enlightenment
    masters: gentoo
    priority: 50

flora
    location: /var/lib/layman/flora
    masters: gentoo
    priority: 50

gamerlay
    location: /var/lib/layman/gamerlay
    masters: gentoo
    priority: 50

gentoo-snappy
    location: /usr/local/portage/gentoo-snappy
    sync-type: git
    sync-uri: https://github.com/zyga/gentoo-snappy.git
    masters: gentoo
    priority: 50

glc
    location: /var/lib/layman/glc
    masters: gentoo
    priority: 50

hardened-development
    location: /var/lib/layman/hardened-development
    masters: gentoo
    priority: 50

haskell
    location: /var/lib/layman/haskell
    masters: gentoo
    priority: 50

hasufell
    location: /var/lib/layman/hasufell
    masters: gentoo
    priority: 50

java
    location: /var/lib/layman/java
    masters: gentoo
    priority: 50

laurentb
    location: /var/lib/layman/laurentb
    masters: gentoo
    priority: 50

roslin
    location: /var/lib/layman/roslin
    masters: gentoo
    priority: 50

stuff
    location: /var/lib/layman/stuff
    sync-type: git
    sync-uri: https://github.com/istitov/stuff.git
    masters: gentoo
    priority: 50

sunrise
    location: /var/lib/layman/sunrise
    masters: gentoo
    priority: 50

toolchain
    location: /var/lib/layman/toolchain
    masters: gentoo
    priority: 50

v-fox
    location: /var/lib/layman/v-fox
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=corei7-avx -pipe -Og -g -gdwarf-4"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/easy-rsa /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=corei7-avx -pipe -Og -g -gdwarf-4"
DISTDIR="/var/distfiles"
EMERGE_DEFAULT_OPTS="--jobs=1 --autounmask --quiet-build --nospinner --verbose-conflicts --verbose-slot-rebuilds"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs binpkg-multi-instance cgroup collision-protect compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles installsources ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms split-log splitdebug strict strict-keepdir test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_GB.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
MAKEOPTS="-j4 -l10"
PKGDIR="/var/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl alsa amd64 apng audio audiofile avresample avx bash-completion bdf bluray bzip2 cairo caps cb cdda cdparanoia cdr cjk corefonts crypt cups curl cxx ddate declarative detex device-mapper dga dia djvu dts dvd dvi2tty dvipdfm ebook egl exif fam ffmpeg fftw fits flac fontconfig g3dvl gallium gbm gcrypt gif gimp git glamor glib gmp gnuplot gnutls gold gpm graphics graphviz gs gstreamer gtk gtk3 hardened highlight iconv icu id3tag idn imagemagick imlib inotify iproute2 ipv6 jbig jpeg jpeg2k jpg json kde kde4 kpathsea latex lcms libffi libssh2 libtirpc libv4l luatex lvm lvm2 lzma lzo man metric mikmod mkv mms mmx mng mp3 mpeg mpg123 multilib multimedia musepack ncurses netlink nptl nut ocr odbc offensive ogg opengl openmp openvg optimization optimized-qmake opus pam pango pcre pdf pgf phonon pie png postscript private-headers pstricks pth publishers python3 qt3support qt4 raw readline samba sbsms scanner science sdl seccomp smp sna sndfile speex spell sqlite sse sse2 sse3 sse4 sse41 sse4_1 sse4_2 ssh ssl ssp ssse3 svg t1lib tesseract test theora threads tiff tls truetype udev unicode usb v4l v4l2 vaapi video vorbis vpx webp wmf x264 xanim xattr xcb xcomposite xetex xft xinerama xkb xml xmlpatterns xorg xosd xpm xrandr xtpax xv xvid xvmc xz zlib zsh-completion" ABI_X86="32 64" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon plan sheets stage words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx sse sse2 avx sse3 ssse3 sse4_1 aes avx mmxext popcnt sse3 sse4_1 sse4_2 ssse3" CURL_SSL="openssl" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="evdev synaptics" KERNEL="linux" L10N="en en-US en-GB eng" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LLVM_TARGETS="AArch64 ARM BPF X86" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3 php5-4" POSTGRES_TARGETS="postgres10" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_4 python3_5 python3_6 python3_7" QEMU_SOFTMMU_TARGETS="x86_64 i386" RUBY_TARGETS="ruby23" SANE_BACKENDS="plustek" USERLAND="GNU" VIDEO_CARDS="intel i965 ilo" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

occam ~ # emerge -pqv '=dev-util/meson-0.48.0-r2::gentoo'
[ebuild     U ] dev-util/meson-0.48.0-r2 [0.48.0-r1] PYTHON_TARGETS="python3_5 python3_6 python3_7"
Comment 2 Mike Gilbert gentoo-dev 2018-10-07 13:50:39 UTC
@rust: Any ideas here?
Comment 3 Dirkjan Ochtman (RETIRED) gentoo-dev 2018-10-07 15:16:17 UTC
Can someone point me at what this is trying to test, exactly? I'm not familiar with meson, and this is compiling Rust as a build system, where most users by far use Cargo instead -- so it's not exactly on the cowpath.
Comment 4 Mike Gilbert gentoo-dev 2018-10-07 15:36:55 UTC
Here's a link to the test case.

https://github.com/mesonbuild/meson/tree/master/test%20cases/rust/8%20many%20files
Comment 5 Mike Gilbert gentoo-dev 2018-10-07 15:43:02 UTC
From #mesonbuild:

<jpakkane> Ninja has a implementation limitation that any target that produces a dep file can have only one output file. That has multiple. At least in ye olden times rustc wrote a dep rule also for the depfile itself, which was wrong but I think they fixed it.
Comment 6 Mike Gilbert gentoo-dev 2018-10-07 15:57:27 UTC
I guess ninja is complaining about having too many targets in manyfiles.d.

> % cat manyfiles.d
> manyfiles: ../test\ cases/rust/8\ many\ files/main.rs ../test\ cases/rust/8\ many\ files/foo.rs
> 
> manyfiles.d: ../test\ cases/rust/8\ many\ files/main.rs ../test\ cases/rust/8\ many\ files/foo.rs
> 
> ../test\ cases/rust/8\ many\ files/main.rs:
> ../test\ cases/rust/8\ many\ files/foo.rs:
Comment 7 Mike Gilbert gentoo-dev 2018-10-07 16:01:51 UTC
<jpakkane> The second line is flat out wrong. Ninja deletes all .d files immediately after reading so Ninja will always rebuild everything. This was reported to rustc upstream ages ago and IIRC they fixed it.
Comment 8 Mike Gilbert gentoo-dev 2018-10-07 16:29:02 UTC
This appears to be an issue introduced with ninja-1.8.2-r1 (the kitware branch). The test passes with ninja-1.8.2 (vanilla upstream).
Comment 9 Mike Gilbert gentoo-dev 2018-10-07 16:46:17 UTC
@brad.king: This commit seems to break the above meson test case.

https://github.com/Kitware/ninja/commit/648da3f0ae757a0725640e63476370cc63e09169
Comment 10 Brad King 2018-10-08 10:41:31 UTC
Indeed, the commit includes a test case:

  https://github.com/Kitware/ninja/commit/648da3f0ae757a0725640e63476370cc63e09169#diff-43a4c476eaa3e085d18a2325d36994f9R273

specifically to cover rejection in the "depfile has multiple output paths" case.  It corresponds to an existing test from upstream ninja:

  https://github.com/Kitware/ninja/commit/648da3f0ae757a0725640e63476370cc63e09169#diff-43a4c476eaa3e085d18a2325d36994f9L156

but is extended to the multiple rule case.

That upstream ninja incorrectly tolerated this has allowed the bug in the depfile generation to go unnoticed.  We may need to make it a warning for now instead.
Comment 11 Brad King 2018-10-08 14:29:26 UTC
I've updated Kitware's branch to convert the depfile error into a warning in this case.  See new release at:

https://github.com/Kitware/ninja/releases/tag/v1.8.2.g81279.kitware.dyndep-1.jobserver-1
Comment 12 Larry the Git Cow gentoo-dev 2018-10-08 16:24:27 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=364d527015bfeca046ddbc055b3740127b098b59

commit 364d527015bfeca046ddbc055b3740127b098b59
Author:     Mike Gilbert <floppym@gentoo.org>
AuthorDate: 2018-10-08 16:23:49 +0000
Commit:     Mike Gilbert <floppym@gentoo.org>
CommitDate: 2018-10-08 16:24:21 +0000

    dev-util/ninja: add new kitware release (1.8.2.g81279)
    
    Closes: https://bugs.gentoo.org/667952
    Package-Manager: Portage-2.3.50_p14, Repoman-2.3.11_p21
    Signed-off-by: Mike Gilbert <floppym@gentoo.org>

 dev-util/ninja/Manifest              |   3 +-
 dev-util/ninja/ninja-1.8.2-r1.ebuild |  11 +--
 dev-util/ninja/ninja-1.8.2-r2.ebuild | 131 +++++++++++++++++++++++++++++++++++
 3 files changed, 139 insertions(+), 6 deletions(-)