[overture] Re: Building v24 on Blue Gene P

Hi Joe,

Well, it would be nice to build ogen with libOverture.a and libOverture_static.a just to see if Overture has been built correctly. Most of the ogen command files in $Overture/sampleGrids do not use perl, so you could test ogen with those files to make sure things worked. It would also be useful to know how large and Overture executable ends up being. If it is more than 67M for ogen, the there is still work to do to reduce the size of the Overture binaries.

Kyle

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



On May 4, 2012, at 1:48 PM, J. P. Bernstein wrote:

Roger that, Kyle.

I was able to build the static lib using the make lines you send below. I was also about to build the shared lib functionality by using the split build that makes two shared libs (see below; I found the two lib setup lurking in the existing code commented out). That got me past the $Overture/lib make process and into the final, $Overture/bin process which failed:

make[1]: Entering directory `/gpfs/home/jpbernst/Code/Overture/ Overture.v24/lib'
ar ruv   libOverture_static.a ../static/*.o ../boxlib/*.o
ar: creating libOverture_static.a
<list of o files suppressed>
ranlib libOverture_static.a
touch lib_date
mpixlcxx_r -o libOverture1.so -qmkshrobj ../DataBase/*.o ../ GridFunction/*.o ../templates/*.o \
            ../Grid/*.o ../Mapping/*.o
rm -rf libOverture1.so.1.0

ln -s libOverture1.so libOverture1.so.1.0
touch libso1_date
mpixlcxx_r -o libOverture2.so -qmkshrobj ../Oges/*.o ../ GridGenerator/*.o ../Ogshow/*.o ../mapUtil/*.o \
    ../otherStuff/*.o
rm -rf libOverture2.so.1.0
ln -s libOverture2.so libOverture2.so.1.0
touch libso2_date
touch libso_date
ar ruv libOverture.a ../DataBase/*.o ../GridFunction/*.o ../ templates/*.o \ ../Grid/*.o ../Mapping/*.o ../Oges/*.o ../GridGenerator/ *.o ../Ogshow/*.o ../mapUtil/*.o \
            ../otherStuff/*.o
ar: creating libOverture.a
<list of o files suppressed>
ranlib libOverture.a
touch liba_date
touch libso_date
mpixlcxx_r -o libOgmg.so -qmkshrobj ../Ogmg/*.o
rm -rf libOgmg.so.1.0
ln -s libOgmg.so libOgmg.so.1.0
touch libOgmg_date
make[1]: Leaving directory `/gpfs/home/jpbernst/Code/Overture/ Overture.v24/lib' make[1]: Entering directory `/gpfs/home/jpbernst/Code/Overture/ Overture.v24/bin' mpixlcxx_r -w -qarch=450d -qtune=450 -qmaxmem=-1 -qpic - qlanglvl=redefmac -I/home/jpbernst/Code/Overture/Overture.v24/bin/../i nclude -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 -o plotStu ff plotStuffDriver.o plotStuffFunction.o -Wl,-rpath,/home/jpbernst/ Code/Overture/Overture.v24/bin/../lib -L/home/jpbernst/Co de/Overture/Overture.v24/bin/../lib -lOverture1 -lOverture2 - lOverture_static -Wl,-rpath,/soft/apps/hdf5-1.8.0/lib -L/soft/ap ps/hdf5-1.8.0/lib -lhdf5 -ljpeg -lz -Wl,-rpath,/home/jpbernst/Code/ Overture/A++P++-0.8.0/P++/install/lib -L/home/jpbernst/Cod e/Overture/A++P++-0.8.0/P++/install/lib -lPpp -lPpp_static -Wl,- rpath,-L/home/jpbernst/Code/Mesa-7.2/lib -lMesaGL -lMesaG
LU    -lm
/bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/bin/ld: cannot find -lOverture1
make[1]: *** [plotStuff] Error 1
make[1]: Leaving directory `/gpfs/home/jpbernst/Code/Overture/ Overture.v24/bin'
make: *** [all] Error 2

I find the failure perplexing since the lib in question *is* present:

{login3}/home/jpbernst/Code/Overture/Overture.v24>ll lib/libOverture*
-rwx------ 1 jpbernst users 67219406 2012-05-04 20:22 lib/ libOverture1.so* lrwxrwxrwx 1 jpbernst users 15 2012-05-04 20:22 lib/ libOverture1.so.1.0 -> libOverture1.so* -rwx------ 1 jpbernst users 29420356 2012-05-04 20:22 lib/ libOverture2.so* lrwxrwxrwx 1 jpbernst users 15 2012-05-04 20:22 lib/ libOverture2.so.1.0 -> libOverture2.so* -rw------- 1 jpbernst users 107487570 2012-05-04 20:22 lib/ libOverture.a -rw------- 1 jpbernst users 1680230 2012-05-04 20:21 lib/ libOverture_static.a

I am wondering if this is essentially academic for my implementation, as I interpret your email below as suggesting that I only need the libOverture files above to build CG. That is, that I can possibly dispense with the $Overture/bin make process since I am only going to run CG solvers on the BG/P. Is this correct?

Best,

Joe


----- Original Message -----
From: "Kyle K. Chand" <chand1@xxxxxxxx>
To: overture@xxxxxxxxxxxxx
Sent: Friday, May 4, 2012 10:50:14 AM
Subject: [overture] Re: Building v24 on Blue Gene P

Hi Joe,

You basically need everything in libOverture.{so or a} and
libOverture_static.a (except, of course, the perl stuff you will
remove from $Overture/Ogshow/OvertureParser.C).
The libOverture.a option is really really old and may be out of date
(well, is out of date if it requires FVO_date).  The easiest way to
fix this would be in $Overture/lib/Makefile to copy the libso_date
target and replace liba_date with:
liba_date: $(SO_LIB_DEPENDENCIES) $(DataBase)/DataBase_date \
          $(GridFunction)/GridFunction_date           \
          $(Mapping)/Mapping_date             \
          $(Oges)/Oges_date                   \
          $(Grid)/Grid_date           \
          $(GridGenerator)/GridGenerator_date \
          $(Ogshow)/Ogshow_date  \
         $(otherStuff)/otherStuff_date \
          $(templates)/ListClasses_date \
         $(mapUtil)/mapUtil_date
$(AR) $(ARFLAGS) libOverture.a $(DataBase)/*.o $ (GridFunction)/*.o
$(templates)/*.o \
             $(Grid)/*.o $(Mapping)/*.o $(Oges)/*.o  $(GridGenerator)/
*.o $(Ogshow)/*.o $(mapUtil)/*.o \
            $(otherStuff)/*.o $(LIBLIBS)
         $(RANLIB) libOverture.a
         touch $@
         touch libso_date

Try this out...  In principle you could stick all the
libOverture_static stuff in there too, but lets keep it somewhat
consistent with the usual setup for now.

Kyle


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



On May 4, 2012, at 8:39 AM, J. P. Bernstein wrote:

Thanks for the specifics about BG/P and shared libs. I had a
qualitative understanding, which is why I have been targeting static
libs.

Can you please clarify precisly which Overture build prodects are
needed by CG? I plan to generate PERL-less command files to feed to
CG on BG/P using ogen on a different system, so I only need to build
the parts of Overture for BG/P that are needed by CG, e.g.,
libOverture.a. What else is needed?

Regarding the prescription you gave below, here is the result of
trying to do "make liba_date"

{login3}/home/jpbernst/Code/Overture/Overture.v24/lib>make liba_date
make: *** No rule to make target `../FiniteVolumeOperators/
FVO_date', needed by `liba_date'.  Stop.

