firefox: cbindgen 0.24.0+ patch, amend wayland-only patch

This commit is contained in:
Owen Rafferty 2022-06-10 00:25:15 -05:00
parent fcc3c85a4b
commit 2d692d9759
No known key found for this signature in database
GPG Key ID: A68B10E2554DEBCB
4 changed files with 224 additions and 16 deletions

View File

@ -3,8 +3,9 @@ f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e
3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f
f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369
036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37
d3ea2503dff0a602bb058153533ebccd8232e8aac1dc82437a55d724b8d22bc2
ba6e380bc3d2cbd1b3a505ab97687498335c334d8a4be7f465ad30ee366806c7
86ce49e650dd117f0f2928a7f810a58df526b1087c274d35eeb9c5bbf09eac5b
0317f66976cd50bc34688033cfb220e84cb8a3c909133f05c67e951d4d8100f1
515da65465d805a506f3b72f2f35b559ec3e39cc4fe6476eaf03c431980fa826
509ce8c2e956481850cf3fbbeb2adcfd72a29f0699ccf2d00c24d1f81167a1dc
4a232e3aa3973894a58c126b9e901c924d4e1ca3e00c4fc82d08de4b880183a9

View File

@ -0,0 +1,16 @@
Description: Remove an extra constant definition that is now being generated by newer versions of cbindgen (0.24), and causing build failures because it is defined in several places.
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1773259
Forwarded: not-needed
--- a/gfx/webrender_bindings/webrender_ffi.h
+++ b/gfx/webrender_bindings/webrender_ffi.h
@@ -73,8 +73,6 @@ struct WrPipelineInfo;
struct WrPipelineIdAndEpoch;
using WrPipelineIdEpochs = nsTArray<WrPipelineIdAndEpoch>;
-const uint64_t ROOT_CLIP_CHAIN = ~0;
-
} // namespace wr
} // namespace mozilla

View File

