Skip to content

Commit c1ae726

Browse files
committed
guix: More thoroughly control native toolchain
1 parent 3974112 commit c1ae726

File tree

3 files changed

+41
-5
lines changed

3 files changed

+41
-5
lines changed

contrib/guix/libexec/build.sh

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,34 @@ store_path() {
5454
# Set environment variables to point the NATIVE toolchain to the right
5555
# includes/libs
5656
NATIVE_GCC="$(store_path gcc-toolchain)"
57-
export LIBRARY_PATH="${NATIVE_GCC}/lib:${NATIVE_GCC}/lib64"
58-
export CPATH="${NATIVE_GCC}/include"
57+
58+
unset LIBRARY_PATH
59+
unset CPATH
5960
unset C_INCLUDE_PATH
6061
unset CPLUS_INCLUDE_PATH
62+
unset OBJC_INCLUDE_PATH
63+
unset OBJCPLUS_INCLUDE_PATH
64+
65+
export LIBRARY_PATH="${NATIVE_GCC}/lib:${NATIVE_GCC}/lib64"
66+
export C_INCLUDE_PATH="${NATIVE_GCC}/include"
67+
export CPLUS_INCLUDE_PATH="${NATIVE_GCC}/include/c++:${NATIVE_GCC}/include"
68+
export OBJC_INCLUDE_PATH="${NATIVE_GCC}/include"
69+
export OBJCPLUS_INCLUDE_PATH="${NATIVE_GCC}/include/c++:${NATIVE_GCC}/include"
70+
71+
prepend_to_search_env_var() {
72+
export "${1}=${2}${!1:+:}${!1}"
73+
}
74+
6175
case "$HOST" in
6276
*darwin*)
6377
# When targeting darwin, zlib is required by native_libdmg-hfsplus.
6478
zlib_store_path=$(store_path "zlib")
65-
export LIBRARY_PATH="${zlib_store_path}/lib:${LIBRARY_PATH}"
66-
export CPATH="${zlib_store_path}/include:${CPATH}"
79+
80+
prepend_to_search_env_var LIBRARY_PATH "${zlib_store_path}/lib"
81+
prepend_to_search_env_var C_INCLUDE_PATH "${zlib_store_path}/include"
82+
prepend_to_search_env_var CPLUS_INCLUDE_PATH "${zlib_store_path}/include"
83+
prepend_to_search_env_var OBJC_INCLUDE_PATH "${zlib_store_path}/include"
84+
prepend_to_search_env_var OBJCPLUS_INCLUDE_PATH "${zlib_store_path}/include"
6785
esac
6886

6987
# Set environment variables to point the CROSS toolchain to the right

depends/packages/qt.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ $(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_no_printer.patch no
1010
$(package)_patches+= fix_android_qmake_conf.patch fix_android_jni_static.patch dont_hardcode_pwd.patch
1111
$(package)_patches+= drop_lrelease_dependency.patch no_sdk_version_check.patch
1212
$(package)_patches+= fix_qpainter_non_determinism.patch fix_lib_paths.patch fix_android_pch.patch
13-
$(package)_patches+= fix_bigsur_drawing.patch
13+
$(package)_patches+= fix_bigsur_drawing.patch qtbase-moc-ignore-gcc-macro.patch
1414

1515
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
1616
$(package)_qttranslations_sha256_hash=e1de58ed108b7e0a138815ea60fd46a2c4e1fc31396a707e5630e92de79c53de
@@ -232,6 +232,7 @@ define $(package)_preprocess_cmds
232232
patch -p1 -i $($(package)_patch_dir)/no_sdk_version_check.patch && \
233233
patch -p1 -i $($(package)_patch_dir)/fix_lib_paths.patch && \
234234
patch -p1 -i $($(package)_patch_dir)/fix_bigsur_drawing.patch && \
235+
patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
235236
sed -i.old "s|updateqm.commands = \$$$$\$$$$LRELEASE|updateqm.commands = $($(package)_extract_dir)/qttools/bin/lrelease|" qttranslations/translations/translations.pro && \
236237
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
237238
cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
The moc executable loops through headers on CPLUS_INCLUDE_PATH and stumbles
2+
on the GCC internal _GLIBCXX_VISIBILITY macro. Tell it to ignore it as it is
3+
not supposed to be looking there to begin with.
4+
5+
Upstream report: https://bugreports.qt.io/browse/QTBUG-83160
6+
7+
diff --git a/qtbase/src/tools/moc/main.cpp b/qtbase/src/tools/moc/main.cpp
8+
--- a/qtbase/src/tools/moc/main.cpp
9+
+++ b/qtbase/src/tools/moc/main.cpp
10+
@@ -188,6 +188,7 @@ int runMoc(int argc, char **argv)
11+
dummyVariadicFunctionMacro.arguments += Symbol(0, PP_IDENTIFIER, "__VA_ARGS__");
12+
pp.macros["__attribute__"] = dummyVariadicFunctionMacro;
13+
pp.macros["__declspec"] = dummyVariadicFunctionMacro;
14+
+ pp.macros["_GLIBCXX_VISIBILITY"] = dummyVariadicFunctionMacro;
15+
16+
QString filename;
17+
QString output;

0 commit comments

Comments
 (0)