[overture] Re: Building v24 on Blue Gene P

  • From: "Kyle K. Chand" <chand1@xxxxxxxx>
  • To: "overture@xxxxxxxxxxxxx" <overture@xxxxxxxxxxxxx>
  • Date: Thu, 3 May 2012 21:39:35 -0700

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_date
in 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_PLTREL24
against 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 2

The 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, which
I actually do not need. Is there a built-in way to disable creation of
the shared library? I have not found a way and a purely static build for
the 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 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: