🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.help
Article #644

Re: Building G++ on Pyramid

#644
From: Jonathan Stone
Date: Sun, 23 Jun 1991 01:58
44 lines
2749 bytes
In article <1991Jun22.145936.14935@monu6.cc.monash.edu.au> anthony@monu6.cc.monash.edu.au (Anthony Baxter) writes:
>Has anyone had any luck using g++ on a Pyramid? I've managed to get
>it compiled, but it produces assembler with labels like __$_FooBar,
>and the Pyramid as doesnt allow $ as a valid character in a label.
>Has anyone had any luck with this, or could anyone tell me where
>I might begin looking in the code to fix this?
>(btw, its a Pyramid MIS-2/01, running OSx 5.1a-910305)


The short answer is, unfortunately, that it may not be worth your
while trying to get g++ working on a Pyramid.


You don't want to look in the G++ source code to fix this.  The
standard workaround to this problem is to use some character other than '$',
but the Pyramid assembler also rejects that character in labels.
There just aren't any characters to use for this name mangling.

About two years ago there was a modified and unsupported assembler
that allowed '$', in labels, which one could obtain if you asked the
right people.  If you explain your problem to your Pyramid rep, you
may or may not be able to obtain such a thing.


The next thing you will discover is that the GNU loader, gnu-ld, does
not properly link NMAGIC-style .o files.  The Pyramid assembler (at
least on OSx4.n) was the only loader in the known galaxy that produces
NMAGIC .o files by default, so this problem ony affects Pyramid users.
To link these files, which contain entries the Pyramid linker does not
understand, you need either a hack to the g++ driver to run an extra
linker pass to convert the .o files from NMAGIC to ZMAGIC, or a patch
to the GNU loader to make it work with NMAGIC .o files.  I can supply
either of these.


If and when you get a suitable assembler and linker, you will find
that libg++ simply does not work on Pyramids, due to argument passing
incompatibilites.  This will be fixed in gcc 2.0. Until then, there
are patches to support g++ 1.37.1 available from
ftp.isor.vuw.ac.nz:pub/misc.  (1.37.1 was the most recent version when
the Pyramid here was decommissioned).

Enjoy,
--Jonathan
Technical Details
Message-ID: <1991Jun23.015823.25711@comp.vuw.ac.nz>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!comp.vuw.ac.nz!beta.isor.vuw.ac.nz!jonathan
References: <1991Jun22.145936.14935@monu6.cc.monash.edu.au>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!comp.vuw.ac.nz!beta.isor.vuw.ac.nz!jonathan
From: jonathan@beta.isor.vuw.ac.nz (Jonathan Stone)
Newsgroups: gnu.g++.help,comp.sys.pyramid
Subject: Re: Building G++ on Pyramid
Summary: Kids, don't try this at home.
Keywords: g++ pyramid
Message-ID: <1991Jun23.015823.25711@comp.vuw.ac.nz>
Date: 23 Jun 91 01:58:23 GMT
References: <1991Jun22.145936.14935@monu6.cc.monash.edu.au>
Sender: news@comp.vuw.ac.nz (News Admin)
Organization: ISOR, Victoria University of Wellington, NZ
Lines: 44
Nntp-Posting-Host: beta.isor.vuw.ac.nz