Don't pass the '-optimize' flag to a hard-coded g++
authorPhil Miller <phil@login2.surveyor.alcf.anl.gov>
Thu, 1 Apr 2010 15:43:24 +0000 (10:43 -0500)
committerPhil Miller <mille121@illinois.edu>
Thu, 1 Apr 2010 20:04:33 +0000 (15:04 -0500)
The charmc compiler wrapper switched from expecting -O to -optimize for the
meaning "pass the best known compiler optimization flags to the underlying
compiler." This was written on the build command line and passed through make
in $OPTS. That works fine as long as charmc gets to rewrite it, but causes
problems when passed directly to a real compiler, like g++.

The file trace-controlPoints-BPG.C needs to be compiled with g++ and not xlC,
and this need was encoded as an explicit invocation of g++ in the BGP-specific
Makefile. Thus, we passed -optimize to it, and got an object file named
'ptimize'. Get this right by using charmc's '-c++' compiler override option
instead.

src/arch/bluegenep/Makefile.machine

index 2877ad2313bc13f789f056200b90d034d89e1ecf..6ae35029e0bf30496459db6ff9671290aa953fc7 100644 (file)
@@ -6,7 +6,7 @@ $(L)/libtrace-controlPoints.a : trace-controlPoints-BGP.o
 
 # The BGP performance counter library UPC must be compiled with gcc:
 trace-controlPoints-BGP.o : trace-controlPoints-BGP.C converse.h
-       g++ -c trace-controlPoints-BGP.C -o trace-controlPoints-BGP.o  -I/bgsys/drivers/ppcfloor/arch/include/ $(OPTS) -g
+       $(CHARMC) -c++ g++ -c trace-controlPoints-BGP.C -o trace-controlPoints-BGP.o  -I/bgsys/drivers/ppcfloor/arch/include/   $(OPTS) -g