Debian GNU/Linux Port for RISC-V 64-Bits

Total Page:16

File Type:pdf, Size:1020Kb

Debian GNU/Linux Port for RISC-V 64-Bits DebianDebian GNU/LinuxGNU/Linux portport forfor RISCRISC-V-V 64-bits64-bits Manuel A. Fernandez Montecelo <[email protected]> 8th RISC-V Workshop :: May 7-10, 2018 Barcelona Supercomputing Center && Universitat Politècnica de Catalunya OutlineOutline ➢Goals of this project ➢Why a Debian Port for RISC-V? ➢What is Debian? ➢What is a Debian Port? ➢The Plan ➢History / Making Of (1st and 2nd bootstrap) ➢Current Status ➢How the RISC-V community can help ➢... and what are the benefits ➢Thanks ➢Questions / comments 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 2/46 GoalsGoals ofof thisthis projectproject ➢To have Debian ready to install & run on RISC-V based systems ➢Fully integrated with Debian infrastructure ➢Not a “one shot”, but continously updated ➢With time, to make it as well supported as “the big ones” ➢i386, x86_64 (“amd64” in Debian), arm64, ppc64el 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 3/46 WhyWhy aa DebianDebian PortPort forfor RISC-V?RISC-V? (1)(1) ➢Personal reasons: ➢Interested in both Debian and RISC-V ➢I’m already a Debian Developer ➢I like RISC-V design and goals, started following in 2014 ➢They are a good fit, philosophically and technically ➢And I would like to improve and help to grow both projects ➢I worked previously in the OpenRISC or1k port ➢... and had lots of fun!! ➢No other major GNU/Linux distributions in sight ➢(... by the time that I started, 2014~2015) ➢And ultimately, I would like to run Free Software and Debian when I get my own RISC-V based hardware 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 4/46 WhyWhy aa DebianDebian PortPort forfor RISC-V?RISC-V? (1(1 bis)bis) ➢Personal reasons: ➢Interested in both Debian and RISC-V ➢I’m already a Debian Developer ➢I like RISC-V design and goals, started following in 2014 ➢They are a good fit, philosophically and technically ➢And I would like to improve and help to grow both projects ➢I worked previously in the OpenRISC or1k port ➢... and had lots of fun!! ➢No other major GNU/Linux distributions in sight ➢(... by the time that I started, 2014~2015) ➢And ultimately, I would like to run Free Software and Debian when I get my own on the now-existing RISC-V based hardware 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 5/46 WhyWhy aa DebianDebian PortPort forfor RISC-V?RISC-V? (2)(2) ➢Technical and philosophical reasons: ➢Debian welcomes and already supports many ports ➢Including similar architectures, active now or in the recent past, some listed from “RISC-V Genealogy”: ➢MIPS (mips, mipsel) ➢Hitachi SuperH (sh4) ➢IBM PowerPC (powerpc, ppc64, ppc64el) ➢... and DEC Alpha, SPARC (32 and 64), older ARMs, PA-RISC ➢Similar or compatible goals, and methods, e.g.: ➢Aiming for openness, freedom ➢Both based, built upon same tools ➢GNU toolchain ─among others─, Linux, FOSS ecosystem ➢Striving for good technical solutions over other considerations 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 6/46 WhatWhat isis Debian?Debian? (1)(1) ➢The Project: A community of individuals ➢Mostly volunteers ➢No overall or significant control by companies ➢... who care about Free, Open-Source Software ➢Goal: to create a full, comprehensive “Operating System” ➢Large set of software packages, coherent and well integrated ➢“stable” releases every ~2 years (also used as “rolling release”) ➢Keeping “Software Freedom” as a core goal ➢Manifesto: “... developed openly in the spirit of Linux and GNU...” ➢Social Contract ➢Debian Free Software Guidelines (DSFG) 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 7/46 WhatWhat isis Debian?Debian? (2)(2) ➢Mostly known as a GNU/Linux “distribution” ➢Started by Ian Murdock in 1993 ➢First “stable” release in 1996 ➢One of the major “flavours” (.deb packages) ➢More than 27k source packages in 2018 ➢Basis of many derivatives (“downstreams”) ➢Ubuntu, Raspbian, SteamOS, Knoppix, gNewSense, Linux Mint Debian Edition, Tails... ➢...which also supports other kernels ➢Currently: FreeBSD and GNU Hurd 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 8/46 WhatWhat isis aa DebianDebian Port?Port? (1)(1) ➢In short, ABI of the combination of {computer arch + OS kernel + libc} ➢Computer architecture: ➢Many, currently and over the years (details in next slides) ➢Kernel + C library: ➢Mostly Linux + GNU libc (if not mentioned explicitly) ➢But also: ➢kFreeBSD, FreeBSD kernel + GNU libc (amd64 and i386) ➢GNU Hurd + GNU libc (i386) ➢C library: ➢GNU libc in all existing ports within the Debian infrastructure ➢But some people are interested in experiments ➢e.g. Linux + musl (libc) 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 9/46 WhatWhat isis aa DebianDebian Port?Port? (2)(2) ➢Three kinds of ports: ➢Outside of Debian infrastructure ➢Some derivatives are arguably an “external” port ➢e.g. Raspbian, mostly recompilation / optimisation for Raspberry Pi ➢Anybody can start one of these without official help or coordination with Debian ➢But often there’s collaboration in one way or another ➢Unofficial / unsupported ➢Not in “stable” releases, but hosted in Debian infrastructure ➢Officially supported ➢Part of the “stable” releases and fully supported ➢Ports don’t born “fully supported” ➢they work their way up to it 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 10/46 WhatWhat isis aa DebianDebian Port?Port? (3)(3) ➢Criteria for “officially suported” ports: ➢Be able to build almost all of the “source” packages ➢Have enough people responsible for it ➢addressing issues during full Stable release cycles ➢Have hardware available, redundant, well managed, etc. ➢And in return: ➢Become part of the “stable” releases and have full support for all packages (all ports) ➢For 3-5 years (“stable” release lifetime) ➢Including security support for all, not only a “core” set of packages 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 11/46 WhatWhat isis aa DebianDebian Port?Port? (4)(4) ➢“Unofficial” or “unsupported” ports: ➢When they don’t qualify as “official” for some reason ➢Hardware not available ➢Not enough people behind ➢Many packages fail to compile ➢e.g. missing Java or Haskell ecosystem (no working compiler), no GUIs, ... ➢... but are hosted in the infrastructure: ➢Can be downloaded / upgraded from *.debian.org ➢Secure, cryptographically signed ➢Get continous updates of software packages ➢When contributors upload new versions to the archive, they are compiled automatically for all ports, within minutes/hours 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 12/46 WhatWhat isis aa DebianDebian Port?Port? (5)(5) ➢Currently active: ➢ Fully supported ports, “officially suported”: ➢amd64 (x86_64), i386 (targetting i686 nowadays) ➢arm64/armel/armhf, mips/mipsel/mips64el, ppc64el, s390x ➢Not well supported: ➢Old ones with decreasing interest or available hardware: ➢alpha, ia64, hppa, m68k, powerpc/powerpcpse/ppc64, sh4, sparc64, x32 (x86_64 with ilp32)... ➢... and new ones ➢Retired: ➢Supported once, but not in the infrastructure anymore: ➢arm/armeb (old 32 bits ABIs, LE/BE), sparc (32 bits), parisc, s390 (32 bits BE)... 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 13/46 WhatWhat isis aa DebianDebian Port?Port? (6)(6) ➢What maintainers of packages see: ➢e.g. for Firefox: https://buildd.debian.org/status/package.php?p=firefox-esr 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 14/46 WhatWhat isis aa DebianDebian Port?Port? (6)(6) ➢What maintainers of packages see: ➢e.g. for Firefox: https://buildd.debian.org/status/package.php?p=firefox-esr Port/Arch Build Build machines, logs, Name Status historic, etc. 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 15/46 WhatWhat isis aa DebianDebian Port?Port? (6)(6) ➢What maintainers of packages see: ➢e.g. for Firefox: https://buildd.debian.org/status/package.php?p=firefox-esr Port/Arch Build Build machines, logs, Name Status historic, etc. riscv64 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 16/46 TheThe PlanPlan (1)(1) ➢Broad steps: 1)Bootstrap and create viable, basic OS disk images 2)Get it to the state of “unofficial” / “unsupported”, until all criteria for “stable” are met ➢Prepare infrastructure (e.g. auto-builders), wiki, doc, etc. ➢Import bootstrapped set in the infrastructure ➢Fully rebootstrap ➢Build as many packages as possible ➢And make sure that they work ➢Keep the port running, in good state 3)In the future, when feasible, “official” ─ as well supported as main ports 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 17/46 TheThe Plan:Plan: SoftwareSoftware decisionsdecisions (2)(2) ➢Software-wise, the target is to have a port with: ➢Linux kernel ➢GNU libc ➢GCC-based toolchain ➢LLVM available (when ready), but not the main toolchain ➢Rationale: all current and well supported Debian ports target these ➢Userland is basically the same for all Debian ports ➢including those with other kernels 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 18/46 TheThe Plan:Plan: HardwareHardware decisionsdecisions (3)(3) ➢Hardware-wise, the target is 64-bit little-endian ➢Both 64-bit and LE have been the focus for general purpose computing for years ➢Debian (Linux/Unix)-capable RISC-V hardware implement this ➢Simply, it was announced (and then became true) the most popular target capable of running general purpose OS ➢Dev boards or servers that might become available in the next few years for end-users, likely 64-bit LE too ➢RV64GC ➢As it’s the “default flavour” recommended by the people most involved ➢could be reverted if needed (e.g. popular hardware without it) ➢...or have both flavours 8th RISC-V Workshop Debian GNU/Linux port for RISC-V 64-bit 19/46 TheThe Plan:Plan: NotNot ConsideredConsidered (4)(4) ➢Why not 32-bit or 128-bit variants: ➢RISC-V side: ➢Design, toolchain and simulator support have not been explored as deeply for 32-bit, support lacking in some areas ➢RV32 hardware that appeared over time not ready for general purpose OSs ➢...and 128 is simply not realistic at this time ➢But maybe in the future? :-) ➢Debian side: ➢32-bit ports already struggle to get large packages built ➢e.g.
Recommended publications
  • Also Includes Slides and Contents From
    The Compilation Toolchain Cross-Compilation for Embedded Systems Prof. Andrea Marongiu ([email protected]) Toolchain The toolchain is a set of development tools used in association with source code or binaries generated from the source code • Enables development in a programming language (e.g., C/C++) • It is used for a lot of operations such as a) Compilation b) Preparing Libraries Most common toolchain is the c) Reading a binary file (or part of it) GNU toolchain which is part of d) Debugging the GNU project • Normally it contains a) Compiler : Generate object files from source code files b) Linker: Link object files together to build a binary file c) Library Archiver: To group a set of object files into a library file d) Debugger: To debug the binary file while running e) And other tools The GNU Toolchain GNU (GNU’s Not Unix) The GNU toolchain has played a vital role in the development of the Linux kernel, BSD, and software for embedded systems. The GNU project produced a set of programming tools. Parts of the toolchain we will use are: -gcc: (GNU Compiler Collection): suite of compilers for many programming languages -binutils: Suite of tools including linker (ld), assembler (gas) -gdb: Code debugging tool -libc: Subset of standard C library (assuming a C compiler). -bash: free Unix shell (Bourne-again shell). Default shell on GNU/Linux systems and Mac OSX. Also ported to Microsoft Windows. -make: automation tool for compilation and build Program development tools The process of converting source code to an executable binary image requires several steps, each with its own tool.
    [Show full text]
  • Riscv-Software-Stack-Tutorial-Hpca2015
    Software Tools Bootcamp RISC-V ISA Tutorial — HPCA-21 08 February 2015 Albert Ou UC Berkeley [email protected] Preliminaries To follow along, download these slides at http://riscv.org/tutorial-hpca2015.html 2 Preliminaries . Shell commands are prefixed by a “$” prompt. Due to time constraints, we will not be building everything from source in real-time. - Binaries have been prepared for you in the VM image. - Detailed build steps are documented here for completeness but are not necessary if using the VM. Interactive portions of this tutorial are denoted with: $ echo 'Hello world' . Also as a reminder, these slides are marked with an icon in the upper-right corner: 3 Software Stack . Many possible combinations (and growing) . But here we will focus on the most common workflows for RISC-V software development 4 Agenda 1. riscv-tools infrastructure 2. First Steps 3. Spike + Proxy Kernel 4. QEMU + Linux 5. Advanced Cross-Compiling 6. Yocto/OpenEmbedded 5 riscv-tools — Overview “Meta-repository” with Git submodules for every stable component of the RISC-V software toolchain Submodule Contents riscv-fesvr RISC-V Frontend Server riscv-isa-sim Functional ISA simulator (“Spike”) riscv-qemu Higher-performance ISA simulator riscv-gnu-toolchain binutils, gcc, newlib, glibc, Linux UAPI headers riscv-llvm LLVM, riscv-clang submodule riscv-pk RISC-V Proxy Kernel (riscv-linux) Linux/RISC-V kernel port riscv-tests ISA assembly tests, benchmark suite All listed submodules are hosted under the riscv GitHub organization: https://github.com/riscv 6 riscv-tools — Installation . Build riscv-gnu-toolchain (riscv*-*-elf / newlib target), riscv-fesvr, riscv-isa-sim, and riscv-pk: (pre-installed in VM) $ git clone https://github.com/riscv/riscv-tools $ cd riscv-tools $ git submodule update --init --recursive $ export RISCV=<installation path> $ export PATH=${PATH}:${RISCV}/bin $ ./build.sh .
    [Show full text]
  • Operating Systems and Applications for Embedded Systems >>> Toolchains
    >>> Operating Systems And Applications For Embedded Systems >>> Toolchains Name: Mariusz Naumowicz Date: 31 sierpnia 2018 [~]$ _ [1/19] >>> Plan 1. Toolchain Toolchain Main component of GNU toolchain C library Finding a toolchain 2. crosstool-NG crosstool-NG Installing Anatomy of a toolchain Information about cross-compiler Configruation Most interesting features Sysroot Other tools POSIX functions AP [~]$ _ [2/19] >>> Toolchain A toolchain is the set of tools that compiles source code into executables that can run on your target device, and includes a compiler, a linker, and run-time libraries. [1. Toolchain]$ _ [3/19] >>> Main component of GNU toolchain * Binutils: A set of binary utilities including the assembler, and the linker, ld. It is available at http://www.gnu.org/software/binutils/. * GNU Compiler Collection (GCC): These are the compilers for C and other languages which, depending on the version of GCC, include C++, Objective-C, Objective-C++, Java, Fortran, Ada, and Go. They all use a common back-end which produces assembler code which is fed to the GNU assembler. It is available at http://gcc.gnu.org/. * C library: A standardized API based on the POSIX specification which is the principle interface to the operating system kernel from applications. There are several C libraries to consider, see the following section. [1. Toolchain]$ _ [4/19] >>> C library * glibc: Available at http://www.gnu.org/software/libc. It is the standard GNU C library. It is big and, until recently, not very configurable, but it is the most complete implementation of the POSIX API. * eglibc: Available at http://www.eglibc.org/home.
    [Show full text]
  • A.5.1. Linux Programming and the GNU Toolchain
    Making the Transition to Linux A Guide to the Linux Command Line Interface for Students Joshua Glatt Making the Transition to Linux: A Guide to the Linux Command Line Interface for Students Joshua Glatt Copyright © 2008 Joshua Glatt Revision History Revision 1.31 14 Sept 2008 jg Various small but useful changes, preparing to revise section on vi Revision 1.30 10 Sept 2008 jg Revised further reading and suggestions, other revisions Revision 1.20 27 Aug 2008 jg Revised first chapter, other revisions Revision 1.10 20 Aug 2008 jg First major revision Revision 1.00 11 Aug 2008 jg First official release (w00t) Revision 0.95 06 Aug 2008 jg Second beta release Revision 0.90 01 Aug 2008 jg First beta release License This document is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License [http:// creativecommons.org/licenses/by-nc-sa/3.0/us/]. Legal Notice This document is distributed in the hope that it will be useful, but it is provided “as is” without express or implied warranty of any kind; without even the implied warranties of merchantability or fitness for a particular purpose. Although the author makes every effort to make this document as complete and as accurate as possible, the author assumes no responsibility for errors or omissions, nor does the author assume any liability whatsoever for incidental or consequential damages in connection with or arising out of the use of the information contained in this document. The author provides links to external websites for informational purposes only and is not responsible for the content of those websites.
    [Show full text]
  • Debian Med Integrated Software Environment for All Medical Purposes Based on Debian GNU/Linux
    Debian Med Integrated software environment for all medical purposes based on Debian GNU/Linux Andreas Tille Debian OSWC, Malaga 2008 1 / 18 Structure 1 What is Debian Med 2 Realisation 3 Debian Med for service providers 2 / 18 Motivation Free Software in medicine not widely established yet Some subareas well covered Medical data processing more than just practice and patient management Preclinical research of microbiology and genetics as well as medical imaging ! Pool of existing free medical software 3 / 18 Profile of the envisaged user Focus on medicine not computers Unreasonable effort to install upstream programs No interest in administration Interest reduced onto free medical software Easy usage Security and confidence Native-language documentation and interface 4 / 18 Customising Debian Debian > 20000 packages Focus on medical subset of those packages Packaging and integrating other medical software Easy installation and configuration Maintaining a general infrastructure for medical users General overview about free medical software Propagate the idea of Free Software in medicine Completely integrated into Debian - no fork 5 / 18 Special applications 6 / 18 Basic ideas Do not make a separate distribution but make Debian fit for medical care No development of medical software - just smooth integration of third-party software Debian-Developer = missing link between upstream author and user 7 / 18 Debian - adaptable for any purpose? Developed by more than 1000 volunteers Flexible, not bound on commercial interest Strict rules (policy) glue all things together Common interest of each individual developer: Get the best operating system for himself. Some developers work in the field of medicine In contrast to employees of companies every single Debian developer has the freedom and ability to realize his vision Every developer is able to influence the development of Debian - he just has to do it.
    [Show full text]
  • Annual Report
    [Credits] Licensed under Creative Commons Attribution license (CC BY 4.0). All text by John Hsieh and Georgia Young, except the Letter from the Executive Director, which is by John Sullivan. Images (name, license, and page location): Wouter Velhelst: cover image; Kori Feener, CC BY-SA 4.0: inside front cover, 2-4, 8, 14-15, 20-21, 23-25, 27-29, 32-33, 36, 40-41; Michele Kowal: 5; Anonymous, CC BY 3.0: 7, 16, 17; Ruben Rodriguez, CC BY-SA 4.0: 10, 13, 34-35; Anonymous, All rights reserved: 16 (top left); Pablo Marinero & Cecilia e. Camero, CC BY 3.0: 17; Free This report highlights activities Software Foundation, CC BY-SA 4.0: 18-19; Tracey Hughes, CC BY-SA 4.0: 30; Jose Cleto Hernandez Munoz, CC BY-SA 3.0: 31, Pixabay/stevepb, CC0: 37. and detailed financials for Fiscal Year 2016 Fonts: Letter Gothic by Roger Roberson; Orator by John Scheppler; Oswald by (October 1, 2015 - September 30, 2016) Vernon Adams, under the OFL; Seravek by Eric Olson; Jura by Daniel Johnson. Created using Inkscape, GIMP, and PDFsam. Designer: Tammy from Creative Joe. 1] LETTER FROM THE EXECUTIVE DIRECTOR 2] OUR MISSION 3] TECH 4] CAMPAIGNS 5] LIBREPLANET 2016 6] LICENSING & COMPLIANCE 7] CONFERENCES & EVENTS 7 8] LEADERSHIP & STAFF [CONTENTS] 9] FINANCIALS 9 10] OUR DONORS CONTENTS our most important [1] measure of success is support for the ideals of LETTER FROM free software... THE EXECUTIVE we have momentum DIRECTOR on our side. LETTER FROM THE 2016 EXECUTIVE DIRECTOR DEAR SUPPORTERS For almost 32 years, the FSF has inspired people around the Charity Navigator gave the FSF its highest rating — four stars — world to be passionate about computer user freedom as an ethical with an overall score of 99.57/100 and a perfect 100 in the issue, and provided vital tools to make the world a better place.
    [Show full text]
  • GNU Toolchain for Atmel ARM Embedded Processors
    RELEASE NOTES GNU Toolchain for Atmel ARM Embedded Processors Introduction The Atmel ARM GNU Toolchain (5.3.1.487) supports Atmel ARM® devices. The ARM toolchain is based on the free and open-source GCC. This toolchain is built from sources published by ARM's "GNU Tools for ARM Embedded Processors" project at launchpad.net (https://launchpad.net/gcc-arm-embedded). The toolchain includes compiler, assembler, linker, binutils (GCC and binutils), GNU Debugger (GDB with builtin simulator) and Standard C library (newlib, newlib nano). 42368A-MCU-06/2016 Table of Contents Introduction .................................................................................... 1 1. Supported Configuration ......................................................... 3 1.1. Supported Hosts ................................................................... 3 1.2. Supported Targets ................................................................. 3 2. Downloading, Installing, and Upgrading ................................. 4 2.1. Downloading/Installing on Windows .......................................... 4 2.2. Downloading/Installing on Linux ............................................... 4 2.3. Downloading/Installing on Mac OS ........................................... 4 2.4. Upgrading ............................................................................ 4 3. Layout and Components ......................................................... 5 3.1. Layout ................................................................................. 5 3.2. Components
    [Show full text]
  • The GNU Toolchain for ARM Targets HOWTO Wookey Chris Rutter Jeff Sutherland Paul Webb
    This chapter contains information on building a GNU toolchain for ARM targets. The GNU Toolchain for ARM targets HOWTO Wookey Chris Rutter Jeff Sutherland Paul Webb This document contains information on setting up a GNU toolchain for ARM targets. It details both some pre-compiled toolchains which you can install, and how to compile your own toolchain, as either a native or a cross-compiler. 1. Credits This document is based on the work of Chris Rutter (now, sadly, deceased) who’s ’Building the GNU toolchain for ARM targets’ document was gospel for some time. It eventually became out of date so Wookey (<[email protected]>) updated it and gave it a substantion rewrite, adding the pre-built toolchain info at the same time. Paul Webb (<[email protected]>) did the initial conversion to DocBook, Phil 1 The GNU Toolchain for ARM targets HOWTO Blundell (<[email protected]>) provided info on the current state of the art and comments on the draft. Jeff Sutherland (<[email protected]>) then fixed the bits that were still wrong, and now maintains the doc, along with Wookey. Thanx to all. As well as being on-line as a stand-alone HOWTO, this document is also available as a chapter of the book: A ’Guide to ARMLinux for Developers’ (http://www.aleph1.co.uk/armlinux/thebook.html) 2 This chapter contains information on building a GNU toolchain for ARM targets. 1. Toolchain overview The toolchain actually consists of a number of components. The main one is the compiler itself gcc, which can be native to the host or a cross-compiler.
    [Show full text]
  • GNU Texmacs User Manual Joris Van Der Hoeven
    GNU TeXmacs User Manual Joris van der Hoeven To cite this version: Joris van der Hoeven. GNU TeXmacs User Manual. 2013. hal-00785535 HAL Id: hal-00785535 https://hal.archives-ouvertes.fr/hal-00785535 Preprint submitted on 6 Feb 2013 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. GNU TEXMACS user manual Joris van der Hoeven & others Table of contents 1. Getting started ...................................... 11 1.1. Conventionsforthismanual . .......... 11 Menuentries ..................................... 11 Keyboardmodifiers ................................. 11 Keyboardshortcuts ................................ 11 Specialkeys ..................................... 11 1.2. Configuring TEXMACS ..................................... 12 1.3. Creating, saving and loading documents . ............ 12 1.4. Printingdocuments .............................. ........ 13 2. Writing simple documents ............................. 15 2.1. Generalities for typing text . ........... 15 2.2. Typingstructuredtext ........................... ......... 15 2.3. Content-basedtags
    [Show full text]
  • Introduction to Autotools
    Introduction to Autotools July 8, 2007 Jim Huang (jserv) <[email protected]> Overview ● Autoconf, Automake, and libtool working together ● Address portability, configuration needs ● Support GNU Coding Standards ● Provide consistent user experience ● Very popular in Free/Open Source World The Bad Old Days ● 1990 ● Edit Makefile ● Edit source ● Build ● No ªmake installº Handy Quote It it easier to write a portable shell than to write a portable shell script. -- Larry Wall Useful tools ● colormake – make with colorful decoration ● remake – modified version of GNU make with debugging and tracing support TheThe realreal ProblemProblem How do we handle platform specific issues? Providing a different Makefile for each architecture Using Autoconf, Automake and Libtool The installer needs only Bourne shell C compilers Make program SomeSome advantagesadvantages whenwhen usingusing GNUGNU autotoolsautotools The installation of a program is straightforward: ./configure; make; make install This procedure checks for system parameters, libraries, location of programs, availability of functions and writes a Makefile ./configure supports many options to overwrite defaults settings Development Use Cases GNU toolchain flow (simplified) Developer User configure.in autoconf configure ./configure Check for required libraries automake Makefile.in Generate Makefile Makefile.am Makefile Autotools Overview (no libtool) Under source control Starting, Source [autoscan] [configure.scan] configure.ac occasional files configure.ac autoconf configure Developer,
    [Show full text]
  • GNU Toolchain for Atmel ARM Embedded Processors: 4.8.4.371
    RELEASE NOTES GNU Toolchain for Atmel ARM Embedded processors: 4.8.4.371 Introduction The ARM GNU Toolchain supports Atmel® ARM devices. The ARM toolchain is based on the free and open-source GCC. This toolchain is built from sources publlished by ARM's "GNU Tools for ARM Embedded Processors" project at launchpad.net (https://launchpad.net/gcc-arm-embedded). The toolchain includes compiler, assembler, linker, binutils (GCC and binutils), GNU Debugger (GDB with builtin simulator) and Standard C library (newlib, newlib nano). 42368-MCU-/ Table of Contents Introduction .................................................................................... 1 1. Supported configuration .......................................................... 3 1.1. Supported Hosts ................................................................... 3 1.2. Supported Targets ................................................................. 3 2. Downloading, Installing and Upgrading .................................. 4 2.1. Downloading/Installing on Windows .......................................... 4 2.2. Downloading/Installing on Linux ............................................... 4 2.3. Downloading/Installing on Mac OS ........................................... 4 2.4. Upgrading from previous versions ............................................ 4 3. Layout and Components ......................................................... 5 3.1. Layout ................................................................................. 5 3.2. Components ........................................................................
    [Show full text]
  • Linux Programming [R15a0527] Lecture Notes
    LINUX PROGRAMMING [R15A0527] LECTURE NOTES B.TECH IV YEAR – I SEM (R15) (2019-2020) DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING MALLA REDDY COLLEGE OF ENGINEERING & TECHNOLOGY (Autonomous Institution – UGC, Govt. of India) Recognized under 2(f) and 12 (B) of UGC ACT 1956 (Affiliated to JNTUH, Hyderabad, Approved by AICTE - Accredited by NBA & NAAC – ‘A’ Grade - ISO 9001:2015 Certified) Maisammaguda, Dhulapally (Post Via. Hakimpet), Secunderabad – 500100, Telangana State, India Syllabus (R15A0527) LINUX PROGRAMMING Objectives: • To develop the skills necessary for Unix systems programming including file system programming, process and signal management, and interprocess communication. • To make effective use of Unix utilities and Shell scripting language such as bash. • To develop the basic skills required to write network programs using Sockets. UNIT I Linux Utilities - File handling utilities, Security by file permissions, Process utilities, Disk utilities, Networking commands, Filters, Text processing utilities and Backup utilities. Sed- Scripts, Operation, Addresses, Commands, Applications, awk- Execution, Fields and Records, Scripts, Operation, Patterns, Actions, Associative Arrays, String and Mathematical functions, System commands in awk, Applications. Shell programming with Bourne again shell(bash) - Introduction, shell responsibilities, pipes and Redirection, here documents, running a shell script, the shell as a programming language, shell meta characters, file name substitution, shell variables, command substitution, shell
    [Show full text]