[Bug 1320292] Re: ABI incompatibility between POWER and Z HTM builtins and intrinsics

Launchpad Bug Tracker 1320292 at bugs.launchpad.net
Thu Jun 18 06:23:37 UTC 2015


This bug was fixed in the package gcc-4.8 - 4.8.4-2ubuntu1~14.04

---------------
gcc-4.8 (4.8.4-2ubuntu1~14.04) trusty-proposed; urgency=medium

  * SRU LP: #1311866.
  * Fix PR tree-optimization/63341 (wrong code, rs6000).
  * Allow to turn off -Wformat using Wno-format. LP: #1401836.
  * Fix PR target/60693 (x86, ice on valid code). LP: #1378737.
  * Fix PR tree-optimization/61964 (wrong code). LP: #1347147.
  * Fix GCC miscompilation with boost::asio::io_service::work. LP: #1338693.
  * Fix PR target/61208 (POWER, wrong code). LP: #1322287.
  * Fix ABI incompatibility between POWER and Z HTM builtins and intrinsics.
    LP: #1320292.
  * Fix PR c++/61046 (ice on invalid code). LP: #1313102.
  * Fix wrong-code issue in the little endian vector API (ppc64el).
    LP: #1311128.
  * Fix PR tree-optimization/59358 (wrong code). LP: #1395019.
  * Fix ice on ARM32. LP: #1268893.
  * Don't apply the backport for PR61841 for trusty, causing link failures.
  * Fix wrong code for vector doubleword extract (POWER). LP: #1437467.

gcc-4.8 (4.8.4-2ubuntu1) vivid; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.4-2) unstable; urgency=medium

  * Update to SVN 20150426 (r222448) from the gcc-4_8-branch.
    - Fix PR libstdc++/60966, PR c/61553, PR middle-end/63704,
      PR target/61413 (ARM), PR target/64358 (RS6000), PR target/64479 (SH),
      PR target/64409 (x86), PR rtl-optimization/64037, PR c++/64487,
      PR c++/64251, PR c++/64297, PR fortran/63733, PR fortran/64244,
      PR c/64766, PR target/64882, PR rtl-optimization/61058,
      PR middle-end/43631, PR tree-optimization/64563, PR target/64513,
      PR middle-end/57748, PR middle-end/57748, PR target/64795,
      PR fortran/64528, PR fortran/56867, PR fortran/57023, PR c/57653,
      PR tree-optimization/63844 (OpenMP), PR middle-end/64199 (ice on valid),
      PR tree-optimization/64493 (ice on valid), PR tree-optimization/64495
      (wrong code), PR tree-optimization/56273 (diagnostics),
      PR tree-optimization/59124 (diagnostic), PR tree-optimization/64277
      (diagnostic), PR lto/65015, PR target/65163 (SH), PR target/64113 (ALPHA,
      link failure), PR rtl-optimization/64557, PR rtl-optimization/63475
      (ALPHA, wrong code), PR rtl-optimization/63483 (ALPHA, wrong code),
      PR target/64452 (AVR), PR target/64387 (x86, ice on valid),
      PR target/64979 (wrong code), PR target/64580 (rs6000),
      PR fortran/63744 (rejects valid), PR lto/65193 (ice on valid),
      PR tree-optimization/61634 (ice on valid), PR target/65196 (AVR),
      PR tree-optimization/63593 (ice on valid),
      PR tree-optimization/65063 (wrong code), PR target/65286 (rs6000),
      PR 65138/target (rs6000), PR target/53988 (SH), PR target/59593 (ARM),
      PR target/64453 (ARM), PR middle-end/65409 (ice on valid),
      PR tree-optimization/65388, PR fortran/65024 (ice),
      PR fortran/60898 (ice on valid), PR fortran/61138, PR libgfortran/60956,
      PR libstdc++/65279, PR libstdc++/65543, PR target/65849, PR target/65456,
      PR target/65787, PR c++/65727, PR c++/65721, PR fortran/56674,
      PR fortran/58813, PR fortran/59016, PR fortran/59024,
      PR libgfortran/59513.
    - s390 hotpatch backport.
    - ppc64: Backport little endian swap optimization.
  * Allow to build using gettext built with a newer GCC.
  * Backport PR c++/62255 (rejects-valid).
  * Update the Linaro support to the 4.8-2015.02 release.
  * Configure with --enable-targets=powerpcle-linux on ppc64el for
    backports to jessie, trusty, utopic and vivid.
  * [AArch64] Fix output template for Scalar Neon->Neon register move.
    LP: #1435342.
  * Limit the omp.h multilib fix to Linux. Addresses: #778440.
  * For ICEs, dump the preprocessed source file to stderr when in a
    distro build environment.
  * Apply the ada-mips patch for mips and mipsel targets only.

