[erlang-questions] Error compiling R11B-4 on FreeBSD 6.2 (patch)

Tom Samplonius tom@REDACTED
Mon Apr 23 04:07:24 CEST 2007


  I received the following error trying to compile R11B-4 on FreeBSD 6.2:

gcc  -g -O2 -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -fno-strict-aliasing -I. -I../include -Iconnect -Iencode -Idecode -Imisc -Iepmd -Iregistry -Ii386-unknown-freebsd6.2   -D_REENTRANT -D_THREAD_SAFE -DPOSIX_THREADS -c connect/ei_resolve.c -o /usr/home/tom/lang/otp_src_R11B-4/lib/erl_interface/obj.mt/i386-unknown-freebsd6.2/ei_resolve.o
connect/ei_resolve.c: In function `ei_gethostbyname_r':
connect/ei_resolve.c:624: warning: passing arg 5 of `gethostbyname_r' from incompatible pointer type
connect/ei_resolve.c:624: error: too few arguments to function `gethostbyname_r'
connect/ei_resolve.c:624: warning: return makes pointer from integer without a cast
gmake[4]: *** [/usr/home/tom/lang/otp_src_R11B-4/lib/erl_interface/obj.mt/i386-unknown-freebsd6.2/ei_resolve.o] Error 1
gmake[4]: Leaving directory `/usr/home/tom/lang/otp_src_R11B-4/lib/erl_interface/src'
gmake[3]: *** [opt] Error 2
gmake[3]: Leaving directory `/usr/home/tom/lang/otp_src_R11B-4/lib/erl_interface/src'
gmake[2]: *** [opt] Error 2
gmake[2]: Leaving directory `/usr/home/tom/lang/otp_src_R11B-4/lib/erl_interface'
gmake[1]: *** [opt] Error 2
gmake[1]: Leaving directory `/usr/home/tom/lang/otp_src_R11B-4/lib'
gmake: *** [libs] Error 2


It turns out this is easy to fix, but other *BSDs might have the same problem.  Here is the patch:


*** ei_resolve.c.orig   Sun Apr 22 18:51:26 2007
--- ei_resolve.c        Sun Apr 22 18:52:05 2007
***************
*** 614,620 ****
  #ifndef HAVE_GETHOSTBYNAME_R
    return my_gethostbyname_r(name,hostp,buffer,buflen,h_errnop);
  #else
! #ifdef __GLIBC__
    struct hostent *result;

    gethostbyname_r(name, hostp, buffer, buflen, &result, h_errnop);
--- 614,620 ----
  #ifndef HAVE_GETHOSTBYNAME_R
    return my_gethostbyname_r(name,hostp,buffer,buflen,h_errnop);
  #else
! #if defined(__GLIBC__) || defined(__FreeBSD__)
    struct hostent *result;

    gethostbyname_r(name, hostp, buffer, buflen, &result, h_errnop);






Tom



More information about the erlang-questions mailing list