From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,344332f209947007 X-Google-Attributes: gid103376,public From: Corey Minyard Subject: Re: Gnat Executable Size Date: 1998/10/11 Message-ID: #1/1 X-Deja-AN: 400007171 Sender: minyard@wf-rch.cirr.com References: <6volj0$250$1@uuneo.neosoft.com> <362091CF.594AA72D@icon.fi> Organization: Wonderforce Research Reply-To: minyard@acm.org Newsgroups: comp.lang.ada Date: 1998-10-11T00:00:00+00:00 List-Id: Niklas Holsti writes: > Robert B. Love wrote: > > > > Over in the Modula-2 newsgroup somebody was asking about free compilers. > > Another person pointed out GNAT as suitable for his task and free. > > Ada vs. M2 wasn't the issue. The original poster said he'd tried GNAT > > on a simple "hello world" program and was surprised to see a 200K > > executable. Others said their favorite M2 compiler yielded about 10K > > executables for this. > > > > I tried a simple Put_Line program myself with GNAT under Linux and > > got an 84K program. I've played with Pragma Optimze(Space) and > > Pragma Supress (All_Checks) but it stays about 84K. > > > > I then run strip on the GNAT generated executable and get it down to > > about 47K. > > > > How small can GNAT get "Hello World"? What compiler options and pragmas > > would you use for this? > > On my i486 Slackware Linux 2.0.0, GNAT 3.05 generates an executable > for Put_Line("Hello world!") of 22842 bytes (not stripped) or 10400 > bytes (stripped). Compiler options were "-c -g". Seems comparable > to the M2 sizes. Source code below. > With 3.11b I get 57832 after stripping no matter how I compile it (optimiation at any level, with or without runtime checks) on my Linux box. Which makes sense because there's nothing to check or optimize. This seems like a silly thing to be worried about. All it measures is the efficiency of including a minimal set of I/O libraries for a minimal program. Note that the .o files for a C and Ada version of "Hello World" are within 16 bytes in size for gcc and gnat, and about that difference in actual executable code and data. -- Corey Minyard Internet: minyard@acm.org Work: minyard@nortel.ca UUCP: minyard@wf-rch.cirr.com