Upload
nguyenque
View
237
Download
0
Embed Size (px)
Citation preview
RED HAT7
Building with RHEL tools (1)
RHEL 5gcc xApplication
Sources
RHEL 6gcc yBranchedSources
Build
Build
Deploy
Deploy
RED HAT8
Building with RHEL tools (2)
RHEL 5gcc xSources
BuildDeploy
RHEL 5gcc xSourcesgcc x.1
gcc x.2gcc x.3
ApplicationSources x.1
Sources x.2Sources x.3
RHEL 5.y
RHEL 5.y+1RHEL 5.y+2
RHEL 5gcc xSources
BuildDeploy
RHEL 5gcc xSourcesgcc y.1
gcc y.2gcc y.3
Branch AppSources y.1
Sources y.2Sources y.3
RHEL 6.y
RHEL 6.y+1RHEL 6.y+2
etc.
RED HAT9
Ideal Scenario
RHEL 5(all supported
minor releases)
Sources
RHEL 6(all supported
minor releases)
Latest ToolsBuild Test &
Deploy
RED HAT11
What is Red Hat Developer Toolset?
● The latest stable tools for developers(Compiler, IDE, performance tools)
● An extra set - does not replace your existing RHEL tools
EL5
RHEL6
● Tools run on RHEL 5 & 6
● Applications built with Developer Toolset also run on RHEL 5 & 6
● Available through Developer Subscriptions and Partner Programs
● v1.1 GA, v2.0 GA available today
RED HAT12
Supported Architectures and Languages
EL
RHEL5 & 6
IA-32x86-64
C, C++& Fortran
RHEL
SOFTWARE COLLECTIONS
RED HAT13
SOFTWARE COLLECTIONS
● Structure for delivering software outside OS
● /opt (per Filesystem Hierarchy Standard)
● Different filesystem root per application version
● Activated via script
● Allows multiple versions installed in parallel
● Independent lifecycle from RHEL
RED HAT14
Developer Toolset is a Software Collection
/
usr bin gcc
etc.lib libc.so
etc.
RHELSystem compiler
opt rh root usr bin gcc
etc.enable
dts-1.x
root ...
enable
dts-2.xInternal script invoked
via “scl” utility
Developer ToolsetCompiler
RED HAT16
What’s in Developer Toolset v1.1?
● v1.1 [released]● gcc-4.7: C, C++ and Fortran Compilers & Associated Runtimes
● gdb-7.4: C, C++ and Fortran debugging
● binutils-2.22: IA-32/x86-64 assembler, linker, etc.
● Software Collection .rpm’s for RHEL6 and RHEL5
● All components released in Fedora 18, planned for future RHEL
● Can be used with Eclipse in base RHEL IA-32/x86-64
RED HAT17
What’s in Developer Toolset v1.1? [continued]
● v1.1 [released]
● SystemTap-1.8: diagnostic tool for live analysis, programmable
on-line response, and whole-system symbolic access
● Valgrind-3.8.0: profiling programs and detecting memory
management and threading errors
● OProfile-0.9.7: low overhead system wide profiler for systems of
all sizes
● elfutils-0.154: provides a library and utilities to access, modify and
analyze ELF objects
● dwz-0.7: new tool to compress DWARF debug into smaller
debuginfo files
RED HAT19
What’s updated in Developer Toolset 2.0?
● v2.0 [released September 2013]
● Contains the following rebased components:
● gcc-4.8 [rebased to 2013 release]
● gdb-7.6 [rebased, corresponds to gcc-4.8]
● SystemTap 2.1 [rebased]
● Valgrind 3.8.1 [rebased]
● Elfutils 0.155 [rebased]
● OProfile 0.9.8 [rebased]
● dwz 0.1 [rebased, DWARF optimizer & duplicate removal utility)
RED HAT20
What’s new in Developer Toolset 2.0?
● v2.0 [released September 2013]
● Provides the following new components for developers:● Eclipse IDE 4.3 provides the 2013 “Kepler” Eclipse Foundation
community release of this powerful Integrated Development Environment [RHEL6 only]
● dyninst 8.0 delivers a powerful application program interface (API) that aids the development of performance measurement tools, debuggers, and simulators by permitting the insertion of code into a running program
● strace 4.7 traces system calls, helping developers more efficiently debug programs and identify the root cause of crashes or other unexpected behavior
● memstomp helps identify code which relies on undefined behavior at a lower runtime cost than other tools such as Valgrind
RED HAT21
Updated Compiler: GCC 4.8
C++11● Leading C++11 language support● Guaranteed atomic memory accesses
LRA● Brand new “Local Register Allocator”● Contributed by Red Hat
Performance ● Compile extremely large functions faster and using less memory
HTM● Simpler concurrency● Atomic execution of source instruction
groups
RED HAT24
TOOLSET v2.x
TOOLSET v1.x
Developer Toolset Life Cycle
FIRST YEAR
1.x CRITICAL FIXES AND SECURITY UPDATES
1.x EN
D O
F L
IFE
v1.0
SECOND YEAR
v1.1
v2.0
v2.12.x CRITICAL FIXES
& SECURITY UPDATES
2.x E
ND
OF
LIF
E
MID
-YE
AR
MID
-YE
AR
● Annual major
● Mid-year minor
● Async updates
RED HAT26
Usage
● Advanced
# rhn-channel --add --channel=rhel-x86_64-workstation-dts-6
# yum-config-manager --enable rhel-server-dts-6-rpms{ }# yum install devtoolset-2
scl enable devtoolset-2 'gcc ...'
Click the Developer Toolset Eclipse 2.0 Eclipse icon{ }scl enable devtoolset-2 'bash ...'
● Usage
● Subscription
EIT
HE
RE
ITH
ER
● Installation
RED HAT29
Linkage
RHEL
glibclibgomp
libstdc++libgcc
TOOLSET
GCC 4.8GCC 4.7
APPLICATION
NewerSymbols
DynamicLinkage
StaticLinkage
BUILD
RED HAT30
Regular Linkage with RHEL Toolchain
Traditional RHEL Application
libstdc++(C++ Library)
glibc(C Library)
libgcc(conversions, etc.)
libgomp(OpenMP)
symbol symbolsymbol symbol
dynamic linkage
V2
Bugs in glibc can be fixed via errata updatesto base Red Hat Enterprise Linux
RED HAT31
libstdc++ (C++ Library)
v2
Static Linkage of Newer Symbols
Application Built with Developer Toolset
glibc(C Library)
libgcc(conversions, etc.)
libgomp(OpenMP)
symbol symbolsymbol symbol
dynamiclinkage
v2
newer symbol newer symbol
Archive of newer libstdc++ symbols (.a)
static linkage
.o .o
With DTS, bugs can mostly still be fixed via errata updates to base Red Hat Enterprise Linux.
But some symbols are statically linked, potentiallyresulting in bugs that cannot be fixed by errata alone
RED HAT32
Security Implications
Application Built with Developer Toolset
symbol symbolsymbol symbol newer symbol newer symbol
Archive of newer libstdc++ symbols (.a)
.o .o
Statically linked symbols still contain bugApplications must be rebuilt to fix this
REBUILD
Low Risk
Alerts via Security Advisory
RED HAT34
Common Questions (1)
● How do I make Developer Toolset gcc/gdb the default?
● How do I use Developer Toolset gcc to...X?
scl enable devtoolset-2 'bash ...'
scl enable devtoolset-2 'X'
RED HAT35
Common Questions (2)● Which RHEL versions can I run toolset on?
● Which RHEL versions can I run toolset-built apps on?
[Unreleased versions, features and dates are not committed, subject to change]
RED HAT36
Common Questions (3)● Gotchas and issues?
● Release notes spell these out● Main ones to be aware of
● C++11, TM are experimental, use with caution or use C++98● Some base RHEL errata are required for all features● Forwards only (don't build on RHEL6 and run on RHEL5)● Forwards only (don't build on rhel-5.8 and run on rhel-5.6)● Intended for userland development, not kernel rebuilding
RED HAT38
How do I get the Developer Toolset?● Developer Toolset
● Red Hat Developer Toolset 1.1 GA available today
● Red Hat Developer Toolset 2.0 Beta available today
● Existing Red Hat Enterprise Linux Subscribers: ● Red Hat Developer Workstation priced the same as a RHEL
Workstation
● Contact your sales rep to purchase or convert an exiting subscription.
● You can also access the Red Hat Developer Toolset 2.0 Beta
● If you are not a RHEL subscriber, you may procure:● Red Hat Developer Suite● Red Hat Developer Workstation● Red Hat Developer Subscriptions● Red Hat Not-for-Resale (NFR) Partner Subscription
RED HAT39
Access to Developer Toolset
Developer Suite
[RHEL Server-based]
Developer WorkstationDeveloper Support
Subscription
$99 Professional Enterprise Professional Enterprise
RHEL 1 1 x Developer Suite 25 x Developer Suite
Support Self Support Unlimited Developer Support by Web and Phone
Developer Toolset Included
Details for Developer Support can be found here: access.redhat.com/support/offerings/developer/soc.html
RED HAT40
Subscribing to the Developer Toolset Channel (1)● Subscribing to a RHEL Channel
https://access.redhat.com/knowledge/solutions/11312
● Access RHN Channels
RED HAT43
Command Line Access to Developer Toolset v1.1
● Subscribe to channel (typical example with RHEL6 x86-64):
● RHN Classicrhn-channel --available-channelsrhn-channel --add –channel=rhel-x86_64-server-dts-6rhn-channel --list (to verify channel addition)
● Red Hat Subscription Managementsubscription-manager list --availablesubscription-manager subscribe --pool=<pool_id>subscription-manager list --consumed (verify subscription attached)yum-config-manager --enable rhel-server-dts-6-rpms
● Install● yum install devtoolset-1.1
● See User Guide for full details:
● http://red.ht/devToolset
RED HAT44
Cmd Line Access to Developer Toolset v2.0● Subscribe to channel (typical example with RHEL6 x86-64):
● RHN Classicrhn-channel --available-channelsrhn-channel --add –channel=rhel-x86_64-server-optional-6 (required)rhn-channel --add –channel=rhel-x86_64-server-dts2-6rhn-channel --list (to verify channel addition)
● Red Hat Subscription Managementsubscription-manager list --availablesubscription-manager subscribe --pool=<pool_id>subscription-manager list --consumed (verify subscription attached)yum-config-manager --enable rhel-server-optional-6-rpms (required)yum-config-manager --enable rhel-server-dts2-6-rpms
● Install● yum install devtoolset-2
● See User Guide for full details:
● http://red.ht/devToolset
RED HAT45
Developer Toolset v2 Workflow
Procure Toolset subscription: - Developer Workstation - Developer Subscriptions - Developer Suite
Debug: - scl enable devtoolset-2 'gdb'
Test: - QA app on target RHEL versions
Deploy: - No special steps required
Support: - Toolset components supported in the same way as RHEL tools - FAQs and Documentation on portal - Support groups for extra info
PR
OC
UR
EIN
ST
AL
L
BU
ILD
TE
ST
DE
PL
OY
SU
PP
OR
T
Subscribe: - Subscribe to Toolset RHEL channel (optionally using Customer Portal)
SU
BS
CR
IBE
DE
BU
G
DE
VE
LO
P
No
Develop in IDE: - scl enable devtoolset-2 'eclipse' (or click Toolset Eclipse icon)
Install RPMs on RHEL: - yum install devtoolset-2 - Read user guide / release notes
UsingIDE?
Compile: - scl enable devtoolset-2 'gcc'
Yes
RED HAT46
Links
● Resources● Developer Program
● http://red.ht/rheldevelop● Developer Toolset Documentation
● http://red.ht/devToolset● Red Hat Summit talk/video:
● bit.ly/dtstalk
RED HAT47
Contacts● General questions, thoughts, etc.
● [email protected] ● Red Hat Developer Toolset
● Product Manager
– Brian Gollaher ([email protected])● Engineering Lead
– Matt Newsome ([email protected])