diff --git a/rpi-userland/Makefile b/rpi-userland/Makefile new file mode 100644 index 000000000..331be057a --- /dev/null +++ b/rpi-userland/Makefile @@ -0,0 +1,50 @@ +# +# Copyright (C) 2012 OpenWrt.org +# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) for OpenMPTCProuter +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk + +PKG_NAME:=rpi-userland +PKG_VERSION:=20191107 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/raspberrypi/userland.git +PKG_SOURCE_VERSION:=666d281a7a5e374975ec9a20068f371599b0e6f8 + +PKG_BUILD_DEPENDS:=zlib +CMAKE_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +define Package/rpi-userland + SECTION:=rpi + CATEGORY:=Raspberry Pi + URL:=https://github.com/raspberrypi/userland + DEPENDS:=+librt + TITLE:=rpi-userland + MENU:=1 +endef + +define Package/rpi-userland/description + Raspberry PI userland libraries for interfaces EGL, mmal, GLESv2, + vcos, openmaxil, vchiq_arm, bcm_host, WCF and OpenVG + with Wayland EGL support. +endef + +#TARGET_CFLAGS += -Wno-error + +define Package/rpi-userland/install + $(INSTALL_DIR) $(1)/usr/lib \ + $(1)/usr/bin \ + $(1)/usr/sbin \ + $(1)/usr/share/install + $(CP) $(PKG_INSTALL_DIR)/opt/vc/lib/*.so* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/opt/vc/bin/* $(1)/usr/bin/ +endef + +$(eval $(call BuildPackage,rpi-userland)) diff --git a/rpi-userland/files/arm-linux-openwrt.cmake b/rpi-userland/files/arm-linux-openwrt.cmake new file mode 100644 index 000000000..3ab4d0b74 --- /dev/null +++ b/rpi-userland/files/arm-linux-openwrt.cmake @@ -0,0 +1,20 @@ +# +# CMake defines to cross-compile to ARM/Linux on BCM2708 using glibc. +# + +SET(CMAKE_SYSTEM_NAME Linux) +SET(CMAKE_C_COMPILER arm-openwrt-linux-uclibcgnueabi-gcc) +SET(CMAKE_CXX_COMPILER arm-openwrt-linux-uclibcgnueabi-g++) +SET(CMAKE_ASM_COMPILER arm-openwrt-linux-uclibcgnueabi-gcc) +SET(CMAKE_SYSTEM_PROCESSOR arm) + +add_definitions("-mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=soft") + +# rdynamic means the backtrace should work +IF (CMAKE_BUILD_TYPE MATCHES "Debug") + add_definitions(-rdynamic) +ENDIF() + +# avoids annoying and pointless warnings from gcc +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -U_FORTIFY_SOURCE") +SET(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -c") diff --git a/rpi-userland/patches/cmakelist.patch b/rpi-userland/patches/cmakelist.patch new file mode 100644 index 000000000..2182ccdde --- /dev/null +++ b/rpi-userland/patches/cmakelist.patch @@ -0,0 +1,39 @@ +--- a/CMakeLists.txt 2019-11-09 08:32:36.901890117 +0100 ++++ b/CMakeLists.txt 2019-11-09 08:35:11.054918685 +0100 +@@ -32,8 +32,8 @@ + include_directories(interface/vcos/pthreads) + include_directories(interface/vmcs_host/linux) + include_directories(interface/vmcs_host) +-include_directories(interface/vmcs_host/khronos) +-include_directories(interface/khronos/include) ++#include_directories(interface/vmcs_host/khronos) ++#include_directories(interface/khronos/include) + include_directories(${PROJECT_BINARY_DIR}) + include_directories(interface/vchiq_arm) + #include_directories(tools/inet_transport) +@@ -66,9 +66,9 @@ + add_subdirectory(interface/vcos) + add_subdirectory(interface/vmcs_host) + add_subdirectory(interface/vchiq_arm) +-if(NOT ARM64) +- add_subdirectory(interface/khronos) +-endif() ++#if(NOT ARM64) ++# add_subdirectory(interface/khronos) ++#endif() + + #add_subdirectory(opensrc/tools/lua) + if(BUILD_MMAL) +@@ -82,9 +82,9 @@ + add_subdirectory(host_applications/android/apps/vidtex) + endif(BUILD_MMAL_APPS) + +-if(NOT ARM64) +- add_subdirectory(middleware/openmaxil) +-endif() ++#if(NOT ARM64) ++# add_subdirectory(middleware/openmaxil) ++#endif() + + # 3d demo code + #if(NOT ANDROID) diff --git a/rpi-userland/patches/disable_mmal.patch b/rpi-userland/patches/disable_mmal.patch new file mode 100644 index 000000000..ee5d894e7 --- /dev/null +++ b/rpi-userland/patches/disable_mmal.patch @@ -0,0 +1,38 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fe67fc8..fa2d436 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -8,13 +8,9 @@ SET(PROJECT_VER_PATCH 0) + SET(PROJECT_VER "${PROJECT_VER_MAJOR}.${PROJECT_VER_MINOR}.${PROJECT_VER_PATCH}") + SET(PROJECT_APIVER "${PROJECT_VER}") + +-if(ARM64) +- set(BUILD_MMAL FALSE) +- set(BUILD_MMAL_APPS FALSE) +-else() +- set(BUILD_MMAL TRUE) +- set(BUILD_MMAL_APPS TRUE) +-endif() ++set(BUILD_MMAL FALSE) ++set(BUILD_MMAL_APPS FALSE) ++ + set(vmcs_root ${PROJECT_SOURCE_DIR}) + get_filename_component(VIDEOCORE_ROOT . ABSOLUTE) + +@@ -71,11 +67,11 @@ if(NOT ARM64) + endif() + + #add_subdirectory(opensrc/tools/lua) +-if(BUILD_MMAL) +- include_directories(interface/mmal) +- add_subdirectory(interface/mmal) +- add_subdirectory(containers) +-endif() ++#if(BUILD_MMAL) ++# include_directories(interface/mmal) ++# add_subdirectory(interface/mmal) ++# add_subdirectory(containers) ++#endif() + + # VidTex supports Android and Linux + if(BUILD_MMAL_APPS) diff --git a/rpi-userland/patches/disable_raspicam.patch b/rpi-userland/patches/disable_raspicam.patch new file mode 100644 index 000000000..c32bf7864 --- /dev/null +++ b/rpi-userland/patches/disable_raspicam.patch @@ -0,0 +1,16 @@ +diff --git a/host_applications/linux/CMakeLists.txt b/host_applications/linux/CMakeLists.txt +index 928b637..d70c361 100644 +--- a/host_applications/linux/CMakeLists.txt ++++ b/host_applications/linux/CMakeLists.txt +@@ -4,11 +4,6 @@ add_subdirectory(libs/bcm_host) + add_subdirectory(apps/gencmd) + add_subdirectory(apps/tvservice) + add_subdirectory(apps/vcmailbox) +-if(NOT ARM64) +- add_subdirectory(apps/raspicam) +- add_subdirectory(libs/sm) +- add_subdirectory(apps/smem) +-endif() + add_subdirectory(libs/debug_sym) + add_subdirectory(apps/dtoverlay) + add_subdirectory(apps/dtmerge) diff --git a/rpi-userland/patches/remove_Werror.patch b/rpi-userland/patches/remove_Werror.patch new file mode 100644 index 000000000..1d5956101 --- /dev/null +++ b/rpi-userland/patches/remove_Werror.patch @@ -0,0 +1,142 @@ +diff --git a/host_applications/android/apps/vidtex/CMakeLists.txt b/host_applications/android/apps/vidtex/CMakeLists.txt +index 6d66d69..06a3192 100644 +--- a/host_applications/android/apps/vidtex/CMakeLists.txt ++++ b/host_applications/android/apps/vidtex/CMakeLists.txt +@@ -1,6 +1,6 @@ + cmake_minimum_required(VERSION 2.8) + +-SET(COMPILE_DEFINITIONS -Werror -Wall) ++SET(COMPILE_DEFINITIONS -Wall) + + # Set --no-as-needed to stop the linker discarding mmal_vc_client + # as it can't see that the constructor registers a load of functionality +diff --git a/host_applications/linux/apps/dtmerge/CMakeLists.txt b/host_applications/linux/apps/dtmerge/CMakeLists.txt +index d173697..f37345f 100755 +--- a/host_applications/linux/apps/dtmerge/CMakeLists.txt ++++ b/host_applications/linux/apps/dtmerge/CMakeLists.txt +@@ -4,7 +4,7 @@ get_filename_component (VIDEOCORE_ROOT ../../../.. ABSOLUTE) + include (${VIDEOCORE_ROOT}/makefiles/cmake/global_settings.cmake) + + if (NOT WIN32) +- add_definitions(-Wall -Werror) ++ add_definitions(-Wall) + endif () + + include_directories ( +diff --git a/host_applications/linux/apps/dtoverlay/CMakeLists.txt b/host_applications/linux/apps/dtoverlay/CMakeLists.txt +index dd48d83..83613ab 100755 +--- a/host_applications/linux/apps/dtoverlay/CMakeLists.txt ++++ b/host_applications/linux/apps/dtoverlay/CMakeLists.txt +@@ -4,7 +4,7 @@ get_filename_component (VIDEOCORE_ROOT ../../../.. ABSOLUTE) + include (${VIDEOCORE_ROOT}/makefiles/cmake/global_settings.cmake) + + if (NOT WIN32) +- add_definitions(-Wall -Werror) ++ add_definitions(-Wall) + endif () + + include_directories ( +diff --git a/host_applications/linux/apps/gencmd/CMakeLists.txt b/host_applications/linux/apps/gencmd/CMakeLists.txt +index f95d1a1..02e09fe 100644 +--- a/host_applications/linux/apps/gencmd/CMakeLists.txt ++++ b/host_applications/linux/apps/gencmd/CMakeLists.txt +@@ -4,7 +4,7 @@ if (WIN32) + set(VCOS_PLATFORM win32) + else () + set(VCOS_PLATFORM pthreads) +- add_definitions(-Wall -Werror) ++ add_definitions(-Wall) + endif () + + include_directories( ../../../.. +diff --git a/host_applications/linux/apps/raspicam/CMakeLists.txt b/host_applications/linux/apps/raspicam/CMakeLists.txt +index f7db21e..d34dd11 100644 +--- a/host_applications/linux/apps/raspicam/CMakeLists.txt ++++ b/host_applications/linux/apps/raspicam/CMakeLists.txt +@@ -1,7 +1,7 @@ + + # raspistill/raspivid/raspiyuv + +-SET(COMPILE_DEFINITIONS -Werror) ++SET(COMPILE_DEFINITIONS) + + # Set --no-as-needed to stop the linker discarding mmal_vc_client + # as it can't see that the constructor registers a load of functionality +diff --git a/host_applications/linux/apps/smem/CMakeLists.txt b/host_applications/linux/apps/smem/CMakeLists.txt +index 0fa8328..b840917 100644 +--- a/host_applications/linux/apps/smem/CMakeLists.txt ++++ b/host_applications/linux/apps/smem/CMakeLists.txt +@@ -4,7 +4,7 @@ get_filename_component (VIDEOCORE_ROOT ../../../.. ABSOLUTE) + include (${VIDEOCORE_ROOT}/makefiles/cmake/global_settings.cmake) + + if (NOT WIN32) +- add_definitions(-Wall -Werror) ++ add_definitions(-Wall) + endif () + + include_directories ( +diff --git a/host_applications/linux/libs/bcm_host/CMakeLists.txt b/host_applications/linux/libs/bcm_host/CMakeLists.txt +index a863cb6..5d7b339 100644 +--- a/host_applications/linux/libs/bcm_host/CMakeLists.txt ++++ b/host_applications/linux/libs/bcm_host/CMakeLists.txt +@@ -3,7 +3,7 @@ if (WIN32) + set(VCOS_PLATFORM win32) + else () + set(VCOS_PLATFORM pthreads) +- add_definitions(-Wall -Werror) ++ add_definitions(-Wall) + endif () + + # set this as we want all the source of vchostif to be available in libbcm_host +diff --git a/host_applications/linux/libs/sm/CMakeLists.txt b/host_applications/linux/libs/sm/CMakeLists.txt +index 5ce5aca..c41d729 100644 +--- a/host_applications/linux/libs/sm/CMakeLists.txt ++++ b/host_applications/linux/libs/sm/CMakeLists.txt +@@ -3,7 +3,7 @@ if (WIN32) + set(VCOS_PLATFORM win32) + else () + set(VCOS_PLATFORM pthreads) +- add_definitions(-Wall -Werror) ++ add_definitions(-Wall) + endif () + + include_directories( ../../../.. +diff --git a/interface/mmal/CMakeLists.txt b/interface/mmal/CMakeLists.txt +index 46f149d..c5c1642 100644 +--- a/interface/mmal/CMakeLists.txt ++++ b/interface/mmal/CMakeLists.txt +@@ -3,7 +3,7 @@ if (NOT DEFINED LIBRARY_TYPE) + set(LIBRARY_TYPE SHARED) + endif (NOT DEFINED LIBRARY_TYPE) + +-add_definitions(-Wall -Werror) ++add_definitions(-Wall) + + add_library(mmal SHARED util/mmal_util.c) + +diff --git a/interface/vcos/CMakeLists.txt b/interface/vcos/CMakeLists.txt +index 23a8d72..8e72b18 100644 +--- a/interface/vcos/CMakeLists.txt ++++ b/interface/vcos/CMakeLists.txt +@@ -43,7 +43,7 @@ foreach (header ${HEADERS}) + endforeach () + + if (CMAKE_COMPILER_IS_GNUCC) +- add_definitions (-ggdb -Werror -Wall) ++ add_definitions (-ggdb -Wall) + endif () + + if (CMAKE_COMPILER_2005) +diff --git a/interface/vcos/pthreads/CMakeLists.txt b/interface/vcos/pthreads/CMakeLists.txt +index 1d81ca3..38d4813 100644 +--- a/interface/vcos/pthreads/CMakeLists.txt ++++ b/interface/vcos/pthreads/CMakeLists.txt +@@ -1,7 +1,7 @@ + # MSVC5 does not fully support C99, enabling declaration-after-statement + # warnings allows a common MSVC5 build error to be detected in Linux builds. + if (CMAKE_COMPILER_IS_GNUCC) +- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -Wdeclaration-after-statement") ++ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wdeclaration-after-statement") + add_definitions (-D_GNU_SOURCE) + endif () +