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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,cb2bc43e6f95a4fe X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-05-29 19:15:14 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!newshub.sdsu.edu!newsfeed2.earthlink.net!newsfeed.earthlink.net!wn14feed!worldnet.att.net!204.127.198.204!attbi_feed4!attbi.com!sccrnsc03.POSTED!not-for-mail From: "Steve" Newsgroups: comp.lang.ada References: Subject: Re: It's been a while... X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Message-ID: NNTP-Posting-Host: 12.211.13.75 X-Complaints-To: abuse@attbi.com X-Trace: sccrnsc03 1054260793 12.211.13.75 (Fri, 30 May 2003 02:13:13 GMT) NNTP-Posting-Date: Fri, 30 May 2003 02:13:13 GMT Organization: AT&T Broadband Date: Fri, 30 May 2003 02:13:13 GMT Xref: archiver1.google.com comp.lang.ada:38029 Date: 2003-05-30T02:13:13+00:00 List-Id: You might try adding: pragma Discard_Names to your source. If you haven't already checked, look for settings in the GNAT User's Guide and the GNAT Reference Manual for hints on how to reduce the size of the executable. It also looks like full exception traceback information is included. You can probably turn that off as well (if you really want to). Steve (The Duck) "Luke A. Guest" wrote in message news:pan.2003.05.29.21.18.46.518854@__n_o_s_p_a_m__abyss2.demon.co.uk______. .. > Hi, > > I learned Ada at University around 1995 and I've been interested in > getting back into it. Now, I have a simple "hello" app and it is huge. > Now, I don't want to have a load of people telling me not to judge Ada on > the size, but I really want to know how to get the app size down. The app > is: > > -rwxr-xr-x 1 laguest users 200492 2003-05-29 22:16 hello > > This is an example program from the sources, compiled with: > > gnatmake -O3 > > and Ihave used "strip" to get rid of the debug symbols, and the app size > is: > > -rwxr-xr-x 1 laguest users 73292 2003-05-29 22:17 hello > > but, if I do this: > > strings hello, I get the following: > > /lib/ld-linux.so.2 > libc.so.6 > strcpy > waitpid > stdout > utime > ungetc > sigemptyset > getenv > getpid > memcpy > setvbuf > readlink > feof > malloc > isatty > __frame_state_for > readdir > fflush > putenv > abort > fprintf > strcat > __deregister_frame_info > fseek > stdin > mktime > ferror > strstr > strncpy > unlink > realloc > _IO_getc > fork > execv > sigaction > fread > symlink > localtime > memset > clearerr > getppid > tcgetattr > ttyname > getcwd > fgetc > sprintf > fclose > scanf > stderr > mkstemp > fputc > localtime_r > fwrite > __xstat > rewind > freopen > __fxstat > fopen > atoi > _IO_putc > fileno > _IO_stdin_used > _exit > gmtime > __libc_start_main > __register_frame_info_table > tcsetattr > __register_frame_info > free > __gnat_handler_installed > __gl_wc_encoding > __dummy > program_error > __gl_unreserve_all_interrupts > gnat_argc > gnat_envp > __gl_exception_tracebacks > __gl_restrictions > __gl_main_priority > __gl_locking_policy > __gl_task_dispatching_policy > system__soft_links__get_machine_state_addr > max_path_len > gnat_argv > __gl_zero_cost_exceptions > __gl_queuing_policy > __gl_time_slice_val > gnat_exit_status > constraint_error > storage_error > __gmon_start__ > GLIBC_2.1 > GLIBC_2.0 > PTRh > j j j jbj > (WVS > ~&V > gfff > gfff > 8C9M > \WVS > (WVS > 0WVS > PRQh > PRQh > PRQh > PRQS > TWVS > gfff > gfff > \WVS > $WVS > 8_t5 > 8_u; > j;h8z > t!VS > t_WV > t*WS > RPh< > RPht > RPh< > RPht > RPh< > RPht > RPh< > RPh< > RPht > RPhL > RPh< > RPht > RPhL > RPh< > RPht > RPhL > RPh< > RPht > RPhL > RPh< > RPht > RPhL > RPh< > RPht > RPh< > RPht > RPh< > RPh< > RPht > RPh< > RPht > RPh< > RPht > RPh< > RPht > 9C0~ > RPh< > RPht > 9P0~ > RPh< > RPht > t29u > RPh< > RPht > 9G,~ > G,PVW > RPht > RPht > 9s0~ > 9s0| > RPhL > RPh< > RPht > RPh< > RPht > 9s,tiS > 9s,~ S > 9s,}% > 9s,| > 9s,u > RPh< > RPht > RPh< > RPht > RPh< > RPht > RPh< > RPht > RPhL > RPh< > RPht > RPhL > RPht > t!VS > t_WV > t*WS > $WVS > WVSj > jGh(} > RPh< > RPh< > RPht > RPh< > RPht > WVS > RPh< > RPh< > RPhL > j8PR > RPh< > RPh< > RPh< > RPht > RPh< > RPht > WVS > jzhd > WVS > $hd > WVS > WVS > $h|1 > $hl5 > j.h% > j7h% > j@h% > TWVS > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > RPhL > 4WVS > WVSf > ,WVS > WVS > PRQS > Pj/V > 80t-@80t(@80t#@ > 80t-@80t(@80t#@ > 80t-@80t(@80t#@ > 80t-@80t(@80t#@ > 8(t-@8(t(@8(t#@ > 8"t+B8"t&B8"t!B > BB+U > 8(t-@8(t(@8(t#@ > t} 80t-@80t(@80t#@ > 80t-@80t(@80t#@ > 8*t-B8*t(B8*t#B > BB+U > <:t > 80t-@80t(@80t#@ > 8"t+B8"t&B8"t!B > 80t-@80t(@80t#@ > 81t-A81t(A81t#A > 8(t-@8(t(@8(t#@ > 81t-A81t(A81t#A > 8(t-@8(t(@8(t#@ > ?/t< > PRQV > PRQV > tD9U > t%VWG > 8&t+F8&t&F8&t!F > _ada_hello > nnvvnnnvnnnnnvvvvvvnvvvnvnnvnnnvnvvnnnnnnvvvnnnnvvnn > hello > access check failed > access parameter is null > discriminant check failed > divide by zero > explicit raise > index check failed > invalid data > length check failed > overflow check failed > partition check failed > range check failed > tag check failed > access before elaboration > accessibility check failed > all guards closed > finalize raised exception > misaligned address value > missing return > potentially blocking operation > stubbed subprogram called > unchecked union restriction > empty storage pool > infinite recursion > object too large > restriction violation > URC_NO_REASONURC_FOREIGN_EXCEPTION_CAUGHTURC_PHASE2_ERRORURC_PHASE1_ERRORURC _NORMAL_STOPURC_END_OF_STACKURC_HANDLER_FOUNDURC_INSTALL_CONTEXTURC_CONTINUE _UNWIND > 0123456789abcdefException name: > Message: > PID: > Call stack traceback locations: > a-except.adb > bad exception occurrence in stream input > PID:Exception raised > Execution terminated by abort of environment task > raised > Execution terminated by unhandled exception > a-finali.ads > FALSETRUE > unknown tagged type: > @IN_FILEOUT_FILEAPPEND_FILE > LOWER_CASEUPPER_CASE > a-textio.ads > s-fileio.adb:166 > s-fileio.adb:168s-fileio.adb:477s-fileio.adb:179s-fileio.adb:181s-fileio.adb :639a-textio.adb:396a-textio.adb:449a-textio.adb:501a-textio.adb:503a-textio .adb:553a-textio.adb:556a-textio.adb:617a-textio.adb:712a-textio.adb > a-textio.adb:896a-textio.adb:901a-textio.adb:983a-textio.adb:1000 > a-textio.adb:1110a-textio.adb:1130a-textio.adb:1188a-textio.adb:1211a-textio .adb:1265a-textio.adb:1281a-textio.adb:1353a-textio.adb:1472a-textio.adb:155 9a-textio.adb:1664a-textio.adb:1707a-textio.adb:1725a-textio.adb:1732a-texti o.adb:1741 > %IN_FILEINOUT_FILEOUT_FILEAPPEND_FILE > %YESNONONE > s-fileio.adb > s-fileio.adb:122 > s-fileio.adb:155s-fileio.adb:166s-fileio.adb:168s-fileio.adb:179s-fileio.adb :181s-fileio.adb:271s-fileio.adb:284s-fileio.adb:298s-fileio.adb:374s-fileio .adb:477s-fileio.adb:508s-fileio.adb:536s-fileio.adb:542s-fileio.adb:639s-fi leio.adb:652s-fileio.adb:709shared > yesnos-fileio.adb:743s-fileio.adb:763s-fileio.adb:769s-fileio.adb:798s-filei o.adb:828s-fileio.adb:869s-fileio.adb:889s-fileio.adb:891s-fileio.adb:934s-f ileio.adb:937s-fileio.adb:940s-fileio.adb:955s-fileio.adb:989s-fileio.adb:10 12 > s-fileio.adb:1037 > s-finimp.ads > s-stratt.adb:458 > s-stratt.adb:440s-stratt.adb:422s-stratt.adb:404s-stratt.adb:386s-stratt.adb :368s-stratt.adb:350s-stratt.adb:332s-stratt.adb:314s-stratt.adb:296s-stratt .adb:278s-stratt.adb:260s-stratt.adb:242s-stratt.adb:224s-stratt.adb:206s-st ratt.adb:188s-stratt.adb:170s-stratt.adb:152s-stratt.adb:134s-finimp.adb > raised during finalization > exception > s-finroo.ads > s-finroo.adb > EAXECXEDXEBXESPEBPESIEDI > UWORDBYTE > CONSTRAINT_ERROR > PROGRAM_ERROR > STORAGE_ERROR > TASKING_ERROR > _ABORT_SIGNAL > NUMERIC_ERROR > RM_CONVENTIONEVERY_RAISEUNHANDLED_RAISE > s-stratt.adb:134 > s-stratt.adb:152 > s-stratt.adb:170s-stratt.adb:188s-stratt.adb:206s-stratt.adb:224s-stratt.adb :242s-stratt.adb:260 > s-stratt.adb:278s-stratt.adb:296s-stratt.adb:314s-stratt.adb:332s-stratt.adb :350s-stratt.adb:368s-stratt.adb:386s-stratt.adb:404s-stratt.adb:422s-stratt .adb:440s-stratt.adb:458main_task > object too large > heap exhausted > lib*.a > %s%c%s > %s-%d-%d > GNAT-XXXXXX > TMPDIR > /tmp/gnat-XXXXXX > %s/gnat-XXXXXX > %s=%s > PATH > a-init.c > SIGSEGV > stack overflow (or erroneous memory access) > SIGBUS > SIGFPE > unhandled signal > GNAT_STACK_LIMIT > s-stache.adb:172 > stack overflow detected > GNAT Version: 3.15p (20020523)_ada_hello > q#*a > ^X7, > {_ uD{ > divide by zero > explicit raise > invalid data > explicit raise > invalid data > missing return > explicit raise > ADA.FINALIZATION.LIST_CONTROLLER.SIMPLE_LIST_CONTROLLER > ADA.FINALIZATION.LIST_CONTROLLER.LIST_CONTROLLER > ADA.FINALIZATION.CONTROLLED > ADA.FINALIZATION.LIMITED_CONTROLLED > ADA.IO_EXCEPTIONS.STATUS_ERROR > ADA.IO_EXCEPTIONS.MODE_ERROR > ADA.IO_EXCEPTIONS.NAME_ERROR > ADA.IO_EXCEPTIONS.USE_ERROR > ADA.IO_EXCEPTIONS.DEVICE_ERROR > ADA.IO_EXCEPTIONS.END_ERROR > ADA.IO_EXCEPTIONS.DATA_ERROR > ADA.IO_EXCEPTIONS.LAYOUT_ERROR > ADA.STREAMS.ROOT_STREAM_TYPE > ADA.TAGS.TAG_ERROR > FALSETRUE > ADA.TEXT_IO.TEXT_AFCB > *stderr > *stdin > *stdout > %YESNONONE > SYSTEM.FILE_CONTROL_BLOCK.AFCB > SYSTEM.FILE_IO.FILE_IO_CLEAN_UP_TYPE > SYSTEM.FINALIZATION_IMPLEMENTATION.LIMITED_RECORD_CONTROLLER > SYSTEM.FINALIZATION_IMPLEMENTATION.RECORD_CONTROLLER > SYSTEM.FINALIZATION_ROOT.EMPTY_ROOT_CONTROLLED > SYSTEM.FINALIZATION_ROOT.ROOT_CONTROLLED > PROGRAM_ERROR > STORAGE_ERROR > TASKING_ERROR > _ABORT_SIGNAL > NUMERIC_ERROR > n > G. A.$B.(H. > > Now, surely the app doesn't need this info and it must be taking up a lot > of space. Do I need to go into the linker scripts to strip this info out? > > Thanks, > Luke. > > >