X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f Message-Id: <201602191712.u1JHCd64004218@delorie.com> Date: Fri, 19 Feb 2016 13:18:50 +0100 From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp-announce AT delorie DOT com]" To: djgpp-announce AT delorie DOT com Subject: ANNOUNCE: Release 2 of the DJGPP port of GNU binutils 2.26 uploaded. Content-Type: text/plain; charset=ISO-8859-15; format=flowed Reply-To: djgpp AT delorie DOT com This is a port of GNU binutils 2.26 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 is a DJGPP specific bug fix release. The assembler has been brocken due to the DJGPP specific elf support code added in bnu2251br3. It has been removed completely and will never be added again. It is not clear to me why that code snippet has triggered the behaviour reported at: but I have never seen an intel syntax like: rep/movsl where the blank between the prefix and the following instruction had been replaced by a non-blank character like a slash. IMO the instruction line looks syntacticaly wrong and should have fixed by the code maintainers. Because both ports, bnu2251[a|b|d|s]r3.zip and bnu226[a|b|d|s].zip are brocken concerned the syntax issue described above, I have deleted them. They have not been moved to the /deleted directory but definitively deleted to avoid any future issue like that. - New entries have been added to libnames.tab to support future PCRE2 library names that are not SFN clean. This shall ease porting and compiling applications on plain DOS like grep or other ones that require those libraries. - The port has been configured and compiled on WinXP SP3 and on Win98SE. There is no guarantee that this may be possible with any other DOS-like OS. Due to the massive use of long file names it will not be possible to configure and compile without LFN support. The port has been compiled using gcc530 and bnu226br2. - The port has been tested by using it. I have used them only on WinXP. It has worked flawlessly. I do not konw if this will ever be the case on FreeDOS. I have never used/tested them in that environment. As usual, all djgpp specific files (build.sh, diffs, README files, etc.) are stored 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 djdev205 and that can be downloaded from ftp.delorie.com and mirrors as (time stamp 2016-02-18): Binutils 2.26 binary and info format documentation: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu226br2.zip Binutils 2.26 bfd, liberty and opcode libraries and headers: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu226ar2.zip Binutils 2.26 dvi, html, ps and pdf format documentation: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu226dr2.zip Binutils 2.26 source: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu226sr2.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 P.S.: As a check that the port is OK again I have compiled d_copy.s as described in some mail. Here is the output of the command gcc -x assembler-with-cpp -v -c d_copy.s: GNU ld (GNU Binutils) 2.26.20160125 Using built-in specs. COLLECT_GCC=c:/djgpp-2.05/bin/gcc.exe Target: djgpp Configured with: /gcc-5.30/configure djgpp --prefix=/dev/env/DJDIR --disable-werror --enable-languages=c,c++,fortran,objc,obj-c++ --enable-libquadmath-support --enable-lto Thread model: single gcc version 5.3.0 (GCC) COLLECT_GCC_OPTIONS='-v' '-c' '-mtune=pentium' '-march=pentium' c:/djgpp-2.05/bin/../libexec/gcc/djgpp/5.30/cc1.exe -E -lang-asm -quiet -v -iprefix c:/djgpp-2.05/bin/../lib/gcc/djgpp/5.30/ -remap d_copy.s -mtune=pentium -march=pentium -fno-directives-only -o c:/TMP/cc4mQpEg.s ignoring nonexistent directory "c:/djgpp-2.05/bin/../lib/gcc/djgpp/5.30/../../../../djgpp/include" ignoring duplicate directory "c:/djgpp-2.05/lib/gcc/../../lib/gcc/djgpp/5.30/include" ignoring duplicate directory "c:/djgpp-2.05/lib/gcc/../../lib/gcc/djgpp/5.30/include-fixed" ignoring nonexistent directory "c:/djgpp-2.05/lib/gcc/../../lib/gcc/djgpp/5.30/../../../../djgpp/include" #include "..." search starts here: #include <...> search starts here: c:/djgpp-2.05/bin/../lib/gcc/djgpp/5.30/include c:/djgpp-2.05/bin/../lib/gcc/djgpp/5.30/include-fixed c:/djgpp-2.05/include End of search list. COLLECT_GCC_OPTIONS='-v' '-c' '-mtune=pentium' '-march=pentium' c:/djgpp-2.05/bin/as.exe -v -o d_copy.o c:/TMP/cc4mQpEg.s GNU assembler version 2.26 (djgpp) using BFD version (GNU Binutils) 2.26.20160125 COMPILER_PATH=c:/djgpp-2.05/bin/../libexec/gcc/djgpp/5.30/;c:/djgpp-2.05/bin/../libexec/gcc/;c:/djgpp-2.05/bin/ LIBRARY_PATH=c:/djgpp-2.05/bin/../lib/gcc/djgpp/5.30/;c:/djgpp-2.05/bin/../lib/gcc/;c:/djgpp-2.05/lib/;./;c:/djgpp-2.05/lib/;c:/djgpp-2.05/bin/../lib/gcc/djgpp/5.30/../../../ COLLECT_GCC_OPTIONS='-v' '-c' '-mtune=pentium' '-march=pentium' d_copy.o: file format coff-go32 Disassembly of section .text: 00000000 <_VGA_UpdatePlanarScreen>: 0: 55 push %ebp 1: 57 push %edi 2: 56 push %esi 3: 53 push %ebx 4: a1 00 00 00 00 mov 0x0,%eax 9: d1 e0 shl %eax b: a3 04 00 00 00 mov %eax,0x4 10: a1 00 00 00 00 mov 0x0,%eax 15: d1 e0 shl %eax 17: a3 08 00 00 00 mov %eax,0x8 1c: ba c4 03 00 00 mov $0x3c4,%edx 21: b0 02 mov $0x2,%al 23: ee out %al,(%dx) 24: 42 inc %edx 25: 8b 74 24 14 mov 0x14(%esp),%esi 29: 8b 3d 00 00 00 00 mov 0x0,%edi 2f: 8b 2d 00 00 00 00 mov 0x0,%ebp 35: d1 ed shr %ebp 37: 8b 0d 00 00 00 00 mov 0x0,%ecx 3d: a1 00 00 00 00 mov 0x0,%eax 42: 29 c8 sub %ecx,%eax 44: a3 0c 00 00 00 mov %eax,0xc 49: a1 00 00 00 00 mov 0x0,%eax 4e: c1 e0 02 shl $0x2,%eax 51: 29 c8 sub %ecx,%eax 53: a3 10 00 00 00 mov %eax,0x10 58: c1 e9 04 shr $0x4,%ecx 5b: 89 0d 00 00 00 00 mov %ecx,0x0 61: b0 01 mov $0x1,%al 63: ee out %al,(%dx) 64: b4 02 mov $0x2,%ah 66: 56 push %esi 67: 57 push %edi 68: 8b 0d 00 00 00 00 mov 0x0,%ecx 6e: 8a 7e 0c mov 0xc(%esi),%bh 71: 8a 5e 08 mov 0x8(%esi),%bl 74: c1 e3 10 shl $0x10,%ebx 77: 8a 7e 04 mov 0x4(%esi),%bh 7a: 8a 1e mov (%esi),%bl 7c: 89 1f mov %ebx,(%edi) 7e: 83 c6 10 add $0x10,%esi 81: 83 c7 04 add $0x4,%edi 84: 49 dec %ecx 85: 75 e7 jne 6e <_VGA_UpdatePlanarScreen+0x6e> 87: 03 3d 10 00 00 00 add 0x10,%edi 8d: 03 35 0c 00 00 00 add 0xc,%esi 93: fe cc dec %ah 95: 75 d1 jne 68 <_VGA_UpdatePlanarScreen+0x68> 97: 5f pop %edi 98: 5e pop %esi 99: 46 inc %esi 9a: d0 e0 shl %al 9c: 3c 10 cmp $0x10,%al 9e: 75 c3 jne 63 <_VGA_UpdatePlanarScreen+0x63> a0: 83 ee 04 sub $0x4,%esi a3: 03 35 04 00 00 00 add 0x4,%esi a9: 03 3d 08 00 00 00 add 0x8,%edi af: 4d dec %ebp b0: 75 af jne 61 <_VGA_UpdatePlanarScreen+0x61> b2: 5b pop %ebx b3: 5e pop %esi b4: 5f pop %edi b5: 5d pop %ebp b6: c3 ret 000000b7 <_VGA_UpdateLinearScreen>: b7: 55 push %ebp b8: 57 push %edi b9: 56 push %esi ba: 53 push %ebx bb: fc cld bc: 8b 74 24 14 mov 0x14(%esp),%esi c0: 8b 7c 24 18 mov 0x18(%esp),%edi c4: 8b 5c 24 1c mov 0x1c(%esp),%ebx c8: 8b 44 24 24 mov 0x24(%esp),%eax cc: 29 d8 sub %ebx,%eax ce: 8b 54 24 28 mov 0x28(%esp),%edx d2: 29 da sub %ebx,%edx d4: c1 eb 02 shr $0x2,%ebx d7: 8b 6c 24 20 mov 0x20(%esp),%ebp db: 89 d9 mov %ebx,%ecx dd: f3 a5 rep movsl %ds:(%esi),%es:(%edi) <-- the line of interest!!! df: 01 c6 add %eax,%esi e1: 01 d7 add %edx,%edi e3: 4d dec %ebp e4: 75 f5 jne db <_VGA_UpdateLinearScreen+0x24> e6: 5b pop %ebx e7: 5e pop %esi e8: 5f pop %edi e9: 5d pop %ebp ea: c3 ret eb: 90 nop ec: 90 nop ed: 90 nop ee: 90 nop ef: 90 nop