Best,

Joe


----- Original Message -----
From: "Kyle K. Chand" <chand1@xxxxxxxx>
To: overture@xxxxxxxxxxxxx
Sent: Friday, May 4, 2012 12:56:10 AM
Subject: [overture] Re: Building v24 on Blue Gene P

Hi Joe,

I found the following info about BG/P:
Shared Library Constraints:

      • BG/P is optimized for static executables:
              • 32-bit static linking is the default
              • Executable shared among MPI tasks
              • Efficient loading/memory use
              • Caveat: executables are limited to 67MB in size.
Use the size
a.out command and check that the text segment is under 67,108,864.

      • BG/P has minimum shared library support:
              • Shared libraries are not shared among processes
              • Entire shared library loaded into memory
              • No demand paging in of shared library
              • Cannot unload shared library to free memory
              • Used by a few apps; avoid if you can

So, basically you need to build the static libOverture.a library by
going into $Overture/lib and doing a "make liba_date".  Then you will
need to modify the $Overture/lib/Makefile so that the default compile
builds lib_date and liba_date (skipping libso_date).  Hopefully this
should build a statically linked version of ogen.  Now then, will the
binaries fit within 67Mb...  We shall see...

Kyle

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



On May 3, 2012, at 9:56 PM, J. P. Bernstein wrote:

Hello Kyle,

Thanks for the suggestion. Correct, that was from "make -j2" -- sorry
for the confusion. Here is the output of "make":

make[1]: Entering directory
`/gpfs/home/jpbernst/Code/Overture/Overture.v24/lib'
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
/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


On 5/3/2012 11:39 PM, Kyle K. Chand wrote:
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: