Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ Using and Porting GNU CC - Table of Contents

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Using and Porting GNU CC - Table of Contents

Using and Porting GNU CC


  • 1. Compile C, C++, or Objective C
  • 2. GNU CC Command Options
    • 2.1 Option Summary
    • 2.2 Options Controlling the Kind of Output
    • 2.3 Compiling C++ Programs
    • 2.4 Options Controlling C Dialect
    • 2.5 Options Controlling C++ Dialect
    • 2.6 Options to Request or Suppress Warnings
    • 2.7 Options for Debugging Your Program or GNU CC
    • 2.8 Options That Control Optimization
    • 2.9 Options Controlling the Preprocessor
    • 2.10 Passing Options to the Assembler
    • 2.11 Options for Linking
    • 2.12 Options for Directory Search
    • 2.13 Specifying Target Machine and Compiler Version
    • 2.14 Hardware Models and Configurations
      • 2.14.1 M680x0 Options
      • 2.14.2 VAX Options
      • 2.14.3 SPARC Options
      • 2.14.4 Convex Options
      • 2.14.5 AMD29K Options
      • 2.14.6 ARM Options
      • 2.14.7 Thumb Options
      • 2.14.8 MN10200 Options
      • 2.14.9 MN10300 Options
      • 2.14.10 M32R/D/X Options
      • 2.14.11 M88K Options
      • 2.14.12 IBM RS/6000 and PowerPC Options
      • 2.14.13 IBM RT Options
      • 2.14.14 MIPS Options
      • 2.14.15 Intel 386 Options
      • 2.14.16 HPPA Options
      • 2.14.17 Intel 960 Options
      • 2.14.18 DEC Alpha Options
      • 2.14.19 Clipper Options
      • 2.14.20 H8/300 Options
      • 2.14.21 SH Options
      • 2.14.22 Options for System V
      • 2.14.23 Zilog Z8000 Option
      • 2.14.24 V850 Options
      • 2.14.25 ARC Options
      • 2.14.26 D10V Options
    • 2.15 Options for Code Generation Conventions
    • 2.16 Offset info Option
    • 2.17 Environment Variables Affecting GNU CC
    • 2.18 Running Protoize
  • 3. Installing GNU CC
    • 3.1 Configurations Supported by GNU CC
    • 3.2 Compilation in a Separate Directory
    • 3.3 Building and Installing a Cross-Compiler
      • 3.3.1 Steps of Cross-Compilation
      • 3.3.2 Configuring a Cross-Compiler
      • 3.3.3 Tools and Libraries for a Cross-Compiler
      • 3.3.4 `libgcc.a' and Cross-Compilers
      • 3.3.5 Cross-Compilers and Header Files
      • 3.3.6 Actually Building the Cross-Compiler
    • 3.4 Installing GNU CC on the Sun
    • 3.5 Installing GNU CC on VMS
    • 3.6 collect2
    • 3.7 Standard Header File Directories
  • 4. Extensions to the C Language Family
    • 4.1 Statements and Declarations in Expressions
    • 4.2 Locally Declared Labels
    • 4.3 Labels as Values
    • 4.4 Nested Functions
    • 4.5 Constructing Function Calls
    • 4.6 Naming an Expression's Type
    • 4.7 Referring to a Type with typeof
    • 4.8 Generalized Lvalues
    • 4.9 Conditionals with Omitted Operands
    • 4.10 Double-Word Integers
    • 4.11 Complex Numbers
    • 4.12 Arrays of Length Zero
    • 4.13 Arrays of Variable Length
    • 4.14 Macros with Variable Numbers of Arguments
    • 4.15 Non-Lvalue Arrays May Have Subscripts
    • 4.16 Arithmetic on void- and Function-Pointers
    • 4.17 Non-Constant Initializers
    • 4.18 Constructor Expressions
    • 4.19 Labeled Elements in Initializers
    • 4.20 Case Ranges
    • 4.21 Cast to a Union Type
    • 4.22 Declaring Attributes of Functions
    • 4.23 Prototypes and Old-Style Function Definitions
    • 4.24 Compiling Functions for Interrupt Calls
    • 4.25 C++ Style Comments
    • 4.26 Dollar Signs in Identifier Names
    • 4.27 The Character ESC in Constants
    • 4.28 Inquiring on Alignment of Types or Variables
    • 4.29 Specifying Attributes of Variables
    • 4.30 Specifying Attributes of Types
    • 4.31 An Inline Function is As Fast As a Macro
    • 4.32 Assembler Instructions with C Expression Operands
    • 4.33 Controlling Names Used in Assembler Code
    • 4.34 Variables in Specified Registers
      • 4.34.1 Defining Global Register Variables
      • 4.34.2 Specifying Registers for Local Variables
    • 4.35 Alternate Keywords
    • 4.36 Incomplete enum Types
    • 4.37 Function Names as Strings
    • 4.38 Getting the Return or Frame Address of a Function
  • 5. Extensions to the C++ Language
    • 5.1 Named Return Values in C++
    • 5.2 Minimum and Maximum Operators in C++
    • 5.3 goto and Destructors in GNU C++
    • 5.4 Declarations and Definitions in One Header
    • 5.5 Where's the Template?
    • 5.6 Type Abstraction using Signatures
  • 6. gcov: a Test Coverage Program
    • 6.1 Introduction to gcov
    • 6.2 Invoking gcov
    • 6.3 Using gcov with GCC Optimization
    • 6.4 Brief description of gcov data files
  • 7. Known Causes of Trouble with GNU CC
    • 7.1 Actual Bugs We Haven't Fixed Yet
    • 7.2 Installation Problems
    • 7.3 Cross-Compiler Problems
    • 7.4 Interoperation
    • 7.5 Problems Compiling Certain Programs
    • 7.6 Incompatibilities of GNU CC
    • 7.7 Fixed Header Files
    • 7.8 Standard Libraries
    • 7.9 Disappointments and Misunderstandings
    • 7.10 Common Misunderstandings with GNU C++
      • 7.10.1 Declare and Define Static Members
      • 7.10.2 Temporaries May Vanish Before You Expect
    • 7.11 Caveats of using protoize
    • 7.12 Certain Changes We Don't Want to Make
    • 7.13 Warning Messages and Error Messages
  • 8. Reporting Bugs
    • 8.1 Have You Found a Bug?
    • 8.2 Where to Report Bugs
    • 8.3 How to Report Bugs
    • 8.4 Sending Patches for GNU CC
  • 9. How To Get Help with GNU CC
  • 10. Contributing to GNU CC Development
  • 11. Using GNU CC on VMS
    • 11.1 Include Files and VMS
    • 11.2 Global Declarations and VMS
    • 11.3 Other VMS Issues
  • 12. GNU CC and Portability
  • 13. Interfacing to GNU CC Output
  • 14. Passes and Files of the Compiler
  • 15. RTL Representation
    • 15.1 RTL Object Types
    • 15.2 Access to Operands
    • 15.3 Flags in an RTL Expression
    • 15.4 Machine Modes
    • 15.5 Constant Expression Types
    • 15.6 Registers and Memory
    • 15.7 RTL Expressions for Arithmetic
    • 15.8 Comparison Operations
    • 15.9 Bit Fields
    • 15.10 Conversions
    • 15.11 Declarations
    • 15.12 Side Effect Expressions
    • 15.13 Embedded Side-Effects on Addresses
    • 15.14 Assembler Instructions as Expressions
    • 15.15 Insns
    • 15.16 RTL Representation of Function-Call Insns
    • 15.17 Structure Sharing Assumptions
    • 15.18 Reading RTL
  • 16. Machine Descriptions
    • 16.1 Everything about Instruction Patterns
    • 16.2 Example of define_insn
    • 16.3 RTL Template
    • 16.4 Output Templates and Operand Substitution
    • 16.5 C Statements for Assembler Output
    • 16.6 Operand Constraints
      • 16.6.1 Simple Constraints
      • 16.6.2 Multiple Alternative Constraints
      • 16.6.3 Register Class Preferences
      • 16.6.4 Constraint Modifier Characters
      • 16.6.5 Constraints for Particular Machines
      • 16.6.6 Not Using Constraints
    • 16.7 Standard Pattern Names For Generation
    • 16.8 When the Order of Patterns Matters
    • 16.9 Interdependence of Patterns
    • 16.10 Defining Jump Instruction Patterns
    • 16.11 Canonicalization of Instructions
    • 16.12 Machine-Specific Peephole Optimizers
    • 16.13 Defining RTL Sequences for Code Generation
    • 16.14 Defining How to Split Instructions
    • 16.15 Instruction Attributes
      • 16.15.1 Defining Attributes and their Values
      • 16.15.2 Attribute Expressions
      • 16.15.3 Assigning Attribute Values to Insns
      • 16.15.4 Example of Attribute Specifications
      • 16.15.5 Computing the Length of an Insn
      • 16.15.6 Constant Attributes
      • 16.15.7 Delay Slot Scheduling
      • 16.15.8 Specifying Function Units
  • 17. Target Description Macros
    • 17.1 Controlling the Compilation Driver, `gcc'
    • 17.2 Run-time Target Specification
    • 17.3 Storage Layout
    • 17.4 Layout of Source Language Data Types
    • 17.5 Register Usage
      • 17.5.1 Basic Characteristics of Registers
      • 17.5.2 Order of Allocation of Registers
      • 17.5.3 How Values Fit in Registers
      • 17.5.4 Handling Leaf Functions
      • 17.5.5 Registers That Form a Stack
      • 17.5.6 Obsolete Macros for Controlling Register Usage
    • 17.6 Register Classes
    • 17.7 Stack Layout and Calling Conventions
      • 17.7.1 Basic Stack Layout
      • 17.7.2 Specifying How Stack Checking is Done
      • 17.7.3 Registers That Address the Stack Frame
      • 17.7.4 Eliminating Frame Pointer and Arg Pointer
      • 17.7.5 Passing Function Arguments on the Stack
      • 17.7.6 Passing Arguments in Registers
      • 17.7.7 How Scalar Function Values Are Returned
      • 17.7.8 How Large Values Are Returned
      • 17.7.9 Caller-Saves Register Allocation
      • 17.7.10 Function Entry and Exit
      • 17.7.11 Generating Code for Profiling
    • 17.8 Implementing the Varargs Macros
    • 17.9 Trampolines for Nested Functions
    • 17.10 Implicit Calls to Library Routines
    • 17.11 Addressing Modes
    • 17.12 Condition Code Status
    • 17.13 Describing Relative Costs of Operations
    • 17.14 Dividing the Output into Sections (Texts, Data, ...)
    • 17.15 Position Independent Code
    • 17.16 Defining the Output Assembler Language
      • 17.16.1 The Overall Framework of an Assembler File
      • 17.16.2 Output of Data
      • 17.16.3 Output of Uninitialized Variables
      • 17.16.4 Output and Generation of Labels
      • 17.16.5 How Initialization Functions Are Handled
      • 17.16.6 Macros Controlling Initialization Routines
      • 17.16.7 Output of Assembler Instructions
      • 17.16.8 Output of Dispatch Tables
      • 17.16.9 Assembler Commands for Exception Regions
      • 17.16.10 Assembler Commands for Alignment
    • 17.17 Controlling Debugging Information Format
      • 17.17.1 Macros Affecting All Debugging Formats
      • 17.17.2 Specific Options for DBX Output
      • 17.17.3 Open-Ended Hooks for DBX Format
      • 17.17.4 File Names in DBX Format
      • 17.17.5 Macros for SDB and DWARF Output
    • 17.18 Cross Compilation and Floating Point
    • 17.19 Miscellaneous Parameters
  • 18. The Configuration File
  • 19. Makefile Fragments
    • 19.1 The Target Makefile Fragment
    • 19.2 The Host Makefile Fragment
  • Funding Free Software
  • Linux and the GNU Project
  • GNU GENERAL PUBLIC LICENSE
    • Preamble
    • TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    • How to Apply These Terms to Your New Programs
  • Contributors to GNU CC
  • Index


This document was generated on 27 January 1999 using texi2html 1.55k.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026