From owner-FreeBSD-users-jp@jp.freebsd.org  Thu Feb  5 03:24:33 1998
Received: by jaz.jp.freebsd.org (8.8.8+3.0Wbeta7/8.7.3) id DAA18039
	Thu, 5 Feb 1998 03:24:33 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.8+3.0Wbeta7/8.7.3) with ESMTP id DAA18002
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 5 Feb 1998 03:24:20 +0900 (JST)
Received: (from shimizu@localhost)
	by psun0.phys.kyushu-u.ac.jp (8.8.7/3.6Wbeta7) id DAA21803;
	Thu, 5 Feb 1998 03:24:18 +0900 (JST)
Date: Thu, 5 Feb 1998 03:24:18 +0900 (JST)
Message-Id: <199802041824.DAA21803@psun0.phys.kyushu-u.ac.jp>
To: FreeBSD-users-jp@jp.freebsd.org
Cc: shimizu@phys.kyushu-u.ac.jp
In-Reply-To: Your message of "Wed, 04 Feb 1998 08:21:07 +0900".
	<Lucky.199802032321.IAA01511.Lucky>
From: shimizu@phys.kyushu-u.ac.jp (Yoshifumi R. Shimizu)
X-Mailer: mnews [version 1.20] 1996-12/08(Sun)
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=24]
X-Sequence: FreeBSD-users-jp 24208
Subject: [FreeBSD-users-jp 24208] Re: Mystery of __main.o in libgcc.a
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org

$@!!2?EY$b$9$_$^$;$s!"@6?e!w6eBgM}J*M}$G$9!#(J

