[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll
From: |
tkacvins at gmail dot com |
Subject: |
[Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll |
Date: |
Tue, 16 May 2023 01:47:27 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=30448
--- Comment #5 from Tom Kacvinsky <tkacvins at gmail dot com> ---
I've conflated things. The issues of building binutils 2.34 and 2.35 on
MinGW-w64 is a separate issue (perhaps an issue the MInGW-w64 folks know about
and could help solve my build problems without hacks).
I now have 2.34 and 2.35 building.
As a starting point, I built our product with binutils 2.30 and GCC 121.1.0.
This build was successful in the sense the application did not crash on start.
Then, I bisected between 2.31 and 2.37 and found the break happened at 2.36. I
scripted the steps gnatdll would use to make a DLL, then just changed which
version of binutils I used in that script. At 2.36, I saw a break - a way
around it is to use --disable-reloc-section.
I just wanted to clarify the breakage happens at 2.36 and the other issues were
not germane.
An interesting observation the the --base-file output between 2.35 and 2.36
with --disable-reloc-section do not differ when using cmp -s. The .exp
disassembles via objdump -Da (it's a PE image) to differ in one two byte
sequence. objdump -p (relocation information) on the DLLs shows there is
minimal difference (just timestamp and checksum, etc...) and most importantly,
the relocations were exactly the same. So that's a +1.
However, when using 2.36 without --disable-reloc-section, the base files fail a
binary comparison to 2.35 (they should be the same, as they're to carry
relocation offsets written out by cofflink.c). The exp files also disassemble
with a multitude of differences (again, looking at differences of objdump -Da
output with diff -u). The dump of the DLLs relocation tables obtained by
objdump -p also show a multitude of differences - mostly relocations.
So yeah, definite difference between 2.35 and 2.36 with relocation handling.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug binutils/30448] New: ld fails to make a valid DLL when used with gnatdll, tkacvins at gmail dot com, 2023/05/15
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, nickc at redhat dot com, 2023/05/15
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, tkacvins at gmail dot com, 2023/05/15
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, tkacvins at gmail dot com, 2023/05/15
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, tkacvins at gmail dot com, 2023/05/15
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll,
tkacvins at gmail dot com <=
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, nickc at redhat dot com, 2023/05/16
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, tkacvins at gmail dot com, 2023/05/16
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, tkacvins at gmail dot com, 2023/05/16
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, ebotcazou at gcc dot gnu.org, 2023/05/16
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, tkacvins at gmail dot com, 2023/05/16
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, ebotcazou at gcc dot gnu.org, 2023/05/16
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, tkacvins at gmail dot com, 2023/05/16
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, ebotcazou at gcc dot gnu.org, 2023/05/16
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, tkacvins at gmail dot com, 2023/05/18
- [Bug binutils/30448] ld fails to make a valid DLL when used with gnatdll, tkacvins at gmail dot com, 2023/05/27