Package: dpkg-dev
Version: 1.18.10
Severity: wishlist

Dear Maintainer,

Many software packages (e.g. see #833846) like to set optimisation flags based
on autodetecting CPU features of the build machine. Of course this is not
suitable for binary distributors in general, and for Debian package maintainers
should instead hard-code optimisation flags based on DEB_HOST_ARCH.

However as far as I can tell, there is no central documentation resource that
describes the optimisation flags suitable for each Debian architecture. Because
of this, in practise package maintainers will just disable all build-time CPU
detection to avoid generating illegal instructions. I have done this myself in
the past, and this is what I suggest in #833846. But it's a shame to disable
*all* optimisations.

dpkg-buildflags would be a good place to put these flags. Maintainers can do
what they were doing before (disable build-time CPU autodetection) but still
get a somewhat-optimised build - in fact, the most optimised that it can
validly be for a Debian binary package. It would also act as a good central
location to document which instructions each Debian architecture actually
supports, and including how this might change over time - e.g. how i386 was
bumped up to requiring i686 this May.

X

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'stable'), (300, 'unstable'), (200, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages dpkg-dev depends on:
ii  base-files    9.6
ii  binutils      2.26.1-1
ii  bzip2         1.0.6-8
ii  libdpkg-perl  1.18.10
ii  make          4.1-9
ii  patch         2.7.5-1
ii  tar           1.29b-1
ii  xz-utils      5.1.1alpha+20120614-2.1

Versions of packages dpkg-dev recommends:
ii  build-essential          12.2
ii  fakeroot                 1.21-1
ii  gcc [c-compiler]         4:5.3.1-3
ii  gcc-4.8 [c-compiler]     4.8.5-4
ii  gcc-4.9 [c-compiler]     4.9.3-14
ii  gcc-5 [c-compiler]       5.4.0-6
ii  gnupg                    1.4.20-6
ii  gnupg2                   2.1.11-7
ii  gpgv                     1.4.20-6
ii  libalgorithm-merge-perl  0.08-3

Versions of packages dpkg-dev suggests:
ii  debian-keyring  2016.07.02

-- no debconf information

Reply via email to