diff --git a/libs/gst/check/Makefile.am b/libs/gst/check/Makefile.am
index 849a707..61a03bc 100644
--- a/libs/gst/check/Makefile.am
+++ b/libs/gst/check/Makefile.am
@@ -28,6 +28,7 @@
 
 libgstcheck_@GST_API_VERSION@include_HEADERS =	\
 	check.h					\
+	check-prelude.h				\
 	gstbufferstraw.h			\
 	gstcheck.h				\
 	gstconsistencychecker.h			\
diff --git a/libs/gst/check/check-prelude.h b/libs/gst/check/check-prelude.h
new file mode 100644
index 0000000..6bf1366
--- /dev/null
+++ b/libs/gst/check/check-prelude.h
@@ -0,0 +1,31 @@
+/* GStreamer Check Library
+ * Copyright (C) 2018 GStreamer developers
+ *
+ * check-prelude.h: prelude include header for gst-check library
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_CHECK_PRELUDE_H__
+#define __GST_CHECK_PRELUDE_H__
+
+#include <gst/gst.h>
+
+#ifndef GST_CHECK_API
+#define GST_CHECK_API GST_EXPORT
+#endif
+
+#endif /* __GST_CHECK_PRELUDE_H__ */
diff --git a/libs/gst/check/check.h b/libs/gst/check/check.h
index 6f58164..512f06c 100644
--- a/libs/gst/check/check.h
+++ b/libs/gst/check/check.h
@@ -22,6 +22,8 @@
 #ifndef __GST_CHECK__H__
 #define __GST_CHECK__H__
 
+#include <gst/check/check-prelude.h>
+
 #include <gst/check/gstbufferstraw.h>
 #include <gst/check/gstcheck.h>
 #include <gst/check/gstconsistencychecker.h>
diff --git a/libs/gst/check/gstbufferstraw.h b/libs/gst/check/gstbufferstraw.h
index d366a85..9eec1f9 100644
--- a/libs/gst/check/gstbufferstraw.h
+++ b/libs/gst/check/gstbufferstraw.h
@@ -26,13 +26,13 @@
 
 G_BEGIN_DECLS
 
-GST_EXPORT
+GST_CHECK_API
 void        gst_buffer_straw_start_pipeline (GstElement * bin, GstPad * pad);
 
-GST_EXPORT
+GST_CHECK_API
 GstBuffer * gst_buffer_straw_get_buffer     (GstElement * bin, GstPad * pad);
 
-GST_EXPORT
+GST_CHECK_API
 void        gst_buffer_straw_stop_pipeline  (GstElement * bin, GstPad * pad);
 
 G_END_DECLS
diff --git a/libs/gst/check/gstcheck.h b/libs/gst/check/gstcheck.h
index da2e30d..94b8dae 100644
--- a/libs/gst/check/gstcheck.h
+++ b/libs/gst/check/gstcheck.h
@@ -30,13 +30,14 @@
 #include <math.h>
 
 #include <gst/gst.h>
+#include <gst/check/check-prelude.h>
 
-#define CK_DLL_EXP GST_EXPORT
+#define CK_DLL_EXP GST_CHECK_API
 #include <gst/check/internal-check.h>
 
 G_BEGIN_DECLS
 
-GST_EXPORT GstDebugCategory *check_debug;
+GST_CHECK_API GstDebugCategory *check_debug;
 #define GST_CAT_DEFAULT check_debug
 
 /* logging function for tests
@@ -44,17 +45,17 @@
  * a gst unit test can be run with GST_TEST_DEBUG env var set to see the
  * messages
  */
