Hi Joe,Are you doing a parallel make? It seems that the ar command is issued and then the command to build the shared object is called and then you have the output from ar and then the output from mpixlcxx_r ? It is a little confusing. The size of the static lib seems correct. However, you will need the stuff in the shared object library since Overture programs link to both the dynamic shared library and the static library. The split between the two libraries came about from the need to reliably handle the initialization of static objects so some Overture things are in libOverture_static, but most of Overture actually sits in libOverture.so. You can try doing
% make liba_datein the $Overture/lib directory to make a static version of libOverture, that will contain everything we normally put into libOverture.so.
Kyle mailto: chand1@xxxxxxxx phoneto: (925) 422 7740 On May 3, 2012, at 7:14 PM, J. P. Bernstein wrote:
Hello Kyle, That, indeed, was the problem. After working through a few more build failures (I will send a complete list with solutions once I succeed in building Overture and CG for the BG/P backend), I am getting the following failure very near the end of the Overture build process: make[1]: Entering directory `/gpfs/home/jpbernst/Code/Overture/Overture.v24/lib' ar ruv libOverture_static.a ../static/*.o ../boxlib/*.o mpixlcxx_r -o libOverture.so -qmkshrobj ../DataBase/*.o ../GridFunction/*.o ../templates/*.o \ ../Grid/*.o ../Mapping/*.o ../Oges/*.o ../GridGenerator/*.o ../Ogshow/*.o ../mapUtil/*.o \ ../otherStuff/*.o ar: creating libOverture_static.a a - ../static/GLwDrawA.o a - ../static/GLwMDrawA.o a - ../static/initOvertureGlobalVariables.o a - ../static/initStaticMappingVariables.o a - ../static/memoryUsage.o a - ../static/mogl.o a - ../static/overlay.o a - ../static/OvertureInit.o a - ../static/RapsodiInit.o a - ../static/ReferenceCounting.o a - ../static/xColours.o a - ../boxlib/AliasedDPtr.o a - ../boxlib/ArithFab.o a - ../boxlib/aString.o a - ../boxlib/BArena.o a - ../boxlib/BoxArray.o a - ../boxlib/BoxAssoc.o a - ../boxlib/BoxDomain.o a - ../boxlib/BoxLib.o a - ../boxlib/BoxList.o a - ../boxlib/Box.o a - ../boxlib/FabConv.o a - ../boxlib/FArrayBox.o a - ../boxlib/FPC.o a - ../boxlib/IndexType.o a - ../boxlib/IntVect.o a - ../boxlib/MultiFab.o a - ../boxlib/OrderedFab.o a - ../boxlib/Orientation.o a - ../boxlib/ParmParse.o a - ../boxlib/Pointers.o a - ../boxlib/Utility.o ranlib libOverture_static.a touch lib_date/bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/lib/gcc/powerpc- bgp-linux/4.1.2/crtbeginS.o:In function `__do_global_dtors_aux': crtstuff.c:(.text+0x4c): relocation truncated to fit: R_PPC_PLTREL24against symbol `__cxa_finalize@@GLIBC_2.1.3' defined in .text section in /bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/powerpc-bgp- linux//lib/libc.so.6+8000 /bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/lib/gcc/powerpc- bgp-linux/4.1.2/crtbeginS.o:(.fini+0x0):relocation truncated to fit: R_PPC_LOCAL24PC against `.text'/bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/lib/gcc/powerpc- bgp-linux/4.1.2/crtendS.o:(.init+0x0):relocation truncated to fit: R_PPC_LOCAL24PC against `.text' ../DataBase/DataBaseBuffer.o: In function `__init__0()':/bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/lib/gcc/powerpc- bgp-linux/4.1.2/../../../../include/c++/4.1.2/iostream:76:relocation truncated to fit: R_PPC_PLTREL24 against undefined symbol `aString::aString(char const*)'/bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/lib/gcc/powerpc- bgp-linux/4.1.2/../../../../include/c++/4.1.2/iostream:76:relocation truncated to fit: R_PPC_PLTREL24 against symbol `__cxa_atexit@@GLIBC_2.1.3' defined in .text section in/bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/powerpc-bgp- linux//lib/libc.so.6../DataBase/DataBaseBuffer.o: In function `__sinit65535()': DataBaseBuffer.C:(.text+0x74): relocation truncated to fit: R_PPC_LOCAL24PC against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got section in/bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/lib/gcc/powerpc- bgp-linux/4.1.2/../../../../powerpc-bgp-linux/lib/crti.o+fffffffc../DataBase/DataBaseBuffer.o: In function `__sinit65535()':/bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/lib/gcc/powerpc- bgp-linux/4.1.2/../../../../include/c++/4.1.2/iostream:76:relocation truncated to fit: R_PPC_PLTREL24 against symbol `_ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4' defined in .text section in/bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/lib/gcc/powerpc- bgp-linux/4.1.2/../../../../powerpc-bgp-linux/lib/libstdc++.so /bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/lib/gcc/powerpc- bgp-linux/4.1.2/../../../../include/c++/4.1.2/iostream:76:relocation truncated to fit: R_PPC_PLTREL24 against symbol `__cxa_atexit@@GLIBC_2.1.3' defined in .text section in/bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/powerpc-bgp- linux//lib/libc.so.6 ../DataBase/DataBaseBuffer.o: In function `aString::__dftbdt(std::string*)': /gpfs/home/jpbernst/Code/Overture/Overture.v24/DataBase/ DataBaseBuffer.C:302:relocation truncated to fit: R_PPC_LOCAL24PC against symbol `_GLOBAL_OFFSET_TABLE_' defined in .got section in/bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/lib/gcc/powerpc- bgp-linux/4.1.2/../../../../powerpc-bgp-linux/lib/crti.o+fffffffc /gpfs/home/jpbernst/Code/Overture/Overture.v24/DataBase/ DataBaseBuffer.C:302:relocation truncated to fit: R_PPC_PLTREL24 against symbol `_ZNSsD2Ev@@GLIBCXX_3.4' defined in .text section in/bgsys/drivers/V1R4M2_200_2010-100508P/ppc/gnu-linux/lib/gcc/powerpc- bgp-linux/4.1.2/../../../../powerpc-bgp-linux/lib/libstdc++.so../DataBase/DataBaseBuffer.o: In function `aString::~aString()':/gpfs/home/jpbernst/Code/Overture/Overture.v24/DataBase/ DataBaseBuffer.C:302:additional relocation overflows omitted from the output make[1]: *** [libso_date] Error 1 make[1]: Leaving directory `/gpfs/home/jpbernst/Code/Overture/Overture.v24/lib' make: *** [all] Error 2The static Overture library is present (does the size look reasonable?),but the shared one is not: {login1}/home/jpbernst/Code/Overture/Overture.v24>ll lib/ total 3072 drwx------ 2 jpbernst users 131072 2012-05-03 23:10 ./ drwx------ 29 jpbernst users 131072 2012-05-03 22:37 ../ -rw------- 1 jpbernst users 0 2012-05-03 23:10 lib_date-rw------- 1 jpbernst users 1680230 2012-05-03 23:10 libOverture_static.a-rw------- 1 jpbernst users 18478 2012-05-03 22:37 Makefile -rw------- 1 jpbernst users 11809 2011-05-18 15:21 Makefile.in-rw------- 1 jpbernst users 10134 2011-05-18 15:21 .#Makefile.in. 1.10 -rw------- 1 jpbernst users 10190 2011-05-18 15:21 .#Makefile.in. 1.11 -rw------- 1 jpbernst users 10417 2011-05-18 15:21 .#Makefile.in. 1.14 -rw------- 1 jpbernst users 10455 2011-05-18 15:21 .#Makefile.in. 1.16 -rw------- 1 jpbernst users 11114 2011-05-18 15:21 .#Makefile.in. 1.26{login1}/home/jpbernst/Code/Overture/Overture.v24>I suspect that the problem above is related to the shared library, whichI actually do not need. Is there a built-in way to disable creation ofthe shared library? I have not found a way and a purely static build forthe BG/P is fine with me. Best, Joe On 5/2/2012 6:06 PM, Kyle K. Chand wrote: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 thecompiler 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 hardwiredsettings 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 -cShowFileReader.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 definedwith 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", line1405.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 somespurious mpi lib is getting set. P++ builds successfully without thePADRE 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 ‘)’ tokenosRender.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 orwith a subsets of them specified followed by an Overture rebuild for each. None of the attempts resolved the failure above or resulted ina different failure. Are you able to shed any light on this one? Best, Joe