Golang bootstraping Living on the tip Jakub Čajka Presented by

Slides:



Advertisements
Similar presentations
Code Review as a Great Tool in the Agile Toolbox Matthias Sohn, Stefan Lay (SAP)
Advertisements

COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) Lecturer: Hui Wu Session.
Computer Science 162 Section 1 CS162 Teaching Staff.
Embedded XINU SW & HW preparation 09/5/2008 David You.
Software Development and Software Loading in Embedded Systems.
Lab 11 Department of Computer Science and Information Engineering National Taiwan University Lab11 - Porting 2014/12/9/ 26 1.
NSTXpool Computer Upgrade WP #1685 Bill Davis December 9, 2010.
Virtualization: Not Just For Servers Hollis Blanchard PowerPC kernel hacker.
Install Software. UNIX Shell The UNIX/LINUX shell is a program important part of a Unix system. interface between the user & UNIX kernel starts running.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
March 11, 2008 USCMS Tier-2 Workshop Oh Dear God Alain made a PowerPoint presentation 1.
1 Moving Linux in CMS Vincenzo. 2 Generic Certification backward compatibility SLC4 is binary backward compatible: –Binaries built on SLC3 are usable.
Review of the numeration systems The hardware/software representation of the computer and the coverage of that representation by this course. What is the.
Lab 9 Department of Computer Science and Information Engineering National Taiwan University Lab9 - Debugging I 2014/11/4/ 28 1.
HS06 performance per watt and transition to SL6 Michele Michelotto – INFN Padova 1.
CERN IT Department CH-1211 Genève 23 Switzerland t SL(C) 5 Migration at CERN CHEP 2009, Prague Ulrich SCHWICKERATH Ricardo SILVA CERN, IT-FIO-FS.
User Mode Linux (UML): An overview and experiences. Matthew Grove SLUG Tech Talk Red Hat Europe 12 th January 2007.
This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses. ©Copyright Network Development Group Module 01 Introduction.
COMMUNITY TO COMMERCE: The Red Hat/Fedora/FOSS Model Paul W. Frields Fedora Project Leader, Red Hat October 9, 2009.
FermiLinux STS Scientific Linux 6 Connie Sieh HEPIX Spring 2009 May 25, 2009.
MIPS on OpenBSD
ELC-E - October crosstool-NG
The Linux Kernel Christoph Lameter, Ph.D. Technical Advisory Board The Linux Foundation.
Red Hat & Fedora: A Strategy for Open Source Success Jared Smith Fedora Project Leader – Red Hat, Inc. This presentation is made available under a Creative.
An Introduction to. Where did Fedora come from? Boxed set every 6 months == Failed business model [
Getting Started as an EdgeX Developer
Integrating oVirt and Foreman to Empower your Data-Center
Version Control Systems
CS5220 Advanced Topics in Web Programming Version Control with Git
Cross-Distribution Packaging Made Easy OSDC 2011, Canberra
IT Services Katarzyna Dziedziniewicz-Wojcik IT-DB.
Computer System Laboratory
Fedora Kernel Josh Boyer Presented by
The next-gen. list archiver
Where we are, where we’re goin’
Software Packaging and Releasing
Version Control overview
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Virtual Machines: Versatile Platforms for Systems and Processes
Cross-platform Libraries Technology Presentation
Introduction to Fedoraproject
Getting Started as an EdgeX Developer
Eclipse Navigation & Usage.
CS5220 Advanced Topics in Web Programming Version Control with Git
Computer System Laboratory
Testing new kernels is easy and important – you should do it, too!
Features Catalyst is the releng building tool It's used to build official releases Is being used to build weekly releases for > 2 years Supports many arches.
Spacewalk and Koji at Fermilab
Version Control Systems
ARM port(s) update Where are we now, what's coming?
Fedora Project Paul W. Frields Red Hat, Inc. Fedora Project Leader
Getting Started with Contribution to Openstack
Google Slides Fundamentals
IBM Power Systems.
Approaches Taken by Two Large Scale Open Source Projects
Introduction to Microprocessor Programming
OCP Software Stack Projects Update
Discussing an OVS/OVN Split
Docker Some slides from Martin Meyer Vagrant Box:
Computer System Laboratory
Introduction to Virtual Machines
Dreaming up a CMS in Go (golang)
Introduction to Virtual Machines
Preparation for Assignment 2
Architecture Agnostic Docker Build Systems
Azure DevOps Simplified with Production Data
Week 1 - Friday COMP 1600.
Red Pitaya with EPICS Andraz Pozar EPICS Collaboration Meeting
Presentation transcript:

Golang bootstraping Living on the tip Jakub Čajka Presented by Software Engineer Red Hat Inc. Slides are under CC-BY-SA http://creativecommons.org/licenses/by-sa/3.0/

Today's Topics Introduction Architectures supported by Golang Golang bootstrap Short Break Let's bootstrap :)

