[Debian-med-packaging] Bug#813436: How to specify a generic architecture to GCC (Was: SSE3 issue with iqtree when trying to enable i386)

Henrique de Moraes Holschuh hmh at debian.org
Tue Jun 28 10:58:11 UTC 2016


On Tue, 28 Jun 2016, Andreas Tille wrote:
> I admit I can not answer the question asked by upstream.  The package in
> question is iqtree[1] and they said that they have different
> computational kernels implemented to respect different hardware.
> Current Git[1] does not even build - may be due to some fine tuning of
> gcc options needed???
> 
> Any help is welcome

Well, for Debian unstable/next stable, we will have gcc 6, where you can
actually use FMV to fix this kind of issue sort of "automatically".  But
it is unbackportable (without a full backport of glibc and gcc 6).

https://lwn.net/Articles/691932/

But apparently iqtree is already capable of doing something like FMV on
its own, so you would not need to do the above, and the issue is with
the build tooling.

gcc doesn't much care if the build machine has the same subarch,
instruction set, or even architecture as the code it is compiling, so
you could build SSE3 binaries on a box without SSE3 support easily.

However, that only works when the *build scripts* do not try to run any
code they compiled in the build machine, or when they clearly separate
building build-tools (which will be run in the build machine during the
build) from the build-targets (which are going to be run only when
installed in the target system) and let you use different gcc and
C/LD/CXX/CPPFLAGS for each situation (i.e. are cross-compilation safe).

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh



More information about the Debian-med-packaging mailing list