Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15-SP4:Update
ocaml-cairo
ocaml-cairo.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ocaml-cairo.patch of Package ocaml-cairo
From 281647da218e0a61c779f7dedbe55163ead0085c Mon Sep 17 00:00:00 2001 From: Jerry James <loganjerry@gmail.com> Date: Wed, 29 Jan 2020 10:57:27 -0700 Subject: [PATCH] Ensure exactly 1 definition per variable for building with -fno-common --- src/cairo_ocaml.h.p | 18 +++++++++--------- src/cairo_ocaml_types.h | 8 -------- src/cairo_stubs.c | 21 +++++++++++++++++++++ 3 files changed, 30 insertions(+), 17 deletions(-) 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. ***********************************************************************/
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor