From d595d3ea861ec2ed5f5587999a9036304ce85d7f Mon Sep 17 00:00:00 2001 From: "oleg.korshul" Date: Sat, 20 Dec 2025 23:42:01 +0300 Subject: [PATCH 1/6] Refactoring sysroots --- Common/base.pri | 59 +++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/Common/base.pri b/Common/base.pri index 1e69488952..9767fba052 100644 --- a/Common/base.pri +++ b/Common/base.pri @@ -203,23 +203,22 @@ core_linux { DEFINES += LINUX _LINUX QMAKE_CUSTOM_SYSROOT = $$(QMAKE_CUSTOM_SYSROOT) - QMAKE_CUSTOM_SYSROOT_BIN = $$(QMAKE_CUSTOM_SYSROOT)/usr/bin/ + !isEmpty(QMAKE_CUSTOM_SYSROOT) { + CONFIG += core_linix_use_sysroot + message("using custom sysroot $$QMAKE_CUSTOM_SYSROOT") - core_linux_64 { - !linux_arm64 { # x86_64 - QMAKE_CUSTOM_SYSROOT_LIB = $$(QMAKE_CUSTOM_SYSROOT)/usr/lib/x86_64-linux-gnu - !isEmpty(QMAKE_CUSTOM_SYSROOT) { - message("using custom sysroot $$QMAKE_CUSTOM_SYSROOT") - QMAKE_CC = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "gcc") - QMAKE_CXX = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") - QMAKE_LINK = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") - QMAKE_LINK_SHLIB = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") + QMAKE_CUSTOM_SYSROOT_BIN = $$(QMAKE_CUSTOM_SYSROOT)/usr/bin/ - QMAKE_CFLAGS += --sysroot $$QMAKE_CUSTOM_SYSROOT - QMAKE_CXXFLAGS += --sysroot $$QMAKE_CUSTOM_SYSROOT -std=gnu++1y - QMAKE_LFLAGS += --sysroot $$QMAKE_CUSTOM_SYSROOT - } - } + QMAKE_CC = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "gcc") + QMAKE_CXX = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") + QMAKE_LINK = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") + QMAKE_LINK_SHLIB = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") + + QMAKE_CFLAGS += --sysroot=$$QMAKE_CUSTOM_SYSROOT + QMAKE_CXXFLAGS += --sysroot=$$QMAKE_CUSTOM_SYSROOT -std=gnu++1y + QMAKE_LFLAGS += --sysroot=$$QMAKE_CUSTOM_SYSROOT + + QMAKE_INCDIR += $$QMAKE_CUSTOM_SYSROOT/usr/include } } @@ -344,24 +343,26 @@ linux_arm64 { CORE_BUILDS_PLATFORM_PREFIX = linux_arm64 DEFINES += _ARM_ALIGN_ - ARM64_TOOLCHAIN_BIN = $$(ARM64_TOOLCHAIN_BIN) - ARM64_TOOLCHAIN_BIN_PREFIX = $$(ARM64_TOOLCHAIN_BIN_PREFIX) + !core_linix_use_sysroot { + ARM64_TOOLCHAIN_BIN = $$(ARM64_TOOLCHAIN_BIN) + ARM64_TOOLCHAIN_BIN_PREFIX = $$(ARM64_TOOLCHAIN_BIN_PREFIX) - !isEmpty(ARM64_TOOLCHAIN_BIN){ - !isEmpty(ARM64_TOOLCHAIN_BIN_PREFIX){ - ARM64_TOOLCHAIN_BIN_FULL = $$ARM64_TOOLCHAIN_BIN/$$ARM64_TOOLCHAIN_BIN_PREFIX - message("using arm64 toolchain $$ARM64_TOOLCHAIN_BIN") + !isEmpty(ARM64_TOOLCHAIN_BIN){ + !isEmpty(ARM64_TOOLCHAIN_BIN_PREFIX){ + ARM64_TOOLCHAIN_BIN_FULL = $$ARM64_TOOLCHAIN_BIN/$$ARM64_TOOLCHAIN_BIN_PREFIX + message("using arm64 toolchain $$ARM64_TOOLCHAIN_BIN") - QMAKE_CC = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "gcc") - QMAKE_CXX = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "g++") - QMAKE_LINK = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "g++") - QMAKE_LINK_SHLIB = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "g++") + QMAKE_CC = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "gcc") + QMAKE_CXX = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "g++") + QMAKE_LINK = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "g++") + QMAKE_LINK_SHLIB = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "g++") - QMAKE_AR = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "ar cqs") - QMAKE_OBJCOPY = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "objcopy") - QMAKE_NM = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "nm -P") - QMAKE_STRIP = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "strip") + QMAKE_AR = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "ar cqs") + QMAKE_OBJCOPY = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "objcopy") + QMAKE_NM = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "nm -P") + QMAKE_STRIP = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "strip") + } } } } From d908cb668e4c4e17d622d8c908d7d0c3acfc764b Mon Sep 17 00:00:00 2001 From: "oleg.korshul" Date: Mon, 22 Dec 2025 05:55:07 +0300 Subject: [PATCH 2/6] Refactoring sysroots --- Common/3dParty/v8_89/.gitignore | 4 +-- Common/base.pri | 55 ++++++++++++++++----------------- 2 files changed, 28 insertions(+), 31 deletions(-) diff --git a/Common/3dParty/v8_89/.gitignore b/Common/3dParty/v8_89/.gitignore index b5271ec090..8865629721 100644 --- a/Common/3dParty/v8_89/.gitignore +++ b/Common/3dParty/v8_89/.gitignore @@ -1,6 +1,6 @@ .cipd -.gclient -.gclient_entries +.gclient* +.gcs* v8 depot_tools v8.data diff --git a/Common/base.pri b/Common/base.pri index 9767fba052..114cecebcb 100644 --- a/Common/base.pri +++ b/Common/base.pri @@ -207,17 +207,37 @@ core_linux { CONFIG += core_linix_use_sysroot message("using custom sysroot $$QMAKE_CUSTOM_SYSROOT") - QMAKE_CUSTOM_SYSROOT_BIN = $$(QMAKE_CUSTOM_SYSROOT)/usr/bin/ + QMAKE_CUSTOM_SYSROOT_BIN = $$(QMAKE_CUSTOM_SYSROOT_BIN) + isEmpty(QMAKE_CUSTOM_SYSROOT_BIN) { + QMAKE_CUSTOM_SYSROOT_BIN = $$QMAKE_CUSTOM_SYSROOT/usr/bin + } + QMAKE_CUSTOM_SYSROOT_BIN = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , /) - QMAKE_CC = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "gcc") - QMAKE_CXX = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") - QMAKE_LINK = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") - QMAKE_LINK_SHLIB = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") + contains(QMAKE_CUSTOM_SYSROOT_BIN, $$QMAKE_CUSTOM_SYSROOT) { + message("Using compilers from same sysroot") + QMAKE_CC = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "gcc") + QMAKE_CXX = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") + QMAKE_LINK = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") + QMAKE_LINK_SHLIB = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "g++") + QMAKE_AR = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "ar") cqs + QMAKE_RANLIB = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "ranlib") + QMAKE_STRIP = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "strip") + } else { + message("Using cross-compilers from host sysroot") + QMAKE_CC = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "aarch64-linux-gnu-gcc") + QMAKE_CXX = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "aarch64-linux-gnu-g++") + QMAKE_LINK = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "aarch64-linux-gnu-g++") + QMAKE_LINK_SHLIB = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "aarch64-linux-gnu-g++") + QMAKE_AR = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "aarch64-linux-gnu-ar") cqs + QMAKE_RANLIB = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "aarch64-linux-gnu-ranlib") + QMAKE_STRIP = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "aarch64-linux-gnu-strip") + QMAKE_OBJCOPY = $$join(QMAKE_CUSTOM_SYSROOT_BIN, , , "aarch64-linux-gnu-objcopy") + } QMAKE_CFLAGS += --sysroot=$$QMAKE_CUSTOM_SYSROOT QMAKE_CXXFLAGS += --sysroot=$$QMAKE_CUSTOM_SYSROOT -std=gnu++1y - QMAKE_LFLAGS += --sysroot=$$QMAKE_CUSTOM_SYSROOT + QMAKE_LFLAGS += --sysroot=$$QMAKE_CUSTOM_SYSROOT QMAKE_INCDIR += $$QMAKE_CUSTOM_SYSROOT/usr/include } } @@ -342,29 +362,6 @@ core_linux_arm { linux_arm64 { CORE_BUILDS_PLATFORM_PREFIX = linux_arm64 DEFINES += _ARM_ALIGN_ - - !core_linix_use_sysroot { - ARM64_TOOLCHAIN_BIN = $$(ARM64_TOOLCHAIN_BIN) - ARM64_TOOLCHAIN_BIN_PREFIX = $$(ARM64_TOOLCHAIN_BIN_PREFIX) - - !isEmpty(ARM64_TOOLCHAIN_BIN){ - !isEmpty(ARM64_TOOLCHAIN_BIN_PREFIX){ - ARM64_TOOLCHAIN_BIN_FULL = $$ARM64_TOOLCHAIN_BIN/$$ARM64_TOOLCHAIN_BIN_PREFIX - message("using arm64 toolchain $$ARM64_TOOLCHAIN_BIN") - - QMAKE_CC = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "gcc") - QMAKE_CXX = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "g++") - QMAKE_LINK = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "g++") - QMAKE_LINK_SHLIB = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "g++") - - QMAKE_AR = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "ar cqs") - QMAKE_OBJCOPY = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "objcopy") - QMAKE_NM = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "nm -P") - QMAKE_STRIP = $$join(ARM64_TOOLCHAIN_BIN_FULL, , , "strip") - - } - } - } } core_ios { CORE_BUILDS_PLATFORM_PREFIX = ios From e3272a5e919bd53c571fb0942e992faf4f1e63d1 Mon Sep 17 00:00:00 2001 From: Oleg Korshul Date: Thu, 25 Dec 2025 21:50:17 +0300 Subject: [PATCH 3/6] Add strip binaries --- Common/base.pri | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Common/base.pri b/Common/base.pri index 114cecebcb..3f574efd21 100644 --- a/Common/base.pri +++ b/Common/base.pri @@ -259,6 +259,7 @@ core_mac { DEFINES += LINUX _LINUX MAC _MAC QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.11 QMAKE_LFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH + QMAKE_LFLAGS_RELEASE += -Wl,-s # xcode15 add new linker greaterThan(QMAKE_XCODE_VERSION, 1499) { @@ -317,6 +318,7 @@ core_linux { QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN\'" QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN/system\'" QMAKE_LFLAGS += -Wl,--disable-new-dtags + QMAKE_LFLAGS_RELEASE += -Wl,-s !disable_rpath_addon { RUN_PATH_ADDON = $$(RUN_PATH_ADDON) From f2da15defa4a52d4efd6832a6f44a2ef892372ef Mon Sep 17 00:00:00 2001 From: Oleg Korshul Date: Thu, 25 Dec 2025 23:01:52 +0300 Subject: [PATCH 4/6] Fix previous commit --- Common/base.pri | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Common/base.pri b/Common/base.pri index 3f574efd21..a40c2c7db0 100644 --- a/Common/base.pri +++ b/Common/base.pri @@ -318,7 +318,6 @@ core_linux { QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN\'" QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN/system\'" QMAKE_LFLAGS += -Wl,--disable-new-dtags - QMAKE_LFLAGS_RELEASE += -Wl,-s !disable_rpath_addon { RUN_PATH_ADDON = $$(RUN_PATH_ADDON) @@ -333,6 +332,10 @@ core_linux { core_linux { equals(TEMPLATE, app):CONFIG += core_static_link_libstd plugin:CONFIG += core_static_link_libstd + + + equals(TEMPLATE, app):QMAKE_LFLAGS_RELEASE += -Wl,-s + plugin:QMAKE_LFLAGS_RELEASE += -Wl,-s } core_win_32 { From 0ef0518f1affe2433145fa0dfc325a148aa5089b Mon Sep 17 00:00:00 2001 From: Oleg Korshul Date: Thu, 25 Dec 2025 23:11:46 +0300 Subject: [PATCH 5/6] Remove old linker flag on macos --- Common/base.pri | 1 - 1 file changed, 1 deletion(-) diff --git a/Common/base.pri b/Common/base.pri index a40c2c7db0..0d9be924d7 100644 --- a/Common/base.pri +++ b/Common/base.pri @@ -259,7 +259,6 @@ core_mac { DEFINES += LINUX _LINUX MAC _MAC QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.11 QMAKE_LFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH - QMAKE_LFLAGS_RELEASE += -Wl,-s # xcode15 add new linker greaterThan(QMAKE_XCODE_VERSION, 1499) { From d8dc82ea35baa935051f26ffcc563c9a3a54ec93 Mon Sep 17 00:00:00 2001 From: "Oleg.Korshul" Date: Fri, 26 Dec 2025 01:18:06 +0300 Subject: [PATCH 6/6] Strip binaries on macos --- Common/base.pri | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Common/base.pri b/Common/base.pri index 0d9be924d7..8e0d41e960 100644 --- a/Common/base.pri +++ b/Common/base.pri @@ -273,6 +273,11 @@ core_mac { QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.12 !apple_silicon:QMAKE_APPLE_DEVICE_ARCHS = x86_64 } + + !core_debug { + equals(TEMPLATE, app):QMAKE_POST_LINK += strip $(TARGET) + # TODO: plugin! + } } core_linux_clang {