Jakub Čajka Golang maitainer in RHEL co-maintainer in Fedora

Red Hat Inc. and Golang

Golang at Red Hat

Golang in RHEL Available from RHEL - optional channel only on RHEL-7 Not supported But still receives critical security bug fixes

Architectures supported by Golang

X86_64 and (i)386 Most common architecture these days X86_64(amd64) is now using new SSA compiler Linux, Darwin, Win, Plan9, *BSD* You know where to get the HW and for how much ;) Supported by Fedora

Arm Getting more common AArch64(arm64) armv6 and newer(arm) Lots of different boards and servers(AArch64), price starting in tenths of dollars for boards going to thousands for servers Pine64, RaspPis, BananaPis, Odroids,... APM servers, AMD Seattle,... Supported by Fedora

Arm Image http://i0.wp.com/www.pine64.com/wp-content/uploads/2015/02/pine64layoutt.jpg?resize=1500%2C600&ssl=1

PowerPC Ppc64, ppc64le (big and little endian) No external linker and cgo for big endian Power6 and up(Power7+ and up with go1.7) Cheapest used power Macs(hundreds of $$) New servers/WS several thousands of dollars Talos board cheapest ppc64(le) board/WS http://reng.io/1 Tyans, IBMs,… Supported by Fedora

PowerPC Image: http://media.zones.com/images/static/power-system-s812l-s822l-prodtile.jpg

MIPS Several ABI, endianness, bit combinations Improved support with go1.7 Switches,… and two dev boards from Imagination tech Ci 20, Ci 40 Not yet an official architecture supported by Fedora mtoman(from Imagination) is working on Fedora port

MIPS Image https://community.imgtec.com/wp-content/uploads/sites/2/2016/02/creator-ci20-specs-web.jpg

S390X Big “old” IBM mainframe Added in go1.7(to be relased this summer) Hundreds thousands dollars, few full racks of space I plan bootstrap in F25 release cycle

S390X Imagehttps://en.wikipedia.org/wiki/IBM_zEnterprise_System#/media/File:System_z_Frames.JPG By Agiorgio under CC BY-SA 4.0

Sparc 32 and 64 bit Not sure about status of the port Not a part of Fedora

Gcc-go Gcc frontend Should work on most architectures as gcc, with some limitations(go stdlib,...) GCC-4 go1.3 GCC-5 go1.4 GCC-6 go1.6

Golang bootstrap

Why? Test your project with upcoming changes/features or use them right away Help upstream to catch bugs early Better bug reports, help upstream with bug triage Hack on golang :)

Build GOOS and GOARCH needs to be set 2 Stages Build small bootstrap compiler By already built compiler present on system pointed by GOROOT_BOOTSTRAP, might be cross-compiled “bootstrap toolset” Build full compiler using the bootstrap compiler

PowerPC VMs Thanks to OpenPower Hub in Brno Run by FIT VUT, IBM and Red Hat Inc. You can read more about compute resources for your opensource/academic projects at http://fit- rhlab.rhcloud.com/powerlinux-openpower- development-hosting/

Details P8 little endian KVM VMs 2VCPU 2GBRAM ~20GBDISK Public key to jcajka@fedoraproject.org In ~1week will be deleted

Break

Bootstrap!!!

Setup Go compiler on your system (go1.4+) Where? go env Check out the go source code Git clone https://go.googlesource.com/go Github is just a mirror :)

Lets build the tip cd src GOOS=linux GOARCH=amd64 GOROOT_BOOTSTRAP=”...” ./all.bash To use as a system compiler add the go bin on your path and make sure that GOROOT is set properly(optional)

Cross-build cd src GOOS=linux GOARCH=ppc64le GOROOT_BOOTSTRAP=”...” ./bootstrap.bash Now we have tar with bootstrap compiler Put it on the target system

Bootstrap the trarget tar -xf go-*-bootstrap.tbz git clone https://go.googlesource.com/go cd src GOOS=linux GOARCH=ppc64le GOROOT_BOOTSTRAP=”path to untared folder”./all.bash Put the resulting binary on the PATH

Questions? jcajka@fedoraproject.org Contact: Slides are under CC-BY-SA http://creativecommons.org/licenses/by-sa/3.0/