ejabberd, Erlang, and Fedora Core 5

05 Apr 2006

If you're compiling Erlang R10B-10 on Fedora Core 5, you may hit this error:

:hipe/hipe_x86_signal.c:192: undefined reference to `__next_sigaction'
:hipe/hipe_x86_signal.c:182: undefined reference to `INIT'
:hipe/hipe_x86_signal.c:192: undefined reference to `__next_sigaction'
collect2: ld returned 1 exit status
make[3]: *** [/usr/local/src/otp_src_R10B-10/bin/i686-pc-linux-gnu/beam.hybrid] Error 1
make[3]: Leaving directory `/usr/local/src/otp_src_R10B-10/erts/emulator'
make[2]: *** [hybrid] Error 2
make[2]: Leaving directory `/usr/local/src/otp_src_R10B-10/erts/emulator'
make[1]: *** [hybrid] Error 2
make[1]: Leaving directory `/usr/local/src/otp_src_R10B-10/erts'
make: *** [emulator] Error 2

To fix it, there's a small patch by Mikael Pettersson to add the GLIBC version number; it just changes this line in erts/emulator/hipe/hipe_x86_signal.c from this:

#if __GLIBC__ == 2 && __GLIBC_MINOR__ == 3

to this:

#if __GLIBC__ == 2 && (__GLIBC_MINOR__ == 3 || __GLIBC_MINOR__ == 4)

Once that's done it's off to the races. It's a hefty make process, though; took 13 minutes on my dual core/4 GB machine.