delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1999/07/29/13:32:43

Message-Id: <199907291322.NAA47148@out4.ibm.net>
From: "Mark E." <snowball3 AT bigfoot DOT com>
To: djgpp-workers AT delorie DOT com, binutils AT sourceware DOT cygnus DOT com
Date: Thu, 29 Jul 1999 09:23:19 -0400
MIME-Version: 1.0
Subject: Re: Another script for building binutils
In-reply-to: <19990729020624.1145.qmail@daffy.airs.com>
References: <199907290027 DOT AAA82496 AT out5 DOT ibm DOT net> (snowball3 AT bigfoot DOT com)
X-mailer: Pegasus Mail for Win32 (v3.11)
Reply-To: djgpp-workers AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> Run objdump -xs on both files, and see what changed.
> 

I have the results with objdump --xs. First, my sample C program: 

int fox(int x) {   return x + 1; } 

int main() {   fox(1);   fox(2);   fox(3); 

  return 0; } 

Here is main.s compiled with 'gcc -g main.c': 

	.file	"main.c" gcc2_compiled.: ___gnu_compiled_c: .text 	.p2align 2 
	.def	_fox;	.val	_fox;	.scl	2;	.type	044;	.endef .globl _fox 
_fox: 	.def	.bf;	.val	.;	.scl	101;	.line	2;	.endef 	.def	_x;	
.val	8;	.scl	9;	.type	04;	.endef 	pushl %ebp 	movl %esp,%ebp 	
.ln	2 	movl 8(%ebp),%edx 
	incl %edx 	movl %edx,%eax 	jmp L1 	.ln	3 
	.p2align 2 L1: 	movl %ebp,%esp 
	popl %ebp 	ret 
	.def	.ef;	.val	.;	.scl	101;	.line	3;	.endef 
	.def	_fox;	.val	.;	.scl	-1;	.endef 
	.p2align 2 
	.def	_main;	.val	_main;	.scl	2;	.type	044;	.endef 
.globl _main 
_main: 
	.def	.bf;	.val	.;	.scl	101;	.line	7;	.endef 
	pushl %ebp 
	movl %esp,%ebp 
	.ln	2 
	pushl $1 
	call _fox 
	addl $4,%esp 
	.ln	3 
	pushl $2 
	call _fox 
	addl $4,%esp 
	.ln	4 
	pushl $3 
	call _fox 
	addl $4,%esp 
	.ln	6 
	xorl %eax,%eax 
	jmp L2 
	.ln	7 
	.p2align 2 
L2: 
	movl %ebp,%esp 
	popl %ebp 
	ret 
	.def	.ef;	.val	.;	.scl	101;	.line	7;	.endef 
	.def	_main;	.val	.;	.scl	-1;	.endef 


Now here is the difference between the two objdumps. The most substantial 
differences appear to at [4] and [11]. 


--- out1.txt	Thu Jul 29 09:10:16 1999 
+++ out2.txt	Thu Jul 29 09:10:20 1999 
@@ -1,17 +1,17 @@ 
 
-main.o:     file format coff-go32 
-main.o 
-architecture: i386, flags 0x00000035: 
-HAS_RELOC, HAS_LINENO, HAS_SYMS, HAS_LOCALS 
+main2.o:     file format coff-go32 
+main2.o 
+architecture: i386, flags 0x00000034: 
+HAS_LINENO, HAS_SYMS, HAS_LOCALS 
 start address 0x00000000 
 
 Sections: 
 Idx Name          Size      VMA       LMA       File off  Algn 
   0 .text         0000003c  00000000  00000000  0000008c  2**2 
                   CONTENTS, ALLOC, LOAD, CODE 
-  1 .data         00000000  0000003c  0000003c  00000000  2**2 
+  1 .data         00000000  00000000  00000000  00000000  2**2 
                   ALLOC, LOAD, DATA 
-  2 .bss          00000000  0000003c  0000003c  00000000  2**2 
+  2 .bss          00000000  00000000  00000000  00000000  2**2 
                   ALLOC 
 SYMBOL TABLE: 
 [  0](sec -2)(fl 0x00)(ty   0)(scl 103) (nx 1) 0x00000000 main.c 
