🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.bug
Article #389

collect.c can't handle extended symbols

#389
From: Andrew Klossner
Date: Fri, 01 Sep 1989 23:28
34 lines
1199 bytes
collect.c doesn't deal correctly with extended symbols in COFF object
files, e.g., the output from 'gcc -g' or 'g++ -g0'.

The loop:

	for (symindex = 0; symindex < symbols; symindex++ ) {

	  SYMENT symbol;
	  char *symbol_name;
	  extern char *ldgetname();
	  
	  ldtbread(ldptr, symindex, &symbol);
		...
	}

should instead look like this:

	symindex = 0;
	while (symindex < symbols) {

	  SYMENT symbol;
	  char *symbol_name;
	  extern char *ldgetname();
	  
	  ldtbread(ldptr, symindex, &symbol);
		...
	  symindex += 1 + symbol.n_numaux;
	}

so that "auxiliary" symbol table entries will be skipped.
This is necessary because ldgetname can core-dump on an auxiliary entry.

  -=- Andrew Klossner   (uunet!tektronix!frip.WV.TEK!andrew)    [UUCP]
                        (andrew%frip.wv.tek.com@relay.cs.net)   [ARPA]
Technical Details
Message-ID: <4428@orca.WV.TEK.COM>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!wugate!uunet!zephyr.ens.tek.com!orca!frip!andrew

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!wugate!uunet!zephyr.ens.tek.com!orca!frip!andrew
From: andrew@frip.WV.TEK.COM (Andrew Klossner)
Newsgroups: gnu.g++.bug
Subject: collect.c can't handle extended symbols
Message-ID: <4428@orca.WV.TEK.COM>
Date: 1 Sep 89 23:28:45 GMT
Sender: nobody@orca.WV.TEK.COM
Lines: 34