diff --git a/mozconfigs/linux/uxp-linux-loongarch64 b/mozconfigs/linux/uxp-linux-loongarch64-clang similarity index 100% rename from mozconfigs/linux/uxp-linux-loongarch64 rename to mozconfigs/linux/uxp-linux-loongarch64-clang diff --git a/mozconfigs/linux/uxp-linux-x64-clang b/mozconfigs/linux/uxp-linux-x64-clang new file mode 100644 index 0000000000..5ad57494a6 --- /dev/null +++ b/mozconfigs/linux/uxp-linux-x64-clang @@ -0,0 +1,67 @@ +# Set GTK Version to 2 or 3 +_GTK_VERSION=3 + +# 16 jobs for 16 cores +mk_add_options MOZ_MAKE_FLAGS="-j6" + +# Use clang/llvm toolchain +export CC="/usr/bin/clang" +export CXX="/usr/bin/clang++" +export AR="/usr/bin/llvm-ar" +export NM="/usr/bin/llvm-nm" +export RANLIB="/usr/bin/llvm-ranlib" +export LD=ld.lld + +# Force LLVM for HOST tools as well +export HOST_CC=/usr/bin/clang +export HOST_CXX=/usr/bin/clang++ +export HOST_AR=/usr/bin/llvm-ar +export HOST_RANLIB=/usr/bin/llvm-ranlib +export HOST_NM=/usr/bin/llvm-nm +export HOST_LD=ld.lld + +# Ensure static archives always get a symbol table (__.SYMDEF). +# Older Mozilla/UXP build logic assumes ar creates this implicitly, +# but with ThinLTO + LLVM bitcode that is no longer guaranteed. +# Without the 's' flag, ld/lld will fail with: +# "archive has no index; run ranlib to add one" +# This is especially critical for HOST tools (mbsdiff, mar, etc.). +export ARFLAGS=crs +export HOST_ARFLAGS=crs +export ARFLAGS=crs +export HOST_ARFLAGS=crs + +# ThinLTO with Clang/LLVM. -Wl,--undefined-version is needed due to differences between GNU ld and lld +export LDFLAGS="-flto=thin -fuse-ld=lld -Wl,--undefined-version" + +# O3 for maximum optimization, -w to suppress all warnings, -flto=thin for ThinLTO +ac_add_options --enable-optimize="-O3 -w -flto=thin" + +# Standard build options for Basilisk +ac_add_options --enable-application=basilisk +ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION +ac_add_options --enable-jemalloc +ac_add_options --enable-strip +ac_add_options --enable-devtools +ac_add_options --enable-av1 +ac_add_options --enable-webrtc +ac_add_options --enable-gamepad +ac_add_options --enable-pie +ac_add_options --enable-update-channel=release +ac_add_options --disable-tests +ac_add_options --disable-debug +ac_add_options --disable-necko-wifi +ac_add_options --disable-updater +ac_add_options --with-pthreads +ac_add_options --disable-official-branding + +export MOZILLA_OFFICIAL=1 + +ac_add_options --x-libraries=/usr/lib64 + +export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION + +export CC="clang -std=gnu89 -Wno-error=implicit-int -Wno-error=implicit-function-declaration" +export CXX="clang++ -std=gnu++17" + +export MOZ_SOURCE_CHANGESET=iloveneedingtobodgechangesetfornoreason diff --git a/mozconfigs/linux/uxp-linux-x64 b/mozconfigs/linux/uxp-linux-x64-gcc similarity index 100% rename from mozconfigs/linux/uxp-linux-x64 rename to mozconfigs/linux/uxp-linux-x64-gcc