gcc-4.8 (4.8.4-1ubuntu15) vivid; urgency=medium

  * Update to SVN 20150327 (r221736) from the gcc-4_8-branch.
    - Fix PR libstdc++/65279, PR libstdc++/65543.
    - ppc64: Backport little endian swap optimization.
  * Limit the omp.h multilib fix to Linux. Addresses: #778440.
  * For ICEs, dump the preprocessed source file to stderr when in a
    distro build environment.
  * Apply the ada-mips patch for mips and mipsel targets only.

gcc-4.8 (4.8.4-1ubuntu14) vivid; urgency=medium

  * [AArch64] Fix output template for Scalar Neon->Neon register move.
    LP: #1435342.

gcc-4.8 (4.8.4-1ubuntu11) vivid; urgency=medium

  * Update to SVN 20150323 (r221594) from the gcc-4_8-branch.
    - Fix PR fortran/61138, PR libgfortran/60956.
  * Configure with --enable-targets=powerpcle-linux on ppc64el for vivid.

gcc-4.8 (4.8.4-1ubuntu10) vivid; urgency=medium

  * Update to SVN 20150319 (r221517) from the gcc-4_8-branch.
    - Fix PR middle-end/65409 (ice on valid), PR tree-optimization/65388,
      PR fortran/65024 (ice), PR fortran/60898 (ice on valid).
  * Configure with --enable-targets=powerpcle-linux on ppc64el for
    backports to jessie, trusty and utopic.

gcc-4.8 (4.8.4-1ubuntu8) vivid; urgency=medium

  * Fix ppc64el build.

gcc-4.8 (4.8.4-1ubuntu7) vivid; urgency=medium

  * Update to SVN 20150309 (r221336) from the gcc-4_8-branch.
    - Fix PR target/65286 (rs6000), PR 65138/target (rs6000),
      PR target/53988 (SH), PR target/59593 (ARM), PR target/64453 (ARM).
  * Update the Linaro support to the 4.8-2015.02 release.

gcc-4.8 (4.8.4-1ubuntu5) vivid; urgency=medium

  * Update to SVN 20150228 (r221076) from the gcc-4_8-branch.
    - Fix PR lto/65193 (ice on valid), PR tree-optimization/61634 (ice on
      valid), PR target/65196 (AVR), PR tree-optimization/63593 (ice on valid),
      PR tree-optimization/65063 (wrong code).
  * Backport PR c++/62255 (rejects-valid).

gcc-4.8 (4.8.4-1ubuntu4) vivid; urgency=medium

  * Update to SVN 20150225 (r220958) from the gcc-4_8-branch.
    - Fix PR c/57653, PR tree-optimization/63844 (OpenMP), PR middle-end/64199
      (ice on valid), PR tree-optimization/64493 (ice on valid),
      PR tree-optimization/64495 (wrong code), PR tree-optimization/56273
      (diagnostics), PR tree-optimization/59124 (diagnostic),
      PR tree-optimization/64277 (diagnostic), PR lto/65015,
      PR target/65163 (SH), PR target/64113 (ALPHA, link failure),
      PR rtl-optimization/64557, PR rtl-optimization/63475 (ALPHA, wrong code),
      PR rtl-optimization/63483 (ALPHA, wrong code), PR target/64452 (AVR),
      PR target/64387 (x86, ice on valid), PR target/64979 (wrong code),
      PR target/64580 (rs6000), PR fortran/63744 (rejects valid).
    - s390 hotpatch backport.

gcc-4.8 (4.8.4-1ubuntu3) vivid; urgency=medium

  * Update to SVN 20150205 (r220446) from the gcc-4_8-branch.
    - Fix PR c/64766, PR target/64882, PR rtl-optimization/61058,
      PR middle-end/43631, PR tree-optimization/64563, PR target/64513,
      PR middle-end/57748, PR middle-end/57748, PR target/64795,
      PR fortran/64528, PR fortran/56867, PR fortran/57023.
  * Allow to build using gettext built with a newer GCC.
  * Configure with --enable-targets=powerpcle-linux on ppc64el for
    backports to jessie, trusty and utopic.

