Mail Archives: djgpp/2012/04/23/19:38:13
X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f
|
Message-Id: | <201204232337.q3NNbRfP021787@delorie.com>
|
From: | Juan Manuel Guerrero <juan DOT guerrero AT gmx DOT de>
|
To: | djgpp-announce AT delorie DOT com
|
Subject: | ANNOUNCE: release 3 of DJGPP port of GNU binutils 2.22 uploaded.
|
Date: | Tue, 24 Apr 2012 01:33:40 +0200
|
This is release 3 of the port of GNU binutils 2.22 to MSDOS/DJGPP.
The GNU binutils are utilities of use when dealing with binary files, either
object files or executables. These tools consist of the linker (ld), the
assembler (gas), and the profiler (gprof). There is also a collection of
other binary tools, including the disassembler (objdump). These tools make
use of a pair of libraries (bfd and opcodes) and a common set of header files.
DJGPP specific changes.
=======================
- This release fixes a bug concerning the creation of the internal
section header from the COFF section header when an object file
is read by the linker. The bug is related to the use of COFF debug
info (-gcoff). AFAIK, the support of COFF debug info is brocken
in gcc 4.6.N and later and it use is not recommended, neitherless
the bug had to be fixed.
OFYI how the DJGPP specifc support for number of relocations greater than 64K
works:
- If the number of relocations of an object file exceeds 65534 then s_nreloc
in the section header is set to 65535 to signal the overflow and the real
number of relocations is stored in an extra COFF relocation directive.
This is always the first relocation directive in the sequence of relocation
directives of this object file. The 32 bit field r_vaddr is used to store
the real number of relocations. This extra relocation directive is later
removed. To signal this overflow also the STYP_NRELOC_OVFL bit (0x01000000)
is set in the s_flags field of the section header.
- If the number of lines of an object file exceeds 65535 then the assembler
will abort with an error message. This can only happen if COFF debug info
is used. There is no work around for this issue.
- When the linker creates an executable file from the objects files and the
total number of lines exceeds 65535 the lower 16 bit of that value will be
stored in the s_nlnno field and the higher 16 bit in the s_nreloc field of
the section header of the executable file. This can only happen if COFF
debug info is used.
As a lot of threads during the last months have shown, the COFF debug info
support is brocken in gcc so its usage is discoraged.
The port consists of the usual four packages that have been compiled
using stock djdev203 and that can be downloaded from ftp.delorie.com
and mirrors as (time stamp 2012-04-22):
GNU binutils 2.22 binary and info format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bnu222br3.zip
GNU binutils 2.22 bfd, liberty and opcode libraries and headers:
ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bnu222ar3.zip
GNU binutils 2.22 dvi, html, ps and pdf format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bnu222dr3.zip
GNU binutils 2.22 source:
ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bnu222sr3.zip
The binaries have been produced a second time using the stock version of
djdev204 beta library. This package is available at ftp.delorie.com and
mirrors as (timestamp 2012-04-22):
GNU binutils 2.22 binary and info format documentation:
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu222br3.zip
GNU binutils 2.22 bfd, liberty and opcode libraries and headers:
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu222ar3.zip
Send binutils specific bug reports to <bug-binutils AT gnu DOT org>.
Send suggestions and bug reports concerning the DJGPP port to
comp.os.msdos.djgpp or <djgpp AT delorie DOT com>.
Enjoy.
Guerrero, Juan Manuel <juan DOT guerrero AT gmx DOT de>
PS: I have tried to test this port by compiling it together with the gcc 4.7.0
sources available at Andris homepage. For the first round I used a stock
DJGPP 2.04 installation, especially gcc 4.6.2 and binutils 2.21.1.
I build and installed this release of binutils 2.22 on WinXP Pro SP3.
Then I build gcc 4.7.0. Then the gcc and binutils binaries were installed
in a stock DJGPP 2.04 installtion on a Win98SE maschine. First binutils
were build and installed then gcc was build. The produced binutils and
gcc binaries were then installed in a stock DJGPP 2.04 installation on a
Win2K SP5 maschine. The same procedure was then repeated and the resulting
binaries were installed on the WinXP Pro SP3 maschine. Here a last time
the procedure was repeated.
The second round of the test was to repeat the hole procedure sequence but
this time using a stock DJGPP 2.03 installation. Due to serious difficulties
during the configuration stage of gcc on Win2K, the building of gcc on a
Win2K maschine had to be skipped. These difficulties may be solvable by
replacing fileutils and some other utilities by those versions compiled
with DJGPP 2.04.
- Raw text -