[overture] Re: Building v24 on Blue Gene P

  • From: "Kyle K. Chand" <chand1@xxxxxxxx>
  • To: "overture@xxxxxxxxxxxxx" <overture@xxxxxxxxxxxxx>
  • Date: Wed, 2 May 2012 16:06:05 -0700

Hi Joe,

xlcxx does not seem to like to redefine macros without first undefing them (?). Does your version of the compiler have the - qlanglvl=redefmac option? You might need to enable this to allow the compiler to redefine macros w/o a prior undef.

Kyle

mailto: chand1@xxxxxxxx
phoneto: (925) 422 7740



On May 2, 2012, at 3:11 PM, J. P. Bernstein wrote:

Hello Bill,

I was able to get past the P++ problem by manually removing hardwired settings in P++/configure referencing:

/usr/casc/overture/local-i686-redhat-linux/opt/mpich

and hardwired "-lmpich" settings. P++ then built successfully.

With Mesa-7.2, the Overture build progressed for quite some time and failed due to a macro definition collision between P++ and Mesa:

mpixlcxx_r -qarch=450d -qtune=450 -qmaxmem=16384 -I/home/jpbernst/ Code/Overture/Overture.v24/include -I/home/jpbernst/Code/Overture/A+ +P++-0.8.0/P++/install/include -DUSE_MESA -I/home/jpbernst/Code/ Overture/A++P++-0.8.0/P++/install/include -I/home/jpbernst/Code/ Mesa-7.2/include -DBL_USE_DOUBLE -DBL_Solaris -DUSE_PPP -g - DUSE_PPP -DNO_REAL -I/soft/apps/hdf5-1.8.0/include -c ShowFileReader.C "/home/jpbernst/Code/Mesa-7.2/include/GL/../../src/mesa/main/ glheader.h", line 235.11: 1540-0848 (S) The macro name "INLINE" is already defined with a different definition. "/home/jpbernst/Code/Overture/A++P++-0.8.0/P++/install/include/ config.h", line 66.9: 1540-0425 (I) "INLINE" is defined on line 66 of "/home/jpbernst/Code/Overture/A++P++-0.8.0/P++/install/include/ config.h".
make[1]: *** [osRender.o] Error 1
make[1]: *** Waiting for unfinished jobs....
"/home/jpbernst/Code/Overture/A++P++-0.8.0/P++/install/include/A+ +.h", line 1405.21: 1540-1091 (W) The friend declaration "APP_view" specifies a default argument expression and is not a definition.
. . .
"/home/jpbernst/Code/Overture/A++P++-0.8.0/P++/install/include/ p_inline_func.h", line 465.12: 1540-1103 (W) The address of a local variable or temporary is used in a return expression. make[1]: Leaving directory `/gpfs/home/jpbernst/Code/Overture/ Overture.v24/Ogshow'
make: *** [all] Error 2
2021.257u 171.469s 18:52.55 193.6%      0+0k 912+696624io 0pf+0w

Thoughts?

==joe

----- Original Message -----
From: "J. P. Bernstein" <astro@xxxxxxx>
To: overture@xxxxxxxxxxxxx
Sent: Wednesday, May 2, 2012 11:32:53 AM
Subject: [overture] Re: Building v24 on Blue Gene P

Thanks for the quick reply, Bill.

The use of Mesa-7.10.3 was motivated by it's precedent of successful installation on BG/P. I will give 7.2 a try.

Best,

Joe

----- Original Message -----
From: "Bill Henshaw" <henshaw@xxxxxxxx>
To: overture@xxxxxxxxxxxxx
Sent: Wednesday, May 2, 2012 11:29:45 AM
Subject: [overture] Re: Building v24 on Blue Gene P

Hi Joe,
Your problem with Mesa is likely the newer version you are using. I am using
Mesa-7.2.  Your problem with P++ could very well be a known problem.

...Bill


On 05/02/2012 08:39 AM, J. P. Bernstein wrote:
Thanks, Bill.

Regarding the BG/P build, the P++ build with this configuration:

./configure --enable-PXX --with-CC=mpixlc_r --with-CFLAGS="- qarch=450d -qtune=450" --with-CXX=mpixlcxx_r --with-CXXFLAGS="- qarch=450d -qtune=450" --disable-mpirun-check --with-mpi-libs="" -- without-PADRE --prefix=`pwd`

(the new thing is the PADRE option you suggested) is failing with:

mpixlcxx_r -o test2000_01 test2000_01.o -L/home/jpbernst/ Code/Overture/A++P++-0.8.0/P++/install/lib -L/usr/casc/overture/ local-i686-redhat-linux/opt/mpich/lib -lmpich -L../src -lPpp - lPpp_static -lPpp -L/usr/casc/overture/local-i686-redhat-linux/opt/ mpich/lib -lmpich -lc -lm /bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/bin/ld: cannot find -lmpich
gmake[3]: *** [test2000_01] Error 1
gmake[3]: *** Waiting for unfinished jobs....
"../include/A++.h", line 1405.21: 1540-1091 (W) The friend declaration "APP_view" specifies a default argument expression and is not a definition.
. . .
gmake[3]: Leaving directory `/gpfs/home/jpbernst/Code/Overture/A++P+ +-0.8.0/P++/TESTS'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/gpfs/home/jpbernst/Code/Overture/A++P+ +-0.8.0/P++'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/gpfs/home/jpbernst/Code/Overture/A++P+ +-0.8.0/P++'
make: *** [all-recursive] Error 1

