Add -fno-common patch to fix builds of consuming packages with GCC 10.
This commit is contained in:
parent
0e09496d77
commit
49983471ca
|
@ -0,0 +1,126 @@
|
|||
diff --git a/src/cairo_ocaml.h.p b/src/cairo_ocaml.h.p
|
||||
index 4192aed..78a02e2 100644
|
||||
--- a/src/cairo_ocaml.h.p
|
||||
+++ b/src/cairo_ocaml.h.p
|
||||
@@ -25,7 +25,7 @@
|
||||
/* cairo_t
|
||||
***********************************************************************/
|
||||
#define CAIRO_VAL(v) (* (cairo_t **) Data_custom_val(v))
|
||||
-struct custom_operations caml_cairo_ops;
|
||||
+CAMLextern struct custom_operations caml_cairo_ops;
|
||||
|
||||
void caml_cairo_raise_Error(cairo_status_t status);
|
||||
/* raise [Cairo.Error] if the status indicates a failure. */
|
||||
@@ -33,7 +33,7 @@ void caml_cairo_raise_Error(cairo_status_t status);
|
||||
/* cairo_pattern_t
|
||||
***********************************************************************/
|
||||
#define PATTERN_VAL(v) (* (cairo_pattern_t **) Data_custom_val(v))
|
||||
-struct custom_operations caml_pattern_ops;
|
||||
+CAMLextern struct custom_operations caml_pattern_ops;
|
||||
|
||||
#define EXTEND_VAL(v) ((cairo_extend_t) Int_val(v))
|
||||
#define VAL_EXTEND(v) Val_int(v)
|
||||
@@ -45,12 +45,12 @@ struct custom_operations caml_pattern_ops;
|
||||
***********************************************************************/
|
||||
|
||||
#define FONT_OPTIONS_VAL(v) (* (cairo_font_options_t**) Data_custom_val(v))
|
||||
-struct custom_operations caml_font_options_ops;
|
||||
+CAMLextern struct custom_operations caml_font_options_ops;
|
||||
|
||||
/* cairo_font_type_t
|
||||
***********************************************************************/
|
||||
|
||||
-value caml_cairo_font_type[5];
|
||||
+CAMLextern value caml_cairo_font_type[5];
|
||||
|
||||
cairo_font_type_t caml_cairo_font_type_val(value vft);
|
||||
|
||||
@@ -61,13 +61,13 @@ cairo_font_type_t caml_cairo_font_type_val(value vft);
|
||||
***********************************************************************/
|
||||
|
||||
#define SCALED_FONT_VAL(v) (* (cairo_scaled_font_t**) Data_custom_val(v))
|
||||
-struct custom_operations caml_scaled_font_ops;
|
||||
+CAMLextern struct custom_operations caml_scaled_font_ops;
|
||||
|
||||
/* cairo_surface_t
|
||||
***********************************************************************/
|
||||
|
||||
#define SURFACE_VAL(v) (* (cairo_surface_t **) Data_custom_val(v))
|
||||
-struct custom_operations caml_surface_ops;
|
||||
+CAMLextern struct custom_operations caml_surface_ops;
|
||||
|
||||
/* Type cairo_content_t */
|
||||
|
||||
@@ -93,7 +93,7 @@ struct custom_operations caml_surface_ops;
|
||||
***********************************************************************/
|
||||
|
||||
#define PATH_VAL(v) (* (cairo_path_t **) Data_custom_val(v))
|
||||
-struct custom_operations caml_path_ops;
|
||||
+CAMLextern struct custom_operations caml_path_ops;
|
||||
|
||||
#define PATH_DATA_ASSIGN(vdata, data) \
|
||||
switch (data->header.type) { \
|
||||
@@ -151,10 +151,10 @@ struct custom_operations caml_path_ops;
|
||||
#include <cairo-ft.h>
|
||||
|
||||
#define FT_LIBRARY_VAL(v) (* (FT_Library*) Data_custom_val(v))
|
||||
-struct custom_operations caml_cairo_ft_library_ops;
|
||||
+CAMLextern struct custom_operations caml_cairo_ft_library_ops;
|
||||
|
||||
#define FT_FACE_VAL(v) (* (FT_Face*) Data_custom_val(v))
|
||||
-struct custom_operations caml_cairo_ft_face_ops;
|
||||
+CAMLextern struct custom_operations caml_cairo_ft_face_ops;
|
||||
|
||||
#endif /* OCAML_CAIRO_HAS_FT */
|
||||
|
||||
diff --git a/src/cairo_ocaml_types.h b/src/cairo_ocaml_types.h
|
||||
index b850ae2..b036142 100644
|
||||
--- a/src/cairo_ocaml_types.h
|
||||
+++ b/src/cairo_ocaml_types.h
|
||||
@@ -267,14 +267,6 @@ static intnat caml_cairo_font_options_hash(value v)
|
||||
return(cairo_font_options_hash(FONT_OPTIONS_VAL(v)));
|
||||
}
|
||||
|
||||
-struct custom_operations caml_font_options_ops = {
|
||||
- "font_options_t", /* identifier for serialization and deserialization */
|
||||
- &caml_cairo_font_options_finalize,
|
||||
- &caml_cairo_font_options_compare,
|
||||
- &caml_cairo_font_options_hash,
|
||||
- custom_serialize_default,
|
||||
- custom_deserialize_default };
|
||||
-
|
||||
|
||||
/* caml_cairo_font_type is defined in "cairo_ocaml.h". */
|
||||
CAMLexport value caml_cairo_font_type_init(value unit)
|
||||
diff --git a/src/cairo_stubs.c b/src/cairo_stubs.c
|
||||
index de35aca..60fae71 100644
|
||||
--- a/src/cairo_stubs.c
|
||||
+++ b/src/cairo_stubs.c
|
||||
@@ -34,6 +34,27 @@
|
||||
#include "cairo_macros.h"
|
||||
#include "cairo_ocaml_types.h"
|
||||
|
||||
+CAMLexport value caml_cairo_font_type[5];
|
||||
+
|
||||
+CAMLexport struct custom_operations caml_cairo_ops;
|
||||
+CAMLexport struct custom_operations caml_pattern_ops;
|
||||
+CAMLexport struct custom_operations caml_scaled_font_ops;
|
||||
+CAMLexport struct custom_operations caml_surface_ops;
|
||||
+CAMLexport struct custom_operations caml_path_ops;
|
||||
+
|
||||
+#ifdef OCAML_CAIRO_HAS_FT
|
||||
+CAMLexport struct custom_operations caml_cairo_ft_library_ops;
|
||||
+CAMLexport struct custom_operations caml_cairo_ft_face_ops;
|
||||
+#endif
|
||||
+
|
||||
+CAMLexport struct custom_operations caml_font_options_ops = {
|
||||
+ "font_options_t", /* identifier for serialization and deserialization */
|
||||
+ &caml_cairo_font_options_finalize,
|
||||
+ &caml_cairo_font_options_compare,
|
||||
+ &caml_cairo_font_options_hash,
|
||||
+ custom_serialize_default,
|
||||
+ custom_deserialize_default };
|
||||
+
|
||||
/* cairo_t functions.
|
||||
***********************************************************************/
|
||||
|
|
@ -25,6 +25,9 @@ Source0: %{url}/releases/download/%{version}/cairo2-%{version}.tbz
|
|||
# Avoid a GC-related segfault. See:
|
||||
# https://github.com/Chris00/ocaml-cairo/issues/19
|
||||
Patch0: %{name}-test.patch
|
||||
# Fix builds of consuming packages with -fno-common.
|
||||
# https://github.com/Chris00/ocaml-cairo/pull/20
|
||||
Patch1: %{name}-fno-common.patch
|
||||
|
||||
BuildRequires: ocaml >= 4.02
|
||||
BuildRequires: ocaml-dune-devel
|
||||
|
@ -250,6 +253,7 @@ dune runtest
|
|||
- Add -gtk-devel and -pango-devel subpackages to manage dependencies
|
||||
- Add %%check script
|
||||
- Add -test patch until upstream weighs in on GC issues
|
||||
- Add -fno-common patch to fix builds of consuming packages with GCC 10
|
||||
|
||||
* Sun Jan 19 2020 Richard W.M. Jones <rjones@redhat.com> - 2:0.4.7-0.28.gitbe5a298
|
||||
- OCaml 4.10.0+beta1 rebuild.
|
||||
|
|
Loading…
Reference in New Issue