initial buildroot for linux 5.15
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
@@ -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))
|
||||
Reference in New Issue
Block a user