delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2016/02/19/12:13:10

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]" <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.
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:
       <http://www.delorie.com/archives/browse.cgi?p=djgpp/2016/02/15/08:30:06>
     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 <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>


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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019