This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: #pragma interface
- To: martin at mira dot isdn dot cs dot tu-berlin dot de (Martin v. Loewis)
- Subject: Re: #pragma interface
- From: Carlo Wood <carlo at runaway dot xs4all dot nl>
- Date: Tue, 23 Feb 1999 17:29:49 +0100 (CET)
- Cc: egcs at cygnus dot com (egcs at cygnus dot com)
| > > With #pragma 86 s 1649639 bytes
| > > Without #pragma 86 s 1663340 bytes
| >
| > Thanks for the information. It'd be nice to track down these random
| > few bytes that were not squeezed out
|
| One source certainly is garbage exception regions. If we have linkonce
| functions, they get slots in .gcc_except_table, and .eh_frame. Once
| duplicate code is removed, the duplicate slots stay. I don't know
| whether this would accound for the 14K; having a section-by-section
| comparison would be helpful.
|
| Regards,
| Martin
I compile(d) with -fno-exceptions
In an attempt to provide more info, I did remove the "#pragma interface"
every time from exactly ONE header file, and then printed the sizes
of the sections. The result of that is:
removed #pragma interface
text data bss total from header file:
354556 10404 3920 368880 sys.h
353930 10404 3920 368254 demangle.h
353506 10416 3920 367842 debug.h
353466 10404 3920 367790 support.h
353431 10388 3920 367739 debugmalloc.h
353115 10372 3920 367407 sbll.h
353019 10404 3920 367343 signals.h
352927 10404 3920 367251 char2str.h
352860 10404 3920 367184 buf2str.h
352773 10404 3920 367097 libr_app.h
352722 10372 3920 367014 file.h
352681 10400 3920 367001 dbstreambuf.h
352676 10404 3920 367000 inet_support.h
352551 10404 3920 366875 ostream_operators.h
352490 10404 3920 366814 lockable_auto_ptr.h
352481 10404 3920 366805 strerrno.h
352426 10404 3920 366750 -
352423 10436 3920 366779 llists_crosslink.h
352388 10404 3920 366712 ffstl.h
352381 10404 3920 366705 ecbll.h
352380 10404 3920 366704 bcd2str.h
352085 10396 3912 366393 ebll.h
351891 10404 3920 366215 pipe.h
350215 10340 3908 364463 cbll.h
348322 10272 3896 362490 expire.h
347828 10292 3904 362024 crosslink.h
346193 10156 3864 360213 execve.h