-GST_EXPORT gboolean _gst_check_threads_running;
-GST_EXPORT gboolean _gst_check_raised_critical;
-GST_EXPORT gboolean _gst_check_raised_warning;
-GST_EXPORT gboolean _gst_check_expecting_log;
-GST_EXPORT gboolean _gst_check_list_tests;
+GST_CHECK_API gboolean _gst_check_threads_running;
+GST_CHECK_API gboolean _gst_check_raised_critical;
+GST_CHECK_API gboolean _gst_check_raised_warning;
+GST_CHECK_API gboolean _gst_check_expecting_log;
+GST_CHECK_API gboolean _gst_check_list_tests;
 
 /* global variables used in test methods */
-GST_EXPORT GList * buffers;
+GST_CHECK_API GList * buffers;
 
-GST_EXPORT GMutex check_mutex;
-GST_EXPORT GCond check_cond;
+GST_CHECK_API GMutex check_mutex;
+GST_CHECK_API GCond check_cond;
 
 typedef struct
 {
@@ -83,114 +84,114 @@
 typedef gboolean (*GstCheckLogFilterFunc) (const gchar * log_domain,
     GLogLevelFlags log_level, const gchar * message, gpointer user_data);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_init (int *argc, char **argv[]);
 
-GST_EXPORT
+GST_CHECK_API
 GstCheckLogFilter * gst_check_add_log_filter (const gchar * log,
     GLogLevelFlags log_level, GRegex * regex, GstCheckLogFilterFunc func,
     gpointer user_data, GDestroyNotify destroy_data);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_remove_log_filter (GstCheckLogFilter * filter);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_clear_log_filter (void);
 
-GST_EXPORT
+GST_CHECK_API
 GstFlowReturn gst_check_chain_func (GstPad * pad, GstObject * parent, GstBuffer * buffer);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_message_error (GstMessage * message, GstMessageType type,
     GQuark domain, gint code);
 
-GST_EXPORT
+GST_CHECK_API
 GstElement *gst_check_setup_element (const gchar * factory);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_teardown_element (GstElement * element);
 
-GST_EXPORT
+GST_CHECK_API
 GstPad *gst_check_setup_src_pad (GstElement * element,
     GstStaticPadTemplate * tmpl);
 
-GST_EXPORT
+GST_CHECK_API
 GstPad *gst_check_setup_src_pad_from_template (GstElement * element,
     GstPadTemplate * tmpl);
 
-GST_EXPORT
+GST_CHECK_API
 GstPad * gst_check_setup_src_pad_by_name (GstElement * element,
           GstStaticPadTemplate * tmpl, const gchar *name);
 
-GST_EXPORT
+GST_CHECK_API
 GstPad * gst_check_setup_src_pad_by_name_from_template (GstElement * element,
           GstPadTemplate * tmpl, const gchar *name);
 
-GST_EXPORT
+GST_CHECK_API
 GstPad *gst_check_setup_sink_pad (GstElement * element,
     GstStaticPadTemplate * tmpl);
 
-GST_EXPORT
+GST_CHECK_API
 GstPad *gst_check_setup_sink_pad_from_template (GstElement * element,
     GstPadTemplate * tmpl);
 
-GST_EXPORT
+GST_CHECK_API
 GstPad * gst_check_setup_sink_pad_by_name (GstElement * element,
           GstStaticPadTemplate * tmpl, const gchar *name);
 
-GST_EXPORT
+GST_CHECK_API
 GstPad * gst_check_setup_sink_pad_by_name_from_template (GstElement * element,
           GstPadTemplate * tmpl, const gchar *name);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_teardown_pad_by_name (GstElement * element, const gchar *name);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_teardown_src_pad (GstElement * element);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_drop_buffers (void);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_caps_equal (GstCaps * caps1, GstCaps * caps2);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_buffer_data (GstBuffer * buffer, gconstpointer data, gsize size);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_element_push_buffer_list (const gchar * element_name,
     GList * buffer_in, GstCaps * caps_in, GList * buffer_out,
     GstCaps * caps_out, GstFlowReturn last_flow_return);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_element_push_buffer (const gchar * element_name,
     GstBuffer * buffer_in, GstCaps * caps_in, GstBuffer * buffer_out,
     GstCaps *caps_out);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_teardown_sink_pad (GstElement * element);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_abi_list (GstCheckABIStruct list[], gboolean have_abi_sizes);
 
-GST_EXPORT
+GST_CHECK_API
 gint gst_check_run_suite (Suite * suite, const gchar * name,
     const gchar * fname);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_setup_events (GstPad * srcpad, GstElement * element,
     GstCaps * caps, GstFormat format);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_setup_events_with_stream_id (GstPad * srcpad,
     GstElement * element, GstCaps * caps, GstFormat format,
     const gchar * stream_id);
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_objects_destroyed_on_unref (gpointer object_to_unref, gpointer first_object, ...)
   G_GNUC_NULL_TERMINATED;
 
-GST_EXPORT
+GST_CHECK_API
 void gst_check_object_destroyed_on_unref (gpointer object_to_unref);
 
 #define fail_unless_message_error(msg, domain, code)            \
@@ -502,10 +503,10 @@
 /***
  * thread test macros and variables
  */
-GST_EXPORT GList *thread_list;
-GST_EXPORT GMutex mutex;
-GST_EXPORT GCond start_cond;       /* used to notify main thread of thread startups */
-GST_EXPORT GCond sync_cond;        /* used to synchronize all threads and main thread */
+GST_CHECK_API GList *thread_list;
+GST_CHECK_API GMutex mutex;
+GST_CHECK_API GCond start_cond;       /* used to notify main thread of thread startups */
+GST_CHECK_API GCond sync_cond;        /* used to synchronize all threads and main thread */
 
 #define MAIN_START_THREADS(count, function, data)               \
 MAIN_INIT();                                                    \
@@ -677,7 +678,7 @@
  * GST_CHECKS environment variable (test function names globs, comma
  * separated), or GST_CHECKS_IGNORE with the same semantics */
 
-GST_EXPORT
+GST_CHECK_API
 gboolean _gst_check_run_test_func (const gchar * func_name);
 
 static inline void
diff --git a/libs/gst/check/gstconsistencychecker.h b/libs/gst/check/gstconsistencychecker.h
index 464c6a3..03ce583 100644
--- a/libs/gst/check/gstconsistencychecker.h
+++ b/libs/gst/check/gstconsistencychecker.h
@@ -34,17 +34,17 @@
  */
 typedef struct _GstStreamConsistency GstStreamConsistency;
 
-GST_EXPORT
+GST_CHECK_API
 GstStreamConsistency * gst_consistency_checker_new     (GstPad * pad);
 
-GST_EXPORT
+GST_CHECK_API
 gboolean               gst_consistency_checker_add_pad (GstStreamConsistency * consist,
                                                         GstPad * pad);
 
-GST_EXPORT
+GST_CHECK_API
 void                   gst_consistency_checker_reset   (GstStreamConsistency * consist);
 
-GST_EXPORT
+GST_CHECK_API
 void                   gst_consistency_checker_free    (GstStreamConsistency * consist);
 
 G_END_DECLS
diff --git a/libs/gst/check/gstharness.h b/libs/gst/check/gstharness.h
index 3c5c4dd..5a81fe0 100644
--- a/libs/gst/check/gstharness.h
+++ b/libs/gst/check/gstharness.h
@@ -23,6 +23,7 @@
 
 #include <gst/gst.h>
 #include <gst/check/gsttestclock.h>
+#include <gst/check/check-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -63,10 +64,10 @@
 
 /* Harness creation */
 
-GST_EXPORT
+GST_CHECK_API
 GstHarness * gst_harness_new_empty (void);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_add_element_full (GstHarness           * h,
                                            GstElement           * element,
                                            GstStaticPadTemplate * hsrc,
@@ -74,265 +75,265 @@
                                            GstStaticPadTemplate * hsink,
                                            const gchar          * element_srcpad_name);
 
-GST_EXPORT
+GST_CHECK_API
 GstHarness * gst_harness_new_full (GstElement * element,
                                    GstStaticPadTemplate * hsrc,
                                    const gchar          * element_sinkpad_name,
                                    GstStaticPadTemplate * hsink,
                                    const gchar          * element_srcpad_name);
 
-GST_EXPORT
+GST_CHECK_API
 GstHarness * gst_harness_new_with_element  (GstElement  * element,
                                             const gchar * element_sinkpad_name,
                                             const gchar * element_srcpad_name);
 
-GST_EXPORT
+GST_CHECK_API
 GstHarness * gst_harness_new_with_padnames (const gchar * element_name,
                                             const gchar * element_sinkpad_name,
                                             const gchar * element_srcpad_name);
 
-GST_EXPORT
+GST_CHECK_API
 GstHarness * gst_harness_new_with_templates (const gchar * element_name,
                                              GstStaticPadTemplate * hsrc,
                                              GstStaticPadTemplate * hsink);
 
-GST_EXPORT
+GST_CHECK_API
 GstHarness * gst_harness_new (const gchar * element_name);
 
-GST_EXPORT
+GST_CHECK_API
 GstHarness * gst_harness_new_parse (const gchar * launchline);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_add_parse (GstHarness * h, const gchar * launchline);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_teardown (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_add_element_src_pad  (GstHarness * h, GstPad * srcpad);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_add_element_sink_pad (GstHarness * h, GstPad * sinkpad);
 
 /* Caps Functions */
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_set_src_caps  (GstHarness * h, GstCaps * caps);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_set_sink_caps (GstHarness * h, GstCaps * caps);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_set_caps (GstHarness * h, GstCaps * in, GstCaps * out);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_set_src_caps_str  (GstHarness * h, const gchar * str);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_set_sink_caps_str (GstHarness * h, const gchar * str);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_set_caps_str (GstHarness  * h,
                                        const gchar * in,
                                        const gchar * out);
 
 /* Clock Functions */
 
-GST_EXPORT
+GST_CHECK_API
 void           gst_harness_use_systemclock (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 void           gst_harness_use_testclock (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 GstTestClock * gst_harness_get_testclock (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 gboolean       gst_harness_set_time (GstHarness * h, GstClockTime time);
 
-GST_EXPORT
+GST_CHECK_API
 gboolean       gst_harness_wait_for_clock_id_waits (GstHarness * h,
                                                     guint waits,
                                                     guint timeout);
 
-GST_EXPORT
+GST_CHECK_API
 gboolean       gst_harness_crank_single_clock_wait (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 gboolean       gst_harness_crank_multiple_clock_waits (GstHarness * h,
                                                        guint waits);
 
 /* misc */
 
-GST_EXPORT
+GST_CHECK_API
 void           gst_harness_play (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 void           gst_harness_set_blocking_push_mode (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 void           gst_harness_set_forwarding (GstHarness * h, gboolean forwarding);
 
 /* buffers */
 
-GST_EXPORT
+GST_CHECK_API
 GstBuffer *    gst_harness_create_buffer (GstHarness * h, gsize size);
 
-GST_EXPORT
+GST_CHECK_API
 GstFlowReturn  gst_harness_push (GstHarness * h, GstBuffer * buffer);
 
-GST_EXPORT
+GST_CHECK_API
 GstBuffer *    gst_harness_pull (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 GstBuffer *    gst_harness_try_pull (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 GstBuffer *    gst_harness_push_and_pull (GstHarness * h, GstBuffer * buffer);
 
-GST_EXPORT
+GST_CHECK_API
 guint          gst_harness_buffers_received (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 guint          gst_harness_buffers_in_queue (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 void           gst_harness_set_drop_buffers (GstHarness * h, gboolean drop_buffers);
 
-GST_EXPORT
+GST_CHECK_API
 void           gst_harness_dump_to_file (GstHarness * h, const gchar * filename);
 
-GST_EXPORT
+GST_CHECK_API
 guint8 *       gst_harness_take_all_data (GstHarness * h, gsize * size);
 
-GST_EXPORT
+GST_CHECK_API
 GstBuffer *    gst_harness_take_all_data_as_buffer (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 GBytes *       gst_harness_take_all_data_as_bytes (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 GstClockTime   gst_harness_get_last_pushed_timestamp (GstHarness * h);
 
 /* downstream events */
 
-GST_EXPORT
+GST_CHECK_API
 gboolean       gst_harness_push_event (GstHarness * h, GstEvent * event);
 
-GST_EXPORT
+GST_CHECK_API
 GstEvent *     gst_harness_pull_event (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 GstEvent *     gst_harness_try_pull_event  (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 guint          gst_harness_events_received (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 guint          gst_harness_events_in_queue (GstHarness * h);
 
 /* upstream events */
 
-GST_EXPORT
+GST_CHECK_API
 gboolean   gst_harness_push_upstream_event (GstHarness * h, GstEvent * event);
 
-GST_EXPORT
+GST_CHECK_API
 GstEvent * gst_harness_pull_upstream_event (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 GstEvent * gst_harness_try_pull_upstream_event  (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 guint      gst_harness_upstream_events_received (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 guint      gst_harness_upstream_events_in_queue (GstHarness * h);
 
 /* latency */
 
-GST_EXPORT
+GST_CHECK_API
 GstClockTime gst_harness_query_latency (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_set_upstream_latency (GstHarness * h, GstClockTime latency);
 
 /* allocator and allocation params */
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_set_propose_allocator (GstHarness                * h,
                                                 GstAllocator              * allocator,
                                                 const GstAllocationParams * params);
 
-GST_EXPORT
+GST_CHECK_API
 void         gst_harness_get_allocator         (GstHarness          * h,
                                                 GstAllocator       ** allocator,
                                                 GstAllocationParams * params);
 
 /* src-harness */
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_harness_add_src_harness (GstHarness * h,
                                            GstHarness * src_harness,
                                            gboolean has_clock_wait);
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_harness_add_src (GstHarness  * h,
                                    const gchar * src_element_name,
                                    gboolean      has_clock_wait);
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_harness_add_src_parse (GstHarness  * h,
                                          const gchar * launchline,
                                          gboolean      has_clock_wait);
 
-GST_EXPORT
+GST_CHECK_API
 GstFlowReturn gst_harness_push_from_src (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 GstFlowReturn gst_harness_src_crank_and_push_many (GstHarness * h,
                                                    gint         cranks,
                                                    gint         pushes);
 
-GST_EXPORT
+GST_CHECK_API
 gboolean      gst_harness_src_push_event (GstHarness * h);
 
 /* sink-harness */
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_harness_add_sink_harness (GstHarness * h,
                                             GstHarness * sink_harness);
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_harness_add_sink (GstHarness  * h,
                                     const gchar * sink_element_name);
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_harness_add_sink_parse (GstHarness  * h,
                                           const gchar * launchline);
 
-GST_EXPORT
+GST_CHECK_API
 GstFlowReturn gst_harness_push_to_sink   (GstHarness * h);
 
-GST_EXPORT
+GST_CHECK_API
 GstFlowReturn gst_harness_sink_push_many (GstHarness * h, gint pushes);
 
 /* convenience functions */
 
-GST_EXPORT
+GST_CHECK_API
 GstElement *  gst_harness_find_element (GstHarness * h,
                                        const gchar * element_name);
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_harness_set (GstHarness  * h,
                                const gchar * element_name,
                                const gchar * first_property_name, ...);
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_harness_get (GstHarness  * h,
                                const gchar * element_name,
                                const gchar * first_property_name, ...);
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_harness_add_probe (GstHarness        * h,
                                      const gchar       * element_name,
                                      const gchar       * pad_name,
@@ -343,10 +344,10 @@
 
 /* Stress */
 
-GST_EXPORT
+GST_CHECK_API
 guint              gst_harness_stress_thread_stop  (GstHarnessThread * t);
 
-GST_EXPORT
+GST_CHECK_API
 GstHarnessThread * gst_harness_stress_custom_start (GstHarness * h,
                                                     GFunc        init,
                                                     GFunc        callback,
@@ -356,14 +357,14 @@
 #define gst_harness_stress_statechange_start(h)                                \
   gst_harness_stress_statechange_start_full (h, G_USEC_PER_SEC / 100)
 
-GST_EXPORT
+GST_CHECK_API
 GstHarnessThread * gst_harness_stress_statechange_start_full (GstHarness * h,
                                                               gulong       sleep);
 
 #define gst_harness_stress_push_buffer_start(h, c, s, b)                       \
   gst_harness_stress_push_buffer_start_full (h, c, s, b, 0)
 
-GST_EXPORT
+GST_CHECK_API
 GstHarnessThread * gst_harness_stress_push_buffer_start_full (GstHarness * h,
                                                               GstCaps    * caps,
                                                               const GstSegment * segment,
@@ -382,7 +383,7 @@
 #define gst_harness_stress_push_buffer_with_cb_start(h, c, s, f, d, n)         \
   gst_harness_stress_push_buffer_with_cb_start_full (h, c, s, f, d, n, 0)
 
-GST_EXPORT
+GST_CHECK_API
 GstHarnessThread * gst_harness_stress_push_buffer_with_cb_start_full (GstHarness   * h,
                                                                       GstCaps      * caps,
                                                                       const GstSegment * segment,
@@ -394,7 +395,7 @@
 #define gst_harness_stress_push_event_start(h, e)                              \
   gst_harness_stress_push_event_start_full (h, e, 0)
 
-GST_EXPORT
+GST_CHECK_API
 GstHarnessThread * gst_harness_stress_push_event_start_full (GstHarness * h,
                                                              GstEvent   * event,
                                                              gulong       sleep);
@@ -411,7 +412,7 @@
 #define gst_harness_stress_push_event_with_cb_start(h, f, d, n)                \
   gst_harness_stress_push_event_with_cb_start_full (h, f, d, n, 0)
 
-GST_EXPORT
+GST_CHECK_API
 GstHarnessThread * gst_harness_stress_push_event_with_cb_start_full (GstHarness   * h,
                                                                      GstHarnessPrepareEventFunc func,
                                                                      gpointer       data,
@@ -421,7 +422,7 @@
 #define gst_harness_stress_send_upstream_event_start(h, e)                     \
   gst_harness_stress_push_upstream_event_start_full (h, e, 0)
 
-GST_EXPORT
+GST_CHECK_API
 GstHarnessThread * gst_harness_stress_push_upstream_event_start_full (GstHarness * h,
                                                                       GstEvent   * event,
                                                                       gulong       sleep);
@@ -429,7 +430,7 @@
 #define gst_harness_stress_send_upstream_event_with_cb_start(h, f, d, n)       \
   gst_harness_stress_push_upstream_event_with_cb_start_full (h, f, d, n, 0)
 
-GST_EXPORT
+GST_CHECK_API
 GstHarnessThread * gst_harness_stress_push_upstream_event_with_cb_start_full (GstHarness   * h,
                                                                               GstHarnessPrepareEventFunc func,
                                                                               gpointer       data,
@@ -440,7 +441,7 @@
 #define gst_harness_stress_property_start(h, n, v)                             \
   gst_harness_stress_property_start_full (h, n, v, G_USEC_PER_SEC / 1000)
 
-GST_EXPORT
+GST_CHECK_API
 GstHarnessThread * gst_harness_stress_property_start_full (GstHarness   * h,
                                                            const gchar  * name,
                                                            const GValue * value,
@@ -449,7 +450,7 @@
 #define gst_harness_stress_requestpad_start(h, t, n, c, r)                     \
   gst_harness_stress_requestpad_start_full (h, t, n, c, r, G_USEC_PER_SEC / 100)
 
-GST_EXPORT
+GST_CHECK_API
 GstHarnessThread * gst_harness_stress_requestpad_start_full (GstHarness     * h,
                                                              GstPadTemplate * templ,
                                                              const gchar    * name,
diff --git a/libs/gst/check/gsttestclock.h b/libs/gst/check/gsttestclock.h
index 5cf42c7..ac2219f 100644
--- a/libs/gst/check/gsttestclock.h
+++ b/libs/gst/check/gsttestclock.h
@@ -25,6 +25,7 @@
 #define __GST_TEST_CLOCK_H__
 
 #include <gst/gst.h>
+#include <gst/check/check-prelude.h>
 
 G_BEGIN_DECLS
 
@@ -74,34 +75,34 @@
   GstClockClass parent_class;
 };
 
-GST_EXPORT
+GST_CHECK_API
 GType         gst_test_clock_get_type (void);
 
-GST_EXPORT
+GST_CHECK_API
 GstClock *    gst_test_clock_new (void);
 
-GST_EXPORT
+GST_CHECK_API
 GstClock *    gst_test_clock_new_with_start_time (GstClockTime start_time);
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_test_clock_set_time (GstTestClock * test_clock,
                                       GstClockTime   new_time);
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_test_clock_advance_time (GstTestClock *   test_clock,
                                           GstClockTimeDiff delta);
 
-GST_EXPORT
+GST_CHECK_API
 guint         gst_test_clock_peek_id_count (GstTestClock * test_clock);
 
-GST_EXPORT
+GST_CHECK_API
 gboolean      gst_test_clock_has_id (GstTestClock * test_clock, GstClockID id);
 
-GST_EXPORT
+GST_CHECK_API
 gboolean      gst_test_clock_peek_next_pending_id (GstTestClock * test_clock,
                                                    GstClockID   * pending_id);
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_test_clock_wait_for_next_pending_id (GstTestClock * test_clock,
                                                        GstClockID   * pending_id);
 
@@ -109,25 +110,25 @@
 void          gst_test_clock_wait_for_pending_id_count (GstTestClock * test_clock,
                                                         guint          count);
 
-GST_EXPORT
+GST_CHECK_API
 GstClockID    gst_test_clock_process_next_clock_id (GstTestClock * test_clock);
 
-GST_EXPORT
+GST_CHECK_API
 GstClockTime  gst_test_clock_get_next_entry_time   (GstTestClock * test_clock);
 
-GST_EXPORT
+GST_CHECK_API
 void          gst_test_clock_wait_for_multiple_pending_ids (GstTestClock * test_clock,
                                                             guint          count,
                                                             GList       ** pending_list);
 
-GST_EXPORT
+GST_CHECK_API
 guint         gst_test_clock_process_id_list (GstTestClock * test_clock,
                                               const GList  * pending_list);
 
-GST_EXPORT
+GST_CHECK_API
 GstClockTime  gst_test_clock_id_list_get_latest_time (const GList * pending_list);
 
-GST_EXPORT
+GST_CHECK_API
 gboolean      gst_test_clock_crank (GstTestClock * test_clock);
 
 #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
diff --git a/libs/gst/check/meson.build b/libs/gst/check/meson.build
index ff82ce7..d6e8d21 100644
--- a/libs/gst/check/meson.build
+++ b/libs/gst/check/meson.build
@@ -7,6 +7,7 @@
 ]
 gst_check_headers = [
   'check.h',
+  'check-prelude.h',
   'gstbufferstraw.h',
   'gstcheck.h',
   'gstconsistencychecker.h',
