freebsd: Fixes for the compilation of libosmocore on FreeBSD

alloca.h is not available on FreeBSD, use the default autoconf
function to check for it, there is a complete list[1] of what to
do for using alloca but let us see how far we get with this test.

Include netinet/in.h for the IPv4 and IPv6 socket address. Check
for dlopen in libraries and use this instead of linking -dl.

[1] http://www.gnu.org/s/hello/manual/autoconf/Particular-Functions.html
diff --git a/src/Makefile.am b/src/Makefile.am
index 6c0398b..25da356 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -19,7 +19,7 @@
 
 if ENABLE_PLUGIN
 libosmocore_la_SOURCES += plugin.c
-libosmocore_la_LDFLAGS = -version-info $(LIBVERSION) -ldl
+libosmocore_la_LDFLAGS = -version-info $(LIBVERSION) $(LIBRARY_DL)
 else
 libosmocore_la_LDFLAGS = -version-info $(LIBVERSION)
 endif
diff --git a/src/conv.c b/src/conv.c
index f47d75c..0416d27 100644
--- a/src/conv.c
+++ b/src/conv.c
@@ -29,8 +29,10 @@
 /*! \file conv.c
  *  \file Osmocom convolutional encoder and decoder
  */
-
+#include "config.h"
+#ifdef HAVE_ALLOCA_H
 #include <alloca.h>
+#endif
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/socket.c b/src/socket.c
index 1a1d71d..8a8829b 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -18,6 +18,8 @@
 #include <sys/socket.h>
 #include <sys/types.h>
 
+#include <netinet/in.h>
+
 #include <stdio.h>
 #include <unistd.h>
 #include <stdint.h>