@@ -19,17 +19,17 @@ 
 [  2](sec  1)(fl 0x00)(ty   0)(scl   6) (nx 0) 0x00000000 gcc2_compiled. 
 [  3](sec  1)(fl 0x00)(ty   0)(scl   6) (nx 0) 0x00000000 ___gnu_compiled_c 
 [  4](sec  1)(fl 0x00)(ty  24)(scl   2) (nx 1) 0x00000000 _fox 
-AUX lnno 16 size 0x0 tagndx 0 endndx 11 
+AUX lnno 16 size 0x0 tagndx 0 
 _fox : 
    2 : 0x3 
    3 : 0xb 
 [  6](sec  1)(fl 0x00)(ty   0)(scl 101) (nx 1) 0x00000000 .bf 
 AUX lnno 2 size 0x0 tagndx 0 endndx 13 
-[  8](sec -1)(fl 0x00)(ty   4)(scl   9) (nx 0) 0x00000008 _x 
+[  8](sec -2)(fl 0x00)(ty   4)(scl   9) (nx 0) 0x00000008 _x 
 [  9](sec  1)(fl 0x00)(ty   0)(scl 101) (nx 1) 0x00000010 .ef 
-AUX lnno 3 size 0x0 tagndx 0 
+AUX lnno 2 size 0x0 tagndx 0 
 [ 11](sec  1)(fl 0x00)(ty  24)(scl   2) (nx 1) 0x00000010 _main 
-AUX lnno 44 size 0x0 tagndx 0 endndx 17 
+AUX lnno 44 size 0x0 tagndx 0 
 _main : 
    2 : 0x13 
    3 : 0x1d 
@@ -42,9 +42,9 @@ 
 AUX lnno 7 size 0x0 tagndx 0 
 [ 17](sec  1)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .text 
 AUX scnlen 0x3c nreloc 0 nlnno 9 
-[ 19](sec  2)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x0000003c .data 
+[ 19](sec  2)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .data 
 AUX scnlen 0x0 nreloc 0 nlnno 0 
-[ 21](sec  3)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x0000003c .bss 
+[ 21](sec  3)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .bss 
 AUX scnlen 0x0 nreloc 0 nlnno 0 
 
 
Here's the two objdumps: 


First the older one... 


main.o:     file format coff-go32 
main.o 
architecture: i386, flags 0x00000035: 
HAS_RELOC, HAS_LINENO, HAS_SYMS, HAS_LOCALS 
start address 0x00000000 


Sections: 
Idx Name          Size      VMA       LMA       File off  Algn 
  0 .text         0000003c  00000000  00000000  0000008c  2**2 
                  CONTENTS, ALLOC, LOAD, CODE 
  1 .data         00000000  0000003c  0000003c  00000000  2**2 
                  ALLOC, LOAD, DATA 
  2 .bss          00000000  0000003c  0000003c  00000000  2**2 
                  ALLOC 
SYMBOL TABLE: 
[  0](sec -2)(fl 0x00)(ty   0)(scl 103) (nx 1) 0x00000000 main.c 
File 
[  2](sec  1)(fl 0x00)(ty   0)(scl   6) (nx 0) 0x00000000 gcc2_compiled. 
[  3](sec  1)(fl 0x00)(ty   0)(scl   6) (nx 0) 0x00000000 ___gnu_compiled_c 
[  4](sec  1)(fl 0x00)(ty  24)(scl   2) (nx 1) 0x00000000 _fox 
AUX lnno 16 size 0x0 tagndx 0 endndx 11 
_fox : 
   2 : 0x3 
   3 : 0xb 
[  6](sec  1)(fl 0x00)(ty   0)(scl 101) (nx 1) 0x00000000 .bf 
AUX lnno 2 size 0x0 tagndx 0 endndx 13 
[  8](sec -1)(fl 0x00)(ty   4)(scl   9) (nx 0) 0x00000008 _x 
[  9](sec  1)(fl 0x00)(ty   0)(scl 101) (nx 1) 0x00000010 .ef 
AUX lnno 3 size 0x0 tagndx 0 
[ 11](sec  1)(fl 0x00)(ty  24)(scl   2) (nx 1) 0x00000010 _main 
AUX lnno 44 size 0x0 tagndx 0 endndx 17 
_main : 
   2 : 0x13 
   3 : 0x1d 
   4 : 0x27 
   6 : 0x31 
   7 : 0x35 
