[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug binutils/28885] New: dlltool broke in 2.38
From: |
mikpelinux at gmail dot com |
Subject: |
[Bug binutils/28885] New: dlltool broke in 2.38 |
Date: |
Sat, 12 Feb 2022 15:27:37 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=28885
Bug ID: 28885
Summary: dlltool broke in 2.38
Product: binutils
Version: 2.38
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: binutils
Assignee: unassigned at sourceware dot org
Reporter: mikpelinux at gmail dot com
Target Milestone: ---
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:
...
x86_64-w64-mingw32-dlltool --as-flags=--64 -m i386:x86-64 -k
--as=x86_64-w64-mingw32-as --output-lib lib64/libd3dcompiler_33.a --input-def
/tmp/mingw-w64-v9.0.0/mingw-w64-crt/lib64/d3dcompiler_33.def
x86_64-w64-mingw32-dlltool --as-flags=--64 -m i386:x86-64 -k
--as=x86_64-w64-mingw32-as --output-lib lib64/libd3dcompiler_34.a --input-def
/tmp/mingw-w64-v9.0.0/mingw-w64-crt/lib64/d3dcompiler_34.def
x86_64-w64-mingw32-dlltool --as-flags=--64 -m i386:x86-64 -k
--as=x86_64-w64-mingw32-as --output-lib lib64/libd3dcompiler_35.a --input-def
/tmp/mingw-w64-v9.0.0/mingw-w64-crt/lib64/d3dcompiler_35.def
x86_64-w64-mingw32-dlltool --as-flags=--64 -m i386:x86-64 -k
--as=x86_64-w64-mingw32-as --output-lib lib64/libd3dcompiler_36.a --input-def
/tmp/mingw-w64-v9.0.0/mingw-w64-crt/lib64/d3dcompiler_36.def
Assembler messages:
Error: can't open D3DCompiler_dll_t.s for reading: No such file or directory
x86_64-w64-mingw32-dlltool --as-flags=--64 -m i386:x86-64 -k
--as=x86_64-w64-mingw32-as --output-lib lib64/libd3dcompiler_37.a --input-def
/tmp/mingw-w64-v9.0.0/mingw-w64-crt/lib64/d3dcompiler_37.def
x86_64-w64-mingw32-dlltool: x86_64-w64-mingw32-as exited with status 1
x86_64-w64-mingw32-dlltool: failed to open temporary tail file:
D3DCompiler_dll_t.o: No such file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00000.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00001.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00002.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00003.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00004.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00005.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00006.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00007.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00008.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00009.o: No such
file or directory
make[1]: *** [Makefile:83854: lib64/libd3dcompiler_36.a] Error 1
make[1]: *** Waiting for unfinished jobs....
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00000.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00001.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00002.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00003.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00004.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00005.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00006.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00007.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00008.o: No such
file or directory
x86_64-w64-mingw32-dlltool: cannot delete D3DCompiler_dll_s00009.o: No such
file or directory
Example 2:
...
x86_64-w64-mingw32-dlltool --as-flags=--64 -m i386:x86-64 -k
--as=x86_64-w64-mingw32-as --output-lib lib64/libd3dx9.a --input-def
/tmp/mingw-w64-v9.0.0/mingw-w64-crt/lib64/d3dx9_43.def
x86_64-w64-mingw32-dlltool --as-flags=--64 -m i386:x86-64 -k
--as=x86_64-w64-mingw32-as --output-lib lib64/libd3dx10.a --input-def
/tmp/mingw-w64-v9.0.0/mingw-w64-crt/lib64/d3dx10_43.def
x86_64-w64-mingw32-dlltool: lib32/libd3dx9.a: error reading d3dx9_43_dll_h.o:
file truncated
make[1]: *** [Makefile:83819: lib32/libd3dx9.a] Error 1
make[1]: *** Waiting for unfinished jobs....
x86_64-w64-mingw32-dlltool: lib64/libd3dx9.a: error reading d3dx9_43_dll_t.o:
No such file or directory
I've also seen it produce .a files that ar complained about containing invalid
or truncated files.
These random failures occur persistently when using binutils-2.38 and parallel
make (make -jN) for mingw-w64's crt. The failures disappear if I use
non-parallel make, or revert to binutils-2.37.
A git bisect identified this late change in 2.38 development as the cause:
# first bad commit: [fdeee5d59dca41e3c70c399a939105e39a4b4282] Allow inferring
tmp_prefix from the dll name from a def file
which makes sense since it touches dlltool.c.
Host: x86_64-pc-linux-gnu (Fedora 34)
Steps for building cross to mingw-w64 (each in a separate build dir):
/tmp/binutils-2.38/configure --target=x86_64-w64-mingw32
--enable-targets=x86_64-w64-mingw32,i686-w64-mingw32
--prefix=/tmp/cross-mingw64 --with-sysroot=/tmp/cross-mingw64 --disable-gdb
--disable-gold --disable-nls --disable-plugins --disable-readline
--disable-sim; make -j; make install
/tmp/mingw-w64-v9.0.0/mingw-w64-headers/configure
--prefix=/tmp/cross-mingw64/x86_64-w64-mingw32 --host=x86_64-w64-mingw32; make
install; ln -sf x86_64-w64-mingw32 /tmp/cross-mingw64/mingw
/tmp/gcc-11.2.0/configure --target=x86_64-w64-mingw32
--prefix=/tmp/cross-mingw64 --with-sysroot=/tmp/cross-mingw64
--disable-libatomic --disable-libgomp --disable-libitm --disable-libmpx
--disable-libquadmath --disable-libsanitizer --disable-lto --disable-nls
--disable-plugin --disable-shared --enable-checking=release --enable-multilib
--enable-64bit --with-dwarf --enable-threads=win32 --enable-languages=c; make
-j all-gcc; make install-gcc
/tmp/mingw-w64-v9.0.0/mingw-w64-crt/configure
--prefix=/tmp/cross-mingw64/x86_64-w64-mingw32 --host=x86_64-w64-mingw32
--enable-lib32 --enable-lib64; make -j
(it's the last step above that fails in dlltool)
(to be followed by install of crt and rebuild of full gcc)
--
You are receiving this mail because:
You are on the CC list for the bug.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug binutils/28885] New: dlltool broke in 2.38,
mikpelinux at gmail dot com <=