GNUPro Toolkit Documentation|Contents|Previous|Next
Cygnus and GNUPro Toolkit fundamentals
The following documentation introduces the fundamentals of the GNUPro tools, what GNUPro Toolkit contains and supports as well as how the tools work. To install for UNIX platforms, see Installing on UNIX systems from CD, and, to install for the Windows platforms, see Installing on Win 95/NT systems from CD.
For quick resolution to technical questions, see Red flag alerts & enhancements and, to report problems, see How to report problems.

For embedded targets, GNUPro Tools for Embedded Systems.

About Cygnus and what Cygnus offers

Cygnus provides GNUPro Toolkit as a set of powerful, multi-platform software development tools for advanced desktop and embedded systems for developing projects. Cygnus is the leading provider of single-source, UNIX, and Win32 desktop and cross-platform development tools for 32- and 64-bit microcontrollers.
Cygnus is the open-source software leader that provides complete end-to-end software solutions, including embedded and desktop development tools and real-time operating systems (RTOSs), as well as custom-engineering services and world-class support. Cygnus partners with the world’s leading processor companies to ensure open-source software technologies are available on the latest architectures. Cygnus also works with key embedded product manufacturers across all market segments to customize solutions and develop new technologies that meet their business objectives.
Cygnus is redefining the way software is developed industry wide by making its infrastructure technologies freely available, using the powerful open-source model. Cygnus’ approach to software is to deliver our innovation back to the market. For distributing, enhancing, and fostering open-source technologies, see the following resources.
 
http://sourceware.cygnus.com/


Cygnus customers include the world’s top microprocessor companies as well as leading consumer electronics, Internet, telecommunications, office automation, networking, aerospace, and automotive companies.
Customers turn to Cygnus to have the following benefits.

The following Cygnus development tools are available.
  • GNUPro® Toolkit is a set of powerful, multi-platform software development tools for advanced desktop and embedded systems that delivers productivity, flexibility, performance and portability for over 125 host/target combinations for embedded microprocessors. Cygnus provides engineering services and mission-critical support to microprocessor and product manufacturing partners, and even off-the-shelf product sales to ensure that Cygnus development tools provide functionality and flexibility unmatched by any proprietary tools vendor.

  • Cygnus sells GNUPro Toolkit bundled with support for rapid response and resolution of technical questions or problems, and regular software upgrades. Cygnus also sells a standalone version of the GNUPro Toolkit for Linux. The toolkit includes ANSI-conforming C and C/C++ compilers, a macro-assembler, the Cygnus Insight visual debugger, and binary utilities. All the tools come on CD with online and printed documentation as well as a Quick Reference guide. See also About the tools.
    To locate specific documentation, see What’s in the documentation and, also, see the following topics.
  • Source-NavigatorTM is a graphical, advanced source-code comprehension and analysis tool that enables developers to understand code structures and relationships. Available in Developer and Enterprise editions, Source-Navigator makes migrating, re-engineering, reusing code, or understanding Y2K (Year 2000) problems much easier. The Developer edition targets single developers working on projects of up to 100,000 lines of code, and the Enterprise edition targets large-scale, complex projects managed by development teams.
  • Integrated with GNUPro development tools is Cygnus’ open-source RTOS, eCosTM, that provides a new industry standard for the rapidly evolving world of embedded systems. eCos (embedded Cygnus operating system) is a full-featured, run-time solution under open-source licensing terms. eCos is a royalty-free, highly configurable, application-specific operating system targeted at embedded systems development. eCos offers a solution to the highly fragmented RTOS marketplace by providing an open-source run-time infrastructure that enables embedded system developers to focus on differentiating their products rather than on the development, maintenance, or configuration of a real-time kernel. eCos empowers embedded developers with knowing that their software investments will be preserved on future hardware.
  • CygwinTM, a full-featured Win32 porting layer for UNIX applications, is compatible with all Win32 hosts (currently, these are Microsoft’s Windows NT/95/98 systems). Cygwin, invented in 1995 by Cygnus, is an answer to the question of how to port the GNU development tools to a Win32 host.