[ 13](sec  1)(fl 0x00)(ty   0)(scl 101) (nx 1) 0x00000010 .bf 
AUX lnno 7 size 0x0 tagndx 0 
[ 15](sec  1)(fl 0x00)(ty   0)(scl 101) (nx 1) 0x0000003c .ef 
AUX lnno 7 size 0x0 tagndx 0 
[ 17](sec  1)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .text 
AUX scnlen 0x3c nreloc 0 nlnno 9 
[ 19](sec  2)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x0000003c .data 
AUX scnlen 0x0 nreloc 0 nlnno 0 
[ 21](sec  3)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x0000003c .bss 
AUX scnlen 0x0 nreloc 0 nlnno 0 



Contents of section .text: 
 0000 5589e58b 55084289 d0eb0190 89ec5dc3  U...U.B.......]. 
 0010 5589e56a 01e8e6ff ffff83c4 046a02e8  U..j.........j.. 
 0020 dcffffff 83c4046a 03e8d2ff ffff83c4  .......j........ 
 0030 0431c0eb 038d7600 89ec5dc3           .1....v...].    


and the newer one which causes problems... 


main2.o:     file format coff-go32 
main2.o 
architecture: i386, flags 0x00000034: 
HAS_LINENO, HAS_SYMS, HAS_LOCALS 
start address 0x00000000 


Sections: 
Idx Name          Size      VMA       LMA       File off  Algn 
  0 .text         0000003c  00000000  00000000  0000008c  2**2 
                  CONTENTS, ALLOC, LOAD, CODE 
  1 .data         00000000  00000000  00000000  00000000  2**2 
                  ALLOC, LOAD, DATA 
  2 .bss          00000000  00000000  00000000  00000000  2**2 
                  ALLOC 
SYMBOL TABLE: 
[  0](sec -2)(fl 0x00)(ty   0)(scl 103) (nx 1) 0x00000000 main.c 
File 
[  2](sec  1)(fl 0x00)(ty   0)(scl   6) (nx 0) 0x00000000 gcc2_compiled. 
[  3](sec  1)(fl 0x00)(ty   0)(scl   6) (nx 0) 0x00000000 ___gnu_compiled_c 
[  4](sec  1)(fl 0x00)(ty  24)(scl   2) (nx 1) 0x00000000 _fox 
AUX lnno 16 size 0x0 tagndx 0 
_fox : 
   2 : 0x3 
   3 : 0xb 
[  6](sec  1)(fl 0x00)(ty   0)(scl 101) (nx 1) 0x00000000 .bf 
AUX lnno 2 size 0x0 tagndx 0 endndx 13 
[  8](sec -2)(fl 0x00)(ty   4)(scl   9) (nx 0) 0x00000008 _x 
[  9](sec  1)(fl 0x00)(ty   0)(scl 101) (nx 1) 0x00000010 .ef 
AUX lnno 2 size 0x0 tagndx 0 
[ 11](sec  1)(fl 0x00)(ty  24)(scl   2) (nx 1) 0x00000010 _main 
AUX lnno 44 size 0x0 tagndx 0 
_main : 
   2 : 0x13 
   3 : 0x1d 
   4 : 0x27 
   6 : 0x31 
   7 : 0x35 
[ 13](sec  1)(fl 0x00)(ty   0)(scl 101) (nx 1) 0x00000010 .bf 
AUX lnno 7 size 0x0 tagndx 0 
[ 15](sec  1)(fl 0x00)(ty   0)(scl 101) (nx 1) 0x0000003c .ef 
AUX lnno 7 size 0x0 tagndx 0 
[ 17](sec  1)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .text 
AUX scnlen 0x3c nreloc 0 nlnno 9 
[ 19](sec  2)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .data 
AUX scnlen 0x0 nreloc 0 nlnno 0 
[ 21](sec  3)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .bss 
AUX scnlen 0x0 nreloc 0 nlnno 0 



Contents of section .text: 
 0000 5589e58b 55084289 d0eb0190 89ec5dc3  U...U.B.......]. 
 0010 5589e56a 01e8e6ff ffff83c4 046a02e8  U..j.........j.. 
 0020 dcffffff 83c4046a 03e8d2ff ffff83c4  .......j........ 
 0030 0431c0eb 038d7600 89ec5dc3           .1....v...].    


--- 
Mark Elbrecht, snowball3 AT bigfoot DOT com
http://snowball.frogspace.net/

- Raw text -


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