[Bug 780551] Re: incorrect interface in avxintrin.h

Matthias Kretz kretz at kde.org
Fri Jan 10 12:04:03 UTC 2014


Matthias, I'm sure your opinion is important here. But can we please
argue this on technical merit?

Currently the argument is "a new macro will be used by developers to
create more harm than good" and "feature tests are a better way to solve
the problem the version macro should solve". I don't buy the first one
(it's rather subjective at this point) and I already explained why the
second one is not true for all software (library headers in this case).

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-4.5 in Ubuntu.
https://bugs.launchpad.net/bugs/780551

Title:
  incorrect interface in avxintrin.h

Status in Linaro GCC:
  Won't Fix
Status in “gcc-4.5” package in Ubuntu:
  Won't Fix
Status in “gcc-defaults” package in Ubuntu:
  Won't Fix

Bug description:
  Binary package hint: gcc-4.5

  The following code compiles with vanilla GCC:
  __m128 m, x;
  float *mem;
  #if defined(__GNUC__) && __GNUC__ == 4 && (__GNUC_MINOR__ < 5 || (__GNUC_MINOR__ == 5 && __GNUC_PATCHLEVEL__ <= 2))
  _mm_maskstore_ps(mem, m, x);
  #else
  _mm_maskstore_ps(mem, _mm_castps_si128(m), x);
  #endif

  It fails to compile on Ubuntu because the interface of _mm_maskstore_ps was changed to the interface of GCC 4.5.3, but the version number was kept at 4.5.2.
  Which macro does Ubuntu GCC provide to check for this?

  For what it's worth, I believe this patch should be reverted in the
  GCC package, though it's probably too late already. I'd hope the
  updates to the gcc package would be good enough, though. Or consider
  to upgrade to 4.5.3 completely.

  Also, just to add a bit of perspective: I do nightly builds of a
  software project where GCC snapshots between even patch levels often
  exhibit miscompilations. I don't see how a distribution could sensibly
  take any patches from GCC between releases and release that as a given
  GCC package. A distribution has the means to ensure that its own
  packages compile, but that it executes correctly...? In this case you
  broke source compatibility without any means to distinguish the
  interface version. Since it only affects development for AVX it is no
  wonder that you don't notice. That hopefully doesn't imply that you
  don't care...

  ProblemType: Bug
  DistroRelease: Ubuntu 11.04
  Package: gcc 4:4.5.2-1ubuntu3
  ProcVersionSignature: Ubuntu 2.6.38-8.42-generic 2.6.38.2
  Uname: Linux 2.6.38-8-generic x86_64
  NonfreeKernelModules: nvidia
  Architecture: amd64
  Date: Tue May 10 16:13:13 2011
  InstallationMedia: Kubuntu 11.04 "Natty Narwhal" - Release amd64 (20110426.3)
  ProcEnviron:
   LANGUAGE=en_US:en
   PATH=(custom, user)
   LANG=en_US.UTF-8
   SHELL=/bin/zsh
  SourcePackage: gcc-defaults
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc-linaro/+bug/780551/+subscriptions



More information about the foundations-bugs mailing list