[comp.unix.aux] GCC & A/UX 2.0

shaff@elements.rpal.com (Mike Shaff) (07/19/90)

ciao,

I recently ftp'd from Apple the binary gcc version 1.37.  This version does not
seem to be happy with A/UX 2.0.  Does anyone know a source for a approximately
current version of gcc that works with A/UX 2.0?

While I am asking for pointers, does anyone have the patches to make MIT
CScheme work with A/UX?


--
	mas

Reach out your hand if your cup be empty,
if your cup is full may it be again

dwb@archer.apple.com (David W. Berry) (07/20/90)

In article <SHAFF.90Jul19095210@neon.elements.rpal.com> shaff@rpal.com writes:
>ciao,
>
>I recently ftp'd from Apple the binary gcc version 1.37.  This version does not
>seem to be happy with A/UX 2.0.  Does anyone know a source for a approximately
>current version of gcc that works with A/UX 2.0?
	Since I did the gcc port to A/UX 2.0 I'd be reall interested in
	knowing what problems you're having with it.

	BTW, watch this space for upcoming announcements about an updated
	version of gcc which uses gas to write coff files.
	David W. Berry			A/UX Toolbox Engineer
	dwb@apple.com

steveg@umd5.umd.edu (Steve Green) (07/20/90)

I have been using gcc and 2.0 and it works fine.  If you want to make use
of ioctls, then you must run "fixincludes" which is in the gcc source
distr.

--
steveg@umd5.umd.edu

dwb@archer.apple.com (David W. Berry) (07/21/90)

In article <9269@goofy.Apple.COM> dwb@archer.apple.com (David W. Berry) writes:
>	BTW, watch this space for upcoming announcements about an updated
>	version of gcc which uses gas to write coff files.
I've received enough mail about gcc-1.37 and apple, that I've gone ahead
and updated all of the gcc-1.37 stuff on apple.  As promised it now uses
gas to directly write coff files instead of using the native assembler.
This should take care of numerous floating point bugs, and possibly some
others.  I've also made several other minor bug fixes, so have at.  If
you already have a running gcc-1.37 and sources you need the ...patch1
file.  If you don't have, you'll want the gcc and gas tar and bin files.
There is no gas binary distribution as it is included in the gcc binary
distribution.

	Have fun.
	David W. Berry			A/UX Toolbox Engineer
	dwb@apple.com

rmtodd@servalan.uucp (Richard Todd) (07/21/90)

shaff@elements.rpal.com (Mike Shaff) writes:
>I recently ftp'd from Apple the binary gcc version 1.37.  This version does not
>seem to be happy with A/UX 2.0.  Does anyone know a source for a approximately
>current version of gcc that works with A/UX 2.0?

  Well, I've only had A/UX 2.0 for a couple of days, and haven't done much
compiling with it.  Still, what few programs I have recompiled with gcc are OK.
What sort of problems are you having?

>While I am asking for pointers, does anyone have the patches to make MIT
>CScheme work with A/UX?