About the tools
GNUPro software delivers productivity, flexibility, performance and portability with its ISO-conforming C and ISO-tracking C++ compiler, macro-assembler, GUI debugger, binary utilities and libraries.
See GNUPro Toolkit documentation for more documentation on the following GNUPro Toolkit components.
 
For working with the tools, see Using the tools on native and embedded systems. To use them, enter their name as a command in your shell window (gcc, for instance, invokes the C compiler while gdb invokes Cygnus Insight and snavigator invokes Source-Navigator, the source code comprehension tool). For embedded targets, GNUPro Tools for Embedded Systems.

Compilers and development tools

The following tools are the main tools for developing with GNUPro Toolkit.
gcc
C compiler; see Using GNU CC in GNUPro Compiler Tools for details.
g++
C++ compiler;  see Using GNU CC in GNUPro Compiler Tools for details.
gdb
Debugger;  see GNUPro Debugger Tools for details. Invoke by using the command, gdb -nw, and see also gdbtk.
gas
Assembler;  see Using as in GNUPro Utilities for details.
cpp
C Preprocessor;  see Using GNU CC in GNUPro Compiler Tools for details.
ld
Linker;  see Using ld in GNUPro Utilities for details.
gdbtk
Debugger graphical user interface, a visual debugger known as Cygnus InsightTM (formerly known as GDBTk); see Working with Cygnus Insight, the visual debugger.
Invoke by using the command, gdb.
make Compilation control program;  see Using make in GNUPro Utilities for details.
cmp Utility that compares files byte-by-byte;  see Using GNU CC in GNUPro Compiler Tools for details.
cygwin Win32 porting layer for UNIX applications; see Cygwin: a free Win32 porting layer for UNIX, Cygwin User’s Guide and Cygwin API Reference, and applications in GNUPro Tools for Embedded Systems for details about using the tools for developing programs in the Win32 environment.
gcov Coverage analyzer;  see Using GNU CC in GNUPro Compiler Tools for details.
snavigator Source-Navigator, a source code comprehension tool;  see the online “User’s Reference Guide” and “Programmer’s Reference Guide” documentation, by invoking Source-Navigator from the commandline, and, also, see Source-Navigator demonstration.

Libraries

See GNUPro Libraries for documentation regarding these libraries.
libc
ANSI C runtime library 
(only available for cross-development); 
see GNUPro C Library in GNUPro Libraries for details.
libm C math subroutine library 
(only available for cross-development); 
see GNUPro Math Library in GNUPro Libraries for details.
libio C++ iostreams library;
see The GNU C++ Iostream Library in GNUPro Libraries for details.
libstdc++ C++ class library

Binary utilities

See Using binutils in GNUPro Utilities for documentation for the following utilities.
c++filt
C++ symbol name deciphering utility
nm
Lists object file symbol tables
objdump
Displays object file information
size
Lists section andtotal sizes
ar
Manages object code archives
ranlib
Generates archive index
strip
Discards symbols
objcopy
Copies and translates object files
addr2line Translates program addresses into file names and line numbers
windres Manipulates Windows resources

General utilities

See GNUPro Utilities and GNUPro Utilities for clarification regarding the following utilities.
flex
Fast lexical analyzer generator suitable for GCC and other compilers; 
see Usingmake for details.
diff, diff3, sdiff
Compare text files; 
see Using diff&patch for details.
patch
Installs source fixes; 
see Using diff&patch for details.

GNUPro Toolkit documentation

GNUPro Toolkit includes documentation in HTML and printed forms. See  What’s in the documentation for a listing of the documentation’s contents and also see Documentation conventions.

Documentation conventions

The documentation uses the following conventions for commands, filenames, and other program-specific subjects.
What’s in the documentation

GNUPro Toolkit documentation includes the following documentation.

Using website documentation

As with all GNU software, the HTML source for documentation is available (or you can convert it yourself using publicly available utilities) if you wish to put them into an internal Web server.
http://www.cygnus.com/pubs/gnupro

Using online documentation

