Thumb2PackageReviewList

Revision 34 as of 2010-01-14 14:34:44

Clear message

This page is for tracking packages identified as needing further investigation.

Review Lists

Most of the false positives should have now been eliminated from these lists, but a few may remain.

This tables should be edited as the packages are discounted or dealt with.

Description of the Searches

Caution: the searches have confusing / misleading names!

See the Full Search Output section below for details of the regexes used for searching.

mov

Packages which contain assembler code which writes the program counter register directly, or which uses the PC as an operand in an arithmetic operation.

  • Procedure calls and returns using mov pc, <register> and similar need to be ported to use bx <register> when the build architecture is >= ARMv4T. The only exception is where destination is known to use the same instruction set as the caller. This assumption is rarely safe except when the destination is in the same source file.

  • Other operations need to be considered carefully: for example, code such as add ip, pc, r3, lsl #2 / mov pc, ip which may have worked fine in the ARM instruction set (implementing a branch into a jump table for example) but may not work properly in Thumb because of broken assumptions about instruction sizes etc.

swp

Packages which contain use of the deprecated SWP (atomic memory swap) instruction. Code making use of this instruction will execute inefficiently, and may not work correctly on multi-core (SMP) platforms.

The affected code should be ported to use one of the following mechanisms:

  • Use the GCC atomic instrinsics (__sync_synchronize and friends) (often straightforward, and best for most cases)

  • Re-code using LDREX, STREX, DMB (avoid: resulting code will require extra #ifdefs to retain build-time compatibility with older architectures, and the code may suffer from impaired maintainability and portability. However, it may be appropriate to use this approach where there are very specific requirements which are not addressed by the GCC intrinsics)

ldrex

Packages which make use of the ARMv6/v7 LDREX/STREX family of instructions.

These packages should work correctly on single-core ARMv7 implementations such as the ARM Cortex-A8, but additional memory barrier instructions may be required for correct operation on multi-core (i.e., SMP) platforms, in order to ensure correct synchronization and ordering of memory accesses between multiple cores.

ldr

Packages which contain explicit floating-point or NEON code (detected using the presence of floating-point / NEON load and store instructions (hende "ldr")).

These packages are unlikely to require any porting to work with ARMv7 / Thumb-2, but they may contain hand-written code which has been scheduled to execute in the ARM instruction set. Building in Thumb might reduce the performance of such code in a few cases (though performance can also stay the same or improve --- it depends on the code and the target processor).

Packages with possible v7 compatibility issues

summary for main:

Package

ldrex

mov

swp

rdepends

section

comments

apex

1.6.10ubuntu2

1.6.10ubuntu2

1.6.10ubuntu1

0

base

armv5 bootloader - none issue

binutils

2.20-4ubuntu3

2.20-4ubuntu3

2.20-4ubuntu3

toolchain - dealt elsewhere

boost1.38

1.38.0-6ubuntu6

1.38.0-6ubuntu6

18

libs

contain spinlocks and atomics code using swp

boost1.40

1.40.0-2ubuntu3

1.40.0-2ubuntu2

11

libs

contain spinlocks and atomics code using swp

cacao-source

0.99.4-2

0.99.4-2

0.99.4-2

0

devel

boehm-gc problem as in gcc-4.4; couple of swp usages; jit probably has lots of ARM vs. thumb-2 assumptions - work is needed

cln

1.3.1-1ubuntu2

2

libs

assembler affected seems to be not used - maybe demotion candidate - libcln5 still used!

coreutils

7.4-2ubuntu1

20

utils

not an issue - false positive

db

4.8.24-1ubuntu1

atomics assembler - seems not used - db4.2 patch can be used - review for smp safety

db4.2

4.2.52+dfsg-5

4

libs

atomics assembler - fixed in archive - review for smp safety

db4.6

4.6.21-14ubuntu1

9

libs

atomics assembler - seems not used - db4.2 patch can be used - review for smp safety

djvulibre

3.5.22-1ubuntu2

Looks like it may need fixing. mov pc, <Rn> won't interwork correctly if built in Thumb.

dmake

4.12-1

1

devel

false positive

eglibc

2.10.2-2ubuntu1

2.10.2-2ubuntu1

2.10.1-3ubuntu1

0

devel

toolchain - dealt elsewhere - doko should review

emacs23

23.1+1-4ubuntu5

false positive

erlang

13.b.2.1-dfsg-1ubuntu3

13.b.2.1-dfsg-1ubuntu1

7

interpreters

needs to be checked http://pastebin.com/f7ec03435 - might also generate code

espeak

1.41.01-1ubuntu1

no arm code affected

evolution-data-server

2.28.1-0ubuntu1

14

gnome

needs gcc atomics

ffmpeg

0.5+svn20090706-2ubuntu3

35

graphics

needs a serious check

gcc-4.4

4.4.2-3ubuntu2

4.4.2-2ubuntu1

68

devel

toolchain - should be fine - dmart: has a problem with swp in the boehm-gc code... for openjdk (LP:...); verify libstdc++ for exception handling / stack unwinding code - dyfet

gccxml

0.9.0+cvs20090916-1

non-issue / doko should double check

gdb

7.0-1ubuntu1

7.0-1ubuntu1

7.0-1ubuntu1

39

devel

needs to be checked: doko

ghostscript

8.70.dfsg.1-0ubuntu3

false-positive

glib2.0

2.22.2-0ubuntu1

atomic swp - most likely fixed already

gmp

4.3.1+dfsg-3

144

libs

gnome-pilot

2.0.17-0ubuntu2

4

gnome

graphviz

2.20.2-3ubuntu5

48

graphics

installation-guide

20081208ubuntu5

klibc

1.5.15-1ubuntu2

almost all indirectly?

libs

essential in system startup utils

libatomic-ops

1.2+cvs20080819-1

1.2+cvs20080819-1

libffi

3.0.9~rc3-1

libgc

6.8-1.2

libgd-gd2-perl

2.39-2

libgd2

2.0.36~rc1~dfsg-3ubuntu1

64

libs

libmad

0.15.1b-4

libpst

0.6.41-0ubuntu2

libwoodstox-java

3.9.2.dfsg-1ubuntu1

linux

2.6.32-7.10

2.6.32-7.10

2.6.32-5.6

linux-ec2

2.6.32-300.1

2.6.32-300.1

2.6.31-302.7

linux-fsl-imx51

2.6.31-601.2

2.6.31-601.2

2.6.31-600.1

linux-mvl-dove

2.6.31-701.2

2.6.31-700.1

linux86

0.16.17-3ubuntu2

llvm

2.6-0ubuntu1

2.6-0ubuntu1

mono

2.4.2.3+dfsg-2

2.4.2.3+dfsg-2

nasm

2.07-1

ncurses

5.7+20090803-2ubuntu2

501

libs

newlib

1.17.0-0ubuntu5

ocaml

3.11.1-4

openbabel

2.2.3-1

openjdk-6

6b17~pre2-0ubuntu3

openssl

0.9.8k-7ubuntu3

php5

5.2.11.dfsg.1-2ubuntu1

pixman

0.16.2-1

postgresql-8.4

8.4.1-1

procps

3.2.8-1ubuntu3

ps3-kboot

1.6-2build1

1.6-2build1

1.6-2build1

pulseaudio

0.9.21-0ubuntu1

python2.5

2.5.4-1ubuntu7

python2.6

2.6.4-1ubuntu2

qemu-kvm

0.11.0-0ubuntu6.3

0.11.0-0ubuntu6.3

0.11.0-0ubuntu6.3

qt-x11-free

3.3.8-b-6ubuntu2

qt4-x11

4.6.0-1ubuntu2

4.6.0-1ubuntu2

4.6.0~rc1-1ubuntu1

redboot-imx

200938-0ubuntu1

sg3-utils

1.28-2

swig1.3

1.3.36-1ubuntu2

syslinux

3.63+dfsg-2ubuntu3

texlive-bin

2007.dfsg.2-8

2007.dfsg.2-8

thunderbird

2.0.0.23+build1+nobinonly-0ubuntu1

2.0.0.23+build1+nobinonly-0ubuntu1

unzip

6.0-1

upx-ucl

3.04-1

vim

7.2.245-2ubuntu2

webkit

1.1.17-1

xen-3.3

3.3.0-1ubuntu11

xine-lib

1.1.16.3-1ubuntu1

zip

3.0-1ubuntu1

summary for universe:

Package

ldrex

mov

swp

acl2

3.4-2

anarchism

11.7-1

arrayprobe

2.0-3

2.0-3

2.0-3

as31

2.3.1-2

asylum

0.3.2-1

atlas

3.6.0-24ubuntu1

atop

1.23-1

avifile

0.7.48~20090503.ds-1

babel

1.2.0.dfsg-7ubuntu4

binutils-avr

2.18-4ubuntu1

binutils-h8300-hms

2.16.1-8

2.16.1-8

2.16.1-8

binutils-m68hc1x

2.18-3

2.18-3

2.18-3

bkchem

0.13.0-1

blcr

0.8.2-5

0.8.2-5

cacao

0.99.4-1

0.99.4-1

0.99.4-1

cdecl

2.5-11

cell-binutils

2.17cvs20070401-0ubuntu1

2.17cvs20070401-0ubuntu1

2.17cvs20070401-0ubuntu1

cell-gcc

4.1.1r840-0ubuntu7

cell-gdb

6.6.50cvs20070623-1ubuntu3

6.6.50cvs20070623-1ubuntu3

6.6.50cvs20070623-1ubuntu3

cpqarrayd

2.3-1

2.3-1

2.3-1

ctypes

1.0.2-6ubuntu1

cxxtools

1.4.8-3

1.4.8-3

ddd

3.3.11-1ubuntu2

deal.ii

6.2.1-2

desmume

0.9.4-2

0.9.4-2

dietlibc

0.31-1.2ubuntu2

0.31-1.2ubuntu2

disktype

9-1

dosbox

0.73-0ubuntu1

e3

2.71-1

ecl

9.6.1-1ubuntu1

9.6.1-1ubuntu1

emacs-snapshot

20090909-1

emacs22

22.2-0ubuntu8

etherboot

5.4.3+dfsg-0.2ubuntu2

falconpl

0.9.4.4-0ubuntu1

faumachine

20090922-1ubuntu1

ffcall

1.10+2.41-3

ffmpeg-php

0.6.0-1build2

fpc

2.2.4-3

2.2.4-3

freesci

0.6.4-6

fte

0.50.0-2

gamera

3.2.3-1

gauche-c-wrapper

0.5.4-2

gcc-4.1

4.1.2-27ubuntu1

4.1.2-27ubuntu1

toolchain - dealt elsewhere

gcc-4.2

4.2.4-5ubuntu1

4.2.4-5ubuntu1

toolchain - dealt elsewhere

gcc-4.3

4.3.4-5ubuntu1

4.3.4-5ubuntu1

4.3.4-5ubuntu1

toolchain - dealt elsewhere

gcc-h8300-hms

3.4.6-5

toolchain - dealt elsewhere

gcc-m68hc1x

3.3.6+3.1+dfsg-3

3.3.6+3.1+dfsg-3

toolchain - dealt elsewhere

gcc-mingw32

4.4.2-1

4.4.2-1

toolchain - dealt elsewhere

gcc-snapshot

20091204-0ubuntu1

20091116-0ubuntu1

toolchain - dealt elsewhere

gcj-4.3

4.3.4-4ubuntu1

gcl

2.6.7-45ubuntu1

2.6.7-45ubuntu1

2.6.7-45ubuntu1

gclcvs

2.7.0-96

2.7.0-96

2.7.0-96

gdal

1.6.2-1

gdb-avr

6.4.90.dfsg-3

6.4.90.dfsg-3

6.4.90.dfsg-3

gdb-m68hc1x

6.4+3.1+dfsg-5

6.4+3.1+dfsg-5

6.4+3.1+dfsg-5

geshi

1.0.8.4-1

ghdl

0.27+svn110+gcc4.3.3+dfsg-1

gimp-gap

2.6.0+dfsg-1

gnat-4.3

4.3.4-1ubuntu1

gnu-smalltalk

3.0.3-2

gnuplot

4.2.6-1

4.2.6-1

google-perftools

0.98-1ubuntu1

gromacs

4.0.5-4

gstreamer0.10-ffmpeg

0.10.9-2

gxemul

0.4.7.2-1

0.4.7.2-1

helix-player

1.0.9-0ubuntu8

1.0.9-0ubuntu8

hol88

2.02.19940316-8

ht

2.0.17-1

2.0.17-1

2.0.17-1

hurd

20080607-6

imview

1.1.9c-4ubuntu2

insight

6.7.1.dfsg.1-10.1ubuntu2

6.7.1.dfsg.1-10.1ubuntu2

6.7.1.dfsg.1-10.1ubuntu2

insighttoolkit

3.16.0-1

ironpython

1.1.1-3

jamvm

1.5.3-2

1.5.3-2

jocaml

3.11.1-3

kaya

0.4.4-2

kino

1.3.3-1ubuntu2

kompozer

0.8~b1-2

0.8~b1-2

kvirc

4.0.0~svn3240-1

libgd-gd2-noxpm-perl

2.39-2

libgii

1.0.2-4

libnet-dri-perl

0.95-1

libopenspc

0.3.99a-2

libtk-img

1.3-release-8

libv8

1.3.11+dfsg-2

1.3.11+dfsg-2

lifelines

3.0.61-1

lightning-sunbird

0.9+nobinonly-0ubuntu3

0.9+nobinonly-0ubuntu3

linux-rt

2.6.31-9.152

2.6.31-9.152

2.6.31-9.152

llvm-gcc-4.2

2.6~pre1-0ubuntu1

2.6~pre1-0ubuntu1

ltp

20090531+dfsg-4ubuntu1

lwp

2.5+debian-4

lyx

1.6.4-1ubuntu1

mapivi

0.9.7-1

mapserver

5.4.2-1

metacity-themes

1.0.11

mit-scheme

7.7.90+20090107-1ubuntu1

mlton

20091107

mupen64plus

1.5+dfsg1-7

mysql-dfsg-5.0

5.1.30really5.0.83-0ubuntu3

netsurf

1.2-1build1

openbios-ppc

1.0-3

openocd

0.2.0+r2529-1

0.2.0+r2529-1

openser

1.3.2-3

oprofile

0.9.4+cvs20090629-2.1ubuntu2

osiris

4.2.3-4

palbart

2.4-5

paraview

3.4.0-4ubuntu4

parrot

1.4.0-1ubuntu1

pdl

2.4.5+dfsg-2ubuntu1

perl-tk

804.028-6

petsc

3.0.0.dfsg-5ubuntu2

php-apc

3.0.19-2

plt-scheme

4.2.1-1

4.2.1-1

4.2.1-1

postgresql-8.3

8.3.8-1

ptop

3.6.2-2

python3.0

3.0.1-0ubuntu13

python3.1

3.1.1-1ubuntu1

r-cran-eco

3.1-4-1

r-cran-mnp

2.5-6-2

radare

1.4-1

1.4-1

1.4-1

rlplot

1.4-1

root-system

5.18.00-2.3ubuntu3

rtai

3.7.1-1

3.7.1-1

3.7.1-1

scummvm

1.0.0~rc1-1-1

sdparm

1.02-1

seamonkey

1.1.17+nobinonly-0ubuntu1

1.1.17+nobinonly-0ubuntu1

see

0.61-3

ser

2.0.0-2

2.0.0-2

skyeye

1.2.5-2ubuntu1

1.2.5-2ubuntu1

sm

2.2-3-2

softgun

0.16-2.1

spu-newlib

1.15.0cvs20070621-0ubuntu3

survex

1.0.39.1-2.1

synopsis

0.12-3

systemtap

1.0-2

uboot-imx

2009.01-0ubuntu2

2009.01-0ubuntu1

uclmmbase

1.2.16.0-1

virtualbox-ose

3.0.8-dfsg-1ubuntu1

3.0.8-dfsg-1ubuntu1

visualboyadvance

1.8.0-5

1.8.0-5

vtk

5.2.1-10ubuntu1

websvn

2.2.1-2

wine

1.0.1-0ubuntu8

wine1.2

1.1.31-0ubuntu3

wireshark

1.2.2-2

wxwidgets2.6

2.6.3.2.2-3ubuntu5

wxwidgets2.8

2.8.10.1-0ubuntu1

xemacs21-packages

2009.02.17-1

xenomai

2.4.8-2ubuntu1

2.4.8-2ubuntu1

2.4.8-2ubuntu1

xindy

2.3-2

xmp

2.7.0-0ubuntu1

xulrunner

1.8.1.16+nobinonly-0ubuntu1

1.8.1.16+nobinonly-0ubuntu1

yabause

0.9.10-1

Packages which may contain hand-optimised floating point

These packages may contain hand-optimised floating point or NEON code.

It may be worth reviewing whether they should be built using -marm. However, they probably do not contain critical compatibility problems, and addressing them can be considered as relatively low priority.

(The list may have many false matches, due to the similarities between different architectures' floating-point instrtuction mnemonics: FLD, FST etc.)

summary for main:

Package

ldr

amavisd-new

2.6.4-1ubuntu3

byacc-j

1.15-1

crash

4.1.0-1ubuntu1

cyrus-sasl2

2.1.23.dfsg1-2ubuntu1

icon

9.4.3-2ubuntu2

kdelibs

3.5.10.dfsg.1-2.1ubuntu2

kdeutils

4.3.3-0ubuntu1

libapache2-mod-perl2

2.0.4-5ubuntu1

likewise-open

4.1.2982-0ubuntu3

mesa

7.6.0-1ubuntu4

moodle

1.9.4.dfsg-0ubuntu4

openldap

2.4.18-0ubuntu1

perl

5.10.0-24ubuntu4

postfix

2.6.5-3

ruby1.9

1.9.0.5-1ubuntu1

samba

3.4.3-1ubuntu1

squid

2.7.STABLE7-1ubuntu1

valgrind

3.5.0-3ubuntu1

yasm

0.8.0-1

summary for universe:

Package

ldr

9base

4-1

anjuta

2.28.0.0-0ubuntu3

aranym

0.9.9-1

b2evolution

2.4.7-0ubuntu1

bioperl

1.6.0-2ubuntu1

bochs

2.4.1-1ubuntu1

cacti

0.8.7e-1

cdo

1.4.0.1~dfsg-1

clipf

0.4-1

crystalspace

1.4.0~svn32686-0ubuntu1

cyrus-imapd-2.2

2.2.13-16ubuntu1

cyrus-sasl2-heimdal

2.1.23.dfsg1-2ubuntu1

dahdi-linux

2.2.0.2~dfsg-1ubuntu2

dokuwiki

0.0.20090214b-3

drawterm

0.cvs+20081209.1-1

drift

2.2.3-2

egroupware

1.6.001+dfsg-2

freej

0.10git20081231-0ubuntu2

fvwm

2.5.28.ds-3

gap-ctbllib

1r1p3-5

gears

0.5.32.0~svn3391+dfsg-0ubuntu1

gmfsk

0.6+0.7pre1-2.1

gplcver

2.12a-1.1

grads

2.0.a7.1-3

hatari

1.3.1-1

highlighting-kate

0.2.5-2

ipplan

4.92-1

kagemai

0.8.6-5

kolab-cyrus-imapd

2.2.13-8

lcdf-typetools

2.79-1

ldb

0.9.6~git20090912-1

levee

3.5a-1ubuntu1

libferret-ruby

0.11.6-2

libhdf4

4.2r4-6

libopengl-ruby

0.60.0-0ubuntu3

libphp-adodb

5.09a-1

lightning

1.2-8

likewise-open5

5.0.3991.1+krb5-0ubuntu2

mahara

1.1.7-1

mesa-glw

7.4-0ubuntu2

mined

2000.15.4-1

mpg123

1.9.1-2ubuntu1

ncbi-tools6

6.1.20090809-1

nemerle

0.9.3+dfsg-3

ocp

0.1.17-2

octave-miscellaneous

1.0.8-1

octave3.0

3.0.5-6ubuntu2

octave3.2

3.2.3-1

phpgacl

3.3.7-7

phpgroupware

0.9.16.012+dfsg-9

phppgadmin

4.2.2-1ubuntu1

prayer

1.3.2-dfsg1-1

psyco

1.6-1ubuntu1

python-pgsql

2.5.1-2ubuntu3

pythoncard

0.8.1-8.1ubuntu1

rmysql

0.7-4-2

rosegarden

1.7.3-1ubuntu1

ruby1.9.1

1.9.1.243-2

samba4

4.0.0~alpha8+git20090718-1

sbcl

1.0.29.11-1

scilab

5.1.1-12

sdf

2.001-9

simh

3.8.1-1

snd

11-4

soundmodem

0.13-1

sql-ledger

2.8.26-1

sqlalchemy

0.5.6-1

sqlfairy

0.11003-1

squid3

3.0.STABLE19-1

strongswan

4.3.2-1.1ubuntu1

tcc

0.9.24-1

torrentflux

2.4-4

ttf-ocr-a

1.0-2

typo3-src

4.2.10-1

unicap

0.9.5-1build2

unmass

0.9-3

xjdic

24-7

xwnc

0.3.3-9

zaptel

1.4.11~dfsg-3ubuntu2

zope2.10

2.10.9-1

zope2.11

2.11.2-1ubuntu1

Full Search Output

Note that the unfiltered logs contain a lot of false positives.

  • Filtering script used to reduce the amount of false match material: filter.pl