gcc-4.8 (4.8.4-1ubuntu2) vivid; urgency=medium

  * Update to SVN 20150121 (r219965) from the gcc-4_8-branch.
    - Fix PR libstdc++/60966, PR c/61553, PR middle-end/63704,
      PR target/61413 (ARM), PR target/64358 (RS6000), PR target/64479 (SH),
      PR target/64409 (x86), PR rtl-optimization/64037, PR c++/64487,
      PR c++/64251, PR c++/64297, PR fortran/63733, PR fortran/64244.

gcc-4.8 (4.8.4-1ubuntu1) vivid; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.4-1) unstable; urgency=medium

  * GCC 4.8.4 release.
    - Fix PR target/61407 (darwin), PR middle-end/58624 (ice),
      PR sanitizer/64265 (wrong code).
  * Require recent binutils to pass go test failures.

gcc-4.8 (4.8.3-18ubuntu2) vivid; urgency=medium

  * Update to SVN 20141211 (r218621) from the gcc-4_8-branch.
    - Fix PR middle-end/64225 (missed optimization).
  * Disable building the sanitizer libs on powerpc, ppc64 and ppc64. Not
    yet completely ported, and causing kernel crashes running the tests.
  * Don't build libphobos multilibs, there is no gdc-multilib built.

gcc-4.8 (4.8.3-18ubuntu1) vivid; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.3-18) unstable; urgency=medium

  * Update to SVN 20141210 (r218575) from the gcc-4_8-branch.
    - Fix PR target/55351 (SH), PR tree-optimization/61686,
      PR bootstrap/64213.
  * Fix cross builds with dpkg-architecture unconditionally exporting
    target variables. For now specify the target architecture
    in debian/target. This still needs to work with older dpkg versions,
    so don't "simplify" the packaging. Addresses: #768167.

gcc-4.8 (4.8.3-17ubuntu1) vivid; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.3-17) unstable; urgency=medium

  * Update to SVN 20141208 (r218508) from the gcc-4_8-branch.
    - Fix PR target/59593 (ARM), PR c++/56493 (performance),
      PR libstdc++/63840, PR libstdc++/61947, PR libstdc++/59603,
      PR target/50751 (SH), PR rtl-optimization/64037i (wrong code).

gcc-4.8 (4.8.3-16) unstable; urgency=medium

  * Update to SVN 20141202 (r218278) from the gcc-4_8-branch.
    - Fix PR target/64115 (powerpc), PR middle-end/64111 (ice).
  * Move libphobos2.a into the gcc_lib_dir. Closes: #771647.

gcc-4.8 (4.8.3-15) unstable; urgency=medium

  * Update to SVN 20141128 (r218178) from the gcc-4_8-branch.
    - Fix PR fortran/63938 (OpenMP), PR libgomp/61200 (OpenMP, ice),
      PR middle-end/64067 (ice), PR rtl-optimization/63659 (wrong code),
      PR preprocessor/60436 (ice).
    - This adds the backports as found in gcc-4.9 4.9.2-4.

gcc-4.8 (4.8.3-14) unstable; urgency=medium

  * Update to SVN 20141128 (r218162) from the gcc-4_8-branch.
    - Fix PR target/56846 (ARM), PR tree-optimization/61969 (wrong code),
      PR tree-optimization/62031 (wrong code), PR tree-optimization/63379
      (wrong code), PR tree-optimization/63605 (wrong code), PR middle-end/63665
      (wrong code), PR target/60111 (SH), PR target/63673 (rs6000),
      PR target/63947 (x86), PR tree-optimization/62167 (wrong code),
      PR tree-optimization/63841 (wrong code), PR ipa/63838 (wrong code),
      PR c++/63455 (ice), PR c++/63415 (ice), PR c++/56710 (ice),
      PR c++/58624 (ice), PR ada/47500, PR libfortran/63589.
    - Fixes for Cortex-A53 Erratum 835769 (AArch64).

  [ Matthias Klose ]
  * Fix the libphobos cross build.
  * Fix typo in the libstdc++ HTML docs. Addresses: #766498.
  * Use doxygen's copy of jquery.js for the libstdc++ docs. Addresses: #766499.
  * Support building the gcc-4.8 base package only.

  [ Aurelien Jarno ]
  * Always configure sh4-linux with --with-multilib-list=m4,m4-nofpu,
    even with multilib disabled, as it doesn't produce additional
    libraries.

gcc-4.8 (4.8.3-13) unstable; urgency=medium

  * Update to SVN 20141014 (r216202) from the gcc-4_8-branch.

