Ian Lance Taylor
Thu May 4 09:54:00 GMT 2000

   From: Boris Sunik <>
   Date: Thu, 4 May 2000 09:06:32 +0200 

   I know that from the version 2.8 gcc uses STABS type numbers in the form 
   (file_number, type_number).. As I  understand, all files in the module are

   referred by N_BINCL and N_ESCL items which are designated by the 
   "file_number". Also linker must create the global file table where all
   are defined only once omitting repetitious STABS debug info. 
   However, it is not clear how the linker processes debug info if the same 
   N_BINCL item occurs more as once. Does it use the first occurrence of
   the last one or there is quite other approach. 

In principle, it shouldn't matter.  The linker will only eliminate
duplicate N_BINCL/N_EINCL stab sets.  Therefore, which one it keeps is

In practice, the linker simply keeps the first set.

The linker does not create any sort of global file table as you
describe.  The linker simply eliminates duplicate N_BINCL/N_EINCL stab
sets, replacing them with a single N_EXCL stab.

This algorithm is documented in the stabs documentation which comes
with gdb.  I believe it is available from


Want more information?  See the CrossGCC FAQ,
Want to unsubscribe? Send a note to

More information about the crossgcc mailing list