The Solaris issue is something i hit earlier today, and a fix is pending at https://github.com/open-mpi/ompi/pull/1941

assuming you have recent autotools, you can download the patch at https://patch-diff.githubusercontent.com/raw/open-mpi/ompi/pull/1941.patch, run autogen.pl

and then configure / make / make install


as a workaround, you can also

./configure ... CFLAGS='-g -O0'


fwiw, there is no __curbrk in solaris, but with default optimizations, sun compiler optimizes out the test, and hence successfully link an object file whose reference to __curbrk have been optimized out.


regarding the dmb issue, this is something that was reported long time ago, and i do not remember a solution was found, fwiw, i am not aware of any core developer having any raspberry pi to use for tests.

you might want to try solving it by yourself, for example
cd opal/asm
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../../opal/include -I../../ompi/include -I../../oshmem/include -I../../opal/mca/hwloc/hwloc1112/hwloc/include/private/autogen -I../../opal/mca/hwloc/hwloc1112/hwloc/include/hwloc/autogen -I../../ompi/mpiext/cuda/c -I../.. -I../../orte/include -D_REENTRANT -I/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/mca/hwloc/hwloc1112/hwloc/include -I/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/mca/event/libevent2022/libevent -I/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/mca/event/libevent2022/libevent/include -O3 -DNDEBUG -D_REENTRANT -finline-functions -fno-strict-aliasing -MT atomic-asm.lo -MD -MP -MF .deps/atomic-asm.Tpo -c atomic-asm.S -fPIC -DPIC -o .libs/atomic-asm.o

and try adding some more options such as -march=armv8-a

an other option is to hack opal/include/opal_config.h, and update
OPAL_HAVE_ATOMIC_MEM_BARRIER macro (i guess it is >=7, try to set it to 6)
OPAL_ASM_SUPPORT_64BIT macro (i guess it is 1, try to set it to 0)

i hope this helps

Cheers,

Gilles

On 8/5/2016 4:38 PM, Christiano SA wrote:
*=== 1 - Solaris x86* ===
I did some changes in Solaris environment.
Now it is:
OS: Solaris x86 11.3
Compiler Gcc 4.9.3 package (Previously was Oracle developer studio 12.5 with bin added to PATH)
The compilation method employed at this time was:
*$ umask *  (previously absent)
0022
*$ umask 0000*  (previously absent)
$ tar zxvf openmpi-2.0.0.tar.gz
$ cd openmpi-2.0.0/
$ ./configure
$ make
(...)
make: Fatal error: Command failed for target `all-recursive'
Current working directory /export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal
*** Error code 1
The following command caused the error:
fail=; \
if (target_option=k; case ${target_option-} in ?) ;; *) echo "am__make_running_with_option: internal error: invalid" "target option '${target_option-}' specified" >&2; exit 1;; esac; has_opt=no; sane_makeflags=$MAKEFLAGS; if { if test -z ''; then false; elif test -n ''; then true; elif test -n '' && test -n ''; then true; else false; fi; }; then sane_makeflags=$MFLAGS; else case $MAKEFLAGS in *\\[\ \ ]*) bs=\\; sane_makeflags=`printf '%s\n' "$MAKEFLAGS" | sed "s/$bs$bs[$bs $bs ]*//g"`;; esac; fi; skip_next=no; strip_trailopt () { flg=`printf '%s\n' "$flg" | sed "s/$1.*$//"`; }; for flg in $sane_makeflags; do test $skip_next = yes && { skip_next=no; continue; }; case $flg in *=*|--*) continue;; -*I) strip_trailopt 'I'; skip_next=yes;; -*I?*) strip_trailopt 'I';; -*O) strip_trailopt 'O'; skip_next=yes;; -*O?*) strip_trailopt 'O';; -*l) strip_trailopt 'l'; skip_next=yes;; -*l?*) strip_trailopt 'l';; -[dEDm]) skip_next=yes;; -[JT]) skip_next=yes;; esac; case $flg in *$target_option*) has_opt=yes; break;; esac; done; test $has_opt = yes); then \
  failcom='fail=yes'; \
else \
  failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
case "all-recursive" in \
distclean-* | maintainer-clean-*) list='config contrib opal orte ompi oshmem test' ;; \
  *) list='config contrib opal orte ompi oshmem test' ;; \
esac; \
for subdir in $list; do \
  echo "Making $target in $subdir"; \
  if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-am"; \
  else \
    local_target="$target"; \
  fi; \
  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \
  || eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
  make  "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
$ gmake
(...)
gmake[2]: Nothing to be done for `all'.
gmake[2]: Leaving directory `/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/mca/shmem/sysv'
Making all in tools/wrappers
gmake[2]: Entering directory `/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/tools/wrappers'
  CCLD     opal_wrapper
Undefined                       first referenced
 symbol                             in file
__curbrk ../../../opal/.libs/libopen-pal.so
ld: fatal: symbol referencing errors
collect2: error: ld returned 1 exit status
gmake[2]: *** [opal_wrapper] Error 1
gmake[2]: Leaving directory `/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/tools/wrappers'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal'
gmake: *** [all-recursive] Error 1
*1.1 Doing the command you ask* (Although now the problem seems different)
*solaris@solaris:~/Downloads/Test_03/openmpi-2.0.0$* cd opal/asm/
*solaris@solaris:~/Downloads/Test_03/openmpi-2.0.0/opal/asm$* ls -l .deps/atomic-asm.Tpo atomic-asm.S
.deps/atomic-asm.Tpo: No such file or directory
lrwxrwxrwx 1 solaris staff 51 Jul 25 03:58 atomic-asm.S -> ../../opal/asm/generated/atomic-ia32-linux-nongas.s
*solaris@solaris:~/Downloads/Test_03/openmpi-2.0.0/opal/asm$* make clean
test -z "*~ .\#*" || rm -f *~ .\#*
rm -rf .libs _libs
rm -f atomic-asm.S
test -z "libasm.la" || rm -f libasm.la
rm -f ./so_locations
rm -f *.o
rm -f *.lo
*solaris@solaris:~/Downloads/Test_03/openmpi-2.0.0/opal/asm$* make V=1 atomic-asm.lo
rm -f atomic-asm.S
ln -s "../../opal/asm/generated/atomic-ia32-linux-nongas.s" atomic-asm.S
depbase=`echo atomic-asm.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/sh ../../libtool --mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../../opal/include -I../../ompi/include -I../../oshmem/include -I../../opal/mca/hwloc/hwloc1112/hwloc/include/private/autogen -I../../opal/mca/hwloc/hwloc1112/hwloc/include/hwloc/autogen -I../../ompi/mpiext/cuda/c -I../.. -I../../orte/include -D_REENTRANT -I/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/mca/hwloc/hwloc1112/hwloc/include -I/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/mca/event/libevent2022/libevent -I/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/mca/event/libevent2022/libevent/include -O3 -DNDEBUG -D_REENTRANT -finline-functions -fno-strict-aliasing -MT atomic-asm.lo -MD -MP -MF $depbase.Tpo -c -o atomic-asm.lo atomic-asm.S &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile: gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../../opal/include -I../../ompi/include -I../../oshmem/include -I../../opal/mca/hwloc/hwloc1112/hwloc/include/private/autogen -I../../opal/mca/hwloc/hwloc1112/hwloc/include/hwloc/autogen -I../../ompi/mpiext/cuda/c -I../.. -I../../orte/include -D_REENTRANT -I/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/mca/hwloc/hwloc1112/hwloc/include -I/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/mca/event/libevent2022/libevent -I/export/home/solaris/Downloads/Test_03/openmpi-2.0.0/opal/mca/event/libevent2022/libevent/include -O3 -DNDEBUG -D_REENTRANT -finline-functions -fno-strict-aliasing -MT atomic-asm.lo -MD -MP -MF .deps/atomic-asm.Tpo -c atomic-asm.S -fPIC -DPIC -o .libs/atomic-asm.o
*==== 2 - Raspbian armv7 =====*
$ ./configure
$ make
Making all in config
make[1]: Entering directory '/home/pi/Downloads/TEST/openmpi-2.0.0/config'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/pi/Downloads/TEST/openmpi-2.0.0/config'
Making all in contrib
make[1]: Entering directory '/home/pi/Downloads/TEST/openmpi-2.0.0/contrib'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/pi/Downloads/TEST/openmpi-2.0.0/contrib'
Making all in opal
make[1]: Entering directory '/home/pi/Downloads/TEST/openmpi-2.0.0/opal'
Making all in include
make[2]: Entering directory '/home/pi/Downloads/TEST/openmpi-2.0.0/opal/include'
make  all-am
make[3]: Entering directory '/home/pi/Downloads/TEST/openmpi-2.0.0/opal/include' make[3]: Leaving directory '/home/pi/Downloads/TEST/openmpi-2.0.0/opal/include' make[2]: Leaving directory '/home/pi/Downloads/TEST/openmpi-2.0.0/opal/include'
Making all in asm
make[2]: Entering directory '/home/pi/Downloads/TEST/openmpi-2.0.0/opal/asm'
  CC       asm.lo
rm -f atomic-asm.S
ln -s "../../opal/asm/generated/atomic-local.s" atomic-asm.S
  CPPAS    atomic-asm.lo
