From 4921b5d1c9471dcde666a43fb991cb5d218d62af Mon Sep 17 00:00:00 2001 From: Harley Acheson Date: Wed, 28 Oct 2020 22:56:49 +1100 Subject: [PATCH 1/3] UI: Save Preferences Button Not Translating Ref D9338 --- release/scripts/startup/bl_ui/space_userpref.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index b4b8a631b93..b96e317e2e9 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -45,7 +45,8 @@ class USERPREF_HT_header(Header): # Show '*' to let users know the preferences have been modified. layout.operator( "wm.save_userpref", - text="Save Preferences" + (" *" if prefs.is_dirty else ""), + text=iface_("Save Preferences") + (" *" if prefs.is_dirty else ""), + translate=False, ) def draw(self, context): From fc6a1f44d2ed6b3f793cbdc806d7030d6ddac2c3 Mon Sep 17 00:00:00 2001 From: Ankit Meel Date: Wed, 28 Oct 2020 20:52:51 +0530 Subject: [PATCH 2/3] macOS: use -fno-strict-aliasing for all build types. The old code was added in {rBbaa4a9c7d4dd} While the hotfix committed in {rB2ddecfffc3d3a3a1db4ae45e8665ca} fixed the id_management test, the correct reason was found at https://bugs.llvm.org/show_bug.cgi?id=47984 This matches the behavior on Linux. --- build_files/cmake/platform/platform_apple.cmake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake index 4697e6bc766..962033c32bc 100644 --- a/build_files/cmake/platform/platform_apple.cmake +++ b/build_files/cmake/platform/platform_apple.cmake @@ -194,7 +194,7 @@ if(SYSTEMSTUBS_LIBRARY) list(APPEND PLATFORM_LINKLIBS SystemStubs) endif() -set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -pipe -funsigned-char") +set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -pipe -funsigned-char -fno-strict-aliasing") set(PLATFORM_LINKFLAGS "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework Metal -framework QuartzCore" ) @@ -425,8 +425,8 @@ endif() set(EXETYPE MACOSX_BUNDLE) -set(CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g") -set(CMAKE_CXX_FLAGS_DEBUG "-fno-strict-aliasing -g") +set(CMAKE_C_FLAGS_DEBUG "-g") +set(CMAKE_CXX_FLAGS_DEBUG "-g") if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR CMAKE_OSX_ARCHITECTURES MATCHES "i386") set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3") set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3") @@ -435,8 +435,8 @@ if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR CMAKE_OSX_ARCHITECTURES MATCHES " set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller") endif() else() - set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -fno-strict-aliasing") - set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -fno-strict-aliasing") + set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic") + set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic") endif() if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5) From 30ec0753c75ca4c4ca8744727b7ac70b12d074f6 Mon Sep 17 00:00:00 2001 From: Ankit Meel Date: Wed, 28 Oct 2020 20:54:10 +0530 Subject: [PATCH 3/3] Revert "Fix T81077 id_management test on macOS" This reverts commit 2ddecfffc3d3a3a1db4ae45e8665caa2a85ab43a. The correct fix is to compile with -fno-strict-aliasing on release/relwithdebinfo builds also. See the last commit/ {D9372}. Maniphest Task T81077 --- source/blender/blenkernel/intern/lib_id_delete.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/source/blender/blenkernel/intern/lib_id_delete.c b/source/blender/blenkernel/intern/lib_id_delete.c index 25c48479ef9..1e45a3c1163 100644 --- a/source/blender/blenkernel/intern/lib_id_delete.c +++ b/source/blender/blenkernel/intern/lib_id_delete.c @@ -261,9 +261,7 @@ static void id_delete(Main *bmain, const bool do_tagged_deletion) bool keep_looping = true; while (keep_looping) { ID *id, *id_next; - /* Marked volatile to avoid a macOS Clang optimization bug. See T81077. - * #last_remapped_id.next is assumed to be NULL by optimizer which is wrong. */ - volatile ID *last_remapped_id = tagged_deleted_ids.last; + ID *last_remapped_id = tagged_deleted_ids.last; keep_looping = false; /* First tag and remove from Main all datablocks directly from target lib.