R Installation and Administration Version 4.2.0 Under Development (2021-09-24)

Total Page:16

File Type:pdf, Size:1020Kb

R Installation and Administration Version 4.2.0 Under Development (2021-09-24) R Installation and Administration Version 4.2.0 Under development (2021-09-24) R Core Team This manual is for R, version 4.2.0 Under development (2021-09-24). Copyright c 2001{2021 R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into an- other language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. i Table of Contents 1 Obtaining R :::::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.1 Getting and unpacking the sources ::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.2 Getting patched and development versions ::::::::::::::::::::::::::::::::::::::::: 1 1.2.1 Using Subversion and rsync ::::::::::::::::::::::::::::::::::::::::::::::::::: 1 2 Installing R under Unix-alikes :::::::::::::::::::::::::::::::: 3 2.1 Simple compilation :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 3 2.2 Help options ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 2.3 Making the manuals ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 5 2.4 Installation :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 6 2.5 Uninstallation ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 2.6 Sub-architectures :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 2.6.1 Multilib::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 9 2.7 Other Options :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 10 2.7.1 Debugging Symbols :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 10 2.7.2 OpenMP Support :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 11 2.7.3 C++ Support:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 11 2.7.4 Link-Time Optimization ::::::::::::::::::::::::::::::::::::::::::::::::::::: 12 2.7.4.1 LTO with GCC ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 13 2.7.4.2 LTO with LLVM :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 13 2.7.4.3 LTO for package checking ::::::::::::::::::::::::::::::::::::::::::::::: 14 2.8 Testing an Installation :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 14 3 Installing R under Windows ::::::::::::::::::::::::::::::::: 16 3.1 Building from source:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 16 3.1.1 The Windows toolset :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 16 3.1.2 LATEX:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 16 3.2 Checking the build:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 17 3.3 Testing an Installation :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 17 4 Installing R under macOS:::::::::::::::::::::::::::::::::::: 18 4.1 Running R under macOS ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 19 4.2 Uninstalling under macOS :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 19 4.3 Multiple versions ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20 5 Running R::::::::::::::::::::::::::::::::::::::::::::::::::::: 21 6 Add-on packages :::::::::::::::::::::::::::::::::::::::::::::: 22 6.1 Default packages:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 22 6.2 Managing libraries :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 22 6.3 Installing packages :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 22 6.3.1 Windows :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 24 6.3.2 macOS :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 24 6.3.3 Customizing package compilation::::::::::::::::::::::::::::::::::::::::::::: 26 6.3.4 Multiple sub-architectures:::::::::::::::::::::::::::::::::::::::::::::::::::: 27 6.3.5 Byte-compilation::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 28 ii 6.3.6 External software :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 28 6.4 Updating packages :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 28 6.5 Removing packages ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 29 6.6 Setting up a package repository ::::::::::::::::::::::::::::::::::::::::::::::::::: 29 6.7 Checking installed source packages :::::::::::::::::::::::::::::::::::::::::::::::: 30 7 Internationalization and Localization:::::::::::::::::::::::: 31 7.1 Locales ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 31 7.1.1 Locales under Unix-alikes :::::::::::::::::::::::::::::::::::::::::::::::::::: 31 7.1.2 Locales under Windows :::::::::::::::::::::::::::::::::::::::::::::::::::::: 31 7.1.3 Locales under macOS :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 32 7.2 Localization of messages :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 32 8 Choosing between 32- and 64-bit builds :::::::::::::::::::: 34 9 The standalone Rmath library ::::::::::::::::::::::::::::::: 35 9.1 Unix-alikes ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 35 9.2 Windows ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 36 Appendix A Essential and useful other programs under a Unix-alike :::::::::::::::::::::::::::::::::: 38 A.1 Essential programs and libraries :::::::::::::::::::::::::::::::::::::::::::::::::: 38 A.2 Useful libraries and programs::::::::::::::::::::::::::::::::::::::::::::::::::::: 40 A.2.1 Tcl/Tk:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 41 A.2.2 Java support :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42 A.2.3 Other compiled languages ::::::::::::::::::::::::::::::::::::::::::::::::::: 43 A.3 Linear algebra:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 43 A.3.1 BLAS ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 43 A.3.1.1 ATLAS::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 44 A.3.1.2 OpenBLAS ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 45 A.3.1.3 Intel MKL:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46 A.3.1.4 Shared BLAS::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 47 A.3.2 LAPACK ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 47 A.3.3 Caveats ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 48 Appendix B Configuration on a Unix-alike ::::::::::::::::::: 50 B.1 Configuration options :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 50 B.2 Internationalization support :::::::::::::::::::::::::::::::::::::::::::::::::::::: 51 B.3 Configuration variables ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 51 B.3.1 Setting paper size ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 51 B.3.2 Setting the browsers ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 51 B.3.3 Compilation flags:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 52 B.3.4 Making manuals ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 52 B.4 Setting the shell :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 52 B.5 Using make :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 52 B.6 Using Fortran :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 52 B.7 Compile and load flags ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 53 B.8 Maintainer mode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 54 iii Appendix C Platform notes :::::::::::::::::::::::::::::::::::: 55 C.1 X11 issues:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 55 C.2 Linux :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 56 C.2.1 Clang ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 58 C.2.2 Intel compilers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 58 C.3 macOS ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 59 C.3.1 Prerequisites :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 59 C.3.1.1 Note for Catalina and later users:::::::::::::::::::::::::::::::::::::::: 61 C.3.2 Cairo graphics::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 61 C.3.3 Other C/C++ compilers::::::::::::::::::::::::::::::::::::::::::::::::::::: 62 C.3.4 Other libraries::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 63 C.3.5 Tcl/Tk headers and libraries::::::::::::::::::::::::::::::::::::::::::::::::: 64 C.3.6 Java::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 64 C.3.7 Frameworks ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 65 C.3.8 Building R.app :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 66 C.3.9 Building binary packages :::::::::::::::::::::::::::::::::::::::::::::::::::: 66 C.3.10 `arm64' aka `Apple Silicon':::::::::::::::::::::::::::::::::::::::::::::::::: 67 C.3.10.1 Native builds :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 67 C.4 Solaris :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Recommended publications
  • Creating Rpms Guide
    CREATING RPMS (Student version) v1.0 Featuring 36 pages of lecture and a 48 page lab exercise This docu m e n t serves two purpose s: 1. Representative sample to allow evaluation of our courseware manuals 2. Make available high quality RPM documentation to Linux administrators A bout this m aterial : The blue background you see simulates the custom paper that all Guru Labs course w are is printed on. This student version does not contain the instructor notes and teaching tips present in the instructor version. For more information on all the features of our unique layout, see: http://ww w . g urulabs.co m /courseware/course w are_layout.php For more freely available Guru Labs content (and the latest version of this file), see: http://www.gurulabs.co m/goodies/ This sample validated on: Red Hat Enterprise Linux 4 & Fedora Core v3 SUSE Linux Enterprise Server 9 & SUSE Linux Professional 9.2 About Guru Labs: Guru Labs is a Linux training company started in 199 9 by Linux experts to produce the best Linux training and course w are available. For a complete list, visit our website at: http://www.gurulabs.co m/ This work is copyrighted Guru Labs, L.C. 2005 and is licensed under the Creative Common s Attribution- NonCom mer cial- NoDerivs License. To view a copy of this license, visit http://creativecom m o n s.org/licenses/by- nc- nd/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 943 0 5, USA. Guru Labs 801 N 500 W Ste 202 Bountiful, UT 84010 Ph: 801-298-5227 WWW.GURULABS.COM Objectives: • Understand
    [Show full text]
  • 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]
  • CERN R&D on Spack and the Turnkey Stack
    CERN R&D on Spack and the Turnkey Stack HSF Software Workshop - 2020/11/19 Valentin Volkl (CERN), Key4hep Software Group Thanks to Andre Sailer, Pere Mato, Ben Morgan for use of Slides Valentin Volkl: Key4HEP & Spack Table of Contents ● Key4HEP - Introduction and motivation ● The Spack package manager ● Technical considerations ● Deployment to CVMFS ● Workflow -Spack for Development Valentin Volkl: Key4HEP & Spack 2 Dependency Graph of Key4HEP Stack Experiment-specific Packages Valentin Volkl: Key4HEP & Spack 3 Dependency Graph of Key4HEP stack Experiment-specific Packages + HEP-specific packages Valentin Volkl: Key4HEP & Spack 4 Dependency Graph of Key4HEP stack Experiment-specific Packages + HEP-specific Packages + General Purpose Libraries Valentin Volkl: Key4HEP & Spack 5 Requirements for a Build System [ ] Need to be able to scale to a typical experiment software stack [ ] Combinatorics of multiple platforms, versions, Release/Debug ... [ ] Easy deployment to CVMFS [ ] Allow local builds independent of central CVMFS installations [ ] Support software development usecases The KEY4HEP stack contains some 300 packages ● 60 Experiment-specific ● 50 HEP-specific ● 200 System/General Purpose 14 GB install size, some 6h to build on single 4-core machine Valentin Volkl: Key4HEP & Spack 6 Key4HEP ● Future detector studies critically rely on well-maintained software stacks to model detector concepts and to understand a detector’s limitations and physics reach ● We have a scattered landscape of specific software tools on the one hand and integrated
    [Show full text]
  • Project 0) Inside Your 354 Directory
    Assignment 0 1. Learning Goals 1. Learn some basic unix/linux commands. 2. Start using a text editor of your choice. 3. Become familiar with the build process. 4. Modify a simple C program. 5. Learn how to submit your assignments. 2. Logistics 1. All work for this assignment is to be done on one of the department's instructional Unix/Linux machines. You are welcome to remotely login using ssh, putty, etc., but you will have to figure out those details on your own. It is not that hard really. 2. All assignments in this course will be graded only on CS departmental machines (e.g. Galapagos lab at CS first floor, Room No: 1366) running Linux Operating System. It is your responsibility to make sure that your code runs on these machines correctly. 3. General Advice If you are not using the CS departmental machines with Linux Operating System and would like to code using your laptop then: 1. Please DON’T use an Integrated Development Environment (IDE) for learning to code in C. It’ll hide many of the low­level details from you. You can become a good C programmer only if you understand all these low­level details. 2. Avoid using Windows Operating System for writing C code since the compiler that we’ll use for grading your assignments is gcc (GNU C Compiler) which is a Unix/Linux based C compiler. 3. If you still want to use a computer which already has a Windows OS, then you should have a virtual machine (VMware or Virtualbox) to run a Linux OS or Cygwin (which contains tools like gcc) installed on your Windows machine.
    [Show full text]
  • Building Embedded Linux Systems ,Roadmap.18084 Page Ii Wednesday, August 6, 2008 9:05 AM
    Building Embedded Linux Systems ,roadmap.18084 Page ii Wednesday, August 6, 2008 9:05 AM Other Linux resources from O’Reilly Related titles Designing Embedded Programming Embedded Hardware Systems Linux Device Drivers Running Linux Linux in a Nutshell Understanding the Linux Linux Network Adminis- Kernel trator’s Guide Linux Books linux.oreilly.com is a complete catalog of O’Reilly’s books on Resource Center Linux and Unix and related technologies, including sample chapters and code examples. ONLamp.com is the premier site for the open source web plat- form: Linux, Apache, MySQL, and either Perl, Python, or PHP. Conferences O’Reilly brings diverse innovators together to nurture the ideas that spark revolutionary industries. We specialize in document- ing the latest tools and systems, translating the innovator’s knowledge into useful skills for those in the trenches. Visit con- ferences.oreilly.com for our upcoming events. Safari Bookshelf (safari.oreilly.com) is the premier online refer- ence library for programmers and IT professionals. Conduct searches across more than 1,000 books. Subscribers can zero in on answers to time-critical questions in a matter of seconds. Read the books on your Bookshelf from cover to cover or sim- ply flip to the page you need. Try it today for free. main.title Page iii Monday, May 19, 2008 11:21 AM SECOND EDITION Building Embedded Linux SystemsTomcat ™ The Definitive Guide Karim Yaghmour, JonJason Masters, Brittain Gilad and Ben-Yossef, Ian F. Darwin and Philippe Gerum Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo Building Embedded Linux Systems, Second Edition by Karim Yaghmour, Jon Masters, Gilad Ben-Yossef, and Philippe Gerum Copyright © 2008 Karim Yaghmour and Jon Masters.
    [Show full text]
  • Robust Linux Binaries.Pdf
    Robust Linux Binaries How to use Portage to provide a solid base stack for HEP G. Amadio https://xkcd.com/1987 Why do we fall into this kind of situation? ● We want software that’s not part of the system ● Use pip, conda, homebrew, etc to get it somewhere ● Not compiled with same compiler → incompatible ABI ● Often requires setting LD_LIBRARY_PATH and/or PYTHONPATH ● Problems if a package is both in the system and in add-ons ● Updates to the system do not take add-ons into account 3 Classic example: ROOT, Python, and Anaconda ● User has Anaconda installation with Python, wants ROOT ● User then tries to build ROOT with system compiler and link with Python from Anaconda installation ● libPyROOT.so has to link against system’s libstdc++.so and anaconda’s libpython2.7.so ● Problem: libpython2.7.so from Anaconda is not guaranteed to be ABI-compatible with system libraries ● Solution: install GCC from anaconda that was used to build Python and build ROOT with that compiler instead 4 Why LD_LIBRARY_PATH should be avoided ● LD_LIBRARY_PATH is commonly used to add directories to the linker’s search path ● Problem: LD_LIBRARY_PATH takes precedence, overrides important system libraries ○ See e.g. https://sft.its.cern.ch/jira/browse/SPI-1083 ● Solution: use a wrapper script or even better, don’t use LD_LIBRARY_PATH $ ssh lxplus7 $ lsb_release -d Description: CentOS Linux release 7.5.1804 (Core) $ source /cvmfs/sft.cern.ch/lcg/views/LCG_latest/x86_64-centos7-gcc7-opt/setup.sh $ ldd /usr/bin/git linux-vdso.so.1 => (0x00007ffdb55b3000) libpcre.so.1
    [Show full text]
  • X86 Disassembly Exploring the Relationship Between C, X86 Assembly, and Machine Code
    x86 Disassembly Exploring the relationship between C, x86 Assembly, and Machine Code PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 07 Sep 2013 05:04:59 UTC Contents Articles Wikibooks:Collections Preface 1 X86 Disassembly/Cover 3 X86 Disassembly/Introduction 3 Tools 5 X86 Disassembly/Assemblers and Compilers 5 X86 Disassembly/Disassemblers and Decompilers 10 X86 Disassembly/Disassembly Examples 18 X86 Disassembly/Analysis Tools 19 Platforms 28 X86 Disassembly/Microsoft Windows 28 X86 Disassembly/Windows Executable Files 33 X86 Disassembly/Linux 48 X86 Disassembly/Linux Executable Files 50 Code Patterns 51 X86 Disassembly/The Stack 51 X86 Disassembly/Functions and Stack Frames 53 X86 Disassembly/Functions and Stack Frame Examples 57 X86 Disassembly/Calling Conventions 58 X86 Disassembly/Calling Convention Examples 64 X86 Disassembly/Branches 74 X86 Disassembly/Branch Examples 83 X86 Disassembly/Loops 87 X86 Disassembly/Loop Examples 92 Data Patterns 95 X86 Disassembly/Variables 95 X86 Disassembly/Variable Examples 101 X86 Disassembly/Data Structures 103 X86 Disassembly/Objects and Classes 108 X86 Disassembly/Floating Point Numbers 112 X86 Disassembly/Floating Point Examples 119 Difficulties 121 X86 Disassembly/Code Optimization 121 X86 Disassembly/Optimization Examples 124 X86 Disassembly/Code Obfuscation 132 X86 Disassembly/Debugger Detectors 137 Resources and Licensing 139 X86 Disassembly/Resources 139 X86 Disassembly/Licensing 141 X86 Disassembly/Manual of Style 141 References Article Sources and Contributors 142 Image Sources, Licenses and Contributors 143 Article Licenses License 144 Wikibooks:Collections Preface 1 Wikibooks:Collections Preface This book was created by volunteers at Wikibooks (http:/ / en.
    [Show full text]
  • NVIDIA CUDA Installation Guide for Linux
    NVIDIA CUDA Installation Guide for Linux Installation and Verification on Linux Systems DU-05347-001_v11.4 | September 2021 Table of Contents Chapter 1. Introduction........................................................................................................ 1 1.1. System Requirements...............................................................................................................1 1.2. About This Document............................................................................................................... 3 Chapter 2. Pre-installation Actions..................................................................................... 4 2.1. Verify You Have a CUDA-Capable GPU....................................................................................4 2.2. Verify You Have a Supported Version of Linux........................................................................ 5 2.3. Verify the System Has gcc Installed........................................................................................5 2.4. Verify the System has the Correct Kernel Headers and Development Packages Installed........................................................................................................................................5 2.5. Install MLNX_OFED.................................................................................................................. 7 2.6. Choose an Installation Method................................................................................................ 7 2.7. Download
    [Show full text]
  • The Spack Package Manager: Bringing Order to HPC Software Chaos
    The Spack Package Manager: Bringing Order to HPC Software Chaos Todd Gamblin Matthew LeGendre Michael R. Collette Gregory L. Lee [email protected] [email protected] [email protected] [email protected] Adam Moody Bronis R. de Supinski Scott Futral [email protected] [email protected] [email protected] Lawrence Livermore National Laboratory ABSTRACT Worse, the space of required builds grows combinatorially with Large HPC centers spend considerable time supporting software for each new configuration parameter. As a result, LLNL staff spend thousands of users, but the complexity of HPC software is quickly countless hours dealing with build and deployment issues. outpacing the capabilities of existing software management tools. Existing package management tools automate parts of the build Scientific applications require specific versions of compilers, MPI, process [2, 10, 11, 12, 23, 24, 38, 39, 41]. For the most part, they and other dependency libraries, so using a single, standard software focus on keeping a single, stable set of packages up to date, and stack is infeasible. However, managing many configurations is they do not handle installation of multiple versions or configurations. difficult because the configuration space is combinatorial in size. Those that do handle multiple configurations typically require that We introduce Spack, a tool used at Lawrence Livermore National package files be created for each combination of options [10, 11, Laboratory to manage this complexity. Spack provides a novel, re- 12, 23], leading to a profusion of files and maintenance issues. cursive specification syntax to invoke parametric builds of packages Some allow limited forms of composition [11, 12, 23], but their and dependencies.
    [Show full text]
  • A Beginners Guide to Assembly
    A Beginners guide to Assembly By Tom Glint and Rishiraj CS301 | Fall 2020 Contributors: Varun and Shreyas 1 2 3 4 5 6 .out file on Linux .exe on Windows 7 Our Focus 8 Prominent ISAs 9 10 An intriguing Example! 11 Some Basics ● % - indicates register names. Example : %rbp ● $ - indicates constants Example : $100 ● Accessing register values: ○ %rbp : Access value stored in register rbp ○ (%rbp) : Treat value stored in register rbp as a pointer. Access the value stored at address pointed by the pointer. Basically *rbp ○ 4(%rbp) : Access value stored at address which is 4 bytes after the address stored in rbp. Basically *(rbp + 4) 12 An intriguing Example! 13 An intriguing Example! For each function call, new space is created on the stack to store local variables and other data. This is known as a stack frame . To accomplish this, you will need to write some code at the beginning and end of each function to create and destroy the stack frame 14 An intriguing Example! rbp is the frame pointer. In our code, it gets a snapshot of the stack pointer (rsp) so that when rsp is changed, local variables and function parameters are still accessible from a constant offset from rbp. 15 An intriguing Example! move immediate value 3000 to (%rbp-8) 16 An intriguing Example! add immediate value 3 to (%rbp-8) 17 An intriguing Example! Move immediate value 100 to (%rbp-4) 18 An intriguing Example! Move (%rbp-4) to auxiliary register 19 An intriguing Example! Pop the base pointer to restore state 20 An intriguing Example! The calling convention dictates that a function’s return value is stored in %eax, so the above instruction sets us up to return y at the end of our function.
    [Show full text]
  • Tutorial: Creating an LLVM Toolchain for the Cpu0 Architecture Release 12.0.0
    Tutorial: Creating an LLVM Toolchain for the Cpu0 Architecture Release 12.0.0 Chen Chung-Shu Aug 13, 2021 CONTENTS 1 About 1 1.1 Authors..................................................1 1.2 Acknowledgments............................................1 1.3 Build steps................................................1 1.4 Revision history.............................................2 1.5 Licensing.................................................2 1.6 Outline of Chapters............................................2 2 Cpu0 ELF linker 5 2.1 ELF to Hex................................................6 2.2 Create Cpu0 backend under LLD.................................... 21 2.3 Summary................................................. 45 3 Optimization 47 3.1 LLVM IR optimization.......................................... 47 3.2 Project.................................................. 51 4 Library 53 4.1 Compiler-rt................................................ 53 4.2 Avr libc.................................................. 54 4.3 Software Float Point Support...................................... 54 5 Resources 59 5.1 Build steps................................................ 59 5.2 Book example code............................................ 59 5.3 Alternate formats............................................. 59 5.4 Presentation files............................................. 59 5.5 Search this website............................................ 59 i ii CHAPTER ONE ABOUT • Authors • Acknowledgments • Build steps • Revision history •
    [Show full text]