Bug#1019166: pd-lib-builder: bogus build-flags on armel and armhf
Package: pd-lib-builder
Version: 0.6.0-2
Severity: important
Dear Maintainer,
pd-lib-builder adds some optimization flags, depending on which target
architecture it detects.
unfortunately there are a couple of flaws:
- armv6 is detected with 'ifeq ($(shell uname), armv6l)' which i think cannot
work at all (instead if should call $(shell uname -m)
- this obviously fails when cross-compiling, and is not overridable
- the other check for arm ('ifeq ($(target.arch), arm)') is also too generic,
as it will wrongly match the 'armel' architecture (presumable *also* because
of the broken uname-check above), which does not like the '-mfloat-abi=hard'
flag and will fail (when including pthread.h) with
> fatal error: gnu/stubs-hard.h: No such file or directory
- it seems that it also breaks on 'armhf', as the resulting binaries throw a
bus-error...
the full optimization flags injected for "arm" (as found in the GNU-triplet)
are '-march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard'
probably we could use the following to narrow down the arm-architecture:
> gcc -march=native -Q --help=target|egrep "^[[:space:]]*-march="
this gives on the armdahl.debian.org:
| Debian architecture | -march |
|---------------------|------------|
| armel | armv5te |
| armhf | armv7-a+fp |
| arm64 | armv8-a |
or simply use some combination of DEB_HOST_ARCH, `dpkg-architecture
-qDEB_HOST_ARCH` and `dpkg --print-architecture`.
-- System Information:
Debian Release: bookworm/sid
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.18.0-3-amd64 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages pd-lib-builder depends on:
ii puredata-dev 0.52.2+ds0-1+exp1
pd-lib-builder recommends no packages.
pd-lib-builder suggests no packages.
-- no debconf information
Reply to: