Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

CI: spurious error building LLVM on mingw: ranlib.exe: could not create temporary file whilst writing archive: no more archived files #108227

Open
erikdesjardins opened this issue Feb 19, 2023 · 3 comments
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-spurious Area: Spurious failures in builds (spuriously == for no apparent reason) C-bug Category: This is a bug. O-windows-gnu Toolchain: GNU, Operating system: Windows T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@erikdesjardins
Copy link
Contributor

# the specific codegen library differs, sometimes libLLVMSparcCodeGen.a, sometimes libLLVMM68kCodeGen.a, etc.
FAILED: lib/libLLVMSparcCodeGen.a
cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E rm -f lib\libLLVMSparcCodeGen.a && D:\a\rust\rust\mingw32\bin\ar.exe qc lib\libLLVMSparcCodeGen.a  lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/DelaySlotFiller.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/LeonPasses.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcAsmPrinter.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcInstrInfo.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcISelDAGToDAG.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcISelLowering.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcFrameLowering.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcMachineFunctionInfo.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcRegisterInfo.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcSubtarget.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcTargetMachine.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcMCInstLower.cpp.obj lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcTargetObjectFile.cpp.obj && D:\a\rust\rust\mingw32\bin\ranlib.exe lib\libLLVMSparcCodeGen.a && cd ."
D:\a\rust\rust\mingw32\bin\ranlib.exe: could not create temporary file whilst writing archive: no more archived files

This has happened on quite a few PRs recently:

I've seen it happen on the following builders (all mingw builders I guess):

  • dist-i686-mingw
  • i686-mingw-1
  • i686-mingw-2
  • dist-x86_64-mingw
  • x86_64-mingw-2

@rustbot label A-spurious A-LLVM O-Windows

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-spurious Area: Spurious failures in builds (spuriously == for no apparent reason) O-windows Operating system: Windows labels Feb 19, 2023
@klensy
Copy link
Contributor

klensy commented Feb 25, 2023

Ok, internet knows about this problem, https://osdn.net/projects/mingw/lists/archive/users/2019-January/thread.html#198

https://osdn.net/projects/mingw/lists/archive/users/2019-January/000228.html

the buggy mkstemp() has infected the binutils-2.31.1-1, and
gcc-8.2.0-2 builds.

So this should be solved long ago?

@ChrisDenton ChrisDenton added O-windows-gnu Toolchain: GNU, Operating system: Windows and removed O-windows Operating system: Windows labels Feb 25, 2023
@mati865
Copy link
Contributor

mati865 commented Mar 1, 2023

I think it started with #100178

Ok, internet knows about this problem, https://osdn.net/projects/mingw/lists/archive/users/2019-January/thread.html#198

https://osdn.net/projects/mingw/lists/archive/users/2019-January/000228.html

the buggy mkstemp() has infected the binutils-2.31.1-1, and
gcc-8.2.0-2 builds.

So this should be solved long ago?

Could be a new regression...

@ehuss ehuss mentioned this issue Mar 22, 2023
nikic added a commit to nikic/rust that referenced this issue Mar 26, 2023
This is another attempt to work around
rust-lang#108227.

By limiting to one link job, we should be able to avoid file name
clashes in mkstemp().
bors added a commit to rust-lang-ci/rust that referenced this issue Mar 26, 2023
Limit to one link job on mingw builders

This is another attempt to work around
rust-lang#108227.

By limiting to one link job, we should be able to avoid file name clashes in mkstemp().
@Noratrieb Noratrieb added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Apr 5, 2023
bors pushed a commit to rust-lang-ci/rust that referenced this issue Apr 16, 2023
This is another attempt to work around
rust-lang#108227.

By limiting to one link job, we should be able to avoid file name
clashes in mkstemp().
MabezDev pushed a commit to esp-rs/rust that referenced this issue May 16, 2023
This is another attempt to work around
rust-lang#108227.

By limiting to one link job, we should be able to avoid file name
clashes in mkstemp().
@mati865
Copy link
Contributor

mati865 commented Nov 7, 2024

Triage: this is not fixed by #119229
To fix this the target tools (binutils) need to be rebuilt with latest mingw-w64 which still didn't happen.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-spurious Area: Spurious failures in builds (spuriously == for no apparent reason) C-bug Category: This is a bug. O-windows-gnu Toolchain: GNU, Operating system: Windows T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

7 participants