1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-20 07:59:00 +00:00
Michal Privoznik 77d1fa5e75 tests: Compile virgdbusmock.c with GIO_COMPILATION enabled
There are couple of g_dbus_*() functions we provide an
alternative implementation for in our virgdbusmock.c. However,
these functions are declared in gio/gdbusconnection.h as:

  GIO_AVAILABLE_IN_ALL
  GDBusConnection  *g_bus_get_sync (GBusType            bus_type,
                                    GCancellable       *cancellable,
                                    GError            **error);

where GIO_AVAILABLE_IN_ALL is declared as (in
/gio/gio-visibility.h):

  #if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(GIO_STATIC_COMPILATION)
  #  define _GIO_EXPORT __declspec(dllexport)
  #  define _GIO_IMPORT __declspec(dllimport)
  #elif __GNUC__ >= 4
  #  define _GIO_EXPORT __attribute__((visibility("default")))
  #  define _GIO_IMPORT
  #else
  #  define _GIO_EXPORT
  #  define _GIO_IMPORT
  #endif
  #ifdef GIO_COMPILATION
  #  define _GIO_API _GIO_EXPORT
  #else
  #  define _GIO_API _GIO_IMPORT
  #endif

  #define _GIO_EXTERN _GIO_API extern

  #define GIO_AVAILABLE_IN_ALL _GIO_EXTERN

Now, on mingw the functions we mock are declared with dllimport
attribute which makes the compiler unhappy:

  ../tests/virgdbusmock.c:25:24: error: 'g_bus_get_sync'
  redeclared without dllimport attribute: previous dllimport
  ignored [-Werror=attributes]

The solution is to do what glib does when it compiles the gio
module: set GIO_COMPILATION macro which in turn annotates the
function with dllexport attribute.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2023-03-28 09:43:40 +02:00
..
2023-02-14 13:59:45 +01:00
2023-02-14 13:59:45 +01:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-11-11 08:10:34 -07:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-01-12 11:43:30 +01:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2023-03-06 14:35:35 +01:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2023-03-09 14:09:16 +01:00
2023-03-13 13:29:07 +01:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2023-03-13 13:29:07 +01:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00
2022-06-16 06:43:58 +02:00