Skip to content

Instantly share code, notes, and snippets.

@opensiriusfox
Created December 13, 2012 07:32
Show Gist options
  • Save opensiriusfox/4274786 to your computer and use it in GitHub Desktop.
Save opensiriusfox/4274786 to your computer and use it in GitHub Desktop.
OMXPlayer Patch to enable Native Raspberry Pi Builds (Dec 12 2012) [For ec7ac68fa65eabcb491684d371899673cae93fbf] (Note: My Pi is out of commission for a short while, so this patch is untested. If it fails you should know almost immediately. Let me know if it fails for you and I'll get it fixed.)
diff -rupN Makefile.ffmpeg Makefile.ffmpeg
--- Makefile.ffmpeg 2012-12-12 23:20:04.000000000 -0800
+++ Makefile.ffmpeg 2012-12-12 23:22:48.000000000 -0800
@@ -8,11 +8,11 @@ all: checkout configure compile
copy:
find ffmpeg -name '*.so*' -exec cp {} . \;
- $(HOST)-strip *.so*
+ strip *.so*
compile:
cd ffmpeg; \
- make -j9
+ make
configure:
cd ffmpeg; \
@@ -20,7 +20,6 @@ configure:
LDFLAGS="" \
./configure \
--extra-cflags="-mfpu=vfp -mfloat-abi=$(FLOAT) -mno-apcs-stack-check -mstructure-size-boundary=32 -mno-sched-prolog" \
- --enable-cross-compile \
--enable-shared \
--disable-static \
--arch=arm \
@@ -52,9 +51,7 @@ configure:
--enable-armv6 \
--enable-armvfp \
--enable-hardcoded-tables \
- --disable-runtime-cpudetect \
- --disable-debug \
- --cross-prefix=$(HOST)-
+ --disable-debug
clean:
@rm -rf ffmpeg
@@ -64,6 +61,6 @@ checkout:
cd ffmpeg; git checkout master; git checkout 13a7bd70c8d94c5a46c14e7ac23a170b77eff52e
install:
- cd ffmpeg; make -j9 DESTDIR="$(WORK)/ffmpeg_compiled" install
- $(HOST)-strip ffmpeg_compiled/usr/local/lib/*.so
+ cd ffmpeg; make DESTDIR="$(WORK)/ffmpeg_compiled" install
+ strip ffmpeg_compiled/usr/local/lib/*.so
diff -rupN Makefile.include Makefile.include
--- Makefile.include 2012-12-12 23:20:04.000000000 -0800
+++ Makefile.include 2012-12-12 23:21:28.000000000 -0800
@@ -1,38 +1,9 @@
-USE_BUILDROOT=1
FLOAT=hard
-ifeq ($(USE_BUILDROOT), 1)
-BUILDROOT :=/opt/xbmc-bcm/buildroot
-SDKSTAGE :=$(BUILDROOT)/output/staging
-TARGETFS :=$(BUILDROOT)/output/target
-TOOLCHAIN :=$(BUILDROOT)/output/host/usr/
-HOST :=arm-unknown-linux-gnueabi
-SYSROOT :=$(BUILDROOT)/output/host/usr/arm-unknown-linux-gnueabi/sysroot
-else
-BUILDROOT :=/opt/bcm-rootfs
-SDKSTAGE :=/opt/bcm-rootfs
-TARGETFS :=/opt/bcm-rootfs
-TOOLCHAIN :=/usr/local/bcm-gcc
-HOST :=bcm2708
-SYSROOT :=$(TOOLCHAIN)/arm-bcm2708-linux-gnueabi/sys-root
-endif
-
-JOBS=7
-
-CFLAGS := -isystem$(PREFIX)/include
+CFLAGS := -isystem/include
CXXFLAGS := $(CFLAGS)
CPPFLAGS := $(CFLAGS)
-LDFLAGS := -L$(BUILDROOT)/lib
-LD := $(TOOLCHAIN)/bin/$(HOST)-ld --sysroot=$(SYSROOT)
-CC := $(TOOLCHAIN)/bin/$(HOST)-gcc --sysroot=$(SYSROOT)
-CXX := $(TOOLCHAIN)/bin/$(HOST)-g++ --sysroot=$(SYSROOT)
-OBJDUMP := $(TOOLCHAIN)/bin/$(HOST)-objdump
-RANLIB := $(TOOLCHAIN)/bin/$(HOST)-ranlib
-STRIP := $(TOOLCHAIN)/bin/$(HOST)-strip
-AR := $(TOOLCHAIN)/bin/$(HOST)-ar
-CXXCP := $(CXX) -E
-PATH := $(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(PATH)
CFLAGS += -pipe -mfloat-abi=$(FLOAT) -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -O3 -mstructure-size-boundary=32 -mno-sched-prolog
-LDFLAGS += -L$(SDKSTAGE)/lib -L$(SDKSTAGE)/usr/lib -L$(SDKSTAGE)/opt/vc/lib/
-INCLUDES += -isystem$(SDKSTAGE)/usr/include -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SYSROOT)/usr/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -isystem$(SDKSTAGE)/usr/include/freetype2
+LDFLAGS += -L/lib -L/usr/lib -L/opt/vc/lib/
+INCLUDES += -isystem/usr/include -isystem/opt/vc/include -isystem/usr/include -isystem/opt/vc/include/interface/vcos/pthreads -isystem/usr/include/freetype2
@Synoia
Copy link

Synoia commented Dec 13, 2012

Patch applied without error. Now for the make process. Thanks.

@Synoia
Copy link

Synoia commented Dec 13, 2012

Make ffmpeg fails,

Here's the error line

/usr/bin/ld: error: /tmp/ffconf.uJAGNyla.o uses VFP register arguments, /tmp/ffconf.k7G8kQvZ does not

here's the tail of config.log

check_cc
BEGIN /tmp/ffconf.hVFKpdjP.c
1 int main(void){ return 0; }
END /tmp/ffconf.hVFKpdjP.c
gcc -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -D_LINUX -fPIC -DPIC -D_REENTRANT -D_HAVE_SBRK -D_LARGEFILE64_SOURCE -DHAVE_CMAKE_CONFIG -DHAVE_VMCS_CONFIG -D_REENTRANT -DUSE_VCHIQ_ARM -DVCHI_BULK_ALIGN=1 -DVCHI_BULK_GRANULARITY=1 -DEGL_SERVER_DISPMANX -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__VIDEOCORE4__ -DGRAPHICS_X_VG=1 -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DOMX -DOMX_SKIP64BIT -isystem/usr/include -isystem/opt/vc/include -isystem/usr/include -isystem/opt/vc/include/interface/vcos/pthreads -isystem/usr/include/freetype2 -mfpu=vfp -mfloat-abi=hard -mno-apcs-stack-check -mstructure-size-boundary=32 -mno-sched-prolog -mcpu=arm1176jzf-s -c -o /tmp/ffconf.uJAGNyla.o /tmp/ffconf.hVFKpdjP.c
gcc -o /tmp/ffconf.k7G8kQvZ /tmp/ffconf.uJAGNyla.o
/usr/bin/ld: error: /tmp/ffconf.uJAGNyla.o uses VFP register arguments, /tmp/ffconf.k7G8kQvZ does not
/usr/bin/ld: failed to merge target specific data of file /tmp/ffconf.uJAGNyla.o
collect2: ld returned 1 exit status
C compiler test failed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment