X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f Message-Id: <201201072002.q07K2LlU006348@delorie.com> From: Juan Manuel Guerrero To: djgpp-announce AT delorie DOT com Subject: ANNOUNCE: DJGPP port of GNU binutils 2.22 uploaded. Date: Sat, 7 Jan 2012 19:57:04 +0100 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline This is a 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 port allows a maximal number of 4294967296 relocations per object file and a maximal number of 4294967296 of lines per executable file. The previous limits were the classical COFF limitations of 65536 for boths. Please note, that due to limitations inherent to DOS and memory ressources not every file can be compiled. E.g.: to be able to compile a single file containing up to 3 * 65536 relocations I had to increment stack space of cc1.exe from 2MB to 10MB. If the file contains 4 * 65536 relocations then cc1.exe aborts because memory has become exhausted. Neither as.exe nor ld.exe have shown memory issues. Both have the standard stack space of 512KB. In other words, even if 32 bit values for relocation and line counters are now supported by DJGPP port of as.exe and ld.exe it does not imply that large files can be successfully compiled and linked. There are memory limitations that may not be solvable. This port handles the overflow of the 16 bit s_nreloc and s_nlnno fields in the section header in the same way this is done by the PE COFF format used by Cygwin. No other changes to the way DJGPP deals with COFF have been done. - The linker script changes, are based on the diff files taken from Andris Pavenis'bnu219s2.zip and djcross-binutils-2.19.1-10ap.src.rpm. Both are available at ftp.delorie.com and mirrors. I have only made those adjustments necessaries to get those patches fit with the current source files. My contribution primarily concerns the scripts needed for configuration and building the products. These are based on the ones created for the GDB ports. - The diffs file that contains all changes I have done is stored in the /djgpp directory. Also in this directory is stored the small build.sh script that I have used to adjust all configure and libtool scripts of the package. The well known issues that must been fixed are that: 1) the gawk test for setting the CR coding to be used does not work at all. 2) inhibit that gawk prepends a leading slash to DOS style path names. 3) a libttool function needs to be adjusted to get the install target working. 4) the target alias is removed from the tooldir and scriptdir path to get the programs and linker scripts installed in the canonical places of a DJGPP installation. That script is very simple and will only work to configure and compile the sources in the /djgpp directory. If you want to make changes or pass more or other options to configure, you will have to edit it or write your own script. build.sh shall not be smart, it shall only DTRT. - The port has been compiled on WinXP Pro SP3 using GCC 4.6.2 and LFN support. I have never tried to use the linker with any gcc version previous than 4.6.2. I even do not know if this would ever work. To compile the sources you will need LFN support. I have compiled on WinXP Prof SP3. I have not tried to compile the sources using any other Windows version. Especially I have not tried to compile it on plain DOS. While I tried to configure using djgpp 2.03, I experienced the same crashes that I had configuring GDB using djgpp 2.03. The fastes and easiest way to fix this issue was to replace cat.exe compiled with djgpp 2.03 with the version compiled with djgpp 2.04. As usual, all djgpp specific files (build.sh, diffs, README files, etc.) are located in the /djgpp directory. The sources have not been configured so you must change into the /djgpp directory and start build.sh. This will configure the sources and start make. For further information about Binutils please read the info docs and NEWS file. 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-01-07): GNU binutils 2.22 binary and info format documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bnu222b.zip GNU binutils 2.22 bfd, liberty and opcode libraries and headers: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bnu222a.zip GNU binutils 2.22 dvi, html, ps and pdf format documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bnu222d.zip GNU binutils 2.22 source: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bnu222s.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-01-07): GNU binutils 2.22 binary and info format documentation: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu222b.zip GNU binutils 2.22 bfd, liberty and opcode libraries and headers: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu222a.zip Send binutils specific bug reports to . Send suggestions and bug reports concerning the DJGPP port to comp.os.msdos.djgpp or . Enjoy. Guerrero, Juan Manuel