initial buildroot for linux 5.15

This commit is contained in:
Huan.Feng
2021-12-06 14:12:13 +08:00
parent d7767d594e
commit 7b6fc358fa
12736 changed files with 508822 additions and 0 deletions
@@ -0,0 +1,51 @@
From 7ae73da23ad998bd1e63ad213cf7a02e61191951 Mon Sep 17 00:00:00 2001
From: Romain Naour <romain.naour@gmail.com>
Date: Sat, 23 May 2020 19:01:19 +0200
Subject: [PATCH] gn.pro: don't link statically with libstc++
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
While cross-compiling, qt5webengine is building a host tool but
want to link the libstdc++ statically. This requires to install
libstdc++-static package on the host (Fedora package name).
Otherwise the link fail with:
[185/185] LINK gn
FAILED: gn
/usr/bin/g++ -O3 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-strip-all -Wl,--as-needed -static-libstdc++ -pthread -o gn -Wl,--start-group tools/gn/gn_main.o base.a gn_lib.a -Wl,--end-group -ldl
/usr/bin/ld : unable to find -lstdc++
[...]
Project ERROR: GN build error!
Add --no-static-libstdc++ argument to gn.pro to link to
libstdc++.so.6 instead of libstdc++.a.
--no-static-libstdc++ has been added by [1] but it force
linking statically by default.
[1] https://github.com/qt/qtwebengine-chromium/commit/cfab9198a9917f42cf08b1caf84ab9b71aac1911#diff-905c8f054808213577c0a92d1b704615
Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
src/buildtools/gn.pro | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro
index 033202e6..5dd8e241 100644
--- a/src/buildtools/gn.pro
+++ b/src/buildtools/gn.pro
@@ -20,7 +20,8 @@ build_pass|!debug_and_release {
gn_gen_args = --no-last-commit-position --out-path $$out_path \
--cc \"$$which($$QMAKE_CC)\" --cxx \"$$which($$QMAKE_CXX)\" \
- --ld \"$$which($$QMAKE_LINK)\"
+ --ld \"$$which($$QMAKE_LINK)\" \
+ --no-static-libstdc++
msvc:!clang_cl: gn_gen_args += --use-lto
--
2.25.4
+98
View File
@@ -0,0 +1,98 @@
config BR2_PACKAGE_QT5WEBENGINE_ARCH_SUPPORTS
bool
default y if BR2_aarch64 || BR2_arm || \
BR2_i386 || BR2_x86_64 || \
BR2_mips || BR2_mips64
# -m32 flag is used for 32bit builds and host tools have
# limited architecture support
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative
depends on !BR2_BINFMT_FLAT # qt5base-icu
depends on BR2_USE_MMU # libglib2, qt5base-dbus
comment "qt5webengine needs udev /dev management and a glibc toolchain w/ gcc >= 4.9, host gcc >= 4.9, threads, wchar"
depends on BR2_PACKAGE_QT5WEBENGINE_ARCH_SUPPORTS
depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_USES_GLIBC || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
!BR2_HOST_GCC_AT_LEAST_4_9 || \
!BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
comment "qt5webengine needs an OpenGL and EGL-capable backend"
depends on BR2_PACKAGE_QT5WEBENGINE_ARCH_SUPPORTS
depends on !BR2_PACKAGE_QT5_GL_AVAILABLE || !BR2_PACKAGE_HAS_LIBEGL
config BR2_PACKAGE_QT5WEBENGINE
bool "qt5webengine"
depends on BR2_PACKAGE_QT5WEBENGINE_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_USES_GLIBC # execinfo.h, mallinfo
depends on BR2_HOST_GCC_AT_LEAST_4_9 # qt5base-icu
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # qt5base-icu
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2, libvpx, qt5base-dbus
depends on BR2_USE_WCHAR # libglib2
depends on BR2_PACKAGE_QT5_GL_AVAILABLE # qt5declarative, qt5base-eglfs
depends on BR2_PACKAGE_HAS_LIBEGL # qt5base-eglfs
depends on BR2_PACKAGE_HAS_UDEV
# v8 (a chromium 3rd-party) compiles its internal host-tools with the
# same word size as the target. For 32-bits targets, it adds the -m32
# flag (for 64-bits, it adds the -m64 flag).
# https://github.com/v8/v8/blob/5.6.326.55/gypfiles/toolchain.gypi#L1036-L1037
select BR2_HOSTARCH_NEEDS_IA32_COMPILER if !BR2_ARCH_IS_64 # v8/chromium
select BR2_PACKAGE_FFMPEG
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_LIBNSS
select BR2_PACKAGE_LIBVPX
select BR2_PACKAGE_LIBXKBCOMMON
select BR2_PACKAGE_OPUS
select BR2_PACKAGE_WEBP
select BR2_PACKAGE_WEBP_DEMUX
select BR2_PACKAGE_QT5BASE_DBUS
select BR2_PACKAGE_QT5BASE_EGLFS
select BR2_PACKAGE_QT5BASE_FONTCONFIG
select BR2_PACKAGE_QT5BASE_ICU
select BR2_PACKAGE_QT5BASE_GUI
select BR2_PACKAGE_QT5BASE_WIDGETS
select BR2_PACKAGE_QT5DECLARATIVE
select BR2_PACKAGE_QT5DECLARATIVE_QUICK
select BR2_PACKAGE_QT5QUICKCONTROLS
select BR2_PACKAGE_QT5QUICKCONTROLS2
select BR2_PACKAGE_QT5SVG if BR2_PACKAGE_QT5BASE_EXAMPLES
select BR2_PACKAGE_QT5WEBCHANNEL
select BR2_PACKAGE_XLIB_LIBXCOMPOSITE if BR2_PACKAGE_QT5BASE_XCB
select BR2_PACKAGE_XLIB_LIBXCURSOR if BR2_PACKAGE_QT5BASE_XCB
select BR2_PACKAGE_XLIB_LIBXI if BR2_PACKAGE_QT5BASE_XCB
select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_QT5BASE_XCB
select BR2_PACKAGE_XLIB_LIBXSCRNSAVER if BR2_PACKAGE_QT5BASE_XCB
select BR2_PACKAGE_XLIB_LIBXTST if BR2_PACKAGE_QT5BASE_XCB
help
The Qt WebEngine module provides a web browser engine that
makes it easy to embed content from the World Wide Web into
your Qt application.
Qt WebEngine provides C++ classes and QML types for rendering
HTML, XHTML, and SVG documents, styled using Cascading Style
Sheets (CSS) and scripted with JavaScript. HTML documents can
be made fully editable by the user through the use of the
contenteditable attribute on HTML elements.
http://doc.qt.io/qt-5/qtwebengine-index.html
if BR2_PACKAGE_QT5WEBENGINE
config BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS
bool "proprietary codecs"
help
Qt WebEngine supports the MPEG-4 Part 14 (MP4) file format,
which includes required proprietary audio and video codecs,
such as H.264 and MPEG layer-3 (MP3).
config BR2_PACKAGE_QT5WEBENGINE_ALSA
bool "alsa"
select BR2_PACKAGE_ALSA_LIB
select BR2_PACKAGE_ALSA_LIB_MIXER
select BR2_PACKAGE_ALSA_LIB_RAWMIDI
select BR2_PACKAGE_ALSA_LIB_HWDEP
select BR2_PACKAGE_ALSA_LIB_SEQ
help
Enable ALSA support.
endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,6 @@
#!/bin/sh
PKG_CONFIG_SYSROOT_DIR="/" \
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
PKG_CONFIG_LIBDIR="@HOST_DIR@/lib/pkgconfig:@HOST_DIR@/share/pkgconfig" \
exec @HOST_DIR@/bin/pkgconf "$@"
File diff suppressed because it is too large Load Diff
+66
View File
@@ -0,0 +1,66 @@
################################################################################
#
# qt5webengine
#
################################################################################
QT5WEBENGINE_VERSION = $(QT5_VERSION)
QT5WEBENGINE_SITE = $(QT5_SITE)
QT5WEBENGINE_SOURCE = qtwebengine-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5WEBENGINE_VERSION).tar.xz
QT5WEBENGINE_DEPENDENCIES = ffmpeg libglib2 libvpx libxkbcommon opus webp \
qt5declarative qt5webchannel host-bison host-flex host-gperf \
host-pkgconf host-python
QT5WEBENGINE_INSTALL_STAGING = YES
include package/qt5/qt5webengine/chromium-latest.inc
QT5WEBENGINE_LICENSE = GPL-2.0 or LGPL-3.0 or GPL-3.0 or GPL-3.0 with exception
QT5WEBENGINE_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPL3 LICENSE.GPL3-EXCEPT \
LICENSE.GPLv3 LICENSE.LGPL3 $(QT5WEBENGINE_CHROMIUM_LICENSE_FILES)
ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y)
QT5WEBENGINE_DEPENDENCIES += qt5svg
endif
ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y)
QT5WEBENGINE_DEPENDENCIES += xlib_libXScrnSaver xlib_libXcomposite \
xlib_libXcursor xlib_libXi xlib_libXrandr xlib_libXtst
endif
QT5WEBENGINE_DEPENDENCIES += host-libpng host-libnss libnss
QT5WEBENGINE_CONF_OPTS += WEBENGINE_CONFIG+=use_system_ffmpeg
ifeq ($(BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS),y)
QT5WEBENGINE_CONF_OPTS += WEBENGINE_CONFIG+=use_proprietary_codecs
endif
ifeq ($(BR2_PACKAGE_QT5WEBENGINE_ALSA),y)
QT5WEBENGINE_DEPENDENCIES += alsa-lib
else
QT5WEBENGINE_CONF_OPTS += QT_CONFIG-=alsa
endif
# QtWebengine's build system uses python, but only supports python2. We work
# around this by forcing python2 early in the PATH, via a python->python2
# symlink.
QT5WEBENGINE_ENV = PATH=$(@D)/host-bin:$(BR_PATH)
define QT5WEBENGINE_PYTHON2_SYMLINK
mkdir -p $(@D)/host-bin
ln -sf $(HOST_DIR)/bin/python2 $(@D)/host-bin/python
endef
QT5WEBENGINE_PRE_CONFIGURE_HOOKS += QT5WEBENGINE_PYTHON2_SYMLINK
QT5WEBENGINE_ENV += NINJAFLAGS="-j$(PARALLEL_JOBS)"
define QT5WEBENGINE_CREATE_HOST_PKG_CONFIG
sed s%@HOST_DIR@%$(HOST_DIR)%g $(QT5WEBENGINE_PKGDIR)/host-pkg-config.in > $(@D)/host-bin/host-pkg-config
chmod +x $(@D)/host-bin/host-pkg-config
endef
QT5WEBENGINE_PRE_CONFIGURE_HOOKS += QT5WEBENGINE_CREATE_HOST_PKG_CONFIG
QT5WEBENGINE_ENV += GN_PKG_CONFIG_HOST=$(@D)/host-bin/host-pkg-config
QT5WEBENGINE_CONF_ENV = $(QT5WEBENGINE_ENV)
QT5WEBENGINE_MAKE_ENV = $(QT5WEBENGINE_ENV)
$(eval $(qmake-package))