dlltool uses non-unique temp filenames
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Wine |
Won't Fix
|
Medium
|
|||
binutils |
Fix Released
|
Medium
|
|||
binutils (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Jammy |
Fix Released
|
Low
|
Unassigned | ||
binutils-mingw-w64 (Ubuntu) |
Triaged
|
Low
|
Unassigned | ||
Jammy |
Triaged
|
Low
|
Unassigned |
Bug Description
Description: Ubuntu 22.04 LTS
Release: 22.04
binutils-
/usr/bin/
tools/winebuild
../wine-
Assembler messages:
Error: can't open winmm_dll_t.s for reading: No such file or directory
/usr/bin/
/usr/bin/
winebuild: /usr/bin/
make: *** [Makefile:195227: dlls/winmm/
make: *** Waiting for unfinished jobs....
tools/winebuild
../wine-
Due to dlltool using names like winmm_dll_t.s and winmm_dll_t.o for it's temp file - these are not unique when building libwinmm.delay.a and libwinmm.cross.a in parallel. (This can of course affect any dll wine is building import libs for, winmm is just the one I happaned to get caught on).
This is regression newly introduced in binutils 2.38 vs older versions which used getpid() as the basis of their temp name. We just encountered it as part of updating our CI for a winelib application from focal to jammy, but it seems to have been discovered by others already: see https:/
There is an upstream fix on master (2.39) which is already backported to the binutils-2_38 branch: https:/
Changed in binutils: | |
importance: | Unknown → Medium |
status: | Unknown → Fix Released |
Changed in wine: | |
importance: | Unknown → Medium |
status: | Unknown → Won't Fix |
tags: | added: foundations-todo |
tags: | removed: foundations-todo |
Changed in binutils-mingw-w64 (Ubuntu): | |
status: | Confirmed → Triaged |
importance: | Undecided → Low |
Changed in binutils (Ubuntu): | |
status: | Confirmed → Fix Released |
Changed in binutils-mingw-w64 (Ubuntu): | |
status: | Triaged → Fix Released |
Changed in binutils (Ubuntu Jammy): | |
status: | New → Fix Committed |
importance: | Undecided → Low |
Changed in binutils-mingw-w64 (Ubuntu Jammy): | |
status: | New → Triaged |
importance: | Undecided → Low |
tags: | added: foundations-triage-discuss |
Changed in binutils-mingw-w64 (Ubuntu): | |
status: | Fix Released → Triaged |
Changed in binutils (Ubuntu Jammy): | |
status: | Fix Committed → Fix Released |
With binutils-2.38 in a cross to x86_64-w64-mingw32 I persistently see random breakage in dlltool during the build of mingw-w64's "crt".
Example 1: w64-mingw32- dlltool --as-flags=--64 -m i386:x86-64 -k --as=x86_ 64-w64- mingw32- as --output-lib lib64/libd3dcom piler_33. a --input-def /tmp/mingw- w64-v9. 0.0/mingw- w64-crt/ lib64/d3dcompil er_33.def w64-mingw32- dlltool --as-flags=--64 -m i386:x86-64 -k --as=x86_ 64-w64- mingw32- as --output-lib lib64/libd3dcom piler_34. a --input-def /tmp/mingw- w64-v9. 0.0/mingw- w64-crt/ lib64/d3dcompil er_34.def w64-mingw32- dlltool --as-flags=--64 -m i386:x86-64 -k --as=x86_ 64-w64- mingw32- as --output-lib lib64/libd3dcom piler_35. a --input-def /tmp/mingw- w64-v9. 0.0/mingw- w64-crt/ lib64/d3dcompil er_35.def w64-mingw32- dlltool --as-flags=--64 -m i386:x86-64 -k --as=x86_ 64-w64- mingw32- as --output-lib lib64/libd3dcom piler_36. a --input-def /tmp/mingw- w64-v9. 0.0/mingw- w64-crt/ lib64/d3dcompil er_36.def w64-mingw32- dlltool --as-flags=--64 -m i386:x86-64 -k --as=x86_ 64-w64- mingw32- as --output-lib lib64/libd3dcom piler_37. a --input-def /tmp/mingw- w64-v9. 0.0/mingw- w64-crt/ lib64/d3dcompil er_37.def w64-mingw32- dlltool: x86_64- w64-mingw32- as exited with status 1 w64-mingw32- dlltool: failed to open temporary tail file: D3DCompiler_ dll_t.o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00000. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00001. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00002. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00003. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00004. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00005. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00006. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00007. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00008. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00009. o: No such file or directory piler_36. a] Error 1 w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00000. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00001. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00002. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00003. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00004. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00005. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_ dll_s00006. o: No such file or directory w64-mingw32- dlltool: cannot delete D3DCompiler_d...
...
x86_64-
x86_64-
x86_64-
x86_64-
Assembler messages:
Error: can't open D3DCompiler_dll_t.s for reading: No such file or directory
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
make[1]: *** [Makefile:83854: lib64/libd3dcom
make[1]: *** Waiting for unfinished jobs....
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-
x86_64-