gcc-4.8 (4.8.3-12ubuntu3) utopic; urgency=medium

  * Fix the libphobos cross build.

gcc-4.8 (4.8.3-12ubuntu2) utopic; urgency=medium

  * Update to SVN 20141014 (r216202) from the gcc-4_8-branch.
    - Fix PR libstdc++/63449 (docs), PR target/52941 (SH),
      PR tree-optimization/63375 (wrong code), PR debug/63342 (ice),
      PR target/63428 (wrong code), PR ada/63225 (ice),
      PR fortran/59488 (OpenMP).
    - x86: Enable reminder{sd,df,xf} and fmod{sf,df,xf} only
      for flag_finite_math_only.
    - rs6000 updates:
      - Generate LE code for vec_lvsl and vec_lvsr that is compatible
        with BE code.
      - Warn for deprecated use of vec_lvsl and vec_lvsr for little endian.
      - libcpp: Revise search_line_fast to avoid old unaligned load sequences.

gcc-4.8 (4.8.3-12ubuntu1) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.3-12) unstable; urgency=high

  * Update to SVN 20140930 (r215742) from the gcc-4_8-branch.

  [ Aurelien Jarno ]
  * Default to mips64 ISA on mips64el, with tuning for mips64r2.

  [ Matthias Klose ]
  * Don't suggest libbacktrace-dbg and binutils-gold. Closes: #762640.

gcc-4.8 (4.8.3-11ubuntu1) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.3-11) unstable; urgency=medium

  * Update to SVN 20140913 (r215236) from the gcc-4_8-branch.
  * Fix installation of the libstdc++ documentation. Addresses: #760872.

gcc-4.8 (4.8.3-10ubuntu1) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.3-10) unstable; urgency=medium

  * Update to SVN 20140831 (r214767) from the gcc-4_8-branch.

  [ Samuel Thibault ]
  * boehm-gc: use anonymous mmap instead of brk also on hurd-*.

gcc-4.8 (4.8.3-9ubuntu1) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.3-9) unstable; urgency=medium

  * Update to SVN 20140820 (r214213) from the gcc-4_8-branch.
  * Backport PR lto/62032.
  * Fix PR tree-optimization/59586, graphite segfault, taken from the trunk.
    LP: #1227789.

gcc-4.8 (4.8.3-8ubuntu1) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.3-8) unstable; urgency=medium

  * Update to SVN 20140814 (r213981) from the gcc-4_8-branch.
  * Add build dependency on systemtap-sdt-dev.
  * Backport Python3 pretty printer support (Samuel Bronson).
  * Proposed backport for PR libstdc++/61841. Closes: #749290.
  * Build-depend on dpkg-dev (>= 1.7.11).

gcc-4.8 (4.8.3-7ubuntu1) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.3-7) unstable; urgency=medium

  * Update to SVN 20140801 (r213447) from the gcc-4_8-branch.
    - CVE-2014-5044, fix integer overflows in array allocation in libgfortran.
      Closes: #756325.
    - Fix PR tree-optimization/61964. LP: #1347147.
  * Fix java.security symlink. Addresses: #756484.

gcc-4.8 (4.8.3-6ubuntu1) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.
  * Update to SVN 20140728 (r213129) from the gcc-4_8-branch.
    - Properly fix PR libobjc/61920 on the 4.8 branch.

gcc-4.8 (4.8.3-6) unstable; urgency=medium

  * Update to SVN 20140725 (r213051) from the gcc-4_8-branch.
  * Don't gzip the xz compressed testsuite logs and summaries.

gcc-4.8 (4.8.3-5ubuntu2) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.3-5) unstable; urgency=medium

  * Update to SVN 20140717 (r212756) from the gcc-4_8-branch.
  * Warn about ppc ELFv2 ABI issues, which will change in GCC 4.10.
  * Fix installing test logs and summaries.

gcc-4.8 (4.8.3-4ubuntu2) utopic; urgency=medium

  * Update to SVN 20140701 (r212193) from the gcc-4_8-branch.

gcc-4.8 (4.8.3-4ubuntu1) utopic; urgency=medium

  * Update to SVN 20140626 (r212051) from the gcc-4_8-branch.

gcc-4.8 (4.8.3-4) unstable; urgency=medium

  * Update to SVN 20140626 (r212014) from the gcc-4_8-branch.

  [ Aurelien Jarno ]
  * Fix PR c++/61336, taken from the trunk.

  [ Matthias Klose ]
  * Fix removal of python byte-code files in libstdc++6. Addresses: #751435.
  * Fix a segfault in the driver from calling free on non-malloc'd area.
  * Remove version requirement for dependency on make. Addresses: #751891.
  * Drop versioned build dependency on gdb, and apply the pretty printer
    patch for libstdc++ based on the release.

gcc-4.8 (4.8.3-3ubuntu3) utopic; urgency=medium

  * No-change rebuild.

gcc-4.8 (4.8.3-3ubuntu2) utopic; urgency=medium

  * Update to SVN 20140616 (r211693) from the gcc-4_8-branch.

gcc-4.8 (4.8.3-3ubuntu1) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.3-3) unstable; urgency=medium

  * Update to SVN 20140606 (r211339) from the gcc-4_8-branch.
  * Don't install the libstdc++ pretty printer file into the debug directory,
    but into the gdb auto-load directory.
  * Fix the removal of the libstdc++6 package, removing byte-compiled pretty
    printer files and pycache directories.
  * Fix PR c++/61046, taken from the trunk. LP: #1313102.

gcc-4.8 (4.8.3-2ubuntu1) utopic; urgency=medium

  * Update the fix for PR target/61208 for the Linaro branch.

gcc-4.8 (4.8.3-2) unstable; urgency=medium

  * Update to SVN 20140527 (r210956) from the gcc-4_8-branch.
    - Fix PR target/61208.  Closes: #748422.

gcc-4.8 (4.8.3-1ubuntu4) utopic; urgency=medium

  * Update to SVN 20140526 (r210209) from the gcc-4_8-branch.
    - Fix PR target/61208 (ARM).  Closes: #748422.
    - PR target/61231 (powerpc).
    - Fix HTM __builtin_ttest rtl expansion. LP: #1322287.

gcc-4.8 (4.8.3-1ubuntu3) utopic; urgency=medium

  * Update the gcc-linaro-doc patch for GCC 4.8.3.

gcc-4.8 (4.8.3-1ubuntu2) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.3-1) unstable; urgency=medium

  * GCC 4.8.3 release.
  * Update the gdc tarball, drop the gdc-updates patch.
  * Refresh patches.
  * Build libitm on AArch64, patch taken from the trunk.
  * Drop the libstdc++-arm-wno-abi patch, not needed anymore in 4.8.

gcc-4.8 (4.8.2-23ubuntu1) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.2-23) unstable; urgency=medium

  * GCC 4.8.3 release candidate 1.
  * Update to SVN 20140516 (r210514) from the gcc-4_8-branch.
  * Apply the proposed patch for PR driver/61126.
  * Update the libstdc++v-python3 patch. Closes: #748317.
  * Update the gcc-default-format-security patch (Steve Beattie). LP: #1317305.

gcc-4.8 (4.8.2-22) unstable; urgency=medium

  * Update to SVN 20140508 (r210209) from the gcc-4_8-branch.
  * Install only versioned gcc-ar gcc-nm gcc-ranlib binaries for the hppa64
    cross compiler, update hppa64 alternatives. Closes: #745967.
  * Fix the as and ld symlinks for the hppa64 cross compiler.
  * Ensure that the common libs (built from the next GCC version) are
    available when building without common libs.
  * Fix java.security symlink in libgcj14. Closes: #746786.
  * Move the libstdc++ gdb pretty printers into libstdc++6, install the
    -gdb.py files into /usr/share/gdb/auto-load.
  * Set the 'Multi-Arch: same' attribute for packages, cross built with
    with_deps_on_target_arch_pkgs=yes (Helmit Grohne). Closes: #716795.
  * Build the gcc-X.Y-base package with with_deps_on_target_arch_pkgs=yes
    (Helmit Grohne). Closes: #744782.
  * Apply the proposed patch for PR driver/61106. Closes: #747345.

gcc-4.8 (4.8.2-21ubuntu1) utopic; urgency=medium

  * Merge with Debian; remaining changes:
    - Build from the upstream source.

gcc-4.8 (4.8.2-21) unstable; urgency=medium

  * Update to SVN 20140424 (r209749) from the gcc-4_8-branch.
  * gcc-4.8: Re-add lost dependency on libgcc-4.8-dev. Closes: #745709.

gcc-4.8 (4.8.2-20) unstable; urgency=medium

  * Update to SVN 20140423 (r209678) from the gcc-4_8-branch.
  * Explicitly configure with --disable-multilib on sparc64 when no
    multilibs are requested (Helmut Grohne). Closes: #743342.
  * Update powerpcspe patches for the branch (Helmut Grohne). Closes: #743718.
  * Remove more mudflap left overs. Addresses: #742606.
  * Adjust common_libs, libraries common to GCC 4.9.
  * Disable running the testsuite on kfreebsd, hangs the buildds.
  * Stop build packages built by GCC 4.9.

 -- Matthias Klose <doko at ubuntu.com>  Fri, 27 Mar 2015 21:14:21 +0100

** Changed in: gcc-4.8 (Ubuntu Trusty)
       Status: Fix Committed => Fix Released

** CVE added: http://www.cve.mitre.org/cgi-
bin/cvename.cgi?name=2014-5044

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

Title:
  ABI incompatibility between POWER and Z HTM builtins and intrinsics

Status in gcc-4.8 package in Ubuntu:
  Fix Released
Status in gcc-4.9 package in Ubuntu:
  Fix Released
Status in gccgo-4.9 package in Ubuntu:
  Invalid
Status in gcc-4.8 source package in Trusty:
  Fix Released
Status in gcc-4.9 source package in Trusty:
  Invalid
Status in gccgo-4.9 source package in Trusty:
  Fix Released
Status in gcc-4.8 source package in Utopic:
  Fix Released
Status in gcc-4.9 source package in Utopic:
  Fix Released
Status in gccgo-4.9 source package in Utopic:
  Invalid

Bug description:
  The IBM XL team defined a set of HTM intrinsic functions that were supposed
  to be API compatible across the XL and GCC compilers on both Power and S390.
  PR61193 describes an issue where the functions that begin a transaction
  are incompatible.  The Power intrinsics return non-zero on success, while
  the S390 intrinsics return zero on success.

  After discussing this with the XL compiler team, the S390 GCC team and
  the Power GCC team, we have decided to leave the incompatibility between
  Power and S390.  However, the XL and GCC compilers will be compatible
  with each other when targeting the same processor target.  To mitigate
  the incompatibility somewhat, we have decided to add a macro to the
  powerpc*-linux's htmintrin.h file that defines what the "successful"
  return status value of the __TM_simple_begin() and __TM_begin() intrinsic
  function is.  This macro is already defined in the S390's htmintrin.h
  header file and is used by the S390 to determine whether the transaction
  was successfully started or not.  By adding the same macro on Power, we
  allow users to write common code between Power and S390, even though our
  successful return status values are different.

  For example, the following code can be used on Power and S390, even
  though the actual value returned by __TM_simple_begin() is different.

    if ((tx_state = __TM_simple_begin ()) == _HTM_TBEGIN_STARTED)
      {
        /* Transaction State Initiated.  */
        ...
      }
    else
      {
        /* Transaction State Failed.  */
        ...
      }

  David approved this offline, so I'm committing this to GCC mainline as
  revision 210486, as well as the 4.9 (210487) and 4.8 (210488)
  branches.

  Peter

  	PR target/61193
  	* config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
  	(__TM_simple_begin): Use it.
  	(__TM_begin): Likewise.

  Index: gcc/config/rs6000/htmxlintrin.h
  ===================================================================
  --- gcc/config/rs6000/htmxlintrin.h	(revision 210485)
  +++ gcc/config/rs6000/htmxlintrin.h	(working copy)
  @@ -46,12 +46,17 @@ extern "C" {

   typedef char TM_buff_type[16];

  +/* Compatibility macro with s390.  This macro can be used to determine
  +   whether a transaction was successfully started from the __TM_begin()
  +   and __TM_simple_begin() intrinsic functions below.  */
  +#define _HTM_TBEGIN_STARTED     1
  +
   extern __inline long
   __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
   __TM_simple_begin (void)
   {
     if (__builtin_expect (__builtin_tbegin (0), 1))
  -    return 1;
  +    return _HTM_TBEGIN_STARTED;
     return 0;
   }

  @@ -61,7 +66,7 @@ __TM_begin (void* const TM_buff)
   {
     *_TEXASRL_PTR (TM_buff) = 0;
     if (__builtin_expect (__builtin_tbegin (0), 1))
  -    return 1;
  +    return _HTM_TBEGIN_STARTED;
   #ifdef __powerpc64__
     *_TEXASR_PTR (TM_buff) = __builtin_get_texasr ();
   #else

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.8/+bug/1320292/+subscriptions



More information about the foundations-bugs mailing list