Well, I got C Scheme to more-or-less work under A/UX 1.1--I didn't test it
thoroughly, and I didn't manage to get the compiler to work.  Since my main
interest in C Scheme was to have access to a full Lisp-like language with
compiler (somewhat of a novelty to someone whose first Lisp experience was
with a subset Lisp interpreter on a TRS-80 :-), I sorta lost interest at
that point.  Still, the stuff I did should be helpful to you in getting a
full port going (I hope you understand how their compiler works, as its
innards don't seem to be documented anywhere that I found...).  Contact me
at one of the addresses below and I'll see what I can do regarding getting
the changes to you. (Currently, I've got the changes in the form of tar files
of the changed source files, circa 100K compressed).  
--
Richard Todd	rmtodd@uokmax.ecn.uoknor.edu  rmtodd@chinet.chi.il.us
	rmtodd@servalan.uucp
"Cancelling a posted message means posting a cancel message."-Maarten Litmaath

dwb@archer.apple.com (David W. Berry) (07/24/90)

In article <9298@goofy.Apple.COM> dwb@archer.apple.com (David W. Berry) writes:
>I've received enough mail about gcc-1.37 and apple, that I've gone ahead
>and updated all of the gcc-1.37 stuff on apple.  As promised it now uses
>gas to directly write coff files instead of using the native assembler.
>This should take care of numerous floating point bugs, and possibly some
>others.  I've also made several other minor bug fixes, so have at.  If
>you already have a running gcc-1.37 and sources you need the ...patch1
>file.  If you don't have, you'll want the gcc and gas tar and bin files.
>There is no gas binary distribution as it is included in the gcc binary
>distribution.
	Thanx to all those that have pointed out that the recent gcc-1.37
	binary distribution didn't include bin/gcc.  A minor oversight
	I'm sure...  Anyway, it does now, and as a bonus, gcc alone is
	also there so that you don't have to download .5 meg just to get
	the 32K compiler driver...


	David W. Berry			A/UX Toolbox Engineer
	dwb@apple.com

urlichs@smurf.sub.org (Matthias Urlichs) (07/25/90)

In comp.unix.aux, article <9269@goofy.Apple.COM>,
  dwb@archer.apple.com (David W. Berry) writes:
< 
< 	BTW, watch this space for upcoming announcements about an updated
< 	version of gcc which uses gas to write coff files.

That's exactly what I was afraid I'd have to do by myself. ;-)

Thanks for supporting the stuff!
(Now if only my copy of A/UX 2.0 would arrive before the II->fx upgrade...)
-- 
Matthias Urlichs -- urlichs@smurf.sub.org -- urlichs@smurf.ira.uka.de
Humboldtstrasse 7 - 7500 Karlsruhe 1 - FRG -- +49+721+621127(Voice)/621227(PEP)

coolidge@casca.cs.uiuc.edu (John Coolidge) (07/27/90)

I hate to do this to everyone right after they've compiled the
recently released patches :-), but... 

Announcing yet another round of gcc patches!

What's different about these patches compared to the ones David
Berry just released? First, those patches are incorporated in these.
Gas support is included. In addition, there are a bunch of things
I've been working on, and some extensions to the gas and g++ support.
I'll include the readme at the end of this message, but here's the
gist of the changes:

1) Support for A/UX 2.0 shared libraries. gcc now uses the right
	crt files and the right loaded directives file.
2) Support for easy use of the 'big' version of as (if you're not
	using gas) and ld via compiler flags.
3) Different predefined symbols such that (if you compile the
	compiler right) it's easy to check if you're on 1.1 or 2.0,
	if you're on a mac at all, and what standards you want to be
	compatible with (A/UX, BSD, SVID, or POSIX).
4) Support for the register prefix option of COFF-gas. This causes
	registers to be written with a leading '%' (i.e. %pc, not pc),
	which prevents name clashes between registers and user
	variables (I've already seen one program which has a 'PC'
	variable).
5) A commando dialog. Makes it a lot easier to remember the obscure
	options and features.

In addition to the distribution files mentioned in the README file,
there's also a gcc.update.patch file which converts from the most
recent apple.com patches to my version. All the files are available
on wuarchive.wustl.edu in systems/aux/gnu.

--John

---------------------------------------------------------------------------

This set of patches should allow gcc 1.37.91 to work under A/UX 1.1 and
A/UX 2.0. Most of them are from David Berry (dwb@apple.com), while I've
added some bugfixes and additions. For installation instructions, please
read the file INSTALL.aux.

Distribution: The following files should be available on wuarchive.wustl.edu
in the systems/aux directory (/archive/systems/aux for those NFS mounting
wuarchive) or in the gnu directory:
gcc-1.37.aux.bin.Z		Binaries for gcc-1.37 on A/UX (tar format).
					These are a 1.1 build and will
					definitely work with it.
gcc-1.37.91.aux2.bin.tar.Z	Binaries for gcc-1.37.91 on A/UX. These
					were built with 2.0. I don't know if
					they will run on 1.1.
gcc-1.37.91.aux.diffs.Z		Patches for gcc-1.37.91 supporting A/UX.
					These should not break support
					for any other machine, and
					should work for A/UX 1.1 and 2.0.