For online use, the CD includes online versions of the following documentation in the Texinfo form, info (requiring the TEX tools). The info files do not have support since modifying them changes the source files, and that action delays the shipment of the tools. Therefore, the HTML documentation is more accurate since Cygnus can modify them until just prior to shipment. See Using info in GNUPro Utilities for documentation regarding these tools.
You have the freedom to copy the documentation using its accompanying copyright statements, which include the necessary permissions. See Using info in GNUPro Utilities for documentation regarding the following tools. See also Reading online documentation.
Texinfo*, texindex, texi2dvi
Documentation formatting tools
makeinfo, info
Online documentation tools

 * Requires TEX, the technical documentation formatting tool
 

Reading online documentation

Browse through the online documentation using either Emacs or the info documentation browser program, included with GNUPro Toolkit. Online, the information is organized into nodes, corresponding to the sections of a printed book.
Follow them in sequence, as in the printed books, or, using the hyperlinks, find the node that has the information you need. info has hot references (if one section refers to another section, you can have info take you immediately to that other section—and you can get back again easily to take up your reading where you had been). You can also search for particular words or phrases.
The best way to start with the online documentation system is to run the browser, info. After installing GNUPro Toolkit, use info by typing its name at a shell prompt—no options or arguments are necessary.
You may need to check that info is in your shell path after you install GNUPro Toolkit. If you have problems running info, contact your system administrator.
To learn how to use info, type h for a programmed instruction sequence, or Ctrl+h for a short summary of commands. To stop using info, type q.
See Overview of info in  Using info  in GNUPro Utilities for links to detailed discussion of the info program.

Native configurations support

GNUPro Toolkit software supports the following native configurations.
  • DEC’s Alpha Digital UNIX 4.0
  • Hewlett Packard’s 9000/700 HP-UX 10.01
  • Hewlett Packard’s 9000/700 HP-UX 10.20
  • Hewlett Packard’s 9000/700 HP-UX 10.20/11.0*
  • Microsoft’s Windows NT4.0-sp3/95-osr2/98 
  • IBM’s PowerPC 4.2
  • Red Hat’s Linux 5.1/5.2/6.0 (x86**)
  • SGI’s Iris 6.2
  • Sun’s SPARC Solaris 2.5.1
  • Sun’s SPARC Solaris 2.6
  • Sun’s SPARC Solaris 7.0††
  • Sun’s SPARC SunOS 4.1.4

* The support for Hewlett Packard’s 9000/700 HP-UX 11.0 version is only for 32-bit mode.
IMPORTANT: There is no support for rebuilding cross-configurations for the Windows 95 and 98 versions; rebuilding is only available for the NT version.
To name the Windows operating systems, Cygnus uses “NT4.0-sp3” for Windows NT 4.0/service pack 3, and “95-osr2” for Windows 95/operating system revision 2.
See also Cygwin: a free Win32 porting layer for UNIX, Cygwin User’s Guide and Cygwin API Reference, and applications in GNUPro Tools for Embedded Systems for details about using the tools for developing programs in the Win32 environment.
** The 486, 586 and 686 are the supported versions.
†† The support for  Sun’s SPARC Solaris 7.0 version is only for 32-bit mode.


For working with the tools, see Using the tools on native and embedded systems. For embedded targets, GNUPro Tools for Embedded Systems.

Embedded cross-configuration support

GNUPro Toolkit software supports embedded cross-configuration targets for the following host operating systems. For working with the tools, see Using the tools on native and embedded systems. For embedded targets, GNUPro Tools for Embedded Systems.
Table 1: Embedded cross-configuration support for Hewlett Packard systems
Host
Target
Output Format
HP-UX 10.x*
Motorola 68K
a.out
MIPS VR4300 ELF
MIPS 64 VR5xxx** ELF
PowerPC EABI ††

*
The HP-UX platform that has support for cross-configuration is the10.01 version; the 10.20 and 11.0 versions have no cross-configuration support, although they may work with embedded targets in this list.
“68K” or “m68k” signifies the 68000 series processors from Motorola.
To use the Motorola “Coldfire” version as the configuration to target, see Motorola m68k development in GNUPro Tools for Embedded Systems.
** The processors that have support are all the NEC 5000 and 5400 CPU versions.
†† EABI signifies the embedded ABI ELF format.

Table 2: Embedded cross-configuration support for Microsoft systems
Host
Target
Output Format
Microsoft Windows* NT4.0
ARM 7
ELF
ARM 7T ELF
Fujitsu SPARClite a.out, ELF
Hitachi H8/300, H8/300H, H8S COFF**
Hitachi SH1/2/3/4 COFF††, ELF
Intel i960 COFF
MicroSPARC ELF
Matsushita MN10200/MN10300 ELF
MIPS R4xx0‡‡ ELF
MIPS VR4100 ELF
MIPS VR4300 ELF
MIPS 64 VR5xxx*** ELF
MIPS LSI TinyRISC ELF
MIPS TX39 ELF
Mitsubishi D10V ELF
Motorola 68K††† COFF, ELF‡‡‡
NEC V85x**** ELF
PowerPC EABI††††
x86‡‡‡‡ ELF

* See also Cygwin: a free Win32 porting layer for UNIX, Cygwin User’s Guide and Cygwin API Reference, and applications in GNUPro Tools for Embedded Systems for details about using the tools for developing programs in the Win32 environment.
IMPORTANT: There is no support for rebuilding cross-configurations for the Windows 95 and 98 versions; rebuilding is only available for the NT version.
This is the THUMB version of the ARM processor
** The Cygnus naming convention for the Hitachi H8300, H8/300H, and H8S uses the “hms” notation for COFF.
†† The Cygnus naming convention for the Hitachi SH series uses the “hms” notation for COFF.
‡‡ The versions supported are the 4100 and 4300 series.
*** The MIPS processors that have support are the NEC 5000 and 5400 CPU versions.
††† “68K” or “m68k” signifies the 68000 series processors from Motorola.
‡‡‡ To use the Motorola “Coldfire” version as the configuration to target, see “Motorola m68k development” in GNUPro Tools for Embedded Systems.
**** The V850 and the V851 are the supported versions.
†††† EABI signifies the embedded ABI ELF format.
‡‡‡‡ The 486, 586 and 686 are the supported versions.

Table 3: Embedded cross-configuration support for Red Hat Linux systems
Host
Target
Output Format
Red Hat Linux 5.1/5.2
ARM 7
ELF
ARM 7T* ELF
Fujitsu SPARClite a.out, ELF
Hitachi SH1/2/3/4 ELF
PowerPC EABI

* This is the THUMB version of the ARM processor.
EABI signifies the embedded ABI ELF output format.


Table 4: Embedded cross-configuration support for Sun’s Solaris systems
Host
Target
Output Format
Sun SPARC Solaris 2.5*
ARM 7
ELF
ARM 7T ELF
Hitachi H8/300, H8/300H, H8S COFF
Hitachi SH1/2/3/4 COFF**
Intel i960 COFF
Matsushita MN10200/MN10300 ELF
MicroSPARC ELF
MIPS 64 R4xxx†† ELF
MIPS 64 VR4100 ELF
MIPS 64 VR4300 ELF
MIPS 64 VR5xxx ELF
MIPS LSI TinyRISC ELF
MIPS TX39 ELF
Mitsubishi D10V ELF
Mitsubishi M32R ELF
Motorola 68K‡‡ a.out, COFF, ELF***
NEC v85x††† ELF
PowerPC EABI‡‡‡
Sun MicroSPARC ELF
Sun SPARC ELF
Sun UltraSPARC ELF
Temic SPARClet a.out
x86**** COFF, ELF

* IMPORTANT: There is no support for rebuilding cross-configurations for Solaris 2.6 and 7.0 systems; rebuilding is only available for the 2.5 version.
This is the THUMB version of the ARM processor.
The Cygnus naming convention for the Hitachi H8300, H8/300H, and H8S uses the “hms” notation for COFF.
** The Cygnus naming convention for the Hitachi H8300, H8/300H, and H8S uses the “hms” notation for COFF.
†† The processors that have support are all the 4100 and the 4300 CPU versions.
‡‡ “68K” or “m68k” signifies the 68000 series processors from Motorola.
*** To use the Motorola “Coldfire” version as the configuration to target, see “Motorola m68k development” in GNUPro Tools for Embedded Systems.
††† The V850 and the V851 are the supported versions.
‡‡‡ EABI signifies the embedded ABI ELF output format.
**** The 486, 586 and 686 are the supported versions.


Table 5: Embedded cross-configuration support for Sun’s SunOS systems
Host
Target
Output Format
Sun SPARC SunOS 4.1.4
Hitachi SH1/2/3/4
COFF 
Intel i960 COFF
MIPS 64 R4xxx* ELF
MIPS 64 VR4xxx ELF
MIPS 64 VR5xxx ELF
MIPS LSI TinyRISC ELF
MIPS TX39 ELF
Mitsubishi D10V ELF
Motorola 68K** a.out, COFF
NEC V85x†† ELF
PowerPC EABI‡‡
Temic SPARClet a.out

* The processors that have support are all the 4100 and the 4300 CPU versions.
The MIPS processors that have support are all the NEC 4000 CPU versions.
The MIPS processors that have support are all the NEC 5000 and 5400 CPU versions.
** “68K” or “m68k” signifies the 68000 series processors from Motorola.
†† The V850 and the V851 are the supported versions.
‡‡ EABI signifies the embedded ABI ELF output format.

Version numbers for programs

Table 6: Tools and their versions shows the current version numbers for individual programs in GNUPro Toolkit.
Table 6: Tools and their versions
Program 
Version Numbers
bfd
2.8-gnupro-99r1
binutils
2.9-gnupro-99r1
diff
2.7-gnupro-99r1
expect
5.23-gnupro-99r1
flex
2.5-gnupro-99r1
gas
2.9-gnupro-99r1
gcc
2.9-gnupro-99r1
gcov
1.5-gnupro-99r1
gdb
4.17-gnupro-99r1
ld
2.8-gnupro-99r1
libstdc++
2.8-gnupro-99r1
libio
2.8-gnupro-99r1
make
3.75-gnupro-99r1
makeinfo
1.68-gnupro-99r1
newlib/libc
1.8-gnupro-99r1
newlib/libm
1.8-gnupro-99r1
patch
2.5-gnupro-99r1

Naming hosts and targets

Your CD is labeled to indicate the host (and target, if applicable) for which the binaries in GNUPro Toolkit are configured. The specifications used for hosts and targets in the configure script are based on a three-part naming scheme, though the scheme is slightly different between hosts and targets. For hosts, see Host names, and for targets, see Target names.

Host names

Table 7: Naming hosts shows the usage of canonical names for referring to the corresponding host platforms that Cygnus supports. For questions about compatibility, contact Cygnus (see How to contact Cygnus).
Table 7: Naming hosts
Canonical name
Platform
alpha-dec-osf4.0
DEC Alpha Digital UNIX 4.0
hppa1.1-hp-hpux10
Hewlett Packard 9000/700, HP-UX 10.01
hppa1.1-hp-hpux10.20
Hewlett Packard 9000/700, HP-UX 10.20
hppa1.1-hp-hpux11 Hewlett Packard 9000/700, HP-UX 11.0
i686-cygwin
Microsoft Windows NT-sp3/95-osr2/98*
i686-pc-linux-gnu
Intel PC, Linux RedHat 5.1/5.2/6.0
mips-sgi-irix6
SGI Irix 6.2
powerpc-ibm-aix4.2
IBM PowerPC, AIX 4.2.1
sparc-sun-solaris2.5
Sun SPARCstation, Solaris 2.5.1
sparc-sun-solaris2.6
Sun SPARCstation, Solaris 2.6
sparc-sun-solaris2.7 Sun SPARCstation, Solaris 2.7
sparc-sun-sunos4.1
Sun SPARCstation, SunOS 4.1.4

* IMPORTANT: There is no support for rebuilding cross-configurations for the Windows 95 and 98 versions; rebuilding is only available for the NT version.
See also Cygwin: a free Win32 porting layer for UNIX, Cygwin User’s Guide and Cygwin API Reference, and applications in GNUPro Tools for Embedded Systems for details about using the tools for developing programs in the Win32 environment.

Target names

The following tables (Table 8-Table 20) show the targets that Cygnus supports and their output formats. The following four types of object code formats are usable for output, listed in order of popular implementation:
See also Native configurations support and Embedded cross-configuration support for the matrices of the hosts and their target combinations that Cygnus supports. Not all targets have support on every host. Also, for more informaton on using particular tools and their targets, see GNUPro Tools for Embedded Systems and, to determine the proper configuration for a host, see Using config.guess to configure.
Table 8: ARM7/7T processor names and output formats
System name Object file format
arm-elf ELF
thumb-elf ELF
Table 9: Fujitsu processor names and output formats
System name* Object file format
sparc86x-aout a.out
sparc86x-elf ELF
sparclite-aout a.out
sparclite-elf ELF

* sparc86x” is the name for the Fujitsu Danlite board.
sparclite” is the name for the Fujitsu SPARClite board.
Table 10: H8/300 processor name and output format
System name Object file format
h8300-hms* COFF
sh-hms COFF

* hms” is the name for the Hitachi COFF object file format.
Table 11: Intel i960 processor names and output format
System name Object file format
i960-coff COFF*
sh-hms COFF
* For MON960 monitor.
Table 12: Linux processor names and output format
System name Object file format
i686-pc-linux-gnu-elf ELF
Table 13: Matsushita processor names and output format
System name Object file format
mn10200-elf ELF
mn10300-elf ELF
Table 14: Mitsubishi D10V and M32R processor names and output format
System name Object file format
d10v-elf ELF
m32r-elf  ELF
Table 15: Motorola 68K processor names and output format
System name Object file format
m68k-aout a.out 
m68k-coff COFF
m68k-elf ELF*

* “68K” or “m68k” signifies all the 68000 series processors from Motorola. 
To use the Motorola “Coldfire” version as the configuration to target, see Motorola m68k development in GNUPro Tools for Embedded Systems.
Table 16: MIPS processor names and output formats
 
System name Object file format
mips64-elf ELF
mips64vr4100-elf ELF
mips64vr4300-elf ELF
mips64vr5xxx-elf* ELF
mips-lsi-elf ELF
mips-tx39-elf ELF

* The MIPS processors that have the “mips64vr5xxx-elf” name signify the NEC VR5000 and VR5400 CPU versions.
Table 17: NEC V850 processor names and output format
System name Object file format
v850-elf ELF
Table 18: PC processor names and output format*
System name Object file format
i386-aout a.out
i386-coff COFF
i386-elf ELF

* See also Cygwin: a free Win32 porting layer for UNIX, Cygwin User’s Guide and Cygwin API Reference, and applications in GNUPro Tools for Embedded Systems for details about using the tools for developing programs in the Win32 environment.

The 486, 586 and 686 are the supported versions.

Table 19: PowerPC processor names and output format
System name Object file format
ppc-eabi EABI (ELF)
i386-coff COFF
i386-elf ELF
Table 20: SPARC processor names and output formats
System name Object file format
sparc-elf ELF
sparclet-aout* a.out

* See also Cygwin: a free Win32 porting layer for UNIX, Cygwin User’s Guide and Cygwin API Reference, and applications in GNUPro Tools for Embedded Systems for details about using the tools for developing programs in the Win32 environment.

The 486, 586 and 686 are the supported versions.

Using config.guess

config.guess is a shell script that attempts to deduce the host type from which you are working. config.guess invokes by the configure command. Use system commands like uname from the shell in which you are invoking the config.guess script, if your shell cannot find the configure command.
WARNING!
configure can represent a very large number of target name combinations of architecture, vendor, and object formats. Support is not possible for all combinations.
config.guess is remarkably adept at deciphering the proper configuration for your host; if you are building a tree to run on the same host on which you’re building, we recommend not specifying the hosttype argument (hosttype indicates a particular architecture, vendor and operating system; see Naming hosts for more specific input).
You need never run config.guess, unless you’re curious about the output.

Top|Contents|Next