[erlang-questions] erl_errno on the Mac

Peter Andersson <>
Wed Oct 10 09:07:51 CEST 2007

Hi Joel,

I think ch 1.1. in the erl_interface user's guide answers your question:

"If you are using Erl_Interface functions in a threaded application
based on POSIX threads or Solaris threads, then Erl_Interface needs
access to some of the synchronization facilities in your threads
package, and you will need to specify additional compiler flags in order
to indicate which of the packages you are using. Define |_REENTRANT| and
either |STHREADS| or |PTHREADS|. The default is to use POSIX threads if
|_REENTRANT| is specified.

Note that both single threaded and default versions of the Erl_interface
and Ei libraries are provided. (The single threaded versions are named
|liberl_interface_st| and |libei_st|). Whether the default versions of
the libraries have support for threads or not is determined by if the
platform in question has support for POSIX or Solaris threads. To check
this, have a look in the |eidefs.mk| file in the erl_interface src


Joel Reymont wrote:
> Peter,
> On Oct 9, 2007, at 5:40 PM, Peter Andersson wrote:
> > #if !defined(_REENTRANT) && !defined(VXWORKS) && !defined(__WIN32__)
> > volatile int __erl_errno;
> > #endif
> I'm linking against libei.a, should I be using libei_st.a instead?
> 	Thanks, Joel
> --
> http://wagerlabs.com

More information about the erlang-questions mailing list