Fall 2014 SPO600 Packages by Participant
Overview
This is the package list from http://performance.linaro.org, with packages already in the Fedora Aarch64 repositories removed, divided between the Fall 2014 SPO600 participants.
We're going to use this list for initial investigation, but the package(s) you work with may or may not be the ones you initially check out.
To do for October 7
- Do an initial check on each of the packages in your list. It may be that they are already available for aarch64 (maybe under a slightly-different name), that they don't exist in Fedora but do exist in other distros, that nobody cares about them anymore, or something else.
- Take a look at the notes on the Linaro Performance Challenge site for each package. This will give you a little bit of information about the porting/optimization required for each package.
- Briefly annotate each of the entries in your part of this page (i.e., mark them up with a brief note about what you've found). See my section for an example.
- Blog about your package list.
Note:
- This list is divided up by participant only for the purpose of investigation right now. We may redistribute this list as we start work on these packages.
- There may be packages that were removed because they exist in the Fedora Aarch64 repositories that should actually be included here, because they need optimization.
- Different distros and projects refer to architectures by different names:
- i386 == x86_32 == i586 == i686 (more or less!)
- x86_64 == amd64
- arm32 == aarch32 == armhf == armv7hl
- arm64 == aarch64
- To check to see if a package is available on a Fedora machine of a given architecture, use yum (e.g.,
yum list name-of-package
) orrepoquery
, or look up the package in the package database.
Resources
The List
Adam Sharpe
- yate -- Fedora: not present | Ubuntu: x86_32, x86_64
- x264 -- Fedora: x86_32, x86_64 | Ubuntu: x86_32, x86_64, arm64
- fxt -- Fedora: not present | Ubuntu: "fxt-tools" - x86_32, x86_64, arm64
- avian -- Fedora: not present | Ubuntu: "jvm-7-avian-jre" - x86_32, x86_64
- aften -- Fedora: x86_32, x86_64 | Ubuntu: x86_32, x86_64, arm64
- samhain -- Fedora: x86_32, x86_64 | Ubuntu: x86_32, x86_64, arm64
- python3.3 -- Fedora: x86_32, x86_64 | Ubuntu: x86_32, x86_64, arm64
- postgres-xc -- Fedora: not present | Ubuntu: x86_32, x86_64, arm64
- lzo2 -- Fedora: not present | Ubuntu: "liblzo2-2" - x86_32, x86_64, arm64
- gfarm -- Fedora: not present | Ubuntu: x86_32, x86_64, arm64
- mpich2 -- Fedora: x86_32, x86_64 | Ubuntu: x86_32, x86_64
- unicorn-scan -- ??
Brendan Henderson
- pcre3 - Available on: Fedora ~ pcre, Ubuntu ~ libpcre3, Debian ~ libpcre3. Perl Compatible RegExp Lib. Seems to exist on aarch64 as pcre.aarch64 package.
- unrar-free - Not Available: Fedora, aarch64. Available: Ubuntu ~ unrar-free, Debian ~ unrar-free. Seems like chance to beat x86 performance asm with C and gcc!
- vflib3 - Not Available: Fedora, aarch64. Available: Ubuntu ~ vflib3, Debian ~ vflib3. Not priority at all but another interesting opportunity to beat x86 performance asm with C.
- php-apc - Exists on aarch64 as: php-pecl-apcu.aarch64. Cache module for PHP 5. Multiple different platform asm used for atomics. Available on: Fedora ~ php-pecl-apc, Ubuntu ~ php-apc, Debian ~ php-apc. gcc atomics opportunity!
- mysql-5.5 - Includes x86 performance asm for crypto and checksum. Seems like relevant performance improvement opportunity. Available on: Fedora ~ mysql, Ubuntu ~ mysql-server-5.5, Debian ~ mysql-server-5.5.
- fwts - Firmware test suite, marked on linaro list as being "already worked on".
- llvm-3.1 - Seems to exist on aarch64 as "llvm.aarch64" package. Exists on aarch64 as llvm.aarch64 in Fedora 21. Nothing mentioned in regards to performance.
- smlsharp - May have a source file that needs to be completely re-written in C. Also optional x86 performance asm for atomics and checksum performance, opportunity for C and gcc optimizations. Only exists in Ubuntu, not on aarch64.
- mpfr4 - Exists on aarch64 ~ "mpfr.aarch64". C Floating-point math lib, contains A32 asm code, but no aarch64 asm, for what reason the asm is included I am unsure right now(probably performance). Available on: Fedora ~ mpfr, Ubuntu ~ libmpfr4, Debian ~ libmpfr4. Could be great opportunity to learn gcc floating-point optimizations!
- gccxml - Doesn't seem difficult to port to aarch64. Not a high priority as not used a lot. Available on: Fedora, Ubuntu, and Debian ~ gccxml.
- puf - Low priority for porting. Contains trivial asm for bitops performance, opportunity for C and gcc optimizations. Not Available: Fedora.
- insserv - Boot sequence organizer. Doesn't seem like a priority to port.
Chris Tyler
- acpidump - included in Fedora aarch64 as part of 'acpica-tools' - may be slightly different version.
- glib2.0 - included in Fedora aarch64 under the name 'glib2'.
- newlib - intended for embedded systems. ARM32 version in Fedora as 'arm-none-eabi-newlib' (oddly, marked as 'noarch'?). Aarch64 version might be a fair bit of work.
- nana - not present in Fedora, present in repositories for Debian but not arm64/aarch64. Can probably get working easily except for timers.
- lam - not present in Fedora. Message Passing Interface (MPI) implementation - do we need this if we have OpenMPI?
- radare - reverse-engineering tools - very arch-specific. Not present in Fedora; present in Ubuntu/Debian but only for x86_32 and x86_64. Upstream website says that aarch64 is supported (?).
- libcrypt-cast5-perl - not present in Fedora; present in Ubuntu/Debian but only for x86_32/x86_64. The portable version is perl-Crypt-CAST5_PP, but probably lower performance.
- brutefir - audio library - not present in Fedora; present in Ubuntu/Debian for x86 and arm64. May be using C fallbacks.
- libgc - garbage collection library - not present in Fedora; present in Ubuntu/Debian for x86 and arm64. Wonder if the arm64 build works properly?
- boinc-app-seti - SETI client for BOINC framework. Not in Fedora, present in Ubuntu/Debian for x86 and arm64. Does anyone use this?
- nuitka - python compiler, Ubuntu/Debian has x86_32 build only. Not present in Fedora.
- sbsigntool - tool to sign and verify UEFI secure boot files. Ubuntu notes indicate that it's patched to sign arm64 images, but doesn't run on arm64. Not in Fedora.
Edwin Lum
- amtu - present on fedora, currently only available for x86; porting probably required. - abstract machine testing utility
- qemu-linaro - linaro present on fedora, coulnd't seem to find arm64 in Debian nor Ubuntu - processor emulator
- xen - present on fedora, arm64 seems to exist for Debian - virtualization
- gmerlin-encoders - not found on fedora, arm64 package exists for debian (jessie testing)
- ncpfs - present on fedora, arm32 exists for Debian; Netware-related utilities;
- snobol4 - could not find much on this.
- magics++ - not present in fedora, arm64 on debian (sid unstable) weather forecasting software
- radare2 - not present in fedora, arm64 on debian (sid unstable) ; free command line hex editor
- gambc - not prsent in fedora, only x86 found on debian; ubuntu ; c interpreter and compiler
- mono - not present in fedora, debian/ubuntu database doesn't list architectures on this package ; development tools
- frysk - present on fedora, Execution analysis and debugging tool-suite. arm64 needs work
Emmanuel Ho Fidelino
- ace - Online Embedded code editor
- Fedora: not present
- Ubuntu: x86_32, x86_64
- mlt - Multimedia Library
- Fedora: not present
- Ubuntu: x86_32, x86_64
- racket - Scheme implementation
- Fedora: not present
- Ubuntu: x86_32, x86_64
- simgrid - Toolkit for scalable simulation of distributed applications
- Fedora: not present
- Ubuntu: x86_32, x86_64
- gmap - Biology Software
- Fedora: not present
- Ubuntu: x86_32, x86_64
- gnu-efi - Development Libraries and headers for EFI
- Fedora: x86_32, x86_64
- Ubuntu: x86_32, x86_64
- avidemux - Video Editor
- Fedora: not present
- Ubuntu: x86_32, x86_64
- libgcroots - Roots acquisition library for Garbage Collector
- Fedora: x86_32, x86_64, arm32
- Ubuntu: x86_32, x86_64
- jscoverage - JSCoverage is a tool that generates code coverage statistics for JavaScript programs
- Fedora: not present
- Ubuntu: x86_32, x86_64
- eigen3 - C++ template library for vector and matrix math
- Fedora: x86_64, x86_32, arm32
- Ubuntu: x86_32, x86_64
- ugene - Integrated bioinformatics toolkit
- Fedora: x86_64, x86_32
- Ubuntu: x86_32, x86_64
- gatling - Web/File Server
- Fedora: not present
- Ubuntu: x86_32, x86_64
Gabriel Castro
- botan1.10
- Crypto lib, has asm for performance, all asm has a c alternative.
- Doesn't build for aarch64, but that is a matter of build scripts.
- xz-utils
- LZMA compression lib, debian has an arm64 build
- mountall
- asm in embedded copy of gettext;
- Debian has an arm64 build
- lcdf-typetools
- asm in MD5 code, has C alternative
- Debian has an arm64 build
- db
- available as libdb
- sndobj
- asm in timer code for x86, has c fallback,
- asm for casting float/double to int, has c fallback
- vo-amrwbenc
- Audio codec with with lots of arm32 code, no c fallback
- ffcall
- Foreign Function Call Libraries, lots of lowlevel inter-language plumbing like libffi, but not many rdeps; low priority
- Lots of asm code
- abyss
- samba4
- available as "samba"
- libcrypto++
- can be built for arm64 with some modifications listed here
- mjpegtools
- debian has arm64 build
Hunter Jansen
- llvm-3.0 --- Looks to already be included under the name: llvm.aarch64
- exim4 --- Looks to already be included under the name: exim.aarch64
- italc --- Couldn't find an existing version
- kexec-tools --- Couldn't find an available version
- krb5 --- Doesn't look like there's one available, though there is this: [1](opensuse)
- gem --- Couldn't find existing version
- ruby-prof --- nada
- gnutls28 --- niente
- snort --- maybe, but just not in yum? [2](here)
- llvm-2.9 --- Potentially the same issue as llvm-3.0?
- xvidcore --- Looks like there's nothin'
- ruby1.8 --- Not explicitly 1.8 - but there is a ruby.aarch64 v 2.1.2
Kieran Sedgwick
- drbd8
- RAID 1 over TCP/IP for Linux, needs investigation
- Ubuntu: Available on x86_32 & x86_64
- Fedora: Available on CentOS for x86_64
- Debian: Available for x86_64, aarch32, x86_32
- Appears to include various Linux ASM core libraries
- No inline ASM code found
- Package should be built and tested on aarch64
- RAID 1 over TCP/IP for Linux, needs investigation
- lame
- MP3 audio encoder, needs porting
- Ubuntu: Available on x86_32 & x86_64
- Fedora: Available for x86_64, x86_32
- Debian: Available for x86_64, aarch32, x86_32
- Inline assembler found, mainly for debugging floating point exceptions
- MP3 audio encoder, needs porting
- openjdk-7
- High priority, needs major work
- Ubuntu: Available on x86_32 & x86_64
- Fedora: Available for x86_64, x86_32, aarch32
- Debian: Available for x86_64, aarch32, x86_32
- High priority, needs major work
- upx-ucl
- Live-compressor for executables, needs testing for aarch64, appears to be portable already
- Ubuntu: Available on x86_32 & x86_64
- Fedora: Available for x86_64, x86_32, aarch32
- Debian: Available for x86_64, aarch32, x86_32
- Live-compressor for executables, needs testing for aarch64, appears to be portable already
- gmp4
- Multiprecision arithmetic library, needs testing for aarch64 and may require porting
- Ubuntu: Available on x86_32 & x86_64
- Fedora: Version 4.3.2 (gmp4) unavailable, gmp6 is being used and is available for x86_64, x86_32 and aarch32
- Debian: Available for x86_64, x86_32
- Multiprecision arithmetic library, needs testing for aarch64 and may require porting
- libfame
- Multimedia lib using x86 asm for performance needs porting to aarch32 & aarch64, but not a priority
- Ubuntu: Missing from most recent Ubuntu LTS, but available in previous version on x86_32 & x86_64
- Fedora: Available for x86_64, x86_32
- Debian: No longer offered with Debian systems
- Multimedia lib using x86 asm for performance needs porting to aarch32 & aarch64, but not a priority
- lwipv6
- user level TCP/IP stack; ASM used for perf? Needs porting to aarch32 & aarch64, but not a priority
- Ubuntu: Missing from most recent Ubuntu LTS, but available in previous version on x86_32 & x86_64
- Fedora: Available for x86_64, x86_32, aarch32
- Debian: Available for x86_64, aarch32, x86_32
- user level TCP/IP stack; ASM used for perf? Needs porting to aarch32 & aarch64, but not a priority
- gnulib
- GNU Portability Library; bits of this code are used all over the place! x86 ASM used for perf? Needs porting to aarch32 & aarch64
- Ubuntu: Reports that it's available on all platforms. Huh?
- Fedora: Couldn't find details :S
- Debian: Reports that it's available on all platforms. Huh?
- GNU Portability Library; bits of this code are used all over the place! x86 ASM used for perf? Needs porting to aarch32 & aarch64
- icon
- Icon programming language, not commonly used? needs porting to aarch64
- Ubuntu: Package group available on x86_32 & x86_64
- Fedora: Available for x86_64, x86_32
- Debian: Available for x86_64, x86_32, aarch32
- Icon programming language, not commonly used? needs porting to aarch64
- libmad
- MP3 audio decoder library with asm for performance; words on aarch32, needs porting to aarch64
- Ubuntu: Package group available on x86_32, x86_64, aarch32
- Fedora: Available for x86_64, x86_32
- Debian: Available for x86_64, x86_32, aarch32
- MP3 audio decoder library with asm for performance; words on aarch32, needs porting to aarch64
- scheme2c
- Scheme implementation, some asm for various platforms including A32; works on aarch32, needs porting to aarch64
- Ubuntu: Package group available on x86_32, x86_64
- Fedora: Available for x86_64, x86_32
- Debian: Available for x86_64, x86_32, aarch32
- Scheme implementation, some asm for various platforms including A32; works on aarch32, needs porting to aarch64
- mozart
- Mozart Programming System; works on aarch32, needs porting to aarch64, not a priority
- Ubuntu: Package group available on x86_32
- Fedora: Unsure
- Debian: Available for x86_32, aarch32
- Mozart Programming System; works on aarch32, needs porting to aarch64, not a priority
Linpei Fan
- blcr - Berkely Lab Checkpoint.Restart, not present in Fedora, present in repositories for Debian / Ubuntu in i386 and x86_64.
- grub2 - Grand Unified Bootloader, included in Fedora x86_64, but not in Fedora aarch64.
- php5 - Included in Fedora x86_64 and aarch64 under name php, present in repositories for Debian / Ubuntu in all architectures.
- libinnodb - Embedded InnoDB Library, not present in Fedora, present in repositories for Debian in i386 and x86_64, and for Ubuntu in i386, x86_64 and arm32.
- ocaml-sha - SHA cryptographic hash functions for OCaml (Objective Caml complier), not present in Fedora, source package present in Debian/Ubuntu.
- libhmsbeagle - High-performance lib for Bayesian and Maximum Likelihood phylogenetics, not not present in Fedora, present for Debian in i386, x86_64 and arm32, and for Ubuntu in i386 and x86_64.
- maude - High-performance logical framework, not present in Fedora, present for Debian in i386, x86_64 and arm32, and for Ubuntu in i386 and x86_64
- rtai - Real time application interface, not present in Fedora, present for Debian/Ubuntu in i386 and x86_64.
- kamailio - Very fast and configurable SIP proxy, not present in Fedora, present for Debian/Ubuntu in i386 and x86_64.
- gesftpserver - Sftp server submodule for OpenSSH, not present in Fedora, present for Debian in i386, x86_64 and arm32, and for Ubuntu in i386 and x86_64.
- bsign - Corruption & intrusion detection using embedded hashes, not present in Fedora, present for Debian/Ubuntu in i386 only.
- openjdk-6 - Java runtime base on OpenJDK, not present in Fedora, present for Debian in i386, x86_64 and arm32, and for Ubuntu in i386 and x86_64.
Omid Djahanpour
- mozjs – included in Fedora20. The latest version is 17.0.0-8. fc20. Patch for aahrch64 implemented on 06 Jan 2014. Aarch64-64k-page patch added 06 Jun 2014.
- ruby1.9.1 – included in Fedora20. Aarch64 support current from version 2.0.0.195-8+.
- xmds – not present in Fedora. Available in Ubuntu repository. Supports only amd64/i386 no arm64/aarch64.
- binfmtc - not present in Fedora. Available in Ubuntu repository. Supports only amd64/i386 no arm64/aarch64.
- rheolef - not present in Fedora. Available in Ubuntu repository. Supports only amd64/i386 no arm64/aarch64.
- aribas - not present in Fedora. Available in Ubuntu repository. Supports only amd64/i386 no arm64/aarch64.
- xen-api-libs – couldn’t find it in the Fedora, Ubuntu or Debian package database. However, I did come across a discussion of porting it over to be compatible with arm on the xen list.
- bunny – not sure if I found the right package in the Fedora package database, however, according to the upstream website, this packages use has been deprecated in favor of american-fuzzy-lop.
- nwchem – Although the Linaro package page says that there isn’t a version available for Fedora, searching for it on the Fedora package database, I believe that arm support has been added as of version 6.3.2-11 which seems to be the latest version. It seems as if they were excluding arm from version 6.3.2-5.
- eigen2 – according to this, it seems as if this package has already been ported to work with the arm architecture.
- vo-aacenc – Not present in Fedora. The Ubuntu package database indicates that it’s not arm compatible. The Debian package database, however, shows that this package is being worked on. There is no current release that is stable.
- sbcl – present in Fedora and seems like this package is compatible with arm, according to the upstream website. However, there seems to be some minor complications when building it from source.