@ -1,27 +1,189 @@
diff --git a/widget/gtk/CompositorWidgetParent.cpp b/widget/gtk/CompositorWidgetParent.cpp
index 4382ccf..9986146 100644
--- a/widget/gtk/CompositorWidgetParent.cpp
+++ b/widget/gtk/CompositorWidgetParent.cpp
@@ -6,9 +6,9 @@
#include "CompositorWidgetParent.h"
#include "mozilla/Unused.h"
#include "mozilla/widget/PlatformWidgetTypes.h"
+#include "nsWindow.h"
-namespace mozilla {
-namespace widget {
+namespace mozilla::widget {
CompositorWidgetParent::CompositorWidgetParent(
const CompositorWidgetInitData& aInitData,
@@ -51,5 +51,4 @@ mozilla::ipc::IPCResult CompositorWidgetParent::RecvEnableRendering(
return IPC_OK();
}
-} // namespace widget
-} // namespace mozilla
+} // namespace mozilla::widget
diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp
index 07a1226..0a1d888 100644
--- a/widget/gtk/GtkCompositorWidget.cpp
+++ b/widget/gtk/GtkCompositorWidget.cpp
@@ -5,6 +5,7 @@
#include "GtkCompositorWidget.h"
+#include "mozilla/gfx/gfxVars.h"
#include "mozilla/layers/CompositorThread.h"
#include "mozilla/widget/InProcessCompositorWidget.h"
#include "mozilla/widget/PlatformWidgetTypes.h"
diff --git a/widget/gtk/IMContextWrapper.cpp b/widget/gtk/IMContextWrapper.cpp
index cc84d40..e2180f5 100644
--- a/widget/gtk/IMContextWrapper.cpp
+++ b/widget/gtk/IMContextWrapper.cpp
@@ -7,6 +7,7 @@
#include "mozilla/Logging.h"
#include "nsString.h"
#include "prtime.h"
+#include "prenv.h"
#include "IMContextWrapper.h"
#include "nsGtkKeyUtils.h"
diff --git a/widget/gtk/InProcessGtkCompositorWidget.cpp b/widget/gtk/InProcessGtkCompositorWidget.cpp
index 4158118..bffd6f5 100644
--- a/widget/gtk/InProcessGtkCompositorWidget.cpp
+++ b/widget/gtk/InProcessGtkCompositorWidget.cpp
@@ -8,10 +8,10 @@
#include "mozilla/widget/PlatformWidgetTypes.h"
#include "InProcessGtkCompositorWidget.h"
+#include "VsyncDispatcher.h"
#include "nsWindow.h"
-namespace mozilla {
-namespace widget {
+namespace mozilla::widget {
/* static */
RefPtr<CompositorWidget> CompositorWidget::CreateLocal(
@@ -41,5 +41,4 @@ void InProcessGtkCompositorWidget::ObserveVsync(VsyncObserver* aObserver) {
}
}
-} // namespace widget
-} // namespace mozilla
+} // namespace mozilla::widget
diff --git a/widget/gtk/MPRISServiceHandler.cpp b/widget/gtk/MPRISServiceHandler.cpp
index ad85082..e21e46f 100644
--- a/widget/gtk/MPRISServiceHandler.cpp
+++ b/widget/gtk/MPRISServiceHandler.cpp
@@ -12,6 +12,7 @@
#include "MPRISInterfaceDescription.h"
#include "mozilla/dom/MediaControlUtils.h"
+#include "mozilla/GRefPtr.h"
#include "mozilla/GUniquePtr.h"
#include "mozilla/UniquePtrExtensions.h"
#include "mozilla/Maybe.h"
diff --git a/widget/gtk/WindowSurfaceX11.cpp b/widget/gtk/WindowSurfaceX11.cpp
index a32cc12..36b238a 100644
--- a/widget/gtk/WindowSurfaceX11.cpp
+++ b/widget/gtk/WindowSurfaceX11.cpp
@@ -6,10 +6,8 @@
#include "WindowSurfaceX11.h"
#include "gfxPlatform.h"
-#include "X11UndefineNone.h"
-namespace mozilla {
-namespace widget {
+namespace mozilla::widget {
WindowSurfaceX11::WindowSurfaceX11(Display* aDisplay, Window aWindow,
Visual* aVisual, unsigned int aDepth)
@@ -46,5 +44,4 @@ gfx::SurfaceFormat WindowSurfaceX11::GetVisualFormat(const Visual* aVisual,
return gfx::SurfaceFormat::UNKNOWN;
}
-} // namespace widget
-} // namespace mozilla
+} // namespace mozilla::widget
diff --git a/widget/gtk/WindowSurfaceX11.h b/widget/gtk/WindowSurfaceX11.h
index d297ec6..dda17bf 100644
--- a/widget/gtk/WindowSurfaceX11.h
+++ b/widget/gtk/WindowSurfaceX11.h
@@ -13,9 +13,9 @@
# include "mozilla/gfx/Types.h"
# include <X11/Xlib.h>
+# include "X11UndefineNone.h"
-namespace mozilla {
-namespace widget {
+namespace mozilla::widget {
class WindowSurfaceX11 : public WindowSurface {
public:
@@ -33,8 +33,7 @@ class WindowSurfaceX11 : public WindowSurface {
const gfx::SurfaceFormat mFormat;
};
-} // namespace widget
-} // namespace mozilla
+} // namespace mozilla::widget
#endif // MOZ_X11
#endif // _MOZILLA_WIDGET_GTK_WINDOW_SURFACE_X11_H
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
index 5218c7d..2e578b9 100644
--- a/widget/gtk/moz.build
+++ b/widget/gtk/moz.build
@@ -187,6 +187,5 @@ if CONFIG["MOZ_ENABLE_DBUS"]:
"AsyncDBus.cpp",
]
CXXFLAGS += CONFIG["MOZ_DBUS_GLIB_CFLAGS"]
-CXXFLAGS += ["-Werror=switch"]
-REQUIRES_UNIFIED_BUILD = True
+CXXFLAGS += ["-Werror=switch"]
diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c
index d7dbbc6..fd88c49 100644
index d7dbbc6..8c73c89 100644
--- a/widget/gtk/mozgtk/mozgtk.c
+++ b/widget/gtk/mozgtk/mozgtk.c
@@ -6,6 +6,8 @@
@@ -6,6 +6,12 @@
#include "mozilla/Types.h"
+MOZ_EXPORT unsigned int gtk_get_debug_flags(void) { return 0; }
+// Dummy call to gtk3 library to prevent the linker from removing
+// the gtk3 dependency with --as-needed.
+// see toolkit/library/moz.build for details.
+MOZ_EXPORT void gdk_display_get_default();
+MOZ_EXPORT void mozgtk_linker_holder(void) { gdk_display_get_default(); }
+
#ifdef MOZ_X11
# include <X11/Xlib.h>
// Bug 1271100
diff --git a/widget/gtk/nsApplicationChooser.cpp b/widget/gtk/nsApplicationChooser.cpp
index 2ebb62f..6752c52 100644
--- a/widget/gtk/nsApplicationChooser.cpp
+++ b/widget/gtk/nsApplicationChooser.cpp
@@ -11,6 +11,7 @@
#include "WidgetUtils.h"
#include "nsIMIMEInfo.h"
#include "nsIWidget.h"
+#include "nsIFile.h"
#include "nsCExternalHandlerService.h"
#include "nsComponentManagerUtils.h"
#include "nsGtkUtils.h"
diff --git a/widget/gtk/nsClipboard.cpp b/widget/gtk/nsClipboard.cpp
index 555e8ce..543027f 100644
index 555e8ce..fd49d92 100644
--- a/widget/gtk/nsClipboard.cpp
+++ b/widget/gtk/nsClipboard.cpp
@@ -34,12 +34,15 @@
@@ -31,6 +31,7 @@
#include "nsIObserverService.h"
#include "mozilla/Services.h"
#include "mozilla/RefPtr.h"
+#include "mozilla/GRefPtr.h"
#include "mozilla/SchedulerGroup.h"
#include "mozilla/StaticPrefs_widget.h"
#include "mozilla/TimeStamp.h"
+#include "GRefPtr.h"
#include "WidgetUtilsGtk.h"
@@ -39,7 +40,9 @@
#include "imgIContainer.h"
#include <gtk/gtk.h>
@ -32,11 +194,44 @@ index 555e8ce..543027f 100644
#include "mozilla/Encoding.h"
diff --git a/widget/gtk/nsGtkKeyUtils.h b/widget/gtk/nsGtkKeyUtils.h
index 6fcc3e9..8462b6d 100644
--- a/widget/gtk/nsGtkKeyUtils.h
+++ b/widget/gtk/nsGtkKeyUtils.h
@@ -20,6 +20,7 @@
# include <gdk/gdkwayland.h>
# include <xkbcommon/xkbcommon.h>
#endif
+#include "X11UndefineNone.h"
class nsWindow;
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
index c09386c..9db855a 100644
index e14c4f4..3bd659d 100644
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -5304,12 +5304,11 @@ void nsWindow::ConfigureGdkWindow() {
@@ -267,6 +267,9 @@ static SystemTimeConverter<guint32>& TimeConverter() {
bool nsWindow::sTransparentMainWindow = false;
+/* forward declare from mozgtk */
+MOZ_EXPORT extern "C" void mozgtk_linker_holder(void);
+
namespace mozilla {
#ifdef MOZ_X11
@@ -426,6 +429,10 @@ nsWindow::nsWindow()
}
#endif
}
+ // Dummy call to mozgtk to prevent the linker from removing
+ // the dependency with --as-needed.
+ // see toolkit/library/moz.build for details.
+ mozgtk_linker_holder();
}
nsWindow::~nsWindow() {
@@ -5302,10 +5309,6 @@ void nsWindow::ConfigureGdkWindow() {
// tearing because Gecko does not align its framebuffer updates with
// vblank.
SetCompositorHint(GTK_WIDGET_COMPOSIDED_ENABLED);
@ -46,9 +241,4 @@ index c09386c..9db855a 100644
- XShmQueryExtension(DefaultXDisplay());
}
#endif
+ // Dummy call to a function in mozgtk to prevent the linker from removing
+ // the dependency with --as-needed.
+ gtk_get_debug_flags();
#ifdef MOZ_WAYLAND
if (GdkIsWaylandDisplay()) {
mSurfaceProvider.Initialize(this);

View File

@ -3,6 +3,7 @@ https://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz autoconf2.13/
https://github.com/yasm/yasm/releases/download/v1.3.0/yasm-1.3.0.tar.gz yasm
https://fossies.org/linux/misc/zip30.tar.gz zip
https://fossies.org/linux/misc/unzip60.tar.gz unzip
patches/cbindgen-fix.patch
patches/fix-clang-as.patch
patches/fix-linux-header.patch
patches/fix-wayland-only.patch