Shiba $@$5$s!"(J
>R. S>  static int initialized;   $@$NItJ,$r(J    static int initialized = 0;
>
>$@>\:Y$O$o$+$j$^$;$s$,!"(Jbss segment$@$K$*$+$l$k$H$+!"(Jdata segment$@$K(J
>$@$*$+$l$k$+!"$H$+8@$&OC$G$9$+(J?$@$=$3$G!"(Jalignment$@$,1>!9(J?

$@$=$NDL$j$N$h$&$G$9!#(Jassembler $@$N%=!<%9$rMn$7$F$_$^$7$?!J$3$N4V<B83$7$F(J
$@$$$k;~$O$3$l$rK:$l$F$$$?!*!K!#LdBj$NFs$D$N%=!<%9$G$N0c$$$O!"(J

*** __main.s205	Wed Feb  4 23:39:07 1998
--- __main.s225	Wed Feb  4 23:37:37 1998
***************
*** 69,81 ****
  	ret
  Lfe2:
  	.size	 ___do_global_ctors,Lfe2-___do_global_ctors
! .data
! 	.align 2
! 	.type	 _initialized.6,@object
! 	.size	 _initialized.6,4
! _initialized.6:
! 	.long 0
! .text
  	.align 2
  .globl ___main
  	.type	 ___main,@function
--- 69,75 ----
  	ret
  Lfe2:
  	.size	 ___do_global_ctors,Lfe2-___do_global_ctors
! .lcomm _initialized.6,4
  	.align 2
  .globl ___main
  	.type	 ___main,@function

$@3N$+$K(J static int initialized $@$r$I$N%;%0%a%s%H$KCV$/$+$,0c$&$h$&$G$9$M!#(J
$@$?$@!"(Jint $@$O(J 4byte $@$J$N$G(J alignment $@$K:9$,=P$k$N$,$b$&0l$DM}2r$G$-$J$$(J
$@$N$G$9$,!JL5CN$r$5$i$1$@$9$h$&$G62=L$G$9!K!#(J

$@!!$H!"$3$3$^$G=q$$$F(J .align 2 $@$H$$$&$N$O(J 2byte boudary $@$H$$$&$3$H$@$H5$$E(J
$@$-$^$7$?!#;d$N0l$DA0$K=q$$$?%a!<%k(J[#24189]$@$G$O2?$N0UL#$b$J$$JV;v$r=q$$$F(J
$@$7$^$C$?$3$H$K$J$j$^$9!"$9$$$^$;$s!d(JShiba $@$5$s!#$D$^$j!"(J

>Shiba $@$5$s!"(J
>>$@$b$C$H!"(Jswitch$@$rN)$F$F$_$k$H$+(J
>>
>>ex.
>>-malign-double -malign-functions=4 -malign-loops=4
>>-malign-jumps=4
>
>$@$G$9$,!"$&$A$+$o(J $@$5$s$b$*$C$7$c$i$l$F$$$^$9$,!";d$NNc$G$d$C$F$_$^$7$?$,(J
>$@A4A3JQ2=$J$7$G$9!#(J

$@$G$9$,!"(J__main.o $@$r(J link $@$7$F$$$?$N$G$=$N:9$O$G$J$$$N$OEvA3$G(J
__main.c $@$r(J compile $@$7D>$5$J$$$H$$$1$J$$$N$G$7$?!"$G$d$C$F$_$^$7$?!#(J
$@7k2L$O$b$A$m$sJQ2=$"$j$G!"Nc$($P!"(J__main225.c $@$NJ}$G$O(J -malign-...
$@$N(J options $@$r$D$1$k$+$I$&$+$G!"(J

15c15
<   .align 2,0x90
---
>   .align 4,0x90
36c36
<   .align 2
---
>   .align 4
72,73c72,73
< .lcomm _initialized.6,4
<   .align 2
---
> .lcomm _initialized.6,8
>   .align 4

$@$N$h$&$J46$8$GJQ$o$j$^$9!#$G!"$3$N(J 4byte boundary alignment $@$N(J options
$@$r$D$1$F(J compile $@$7D>$7$?$b$N$r(J __main.ox $@$H$7$F!":G=i$N%a!<%k(J[#24157]
$@$G$N(J 2$@HVL\$N(J program $@$NNc$r$b$&0lEY$d$C$F$_$k$H!"(J

$ g77 -O3 -o cws-205 cws.f libcws.a /usr/tmp/205/__main.o  <--$@0JA0$HF1$8(J
$ g77 -O3 -o cws-225 cws.f libcws.a /usr/tmp/225/__main.o  <--$@0JA0$HF1$8(J
$ g77 -O3 -o cws-205x cws.f libcws.a /usr/tmp/205/__main.ox
$ g77 -O3 -o cws-225x cws.f libcws.a /usr/tmp/225/__main.ox
$ time ./cws-205 < cws.inp >AA-205
./cws-205 < cws.inp > AA-205  13.83s user 0.05s system 98% cpu 14.073 total
$ time ./cws-225 < cws.inp >AA-225 
./cws-225 < cws.inp > AA-225  6.98s user 0.01s system 98% cpu 7.099 total
$ time ./cws-205x < cws.inp >AA-205x
./cws-205x < cws.inp > AA-205x  16.34s user 0.00s system 99% cpu 16.472 total
$ time ./cws-225x < cws.inp >AA-225x
./cws-225x < cws.inp > AA-225x  16.30s user 0.04s system 99% cpu 16.469 total

$@$N$h$&$K$J$j!"(J4byte $@$G(J align $@$5$;$k$H7k2L$O0lCW$7$^$7$?!#$=$l$K$3$NNc(J
$@$@$H(J 3$@CJ3,$K:9$,$G$k$h$&$G$9!JI,$:$7$b(J 2$@G\$H$$$&$o$1$G$O$J$$!K!#B>$N(J
$@ItJ,$G$N(J alignment $@$N68$$$,=P$F$$$k$H$$$&$3$H$G$9$M!#(J

$@!!$H$$$&$3$H$G!">/$J$/$H$b$3$N(J __main.c in libgcc.a $@$K$D$$$F$O(J

>-malign-double -malign-functions=4 -malign-loops=4
>-malign-jumps=4

$@$H$$$&(J options $@$OM-8z$N$h$&$G$9!#$H$$$&$3$H$O(J gcc (FreeBSD $@$N(J cc)$@$G$O(J
$@ImB0$N(J library $@$G$O(J 4byte boundary $@$G(J align $@$5$l$F$$$J$$$H$$$&$3$H(J
$@$G$9$M!#LdBj$r2r7h$9$k$?$a$K$O$^$:%7%9%F%`$N$9$Y$F$N(J library $@$r(J $@$3$N(J
option $@IU$-$G(J compile $@$7D>$5$J$H$$$1$J$$$o$1$G$9$M!#$&$A$+$o(J $@$5$s(J
$@$N$*$C$7$c$k$h$&$K(J bug $@$,$"$k$N$J$i!"L5BL$G$9$,!#!J:#$O$A$g$C$H$G$-(J
$@$^$;$s!"$b$&>/$72K$K$J$C$?$i$d$C$F$_$k$+$b$7$l$^$;$s$,!#!K(J

$@!!$=$l$H$b$&0l$D$o$+$i$J$$$3$H$,$"$k$N$G$9$,!":G=i$N%a!<%k(J[#24157]$@$G(J
__main.o $@$r(J strip $@$7$?$b$N$r(J link $@$9$k$H!"$^$?!"7k2L$,JQ$o$k$HJs9p(J
$@$7$^$7$?$,!"$3$l$O$I$&$7$F$J$s$G$7$g$&!#(Jstrip $@$H$$$&$N$O(J debug $@>pJs(J
$@$J$I$r<h$j5n$k$@$1$G(J linkage $@$KI,MW$J>pJs$O;D$C$F$$$k$b$s$@$H;W$C$F(J
$@$$$^$7$?$,!"0c$&$N$G$7$g$&$+!#;d$O$$$D$b(J dynamic-link library $@$r(J
$@:n$k;~(J strip $@$b$7$F$7$^$&$N$G$9$,!"$3$l$r$9$k$+$I$&$+$G(J alignment
$@$N>u67$,JQ$o$j$&$k$H$$$&$3$H$G$7$g$&$+!#(J

$@$&$A$+$o(J $@$5$s!"(J
>C$@$G=q$$$?%W%m%0%i%`$G$"$l$P(J static $@JQ?t$r;H$o$J$$!"(Jmalloc $@$r;H$C$FJQ?t(J
>$@NN0h$r3NJ]$9$k$+(J global $@$KJQ?t$r<h$k(J($@$G$bNI$+$C$?$h$&$J5$$,$7$^$9$,(J)$@$H(J
>$@$$$&$h$&$JBP=h$NJ}K!$,$"$k$N$G$9$,!"(Jg77 $@$N>l9g$OD>@\<j$r2C$($K$/$$$N$G(J
>$@$O$J$$$+(J....$@$H$O;W$$$^$9$,;H$C$F$$$J$$$N$G$h$/$o$+$j$^$;$s!#(J

$@$=$&$G$9$M!"(Jfortran $@$G$O$I$&$7$h$&$b$J$$$G$9$M!#3N$+(J static $@$JJQ?t$O(J
$@$+$J$j;H$o$l$k$H;W$$$^$9!#(J

$@!!$^$?!"D9$/$J$C$F$7$^$C$F$I$&$b:Q$_$^$;$s!#(J

$@!!6e=#Bg3XM}3XItJ*M}(J  $@@6?eNIJ8(J
