Article View: comp.lang.modula2
Article #4182Re: Re: Modula2's godawful IO.
From: Andy Valencia
Date: Thu, 14 Apr 1988 16:35
Date: Thu, 14 Apr 1988 16:35
244 lines
13284 bytes
13284 bytes
>/ hpindda:comp.lang.modula2 / mike@turing.UNM.EDU (Michael I. Bushnell) / 1:18 pm Apr 12, 1988 /
>In article <730@mhuxm.UUCP> gak@mhuxm.UUCP (Vincent Hatem) writes:
>
>On 4.3 BSD on a Vax, I get the following:
>
>% size doprnt.o
>text data bss dec hex
>2196 36 0 2232 8b8
>
>% size printf.o
>text data bss dec hex
>40 36 0 76 4c
This isn't quite the whole picture; printf() is part of the
buffered I/O system, and so quite a bit of junk has to come
in with it. What follows shows what comes in on an HP-9000/850
(and perhaps proves that compiler people should be kept
on a short leash :->). Here's the poison:
-----------------------------------------------------
Script started on Thu Apr 14 09:28:14 1988
$ cat yow.c
main(){
printf("Hello, world\n");
}
$ cc -O -o yow yow.c
$ size yow
15844 + 3720 + 2604 = 22168
$ nm yow
Symbols from yow:
Name Value Scope Type Subspace
$global$ |1073741824|extern|data |$GLOBAL$
$START$ | 4523|extern|priprog|$CODE$
$dp$ |1073741824|extern|data |$GLOBAL$
$ARGV |1073745536|extern|data |$PFA_COUNTER$
$START_RTN$ | 4568|static|code |$CODE$
$UNWIND_START | 17144|extern|code |$UNWIND_START$
$UNWIND_END | 17896|extern|code |$UNWIND_END$
$RECOVER_START | 17896|extern|code |$RECOVER_START$
$RECOVER_END | 17896|extern|code |$RECOVER_END$
$PFA_C_START |1073745544|extern|data |$PFA_COUNTER$
$PFA_C_END |1073745544|extern|data |$PFA_COUNTER_END$
_mcount | 4575|extern|entry |$CODE$
$THISMODULE$ |1073741824|static|data |$DATA$
main | 4587|extern|entry |$CODE$
$THISMODULE$ |1073741840|static|data |$DATA$
printf | 4619|extern|entry |$CODE$
$THISMODULE$ |1073741840|static|data |$DATA$
environ |1073746576|extern|data |$BSS$
_start | 4739|extern|entry |$CODE$
$THISMODULE$ |1073741840|static|data |$DATA$
exit | 4779|extern|entry |$CODE$
$THISMODULE$ |1073741840|static|data |$DATA$
_iob |1073741848|extern|data |$DATA$ <- Buffering system
_smbuf |1073746584|extern|data |$BSS$
_bufendtab |1073742808|extern|data |$DATA$
_sibuf |1073747112|extern|data |$BSS$
_sobuf |1073745544|extern|data |$BSS$
_stdbuf |1073743052|extern|data |$DATA$
_lastbuf |1073741840|extern|data |$DATA$
$THISMODULE$ |1073743064|static|data |$DATA$
_lowdigit | 4819|static|entry |$CODE$
_dowrite | 4871|static|entry |$CODE$
_doprnt | 5043|extern|entry |$CODE$
$THISMODULE$ |1073743200|static|data |$DATA$
errno |1073748144|extern|data |$BSS$
_cleanup | 9819|extern|entry |$CODE$
fclose | 10087|extern|entry |$CODE$
_exitcu | 9895|extern|entry |$CODE$
fflush | 10263|extern|entry |$CODE$
_xflsbuf | 10903|extern|entry |$CODE$
_flsbuf | 10415|extern|entry |$CODE$
_wrtchk | 11127|extern|entry |$CODE$
_bufsync | 11707|extern|entry |$CODE$
_findbuf | 11339|extern|entry |$CODE$
$$divide_by_constant| 2051|extern|milli |$MILLICODE$ <- RISC divides
$$divI_2 | 2051|extern|milli |$MILLICODE$ are nasty!
$$divI_4 | 2067|extern|milli |$MILLICODE$
$$divI_8 | 2083|extern|milli |$MILLICODE$
$$divI_16 | 2099|extern|milli |$MILLICODE$
$$divI_3 | 2115|extern|milli |$MILLICODE$
$neg3 | 2136|static|code |$MILLICODE$
$pos | 2336|static|code |$MILLICODE$
$neg | 2420|static|code |$MILLICODE$
$$divU_3 | 2159|extern|milli |$MILLICODE$
$$divI_5 | 2183|extern|milli |$MILLICODE$
$neg5 | 2200|static|code |$MILLICODE$
$$divU_5 | 2227|extern|milli |$MILLICODE$
$$divI_6 | 2251|extern|milli |$MILLICODE$
$neg6 | 2272|static|code |$MILLICODE$
$$divU_6 | 2299|extern|milli |$MILLICODE$
$$divU_10 | 2323|extern|milli |$MILLICODE$
$pos_for_17 | 2352|static|code |$MILLICODE$
$$divI_10 | 2391|extern|milli |$MILLICODE$
$neg10 | 2408|static|code |$MILLICODE$
$neg_for_17 | 2436|static|code |$MILLICODE$
$$divI_12 | 2479|extern|milli |$MILLICODE$
$neg12 | 2496|static|code |$MILLICODE$
$$divU_12 | 2515|extern|milli |$MILLICODE$
$$divI_15 | 2535|extern|milli |$MILLICODE$
$neg15 | 2548|static|code |$MILLICODE$
$$divU_15 | 2559|extern|milli |$MILLICODE$
$$divI_17 | 2571|extern|milli |$MILLICODE$
$neg17 | 2596|static|code |$MILLICODE$
$$divU_17 | 2623|extern|milli |$MILLICODE$
$u17 | 2632|static|code |$MILLICODE$
$$divI_7 | 2651|extern|milli |$MILLICODE$
$neg7 | 2728|static|code |$MILLICODE$
$7 | 2652|static|code |$MILLICODE$
$pos7 | 2668|static|code |$MILLICODE$
$1 | 2708|static|code |$MILLICODE$
$2 | 2720|static|code |$MILLICODE$
$8 | 2732|static|code |$MILLICODE$
$neg7_shift | 2744|static|code |$MILLICODE$
$3 | 2784|static|code |$MILLICODE$
$4 | 2800|static|code |$MILLICODE$
$$divU_7 | 2811|extern|milli |$MILLICODE$
$$divI_9 | 2835|extern|milli |$MILLICODE$
$neg9 | 2860|static|code |$MILLICODE$
$$divU_9 | 2887|extern|milli |$MILLICODE$
$$divI_14 | 2915|extern|milli |$MILLICODE$
$neg14 | 2924|static|code |$MILLICODE$
$$divU_14 | 2919|extern|milli |$MILLICODE$
$$remI | 2939|extern|milli |$MILLICODE$
t1 | 2972|static|code |$MILLICODE$
finish | 3236|static|code |$MILLICODE$
$THISMODULE$ |1073743200|static|data |$DATA$
__ctype |1073743200|extern|data |$DATA$
_ctype |1073743216|extern|data |$DATA$
_ectype |1073743204|extern|data |$DATA$
_1kanji |1073743208|extern|data |$DATA$
_2kanji |1073743212|extern|data |$DATA$
$THISMODULE$ |1073744248|static|data |$DATA$
ecvt | 11763|extern|entry |$CODE$
cvt | 11839|static|entry |$CODE$
fcvt | 11803|extern|entry |$CODE$
mult32 | 14043|static|entry |$CODE$
$THISMODULE$ |1073745256|static|data |$DATA$
isatty | 14691|extern|entry |$CODE$
$THISMODULE$ |1073745256|static|data |$DATA$
malloc | 14739|extern|entry |$CODE$ <- Allocates for
free | 15439|extern|entry |$CODE$ buffered I/O
realloc | 15491|extern|entry |$CODE$
memcpy | 15699|extern|entry |$CODE$
byteloop | 15952|static|code |$CODE$
done | 15968|static|code |$CODE$
not_aligned | 15800|static|code |$CODE$
chekchunk | 15764|static|code |$CODE$
chunks | 15728|static|code |$CODE$
back_porch | 15780|static|code |$CODE$
subchunk | 15768|static|code |$CODE$
chkchnk2 | 15876|static|code |$CODE$
chunk2 | 15820|static|code |$CODE$
bp_0 | 15912|static|code |$CODE$
subchnk2 | 15880|static|code |$CODE$
bp_1 | 15916|static|code |$CODE$
encore | 15956|static|code |$CODE$
$THISMODULE$ |1073745288|static|data |$DATA$
_nl_name |1073745352|extern|data |$DATA$ <- For native language
_nl_langid |1073745288|extern|data |$DATA$
_nl_radix |1073745292|extern|data |$DATA$
_sh_low |1073745296|extern|data |$DATA$
_sh_high |1073745300|extern|data |$DATA$
_nl_char_size |1073745304|extern|data |$DATA$
_nl_direct |1073745308|extern|data |$DATA$
_nl_dgt_alt |1073745368|extern|data |$DATA$
_nl_dascii |1073745404|extern|data |$DATA$
_nl_punct_alt |1073745424|extern|data |$DATA$
_nl_pascii |1073745492|extern|data |$DATA$
_nl_space_alt |1073745312|extern|data |$DATA$
_nl_mode |1073745316|extern|data |$DATA$
_nl_order |1073745320|extern|data |$DATA$
_nl_outdigit |1073745324|extern|data |$DATA$
_nl_era |1073747072|extern|data |$BSS$
_seqtab |1073745328|extern|data |$DATA$
_pritab |1073745332|extern|data |$DATA$
_tab21 |1073745336|extern|data |$DATA$
_tab12 |1073745340|extern|data |$DATA$
_chrtab |1073745344|extern|data |$DATA$
strlen | 15979|extern|entry |$CODE$
$null_ptr | 16068|static|code |$CODE$
$not_aligned | 16000|static|code |$CODE$
$loop | 16020|static|code |$CODE$
$end_loop | 16036|static|code |$CODE$
$out | 16060|static|code |$CODE$
$THISMODULE$ |1073745528|static|data |$DATA$
fwrite | 16075|extern|entry |$CODE$
close | 16691|extern|entry |$CODE$
fstat | 16723|extern|entry |$CODE$
write | 16755|extern|entry |$CODE$
$THISMODULE$ |1073745528|static|data |$DATA$
_exit | 16787|extern|entry |$CODE$
$$divI | 3259|extern|milli |$MILLICODE$
$$divoI | 3255|extern|milli |$MILLICODE$
negative1 | 3688|static|code |$MILLICODE$
small_divisor | 3552|static|code |$MILLICODE$
normal | 3264|static|code |$MILLICODE$
$$divU | 3703|extern|milli |$MILLICODE$
special_divisor | 3976|static|code |$MILLICODE$
normal | 3712|static|code |$MILLICODE$
big_divisor | 4112|static|code |$MILLICODE$
zero_divisor | 3984|static|code |$MILLICODE$
$neg2 | 4124|static|code |$MILLICODE$
$loop | 4168|static|code |$MILLICODE$
$$mulI | 4147|extern|milli |$MILLICODE$
$check | 4164|static|code |$MILLICODE$
$return | 4324|static|code |$MILLICODE$
$shmcand | 4316|static|code |$MILLICODE$
$addtmp | 4312|static|code |$MILLICODE$
$two | 4196|static|code |$MILLICODE$
$endloop | 4308|static|code |$MILLICODE$
$fiftnx | 4304|static|code |$MILLICODE$
$$mulU | 4335|extern|milli |$MILLICODE$
$loop | 4352|static|code |$MILLICODE$
$return | 4508|static|code |$MILLICODE$
$shmcand | 4500|static|code |$MILLICODE$
$addtmp | 4496|static|code |$MILLICODE$
$two | 4380|static|code |$MILLICODE$
$endloop | 4492|static|code |$MILLICODE$
$fiftnx | 4488|static|code |$MILLICODE$
memchr | 16819|extern|entry |$CODE$
memchrexit | 16852|static|code |$CODE$
memchrloop | 16832|static|code |$CODE$
memchrequal | 16848|static|code |$CODE$
__exit | 16867|extern|entry |$CODE$
errnet |1073746580|extern|data |$BSS$
$cerror | 16907|extern|entry |$CODE$
return | 16928|static|code |$CODE$
ioctl | 16947|extern|entry |$CODE$
$THISMODULE$ |1073745528|static|data |$DATA$
end |1073748148|extern|data |$BSS$
_minbrk |1073745528|extern|data |$DATA$ <- malloc() uses
_curbrk |1073745532|extern|data |$DATA$
brk | 16979|extern|entry |$CODE$
$THISMODULE$ |1073745536|static|data |$DATA$
sbrk | 17067|extern|entry |$CODE$
_brk | 17115|extern|entry |$CODE$
$ exit
script done on Thu Apr 14 09:30:10 1988
Technical Details
Message-ID:
<3700001@hpindda.HP.COM>Path:
arc1-ca.pugleaf.net!utzoo!mnetor!uunet!husc6!bloom-beacon!oberon!sdcrdcf!hplabs!hpda!hpcupt1!hpcuhb!hpindda!vandysReferences:
<96@lzaz.ATT.COM>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!husc6!bloom-beacon!oberon!sdcrdcf!hplabs!hpda!hpcupt1!hpcuhb!hpindda!vandys From: vandys@hpindda.HP.COM (Andy Valencia) Newsgroups: comp.lang.modula2 Subject: Re: Re: Modula2's godawful IO. Message-ID: <3700001@hpindda.HP.COM> Date: 14 Apr 88 16:35:38 GMT References: <96@lzaz.ATT.COM> Organization: HP Technical Networks, Cupertino, Calif. Lines: 244