Project

General

Profile

Feature #4398

Request upgrade to new compiler due to optimization bug using gcc 4_7_1

Added by Kyle Knoepfel almost 7 years ago. Updated almost 7 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
Build System
Target version:
Start date:
07/22/2013
Due date:
09/30/2013
% Done:

100%

Estimated time:
10.00 h
Spent time:
Scope:
Internal
Experiment:
Mu2e
SSI Package:
Duration: 71

Description

When using g++ 4_7_1 with the -O3 compile-time option, some of the mu2e code does not work properly. Specifically, when accessing a vector of std::arrays, the following:

_vector.at(i).at(j)

returns 0 when it should be nonzero. There are no problems when _vector[i][j] is used, but then we lose the bounds-checking capability, and it gets very cluttered to write things like:

auto const & it = _vector.begin()
cout << *(it+1)[0]

instead of

auto const & it = _vector.begin()
cout << (it+1)->at(0)

This problem was apparently fixed with gcc versions 4_7_3 and above, so we would greatly benefit from a newer version.

History

#1 Updated by Christopher Green almost 7 years ago

  • Subject changed from Compilation bug using gcc 4_7_1 to Request upgrade to new compiler due to optimization bug using gcc 4_7_1

Retitled.

Misbehavior verified using UPS gcc 4.7.1 vs gcc 4.7.3 on linux.

#2 Updated by Lynn Garren almost 7 years ago

  • Due date set to 09/30/2013
  • Category set to Build System
  • Status changed from New to Assigned
  • Assignee set to Lynn Garren
  • Target version set to 1.09.00
  • % Done changed from 0 to 30

The basic external set is now compiled with gcc 4.8.1. Geant4 and the other mu2e extras will be available soon.

#3 Updated by Christopher Green almost 7 years ago

  • Target version changed from 1.09.00 to 1.08.02
  • % Done changed from 30 to 90

mu2e-extras was uploaded to oink yesterday. Awaiting the mu2e build of the art suite 1.08.02 to use same.

#4 Updated by Lynn Garren almost 7 years ago

  • % Done changed from 90 to 50

Correction - the SLF6 build of mu2e_extras was made available. Mu2e needs SLF5.

#5 Updated by Lynn Garren almost 7 years ago

  • % Done changed from 50 to 90
  • Estimated time set to 10.00 h

art v1_08_02 was built with gcc 4.8.1. In addition, art v1_08_04 has just been released with MacOSX support as well as one bug fix. I've install the profile build of art v1_08_04 in /grid/fermiapp/products/mu2e/artexternals. There is not a matching build of splines yet.

cry v1_7 is now part of mu2e_extras.

#6 Updated by Lynn Garren almost 7 years ago

  • Status changed from Assigned to Resolved
  • % Done changed from 90 to 100

splines v1_02_00, built against the correct versions of cpp0x and gcc is now installed in /grid/fermiapp/products/mu2e/artexternals. This ticket is now complete.

#7 Updated by Lynn Garren almost 7 years ago

  • Status changed from Resolved to Closed


Also available in: Atom PDF