diff -ru ffmpeg-orig/configure ffmpeg/configure
--- ffmpeg-orig/configure	2005-02-28 01:05:48.000000000 +0100
+++ ffmpeg/configure	2005-03-01 21:39:22.000000000 +0100
@@ -212,7 +212,7 @@
 2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
 mmx="no"
 ;;
-*20010315*) echo "BeBits gcc"
+*20010315*|2.95.3*) echo "BeBits gcc"
 CFLAGS="$CFLAGS -fno-expensive-optimizations"
 ;;
 esac
@@ -387,7 +387,7 @@
   ;;
   --extra-ldflags=*) LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}"
   ;;
-  --extra-libs=*) extralibs=${opt#--extra-libs=}
+  --extra-libs=*) extralibs="$extralibs ${opt#--extra-libs=}"
   ;;
   --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
   ;;
@@ -740,6 +740,18 @@
 ranlib="${cross_prefix}${ranlib}"
 strip="${cross_prefix}${strip}"
 
+if test "${cross_prefix}" = "i586-pc-beos-"; then
+  # Cross-compiling from Linux for BeOS
+  CFLAGS="$CFLAGS -DPIC -fomit-frame-pointer -fno-expensive-optimizations"
+  SHFLAGS=-nostart
+  audio_oss="no"
+  v4l="no"
+  dv1394="no"
+  netserver="yes"
+  need_inet_aton="yes"
+  extralibs="-lnet"
+fi
+
 if test -z "$cross_prefix" ; then
 
 # ---
@@ -858,6 +870,9 @@
 EOF
 
 have_lrintf="no"
+# BeOS doesn't have lrintf, make sure it is not enabled when
+# cross-compiling
+if test "${cross_prefix}" != "i586-pc-beos-"; then
 if $cc $extralibs -o $TMPE $TMPC 2> /dev/null ; then
   have_lrintf="yes"
   # allanc@chickenandporn.com: cannot execute cross-compiled
@@ -866,6 +881,7 @@
     $TMPE 2> /dev/null > /dev/null || have_lrintf="no"
   fi
 fi
+fi
 
 _restrict=
 for restrict_keyword in restrict __restrict__ __restrict; do
diff -ru ffmpeg-orig/libavcodec/eval.c ffmpeg/libavcodec/eval.c
--- ffmpeg-orig/libavcodec/eval.c	2005-01-17 19:25:32.000000000 +0100
+++ ffmpeg/libavcodec/eval.c	2005-03-01 00:27:04.000000000 +0100
@@ -34,6 +34,8 @@
 #include <string.h>
 #include <math.h>
 
+/* Meuuh power */
+#undef NAN
 #ifndef NAN
   #define NAN 0
 #endif
diff -ru ffmpeg-orig/libavformat/tcp.c ffmpeg/libavformat/tcp.c
--- ffmpeg-orig/libavformat/tcp.c	2005-02-24 20:08:50.000000000 +0100
+++ ffmpeg/libavformat/tcp.c	2005-03-01 00:27:04.000000000 +0100
@@ -32,6 +32,7 @@
 #include <netdb.h>
 #include <sys/time.h>
 #include <fcntl.h>
+#define socklen_t int
 
 typedef struct TCPContext {
     int fd;
@@ -112,11 +113,13 @@
                 break;
         }
         
+#ifndef __BEOS__
         /* test error */
         optlen = sizeof(ret);
         getsockopt (fd, SOL_SOCKET, SO_ERROR, &ret, &optlen);
         if (ret != 0)
             goto fail;
+#endif
     }
     s->fd = fd;
     return 0;
