Skip to content
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

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in 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