From 78a577b8767f4dc3e57883b5cbe2d9874a302d96 Mon Sep 17 00:00:00 2001 From: Alexander Frick Date: Tue, 19 Nov 2024 10:58:44 -0600 Subject: [PATCH] patch fixes and updates --- .../AVX512/third_party/opus/src/configure.ac | 950 ------------------ other/SSE2/angle-lockfree.patch | 10 +- other/ftp-support-thorium.patch | 34 +- other/thorium-2024-ui.patch | 147 ++- setup.sh | 7 +- src/build/config/unsafe_buffers_paths.txt | 154 --- 6 files changed, 161 insertions(+), 1141 deletions(-) delete mode 100644 other/AVX512/third_party/opus/src/configure.ac delete mode 100644 src/build/config/unsafe_buffers_paths.txt diff --git a/other/AVX512/third_party/opus/src/configure.ac b/other/AVX512/third_party/opus/src/configure.ac deleted file mode 100644 index f6a86943..00000000 --- a/other/AVX512/third_party/opus/src/configure.ac +++ /dev/null @@ -1,950 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -*-m4-*- - -dnl The package_version file will be automatically synced to the git revision -dnl by the update_version script when configured in the repository, but will -dnl remain constant in tarball releases unless it is manually edited. -m4_define([CURRENT_VERSION], - m4_esyscmd([ ./update_version 2>/dev/null || true - if test -e package_version; then - . ./package_version - printf "$PACKAGE_VERSION" - else - printf "unknown" - fi ])) - -AC_INIT([opus],[CURRENT_VERSION],[opus@xiph.org]) - -AC_CONFIG_SRCDIR(src/opus_encoder.c) -AC_CONFIG_MACRO_DIR([m4]) - -dnl enable silent rules on automake 1.11 and later -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - -# For libtool. -dnl Please update these for releases. -OPUS_LT_CURRENT=8 -OPUS_LT_REVISION=0 -OPUS_LT_AGE=8 - -AC_SUBST(OPUS_LT_CURRENT) -AC_SUBST(OPUS_LT_REVISION) -AC_SUBST(OPUS_LT_AGE) - -AM_INIT_AUTOMAKE([no-define]) -AM_MAINTAINER_MODE([enable]) - -AC_CANONICAL_HOST -AC_MINGW32 -AM_PROG_LIBTOOL -AM_PROG_CC_C_O - -AC_PROG_CC_C99 -AC_C_CONST -AC_C_INLINE - -AM_PROG_AS - -AC_DEFINE([OPUS_BUILD], [], [This is a build of OPUS]) - -#Use a hacked up version of autoconf's AC_C_RESTRICT because it's not -#strong enough a test to detect old buggy versions of GCC (e.g. 2.95.3) -#Note: Both this and the test for variable-size arrays below are also -# done by AC_PROG_CC_C99, but not thoroughly enough apparently. -AC_CACHE_CHECK([for C/C++ restrict keyword], ac_cv_c_restrict, - [ac_cv_c_restrict=no - # The order here caters to the fact that C++ does not require restrict. - for ac_kw in __restrict __restrict__ _Restrict restrict; do - AC_COMPILE_IFELSE([AC_LANG_PROGRAM( - [[typedef int * int_ptr; - int foo (int_ptr $ac_kw ip, int * $ac_kw baz[]) { - return ip[0]; - }]], - [[int s[1]; - int * $ac_kw t = s; - t[0] = 0; - return foo(t, (void *)0)]])], - [ac_cv_c_restrict=$ac_kw]) - test "$ac_cv_c_restrict" != no && break - done - ]) - -AH_VERBATIM([restrict], -[/* Define to the equivalent of the C99 'restrict' keyword, or to - nothing if this is not supported. Do not define if restrict is - supported directly. */ -#undef restrict -/* Work around a bug in Sun C++: it does not support _Restrict or - __restrict__, even though the corresponding Sun C compiler ends up with - "#define restrict _Restrict" or "#define restrict __restrict__" in the - previous line. Perhaps some future version of Sun C++ will work with - restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ -#if defined __SUNPRO_CC && !defined __RESTRICT -# define _Restrict -# define __restrict__ -#endif]) - -case $ac_cv_c_restrict in - restrict) ;; - no) AC_DEFINE([restrict], []) ;; - *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; -esac - -AC_MSG_CHECKING(for C99 variable-size arrays) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], - [[static int x; char a[++x]; a[sizeof a - 1] = 0; int N; return a[0];]])], - [ has_var_arrays=yes - use_alloca="no (using var arrays)" - AC_DEFINE([VAR_ARRAYS], [1], [Use C99 variable-size arrays]) - ],[ - has_var_arrays=no - ]) -AC_MSG_RESULT([$has_var_arrays]) - -AS_IF([test "$has_var_arrays" = "no"], - [ - AC_CHECK_HEADERS([alloca.h]) - AC_MSG_CHECKING(for alloca) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[int foo=10; int *array = alloca(foo);]])], - [ use_alloca=yes; - AC_DEFINE([USE_ALLOCA], [], [Make use of alloca]) - ],[ - use_alloca=no - ]) - AC_MSG_RESULT([$use_alloca]) - ]) - -LT_LIB_M - -AC_ARG_ENABLE([fixed-point], - [AS_HELP_STRING([--enable-fixed-point], - [compile without floating point (for machines without a fast enough FPU)])],, - [enable_fixed_point=no]) - -AS_IF([test "$enable_fixed_point" = "yes"],[ - enable_float="no" - AC_DEFINE([FIXED_POINT], [1], [Compile as fixed-point (for machines without a fast enough FPU)]) - PC_BUILD="fixed-point" -],[ - enable_float="yes"; - PC_BUILD="floating-point" -]) - -AM_CONDITIONAL([FIXED_POINT], [test "$enable_fixed_point" = "yes"]) - -AC_ARG_ENABLE([fixed-point-debug], - [AS_HELP_STRING([--enable-fixed-point-debug], [debug fixed-point implementation])],, - [enable_fixed_point_debug=no]) - -AS_IF([test "$enable_fixed_point_debug" = "yes"],[ - AC_DEFINE([FIXED_DEBUG], [1], [Debug fixed-point implementation]) -]) - -AC_ARG_ENABLE([float_api], - [AS_HELP_STRING([--disable-float-api], - [compile without the floating point API (for machines with no float library)])],, - [enable_float_api=yes]) - -AM_CONDITIONAL([DISABLE_FLOAT_API], [test "$enable_float_api" = "no"]) - -AS_IF([test "$enable_float_api" = "no"],[ - AC_DEFINE([DISABLE_FLOAT_API], [1], [Do not build the float API]) -]) - -AC_ARG_ENABLE([custom-modes], - [AS_HELP_STRING([--enable-custom-modes], [enable non-Opus modes, e.g. 44.1 kHz & 2^n frames])],, - [enable_custom_modes=no]) - -AS_IF([test "$enable_custom_modes" = "yes"],[ - AC_DEFINE([CUSTOM_MODES], [1], [Custom modes]) - PC_BUILD="$PC_BUILD, custom modes" -]) - -AM_CONDITIONAL([CUSTOM_MODES], [test "$enable_custom_modes" = "yes"]) - -case "$host_cpu" in -i[[3456]]86 | x86_64 | powerpc64 | powerpc32 | ia64) - has_float_approx=yes - ;; -esac - -AC_ARG_ENABLE([float-approx], - [AS_HELP_STRING([--enable-float-approx], [enable fast approximations for floating point])], - [if test "$enable_float_approx" = "yes"; then - AC_WARN([Floating point approximations are not supported on all platforms.]) - fi - ], - [enable_float_approx=$has_float_approx]) - -AS_IF([test "$enable_float_approx" = "yes"],[ - AC_DEFINE([FLOAT_APPROX], [1], [Float approximations]) -]) - -AC_ARG_ENABLE([asm], - [AS_HELP_STRING([--disable-asm], [Disable assembly optimizations])],, - [enable_asm=yes]) - -AC_ARG_ENABLE([rtcd], - [AS_HELP_STRING([--disable-rtcd], [Disable run-time CPU capabilities detection])],, - [enable_rtcd=yes]) - -AC_ARG_ENABLE([intrinsics], - [AS_HELP_STRING([--disable-intrinsics], [Disable intrinsics optimizations])],, - [enable_intrinsics=yes]) - -rtcd_support=no -cpu_arm=no -cpu_x86=no - -AS_IF([test x"${enable_asm}" = x"yes"],[ - inline_optimization="No inline ASM for your platform, please send patches" - case $host_cpu in - arm*) - dnl Currently we only have asm for fixed-point - AS_IF([test "$enable_float" != "yes"],[ - cpu_arm=yes - AC_DEFINE([OPUS_ARM_ASM], [], [Make use of ARM asm optimization]) - AS_GCC_INLINE_ASSEMBLY( - [inline_optimization="ARM"], - [inline_optimization="disabled"] - ) - AS_ASM_ARM_EDSP([OPUS_ARM_INLINE_EDSP=1],[OPUS_ARM_INLINE_EDSP=0]) - AS_ASM_ARM_MEDIA([OPUS_ARM_INLINE_MEDIA=1], - [OPUS_ARM_INLINE_MEDIA=0]) - AS_ASM_ARM_NEON([OPUS_ARM_INLINE_NEON=1],[OPUS_ARM_INLINE_NEON=0]) - AS_IF([test x"$inline_optimization" = x"ARM"],[ - AM_CONDITIONAL([OPUS_ARM_INLINE_ASM],[true]) - AC_DEFINE([OPUS_ARM_INLINE_ASM], 1, - [Use generic ARMv4 inline asm optimizations]) - AS_IF([test x"$OPUS_ARM_INLINE_EDSP" = x"1"],[ - AC_DEFINE([OPUS_ARM_INLINE_EDSP], [1], - [Use ARMv5E inline asm optimizations]) - inline_optimization="$inline_optimization (EDSP)" - ]) - AS_IF([test x"$OPUS_ARM_INLINE_MEDIA" = x"1"],[ - AC_DEFINE([OPUS_ARM_INLINE_MEDIA], [1], - [Use ARMv6 inline asm optimizations]) - inline_optimization="$inline_optimization (Media)" - ]) - AS_IF([test x"$OPUS_ARM_INLINE_NEON" = x"1"],[ - AC_DEFINE([OPUS_ARM_INLINE_NEON], 1, - [Use ARM NEON inline asm optimizations]) - inline_optimization="$inline_optimization (NEON)" - ]) - ]) - dnl We need Perl to translate RVCT-syntax asm to gas syntax. - AC_CHECK_PROG([HAVE_PERL], perl, yes, no) - AS_IF([test x"$HAVE_PERL" = x"yes"],[ - AM_CONDITIONAL([OPUS_ARM_EXTERNAL_ASM],[true]) - asm_optimization="ARM" - AS_IF([test x"$OPUS_ARM_INLINE_EDSP" = x"1"], [ - OPUS_ARM_PRESUME_EDSP=1 - OPUS_ARM_MAY_HAVE_EDSP=1 - ], - [ - OPUS_ARM_PRESUME_EDSP=0 - OPUS_ARM_MAY_HAVE_EDSP=0 - ]) - AS_IF([test x"$OPUS_ARM_INLINE_MEDIA" = x"1"], [ - OPUS_ARM_PRESUME_MEDIA=1 - OPUS_ARM_MAY_HAVE_MEDIA=1 - ], - [ - OPUS_ARM_PRESUME_MEDIA=0 - OPUS_ARM_MAY_HAVE_MEDIA=0 - ]) - AS_IF([test x"$OPUS_ARM_INLINE_NEON" = x"1"], [ - OPUS_ARM_PRESUME_NEON=1 - OPUS_ARM_MAY_HAVE_NEON=1 - ], - [ - OPUS_ARM_PRESUME_NEON=0 - OPUS_ARM_MAY_HAVE_NEON=0 - ]) - AS_IF([test x"$enable_rtcd" = x"yes"],[ - AS_IF([test x"$OPUS_ARM_MAY_HAVE_EDSP" != x"1"],[ - AC_MSG_NOTICE( - [Trying to force-enable armv5e EDSP instructions...]) - AS_ASM_ARM_EDSP_FORCE([OPUS_ARM_MAY_HAVE_EDSP=1]) - ]) - AS_IF([test x"$OPUS_ARM_MAY_HAVE_MEDIA" != x"1"],[ - AC_MSG_NOTICE( - [Trying to force-enable ARMv6 media instructions...]) - AS_ASM_ARM_MEDIA_FORCE([OPUS_ARM_MAY_HAVE_MEDIA=1]) - ]) - AS_IF([test x"$OPUS_ARM_MAY_HAVE_NEON" != x"1"],[ - AC_MSG_NOTICE( - [Trying to force-enable NEON instructions...]) - AS_ASM_ARM_NEON_FORCE([OPUS_ARM_MAY_HAVE_NEON=1]) - ]) - ]) - rtcd_support= - AS_IF([test x"$OPUS_ARM_MAY_HAVE_EDSP" = x"1"],[ - AC_DEFINE(OPUS_ARM_MAY_HAVE_EDSP, 1, - [Define if assembler supports EDSP instructions]) - AS_IF([test x"$OPUS_ARM_PRESUME_EDSP" = x"1"],[ - AC_DEFINE(OPUS_ARM_PRESUME_EDSP, 1, - [Define if binary requires EDSP instruction support]) - asm_optimization="$asm_optimization (EDSP)" - ], - [rtcd_support="$rtcd_support (EDSP)"] - ) - ]) - AC_SUBST(OPUS_ARM_MAY_HAVE_EDSP) - AS_IF([test x"$OPUS_ARM_MAY_HAVE_MEDIA" = x"1"],[ - AC_DEFINE(OPUS_ARM_MAY_HAVE_MEDIA, 1, - [Define if assembler supports ARMv6 media instructions]) - AS_IF([test x"$OPUS_ARM_PRESUME_MEDIA" = x"1"],[ - AC_DEFINE(OPUS_ARM_PRESUME_MEDIA, 1, - [Define if binary requires ARMv6 media instruction support]) - asm_optimization="$asm_optimization (Media)" - ], - [rtcd_support="$rtcd_support (Media)"] - ) - ]) - AC_SUBST(OPUS_ARM_MAY_HAVE_MEDIA) - AS_IF([test x"$OPUS_ARM_MAY_HAVE_NEON" = x"1"],[ - AC_DEFINE(OPUS_ARM_MAY_HAVE_NEON, 1, - [Define if compiler supports NEON instructions]) - AS_IF([test x"$OPUS_ARM_PRESUME_NEON" = x"1"], [ - AC_DEFINE(OPUS_ARM_PRESUME_NEON, 1, - [Define if binary requires NEON instruction support]) - asm_optimization="$asm_optimization (NEON)" - ], - [rtcd_support="$rtcd_support (NEON)"] - ) - ]) - AC_SUBST(OPUS_ARM_MAY_HAVE_NEON) - dnl Make sure turning on RTCD gets us at least one - dnl instruction set. - AS_IF([test x"$rtcd_support" != x""], - [rtcd_support=ARM"$rtcd_support"], - [rtcd_support="no"] - ) - AC_MSG_CHECKING([for apple style tools]) - AC_PREPROC_IFELSE([AC_LANG_PROGRAM([ -#ifndef __APPLE__ -#error 1 -#endif],[])], - [AC_MSG_RESULT([yes]); ARM2GNU_PARAMS="--apple"], - [AC_MSG_RESULT([no]); ARM2GNU_PARAMS=""]) - AC_SUBST(ARM2GNU_PARAMS) - ], - [ - AC_MSG_WARN( - [*** ARM assembly requires perl -- disabling optimizations]) - asm_optimization="(missing perl dependency for ARM)" - ]) - ]) - ;; - esac -],[ - inline_optimization="disabled" - asm_optimization="disabled" -]) - -AM_CONDITIONAL([OPUS_ARM_INLINE_ASM], - [test x"${inline_optimization%% *}" = x"ARM"]) -AM_CONDITIONAL([OPUS_ARM_EXTERNAL_ASM], - [test x"${asm_optimization%% *}" = x"ARM"]) - -AM_CONDITIONAL([HAVE_SSE], [false]) -AM_CONDITIONAL([HAVE_SSE2], [false]) -AM_CONDITIONAL([HAVE_SSE4_1], [false]) -AM_CONDITIONAL([HAVE_AVX], [false]) - -m4_define([DEFAULT_X86_SSE_CFLAGS], [-msse]) -m4_define([DEFAULT_X86_SSE2_CFLAGS], [-msse2]) -m4_define([DEFAULT_X86_SSE4_1_CFLAGS], [-msse4.1]) -m4_define([DEFAULT_X86_AVX_CFLAGS], [-mavx]) -m4_define([DEFAULT_ARM_NEON_INTR_CFLAGS], [-mfpu=neon]) -# With GCC on ARM32 softfp architectures (e.g. Android, or older Ubuntu) you need to specify -# -mfloat-abi=softfp for -mfpu=neon to work. However, on ARM32 hardfp architectures (e.g. newer Ubuntu), -# this option will break things. - -# As a heuristic, if host matches arm*eabi* but not arm*hf*, it's probably soft-float. -m4_define([DEFAULT_ARM_NEON_SOFTFP_INTR_CFLAGS], [-mfpu=neon -mfloat-abi=softfp]) - -AS_CASE([$host], - [arm*hf*], [AS_VAR_SET([RESOLVED_DEFAULT_ARM_NEON_INTR_CFLAGS], "DEFAULT_ARM_NEON_INTR_CFLAGS")], - [arm*eabi*], [AS_VAR_SET([RESOLVED_DEFAULT_ARM_NEON_INTR_CFLAGS], "DEFAULT_ARM_NEON_SOFTFP_INTR_CFLAGS")], - [AS_VAR_SET([RESOLVED_DEFAULT_ARM_NEON_INTR_CFLAGS], "DEFAULT_ARM_NEON_INTR_CFLAGS")]) - -AC_ARG_VAR([X86_SSE_CFLAGS], [C compiler flags to compile SSE intrinsics @<:@default=]DEFAULT_X86_SSE_CFLAGS[@:>@]) -AC_ARG_VAR([X86_SSE2_CFLAGS], [C compiler flags to compile SSE2 intrinsics @<:@default=]DEFAULT_X86_SSE2_CFLAGS[@:>@]) -AC_ARG_VAR([X86_SSE4_1_CFLAGS], [C compiler flags to compile SSE4.1 intrinsics @<:@default=]DEFAULT_X86_SSE4_1_CFLAGS[@:>@]) -AC_ARG_VAR([X86_AVX_CFLAGS], [C compiler flags to compile AVX intrinsics @<:@default=]DEFAULT_X86_AVX_CFLAGS[@:>@]) -AC_ARG_VAR([ARM_NEON_INTR_CFLAGS], [C compiler flags to compile ARM NEON intrinsics @<:@default=]DEFAULT_ARM_NEON_INTR_CFLAGS / DEFAULT_ARM_NEON_SOFTFP_INTR_CFLAGS[@:>@]) - -AS_VAR_SET_IF([X86_SSE_CFLAGS], [], [AS_VAR_SET([X86_SSE_CFLAGS], "DEFAULT_X86_SSE_CFLAGS")]) -AS_VAR_SET_IF([X86_SSE2_CFLAGS], [], [AS_VAR_SET([X86_SSE2_CFLAGS], "DEFAULT_X86_SSE2_CFLAGS")]) -AS_VAR_SET_IF([X86_SSE4_1_CFLAGS], [], [AS_VAR_SET([X86_SSE4_1_CFLAGS], "DEFAULT_X86_SSE4_1_CFLAGS")]) -AS_VAR_SET_IF([X86_AVX_CFLAGS], [], [AS_VAR_SET([X86_AVX_CFLAGS], "DEFAULT_X86_AVX_CFLAGS")]) -AS_VAR_SET_IF([ARM_NEON_INTR_CFLAGS], [], [AS_VAR_SET([ARM_NEON_INTR_CFLAGS], ["$RESOLVED_DEFAULT_ARM_NEON_INTR_CFLAGS"])]) - -AC_DEFUN([OPUS_PATH_NE10], - [ - AC_ARG_WITH(NE10, - AC_HELP_STRING([--with-NE10=PFX],[Prefix where libNE10 is installed (optional)]), - NE10_prefix="$withval", NE10_prefix="") - AC_ARG_WITH(NE10-libraries, - AC_HELP_STRING([--with-NE10-libraries=DIR], - [Directory where libNE10 library is installed (optional)]), - NE10_libraries="$withval", NE10_libraries="") - AC_ARG_WITH(NE10-includes, - AC_HELP_STRING([--with-NE10-includes=DIR], - [Directory where libNE10 header files are installed (optional)]), - NE10_includes="$withval", NE10_includes="") - - if test "x$NE10_libraries" != "x" ; then - NE10_LIBS="-L$NE10_libraries" - elif test "x$NE10_prefix" = "xno" || test "x$NE10_prefix" = "xyes" ; then - NE10_LIBS="" - elif test "x$NE10_prefix" != "x" ; then - NE10_LIBS="-L$NE10_prefix/lib" - elif test "x$prefix" != "xNONE" ; then - NE10_LIBS="-L$prefix/lib" - fi - - if test "x$NE10_prefix" != "xno" ; then - NE10_LIBS="$NE10_LIBS -lNE10" - fi - - if test "x$NE10_includes" != "x" ; then - NE10_CFLAGS="-I$NE10_includes" - elif test "x$NE10_prefix" = "xno" || test "x$NE10_prefix" = "xyes" ; then - NE10_CFLAGS="" - elif test "x$NE10_prefix" != "x" ; then - NE10_CFLAGS="-I$NE10_prefix/include" - elif test "x$prefix" != "xNONE"; then - NE10_CFLAGS="-I$prefix/include" - fi - - AC_MSG_CHECKING(for NE10) - save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $NE10_CFLAGS" - save_LIBS="$LIBS"; LIBS="$LIBS $NE10_LIBS $LIBM" - AC_LINK_IFELSE( - [ - AC_LANG_PROGRAM( - [[#include - ]], - [[ - ne10_fft_cfg_float32_t cfg; - cfg = ne10_fft_alloc_c2c_float32_neon(480); - ]] - ) - ],[ - HAVE_ARM_NE10=1 - AC_MSG_RESULT([yes]) - ],[ - HAVE_ARM_NE10=0 - AC_MSG_RESULT([no]) - NE10_CFLAGS="" - NE10_LIBS="" - ] - ) - CFLAGS="$save_CFLAGS"; LIBS="$save_LIBS" - #Now we know if libNE10 is installed or not - AS_IF([test x"$HAVE_ARM_NE10" = x"1"], - [ - AC_DEFINE([HAVE_ARM_NE10], 1, [NE10 library is installed on host. Make sure it is on target!]) - AC_SUBST(HAVE_ARM_NE10) - AC_SUBST(NE10_CFLAGS) - AC_SUBST(NE10_LIBS) - ] - ) - ] -) - -AS_IF([test x"$enable_intrinsics" = x"yes"],[ - intrinsics_support="" - AS_CASE([$host_cpu], - [arm*|aarch64*], - [ - cpu_arm=yes - OPUS_CHECK_INTRINSICS( - [ARM Neon], - [$ARM_NEON_INTR_CFLAGS], - [OPUS_ARM_MAY_HAVE_NEON_INTR], - [OPUS_ARM_PRESUME_NEON_INTR], - [[#include - ]], - [[ - static float32x4_t A0, A1, SUMM; - SUMM = vmlaq_f32(SUMM, A0, A1); - return (int)vgetq_lane_f32(SUMM, 0); - ]] - ) - AS_IF([test x"$OPUS_ARM_MAY_HAVE_NEON_INTR" = x"1" && test x"$OPUS_ARM_PRESUME_NEON_INTR" != x"1"], - [ - OPUS_ARM_NEON_INTR_CFLAGS="$ARM_NEON_INTR_CFLAGS" - AC_SUBST([OPUS_ARM_NEON_INTR_CFLAGS]) - ] - ) - - AS_IF([test x"$OPUS_ARM_MAY_HAVE_NEON_INTR" = x"1"], - [ - AC_DEFINE([OPUS_ARM_MAY_HAVE_NEON_INTR], 1, [Compiler supports ARMv7/Aarch64 Neon Intrinsics]) - intrinsics_support="$intrinsics_support (NEON)" - - AS_IF([test x"$enable_rtcd" != x"no" && test x"$OPUS_ARM_PRESUME_NEON_INTR" != x"1"], - [AS_IF([test x"$rtcd_support" = x"no"], - [rtcd_support="ARM (NEON Intrinsics)"], - [rtcd_support="$rtcd_support (NEON Intrinsics)"])]) - - AS_IF([test x"$OPUS_ARM_PRESUME_NEON_INTR" = x"1"], - [AC_DEFINE([OPUS_ARM_PRESUME_NEON_INTR], 1, [Define if binary requires NEON intrinsics support])]) - - OPUS_PATH_NE10() - AS_IF([test x"$NE10_LIBS" != x""], - [ - intrinsics_support="$intrinsics_support (NE10)" - AS_IF([test x"enable_rtcd" != x"" \ - && test x"$OPUS_ARM_PRESUME_NEON_INTR" != x"1"], - [rtcd_support="$rtcd_support (NE10)"]) - ]) - - OPUS_CHECK_INTRINSICS( - [Aarch64 Neon], - [$ARM_NEON_INTR_CFLAGS], - [OPUS_ARM_MAY_HAVE_AARCH64_NEON_INTR], - [OPUS_ARM_PRESUME_AARCH64_NEON_INTR], - [[#include - ]], - [[ - static int32_t IN; - static int16_t OUT; - OUT = vqmovns_s32(IN); - ]] - ) - - AS_IF([test x"$OPUS_ARM_PRESUME_AARCH64_NEON_INTR" = x"1"], - [ - AC_DEFINE([OPUS_ARM_PRESUME_AARCH64_NEON_INTR], 1, [Define if binary requires Aarch64 Neon Intrinsics]) - intrinsics_support="$intrinsics_support (NEON [Aarch64])" - ]) - - AS_IF([test x"$intrinsics_support" = x""], - [intrinsics_support=no], - [intrinsics_support="ARM$intrinsics_support"]) - ], - [ - AC_MSG_WARN([Compiler does not support ARM intrinsics]) - intrinsics_support=no - ]) - ], - [i?86|x86_64], - [ - cpu_x86=yes - OPUS_CHECK_INTRINSICS( - [SSE], - [$X86_SSE_CFLAGS], - [OPUS_X86_MAY_HAVE_SSE], - [OPUS_X86_PRESUME_SSE], - [[#include - #include - ]], - [[ - __m128 mtest; - mtest = _mm_set1_ps((float)time(NULL)); - mtest = _mm_mul_ps(mtest, mtest); - return _mm_cvtss_si32(mtest); - ]] - ) - AS_IF([test x"$OPUS_X86_MAY_HAVE_SSE" = x"1" && test x"$OPUS_X86_PRESUME_SSE" != x"1"], - [ - OPUS_X86_SSE_CFLAGS="$X86_SSE_CFLAGS" - AC_SUBST([OPUS_X86_SSE_CFLAGS]) - ] - ) - OPUS_CHECK_INTRINSICS( - [SSE2], - [$X86_SSE2_CFLAGS], - [OPUS_X86_MAY_HAVE_SSE2], - [OPUS_X86_PRESUME_SSE2], - [[#include - #include - ]], - [[ - __m128i mtest; - mtest = _mm_set1_epi32((int)time(NULL)); - mtest = _mm_mul_epu32(mtest, mtest); - return _mm_cvtsi128_si32(mtest); - ]] - ) - AS_IF([test x"$OPUS_X86_MAY_HAVE_SSE2" = x"1" && test x"$OPUS_X86_PRESUME_SSE2" != x"1"], - [ - OPUS_X86_SSE2_CFLAGS="$X86_SSE2_CFLAGS" - AC_SUBST([OPUS_X86_SSE2_CFLAGS]) - ] - ) - OPUS_CHECK_INTRINSICS( - [SSE4.1], - [$X86_SSE4_1_CFLAGS], - [OPUS_X86_MAY_HAVE_SSE4_1], - [OPUS_X86_PRESUME_SSE4_1], - [[#include - #include - ]], - [[ - __m128i mtest; - mtest = _mm_set1_epi32((int)time(NULL)); - mtest = _mm_mul_epi32(mtest, mtest); - return _mm_cvtsi128_si32(mtest); - ]] - ) - AS_IF([test x"$OPUS_X86_MAY_HAVE_SSE4_1" = x"1" && test x"$OPUS_X86_PRESUME_SSE4_1" != x"1"], - [ - OPUS_X86_SSE4_1_CFLAGS="$X86_SSE4_1_CFLAGS" - AC_SUBST([OPUS_X86_SSE4_1_CFLAGS]) - ] - ) - OPUS_CHECK_INTRINSICS( - [AVX], - [$X86_AVX_CFLAGS], - [OPUS_X86_MAY_HAVE_AVX], - [OPUS_X86_PRESUME_AVX], - [[#include - #include - ]], - [[ - __m256 mtest; - mtest = _mm256_set1_ps((float)time(NULL)); - mtest = _mm256_addsub_ps(mtest, mtest); - return _mm_cvtss_si32(_mm256_extractf128_ps(mtest, 0)); - ]] - ) - AS_IF([test x"$OPUS_X86_MAY_HAVE_AVX" = x"1" && test x"$OPUS_X86_PRESUME_AVX" != x"1"], - [ - OPUS_X86_AVX_CFLAGS="$X86_AVX_CFLAGS" - AC_SUBST([OPUS_X86_AVX_CFLAGS]) - ] - ) - AS_IF([test x"$rtcd_support" = x"no"], [rtcd_support=""]) - AS_IF([test x"$OPUS_X86_MAY_HAVE_SSE" = x"1"], - [ - AC_DEFINE([OPUS_X86_MAY_HAVE_SSE], 1, [Compiler supports X86 SSE Intrinsics]) - intrinsics_support="$intrinsics_support SSE" - - AS_IF([test x"$OPUS_X86_PRESUME_SSE" = x"1"], - [AC_DEFINE([OPUS_X86_PRESUME_SSE], 1, [Define if binary requires SSE intrinsics support])], - [rtcd_support="$rtcd_support SSE"]) - ], - [ - AC_MSG_WARN([Compiler does not support SSE intrinsics]) - ]) - - AS_IF([test x"$OPUS_X86_MAY_HAVE_SSE2" = x"1"], - [ - AC_DEFINE([OPUS_X86_MAY_HAVE_SSE2], 1, [Compiler supports X86 SSE2 Intrinsics]) - intrinsics_support="$intrinsics_support SSE2" - - AS_IF([test x"$OPUS_X86_PRESUME_SSE2" = x"1"], - [AC_DEFINE([OPUS_X86_PRESUME_SSE2], 1, [Define if binary requires SSE2 intrinsics support])], - [rtcd_support="$rtcd_support SSE2"]) - ], - [ - AC_MSG_WARN([Compiler does not support SSE2 intrinsics]) - ]) - - AS_IF([test x"$OPUS_X86_MAY_HAVE_SSE4_1" = x"1"], - [ - AC_DEFINE([OPUS_X86_MAY_HAVE_SSE4_1], 1, [Compiler supports X86 SSE4.1 Intrinsics]) - intrinsics_support="$intrinsics_support SSE4.1" - - AS_IF([test x"$OPUS_X86_PRESUME_SSE4_1" = x"1"], - [AC_DEFINE([OPUS_X86_PRESUME_SSE4_1], 1, [Define if binary requires SSE4.1 intrinsics support])], - [rtcd_support="$rtcd_support SSE4.1"]) - ], - [ - AC_MSG_WARN([Compiler does not support SSE4.1 intrinsics]) - ]) - AS_IF([test x"$OPUS_X86_MAY_HAVE_AVX" = x"1"], - [ - AC_DEFINE([OPUS_X86_MAY_HAVE_AVX], 1, [Compiler supports X86 AVX Intrinsics]) - intrinsics_support="$intrinsics_support AVX" - - AS_IF([test x"$OPUS_X86_PRESUME_AVX" = x"1"], - [AC_DEFINE([OPUS_X86_PRESUME_AVX], 1, [Define if binary requires AVX intrinsics support])], - [rtcd_support="$rtcd_support AVX"]) - ], - [ - AC_MSG_WARN([Compiler does not support AVX intrinsics]) - ]) - - AS_IF([test x"$intrinsics_support" = x""], - [intrinsics_support=no], - [intrinsics_support="x86$intrinsics_support"] - ) - AS_IF([test x"$rtcd_support" = x""], - [rtcd_support=no], - [rtcd_support="x86$rtcd_support"], - ) - - AS_IF([test x"$enable_rtcd" = x"yes" && test x"$rtcd_support" != x""],[ - get_cpuid_by_asm="no" - AC_MSG_CHECKING([How to get X86 CPU Info]) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ - #include - ]],[[ - unsigned int CPUInfo0; - unsigned int CPUInfo1; - unsigned int CPUInfo2; - unsigned int CPUInfo3; - unsigned int InfoType; - #if defined(__i386__) && defined(__PIC__) - __asm__ __volatile__ ( - "xchg %%ebx, %1\n" - "cpuid\n" - "xchg %%ebx, %1\n": - "=a" (CPUInfo0), - "=r" (CPUInfo1), - "=c" (CPUInfo2), - "=d" (CPUInfo3) : - "a" (InfoType), "c" (0) - ); - #else - __asm__ __volatile__ ( - "cpuid": - "=a" (CPUInfo0), - "=b" (CPUInfo1), - "=c" (CPUInfo2), - "=d" (CPUInfo3) : - "a" (InfoType), "c" (0) - ); - #endif - ]])], - [get_cpuid_by_asm="yes" - AC_MSG_RESULT([Inline Assembly]) - AC_DEFINE([CPU_INFO_BY_ASM], [1], [Get CPU Info by asm method])], - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ - #include - ]],[[ - unsigned int CPUInfo0; - unsigned int CPUInfo1; - unsigned int CPUInfo2; - unsigned int CPUInfo3; - unsigned int InfoType; - __get_cpuid_count(InfoType, 0, &CPUInfo0, &CPUInfo1, &CPUInfo2, &CPUInfo3); - ]])], - [AC_MSG_RESULT([C method]) - AC_DEFINE([CPU_INFO_BY_C], [1], [Get CPU Info by c method])], - [AC_MSG_ERROR([no supported Get CPU Info method, please disable run-time CPU capabilities detection or intrinsics])])])]) - ], - [ - AC_MSG_WARN([No intrinsics support for your architecture]) - intrinsics_support="no" - ]) -], -[ - intrinsics_support="no" -]) - -AM_CONDITIONAL([CPU_ARM], [test "$cpu_arm" = "yes"]) -AM_CONDITIONAL([HAVE_ARM_NEON_INTR], - [test x"$OPUS_ARM_MAY_HAVE_NEON_INTR" = x"1"]) -AM_CONDITIONAL([HAVE_ARM_NE10], - [test x"$HAVE_ARM_NE10" = x"1"]) -AM_CONDITIONAL([CPU_X86], [test "$cpu_x86" = "yes"]) -AM_CONDITIONAL([HAVE_SSE], - [test x"$OPUS_X86_MAY_HAVE_SSE" = x"1"]) -AM_CONDITIONAL([HAVE_SSE2], - [test x"$OPUS_X86_MAY_HAVE_SSE2" = x"1"]) -AM_CONDITIONAL([HAVE_SSE4_1], - [test x"$OPUS_X86_MAY_HAVE_SSE4_1" = x"1"]) -AM_CONDITIONAL([HAVE_AVX], - [test x"$OPUS_X86_MAY_HAVE_AVX" = x"1"]) - -AM_CONDITIONAL([HAVE_RTCD], - [test x"$enable_rtcd" = x"yes" -a x"$rtcd_support" != x"no"]) -AS_IF([test x"$enable_rtcd" = x"yes"],[ - AS_IF([test x"$rtcd_support" != x"no"],[ - AC_DEFINE([OPUS_HAVE_RTCD], [1], - [Use run-time CPU capabilities detection]) - OPUS_HAVE_RTCD=1 - AC_SUBST(OPUS_HAVE_RTCD) - ]) -],[ - rtcd_support="disabled" -]) - -AC_ARG_ENABLE([assertions], - [AS_HELP_STRING([--enable-assertions],[enable additional software error checking])],, - [enable_assertions=no]) - -AS_IF([test "$enable_assertions" = "yes"], [ - AC_DEFINE([ENABLE_ASSERTIONS], [1], [Assertions]) -]) - -AC_ARG_ENABLE([hardening], - [AS_HELP_STRING([--disable-hardening],[disable run-time checks that are cheap and safe for use in production])],, - [enable_hardening=yes]) - -AS_IF([test "$enable_hardening" = "yes"], [ - AC_DEFINE([ENABLE_HARDENING], [1], [Hardening]) -]) - -AC_ARG_ENABLE([fuzzing], - [AS_HELP_STRING([--enable-fuzzing],[causes the encoder to make random decisions (do not use in production)])],, - [enable_fuzzing=no]) - -AS_IF([test "$enable_fuzzing" = "yes"], [ - AC_DEFINE([FUZZING], [1], [Fuzzing]) -]) - -AC_ARG_ENABLE([check-asm], - [AS_HELP_STRING([--enable-check-asm], - [enable bit-exactness checks between optimized and c implementations])],, - [enable_check_asm=no]) - -AS_IF([test "$enable_check_asm" = "yes"], [ - AC_DEFINE([OPUS_CHECK_ASM], [1], [Run bit-exactness checks between optimized and c implementations]) -]) - -AC_ARG_ENABLE([doc], - [AS_HELP_STRING([--disable-doc], [Do not build API documentation])],, - [enable_doc=yes]) - -AS_IF([test "$enable_doc" = "yes"], [ - AC_CHECK_PROG(HAVE_DOXYGEN, [doxygen], [yes], [no]) - AC_CHECK_PROG(HAVE_DOT, [dot], [yes], [no]) -],[ - HAVE_DOXYGEN=no -]) - -AM_CONDITIONAL([HAVE_DOXYGEN], [test "$HAVE_DOXYGEN" = "yes"]) - -AC_ARG_ENABLE([extra-programs], - [AS_HELP_STRING([--disable-extra-programs], [Do not build extra programs (demo and tests)])],, - [enable_extra_programs=yes]) - -AM_CONDITIONAL([EXTRA_PROGRAMS], [test "$enable_extra_programs" = "yes"]) - - -AC_ARG_ENABLE([rfc8251], - AS_HELP_STRING([--disable-rfc8251], [Disable bitstream fixes from RFC 8251]),, - [enable_rfc8251=yes]) - -AS_IF([test "$enable_rfc8251" = "no"], [ - AC_DEFINE([DISABLE_UPDATE_DRAFT], [1], [Disable bitstream fixes from RFC 8251]) -]) - - -saved_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -fvisibility=hidden" -AC_MSG_CHECKING([if ${CC} supports -fvisibility=hidden]) -AC_COMPILE_IFELSE([AC_LANG_SOURCE([[char foo;]])], - [ AC_MSG_RESULT([yes]) ], - [ AC_MSG_RESULT([no]) - CFLAGS="$saved_CFLAGS" - ]) - -on_x86=no -case "$host_cpu" in -i[[3456]]86 | x86_64) - on_x86=yes - ;; -esac - -on_windows=no -case $host in -*cygwin*|*mingw*) - on_windows=yes - ;; -esac - -dnl Enable stack-protector-all only on x86 where it's well supported. -dnl on some platforms it causes crashes. Hopefully the OS's default's -dnl include this on platforms that work but have been missed here. -AC_ARG_ENABLE([stack-protector], - [AS_HELP_STRING([--disable-stack-protector],[Disable compiler stack hardening])],, - [ - AS_IF([test "$ac_cv_c_compiler_gnu" = "yes" && test "$on_x86" = "yes" && test "$on_windows" = "no"], - [enable_stack_protector=yes],[enable_stack_protector=no]) - ]) - -AS_IF([test "$enable_stack_protector" = "yes"], - [ - saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fstack-protector-strong" - AC_MSG_CHECKING([if ${CC} supports -fstack-protector-strong]) - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[[char foo;]])], - [ AC_MSG_RESULT([yes]) ], - [ - AC_MSG_RESULT([no]) - enable_stack_protector=no - CFLAGS="$saved_CFLAGS" - ]) - ]) - -AS_IF([test x$ac_cv_c_compiler_gnu = xyes], - [AX_ADD_FORTIFY_SOURCE] -) - -CFLAGS="$CFLAGS -W" - -warn_CFLAGS="-Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes" -saved_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS $warn_CFLAGS" -AC_MSG_CHECKING([if ${CC} supports ${warn_CFLAGS}]) -AC_COMPILE_IFELSE([AC_LANG_SOURCE([[char foo;]])], - [ AC_MSG_RESULT([yes]) ], - [ AC_MSG_RESULT([no]) - CFLAGS="$saved_CFLAGS" - ]) - -saved_LIBS="$LIBS" -LIBS="$LIBS $LIBM" -AC_CHECK_FUNCS([lrintf]) -AC_CHECK_FUNCS([lrint]) -LIBS="$saved_LIBS" - -AC_CHECK_FUNCS([__malloc_hook]) - -AC_SUBST([PC_BUILD]) - -AC_CONFIG_FILES([ - Makefile - opus.pc - opus-uninstalled.pc - celt/arm/armopts.s - doc/Makefile - doc/Doxyfile -]) -AC_CONFIG_HEADERS([config.h]) - -AC_OUTPUT - -AC_MSG_NOTICE([ ------------------------------------------------------------------------- - $PACKAGE_NAME $PACKAGE_VERSION: Automatic configuration OK. - - Compiler support: - - C99 var arrays: ................ ${has_var_arrays} - C99 lrintf: .................... ${ac_cv_func_lrintf} - Use alloca: .................... ${use_alloca} - - General configuration: - - Floating point support: ........ ${enable_float} - Fast float approximations: ..... ${enable_float_approx} - Fixed point debugging: ......... ${enable_fixed_point_debug} - Inline Assembly Optimizations: . ${inline_optimization} - External Assembly Optimizations: ${asm_optimization} - Intrinsics Optimizations: ...... ${intrinsics_support} - Run-time CPU detection: ........ ${rtcd_support} - Custom modes: .................. ${enable_custom_modes} - Assertion checking: ............ ${enable_assertions} - Hardening: ..................... ${enable_hardening} - Fuzzing: ....................... ${enable_fuzzing} - Check ASM: ..................... ${enable_check_asm} - - API documentation: ............. ${enable_doc} - Extra programs: ................ ${enable_extra_programs} ------------------------------------------------------------------------- - - Type "make; make install" to compile and install - Type "make check" to run the test suite -]) - diff --git a/other/SSE2/angle-lockfree.patch b/other/SSE2/angle-lockfree.patch index 263356e2..1fd96642 100644 --- a/other/SSE2/angle-lockfree.patch +++ b/other/SSE2/angle-lockfree.patch @@ -27,24 +27,24 @@ fix upstream; probably a revert combined with dropping the "constexpr". # This goes in //chromium/src/third_party/angle/src ---- a/libANGLE/renderer/serial_utils.h -+++ b/libANGLE/renderer/serial_utils.h +--- a/src/libANGLE/renderer/serial_utils.h ++++ b/src/libANGLE/renderer/serial_utils.h @@ -119,6 +119,7 @@ class Serial final - class AtomicQueueSerial final + class alignas(8) AtomicQueueSerial final { public: + constexpr AtomicQueueSerial() : mValue(kInvalid) { ASSERT(mValue.is_lock_free()); } AtomicQueueSerial &operator=(const Serial &other) { mValue.store(other.mValue, std::memory_order_release); -@@ -127,9 +128,8 @@ class AtomicQueueSerial final +@@ -127,8 +128,8 @@ class alignas(8) AtomicQueueSerial final Serial getSerial() const { return Serial(mValue.load(std::memory_order_consume)); } private: + std::atomic mValue; static constexpr uint64_t kInvalid = 0; - std::atomic mValue = kInvalid; -- static_assert(decltype(mValue)::is_always_lock_free, "Must always be lock free"); }; // Used as default/initial serial + diff --git a/other/ftp-support-thorium.patch b/other/ftp-support-thorium.patch index e09f46ab..caee4799 100644 --- a/other/ftp-support-thorium.patch +++ b/other/ftp-support-thorium.patch @@ -12,6 +12,25 @@ index 6167ef5ed42af..6af9e477c4c8a 100644 context_params->enable_brotli = true; context_params->enable_zstd = base::FeatureList::IsEnabled(net::features::kZstdContentEncoding); +diff --git a/build/config/unsafe_buffers_paths.txt b/build/config/unsafe_buffers_paths.txt +index 99e985eacda99..15dea18f1fceb 100644 +--- a/build/config/unsafe_buffers_paths.txt ++++ b/build/config/unsafe_buffers_paths.txt +@@ -112,13 +112,13 @@ + -ios_internal/ + -media/ + -native_client/ ++-net/ftp/ + -net/third_party/ + -printing/ + -remoting/host/ + -remoting/client/input/ + -testing/iossim/ + -third_party/ +-+third_party/blink/ + -tools/ + -ui/base/clipboard/ + -ui/base/ime/ash/ diff --git a/chrome/app/app-Info.plist b/chrome/app/app-Info.plist index 5654e5c9d5858..08d00c2005d7b 100644 --- a/chrome/app/app-Info.plist @@ -5329,7 +5348,7 @@ new file mode 100644 index 0000000000000..9bd4059d5fbe4 --- /dev/null +++ b/net/ftp/ftp_ctrl_response_buffer.cc -@@ -0,0 +1,160 @@ +@@ -0,0 +1,159 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -5339,7 +5358,6 @@ index 0000000000000..9bd4059d5fbe4 +#include + +#include "base/check_op.h" -+#include "base/strings/string_piece.h" +#include "base/strings/string_util.h" +#include "base/values.h" +#include "net/base/net_errors.h" @@ -7731,10 +7749,10 @@ index 0000000000000..0ef5b781eec4e +#endif // NET_FTP_FTP_NETWORK_SESSION_H_ diff --git a/net/ftp/ftp_network_transaction.cc b/net/ftp/ftp_network_transaction.cc new file mode 100644 -index 0000000000000..8c8b965924cca +index 0000000000000..4fdad5392e0a7 --- /dev/null +++ b/net/ftp/ftp_network_transaction.cc -@@ -0,0 +1,1298 @@ +@@ -0,0 +1,1293 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -7835,7 +7853,6 @@ index 0000000000000..8c8b965924cca + + // We should not be called on invalid error codes. + NOTREACHED() << response_code; -+ return ERROR_CLASS_PERMANENT_ERROR; +} + +// Returns network error code for received FTP |response_code|. @@ -8230,7 +8247,6 @@ index 0000000000000..8c8b965924cca + // Callers should validate the command themselves and return a more specific + // error code. + NOTREACHED(); -+ return Stop(ERR_UNEXPECTED); + } + + command_sent_ = cmd; @@ -8390,8 +8406,6 @@ index 0000000000000..8c8b965924cca + break; + default: + NOTREACHED() << "bad state"; -+ rv = ERR_UNEXPECTED; -+ break; + } + } while (rv != ERR_IO_PENDING && next_state_ != STATE_NONE); + return rv; @@ -8678,7 +8692,6 @@ index 0000000000000..8c8b965924cca + command += "I"; + } else { + NOTREACHED(); -+ return Stop(ERR_UNEXPECTED); + } + next_state_ = STATE_CTRL_READ; + return SendFtpCommand(command, command, COMMAND_TYPE); @@ -11299,7 +11312,7 @@ new file mode 100644 index 0000000000000..fe7e81c2e8ad7 --- /dev/null +++ b/net/ftp/ftp_util.cc -@@ -0,0 +1,374 @@ +@@ -0,0 +1,373 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -11316,7 +11329,6 @@ index 0000000000000..fe7e81c2e8ad7 +#include "base/memory/singleton.h" +#include "base/strings/strcat.h" +#include "base/strings/string_number_conversions.h" -+#include "base/strings/string_piece.h" +#include "base/strings/string_split.h" +#include "base/strings/string_tokenizer.h" +#include "base/strings/string_util.h" diff --git a/other/thorium-2024-ui.patch b/other/thorium-2024-ui.patch index 4c1befa1..00ee6ee4 100644 --- a/other/thorium-2024-ui.patch +++ b/other/thorium-2024-ui.patch @@ -1,3 +1,49 @@ +diff --git a/base/check.cc b/base/check.cc +index bd63d5a88e34e..de729bfc6db5a 100644 +--- a/base/check.cc ++++ b/base/check.cc +@@ -323,6 +323,7 @@ std::ostream& CheckError::stream() { + } + + CheckError::~CheckError() { ++#if !BUILDFLAG(IS_DEBUG) + // TODO(crbug.com/40254046): Consider splitting out CHECK from DCHECK so that + // the destructor can be marked [[noreturn]] and we don't need to check + // severity in the destructor. +@@ -340,6 +341,7 @@ CheckError::~CheckError() { + if (is_fatal) { + base::ImmediateCrash(); + } ++#endif // !BUILDFLAG(IS_DEBUG) + } + + CheckError::CheckError(LogMessage* log_message) : log_message_(log_message) {} +diff --git a/base/logging.cc b/base/logging.cc +index 0d93ca4713624..3df6d90c2539b 100644 +--- a/base/logging.cc ++++ b/base/logging.cc +@@ -589,6 +589,10 @@ bool ShouldCreateLogMessage(int severity) { + if (severity < g_min_log_level) + return false; + ++ if (base::CommandLine::ForCurrentProcess()->HasSwitch("verbose")) { ++ return true; ++ } ++ + // Return true here unless we know ~LogMessage won't do anything. + return g_logging_destination != LOG_NONE || g_log_message_handler || + severity >= kAlwaysPrintErrorLevel; +@@ -602,6 +606,10 @@ bool ShouldLogToStderr(int severity) { + if (g_logging_destination & LOG_TO_STDERR) + return true; + ++ if (base::CommandLine::ForCurrentProcess()->HasSwitch("verbose")) { ++ return true; ++ } ++ + #if BUILDFLAG(IS_FUCHSIA) + // Fuchsia will persist data logged to stdio by a component, so do not emit + // logs to stderr unless explicitly configured to do so. diff --git a/chrome/browser/extensions/api/messaging/launch_context_win.cc b/chrome/browser/extensions/api/messaging/launch_context_win.cc index b103bbe61303d..469611cb36e7a 100644 --- a/chrome/browser/extensions/api/messaging/launch_context_win.cc @@ -48,10 +94,50 @@ index f355f92ac2f37..e0b69081164fd 100644 "incognito": "split", "permissions": [ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc -index 40c586fb4f715..dd7d0943e9c0e 100644 +index 40c586fb4f715..9bc0ea94e459a 100644 --- a/chrome/browser/search/search.cc +++ b/chrome/browser/search/search.cc -@@ -179,33 +179,9 @@ struct NewTabURLDetails { +@@ -95,17 +95,6 @@ enum NewTabURLState { + NEW_TAB_URL_MAX + }; + +-const TemplateURL* GetDefaultSearchProviderTemplateURL(Profile* profile) { +- if (profile) { +- TemplateURLService* template_url_service = +- TemplateURLServiceFactory::GetForProfile(profile); +- if (template_url_service) { +- return template_url_service->GetDefaultSearchProvider(); +- } +- } +- return nullptr; +-} +- + bool IsMatchingServiceWorker(const GURL& my_url, const GURL& document_url) { + // The origin should match. + if (!MatchesOrigin(my_url, document_url)) { +@@ -142,21 +131,6 @@ bool IsNTPOrRelatedURLHelper(const GURL& url, Profile* profile) { + IsMatchingServiceWorker(url, new_tab_url)); + } + +-bool IsURLAllowedForSupervisedUser(const GURL& url, Profile& profile) { +- if (!profile.IsChild()) { +- return true; +- } +- supervised_user::SupervisedUserService* supervised_user_service = +- SupervisedUserServiceFactory::GetForProfile(&profile); +- supervised_user::SupervisedUserURLFilter* url_filter = +- supervised_user_service->GetURLFilter(); +- if (url_filter->GetFilteringBehaviorForURL(url) == +- supervised_user::FilteringBehavior::kBlock) { +- return false; +- } +- return true; +-} +- + // Used to look up the URL to use for the New Tab page. Also tracks how we + // arrived at that URL so it can be logged with UMA. + struct NewTabURLDetails { +@@ -179,33 +153,9 @@ struct NewTabURLDetails { const GURL local_url(default_is_google ? chrome::kChromeUINewTabPageURL : chrome::kChromeUINewTabPageThirdPartyURL); @@ -183,6 +269,20 @@ index 86af74569f013..1f9cc1696eda4 100644 command_updater_.UpdateCommandEnabled(IDC_TAB_SEARCH, enable_tab_search_commands); command_updater_.UpdateCommandEnabled(IDC_TAB_SEARCH_CLOSE, +diff --git a/chrome/browser/ui/color/chrome_color_mixer.cc b/chrome/browser/ui/color/chrome_color_mixer.cc +index 589c77c52175b..e408764fc6aae 100644 +--- a/chrome/browser/ui/color/chrome_color_mixer.cc ++++ b/chrome/browser/ui/color/chrome_color_mixer.cc +@@ -748,8 +748,7 @@ void AddChromeColorMixer(ui::ColorProvider* provider, + ui::SetAlpha(kColorToolbarInkDrop, std::ceil(0.06f * 255.0f)); + mixer[kColorAppMenuChipInkDropHover] = {kColorToolbarInkDropHover}; + mixer[kColorAppMenuChipInkDropRipple] = {kColorToolbarInkDropRipple}; +- mixer[kColorToolbarExtensionSeparatorEnabled] = { +- kColorTabBackgroundInactiveFrameActive}; ++ mixer[kColorToolbarExtensionSeparatorEnabled] = {ui::kColorSysDivider}; + mixer[kColorToolbarExtensionSeparatorDisabled] = { + kColorToolbarButtonIconInactive}; + mixer[kColorToolbarSeparator] = {kColorToolbarSeparatorDefault}; diff --git a/chrome/browser/ui/color/chrome_color_mixers.cc b/chrome/browser/ui/color/chrome_color_mixers.cc index 9698e807b11df..8bb6a245caeba 100644 --- a/chrome/browser/ui/color/chrome_color_mixers.cc @@ -993,7 +1093,7 @@ index eabc844883aca..291633d064be4 100644 - const int top_border_thickness = GetLayoutConstant(TAB_STRIP_PADDING); + const int top_border_thickness = features::IsThorium2024() + ? GetLayoutConstant(TAB_INACTIVE_PADDING) -+ : GetLayoutConstant(TAB_STRIP_PADDING); ++ : FrameTopBorderThickness(false); const int window_component = GetHTComponentForFrame( point, gfx::Insets::TLBR(top_border_thickness, 0, 0, 0), @@ -1002,7 +1102,7 @@ index eabc844883aca..291633d064be4 100644 // extends beyond the screen edges. In that case, we must return the // default value. - const int kTopResizeFrameArea = 0; -+ const int kTopResizeFrameArea = features::IsThorium2024() ? 7 : 0; ++ const int kTopResizeFrameArea = features::IsThorium2024() ? 5 : 0; return kTopResizeFrameArea; } @@ -1351,7 +1451,7 @@ index 5c82d24686e9f..2e7d5d0bbf04e 100644 } int OpaqueBrowserFrameViewLayout::CaptionButtonY(views::FrameButton button_id, -@@ -236,6 +250,21 @@ int OpaqueBrowserFrameViewLayout::GetWindowCaptionSpacing( +@@ -236,6 +250,22 @@ int OpaqueBrowserFrameViewLayout::GetWindowCaptionSpacing( return 0; } @@ -1362,7 +1462,8 @@ index 5c82d24686e9f..2e7d5d0bbf04e 100644 + } + // Besides the frame border, there's empty space atop the window in restored + // mode, to use to drag the window around. -+ const int thickness = 8; ++ constexpr int kNonClientRestoredExtraThickness = 8; ++ int thickness = kNonClientRestoredExtraThickness; + if (delegate_->EverHasVisibleBackgroundTabShapes()) { + thickness = + std::max(thickness, BrowserNonClientFrameView::kMinimumDragHeight); @@ -1397,7 +1498,7 @@ index 707226e0e8c70..5e1a2b4dd9921 100644 void SetWindowControlsOverlayEnabled(bool enabled, views::View* host); diff --git a/chrome/browser/ui/views/frame/tab_strip_region_view.cc b/chrome/browser/ui/views/frame/tab_strip_region_view.cc -index e7660352853f2..726ab047decb4 100644 +index e7660352853f2..4f45152a72d4c 100644 --- a/chrome/browser/ui/views/frame/tab_strip_region_view.cc +++ b/chrome/browser/ui/views/frame/tab_strip_region_view.cc @@ -19,6 +19,7 @@ @@ -1425,7 +1526,7 @@ index e7660352853f2..726ab047decb4 100644 - vector_icons::kAddIcon); + features::IsThorium2024() + ? kAddIcon -+ : vector_icons::kAddChromeRefreshIcon ++ : kAddChromeRefreshIcon + ); tab_strip_control_button->SetProperty(views::kElementIdentifierKey, kNewTabButtonElementId); @@ -1488,7 +1589,7 @@ index e7660352853f2..726ab047decb4 100644 } } - gfx::Point new_tab_button_new_position = gfx::Point(x, 0); -+ gfx::Point new_tab_button_new_position = gfx::Point(x, GetLayoutConstant(TAB_BUTTON_OFFSET); ++ gfx::Point new_tab_button_new_position = gfx::Point(x, GetLayoutConstant(TAB_BUTTON_OFFSET)); - gfx::Rect new_tab_button_new_bounds = + const gfx::Rect new_tab_button_new_bounds = @@ -1886,7 +1987,7 @@ index a42855ead9dbe..ba8b4271de1d7 100644 #include "ui/views/view_class_properties.h" namespace { -+constexpr int kTh24CRTabSearchCornerRadius = 8; ++//constexpr int kTh24CRTabSearchCornerRadius = 8; constexpr int kCRTabSearchCornerRadius = 10; constexpr int kCRTabSearchFlatCornerRadius = 4; } // namespace @@ -2123,16 +2224,19 @@ index e368f860ec9a7..b81b109035cdd 100644 "toolbar_action_hover_card_controller.cc", diff --git a/chrome/browser/ui/views/toolbar/restore_tab_button.cc b/chrome/browser/ui/views/toolbar/restore_tab_button.cc new file mode 100644 -index 0000000000000..60be9a17489bf +index 0000000000000..2650880d470b5 --- /dev/null +++ b/chrome/browser/ui/views/toolbar/restore_tab_button.cc -@@ -0,0 +1,54 @@ +@@ -0,0 +1,70 @@ +// Copyright 2024 The Chromium Authors and Alex313031 +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/views/toolbar/restore_tab_button.h" + ++#include "base/command_line.h" ++#include "base/logging.h" ++#include "base/strings/string_number_conversions.h" +#include "chrome/app/chrome_command_ids.h" +#include "chrome/browser/command_updater.h" +#include "chrome/browser/external_protocol/external_protocol_handler.h" @@ -2164,12 +2268,25 @@ index 0000000000000..60be9a17489bf +void RestoreTabButton::ButtonPressed() { + ExternalProtocolHandler::PermitLaunchUrl(); + -+ int command = IDC_RESTORE_TAB; -+ ExecuteBrowserCommand(command); ++ int command; ++ // See chrome/app/chrome_command_ids.h for all possible commands ++ if (base::CommandLine::ForCurrentProcess()->HasSwitch("button-command")) { ++ const std::string button_command = ++ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("button-command"); ++ command = base::StringToInt(button_command, &command); ++ LOG(ERROR) << command; ++ } else { ++ command = IDC_RESTORE_TAB; ++ } ++ const int command_to_exec = command; ++ ++ ExecuteBrowserCommand(command_to_exec); +} + +void RestoreTabButton::SetIcon() { -+ SetVectorIcon(vector_icons::kRestoreIcon); ++ const gfx::VectorIcon& restore_icon = ++ vector_icons::kRestoreIcon; ++ SetVectorIcons(restore_icon, restore_icon); +} + +void RestoreTabButton::ExecuteBrowserCommand(int command) { diff --git a/setup.sh b/setup.sh index 26e20cc5..7fe99118 100755 --- a/setup.sh +++ b/setup.sh @@ -200,8 +200,7 @@ esac copyAVX512 () { printf "\n" && printf "${YEL}Copying AVX-512 build files...${c0}\n" && - cp -r -v other/AVX512/build/config/* ${CR_SRC_DIR}/build/config/ && - cp -r -v other/AVX512/third_party/* ${CR_SRC_DIR}/third_party/ && + cp -r -v other/AVX2/third_party/* ${CR_SRC_DIR}/third_party/ && cp -v other/AVX512/thor_ver ${CR_SRC_DIR}/out/thorium/ && cp -v infra/thor_ver_linux/wrapper-avx512 ${CR_SRC_DIR}/chrome/installer/linux/common/wrapper && [ -f ${CR_SRC_DIR}/third_party/ffmpeg/ffmpeg_hevc_ac3.patch ] || patchAC3; @@ -215,7 +214,6 @@ esac copyAVX2 () { printf "\n" && printf "${YEL}Copying AVX2 build files...${c0}\n" && - cp -r -v other/AVX2/build/config/* ${CR_SRC_DIR}/build/config/ && cp -r -v other/AVX2/third_party/* ${CR_SRC_DIR}/third_party/ && cp -v other/AVX2/thor_ver ${CR_SRC_DIR}/out/thorium/ && cp -v infra/thor_ver_linux/wrapper-avx2 ${CR_SRC_DIR}/chrome/installer/linux/common/wrapper && @@ -230,7 +228,6 @@ esac copySSE4 () { printf "\n" && printf "${YEL}Copying SSE4.1 build files...${c0}\n" && - cp -r -v other/SSE4.1/build/config/* ${CR_SRC_DIR}/build/config/ && cp -v other/SSE4.1/thor_ver ${CR_SRC_DIR}/out/thorium/ && cp -v infra/thor_ver_linux/wrapper-sse4 ${CR_SRC_DIR}/chrome/installer/linux/common/wrapper && [ -f ${CR_SRC_DIR}/third_party/ffmpeg/ffmpeg_hevc_ac3.patch ] || patchAC3; @@ -244,7 +241,6 @@ esac copySSE3 () { printf "\n" && printf "${YEL}Copying SSE3 build files...${c0}\n" && - cp -r -v other/SSE3/build/config/* ${CR_SRC_DIR}/build/config/ && cp -v other/SSE3/thor_ver ${CR_SRC_DIR}/out/thorium/ && cp -v infra/thor_ver_linux/wrapper-sse3 ${CR_SRC_DIR}/chrome/installer/linux/common/wrapper && cd ${CR_SRC_DIR} && @@ -261,7 +257,6 @@ esac copySSE2 () { printf "\n" && printf "${YEL}Copying SSE2 (32-bit) build files...${c0}\n" && - cp -r -v other/SSE2/build/config/* ${CR_SRC_DIR}/build/config/ && cp -v other/SSE2/thor_ver ${CR_SRC_DIR}/out/thorium/ && cp -v infra/thor_ver_linux/wrapper-sse2 ${CR_SRC_DIR}/chrome/installer/linux/common/wrapper && cd ${CR_SRC_DIR} && diff --git a/src/build/config/unsafe_buffers_paths.txt b/src/build/config/unsafe_buffers_paths.txt deleted file mode 100644 index b170d45e..00000000 --- a/src/build/config/unsafe_buffers_paths.txt +++ /dev/null @@ -1,154 +0,0 @@ -# Copyright 2024 The Chromium Project and Alex313031. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# The set of path prefixes that should be checked for unsafe pointer usage (see -# -Wunsafe-buffer-usage in Clang). -# -# *** -# Paths should be written as relative to the root of the source tree with -# unix-style path separators. Directory prefixes should end with `/`, such -# as `base/`. -# *** -# -# Lines that begin with `-` name path prefixes that will *not* be checked for -# unsafe-buffer-usage. They are known to do unsafe things and should be -# changed to use constructs like base::span or containers like base::HeapArray -# and std::vector instead. See https://crbug.com/40285824 -# -# Lines that begin with `+` name path prefixes that have no unsafe-buffer-usage -# (or all such usage is annotated), and are protected against new unsafe pointer -# behaviour by the compiler. -# -# By default, all files are checked for unsafe-buffer-usage unless they are -# match a `-` path prefix line here. If a file matches both a `-` and `+` line, -# the `+` line takes precedence and the file will be checked. -# -# To opt individual files out of checks, place `#pragma allow_unsafe_buffers` -# anywhere in the (source or header) file, guarded by -# `#ifdef UNSAFE_BUFFERS_BUILD`. These pragmas represent the technical debt and -# security risk present in the file through unsafe pointer usage. -# -# *** -# Recommended process for removing a `-dir/` line from this file: -# -# 1. Remove the `-dir/` line from this paths file. -# a. Possibly add some subdirectories if needed to reduce scope, -# like `-dir/sub_dir/`. -# 2. Add `#pragma allow_unsafe_buffers` to every file in the directory that now -# has a compilation error, with a TODO to the tracking bug for the -# directory: -# ``` -# #ifdef UNSAFE_BUFFERS_BUILD -# // TODO(crbug.com/ABC): Remove this and convert code to safer constructs. -# #pragma allow_unsafe_buffers -# #endif -# ``` -# 3. Work through the files in the directory, converting pointers to spans, or -# to owning containers like HeapArray and vector. Remove the pragmas from -# the files when there is no unsafe pointer usage left in each one. -# -# See `docs/unsafe_buffers.md`. - --android_webview/ --apps/ --ash/ --base/allocator --base/third_party --build/ --build_overrides/ --buildtools/ --cc/ --chrome/ -+chrome/browser/apps/guest_view/ -+chrome/browser/autofill/ -+chrome/browser/extensions/api/web_view/ -+chrome/browser/guest_view/ -+chrome/browser/history_clusters/ -+chrome/browser/history_embeddings/ -+chrome/browser/manta/ -+chrome/browser/model_execution/ -+chrome/browser/navigation_predictor/ -+chrome/browser/page_image_service/ -+chrome/browser/performance_manager/ -+chrome/browser/preloading/ -+chrome/browser/ui/autofill/ -+chrome/browser/ui/views/autofill/ -+chrome/browser/ui/webui/history_clusters/ -+chrome/browser/win/ --chromecast/ --chromeos/ --clank/ --codelabs/ --components/ -+components/autofill/ -+components/compose/ -+components/discardable_memory/ -+components/guest_view/ -+components/history_clusters/ -+components/history_embeddings/ -+components/manta/ -+components/optimization_guide/content/ -+components/optimization_guide/core/ -+components/optimization_guide/internal/testdata/ -+components/optimization_guide/internal/testing/ -+components/optimization_guide/internal/tools/ -+components/optimization_guide/optimization_guide_internals/ -+components/optimization_guide/proto/ -+components/optimization_guide/tools/ -+components/page_image_service/ -+components/password_manager/ -+components/performance_manager/ -+components/plus_addresses/ -+components/prefs/ -+components/sync/ -+components/sync_bookmarks/ -+components/sync_device_info/ -+components/sync_preferences/ -+components/sync_sessions/ -+components/sync_user_events/ -+components/variations/ --courgette/ --crypto/ --data/ --device/ --docs/ --fuchsia_web/ --gin/ --google_apis/ --google_update/ --gpu/ --headless/ --infra/ --internal/ --ios/ --ios_internal/ --ipc/ --media/ --native_client/ --native_client_sdk/ --net/third_party/ --net/ftp/ --ppapi/ --printing/ --remoting/ --sandbox/ --services/accessibility --services/data_decoder --services/shape_detection --services/tracing/public/cpp/perfetto/ --signing_keys/ --skia/ --sql/ --storage/ --testing/ --third_party/ --tools/ --ui/ -+ui/views/ --url/third_party --v8/ - -# TODO(crbug.com/41497066#comment22) The Win SDK headers don't get categorized -# as system headers when building with DEPOT_TOOLS_WIN_TOOLCHAIN=0 ? --Program Files (x86)/Windows Kits/