Release 3.3 Copyright ã1994 by NeXT Computer, Inc.  All Rights Reserved.

Developer Notes: 
C Compiler 400 Series

Updated for cc-412, january 26th

NeXT Changes 

Runtime libraries

The compiler runtime library libgcc is being updated from time to time while the compiler is still being developed.  Therefore the compiler links it in statically from /lib/arch/libgcc.a.  Once we get closer to release, the content should be moved to libsys.

Features in test bed

The following are features which have just been introduced, and are thus not enabled as default:

·	Shlib codegen; -fpic and -fPIC.  (m68k only) Generate code for the new shared library scheme.  -fpic generates only indirections, while -fPIC generates indirections and position independent code.  We will figure out some better names for these flags later...

·	Floating Point Precision Control; -ffppc, -fno-fppc.  (m68k and i386 only) Generate code which uses the new floating point precision control.  This should eliminate the need for -ffloat-store, and be fully ieee compliant.

Defines in C code

The following is an exhaustive list of macros that affect how the compiler itself is compiled.  They are defined in various configuration header files:

·	NEXT_OBJC_RUNTIME.  The compiler is build to generate code for the NeXT Objective-C runtime, as opposed to the GNU Objective-C runtime.

·	NEXT_SEMANTICS.  Make the compiler a bit more sloppy on some issues to fit the NeXTSTEP development environment...

·	NEXT_LIBGCC_NAMES.  Make the compiler use double underscore in front of libgcc functions.  If not defined, the compiler will generate tripple underscores there.

·	NEXT_PDO.  The compiler is build to run in a NeXT PDO (non-NeXTSTEP) environment.  

·	NEXT_FAT_OUTPUT.  Understand and interpret flags -arch and related to produce fat binaries and cross compile.  

·	NEXT_CPP_PRECOMP.  Make the compiler driver and C preprocessor understand and use NeXT's precompiled headers. 

·	OBJC_HPUX_PADDING.  Hack in objc-act.c to make protocols structures size aligned on 8 bytes. 

·	NEXT_PIC.  The compiler is build to generate NeXT/mach-o PIC code, when the -pic flag is given to the compiler.  

·	NeXT_ASM.  Used in the backend of the hppa compiler, to generate NeXT specific assembler instructions.