atomic-asm.S: Assembler messages:
atomic-asm.S:7: Error: selected processor does not support ARM mode `dmb'
atomic-asm.S:15: Error: selected processor does not support ARM mode `dmb'
atomic-asm.S:23: Error: selected processor does not support ARM mode `dmb'
atomic-asm.S:55: Error: selected processor does not support ARM mode `dmb'
atomic-asm.S:70: Error: selected processor does not support ARM mode `dmb'
atomic-asm.S:86: Error: selected processor does not support ARM mode `ldrexd r4,r5,[r0]' atomic-asm.S:91: Error: selected processor does not support ARM mode `strexd r1,r6,r7,[r0]' atomic-asm.S:107: Error: selected processor does not support ARM mode `ldrexd r4,r5,[r0]' atomic-asm.S:112: Error: selected processor does not support ARM mode `strexd r1,r6,r7,[r0]' atomic-asm.S:115: Error: selected processor does not support ARM mode `dmb' atomic-asm.S:130: Error: selected processor does not support ARM mode `ldrexd r4,r5,[r0]' atomic-asm.S:135: Error: selected processor does not support ARM mode `dmb' atomic-asm.S:136: Error: selected processor does not support ARM mode `strexd r1,r6,r7,[r0]'
make[2]: *** [Makefile:1735: atomic-asm.lo] Error 1
make[2]: Leaving directory '/home/pi/Downloads/TEST/openmpi-2.0.0/opal/asm'
make[1]: *** [Makefile:2301: all-recursive] Error 1
make[1]: Leaving directory '/home/pi/Downloads/TEST/openmpi-2.0.0/opal'
make: *** [Makefile:1800: all-recursive] Error 1
*==== 3 - Hypotheses ======*
*Solaris*
I'm not expert but searching "__curbrk" I discover it belongs to glibc
http://stackoverflow.com/questions/6210685/explanation-for-this-assembly-code
And solaris doesn't use glibc, according with:
http://unix.stackexchange.com/questions/34650/is-the-solaris-libc-based-on-the-gnu-libc
*Raspbian*
Apparently my processor armv7 does not support some instructions (?).
---
Dpchoudh,
Raspbian don't have selinux in default installation (At least there is no explicit intuitive command indicating this.)
*Sent:* Thursday, August 04, 2016 at 9:33 PM
*From:* "Gilles Gouaillardet" <gil...@rist.or.jp>
*To:* "Open MPI Users" <users@lists.open-mpi.org>
*Subject:* Re: [OMPI users] open-mpi: all-recursive error when compiling

The error message is related to a permission issue (which is very puzzling in itself ...)

can you manually check the permissions ?

cd /home/pi/Downloads/openmpi-2.0.0/opal/asm

ls -l .deps/atomic-asm.Tpo atomic-asm.S

then you can

make clean

make V=1 atomic-asm.lo

and post the output

meanwhile, you can check your umask is correct (so files are created with the right permissions).

note unless you plan to install openmpi in /usr/local (e.g. sudo make install, after make)

you need to ./configure --prefix=<openmpi install path>

i also recommend you also --enable-mpirun-prefix-by-default

Cheers,

Gilles

On 8/5/2016 9:09 AM, Christiano SA wrote:

    Hi,
    I've downloaded the openmpi-2.0.0.tar.gz and done this:
    $ tar -zxvf openmpi-2.0.0.tar.gz
    $ cd openmpi-2.0.0
    $ ./configure
    (...)
    $ make
    but an error is happening:
    (...)
    Making all in include
    make[2]: Entering directory
    '/home/pi/Downloads/openmpi-2.0.0/opal/include'
    make  all-am
    make[3]: Entering directory
    '/home/pi/Downloads/openmpi-2.0.0/opal/include'
    make[3]: Leaving directory
    '/home/pi/Downloads/openmpi-2.0.0/opal/include'
    make[2]: Leaving directory
    '/home/pi/Downloads/openmpi-2.0.0/opal/include'
    Making all in asm
    make[2]: Entering directory
    '/home/pi/Downloads/openmpi-2.0.0/opal/asm'
      CPPAS    atomic-asm.lo
    atomic-asm.S:1:0: fatal error: opening dependency file
    .deps/atomic-asm.Tpo: Permission denied
            .text
     ^
    compilation terminated.
    make[2]: *** [Makefile:1735: atomic-asm.lo] Error 1
    make[2]: Leaving directory '/home/pi/Downloads/openmpi-2.0.0/opal/asm'
    make[1]: *** [Makefile:2301: all-recursive] Error 1
    make[1]: Leaving directory '/home/pi/Downloads/openmpi-2.0.0/opal'
    make: *** [Makefile:1800: all-recursive] Error 1
    I use raspberry pi 2 (raspbian) as my desktop computer, however,
    I've done a test in my Solaris 13.1 x86 with Oracle Developer
    Studio 12.5 and the result is similar: an error around
    "all-recursive". I alread tried install the gnu-make lastest
    version and didn't work, same thing with dmake and gmake: error
    around "all-recursive".
    More information: The .deb (raspbian) packages are working and
    packages to solaris too, however I would like to compile the
    lastest version.
    What did I do wrong?

    _______________________________________________
    users mailing list
    users@lists.open-mpi.org
    https://rfd.newmexicoconsortium.org/mailman/listinfo/users


_______________________________________________ users mailing list users@lists.open-mpi.org https://rfd.newmexicoconsortium.org/mailman/listinfo/users


_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users

_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users

Reply via email to