🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

port to pyramid

#1655
From: David Becker
Date: Tue, 31 Jan 1989 02:11
57 lines
2895 bytes
I'm attempting to port g++1.31.0 to our pyramids.  I need to
determine if the remaining problems are mine(pyramid related) or
if they are bugs in general.

Inlines returning structs are broke:
In test6 this appears: Integer z = abs(x);  where x is an Integer.
The Integer created in abs is the one z becomes, however in
Integer(Integer&) *this points to the wrong address.
This happens for all inline functions that return structs I've looked at and
these all work when -Dinline= makes them normal functions.  Of course
the inlines are still in effect for stuff in libg++ so some tests still
crash.
	
test5a and test5b break gcc-c++:
They both have crashed it a couple of ways.  Sometimes an invalid param
list is reported at the end.  Sometimes invalid assembly is generated.
And sometimes a segmentation violation happens.  In that case
handle_braces() is on the stack.  Does anyone recognize this ... PLEASE.
This does not look pretty so I haven't pursued it.


On a happier note these bugs were identified:

Bug:	int a(), b(), c();  in a class def is causes a parse error
Fix:	replace commas with semis.  Zortech accepts the above code.

Bug:	ld++ put data at different addresses than where the relocated
	symbols pointed.  NMAGIC objects have, on pyramids, their
	.data sections page aligned and ld++ thought they were just
	word aligned.  OMAGIC .data segments were handled correct as word 
	aligned.
Fix:	make a N_DATADDR() macro like the what ld++ uses to
	calculate the start on the new .data segment to calculate
	where .data's start in objects.  N_DATADDR() is for struct exec so
	a new one for struct nlist was made.

Problem: pyramid's assembler doesn't accept $'s in symbols
Fix:	changed all $'s in cplus-tree.h and ld.c to .'s.  The ld.c ones
	were real fun to try and find :-(.  Thanks guys. Perhaps this
	character could be defined in one place for use everywhere else.

'Bug':	gcc1.31 ran out of virtual memory trying to compile
	cplus-parse.tab.c.  (this also happened when I tried to port this
	to my 3b1. Didn't expect the pyramid to have any difficulty)
'Fix':	used pyramid's cc.  We are low on swap space (40M total and 10M or 15M
	normally available). But how much does gcc need???
	What was the -DESKIT for?  Couldn't find ESKIT refered to anywhere.


Does 1.32 fix any of these bugs?


-- 
David Becker 
and another bug bites, and another bug bites   another bug bites the dust
db@kolonel.MN.ORG
Technical Details
Message-ID: <2137@questar.QUESTAR.MN.ORG>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!uxc!tank!shamash!com50!questar!dave

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!uxc!tank!shamash!com50!questar!dave
From: dave@questar.QUESTAR.MN.ORG (David Becker)
Newsgroups: gnu.g++.bug
Subject: port to pyramid
Message-ID: <2137@questar.QUESTAR.MN.ORG>
Date: 31 Jan 89 02:11:41 GMT
Reply-To: dave@questar.QUESTAR.MN.ORG (David Becker)
Distribution: na
Organization: Questar Data Systems; St. Paul, MN
Lines: 57