[mpich-discuss] mpich-master: couldn't build libmpicxx.la with Sun C on Linux

Siegmar Gross siegmar.gross at informatik.hs-fulda.de
Mon Sep 18 06:19:50 CDT 2017


Hi,

I still get the error that I reported last month. Do you know if and when
you can fix the problem? Thank you very much your answer in advance.


Kind regards

Siegmar


On 08/24/17 07:53, Siegmar Gross wrote:
> Hi Halim,
> 
> Am 23.08.2017 um 22:12 schrieb Halim Amer:
>> Hi Siegmar,
>>
>> I can see some workarounds, for example, by passing -std=sun03, but I don't 
>> understand why the linker is passing -library=Cstd -library=Crun.
>>
>> My guess is that CC does not use the GNU linker. We had issues with the Sun 
>> Studio linker few years ago, so we worked-around the issue by sym-liking the 
>> Sun Studio linker to GNU ld.
>>
>> Before we go that route, could you add -v to the linker line? I.e.:
>>
>> CC -G -hlibmpicxx.so.0 -o lib/.libs/libmpicxx.so.0.0.0 
>> src/binding/cxx/.libs/initcxx.o 
>> -R/export2/src/mpich-master/mpich-master_2017-08-23_Linux.x86_64.64_cc/lib/.libs 
>> -R/usr/local/mpich-master_64_cc/lib64 -R/usr/lib64 -L/usr/lib64 
>> lib/.libs/libmpi.so -lunwind -lpthread -lrt -library=Cstd -library=Crun -m64 
>> -O2 -m64 -v
>>
>> This should show which linker is being used. Meanwhile, you can try the above 
>> workarounds as well.
> 
> 
> loki mpich-master_2017-08-23_Linux.x86_64.64_cc 125 CC -G -hlibmpicxx.so.0 -o 
> lib/.libs/libmpicxx.so.0.0.0 src/binding/cxx/.libs/initcxx.o 
> -R/export2/src/mpich-master/mpich-master_2017-08-23_Linux.x86_64.64_cc/lib/.libs 
> -R/usr/local/mpich-master_64_cc/lib64 -R/usr/lib64 -L/usr/lib64 
> lib/.libs/libmpi.so -lunwind -lpthread -lrt -library=Cstd -library=Crun -m64 -O2 
> -m64 -v
> CC: -library=Crun cannot be used with -std=c++03. To use this library you need 
> to switch to -std=sun03
> CC: -library=Cstd cannot be used with -std=c++03. To use this library you need 
> to switch to -std=sun03
> ###     command line files and options (expanded):
> ### -G -hlibmpicxx.so.0 -olib/.libs/libmpicxx.so.0.0.0 
> src/binding/cxx/.libs/initcxx.o 
> -R/export2/src/mpich-master/mpich-master_2017-08-23_Linux.x86_64.64_cc/lib/.libs 
> -R/usr/local/mpich-master_64_cc/lib64 -R/usr/lib64 -L/usr/lib64 
> lib/.libs/libmpi.so -lunwind -lpthread -lrt -library=Cstd,Crun -O2 -m64 -v
> 
> 
> loki mpich-master_2017-08-23_Linux.x86_64.64_cc 126 echo $PATH
> /usr/local/valgrind-3.12.0/bin:/usr/local/eclipse-4.5.1:/usr/local/netbeans-8.1/bin:/usr/local/jdk1.8.0_66/bin:/usr/local/jdk1.8.0_66/db/bin:/usr/local/llvm-trunk/bin:/usr/local/pgi/linux86-64/16.10/bin:/usr/local/intel_xe_2018_beta/compilers_and_libraries_2018.0.082/linux/bin/intel64:/usr/local/intel_xe_2018_beta/compilers_and_libraries_2018.0.082/linux/mpi/intel64/bin:/opt/solstudio12.6/bin:/usr/local/gcc-7.1.0/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/cuda-8.0/bin:/usr/local/intel/opencl-1.2-sdk-6.3.0.1904/bin:/usr/local/hwloc-1.11.5/bin:/usr/local/haskell/ghc-8.0.1-x86_64/bin:/usr/local/swipl-7.2.3/bin/x86_64-linux:/home/fd1026/Linux/x86_64/bin:.:/usr/sbin 
> 
> loki mpich-master_2017-08-23_Linux.x86_64.64_cc 127
> 
> /opt/solstudio12.6/bin is specified before /usr/local/gcc-7.1.0/bin
> in PATH and the directories for pgcc and icc are even specified
> before Sun C. Would it be helpful to build lld from the llvm project?
> Unfortunately, I wasn't able to build it in the past. I have no
> access to my machine before September 4th, so that I cannot try
> anything in the next days. Perhaps I will not even read emails.
> 
> Kind regards and thank you very much for your help once more
> 
> Siegmar
> 
> 
>>
>> Halim
>> www.mcs.anl.gov/~aamer
>>
>> On 8/23/17 3:44 AM, Siegmar Gross wrote:
>>> Hi Halim,
>>>
>>>
>>>> Thanks for the details. I don't see anything unusual from your logs. Can you 
>>>> paste here the output of "make V=1" at the step:
>>>> "CXXLD    lib/libmpicxx.la"?
>>>
>>>
>>> loki mpich-master_2017-08-23_Linux.x86_64.64_cc 122 tail -15 
>>> log.make.Linux.x86_64.64_cc
>>> "./src/include/mpichconf.h", line 1132: Warning (Anachronism): Attempt to 
>>> redefine __restrict__ without using #undef.
>>> 1 Warning(s) detected.
>>> libtool: compile:  CC -DHAVE_CONFIG_H -I. -I../mpich -I./src/include 
>>> -I../mpich/src/include -I../mpich/src/mpi/datatype 
>>> -I../mpich/src/mpi/datatype -I../mpich/src/mpi/spawn 
>>> -I../mpich/src/util/logging/common -I../mpich/src/util/mem 
>>> -I../mpich/src/util/nodemap -I../mpich/src/util/wrappers 
>>> -I./src/util/wrappers -I./src/binding/cxx -I../mpich/src/mpid/include 
>>> -I../mpich/src/mpid/ch3/include -I./src/mpid/ch3/include 
>>> -I../mpich/src/mpid/ch3/channels/nemesis/include 
>>> -I./src/mpid/ch3/channels/nemesis/include 
>>> -I../mpich/src/mpid/ch3/channels/nemesis/utils/monitor 
>>> -I../mpich/src/mpid/common/sched -I../mpich/src/mpid/common/thread 
>>> -I../mpich/src/mpid/common/timers -I../mpich/src/mpid/common/shm 
>>> -I../mpich/src/pmi/simple -I../mpich/src/pmi/include 
>>> -I/export2/src/mpich-master/mpich-master_2017-08-23_Linux.x86_64.64_cc/src/mpl/include 
>>> -I/export2/src/mpich-master/mpich/src/mpl/include 
>>> -I/export2/src/mpich-master/mpich/src/openpa/src 
>>> -I/export2/src/mpich-master/mpich-master_2017-08-23_Linux.x86_64.64_cc/src/openpa/src 
>>> -D_REENTRANT 
>>> -I/export2/src/mpich-master/mpich-master_2017-08-23_Linux.x86_64.64_cc/src/mpi/romio/include 
>>> -m64 -O2 -c ../mpich/src/binding/cxx/initcxx.cxx -o src/binding/cxx/initcxx.o 
>>> >/dev/null 2>&1
>>> /bin/sh ./libtool  --tag=CXX   --mode=link CC  -m64  -O2 -version-info 0:0:0 
>>> -m64 -L/usr/lib64 -R/usr/lib64 -o lib/libmpicxx.la -rpath 
>>> /usr/local/mpich-master_64_cc/lib64 src/binding/cxx/initcxx.lo lib/libmpi.la
>>> libtool: link: CC -G -hlibmpicxx.so.0 -o lib/.libs/libmpicxx.so.0.0.0 
>>> src/binding/cxx/.libs/initcxx.o 
>>> -R/export2/src/mpich-master/mpich-master_2017-08-23_Linux.x86_64.64_cc/lib/.libs 
>>> -R/usr/local/mpich-master_64_cc/lib64 -R/usr/lib64 -L/usr/lib64 
>>> lib/.libs/libmpi.so -lunwind -lpthread -lrt -library=Cstd -library=Crun   
>>> -m64 -O2 -m64
>>> CC: -library=Crun cannot be used with -std=c++03. To use this library you 
>>> need to switch to -std=sun03
>>> CC: -library=Cstd cannot be used with -std=c++03. To use this library you 
>>> need to switch to -std=sun03
>>> Makefile:9429: recipe for target 'lib/libmpicxx.la' failed
>>> make[2]: *** [lib/libmpicxx.la] Error 1
>>> make[2]: Leaving directory 
>>> '/export2/src/mpich-master/mpich-master_2017-08-23_Linux.x86_64.64_cc'
>>> Makefile:34562: recipe for target 'all-recursive' failed
>>> make[1]: *** [all-recursive] Error 1
>>> make[1]: Leaving directory 
>>> '/export2/src/mpich-master/mpich-master_2017-08-23_Linux.x86_64.64_cc'
>>> Makefile:9242: recipe for target 'all' failed
>>> make: *** [all] Error 2
>>> loki mpich-master_2017-08-23_Linux.x86_64.64_cc 123
>>>
>>>
>>> Hopefully, that helps.
>>>
>>>
>>> Kind regards
>>>
>>> Siegmar
>>>
>>>
>>>> We currently working on upgrading our Sun Studio compilers. I will keep you 
>>>> posted once I rebuild in the new environment.
>>>>
>>>> Best,
>>>>
>>>> Halim
>>>> www.mcs.anl.gov/~aamer
>>>>
>>>> On 8/22/17 7:01 AM, Siegmar Gross wrote:
>>>>> Hi Halim,
>>>>>
>>>>> I've attached the config and log files. Hopefully, you will find a solution 
>>>>> for
>>>>> the problem. In the past (mid February 2017) I was able to build the last
>>>>> nightly snapshot from
>>>>> http://www.mpich.org/static/downloads/nightly/master/mpich/ with Sun C 5.14.
>>>>> Unfortunately, you don't provide nightly snapshots any longer. Min told
>>>>> me some days ago where I can find your master branch. I did the following
>>>>> things (SYSTEM_ENV: Linux, MACHINE_ENV: x86_64).
>>>>>
>>>>> git clone https://github.com/pmodels/mpich.git
>>>>> cd mpich
>>>>> autogen.sh
>>>>> cd ..
>>>>>
>>>>> mkdir mpich-master_`date -I'date'`_${SYSTEM_ENV}.${MACHINE_ENV}.64_gcc
>>>>> cd mpich-master_`date -I'date'`_${SYSTEM_ENV}.${MACHINE_ENV}.64_gcc
>>>>>
>>>>> ../mpich/configure \
>>>>>    --prefix=/usr/local/mpich-master_64_gcc \
>>>>>    --libdir=/usr/local/mpich-master_64_gcc/lib64 \
>>>>>    --includedir=/usr/local/mpich-master_64_gcc/include64 \
>>>>>    CC="gcc" CXX="g++" F77="gfortran" FC="gfortran" \
>>>>>    CFLAGS="-m64" CXXFLAGS="-m64" FFLAGS="-m64" FCFLAGS="-m64" \
>>>>>    LDFLAGS="-m64" \
>>>>>    --enable-fortran=yes --enable-cxx --enable-romio \
>>>>>    --enable-debuginfo --enable-smpcoll \
>>>>>    --enable-threads=multiple --with-thread-package=posix \
>>>>>    --enable-shared \
>>>>>    |& tee log.configure.$SYSTEM_ENV.$MACHINE_ENV.64_gcc
>>>>>
>>>>> make |& tee log.make.$SYSTEM_ENV.$MACHINE_ENV.64_gcc
>>>>> rm -r /usr/local/mpich-master_64_gcc.old
>>>>> mv /usr/local/mpich-master_64_gcc /usr/local/mpich-master_64_gcc.old
>>>>> make install |& tee log.make-install.$SYSTEM_ENV.$MACHINE_ENV.64_gcc
>>>>> make check |& tee log.make-check.$SYSTEM_ENV.$MACHINE_ENV.64_gcc
>>>>>
>>>>>
>>>>> Kind regards
>>>>>
>>>>> Siegmar
>>>>>
>>>>>
>>>>>
>>>>> On 08/21/17 18:17, Halim Amer wrote:
>>>>>> Hi Siegmar,
>>>>>>
>>>>>> I could not reproduce the error you are seeing with Sun C 5.13. I could 
>>>>>> try to use the 5.15, but meanwhile, there is some information I would like 
>>>>>> to know.
>>>>>>
>>>>>>  > CC: -library=Crun cannot be used with -std=c++03
>>>>>>
>>>>>> I don't understand how -std=c++03 got passed with the below configure line 
>>>>>> you gave us. Are you sure the error message corresponds to the configure 
>>>>>> setup below?
>>>>>>
>>>>>> Can you attach the output and log of the configure step and the output of 
>>>>>> make?
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Halim
>>>>>> www.mcs.anl.gov/~aamer
>>>>>>
>>>>>> On 8/21/17 7:34 AM, Siegmar Gross wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I tried to install mpich-master on my "SUSE Linux Enterprise Server 12.2
>>>>>>> (x86_64)" with Sun C 5.15 (Oracle Developer Studio 12.6) and gcc-7.1.0.
>>>>>>> Unfortunately, I couldn't build it with Sun C due to the following error.
>>>>>>>
>>>>>>> loki mpich-master_2017-08-20_Linux.x86_64.64_cc 276 tail -18 
>>>>>>> log.make.Linux.x86_64.64_cc
>>>>>>> "../mpich/src/include/mpir_handlemem.h", line 61: warning: null 
>>>>>>> dimension: indirect
>>>>>>> "../mpich/src/include/mpir_handlemem.h", line 122: warning: null 
>>>>>>> dimension: indirect
>>>>>>>    CCLD     src/mpi/debugger/libdbginitdummy.la
>>>>>>>    GEN      lib/libmpi.la
>>>>>>>    CXX      src/binding/cxx/initcxx.lo
>>>>>>> "./src/include/mpichconf.h", line 1132: Warning (Anachronism): Attempt to 
>>>>>>> redefine __restrict__ without using #undef.
>>>>>>> 1 Warning(s) detected.
>>>>>>>    CXXLD    lib/libmpicxx.la
>>>>>>> CC: -library=Crun cannot be used with -std=c++03. To use this library you 
>>>>>>> need to switch to -std=sun03
>>>>>>> CC: -library=Cstd cannot be used with -std=c++03. To use this library you 
>>>>>>> need to switch to -std=sun03
>>>>>>> Makefile:9429: recipe for target 'lib/libmpicxx.la' failed
>>>>>>> make[2]: *** [lib/libmpicxx.la] Error 1
>>>>>>> make[2]: Leaving directory 
>>>>>>> '/export2/src/mpich-master/mpich-master_2017-08-20_Linux.x86_64.64_cc'
>>>>>>> Makefile:34562: recipe for target 'all-recursive' failed
>>>>>>> make[1]: *** [all-recursive] Error 1
>>>>>>> make[1]: Leaving directory 
>>>>>>> '/export2/src/mpich-master/mpich-master_2017-08-20_Linux.x86_64.64_cc'
>>>>>>> Makefile:9242: recipe for target 'all' failed
>>>>>>> make: *** [all] Error 2
>>>>>>> loki mpich-master_2017-08-20_Linux.x86_64.64_cc 277
>>>>>>>
>>>>>>>
>>>>>>> I used the following command to configure MPICH.
>>>>>>>
>>>>>>> ../mpich/configure \
>>>>>>>    --prefix=/usr/local/mpich-master_64_cc \
>>>>>>>    --libdir=/usr/local/mpich-master_64_cc/lib64 \
>>>>>>>    --includedir=/usr/local/mpich-master_64_cc/include64 \
>>>>>>>    CC="cc" CXX="CC" F77="f77" FC="f95" \
>>>>>>>    CFLAGS="-m64" CXXFLAGS="-m64" FFLAGS="-m64" FCFLAGS="-m64" \
>>>>>>>    LDFLAGS="-m64 -L/usr/lib64 -R/usr/lib64" \
>>>>>>>    --enable-fortran=ye --enable-cxx --enable-romio \
>>>>>>>    --enable-debuginfo --enable-smpcoll \
>>>>>>>    --enable-threads=multiple --with-thread-package=posix \
>>>>>>>    --enable-shared \
>>>>>>>    |& tee log.configure.$SYSTEM_ENV.$MACHINE_ENV.64_cc
>>>>>>>
>>>>>>>
>>>>>>> Building MPICH caused the following warning with gcc.
>>>>>>>
>>>>>>> loki mpich-master_2017-08-20_Linux.x86_64.64_gcc 267 grep -i warning 
>>>>>>> log.make.Linux.x86_64.64_gcc | sort | uniq
>>>>>>> ../mpich/src/include/mpir_mem.h:144:11: warning: argument 1 value 
>>>>>>> '18446744073709551612' exceeds maximum object size 9223372036854775807 
>>>>>>> [-Walloc-size-larger-than=]
>>>>>>> loki mpich-master_2017-08-20_Linux.x86_64.64_gcc 268
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Building MPICH caused the following warnings with cc.
>>>>>>>
>>>>>>> loki mpich-master_2017-08-20_Linux.x86_64.64_cc 270 grep -i warning 
>>>>>>> log.make.Linux.x86_64.64_cc | sort | uniq
>>>>>>> "../../../../../../../../../mpich/src/pm/hydra/tools/topo/hwloc/hwloc/src/topology-custom.c", 
>>>>>>> line 88: warning: initializer will be sign-extended: -1
>>>>>>> "../../../../../../../../../mpich/src/pm/hydra/tools/topo/hwloc/hwloc/src/topology-linux.c", 
>>>>>>> line 2727: warning: initializer will be sign-extended: -1
>>>>>>> "../../../../../../../../../mpich/src/pm/hydra/tools/topo/hwloc/hwloc/src/topology-synthetic.c", 
>>>>>>> line 851: warning: initializer will be sign-extended: -1
>>>>>>> "../../../../../../../../../mpich/src/pm/hydra/tools/topo/hwloc/hwloc/src/topology-x86.c", 
>>>>>>> line 122: warning: initializer will be sign-extended: -1
>>>>>>> "../../../../../../../../../mpich/src/pm/hydra/tools/topo/hwloc/hwloc/src/topology-xml.c", 
>>>>>>> line 1783: warning: initializer will be sign-extended: -1
>>>>>>> "../../../../mpich/src/mpi/romio/adio/common/ad_fstype.c", line 428: 
>>>>>>> warning: statement not reached
>>>>>>> "../../../../mpich/src/mpi/romio/adio/common/ad_threaded_io.c", line 31: 
>>>>>>> warning: statement not reached
>>>>>>> "../../../../mpich/src/openpa/src/primitives/opa_gcc_intel_32_64_ops.h", 
>>>>>>> line 103: warning: parameter in inline asm statement unused: %1
>>>>>>> "../../../../mpich/src/openpa/src/primitives/opa_gcc_intel_32_64_ops.h", 
>>>>>>> line 111: warning: parameter in inline asm statement unused: %1
>>>>>>> "../../../../mpich/src/openpa/src/primitives/opa_gcc_intel_32_64_ops.h", 
>>>>>>> line 121: warning: parameter in inline asm statement unused: %2
>>>>>>> "../../../../mpich/src/openpa/src/primitives/opa_gcc_intel_32_64_ops.h", 
>>>>>>> line 129: warning: parameter in inline asm statement unused: %3
>>>>>>> "../../../../mpich/src/openpa/src/primitives/opa_gcc_intel_32_64_ops.h", 
>>>>>>> line 142: warning: parameter in inline asm statement unused: %1
>>>>>>> "../../../../mpich/src/openpa/src/primitives/opa_gcc_intel_32_64_ops.h", 
>>>>>>> line 151: warning: parameter in inline asm statement unused: %1
>>>>>>> "../../../../mpich/src/openpa/src/primitives/opa_gcc_intel_32_64_ops.h", 
>>>>>>> line 159: warning: parameter in inline asm statement unused: %3
>>>>>>> "../../../../mpich/src/openpa/src/primitives/opa_gcc_intel_32_64_ops.h", 
>>>>>>> line 167: warning: parameter in inline asm statement unused: %3
>>>>>>> "../../../../mpich/src/openpa/src/primitives/opa_gcc_intel_32_64_ops.h", 
>>>>>>> line 95: warning: parameter in inline asm statement unused: %2
>>>>>>> "../../../../mpich/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c", line 796: 
>>>>>>> warning: statement not reached
>>>>>>> "../mpich/src/include/mpir_handlemem.h", line 122: warning: null 
>>>>>>> dimension: indirect
>>>>>>> "../mpich/src/include/mpir_handlemem.h", line 61: warning: null 
>>>>>>> dimension: indirect
>>>>>>> "../mpich/src/mpi/datatype/dataloop/segment.c", line 658: warning: 
>>>>>>> statement not reached
>>>>>>> "../mpich/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c", line 194: 
>>>>>>> warning: assignment type mismatch:
>>>>>>> "../mpich/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c", line 195: 
>>>>>>> warning: operands have incompatible pointer types: op "=="
>>>>>>> "../mpich/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c", line 196: 
>>>>>>> warning: operands have incompatible pointer types: op "!="
>>>>>>> "../mpich/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c", line 198: 
>>>>>>> warning: argument #2 is incompatible with prototype:
>>>>>>> "../mpich/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c", line 198: 
>>>>>>> warning: assignment type mismatch:
>>>>>>> "../mpich/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c", line 199: 
>>>>>>> warning: operands have incompatible pointer types: op "=="
>>>>>>> "../mpich/src/mpid/ch3/channels/nemesis/src/ch3i_comm.c", line 36: 
>>>>>>> warning: statement not reached
>>>>>>> "../mpich/src/mpid/ch3/channels/nemesis/src/ch3i_comm.c", line 99: 
>>>>>>> warning: statement not reached
>>>>>>> "./src/include/mpichconf.h", line 1132: Warning (Anachronism): Attempt to 
>>>>>>> redefine __restrict__ without using #undef.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I would be grateful, if somebody can fix the problem. Do you need anything
>>>>>>> else? Thank you very much for any help in advance.
>>>>>>>
>>>>>>>
>>>>>>> Kind regards
>>>>>>>
>>>>>>> Siegmar
>>>>>>> _______________________________________________
>>>>>>> discuss mailing list     discuss at mpich.org
>>>>>>> To manage subscription options or unsubscribe:
>>>>>>> https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________
discuss mailing list     discuss at mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss


More information about the discuss mailing list