[Trilinos-Users] [EXTERNAL] Re: Compiling with GCC 4.8.0

Littlewood, David John djlittl at sandia.gov
Tue Apr 9 23:02:34 MDT 2013


Folks,

Thanks for the feedback!

I am using consistent 4.8.0 g++/gfortran compilers.  I built the 4.8.0 compilers from scratch, as opposed to using anything supplied by Apple.  Getting a consistent gfortran compiler was one of the motivations for this.

I've been building up a test machine for the Peridigm project.  I started with a fresh install of OS X 10.7.5 (Lion) with Xcode 4.2 and built the following:

gmp-5.0.5
mpfr-3.1.1
mpc-1.0.1
gcc-4.8.0
openmpi-1.6.4
boost_1_53_0
netcdf-4.2.1.1
hdf5-1.8.10-patch1
cmake-2.8.9 (downloaded binary)
trilinos-11.0.3

The first four items were built with the Xcode-supplied gcc 4.2.1.  Once the 4.8.0 compilers were built, I used them for everything else.  The compiler error listed below appeared when building Trilinos, the other items built without any issues.

I have no specific need for 4.8.0, I just decided to go with "latest and greatest" across the board.  I went back and re-built everything with gcc 4.7.2 and did not encounter any problems.  So there's some good news there, the process I used to build up the test machine seems okay.  And the test machine is up and running, which was the goal.

It would still be nice to figure out what went wrong with gcc 4.8.0.  I did a brief web search regarding Brent's comment, and it does look like there might be a compiler bug biting me here.  On the other hand, Andrey has been successful with gcc 4.8.0.  Perhaps it's a compiler bug that only shows up under certain system configurations?  Seems very possible.

If anyone wants more details on exactly what I did to hit the 4.8.0 snag, I can send you the notes I jotted down while building up the test machine.  If not, I'm content to use gcc 4.7.2.  Hopefully the issues I ran into with gcc 4.8.0 won't bite anyone else.

Dave


________________________________________
From: Perschbacher, Brent M
Sent: Tuesday, April 09, 2013 12:38 PM
To: Heroux, Mike; Prokopenko, Andrey (-EXP); Littlewood, David John
Cc: trilinos-users at software.sandia.gov
Subject: Re: [EXTERNAL] Re: [Trilinos-Users] Compiling with GCC 4.8.0

Looks like this might be an actual bug in the compiler.
http://comments.gmane.org/gmane.comp.gcc.bugs/367062 details something
related. The last comment does suggest that this is no longer happening,
but it was made a few days ago so I don't know if a released 4.8.x would
have the fix yet.

Brent

On 4/9/13 12:06 PM, "Heroux, Mike" <MHeroux at csbsju.edu> wrote:

>By default OpenMP is off.  This shouldn't be the issue.
>
>Are you sure that you are using the same 4.8.0 g++/gfortran version?  Just
>checking the easy stuff first.
>
>
>On 4/9/13 12:45 PM, "Andrey Prokopenko" <aprokop at sandia.gov> wrote:
>
>>Dave,
>>
>>I have been compiling with gcc 4.8.0 for quite a while, and don't see
>>such errors. But I disable OpenMP explicitly in the configure file (-D
>>Trilinos_ENABLE_OpenMP=OFF).
>>
>>-Andrey
>>
>>On Tue 09 Apr 2013 11:29:39 AM MDT, Littlewood, David John wrote:
>>> Greetings,
>>>
>>> Has anyone had luck building Trilinos with GCC 4.8.0?
>>>
>>> I just gave it a shot on a Mac running OS X 10.7.5 and got the
>>> following error:
>>>
>>>
>>>/Users/djlittl/Software/trilinos/trilinos-11.0.3/packages/epetra/src/Epe
>>>t
>>>ra_MultiVector.cpp:
>>> In member function Œint Epetra_MultiVector::Abs(const
>>> Epetra_MultiVector&)¹:
>>>
>>>/Users/djlittl/Software/trilinos/trilinos-11.0.3/packages/epetra/src/Epe
>>>t
>>>ra_MultiVector.cpp:1166:63:
>>> internal compiler error: in prepare_cmp_insn, at optabs.c:4190
>>>      for (int j=0; j < myLength; j++) to[j] = std::abs(from[j]);
>>>                                                                ^
>>>
>>>
>>>/Users/djlittl/Software/trilinos/trilinos-11.0.3/packages/epetra/src/Epe
>>>t
>>>ra_MultiVector.cpp:1166:63:
>>> internal compiler error: Abort trap: 6
>>> g++: internal compiler error: Abort trap: 6 (program cc1plus)
>>>
>>> The offending code in Epetra_MultiVector.cpp looks pretty
>>> straightforward, just a simple for loop.
>>>
>>> It is preceded by
>>>
>>> #ifdef EPETRA_HAVE_OMP
>>> #pragma omp parallel for default(none)
>>> #endif
>>>
>>> But I'm assuming that by default, EPETRA_HAVE_OMP is set to false, so
>>> the omp code wouldn't have any effect.
>>>
>>> I'm guessing my best course of action is to abandon GCC 4.8.0 in favor
>>> of 4.7.2.  I have successfully built with 4.7.2 on a different machine.
>>>
>>> Thoughts?
>>>
>>> Thanks,
>>> Dave
>>>
>>>
>>>
>>> _______________________________________________
>>> Trilinos-Users mailing list
>>> Trilinos-Users at software.sandia.gov
>>> http://software.sandia.gov/mailman/listinfo/trilinos-users
>>_______________________________________________
>>Trilinos-Users mailing list
>>Trilinos-Users at software.sandia.gov
>>http://software.sandia.gov/mailman/listinfo/trilinos-users
>
>
>_______________________________________________
>Trilinos-Users mailing list
>Trilinos-Users at software.sandia.gov
>http://software.sandia.gov/mailman/listinfo/trilinos-users




More information about the Trilinos-Users mailing list