developer toolset 2 - people.redhat.compeople.redhat.com/mnewsome/summit2013/dts 2.0 - eng...7 red...

49
RED HAT 1 DEVELOPER TOOLSET 2.0 The Latest, Stable Tools On and For Multiple RHEL Releases v1.4 PDF

Upload: nguyenque

Post on 30-Jun-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

RED HAT1

DEVELOPER TOOLSET 2.0

The Latest, Stable Tools On and For Multiple RHEL Releases

v1.4 PDF

RED HAT2

RED HATDEVELOPERTOOLSET

RED HATENTERPRISELINUX

YOURQUESTIONS

RED HAT3

RED HATDEVELOPERTOOLSET

2.0 GA Release

Released 12th September 2013

RED HATENTERPRISELINUX TOOLS

RED HAT5

Toolchain Support

RHEL5 RHEL6 ☑ VERY HIGH STABILITY

☑ SOME NEW FEATURES

☑ 10 YEARS SUPPORT

RED HAT6

Toolchain Support

RHEL5 RHEL6 F19

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 HATDEVELOPERTOOLSET

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 HAT15

What’s in Developer Toolset v1.1?

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 HAT18

What’s in Developer Toolset v2.0?

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 HAT22

Eclipse Integrated Development Environment (“Kepler”)[RHEL6 only]

RED HAT23

Developer Toolset Life Cycle

SPRING SUMMER TOOLSET

ANNUAL RELEASE DRIVEN BY GCC

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

PRACTICALITIES

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

DEMONSTRATION

UNDER THEHOOD

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

COMMONQUESTIONS

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

ACCESSING DEVELOPER TOOLSET

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 HAT41

Subscribing to the Developer Toolset Channel (2)

RED HAT42

Subscribing to the Developer Toolset Channel (3)

● Subscribe Target Systems

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])

YOURQUESTIONS

THANKYOU