Merge commit '0c03cc68386443f1e96ab6fb358220faf67cd5ff'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 24 Oct 2012 11:31:46 +0000 (13:31 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 24 Oct 2012 11:42:58 +0000 (13:42 +0200)
* commit '0c03cc68386443f1e96ab6fb358220faf67cd5ff':
  mp3: exit on parsing error in mp_decode_frame
  rtmppkt: Avoid unescaped backslash in Doxygen comment
  fate-lavfi: replace sed/grep/cut combos with awk
  build: Plan 9 support

Conflicts:
configure
tests/lavfi-regression.sh

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
compat/plan9/main.c
configure
doc/platform.texi
libavformat/os_support.h
libavformat/rtmppkt.h

index 0000000,97d7067..d46f96d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,34 +1,34 @@@
 - * This file is part of Libav.
+ /*
 - * Libav is free software; you can redistribute it and/or
++ * This file is part of FFmpeg.
+  *
 - * Libav is distributed in the hope that it will be useful,
++ * FFmpeg is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+  * version 2.1 of the License, or (at your option) any later version.
+  *
 - * License along with Libav; if not, write to the Free Software
++ * FFmpeg is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ int plan9_main(int argc, char **argv);
+ #undef main
+ int main(int argc, char **argv)
+ {
+     /* The setfcr() function in lib9 is broken, must use asm. */
+ #ifdef __i386
+     short fcr;
+     __asm__ volatile ("fstcw        %0 \n"
+                       "or      $63, %0 \n"
+                       "fldcw        %0 \n"
+                       : "=m"(fcr));
+ #endif
+     return plan9_main(argc, argv);
+ }
diff --cc configure
+++ b/configure
@@@ -2008,9 -1752,8 +2008,10 @@@ postproc_version_default="current
  # toolchain
  ar_default="ar"
  cc_default="gcc"
 +cxx_default="g++"
  host_cc_default="gcc"
+ cp_f="cp -f"
 +install="install"
  ln_s="ln -sf"
  nm_default="nm -g"
  objformat="elf"
@@@ -3202,6 -2880,19 +3203,19 @@@ case $target_os i
          ;;
      minix)
          ;;
 -        disable avserver
+     plan9)
+         add_cppflags -D_C99_SNPRINTF_EXTENSION  \
+                      -D_REENTRANT_SOURCE        \
+                      -D_RESEARCH_SOURCE         \
+                      -DFD_SETSIZE=96            \
+                      -DHAVE_SOCK_OPTS
+         add_compat strtod.o strtod=avpriv_strtod
+         network_extralibs='-lbsd'
+         exeobjs=compat/plan9/main.o
++        disable ffserver
+         ln_s='ln -s -f'
+         cp_f='cp'
+         ;;
      none)
          ;;
      *)
@@@ -304,4 -298,67 +304,67 @@@ and for a build with shared librarie
  ./configure --target-os=mingw32 --enable-shared --disable-static --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
  @end example
  
 -does not implement all the C99 features needed by Libav so the gcc
+ @chapter Plan 9
+ The native @uref{http://plan9.bell-labs.com/plan9/, Plan 9} compiler
 -Replacements adequate for building Libav can be found in the
++does not implement all the C99 features needed by FFmpeg so the gcc
+ port must be used.  Furthermore, a few items missing from the C
+ library and shell environment need to be fixed.
+ @itemize
+ @item GNU awk, grep, make, and sed
+ Working packages of these tools can be found at
+ @uref{http://code.google.com/p/ports2plan9/downloads/list, ports2plan9}.
+ They can be installed with @uref{http://9front.org/, 9front's} @code{pkg}
+ utility by setting @code{pkgpath} to
+ @code{http://ports2plan9.googlecode.com/files/}.
+ @item Missing/broken @code{head} and @code{printf} commands
 -These must be disabled before calling any Libav functions.  While the
++Replacements adequate for building FFmpeg can be found in the
+ @code{compat/plan9} directory.  Place these somewhere they will be
+ found by the shell.  These are not full implementations of the
+ commands and are @emph{not} suitable for general use.
+ @item Missing C99 @code{stdint.h} and @code{inttypes.h}
+ Replacement headers are available from
+ @url{http://code.google.com/p/plan9front/issues/detail?id=152}.
+ @item Missing or non-standard library functions
+ Some functions in the C library are missing or incomplete.  The
+ @code{@uref{http://ports2plan9.googlecode.com/files/gcc-apelibs-1207.tbz,
+ gcc-apelibs-1207}} package from
+ @uref{http://code.google.com/p/ports2plan9/downloads/list, ports2plan9}
+ includes an updated C library, but installing the full package gives
+ unusable executables.  Instead, keep the files from @code{gccbin.tgz}
+ under @code{/386/lib/gnu}.  From the @code{libc.a} archive in the
+ @code{gcc-apelibs-1207} package, extract the following object files and
+ turn them into a library:
+ @itemize
+ @item @code{strerror.o}
+ @item @code{strtoll.o}
+ @item @code{snprintf.o}
+ @item @code{vsnprintf.o}
+ @item @code{vfprintf.o}
+ @item @code{_IO_getc.o}
+ @item @code{_IO_putc.o}
+ @end itemize
+ Use the @code{--extra-libs} option of @code{configure} to inform the
+ build system of this library.
+ @item FPU exceptions enabled by default
+ Unlike most other systems, Plan 9 enables FPU exceptions by default.
++These must be disabled before calling any FFmpeg functions.  While the
+ included tools will do this automatically, other users of the
+ libraries must do it themselves.
+ @end itemize
  @bye
Simple merge
Simple merge