Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 757276 - dev-lang/rust-1.47.0-r2 does not compile with 9216 MiB of memory
Summary: dev-lang/rust-1.47.0-r2 does not compile with 9216 MiB of memory
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal minor
Assignee: Georgy Yakovlev
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-11-27 21:33 UTC by nvaert1986
Modified: 2021-04-27 17:30 UTC (History)
7 users (show)

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


Attachments
emerge log dev-lang/rust-1.4.7.0-r2 (emerge_rust-1.47.0-r2.log,34.68 KB, text/x-log)
2020-11-28 16:19 UTC, MickKi
Details

Note You need to log in before you can comment on or make changes to this bug.
Description nvaert1986 2020-11-27 21:33:37 UTC
While emerging rust it checks whether you have 9216 MiB of disk space, which is not enough for rust-1.47.0-r2. Mine wouldn't even compile with 12GB of RAM. I needed to set the amount to set the size of my RAM disk to at least 14GB to get it to compile.

Reproducible: Always

Steps to Reproduce:
1.emerge =dev-lang/rust-1.47.0-r2 with less than 14GB of disk space
Actual Results:  
=dev-lang/rust-1.47.0-r2 emerged successfully

Expected Results:  
Compilation gave an error that I ran out of disk space.
Comment 1 Ionen Wolkens gentoo-dev 2020-11-28 00:30:13 UTC
Please at least provide output of `emerge --info dev-lang/rust`

The ebuild tries to do some analysis to figure out more precise space requirements and knowing what you used may be helpful to know what caused the difference.
Comment 2 MickKi 2020-11-28 16:19:31 UTC
Created attachment 675604 [details]
emerge log dev-lang/rust-1.4.7.0-r2

It also fails here on 3 different systems with up to 12.3G allocated to /var/tmp/portage either on RAM or on disk:

# emerge --info dev-lang/rust

Repositories:

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

local
    location: /usr/local/portage
    masters: gentoo
    priority: 100

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE AdobeFlash-11.x RAR"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"

 openmp pam pcre png policykit qt5 readline seccomp semantic-desktop split-usr sse sse2 sse3 sse4_1 ssl ssse3 svg tcpd udev udisks unicode upower webp xattr zlib" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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 sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 sse4_1 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" L10N="en-GB" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2 php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python2_7 python3_7" RUBY_TARGETS="ruby25 ruby26" USERLAND="GNU" VIDEO_CARDS="intel i965" 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, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

dev-lang/rust-1.46.0::gentoo was built with the following:
USE="-clippy -debug -doc -libressl (-miri) (-nightly) (-parallel-compiler) -rls -rustfmt (-system-bootstrap) (-system-llvm) -wasm" CPU_FLAGS_X86="sse2" LLVM_TARGETS="(X86) -AArch64 -AMDGPU -ARM -BPF -Hexagon -Lanai -MSP430 -Mips -NVPTX -PowerPC -RISCV -Sparc -SystemZ -WebAssembly -XCore"
Comment 3 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2020-11-28 17:04:39 UTC
Confirmed. rust-1.48 does not even compile in a 12GiB tmpfs but fails with "No space left on device".
Comment 4 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2020-11-28 17:06:09 UTC
Okay, summary was about rust-1.47 so I restore the original one.

For the record. rust-1.47 could be built in a 12GiB tmpfs but rust-1.48 can not.
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2020-11-28 17:21:20 UTC
bug 753428 comes to mind?
Comment 6 nvaert1986 2020-11-28 17:39:56 UTC
emerge --info dev-lang/rust
Portage 3.0.9 (python 3.7.9-final-0, default/linux/amd64/17.1/systemd, gcc-9.3.0, glibc-2.32-r2, 5.8.16-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-5.8.16-gentoo-x86_64-AMD_Ryzen_7_2700X_Eight-Core_Processor-with-gentoo-2.7
KiB Mem:    32844396 total,  29875048 free
KiB Swap:    6000636 total,   6000636 free
Timestamp of repository gentoo: Fri, 27 Nov 2020 19:30:01 +0000
Head commit of repository gentoo: 8de0bd0885c48a3260ab1db1faafd53a5f60ad7d
sh bash 5.0_p18
ld GNU ld (Gentoo 2.34 p6) 2.34.0
app-shells/bash:          5.0_p18::gentoo
dev-lang/perl:            5.30.3::gentoo
dev-lang/python:          2.7.18-r4::gentoo, 3.6.12::gentoo, 3.7.9::gentoo, 3.8.6::gentoo, 3.9.0::gentoo
dev-util/cmake:           3.17.4-r1::gentoo
sys-apps/baselayout:      2.7::gentoo
sys-apps/sandbox:         2.20::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo
sys-devel/automake:       1.16.2-r1::gentoo
sys-devel/binutils:       2.34-r2::gentoo
sys-devel/gcc:            9.3.0-r1::gentoo
sys-devel/gcc-config:     2.3.2-r1::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 5.9::gentoo (virtual/os-headers)
sys-libs/glibc:           2.32-r2::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-metamanifest: no
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-jobs: 1
    sync-rsync-extra-opts: 

local
    location: /var/db/repos/local
    masters: gentoo

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=znver1 -O2 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0"
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"
CXXFLAGS="-march=znver1 -O2 -pipe -fomit-frame-pointer"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH 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="-march=znver1 -O2 -pipe -fomit-frame-pointer"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=znver1 -O2 -pipe -fomit-frame-pointer"
GENTOO_MIRRORS="https://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/ http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/ rsync://mirror.eu.oneandone.net/gentoo/ ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://mirror.netcologne.de/gentoo/ https://mirror.netcologne.de/gentoo/ http://mirror.netcologne.de/gentoo/ rsync://mirror.netcologne.de/gentoo/ https://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ https://ftp.halifax.rwth-aachen.de/gentoo/ http://ftp.halifax.rwth-aachen.de/gentoo/ ftp://ftp.halifax.rwth-aachen.de/gentoo/ rsync://ftp.halifax.rwth-aachen.de/gentoo/ https://ftp.fau.de/gentoo http://ftp.fau.de/gentoo ftp://ftp.fau.de/gentoo rsync://ftp.fau.de/gentoo https://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ rsync://ftp-stud.hs-esslingen.de/gentoo/ https://mirror.leaseweb.com/gentoo/ http://mirror.leaseweb.com/gentoo/ rsync://mirror.leaseweb.com/gentoo/ https://ftp.snt.utwente.nl/pub/os/linux/gentoo http://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo rsync://ftp.snt.utwente.nl/gentoo"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j16"
PKGDIR="/var/cache/binpkgs"
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 acl alsa amd64 berkdb bzip2 cairo caps cli crypt cups cxx dri flac fortran gbm gdbm gssapi gstreamer iconv icu idn introspection ipv6 jpeg kde kerberos libglvnd libtirpc lzma multilib ncurses networkmanager nls nptl ogg openal opengl openmp pam pango pcre perl plasma png pulseaudio python qml qt5 readline ruby samba sdl seccomp semantic-desktop split-usr sqlite ssl systemd tcpd theora tiff truetype udev unicode vala vorbis vulkan wayland xattr xcb zeroconf zlib" ABI_X86="32 64" ADA_TARGET="gnat_2018" ALSA_CARDS="ca0132" 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 sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" CURL_SSL="gnutls" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis 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 joystick keyboard libinput mouse" KERNEL="linux" L10N="en nl ru" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LLVM_TARGETS="X86" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2 php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python3_7" RUBY_TARGETS="ruby25 ruby26" USERLAND="GNU" VIDEO_CARDS="nvidia" 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, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

dev-lang/rust-1.47.0-r2::gentoo was built with the following:
USE="-clippy -debug (-doc) -libressl (-miri) (-nightly) (-parallel-compiler) -rls -rustfmt (-system-bootstrap) (-system-llvm) -test -wasm" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse2" LLVM_TARGETS="(X86) -AArch64 -AMDGPU -ARM -AVR -BPF -Hexagon -Lanai -MSP430 -Mips -NVPTX -PowerPC -RISCV -Sparc -SystemZ -WebAssembly -XCore"
FEATURES="qa-unresolved-soname-deps distlocks userpriv parallel-fetch protect-owned ipc-sandbox network-sandbox merge-sync binpkg-logs xattr strict pid-sandbox fixlafiles assume-digests preserve-libs binpkg-dostrip multilib-strict news sandbox usersync unmerge-orphans usersandbox userfetch sfperms unknown-features-warn ebuild-locks binpkg-docompress config-protect-if-modified unmerge-logs"
Comment 7 Arfrever Frehtes Taifersar Arahesis 2020-11-28 23:52:58 UTC
My recent statistics from build logs of dev-lang/rust:

dev-lang/rust-1.46.0 (2020-08-28-08-58-07):
 * Final size of build directory: 8722420 KiB (  8.3 GiB)
 * Final size of installed tree:   486072 KiB (474.6 MiB)

dev-lang/rust-1.47.0 (2020-10-11-16-47-10):
 * Final size of build directory: 10201208 KiB (  9.7 GiB)
 * Final size of installed tree:    542400 KiB (529.6 MiB)

dev-lang/rust-1.47.0-r1 (2020-10-15-00-08-37):
 * Final size of build directory: 13502428 KiB ( 12.8 GiB)
 * Final size of installed tree:    542416 KiB (529.7 MiB)

dev-lang/rust-1.47.0-r1 (2020-11-24-10-12-16):
 * Final size of build directory: 13502548 KiB ( 12.8 GiB)
 * Final size of installed tree:    542416 KiB (529.7 MiB)

dev-lang/rust-1.48.0 (2020-11-25-13-07-14):
 * Final size of build directory: 15909012 KiB ( 15.1 GiB)
 * Final size of installed tree:    463804 KiB (452.9 MiB)

dev-lang/rust-1.48.0 (2020-11-25-22-08-22):
 * Final size of build directory: 15949164 KiB ( 15.2 GiB)
 * Final size of installed tree:    465996 KiB (455.0 MiB)

(All with USE="-system-bootstrap -system-llvm")
Comment 8 Ionen Wolkens gentoo-dev 2020-11-29 00:25:08 UTC
With USE="system-bootstrap system-llvm" it seems kind of modest on my end which is what made me wonder where this 14GB came from, but results are still a bit above what's checked.

Checking for at least 6144 MiB disk space [...]
dev-lang/rust-1.48.0 (2020-11-25 23:26:04)
 * Final size of build directory: 7749408 KiB (  7.3 GiB)
 * Final size of installed tree:   247112 KiB (241.3 MiB)
Comment 9 Georgy Yakovlev archtester gentoo-dev 2020-11-29 19:31:38 UTC
I have a feeling -system-llvm and amount of enabled llvm targets plays a big role here.

I still haven't determined build time sizes, building different combination of flags until I determine a pattern I could use in size calc function.

If I simply bump reqs to 16G a lot of people going to be PISSED ( for a good reason ).
Comment 10 onkobu 2020-12-04 13:46:11 UTC
Same here:

$> emerge --info dev-lang/rust
Portage 3.0.9 (python 3.7.9-final-0, default/linux/amd64/17.1, gcc-9.3.0, glibc-
2.32-r2, 5.4.72-gentoo-upd x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-5.4.72-gentoo-upd-x86_64-AMD_Ryzen_5_3400G_with_Radeon_Vega_
Graphics-with-gentoo-2.7
KiB Mem:    30821452 total,  16854356 free
KiB Swap:    4194300 total,   4194300 free
Timestamp of repository gentoo: Tue, 01 Dec 2020 01:30:01 +0000
Head commit of repository gentoo: 93e915dd5b6402818089203c77228ad300e3047e
sh bash 5.0_p18
ld GNU ld (Gentoo 2.34 p6) 2.34.0
distcc 3.3.3 x86_64-pc-linux-gnu [disabled]
ccache version 3.7.12 [disabled]
app-shells/bash:          5.0_p18::gentoo
dev-java/java-config:     2.3.1::gentoo
dev-lang/perl:            5.30.3::gentoo
dev-lang/python:          2.7.18-r4::gentoo, 3.7.9::gentoo, 3.8.6::gentoo, 3.9.0
::gentoo
dev-util/ccache:          3.7.12::gentoo
dev-util/cmake:           3.17.4-r1::gentoo
sys-apps/baselayout:      2.7::gentoo
sys-apps/openrc:          0.42.1::gentoo
sys-apps/sandbox:         2.20::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo
sys-devel/automake:       1.16.2-r1::gentoo
sys-devel/binutils:       2.34-r2::gentoo
sys-devel/gcc:            9.3.0-r1::gentoo
sys-devel/gcc-config:     2.3.2-r1::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 5.4-r1::gentoo (virtual/os-headers)
sys-libs/glibc:           2.32-r2::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-jobs: 1
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-metamanifest: yes

crossdev
    location: /var/db/repos/localrepo-crossdev
    masters: gentoo
    priority: 10

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/gnupg/q
ualified.txt /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/
fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.2/ext-active/ /e
tc/php/apache2-php7.3/ext-active/ /etc/php/apache2-php7.4/ext-active/ /etc/php/c
gi-php7.2/ext-active/ /etc/php/cgi-php7.3/ext-active/ /etc/php/cgi-php7.4/ext-ac
tive/ /etc/php/cli-php7.2/ext-active/ /etc/php/cli-php7.3/ext-active/ /etc/php/c
li-php7.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=athlon64 -O2 -pipe"
DISTDIR="/var/portage/distfiles"
EMERGE_DEFAULT_OPTS="--quiet-build=y"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PER
L5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG
_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-march=athlon64 -O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-pro
tect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multil
ib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-
owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unm
erge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=athlon64 -O2 -pipe"
GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j9"
PKGDIR="/srv/http/packages"
PORTAGE_BINHOST="http://gentoo.voelkizetti.net/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-
times --compress --force --whole-file --delete --stats --human-readable --timeou
t=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="aac acl alsa amd64 apache2 berkdb bzip2 cli crypt cups curl dri elogind ffm
peg flac fortran gd gdbm gpg iconv icu ipv6 jpeg json ldap libglvnd libtirpc lm_
sensors mp3 mp4 multilib mysqli ncurses nls nptl ogg openmp openssl opus pam pcr
e pdf php pkcs11 png postgres readline seccomp split-usr sqlite ssl tcpd theora 
threads tiff udisks unicode vorbis xattr xml zlib" ABI_X86="64" ADA_TARGET="gnat
_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10
k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 tr
ident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="access_compat ali
as auth_basic authn_core authn_file authz_core authz_host authz_owner authz_user
 authn_dbm authz_dbm autoindex cache dav dav_fs dav_lock dbus dir env expires fi
lter hal headers include log_config mime mime_magic negotiation proxy proxy_ajp 
proxy_html proxy_http proxy_wstunnel ratelimit rewrite socache_shmcb unique_id u
nixd userdir xml2enc" APACHE2_MPMS="worker" CALLIGRA_FEATURES="karbon sheets wor
ds" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAG
S_X86="aes avx f16c fma3 fma4 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4
_2 sse4a ssse3 xop" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermo
re fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oc
eanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsi
p tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" L10N="de en" L
CD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses tex
t" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TAR
GET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGET
S="php7-2 php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_
TARGET="python3_7" PYTHON_TARGETS="python2_7 python3_7" RUBY_TARGETS="ruby25 rub
y26" USERLAND="GNU" VIDEO_CARDS="amdgpu fbdev intel nouveau radeon radeonsi vesa
 dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ip
p2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhc
pmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BUNZI
P2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

dev-lang/rust-1.46.0::gentoo was built with the following:
USE="-clippy -debug -doc -libressl (-miri) (-nightly) (-parallel-compiler) -rls 
-rustfmt (-system-bootstrap) (-system-llvm) -wasm" ABI_X86="(64) -32 (-x32)" CPU
_FLAGS_X86="sse2" LLVM_TARGETS="(X86) -AArch64 -AMDGPU -ARM -BPF -Hexagon -Lanai
 -MSP430 -Mips -NVPTX -PowerPC -RISCV -Sparc -SystemZ -WebAssembly -XCore"
Comment 11 nvaert1986 2020-12-07 15:54:38 UTC
I just compiled dev-lang/rust-1.48.0 with the system-llvm USE flag enabled on a different machine and the usage of my tmpfs was 11,6GB compared to 13,4GB when compiling dev-lang/rust-1.47.0 with the system-llvm USE flag disabled. So there's definitely a difference between with the USE flag enabled and disabled, but 9,2GB is just not enough. You'll at least need to bump it to 12GB for it to compile successfully.

The fstab on which I compiled dev-lang/rust-1.48.0 with the system-llvm USE flag enabled has is the following: tmpfs /var/tmp/portage tmpfs size=12G,uid=portage,gid=portage,mode=775,noatime 0 0
Comment 12 Georgy Yakovlev archtester gentoo-dev 2020-12-08 16:56:39 UTC
it already does come calculation based on which flags are enabled ( just not which rust targets )

base requirement is 6GB right now and bumping it will bump the end result.
I just don't want to bump it too much.

pre_build_checks() {
        local M=6144
        M=$(( $(usex clippy 128 0) + ${M} ))
        M=$(( $(usex miri 128 0) + ${M} ))
        M=$(( $(usex rls 512 0) + ${M} ))
        M=$(( $(usex rustfmt 256 0) + ${M} ))
        M=$(( $(usex system-llvm 0 2048) + ${M} ))
        M=$(( $(usex wasm 256 0) + ${M} ))
        M=$(( $(usex debug 15 10) * ${M} / 10 ))
        eshopts_push -s extglob
        if is-flagq '-g?(gdb)?([1-9])'; then
                M=$(( 15 * ${M} / 10 ))
        fi
        eshopts_pop
        M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
        M=$(( $(usex doc 256 0) + ${M} ))
        CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
}
Comment 13 Larry the Git Cow gentoo-dev 2020-12-16 20:49:56 UTC
The bug has been referenced in the following commit(s):

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

commit ec98673b8287ce4dabcd8b673b2d4b56e86a173e
Author:     Georgy Yakovlev <gyakovlev@gentoo.org>
AuthorDate: 2020-12-16 20:49:38 +0000
Commit:     Georgy Yakovlev <gyakovlev@gentoo.org>
CommitDate: 2020-12-16 20:49:38 +0000

    dev-lang/rust: update requirements check function
    
    Bug: https://bugs.gentoo.org/757276
    Package-Manager: Portage-3.0.12, Repoman-3.0.2
    Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>

 dev-lang/rust/rust-1.47.0-r2.ebuild | 45 ++++++++++++++++++++++++++++++-------
 1 file changed, 37 insertions(+), 8 deletions(-)
Comment 14 Georgy Yakovlev archtester gentoo-dev 2020-12-16 20:54:08 UTC
I've updated 1.47.0-r2 as I could, will port to other rusts as I measure numbers.

It's very hard to get precise numbers due to multiple factors involved, as if we set it too high, users will be angry that ebuild dies.
if we set it too low, ebuild will die mid-build due to out-of-space or out-of-ram conditions.

But generally if you have 16G or less of ram - be prepared to use non-tmpfs space to compile rust (like for browsers, libreoffice and other big apps)

32G ram machines can safely compile in tmpfs, usually.
Comment 15 Aliaksei Urbanski 2021-01-18 01:07:37 UTC
Hello Georgy,

Would you mind porting your changes to rust-1.48.0?
It's quite frustrating when you get out of space after hours of compiling.
I suppose 16 GiB would be a reasonable requirement.

Thanks in advance!
Comment 16 Peter Asplund 2021-04-23 17:08:46 UTC
I'm hitting the same issue with 16 GB of tmpfs on rust-1.51.0.
Comment 17 Georgy Yakovlev archtester gentoo-dev 2021-04-27 17:30:11 UTC
old versions deleted.

discussion going on in https://bugs.gentoo.org/783768