[erlang-questions] Cannot build R14B04 in Solaris 10 with libatomic_ops

Claudio A. Costagliola Fiedler jsmastropiero@REDACTED
Wed Dec 14 13:50:17 CET 2011


Magnus,

Here they are:
configure:10588: checking for a usable libatomic_ops implementation
configure:10630: cc -o conftest -g
-I/produccion/tmmprov2/claudio/temp/otp_src_R14B04/erts/sparc-sun-solaris2.10
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
 -D_THREAD_SAFE -D_REENTRANT -DPOSIX_THREADS -D_POSIX_PTHREAD_SEMANTICS
-I/produccion/tmmprov2/lutils/include   conftest.c -ldl -lm   -lpthread
-lkstat >&5
"conftest.c", line 45: warning: implicit function declaration:
AO_compare_and_swap_full
Undefined                       first referenced
 symbol                             in file
AO_compare_and_swap_full            conftest.o
AO_test_and_set_full                conftest.o
ld: fatal: symbol referencing errors. No output written to conftest
configure:10636: $? = 1
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define SIZEOF_VOID_P 4
| #define HAVE_LIBM 1
| #define HAVE_LIBDL 1
| #define HAVE_PTHREAD_H 1
| #define HAVE_KSTAT 1
| #define ETHR_PTHREADS 1
| #define ETHR_HAVE_PTHREAD_H 1
| #define ETHR_HAVE_SCHED_H 1
| #define ETHR_HAVE_SYS_TIME_H 1
| #define ETHR_TIME_WITH_SYS_TIME 1
| #define ETHR_HAVE_PTHREAD_SPIN_LOCK 1
| #define ETHR_HAVE_SCHED_YIELD 1
| #define ETHR_SCHED_YIELD_RET_INT 1
| #define ETHR_HAVE_PTHREAD_ATTR_SETGUARDSIZE 1
| /* end confdefs.h.  */
| #include "atomic_ops.h"
| int
| main ()
| {
|
|                       volatile AO_t x;
|                       AO_t y;
|                       int z;
|
|                       AO_nop_full();
|                       AO_store(&x, (AO_t) 0);
|                       z = AO_load(&x);
|                       z = AO_compare_and_swap_full(&x, (AO_t) 0, (AO_t)
1);
|
|   ;
|   return 0;
| }
configure:10660: result: no
configure:11125: error: No usable libatomic_ops implementation found

I also have tried to build erlang in this platform without libatomic_ops,
hoping the build used the native atomic operations available in Solaris 10,
but this also failed. Erlang doesn't use them and try to use libatomic_ops
instead. ¿Maybe this is because I'm using cc compiler instead of gcc?

Regards,

On Wed, Dec 14, 2011 at 6:14 AM, Magnus Henoch <
magnus.henoch@REDACTED> wrote:

> > checking for a usable libatomic_ops implementation... no
> > configure: error: No usable libatomic_ops implementation found
> > configure: error: /bin/bash
> > '/produccion/tmmprov2/claudio/temp/otp_src_R14B04/erts/configure'
> > failed for erts
>
> Could you post the relevant bits of erts/config.log?  You should be able
> to find the messages above, as well as details about why it didn't
> consider your libatomic_ops to be usable.
>
> --
> Magnus Henoch
> Erlang Solutions Ltd
> http://www.erlang-solutions.com/
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>



-- 
Claudio A. Costagliola Fiedler
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20111214/3cfbd2a8/attachment.htm>


More information about the erlang-questions mailing list