Thus, it seems that the:

--disable-mpirun-check --with-mpi-libs=""

configure options are not having the expected result and that some spurious mpi lib is getting set. P++ builds successfully without the PADRE option. Is this a known issue?

On another topic, in support of the BG/P build effort, I took your advise on trying to build Overture in serial on a more traditional Linux system. I was able to build A++ and Mesa without much incident. However, the Overture build, with default configuration, failed with:

g++ -fPIC -I/home/jpbernst/Code/GEM/Overture.v24/include -I. - DUSE_MESA -I/home/jpbernst/Code/GEM/A++P++-0.8.0/A++/install/ include -I/home/jpbernst/Code/GEM/Mesa-7.10.3/include -I/usr/X11R6/ include -DBL_USE_DOUBLE -DBL_Solaris -I/usr/lib/perl5/5.8.8/x86_64- linux-thread-multi/CORE -g -I/home/jpbernst/Code/GEM/Mesa-7.10.3/ src/mesa/main -I/home/jpbernst/Code/GEM/Mesa-7.10.3/src/mesa/glapi - I/home/jpbernst/Code/GEM/Mesa-7.10.3/src/mesa -c osRender.C In file included from /home/jpbernst/Code/GEM/Mesa-7.10.3/include/ GL/../../src/mesa/main/context.h:53,
                 from osRender.C:215:
/home/jpbernst/Code/GEM/Mesa-7.10.3/include/GL/../../src/mesa/main/ mtypes.h:40:25: error: glapi/glapi.h: No such file or directory /home/jpbernst/Code/GEM/Mesa-7.10.3/include/GL/../../src/mesa/main/ mtypes.h:1283: error: ‘_glthread_Mutex’ does not name a type
. . .
osRender.C:230: error: ‘GLcontext’ does not name a type
osRender.C:231: error: ISO C++ forbids declaration of ‘GLvisual’ with no type
osRender.C:231: error: expected ‘;’ before ‘*’ token
osRender.C:232: error: ISO C++ forbids declaration of ‘GLframebuffer’ with no type
osRender.C:232: error: expected ‘;’ before ‘*’ token
osRender.C: In member function ‘int GL_GraphicsInterface::offScreenRenderMesa(const char*, GraphicsParameters&)’:
osRender.C:299: error: ‘GLcontext’ was not declared in this scope
osRender.C:299: error: ‘CC’ was not declared in this scope
osRender.C:299: error: expected primary-expression before ‘)’ token
osRender.C:299: error: expected `;' before ‘OSMesaGetCurrentContext’
osRender.C:313: error: ‘oldCC’ was not declared in this scope
osRender.C:313: error: expected primary-expression before ‘)’ token
osRender.C:313: error: ‘struct osmesa_context’ has no member named ‘gl_ctx’ osRender.C:314: error: ‘struct osmesa_context’ has no member named ‘gl_ctx’
osRender.C:314: error: expected primary-expression before ‘)’ token
osRender.C:314: error: expected `;' before ‘CC’
osRender.C:322: error: expected primary-expression before ‘)’ token
osRender.C:322: error: ‘struct osmesa_context’ has no member named ‘gl_ctx’ osRender.C:359: error: ‘struct osmesa_context’ has no member named ‘gl_ctx’
osRender.C:359: error: expected primary-expression before ‘)’ token
osRender.C:359: error: expected `)' before ‘oldCC’
make[1]: *** [osRender.o] Error 1
make[1]: Leaving directory `/gpfs/home/jpbernst/Code/GEM/ Overture.v24/Ogshow'
make: *** [all] Error 2
682.610u 53.347s 12:24.76 98.8% 0+0k 0+550952io 0pf+0w

This is odd since the Mesa build was error-free and mapi/glapi was included in the Mesa source dirs config. I revisited the Overture instructions for building Mesa and found that there were no instructions as to explicitly setting the Mesa source dirs. Thus, I tried several Mesa rebuilds either without source dirs specified or with a subsets of them specified followed by an Overture rebuild for each. None of the attempts resolved the failure above or resulted in a different failure. Are you able to shed any light on this one?

Best,

Joe







Other related posts: