I am seeing the following on OpenBSD/amd64 with "make V=1":

Making all in tools/wrappers
/bin/sh ../../../libtool  --tag=CC    --mode=link gcc -std=gnu99  -g
-finline-functions -fno-strict-aliasing -pthread   -export-dynamic   -o
opal_wrapper opal_wrapper.o ../../../opal/libopen-pal.la -lutil -lm
libtool: link: gcc -std=gnu99 -g -finline-functions -fno-strict-aliasing
-pthread -o .libs/opal_wrapper opal_wrapper.o -Wl,-E  -L../../../opal/.libs
-lopen-pal -lpthread -lutil -lm -pthread
-Wl,-rpath,/home/phargrov/OMPI/openmpi-1.8.2rc3-openbsd5-amd64/INST/lib
../../../opal/.libs/libopen-pal.so.8.0: warning: vsprintf() is often
misused, please use vsnprintf()
../../../opal/.libs/libopen-pal.so.8.0: warning: strcpy() is almost always
misused, please use strlcpy()
../../../opal/.libs/libopen-pal.so.8.0: warning: random() isn't random;
consider using arc4random()
../../../opal/.libs/libopen-pal.so.8.0: warning: strcat() is almost always
misused, please use strlcat()
../../../opal/.libs/libopen-pal.so.8.0: warning: sprintf() is often
misused, please use snprintf()
../../../opal/.libs/libopen-pal.so.8.0: undefined reference to
`arc4random_addrandom'
collect2: ld returned 1 exit status
*** Error 1 in opal/tools/wrappers (Makefile:1623 'opal_wrapper')
*** Error 1 in opal (Makefile:2145 'all-recursive')
*** Error 1 in /home/phargrov/OMPI/openmpi-1.8.2rc3-openbsd5-amd64/BLD
(Makefile:1689 'all-recursive')

Ignoring OpenBSD's typical warnings about functions their developers don't
like there is an undefined reference to arc4random_addrandom.  The only
explicit reference appears to be in libevent:

$ grep -rlw arc4random_addrandom .
./opal/mca/event/libevent2021/libevent/evutil_rand.c
./opal/mca/event/libevent2021/libevent/arc4random.c

It appears that OpenBSD has arc4random, but no arc4random_addrandom():
/usr/include/stdlib.h:u_int32_t arc4random(void);
/usr/include/stdlib.h:u_int32_t arc4random_uniform(u_int32_t);
/usr/include/stdlib.h:void arc4random_buf(void *, size_t)

I tried to work-around this by adding  "ac_cv_func_arc4random=no" to the
configure command line, but that creates secondary problems because the #if
logic in libevent doesn't allow for the case that arc4random() does not
exist but arc4random_buf() does:

In file included from
/home/phargrov/OMPI/openmpi-1.8.2rc3-openbsd5-amd64/openmpi-1.8.2rc3/opal/mca/event/libev
ent2021/libevent/evutil_rand.c:119:
/home/phargrov/OMPI/openmpi-1.8.2rc3-openbsd5-amd64/openmpi-1.8.2rc3/opal/mca/event/libevent2021/libevent/./arc
4random.c:482: error: static declaration of 'arc4random_buf' follows
non-static declaration
/usr/include/stdlib.h:308: error: previous declaration of 'arc4random_buf'
was here

Use of --with-libevent=... was no use because the pre-built libevent
package for OpenBSD lacks thread support.

So, I am left without any recipe to build 1.8.2rc3 on OpenBSD.
HOWEVER, is appears that 1.8, 1.8.1 and trunk all have the same problem.
Of course, I am the only one who tests Open MPI on OpenBSD, and I don't
actually USE it.
So, this is not any sort of a priority as far as I am concerned.

-Paul






-- 
Paul H. Hargrove                          phhargr...@lbl.gov
Future Technologies Group
Computer and Data Sciences Department     Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900

Reply via email to