-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rust fails to compile/bootstrap llvm on armv7 due to llvm out of memory error (while there is plenty) #50944
Comments
Are you building with debuginfo? See #45854 -- that can exhaust the entire 32-bit address space. You'll get an OOM on that even if there's still swap available, as the process just can't grow any more. I guess if your build still passes with It's been sufficient for Fedora to just build armv7 without debuginfo, but I haven't looked how much is actually used in that case. |
Ah, okay, so you think that this still is an out of memory issue because some process wants to reserve a higher amount of ram than there is theoretically available, due to the limits of the armv7 arch, right? Well, I know of the fedora patch, but hadn't had the chance yet to understand what it is actually doing. However, I had the idea that it adds rather than removes debuginfo being built? This one #49959 So your solution would be to pass |
Yes, in Fedora we're configuring arm with The patch for |
hmm, apparently there is no kill switch available to disable any debug, too bad. The rust build system is really complex, the gentoo ebuild does severall incarnations of bootstrapping, stage0/1/2, llvm, etc. pp. where can I read more about all the build options available, and wether they are automatically enabled or disabled on a default
|
The defaults are shown in config.toml.example. |
For the configuration used by the upstream builds, grep for |
Well, after reading the example file carefully, there shouldn't be any kind of debug enabled per default, and even though the error message comes from a dir called Here is the config.toml: config.toml.gz those options should be set, and the rest of the debug values should be disabled as per default in config.toml.example |
Note that when LLVM says it ran out of memory I've often seen this connected to an LLVM assert going awry. If LLVM asserts are enabled you'll often get a better error message sooner, and otherwise it's just an assert being compiled out and then the real bug is masked by a seeming "out of memory" message |
That means building with the same config.toml but with |
It may! |
with
which I think is just another way to state that there is an out-of-memory error, right?
anything helpfull here? |
The hardware is a rpi2, it has 971mb of ram available plus 8gb of fast swap via usb hdd. I monitored the build, to be sure - at the point of the failure there is roughly 1.4gb of combined ram and swap used.
this is what happens with -j4: rust-j4-fails.log.gz
and this error, slightly different one, with -j2: rust-j2-fails.log.gz
Last version of rust I built with this machine was rust-1.23.0, with exactly the same setup and -j2, which took 13hrs. Now I'm forced to drop to -j1, which passes, but takes 27hrs.
My dmesg is clean of any errors. Have you built in a check for available ram, which I am failing here, or what is this all about?
The text was updated successfully, but these errors were encountered: