Red Hat Enterprise Linux 6

Developer Guide

An introduction to application development tools in Red Hat Enterprise Linux 6

Edition 0


Edited by

Jacquelynn East

Red Hat Engineering Content Services

Red Hat Subject Matter Experts

Dave Brolley

Red Hat Engineering Tools Development

William Cohen

Red Hat Engineering Tools Development

Roland Grunberg

Eclipse and Eclipse plug-ins 
Red Hat Engineering Tools Development

Aldy Hernandez

Compiling and Building 
Red Hat Engineering Tools Development

Karsten Hopp

Base Operating System Core Services - BRNO

Jakub Jelinek

Red Hat Engineering Tools Development

Jeff Johnston

Eclipse and Eclipse plug-ins 
Red Hat Engineering Tools Development

Benjamin Kosnik

Libraries and Runtime Support 
Red Hat Engineering Tools Development

Chris Moller

Red Hat Engineering Tools Development

Phil Muldoon

Red Hat Engineering Tools Development

Alex Kurtakov

Eclipse and Eclipse plug-ins 
Red Hat Engineering Tools Development

Charley Wang

Eclipse and Eclipse plug-ins 
Red Hat Engineering Tools Development

Development Community

Kent Sebastian


Legal Notice

Copyright © 2012 Red Hat, Inc. and others.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack Logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.


This document describes the different features and utilities that make Red Hat Enterprise Linux 6 an ideal enterprise platform for application development. It focuses on Eclipse as an end-to-end integrated development environment (IDE), but also includes command line tools and other utilities outside Eclipse.
1. Document Conventions
1.1. Typographic Conventions
1.2. Pull-quote Conventions
1.3. Notes and Warnings
2. Getting Help and Giving Feedback
2.1. Do You Need Help?
2.2. We Need Feedback!
1. Eclipse Development Environment
1.1. Starting an Eclipse project
1.2. Eclipse User Interface
1.2.1. The Quick Access Menu
1.2.2. Keyboard Shortcuts
1.2.3. Customize Perspective
1.3. Editing C/C++ Source Code in Eclipse
1.3.1. libhover Plug-in
1.4. Editing Java Source Code in Eclipse
1.5. Eclipse RPM Building
1.6. Eclipse Documentation
2. Collaborating
2.1. Concurrent Versions System (CVS)
2.1.1. CVS Overview
2.1.2. Typical Scenario
2.1.3. CVS Documentation
2.2. Apache Subversion (SVN)
2.2.1. Installation
2.2.2. SVN Repository
2.2.3. Importing Data
2.2.4. Working Copies
2.2.5. Committing Changes
2.2.6. SVN Documentation
2.3. Git
2.3.1. Installation
2.3.2. Initial Setup
2.3.3. Git Repository
2.3.4. Untracked Files
2.3.5. Unmodified Files
2.3.6. Modified Status
2.3.7. Staged Files
2.3.8. Remote Repositories
2.3.9. Commit Logs
2.3.10. Fixing Problems
2.3.11. Git Documentation
3. Libraries and Runtime Support
3.1. Version Information
3.2. Compatibility
3.2.1. Static Linking
3.3. Library and Runtime Details
3.3.1. compat-glibc
3.3.2. The GNU C++ Standard Library
3.3.3. Boost
3.3.4. Qt
3.3.5. KDE Development Framework
3.3.6. GNOME Power Manager
3.3.7. NSS Shared Databases
3.3.8. Python
3.3.9. Java
3.3.10. Ruby
3.3.11. Perl
4. Compiling and Building
4.1. GNU Compiler Collection (GCC)
4.1.1. GCC Status and Features
4.1.2. Language Compatibility
4.1.3. Object Compatibility and Interoperability
4.1.4. Backwards Compatibility Packages
4.1.5. Previewing Red Hat Enterprise Linux 6 compiler features on Red Hat Enterprise Linux 5
4.1.6. Running GCC
4.1.7. GCC Documentation
4.2. Distributed Compiling
4.3. Autotools
4.3.1. Autotools Plug-in for Eclipse
4.3.2. Configuration Script
4.3.3. Autotools Documentation
4.4. Eclipse Built-in Specfile Editor
4.5. CDT in Eclipse
4.5.1. Managed Make Project
4.5.2. Standard Make Project
4.5.3. Autotools Project
4.6. build-id Unique Identification of Binaries
4.7. Software Collections and scl-utils
5. Debugging
5.1. ELF Executable Binaries
5.2. Installing Debuginfo Packages
5.2.1. Installing Debuginfo Packages for Core Files Analysis
5.3. GDB
5.3.1. Simple GDB
5.3.2. Running GDB
5.3.3. Conditional Breakpoints
5.3.4. Forked Execution
5.3.5. Debugging Individual Threads
5.3.6. Alternative User Interfaces for GDB
5.3.7. GDB Documentation
5.4. Variable Tracking at Assignments
5.5. Python Pretty-Printers
5.6. Debugging C/C++ Applications with Eclipse
6. Profiling
6.1. Valgrind
6.1.1. Valgrind Tools
6.1.2. Using Valgrind
6.1.3. Valgrind Plug-in for Eclipse
6.1.4. Valgrind Documentation
6.2. OProfile
6.2.1. OProfile Tools
6.2.2. Using OProfile
6.2.3. OProfile Plug-in For Eclipse
6.2.4. OProfile Documentation
6.3. SystemTap
6.3.1. SystemTap Compile Server
6.3.2. SystemTap Support for Unprivileged Users
6.3.3. SSL and Certificate Management
6.3.4. SystemTap Documentation
6.4. Performance Counters for Linux (PCL) Tools and perf
6.4.1. Perf Tool Commands
6.4.2. Using Perf
6.5. ftrace
6.5.1. Using ftrace
6.5.2. ftrace Documentation
7. Red Hat Developer Toolset
7.1. What is Red Hat Developer Toolset?
7.2. What Does Red Hat Developer Toolset Offer?
7.3. Which Platforms Are Supported?
7.4. Where to Find More Information?
8. Red Hat Software Collections
8.1. What is Red Hat Software Collections?
8.2. What Does Red Hat Software Collections Offer?
8.3. Which Platforms Are Supported?
8.4. How to Use Red Hat Software Collections?
8.5. How to Deploy Applications That Use Red Hat Software Collections?
8.6. Where to Find More Information?
9. Documentation Tools
9.1. Publican
9.1.1. Commands
9.1.2. Create a New Document
9.1.3. Files
9.1.4. Building a Document
9.1.5. Packaging a Publication
9.1.6. Brands
9.1.7. Building a Website
9.1.8. Documentation
9.2. Doxygen
9.2.1. Doxygen Supported Output and Languages
9.2.2. Getting Started
9.2.3. Running Doxygen
9.2.4. Documenting the Sources
9.2.5. Resources
A. Appendix
A.1. mallopt
B. Revision History