63 lines
2.6 KiB
Diff
63 lines
2.6 KiB
Diff
diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn
|
|
index 2673c6a79889..ca5726966ac0 100644
|
|
--- build/config/compiler/BUILD.gn
|
|
+++ build/config/compiler/BUILD.gn
|
|
@@ -443,7 +443,7 @@ config("compiler") {
|
|
# chromeos binutils has been patched with the fix, so always use icf there.
|
|
# The bug only affects x86 and x64, so we can still use ICF when targeting
|
|
# other architectures.
|
|
- if ((!is_android && linux_use_bundled_binutils) || is_chromeos ||
|
|
+ if ((!is_android && linux_use_bundled_binutils && current_cpu != "x86") || is_chromeos ||
|
|
!(current_cpu == "x86" || current_cpu == "x64")) {
|
|
ldflags += [ "-Wl,--icf=all" ]
|
|
}
|
|
diff --git chrome/browser/ui/libgtkui/gtk_util.cc chrome/browser/ui/libgtkui/gtk_util.cc
|
|
index fc6ffb9d..f6c22e5 100644
|
|
--- chrome/browser/ui/libgtkui/gtk_util.cc
|
|
+++ chrome/browser/ui/libgtkui/gtk_util.cc
|
|
@@ -56,6 +56,7 @@ void CommonInitFromCommandLine(const base::CommandLine& command_line,
|
|
}
|
|
}
|
|
|
|
+#if GTK_MAJOR_VERSION > 2
|
|
using GtkSetState = void (*)(GtkWidgetPath*, gint, GtkStateFlags);
|
|
PROTECTED_MEMORY_SECTION base::ProtectedMemory<GtkSetState>
|
|
_gtk_widget_path_iter_set_state;
|
|
@@ -63,6 +64,7 @@ PROTECTED_MEMORY_SECTION base::ProtectedMemory<GtkSetState>
|
|
using GtkSetObjectName = void (*)(GtkWidgetPath*, gint, const char*);
|
|
PROTECTED_MEMORY_SECTION base::ProtectedMemory<GtkSetObjectName>
|
|
_gtk_widget_path_iter_set_object_name;
|
|
+#endif
|
|
|
|
} // namespace
|
|
|
|
@@ -401,10 +403,12 @@ ScopedStyleContext AppendCssNodeToStyleContext(GtkStyleContext* context,
|
|
NOTREACHED();
|
|
}
|
|
} else {
|
|
+#if GTK_MAJOR_VERSION > 2
|
|
static base::ProtectedMemory<GtkSetObjectName>::Initializer init(
|
|
&_gtk_widget_path_iter_set_object_name,
|
|
reinterpret_cast<GtkSetObjectName>(dlsym(
|
|
GetGtkSharedLibrary(), "gtk_widget_path_iter_set_object_name")));
|
|
+#endif
|
|
switch (part_type) {
|
|
case CSS_NAME: {
|
|
if (GtkVersionCheck(3, 20)) {
|
|
@@ -449,6 +453,7 @@ ScopedStyleContext AppendCssNodeToStyleContext(GtkStyleContext* context,
|
|
// widgets specially if they want to.
|
|
gtk_widget_path_iter_add_class(path, -1, "chromium");
|
|
|
|
+#if GTK_MAJOR_VERSION > 2
|
|
if (GtkVersionCheck(3, 14)) {
|
|
static base::ProtectedMemory<GtkSetState>::Initializer init(
|
|
&_gtk_widget_path_iter_set_state,
|
|
@@ -457,6 +462,7 @@ ScopedStyleContext AppendCssNodeToStyleContext(GtkStyleContext* context,
|
|
DCHECK(*_gtk_widget_path_iter_set_state);
|
|
base::UnsanitizedCfiCall(_gtk_widget_path_iter_set_state)(path, -1, state);
|
|
}
|
|
+#endif
|
|
|
|
ScopedStyleContext child_context(gtk_style_context_new());
|
|
gtk_style_context_set_path(child_context, path);
|