gcc-1.37.91.aux.src.tar.Z	Sources for gcc-1.37.91 with the above
					diffs already applied.

New in this release: There is now a AUX2 flag. If you have A/UX 2.0,
add '-DAUX2' to the flags used to make gcc and some 2.0 features will
be compiled in. These include support for shared libraries and support
for the new syntax for getting the 'big' versions of as and ld. There
are also new predefined symbols and one bugfix. The linker directives
now specify default searching of /usr/local/lib and /usr/local/Gnu/lib,
since that makes things much easier most of the time. The gas support has
been modified to produce register names with a leading '%' (to
disambiguate them from variable names) --- hence, '%pc' and not 'pc'.
This feature is enabled by default --- to turn it off, edit out the
"#define REGISTER_PREFIX" in config/tm-aux.h. To make gas understand
the percent prefix, you need to link m68k.h to m-prefix.h when
building gas (the gas provided with the aux2 binaries supports this;
the gas provided with the aux binaries doesn't). Finally, there is a
Commando dialog for gcc on A/UX 2.0.

Support for shared libraries: gcc now supports linking with A/UX
shared libraries. The compiler automatically uses the right crtN.o
startup files and the right loader directives file for shared
libraries. If you specify -lc_s on the command line, you'll get the
shared C library instead of the statically linked library.

New compiler flags: If you're running A/UX 2.0, the following flags
are valid on the command line:
	-big:	Use big tables in as and ld. Actually, the patches
		default to using moderately big tables in as anyway,
		while ld defaults to small tables (because ld with
		big tables is SLOW).
	-vbig:	Use VERY big tables in as and ld. You can get quite
		a bit bigger than this, but these should be big
		enough for almost any program, I think.
If you're using gas, the big tables options only affect ld (gas
doesn't use fixed sized tables).

New predefined symbols: One of the biggest complaints about the
standard A/UX cc is that it doesn't define any useful symbols to
allow people to target code to A/UX. This should be banished by
the plethora of symbols defined by gcc. The following symbols are
always defined (both the listed symbols and __SYMBOL__ versions):
	unix m68k _AUX_SOURCE AUX macII
If you're running A/UX 2.0 (compiled with -DAUX2), AUX2 is also
defined. If you're using the A/UX assembler (compiled with
-DAUX_ASM), AUX_ASM is defined. WARNING: The symbols _SYSV_SOURCE
and _BSD_SOURCE are _not_ predefined. However, there are a number
of standard include files that demand one or both to be defined.
IMHO this is a bug in the include files (_AUX_SOURCE should always
produce the default "A/UX" behavior specified in the man pages
while _SYSV_SOURCE and _BSD_SOURCE should specify compatibility
modes only), but for the moment you may need to hand-define them.
I don't like having the compiler predefine them, because it makes
actually using them to target code for one standard or another more
difficult.

Bugfix: There was a bug in the original patches which caused bad
debugging information to be generated (duplicate entries). This is
now fixed.

Commando dialog: The file gcc.commando contains a Commando dialog
for gcc. Virtually every useful feature of gcc can be specified
from this dialog (the only exceptions are flags passed on to the
linker and assembler, flags which are nonsensical on the 680x0
series, and the 3 -f flags which affect specific registers). The
dialog can be placed in /mac/lib/cmdo/g or in a directory specified
by the environment variable CMDODIR (in either case, rename the file
to just 'gcc' when you move it).

Bug reports: From the original readme:
	Bug reports should be sent to dwb@apple.com if they appear
	to be in the A/UX port, or the appropriate individuals of
	the FSF if they appear to be in the basic compiler.  Be
	warned that due to the current fanaticism by FSF any bug
	reports mentioning A/UX or Apple are likely to be ignored...

Bugs in the A/UX 2.0 support (shared libraries, big tables, Commando
dialog), feature enhancements, etc., should be sent to either
David Berry (dwb@apple.com) or myself (coolidge@cs.uiuc.edu) or both.

Good luck!

--John Coolidge
coolidge@cs.uiuc.edu