[glib/wip/symbol-visibility: 4/6] Annotate all public API with _G*_API



commit 693ad46be5790256a65b20f3695b43bbbcddc256
Author: Ryan Lortie <desrt desrt ca>
Date:   Wed Nov 28 14:59:06 2012 -0500

    Annotate all public API with _G*_API
    
    This macro will be used to mark these symbols as public exports.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=688681

 gio/gaction.h                        |    8 +++
 gio/gactiongroup.h                   |   14 ++++
 gio/gappinfo.h                       |   37 ++++++++++++
 gio/gapplication.h                   |   17 +++++
 gio/gapplicationcommandline.h        |   11 ++++
 gio/gasyncinitable.h                 |    7 ++
 gio/gasyncresult.h                   |    3 +
 gio/gbufferedinputstream.h           |   12 ++++
 gio/gbufferedoutputstream.h          |    7 ++
 gio/gcancellable.h                   |   15 +++++
 gio/gcharsetconverter.h              |    5 ++
 gio/gcontenttype.h                   |   11 ++++
 gio/gconverter.h                     |    3 +
 gio/gconverterinputstream.h          |    3 +
 gio/gconverteroutputstream.h         |    3 +
 gio/gcredentials.h                   |    8 +++
 gio/gdatainputstream.h               |   22 +++++++
 gio/gdataoutputstream.h              |   12 ++++
 gio/gdbusactiongroup.h               |    1 +
 gio/gdbusaddress.h                   |    6 ++
 gio/gdbusauthobserver.h              |    3 +
 gio/gdbusconnection.h                |   41 +++++++++++++
 gio/gdbuserror.h                     |   11 ++++
 gio/gdbusinterface.h                 |    4 +
 gio/gdbusinterfaceskeleton.h         |   14 ++++
 gio/gdbusintrospection.h             |   31 ++++++++++
 gio/gdbusmenumodel.h                 |    2 +
 gio/gdbusmessage.h                   |   50 +++++++++++++++
 gio/gdbusmethodinvocation.h          |   18 ++++++
 gio/gdbusnameowning.h                |    5 ++
 gio/gdbusnamewatching.h              |    5 ++
 gio/gdbusobject.h                    |    4 +
 gio/gdbusobjectmanager.h             |    5 ++
 gio/gdbusobjectmanagerclient.h       |   11 ++++
 gio/gdbusobjectmanagerserver.h       |    8 +++
 gio/gdbusobjectproxy.h               |    3 +
 gio/gdbusobjectskeleton.h            |    7 ++
 gio/gdbusproxy.h                     |   26 ++++++++
 gio/gdbusserver.h                    |    8 +++
 gio/gdbusutils.h                     |    8 +++
 gio/gdesktopappinfo.h                |    7 ++
 gio/gdrive.h                         |   25 ++++++++
 gio/gemblem.h                        |    5 ++
 gio/gemblemedicon.h                  |    6 ++
 gio/gfile.h                          |  109 ++++++++++++++++++++++++++++++++++
 gio/gfileattribute.h                 |    7 ++
 gio/gfiledescriptorbased.h           |    2 +
 gio/gfileenumerator.h                |   11 ++++
 gio/gfileicon.h                      |    3 +
 gio/gfileinfo.h                      |   72 ++++++++++++++++++++++
 gio/gfileinputstream.h               |    4 +
 gio/gfileiostream.h                  |    5 ++
 gio/gfilemonitor.h                   |    5 ++
 gio/gfilenamecompleter.h             |    5 ++
 gio/gfileoutputstream.h              |    5 ++
 gio/gfilterinputstream.h             |    4 +
 gio/gfilteroutputstream.h            |    4 +
 gio/gicon.h                          |    5 ++
 gio/ginetaddress.h                   |   20 ++++++
 gio/ginetsocketaddress.h             |    4 +
 gio/ginitable.h                      |    5 ++
 gio/ginputstream.h                   |   15 +++++
 gio/gioenumtypes.h.template          |    2 +-
 gio/gioerror.h                       |    3 +
 gio/giomodule.h                      |   18 ++++++
 gio/giostream.h                      |   12 ++++
 gio/gloadableicon.h                  |    4 +
 gio/glocaldirectorymonitor.h         |    1 +
 gio/glocalfileinputstream.h          |    3 +
 gio/glocalfileiostream.h             |    2 +
 gio/glocalfilemonitor.h              |    1 +
 gio/gmemoryinputstream.h             |    4 +
 gio/gmemoryoutputstream.h            |    6 ++
 gio/gmenumodel.c                     |    1 +
 gio/gmount.h                         |   24 ++++++++
 gio/gmountoperation.h                |   15 +++++
 gio/gnativevolumemonitor.h           |    1 +
 gio/gnetworkaddress.h                |    7 ++
 gio/gnetworkmonitor.h                |    4 +
 gio/gnetworkmonitorbase.h            |    2 +
 gio/gnetworkservice.h                |    7 ++
 gio/goutputstream.h                  |   19 ++++++
 gio/gpermission.h                    |   11 ++++
 gio/gpollableinputstream.h           |    5 ++
 gio/gpollableoutputstream.h          |    5 ++
 gio/gpollableutils.h                 |    1 +
 gio/gproxy.h                         |    6 ++
 gio/gproxyaddress.h                  |    7 ++
 gio/gproxyaddressenumerator.h        |    1 +
 gio/gproxyresolver.h                 |    6 ++
 gio/gresolver.h                      |   15 +++++
 gio/gseekable.h                      |    6 ++
 gio/gsettings.h                      |   44 ++++++++++++++
 gio/gsettingsbackend.h               |   12 ++++
 gio/gsimpleaction.h                  |    4 +
 gio/gsimpleactiongroup.h             |    6 ++
 gio/gsimpleasyncresult.h             |   25 ++++++++
 gio/gsimplepermission.h              |    2 +
 gio/gsocket.h                        |   40 ++++++++++++
 gio/gsocketaddress.h                 |    5 ++
 gio/gsocketaddressenumerator.h       |    4 +
 gio/gsocketclient.h                  |   31 ++++++++++
 gio/gsocketconnectable.h             |    3 +
 gio/gsocketconnection.h              |    7 ++
 gio/gsocketcontrolmessage.h          |    6 ++
 gio/gsocketlistener.h                |   14 ++++
 gio/gsocketservice.h                 |    5 ++
 gio/gsrvtarget.h                     |    9 +++
 gio/gtcpconnection.h                 |    3 +
 gio/gtcpwrapperconnection.h          |    3 +
 gio/gthemedicon.h                    |    7 ++
 gio/gthreadedresolver.h              |    1 +
 gio/gthreadedsocketservice.h         |    2 +
 gio/gtlsbackend.h                    |    8 +++
 gio/gtlscertificate.h                |    7 ++
 gio/gtlsclientconnection.h           |    9 +++
 gio/gtlsconnection.h                 |   18 ++++++
 gio/gtlsdatabase.h                   |   14 ++++
 gio/gtlsfiledatabase.h               |    2 +
 gio/gtlsinteraction.h                |    5 ++
 gio/gtlspassword.h                   |   11 ++++
 gio/gtlsserverconnection.h           |    2 +
 gio/gunixconnection.h                |    5 ++
 gio/gunixcredentialsmessage.h        |    5 ++
 gio/gunixfdlist.h                    |    8 +++
 gio/gunixfdmessage.h                 |    6 ++
 gio/gunixinputstream.h               |    5 ++
 gio/gunixmounts.h                    |   33 ++++++++++
 gio/gunixoutputstream.h              |    5 ++
 gio/gunixsocketaddress.h             |    7 ++
 gio/gvfs.h                           |    8 +++
 gio/gvolume.h                        |   17 +++++
 gio/gvolumemonitor.h                 |    7 ++
 gio/gwin32appinfo.h                  |    1 +
 gio/gwin32inputstream.h              |    5 ++
 gio/gwin32outputstream.h             |    5 ++
 gio/gzlibcompressor.h                |    4 +
 gio/gzlibdecompressor.h              |    3 +
 glib/deprecated/gthread-deprecated.c |    1 +
 glib/deprecated/gthread.h            |    1 +
 glib/garray.h                        |   49 +++++++++++++++
 glib/gasyncqueue.h                   |   20 ++++++
 glib/gatomic.h                       |   12 ++++
 glib/gbacktrace.c                    |    2 +
 glib/gbacktrace.h                    |    2 +
 glib/gbase64.h                       |    6 ++
 glib/gbitlock.h                      |    6 ++
 glib/gbookmarkfile.h                 |   40 ++++++++++++
 glib/gbytes.h                        |   14 ++++
 glib/gcharset.h                      |    4 +
 glib/gchecksum.h                     |   10 +++
 glib/gconvert.h                      |   21 +++++++
 glib/gdataset.h                      |   15 +++++
 glib/gdate.h                         |   48 +++++++++++++++
 glib/gdatetime.h                     |   47 +++++++++++++++
 glib/gdir.h                          |    6 ++
 glib/genviron.h                      |   11 ++++
 glib/gerror.h                        |   12 ++++
 glib/gfileutils.h                    |   24 ++++++++
 glib/ggettext.h                      |    6 ++
 glib/ghash.h                         |   37 ++++++++++++
 glib/ghook.h                         |   23 +++++++
 glib/ghostutils.h                    |    5 ++
 glib/giochannel.h                    |   43 +++++++++++++
 glib/gkeyfile.h                      |   47 +++++++++++++++
 glib/glib-private.h                  |    1 +
 glib/glibintl.h                      |    2 +
 glib/glist.h                         |   30 +++++++++
 glib/gmain.h                         |   79 ++++++++++++++++++++++++
 glib/gmappedfile.h                   |    6 ++
 glib/gmarkup.h                       |   15 +++++
 glib/gmem.h                          |   16 +++++
 glib/gmessages.h                     |   15 +++++
 glib/gnode.h                         |   26 ++++++++
 glib/goption.h                       |   26 ++++++++
 glib/gpattern.h                      |    6 ++
 glib/gpoll.h                         |    1 +
 glib/gprimes.h                       |    1 +
 glib/gprintf.h                       |    7 ++
 glib/gqsort.h                        |    1 +
 glib/gquark.h                        |    6 ++
 glib/gqueue.h                        |   40 ++++++++++++
 glib/grand.h                         |   16 +++++
 glib/gregex.h                        |   40 ++++++++++++
 glib/gscanner.h                      |   21 +++++++
 glib/gsequence.h                     |   37 ++++++++++++
 glib/gshell.h                        |    4 +
 glib/gslice.h                        |    6 ++
 glib/gslist.h                        |   28 +++++++++
 glib/gspawn.h                        |   13 ++++
 glib/gstdio.h                        |   19 ++++++
 glib/gstrfuncs.h                     |   45 ++++++++++++++
 glib/gstring.h                       |   31 ++++++++++
 glib/gstringchunk.h                  |    6 ++
 glib/gtestutils.h                    |   46 ++++++++++++++
 glib/gthread.h                       |   16 +++++
 glib/gthreadpool.h                   |   14 ++++
 glib/gtimer.h                        |   11 ++++
 glib/gtimezone.h                     |   10 +++
 glib/gtree.h                         |   16 +++++
 glib/gtypes.h                        |    2 +-
 glib/gunicode.h                      |   63 +++++++++++++++++++
 glib/gurifuncs.h                     |    4 +
 glib/gutils.h                        |   32 +++++++++-
 glib/gvariant-internal.h             |    2 +
 glib/gvariant-serialiser.h           |    9 +++
 glib/gvariant.h                      |  101 +++++++++++++++++++++++++++++++
 glib/gvarianttype.h                  |   30 +++++++++
 glib/gvarianttypeinfo.h              |   10 +++
 glib/gversion.h                      |    1 +
 gmodule/gmodule.h                    |   10 +++
 gobject/gbinding.h                   |   10 +++
 gobject/gboxed.h                     |   10 +++
 gobject/gclosure.h                   |   18 ++++++
 gobject/genums.h                     |   14 ++++
 gobject/glib-types.h                 |   17 +++++
 gobject/gmarshal.h                   |   44 ++++++++++++++
 gobject/gobject.h                    |   59 ++++++++++++++++++
 gobject/gparam.h                     |   29 +++++++++
 gobject/gparamspecs.h                |   25 ++++++++-
 gobject/gsignal.h                    |   38 ++++++++++++
 gobject/gsourceclosure.h             |    2 +
 gobject/gtype.h                      |   57 ++++++++++++++++++
 gobject/gtypemodule.h                |    8 +++
 gobject/gtypeplugin.h                |    5 ++
 gobject/gvalue.h                     |   11 ++++
 gobject/gvaluetypes.h                |   38 ++++++++++++
 227 files changed, 3242 insertions(+), 5 deletions(-)
---
diff --git a/gio/gaction.h b/gio/gaction.h
index 0a4e8c3..07ef55b 100644
--- a/gio/gaction.h
+++ b/gio/gaction.h
@@ -61,16 +61,24 @@ struct _GActionInterface
 GLIB_AVAILABLE_IN_2_30
 GType                   g_action_get_type                               (void) G_GNUC_CONST;
 
+_GIO_API
 const gchar *           g_action_get_name                               (GAction            *action);
+_GIO_API
 const GVariantType *    g_action_get_parameter_type                     (GAction            *action);
+_GIO_API
 const GVariantType *    g_action_get_state_type                         (GAction            *action);
+_GIO_API
 GVariant *              g_action_get_state_hint                         (GAction            *action);
 
+_GIO_API
 gboolean                g_action_get_enabled                            (GAction            *action);
+_GIO_API
 GVariant *              g_action_get_state                              (GAction            *action);
 
+_GIO_API
 void                    g_action_change_state                           (GAction            *action,
                                                                          GVariant           *value);
+_GIO_API
 void                    g_action_activate                               (GAction            *action,
                                                                          GVariant           *parameter);
 G_END_DECLS
diff --git a/gio/gactiongroup.h b/gio/gactiongroup.h
index b300aef..716f292 100644
--- a/gio/gactiongroup.h
+++ b/gio/gactiongroup.h
@@ -96,41 +96,55 @@ struct _GActionGroupInterface
                                                         GVariant           **state);
 };
 
+_GIO_API
 GType                   g_action_group_get_type                         (void) G_GNUC_CONST;
 
+_GIO_API
 gboolean                g_action_group_has_action                       (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+_GIO_API
 gchar **                g_action_group_list_actions                     (GActionGroup *action_group);
 
+_GIO_API
 const GVariantType *    g_action_group_get_action_parameter_type        (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+_GIO_API
 const GVariantType *    g_action_group_get_action_state_type            (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+_GIO_API
 GVariant *              g_action_group_get_action_state_hint            (GActionGroup *action_group,
                                                                          const gchar  *action_name);
 
+_GIO_API
 gboolean                g_action_group_get_action_enabled               (GActionGroup *action_group,
                                                                          const gchar  *action_name);
 
+_GIO_API
 GVariant *              g_action_group_get_action_state                 (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+_GIO_API
 void                    g_action_group_change_action_state              (GActionGroup *action_group,
                                                                          const gchar  *action_name,
                                                                          GVariant     *value);
 
+_GIO_API
 void                    g_action_group_activate_action                  (GActionGroup *action_group,
                                                                          const gchar  *action_name,
                                                                          GVariant     *parameter);
 
 /* signals */
+_GIO_API
 void                    g_action_group_action_added                     (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+_GIO_API
 void                    g_action_group_action_removed                   (GActionGroup *action_group,
                                                                          const gchar  *action_name);
+_GIO_API
 void                    g_action_group_action_enabled_changed           (GActionGroup *action_group,
                                                                          const gchar  *action_name,
                                                                          gboolean      enabled);
 
+_GIO_API
 void                    g_action_group_action_state_changed             (GActionGroup *action_group,
                                                                          const gchar  *action_name,
                                                                          GVariant     *state);
diff --git a/gio/gappinfo.h b/gio/gappinfo.h
index a27e58b..cfef506 100644
--- a/gio/gappinfo.h
+++ b/gio/gappinfo.h
@@ -135,66 +135,98 @@ struct _GAppInfoIface
   const char ** (* get_supported_types)         (GAppInfo           *appinfo);
 };
 
+_GIO_API
 GType       g_app_info_get_type                     (void) G_GNUC_CONST;
+_GIO_API
 GAppInfo *  g_app_info_create_from_commandline      (const char           *commandline,
                                                      const char           *application_name,
                                                      GAppInfoCreateFlags   flags,
                                                      GError              **error);
+_GIO_API
 GAppInfo *  g_app_info_dup                          (GAppInfo             *appinfo);
+_GIO_API
 gboolean    g_app_info_equal                        (GAppInfo             *appinfo1,
                                                      GAppInfo             *appinfo2);
+_GIO_API
 const char *g_app_info_get_id                       (GAppInfo             *appinfo);
+_GIO_API
 const char *g_app_info_get_name                     (GAppInfo             *appinfo);
+_GIO_API
 const char *g_app_info_get_display_name             (GAppInfo             *appinfo);
+_GIO_API
 const char *g_app_info_get_description              (GAppInfo             *appinfo);
+_GIO_API
 const char *g_app_info_get_executable               (GAppInfo             *appinfo);
+_GIO_API
 const char *g_app_info_get_commandline              (GAppInfo             *appinfo);
+_GIO_API
 GIcon *     g_app_info_get_icon                     (GAppInfo             *appinfo);
+_GIO_API
 gboolean    g_app_info_launch                       (GAppInfo             *appinfo,
                                                      GList                *files,
                                                      GAppLaunchContext    *launch_context,
                                                      GError              **error);
+_GIO_API
 gboolean    g_app_info_supports_uris                (GAppInfo             *appinfo);
+_GIO_API
 gboolean    g_app_info_supports_files               (GAppInfo             *appinfo);
+_GIO_API
 gboolean    g_app_info_launch_uris                  (GAppInfo             *appinfo,
                                                      GList                *uris,
                                                      GAppLaunchContext    *launch_context,
                                                      GError              **error);
+_GIO_API
 gboolean    g_app_info_should_show                  (GAppInfo             *appinfo);
 
+_GIO_API
 gboolean    g_app_info_set_as_default_for_type      (GAppInfo             *appinfo,
                                                      const char           *content_type,
                                                      GError              **error);
+_GIO_API
 gboolean    g_app_info_set_as_default_for_extension (GAppInfo             *appinfo,
                                                      const char           *extension,
                                                      GError              **error);
+_GIO_API
 gboolean    g_app_info_add_supports_type            (GAppInfo             *appinfo,
                                                      const char           *content_type,
                                                      GError              **error);
+_GIO_API
 gboolean    g_app_info_can_remove_supports_type     (GAppInfo             *appinfo);
+_GIO_API
 gboolean    g_app_info_remove_supports_type         (GAppInfo             *appinfo,
                                                      const char           *content_type,
                                                      GError              **error);
 GLIB_AVAILABLE_IN_2_34
 const char **g_app_info_get_supported_types         (GAppInfo             *appinfo);
 
+_GIO_API
 gboolean    g_app_info_can_delete                   (GAppInfo   *appinfo);
+_GIO_API
 gboolean    g_app_info_delete                       (GAppInfo   *appinfo);
 
+_GIO_API
 gboolean    g_app_info_set_as_last_used_for_type    (GAppInfo             *appinfo,
                                                      const char           *content_type,
                                                      GError              **error);
 
+_GIO_API
 GList *   g_app_info_get_all                     (void);
+_GIO_API
 GList *   g_app_info_get_all_for_type            (const char  *content_type);
+_GIO_API
 GList *   g_app_info_get_recommended_for_type    (const gchar *content_type);
+_GIO_API
 GList *   g_app_info_get_fallback_for_type       (const gchar *content_type);
 
+_GIO_API
 void      g_app_info_reset_type_associations     (const char  *content_type);
+_GIO_API
 GAppInfo *g_app_info_get_default_for_type        (const char  *content_type,
                                                   gboolean     must_support_uris);
+_GIO_API
 GAppInfo *g_app_info_get_default_for_uri_scheme  (const char  *uri_scheme);
 
+_GIO_API
 gboolean  g_app_info_launch_default_for_uri      (const char              *uri,
                                                   GAppLaunchContext       *launch_context,
                                                   GError                 **error);
@@ -237,7 +269,9 @@ struct _GAppLaunchContextClass
   void (*_g_reserved4) (void);
 };
 
+_GIO_API
 GType              g_app_launch_context_get_type              (void) G_GNUC_CONST;
+_GIO_API
 GAppLaunchContext *g_app_launch_context_new                   (void);
 
 GLIB_AVAILABLE_IN_2_32
@@ -250,12 +284,15 @@ void               g_app_launch_context_unsetenv              (GAppLaunchContext
 GLIB_AVAILABLE_IN_2_32
 char **            g_app_launch_context_get_environment       (GAppLaunchContext *context);
 
+_GIO_API
 char *             g_app_launch_context_get_display           (GAppLaunchContext *context,
                                                                GAppInfo          *info,
                                                                GList             *files);
+_GIO_API
 char *             g_app_launch_context_get_startup_notify_id (GAppLaunchContext *context,
                                                                GAppInfo          *info,
                                                                GList             *files);
+_GIO_API
 void               g_app_launch_context_launch_failed         (GAppLaunchContext *context,
                                                                const char *       startup_notify_id);
 
diff --git a/gio/gapplication.h b/gio/gapplication.h
index f913cc5..7455f65 100644
--- a/gio/gapplication.h
+++ b/gio/gapplication.h
@@ -102,14 +102,19 @@ struct _GApplicationClass
   gpointer padding[9];
 };
 
+_GIO_API
 GType                   g_application_get_type                          (void) G_GNUC_CONST;
 
+_GIO_API
 gboolean                g_application_id_is_valid                       (const gchar              *application_id);
 
+_GIO_API
 GApplication *          g_application_new                               (const gchar              *application_id,
                                                                          GApplicationFlags         flags);
 
+_GIO_API
 const gchar *           g_application_get_application_id                (GApplication             *application);
+_GIO_API
 void                    g_application_set_application_id                (GApplication             *application,
                                                                          const gchar              *application_id);
 
@@ -118,11 +123,15 @@ GDBusConnection *       g_application_get_dbus_connection               (GApplic
 GLIB_AVAILABLE_IN_2_34
 const gchar *           g_application_get_dbus_object_path              (GApplication             *application);
 
+_GIO_API
 guint                   g_application_get_inactivity_timeout            (GApplication             *application);
+_GIO_API
 void                    g_application_set_inactivity_timeout            (GApplication             *application,
                                                                          guint                     inactivity_timeout);
 
+_GIO_API
 GApplicationFlags       g_application_get_flags                         (GApplication             *application);
+_GIO_API
 void                    g_application_set_flags                         (GApplication             *application,
                                                                          GApplicationFlags         flags);
 
@@ -130,23 +139,31 @@ GLIB_DEPRECATED
 void                    g_application_set_action_group                  (GApplication             *application,
                                                                          GActionGroup             *action_group);
 
+_GIO_API
 gboolean                g_application_get_is_registered                 (GApplication             *application);
+_GIO_API
 gboolean                g_application_get_is_remote                     (GApplication             *application);
 
+_GIO_API
 gboolean                g_application_register                          (GApplication             *application,
                                                                          GCancellable             *cancellable,
                                                                          GError                  **error);
 
+_GIO_API
 void                    g_application_hold                              (GApplication             *application);
+_GIO_API
 void                    g_application_release                           (GApplication             *application);
 
+_GIO_API
 void                    g_application_activate                          (GApplication             *application);
 
+_GIO_API
 void                    g_application_open                              (GApplication             *application,
                                                                          GFile                   **files,
                                                                          gint                      n_files,
                                                                          const gchar              *hint);
 
+_GIO_API
 int                     g_application_run                               (GApplication             *application,
                                                                          int                       argc,
                                                                          char                    **argv);
diff --git a/gio/gapplicationcommandline.h b/gio/gapplicationcommandline.h
index 8b6b094..b0a2de1 100644
--- a/gio/gapplicationcommandline.h
+++ b/gio/gapplicationcommandline.h
@@ -70,31 +70,42 @@ struct _GApplicationCommandLineClass
   gpointer padding[12];
 };
 
+_GIO_API
 GType                   g_application_command_line_get_type             (void) G_GNUC_CONST;
 
+_GIO_API
 gchar **                g_application_command_line_get_arguments        (GApplicationCommandLine   *cmdline,
                                                                          int                       *argc);
 
+_GIO_API
 const gchar * const *   g_application_command_line_get_environ          (GApplicationCommandLine   *cmdline);
 
+_GIO_API
 const gchar *           g_application_command_line_getenv               (GApplicationCommandLine   *cmdline,
                                                                          const gchar               *name);
 
+_GIO_API
 const gchar *           g_application_command_line_get_cwd              (GApplicationCommandLine   *cmdline);
 
+_GIO_API
 gboolean                g_application_command_line_get_is_remote        (GApplicationCommandLine   *cmdline);
 
+_GIO_API
 void                    g_application_command_line_print                (GApplicationCommandLine   *cmdline,
                                                                          const gchar               *format,
                                                                          ...) G_GNUC_PRINTF(2, 3);
+_GIO_API
 void                    g_application_command_line_printerr             (GApplicationCommandLine   *cmdline,
                                                                          const gchar               *format,
                                                                          ...) G_GNUC_PRINTF(2, 3);
 
+_GIO_API
 int                     g_application_command_line_get_exit_status      (GApplicationCommandLine   *cmdline);
+_GIO_API
 void                    g_application_command_line_set_exit_status      (GApplicationCommandLine   *cmdline,
                                                                          int                        exit_status);
 
+_GIO_API
 GVariant *              g_application_command_line_get_platform_data    (GApplicationCommandLine   *cmdline);
 
 GLIB_AVAILABLE_IN_2_36
diff --git a/gio/gasyncinitable.h b/gio/gasyncinitable.h
index 8442821..a9f1589 100644
--- a/gio/gasyncinitable.h
+++ b/gio/gasyncinitable.h
@@ -74,18 +74,22 @@ struct _GAsyncInitableIface
 			    GError             **error);
 };
 
+_GIO_API
 GType    g_async_initable_get_type    (void) G_GNUC_CONST;
 
 
+_GIO_API
 void     g_async_initable_init_async       (GAsyncInitable       *initable,
 					    int                   io_priority,
 					    GCancellable         *cancellable,
 					    GAsyncReadyCallback   callback,
 					    gpointer              user_data);
+_GIO_API
 gboolean g_async_initable_init_finish      (GAsyncInitable       *initable,
 					    GAsyncResult         *res,
 					    GError              **error);
 
+_GIO_API
 void     g_async_initable_new_async        (GType                 object_type,
 					    int                   io_priority,
 					    GCancellable         *cancellable,
@@ -93,6 +97,7 @@ void     g_async_initable_new_async        (GType                 object_type,
 					    gpointer              user_data,
 					    const gchar          *first_property_name,
 					    ...);
+_GIO_API
 void     g_async_initable_newv_async       (GType                 object_type,
 					    guint                 n_parameters,
 					    GParameter           *parameters,
@@ -100,6 +105,7 @@ void     g_async_initable_newv_async       (GType                 object_type,
 					    GCancellable         *cancellable,
 					    GAsyncReadyCallback   callback,
 					    gpointer              user_data);
+_GIO_API
 void     g_async_initable_new_valist_async (GType                 object_type,
 					    const gchar          *first_property_name,
 					    va_list               var_args,
@@ -107,6 +113,7 @@ void     g_async_initable_new_valist_async (GType                 object_type,
 					    GCancellable         *cancellable,
 					    GAsyncReadyCallback   callback,
 					    gpointer              user_data);
+_GIO_API
 GObject *g_async_initable_new_finish       (GAsyncInitable       *initable,
 					    GAsyncResult         *res,
 					    GError              **error);
diff --git a/gio/gasyncresult.h b/gio/gasyncresult.h
index e898401..aed5866 100644
--- a/gio/gasyncresult.h
+++ b/gio/gasyncresult.h
@@ -67,9 +67,12 @@ struct _GAsyncResultIface
 				   gpointer      tag);
 };
 
+_GIO_API
 GType    g_async_result_get_type          (void) G_GNUC_CONST;
 
+_GIO_API
 gpointer g_async_result_get_user_data     (GAsyncResult *res);
+_GIO_API
 GObject *g_async_result_get_source_object (GAsyncResult *res);
 
 GLIB_AVAILABLE_IN_2_34
diff --git a/gio/gbufferedinputstream.h b/gio/gbufferedinputstream.h
index 029426c..2ab42c3 100644
--- a/gio/gbufferedinputstream.h
+++ b/gio/gbufferedinputstream.h
@@ -84,36 +84,48 @@ struct _GBufferedInputStreamClass
 };
 
 
+_GIO_API
 GType         g_buffered_input_stream_get_type        (void) G_GNUC_CONST;
+_GIO_API
 GInputStream* g_buffered_input_stream_new             (GInputStream          *base_stream);
+_GIO_API
 GInputStream* g_buffered_input_stream_new_sized       (GInputStream          *base_stream,
 						       gsize                  size);
 
+_GIO_API
 gsize         g_buffered_input_stream_get_buffer_size (GBufferedInputStream  *stream);
+_GIO_API
 void          g_buffered_input_stream_set_buffer_size (GBufferedInputStream  *stream,
 						       gsize                  size);
+_GIO_API
 gsize         g_buffered_input_stream_get_available   (GBufferedInputStream  *stream);
+_GIO_API
 gsize         g_buffered_input_stream_peek            (GBufferedInputStream  *stream,
 						       void                  *buffer,
 						       gsize                  offset,
 						       gsize                  count);
+_GIO_API
 const void*   g_buffered_input_stream_peek_buffer     (GBufferedInputStream  *stream,
 						       gsize                 *count);
 
+_GIO_API
 gssize        g_buffered_input_stream_fill            (GBufferedInputStream  *stream,
 						       gssize                 count,
 						       GCancellable          *cancellable,
 						       GError               **error);
+_GIO_API
 void          g_buffered_input_stream_fill_async      (GBufferedInputStream  *stream,
 						       gssize                 count,
 						       int                    io_priority,
 						       GCancellable          *cancellable,
 						       GAsyncReadyCallback    callback,
 						       gpointer               user_data);
+_GIO_API
 gssize        g_buffered_input_stream_fill_finish     (GBufferedInputStream  *stream,
 						       GAsyncResult          *result,
 						       GError               **error);
 
+_GIO_API
 int           g_buffered_input_stream_read_byte       (GBufferedInputStream  *stream,
 						       GCancellable          *cancellable,
 						       GError               **error);
diff --git a/gio/gbufferedoutputstream.h b/gio/gbufferedoutputstream.h
index 0d84790..a2f6ca5 100644
--- a/gio/gbufferedoutputstream.h
+++ b/gio/gbufferedoutputstream.h
@@ -65,14 +65,21 @@ struct _GBufferedOutputStreamClass
 };
 
 
+_GIO_API
 GType          g_buffered_output_stream_get_type        (void) G_GNUC_CONST;
+_GIO_API
 GOutputStream* g_buffered_output_stream_new             (GOutputStream         *base_stream);
+_GIO_API
 GOutputStream* g_buffered_output_stream_new_sized       (GOutputStream         *base_stream,
 							 gsize                  size);
+_GIO_API
 gsize          g_buffered_output_stream_get_buffer_size (GBufferedOutputStream *stream);
+_GIO_API
 void           g_buffered_output_stream_set_buffer_size (GBufferedOutputStream *stream,
 							 gsize                  size);
+_GIO_API
 gboolean       g_buffered_output_stream_get_auto_grow   (GBufferedOutputStream *stream);
+_GIO_API
 void           g_buffered_output_stream_set_auto_grow   (GBufferedOutputStream *stream,
 							 gboolean               auto_grow);
 
diff --git a/gio/gcancellable.h b/gio/gcancellable.h
index d8fa633..71b94e1 100644
--- a/gio/gcancellable.h
+++ b/gio/gcancellable.h
@@ -69,35 +69,50 @@ struct _GCancellableClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType         g_cancellable_get_type               (void) G_GNUC_CONST;
 
+_GIO_API
 GCancellable *g_cancellable_new                    (void);
 
 /* These are only safe to call inside a cancellable op */
+_GIO_API
 gboolean      g_cancellable_is_cancelled           (GCancellable  *cancellable);
+_GIO_API
 gboolean      g_cancellable_set_error_if_cancelled (GCancellable  *cancellable,
 						    GError       **error);
 
+_GIO_API
 int           g_cancellable_get_fd                 (GCancellable  *cancellable);
+_GIO_API
 gboolean      g_cancellable_make_pollfd            (GCancellable  *cancellable,
 						    GPollFD       *pollfd);
+_GIO_API
 void          g_cancellable_release_fd             (GCancellable  *cancellable);
 
+_GIO_API
 GSource *     g_cancellable_source_new             (GCancellable  *cancellable);
 
+_GIO_API
 GCancellable *g_cancellable_get_current            (void);
+_GIO_API
 void          g_cancellable_push_current           (GCancellable  *cancellable);
+_GIO_API
 void          g_cancellable_pop_current            (GCancellable  *cancellable);
+_GIO_API
 void          g_cancellable_reset                  (GCancellable  *cancellable);
+_GIO_API
 gulong        g_cancellable_connect                (GCancellable  *cancellable,
 						    GCallback      callback,
 						    gpointer       data,
 						    GDestroyNotify data_destroy_func);
+_GIO_API
 void          g_cancellable_disconnect             (GCancellable  *cancellable,
 						    gulong         handler_id);
 
 
 /* This is safe to call from another thread */
+_GIO_API
 void          g_cancellable_cancel       (GCancellable  *cancellable);
 
 G_END_DECLS
diff --git a/gio/gcharsetconverter.h b/gio/gcharsetconverter.h
index 5198d46..fd83b0c 100644
--- a/gio/gcharsetconverter.h
+++ b/gio/gcharsetconverter.h
@@ -45,14 +45,19 @@ struct _GCharsetConverterClass
   GObjectClass parent_class;
 };
 
+_GIO_API
 GType              g_charset_converter_get_type      (void) G_GNUC_CONST;
 
+_GIO_API
 GCharsetConverter *g_charset_converter_new            (const gchar  *to_charset,
 						       const gchar  *from_charset,
 						       GError **error);
+_GIO_API
 void               g_charset_converter_set_use_fallback (GCharsetConverter *converter,
 							 gboolean use_fallback);
+_GIO_API
 gboolean           g_charset_converter_get_use_fallback (GCharsetConverter *converter);
+_GIO_API
 guint              g_charset_converter_get_num_fallbacks (GCharsetConverter *converter);
 
 G_END_DECLS
diff --git a/gio/gcontenttype.h b/gio/gcontenttype.h
index d7ba23e..57b4d9b 100644
--- a/gio/gcontenttype.h
+++ b/gio/gcontenttype.h
@@ -31,30 +31,41 @@
 
 G_BEGIN_DECLS
 
+_GIO_API
 gboolean g_content_type_equals            (const gchar  *type1,
                                            const gchar  *type2);
+_GIO_API
 gboolean g_content_type_is_a              (const gchar  *type,
                                            const gchar  *supertype);
+_GIO_API
 gboolean g_content_type_is_unknown        (const gchar  *type);
+_GIO_API
 gchar *  g_content_type_get_description   (const gchar  *type);
+_GIO_API
 gchar *  g_content_type_get_mime_type     (const gchar  *type);
+_GIO_API
 GIcon *  g_content_type_get_icon          (const gchar  *type);
 GLIB_AVAILABLE_IN_2_34
 GIcon *  g_content_type_get_symbolic_icon (const gchar  *type);
 GLIB_AVAILABLE_IN_2_34
 gchar *  g_content_type_get_generic_icon_name (const gchar  *type);
 
+_GIO_API
 gboolean g_content_type_can_be_executable (const gchar  *type);
 
+_GIO_API
 gchar *  g_content_type_from_mime_type    (const gchar  *mime_type);
 
+_GIO_API
 gchar *  g_content_type_guess             (const gchar  *filename,
                                            const guchar *data,
                                            gsize         data_size,
                                            gboolean     *result_uncertain);
 
+_GIO_API
 gchar ** g_content_type_guess_for_tree    (GFile        *root);
 
+_GIO_API
 GList *  g_content_types_get_registered   (void);
 
 G_END_DECLS
diff --git a/gio/gconverter.h b/gio/gconverter.h
index 6770aaf..bba05d0 100644
--- a/gio/gconverter.h
+++ b/gio/gconverter.h
@@ -75,8 +75,10 @@ struct _GConverterIface
   void  (* reset)   (GConverter *converter);
 };
 
+_GIO_API
 GType            g_converter_get_type     (void) G_GNUC_CONST;
 
+_GIO_API
 GConverterResult g_converter_convert (GConverter       *converter,
 				      const void       *inbuf,
 				      gsize             inbuf_size,
@@ -86,6 +88,7 @@ GConverterResult g_converter_convert (GConverter       *converter,
 				      gsize            *bytes_read,
 				      gsize            *bytes_written,
 				      GError          **error);
+_GIO_API
 void             g_converter_reset   (GConverter       *converter);
 
 
diff --git a/gio/gconverterinputstream.h b/gio/gconverterinputstream.h
index 8e4f1d4..d7ca863 100644
--- a/gio/gconverterinputstream.h
+++ b/gio/gconverterinputstream.h
@@ -69,9 +69,12 @@ struct _GConverterInputStreamClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType                  g_converter_input_stream_get_type      (void) G_GNUC_CONST;
+_GIO_API
 GInputStream          *g_converter_input_stream_new           (GInputStream          *base_stream,
                                                                GConverter            *converter);
+_GIO_API
 GConverter            *g_converter_input_stream_get_converter (GConverterInputStream *converter_stream);
 
 G_END_DECLS
diff --git a/gio/gconverteroutputstream.h b/gio/gconverteroutputstream.h
index ceac200..0592085 100644
--- a/gio/gconverteroutputstream.h
+++ b/gio/gconverteroutputstream.h
@@ -69,9 +69,12 @@ struct _GConverterOutputStreamClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType                   g_converter_output_stream_get_type      (void) G_GNUC_CONST;
+_GIO_API
 GOutputStream          *g_converter_output_stream_new           (GOutputStream         *base_stream,
                                                                  GConverter            *converter);
+_GIO_API
 GConverter             *g_converter_output_stream_get_converter (GConverterOutputStream *converter_stream);
 
 G_END_DECLS
diff --git a/gio/gcredentials.h b/gio/gcredentials.h
index 8e09f77..9442b21 100644
--- a/gio/gcredentials.h
+++ b/gio/gcredentials.h
@@ -46,26 +46,34 @@ G_BEGIN_DECLS
 
 typedef struct _GCredentialsClass   GCredentialsClass;
 
+_GIO_API
 GType            g_credentials_get_type           (void) G_GNUC_CONST;
 
+_GIO_API
 GCredentials    *g_credentials_new                (void);
 
+_GIO_API
 gchar           *g_credentials_to_string          (GCredentials    *credentials);
 
+_GIO_API
 gpointer         g_credentials_get_native         (GCredentials    *credentials,
                                                    GCredentialsType native_type);
 
+_GIO_API
 void             g_credentials_set_native         (GCredentials    *credentials,
                                                    GCredentialsType native_type,
                                                    gpointer         native);
 
+_GIO_API
 gboolean         g_credentials_is_same_user       (GCredentials    *credentials,
                                                    GCredentials    *other_credentials,
                                                    GError         **error);
 
 #ifdef G_OS_UNIX
+_GIO_API
 uid_t            g_credentials_get_unix_user      (GCredentials    *credentials,
                                                    GError         **error);
+_GIO_API
 gboolean         g_credentials_set_unix_user      (GCredentials    *credentials,
                                                    uid_t           uid,
                                                    GError         **error);
diff --git a/gio/gdatainputstream.h b/gio/gdatainputstream.h
index 0f205c6..3ea2a0f 100644
--- a/gio/gdatainputstream.h
+++ b/gio/gdatainputstream.h
@@ -68,36 +68,50 @@ struct _GDataInputStreamClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType                  g_data_input_stream_get_type             (void) G_GNUC_CONST;
+_GIO_API
 GDataInputStream *     g_data_input_stream_new                  (GInputStream            *base_stream);
 
+_GIO_API
 void                   g_data_input_stream_set_byte_order       (GDataInputStream        *stream,
                                                                  GDataStreamByteOrder     order);
+_GIO_API
 GDataStreamByteOrder   g_data_input_stream_get_byte_order       (GDataInputStream        *stream);
+_GIO_API
 void                   g_data_input_stream_set_newline_type     (GDataInputStream        *stream,
                                                                  GDataStreamNewlineType   type);
+_GIO_API
 GDataStreamNewlineType g_data_input_stream_get_newline_type     (GDataInputStream        *stream);
+_GIO_API
 guchar                 g_data_input_stream_read_byte            (GDataInputStream        *stream,
                                                                  GCancellable            *cancellable,
                                                                  GError                 **error);
+_GIO_API
 gint16                 g_data_input_stream_read_int16           (GDataInputStream        *stream,
                                                                  GCancellable            *cancellable,
                                                                  GError                 **error);
+_GIO_API
 guint16                g_data_input_stream_read_uint16          (GDataInputStream        *stream,
                                                                  GCancellable            *cancellable,
                                                                  GError                 **error);
+_GIO_API
 gint32                 g_data_input_stream_read_int32           (GDataInputStream        *stream,
                                                                  GCancellable            *cancellable,
                                                                  GError                 **error);
+_GIO_API
 guint32                g_data_input_stream_read_uint32          (GDataInputStream        *stream,
                                                                  GCancellable            *cancellable,
                                                                  GError                 **error);
+_GIO_API
 gint64                 g_data_input_stream_read_int64           (GDataInputStream        *stream,
                                                                  GCancellable            *cancellable,
                                                                  GError                 **error);
+_GIO_API
 guint64                g_data_input_stream_read_uint64          (GDataInputStream        *stream,
                                                                  GCancellable            *cancellable,
                                                                  GError                 **error);
+_GIO_API
 char *                 g_data_input_stream_read_line            (GDataInputStream        *stream,
                                                                  gsize                   *length,
                                                                  GCancellable            *cancellable,
@@ -107,11 +121,13 @@ char *                 g_data_input_stream_read_line_utf8       (GDataInputStrea
 								 gsize                   *length,
 								 GCancellable            *cancellable,
 								 GError                 **error);
+_GIO_API
 void                   g_data_input_stream_read_line_async      (GDataInputStream        *stream,
                                                                  gint                     io_priority,
                                                                  GCancellable            *cancellable,
                                                                  GAsyncReadyCallback      callback,
                                                                  gpointer                 user_data);
+_GIO_API
 char *                 g_data_input_stream_read_line_finish     (GDataInputStream        *stream,
                                                                  GAsyncResult            *result,
                                                                  gsize                   *length,
@@ -121,28 +137,33 @@ char *                 g_data_input_stream_read_line_finish_utf8(GDataInputStrea
                                                                  GAsyncResult            *result,
                                                                  gsize                   *length,
                                                                  GError                 **error);
+_GIO_API
 char *                 g_data_input_stream_read_until           (GDataInputStream        *stream,
                                                                  const gchar             *stop_chars,
                                                                  gsize                   *length,
                                                                  GCancellable            *cancellable,
                                                                  GError                 **error);
+_GIO_API
 void                   g_data_input_stream_read_until_async     (GDataInputStream        *stream,
                                                                  const gchar             *stop_chars,
                                                                  gint                     io_priority,
                                                                  GCancellable            *cancellable,
                                                                  GAsyncReadyCallback      callback,
                                                                  gpointer                 user_data);
+_GIO_API
 char *                 g_data_input_stream_read_until_finish    (GDataInputStream        *stream,
                                                                  GAsyncResult            *result,
                                                                  gsize                   *length,
                                                                  GError                 **error);
 
+_GIO_API
 char *                 g_data_input_stream_read_upto            (GDataInputStream        *stream,
                                                                  const gchar             *stop_chars,
                                                                  gssize                   stop_chars_len,
                                                                  gsize                   *length,
                                                                  GCancellable            *cancellable,
                                                                  GError                 **error);
+_GIO_API
 void                   g_data_input_stream_read_upto_async      (GDataInputStream        *stream,
                                                                  const gchar             *stop_chars,
                                                                  gssize                   stop_chars_len,
@@ -150,6 +171,7 @@ void                   g_data_input_stream_read_upto_async      (GDataInputStrea
                                                                  GCancellable            *cancellable,
                                                                  GAsyncReadyCallback      callback,
                                                                  gpointer                 user_data);
+_GIO_API
 char *                 g_data_input_stream_read_upto_finish     (GDataInputStream        *stream,
                                                                  GAsyncResult            *result,
                                                                  gsize                   *length,
diff --git a/gio/gdataoutputstream.h b/gio/gdataoutputstream.h
index 0fb3cbf..22a4982 100644
--- a/gio/gdataoutputstream.h
+++ b/gio/gdataoutputstream.h
@@ -70,41 +70,53 @@ struct _GDataOutputStreamClass
 };
 
 
+_GIO_API
 GType                g_data_output_stream_get_type       (void) G_GNUC_CONST;
+_GIO_API
 GDataOutputStream *  g_data_output_stream_new            (GOutputStream         *base_stream);
 
+_GIO_API
 void                 g_data_output_stream_set_byte_order (GDataOutputStream     *stream,
 							  GDataStreamByteOrder   order);
+_GIO_API
 GDataStreamByteOrder g_data_output_stream_get_byte_order (GDataOutputStream     *stream);
 
+_GIO_API
 gboolean             g_data_output_stream_put_byte       (GDataOutputStream     *stream,
 							  guchar                 data,
 							  GCancellable          *cancellable,
 							  GError               **error);
+_GIO_API
 gboolean             g_data_output_stream_put_int16      (GDataOutputStream     *stream,
 							  gint16                 data,
 							  GCancellable          *cancellable,
 							  GError               **error);
+_GIO_API
 gboolean             g_data_output_stream_put_uint16     (GDataOutputStream     *stream,
 							  guint16                data,
 							  GCancellable          *cancellable,
 							  GError               **error);
+_GIO_API
 gboolean             g_data_output_stream_put_int32      (GDataOutputStream     *stream,
 							  gint32                 data,
 							  GCancellable          *cancellable,
 							  GError               **error);
+_GIO_API
 gboolean             g_data_output_stream_put_uint32     (GDataOutputStream     *stream,
 							  guint32                data,
 							  GCancellable          *cancellable,
 							  GError               **error);
+_GIO_API
 gboolean             g_data_output_stream_put_int64      (GDataOutputStream     *stream,
 							  gint64                 data,
 							  GCancellable          *cancellable,
 							  GError               **error);
+_GIO_API
 gboolean             g_data_output_stream_put_uint64     (GDataOutputStream     *stream,
 							  guint64                data,
 							  GCancellable          *cancellable,
 							  GError               **error);
+_GIO_API
 gboolean             g_data_output_stream_put_string     (GDataOutputStream     *stream,
 							  const char            *str,
 							  GCancellable          *cancellable,
diff --git a/gio/gdbusactiongroup.h b/gio/gdbusactiongroup.h
index 12a2f60..358f0d4 100644
--- a/gio/gdbusactiongroup.h
+++ b/gio/gdbusactiongroup.h
@@ -43,6 +43,7 @@ G_BEGIN_DECLS
 #define G_DBUS_ACTION_GROUP_GET_CLASS(inst)                 (G_TYPE_INSTANCE_GET_CLASS ((inst),                      \
                                                              G_TYPE_DBUS_ACTION_GROUP, GDBusActionGroupClass))
 
+_GIO_API
 GType                   g_dbus_action_group_get_type                  (void) G_GNUC_CONST;
 
 GLIB_AVAILABLE_IN_2_32
diff --git a/gio/gdbusaddress.h b/gio/gdbusaddress.h
index 955c39e..a544926 100644
--- a/gio/gdbusaddress.h
+++ b/gio/gdbusaddress.h
@@ -31,24 +31,30 @@
 
 G_BEGIN_DECLS
 
+_GIO_API
 gboolean g_dbus_is_address (const gchar *string);
+_GIO_API
 gboolean g_dbus_is_supported_address (const gchar  *string,
                                       GError      **error);
 
+_GIO_API
 void                 g_dbus_address_get_stream        (const gchar          *address,
                                                        GCancellable         *cancellable,
                                                        GAsyncReadyCallback   callback,
                                                        gpointer              user_data);
 
+_GIO_API
 GIOStream           *g_dbus_address_get_stream_finish (GAsyncResult         *res,
                                                        gchar               **out_guid,
                                                        GError              **error);
 
+_GIO_API
 GIOStream           *g_dbus_address_get_stream_sync   (const gchar          *address,
                                                        gchar               **out_guid,
                                                        GCancellable         *cancellable,
                                                        GError              **error);
 
+_GIO_API
 gchar               *g_dbus_address_get_for_bus_sync  (GBusType              bus_type,
                                                        GCancellable  *cancellable,
                                                        GError              **error);
diff --git a/gio/gdbusauthobserver.h b/gio/gdbusauthobserver.h
index ffb1ddf..59d2f67 100644
--- a/gio/gdbusauthobserver.h
+++ b/gio/gdbusauthobserver.h
@@ -35,8 +35,11 @@ G_BEGIN_DECLS
 #define G_DBUS_AUTH_OBSERVER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_AUTH_OBSERVER, GDBusAuthObserver))
 #define G_IS_DBUS_AUTH_OBSERVER(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_AUTH_OBSERVER))
 
+_GIO_API
 GType              g_dbus_auth_observer_get_type                     (void) G_GNUC_CONST;
+_GIO_API
 GDBusAuthObserver *g_dbus_auth_observer_new                          (void);
+_GIO_API
 gboolean           g_dbus_auth_observer_authorize_authenticated_peer (GDBusAuthObserver  *observer,
                                                                       GIOStream          *stream,
                                                                       GCredentials       *credentials);
diff --git a/gio/gdbusconnection.h b/gio/gdbusconnection.h
index 6c1ec5c..8d1797c 100644
--- a/gio/gdbusconnection.h
+++ b/gio/gdbusconnection.h
@@ -35,22 +35,27 @@ G_BEGIN_DECLS
 #define G_DBUS_CONNECTION(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_CONNECTION, GDBusConnection))
 #define G_IS_DBUS_CONNECTION(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_CONNECTION))
 
+_GIO_API
 GType            g_dbus_connection_get_type                   (void) G_GNUC_CONST;
 
 /* ---------------------------------------------------------------------------------------------------- */
 
+_GIO_API
 void              g_bus_get                    (GBusType             bus_type,
                                                 GCancellable        *cancellable,
                                                 GAsyncReadyCallback  callback,
                                                 gpointer             user_data);
+_GIO_API
 GDBusConnection  *g_bus_get_finish             (GAsyncResult        *res,
                                                 GError             **error);
+_GIO_API
 GDBusConnection  *g_bus_get_sync               (GBusType            bus_type,
                                                 GCancellable       *cancellable,
                                                 GError            **error);
 
 /* ---------------------------------------------------------------------------------------------------- */
 
+_GIO_API
 void             g_dbus_connection_new                        (GIOStream              *stream,
                                                                const gchar            *guid,
                                                                GDBusConnectionFlags    flags,
@@ -58,8 +63,10 @@ void             g_dbus_connection_new                        (GIOStream
                                                                GCancellable           *cancellable,
                                                                GAsyncReadyCallback     callback,
                                                                gpointer                user_data);
+_GIO_API
 GDBusConnection *g_dbus_connection_new_finish                 (GAsyncResult           *res,
                                                                GError                **error);
+_GIO_API
 GDBusConnection *g_dbus_connection_new_sync                   (GIOStream              *stream,
                                                                const gchar            *guid,
                                                                GDBusConnectionFlags    flags,
@@ -67,14 +74,17 @@ GDBusConnection *g_dbus_connection_new_sync                   (GIOStream
                                                                GCancellable           *cancellable,
                                                                GError                **error);
 
+_GIO_API
 void             g_dbus_connection_new_for_address            (const gchar            *address,
                                                                GDBusConnectionFlags    flags,
                                                                GDBusAuthObserver      *observer,
                                                                GCancellable           *cancellable,
                                                                GAsyncReadyCallback     callback,
                                                                gpointer                user_data);
+_GIO_API
 GDBusConnection *g_dbus_connection_new_for_address_finish     (GAsyncResult           *res,
                                                                GError                **error);
+_GIO_API
 GDBusConnection *g_dbus_connection_new_for_address_sync       (const gchar            *address,
                                                                GDBusConnectionFlags    flags,
                                                                GDBusAuthObserver      *observer,
@@ -83,54 +93,71 @@ GDBusConnection *g_dbus_connection_new_for_address_sync       (const gchar
 
 /* ---------------------------------------------------------------------------------------------------- */
 
+_GIO_API
 void             g_dbus_connection_start_message_processing   (GDBusConnection    *connection);
+_GIO_API
 gboolean         g_dbus_connection_is_closed                  (GDBusConnection    *connection);
+_GIO_API
 GIOStream       *g_dbus_connection_get_stream                 (GDBusConnection    *connection);
+_GIO_API
 const gchar     *g_dbus_connection_get_guid                   (GDBusConnection    *connection);
+_GIO_API
 const gchar     *g_dbus_connection_get_unique_name            (GDBusConnection    *connection);
+_GIO_API
 GCredentials    *g_dbus_connection_get_peer_credentials       (GDBusConnection    *connection);
 
 GLIB_AVAILABLE_IN_2_34
 guint32          g_dbus_connection_get_last_serial            (GDBusConnection    *connection);
 
+_GIO_API
 gboolean         g_dbus_connection_get_exit_on_close          (GDBusConnection    *connection);
+_GIO_API
 void             g_dbus_connection_set_exit_on_close          (GDBusConnection    *connection,
                                                                gboolean            exit_on_close);
+_GIO_API
 GDBusCapabilityFlags  g_dbus_connection_get_capabilities      (GDBusConnection    *connection);
 
 /* ---------------------------------------------------------------------------------------------------- */
 
+_GIO_API
 void             g_dbus_connection_close                          (GDBusConnection     *connection,
                                                                    GCancellable        *cancellable,
                                                                    GAsyncReadyCallback  callback,
                                                                    gpointer             user_data);
+_GIO_API
 gboolean         g_dbus_connection_close_finish                   (GDBusConnection     *connection,
                                                                    GAsyncResult        *res,
                                                                    GError             **error);
+_GIO_API
 gboolean         g_dbus_connection_close_sync                     (GDBusConnection     *connection,
                                                                    GCancellable        *cancellable,
                                                                    GError             **error);
 
 /* ---------------------------------------------------------------------------------------------------- */
 
+_GIO_API
 void             g_dbus_connection_flush                          (GDBusConnection     *connection,
                                                                    GCancellable        *cancellable,
                                                                    GAsyncReadyCallback  callback,
                                                                    gpointer             user_data);
+_GIO_API
 gboolean         g_dbus_connection_flush_finish                   (GDBusConnection     *connection,
                                                                    GAsyncResult        *res,
                                                                    GError             **error);
+_GIO_API
 gboolean         g_dbus_connection_flush_sync                     (GDBusConnection     *connection,
                                                                    GCancellable        *cancellable,
                                                                    GError             **error);
 
 /* ---------------------------------------------------------------------------------------------------- */
 
+_GIO_API
 gboolean         g_dbus_connection_send_message                   (GDBusConnection     *connection,
                                                                    GDBusMessage        *message,
                                                                    GDBusSendMessageFlags flags,
                                                                    volatile guint32    *out_serial,
                                                                    GError             **error);
+_GIO_API
 void             g_dbus_connection_send_message_with_reply        (GDBusConnection     *connection,
                                                                    GDBusMessage        *message,
                                                                    GDBusSendMessageFlags flags,
@@ -139,9 +166,11 @@ void             g_dbus_connection_send_message_with_reply        (GDBusConnecti
                                                                    GCancellable        *cancellable,
                                                                    GAsyncReadyCallback  callback,
                                                                    gpointer             user_data);
+_GIO_API
 GDBusMessage    *g_dbus_connection_send_message_with_reply_finish (GDBusConnection     *connection,
                                                                    GAsyncResult        *res,
                                                                    GError             **error);
+_GIO_API
 GDBusMessage    *g_dbus_connection_send_message_with_reply_sync   (GDBusConnection     *connection,
                                                                    GDBusMessage        *message,
                                                                    GDBusSendMessageFlags flags,
@@ -152,6 +181,7 @@ GDBusMessage    *g_dbus_connection_send_message_with_reply_sync   (GDBusConnecti
 
 /* ---------------------------------------------------------------------------------------------------- */
 
+_GIO_API
 gboolean  g_dbus_connection_emit_signal                       (GDBusConnection    *connection,
                                                                const gchar        *destination_bus_name,
                                                                const gchar        *object_path,
@@ -159,6 +189,7 @@ gboolean  g_dbus_connection_emit_signal                       (GDBusConnection
                                                                const gchar        *signal_name,
                                                                GVariant           *parameters,
                                                                GError            **error);
+_GIO_API
 void      g_dbus_connection_call                              (GDBusConnection    *connection,
                                                                const gchar        *bus_name,
                                                                const gchar        *object_path,
@@ -171,9 +202,11 @@ void      g_dbus_connection_call                              (GDBusConnection
                                                                GCancellable       *cancellable,
                                                                GAsyncReadyCallback callback,
                                                                gpointer            user_data);
+_GIO_API
 GVariant *g_dbus_connection_call_finish                       (GDBusConnection    *connection,
                                                                GAsyncResult       *res,
                                                                GError            **error);
+_GIO_API
 GVariant *g_dbus_connection_call_sync                         (GDBusConnection    *connection,
                                                                const gchar        *bus_name,
                                                                const gchar        *object_path,
@@ -327,6 +360,7 @@ struct _GDBusInterfaceVTable
   gpointer padding[8];
 };
 
+_GIO_API
 guint            g_dbus_connection_register_object            (GDBusConnection            *connection,
                                                                const gchar                *object_path,
                                                                GDBusInterfaceInfo         *interface_info,
@@ -334,6 +368,7 @@ guint            g_dbus_connection_register_object            (GDBusConnection
                                                                gpointer                    user_data,
                                                                GDestroyNotify              user_data_free_func,
                                                                GError                    **error);
+_GIO_API
 gboolean         g_dbus_connection_unregister_object          (GDBusConnection            *connection,
                                                                guint                       registration_id);
 
@@ -455,6 +490,7 @@ struct _GDBusSubtreeVTable
   gpointer padding[8];
 };
 
+_GIO_API
 guint            g_dbus_connection_register_subtree           (GDBusConnection            *connection,
                                                                const gchar                *object_path,
                                                                const GDBusSubtreeVTable   *vtable,
@@ -462,6 +498,7 @@ guint            g_dbus_connection_register_subtree           (GDBusConnection
                                                                gpointer                    user_data,
                                                                GDestroyNotify              user_data_free_func,
                                                                GError                    **error);
+_GIO_API
 gboolean         g_dbus_connection_unregister_subtree         (GDBusConnection            *connection,
                                                                guint                       registration_id);
 
@@ -489,6 +526,7 @@ typedef void (*GDBusSignalCallback) (GDBusConnection  *connection,
                                      GVariant         *parameters,
                                      gpointer          user_data);
 
+_GIO_API
 guint            g_dbus_connection_signal_subscribe           (GDBusConnection     *connection,
                                                                const gchar         *sender,
                                                                const gchar         *interface_name,
@@ -499,6 +537,7 @@ guint            g_dbus_connection_signal_subscribe           (GDBusConnection
                                                                GDBusSignalCallback  callback,
                                                                gpointer             user_data,
                                                                GDestroyNotify       user_data_free_func);
+_GIO_API
 void             g_dbus_connection_signal_unsubscribe         (GDBusConnection     *connection,
                                                                guint                subscription_id);
 
@@ -583,11 +622,13 @@ typedef GDBusMessage *(*GDBusMessageFilterFunction) (GDBusConnection *connection
                                                      gboolean         incoming,
                                                      gpointer         user_data);
 
+_GIO_API
 guint g_dbus_connection_add_filter (GDBusConnection            *connection,
                                     GDBusMessageFilterFunction  filter_function,
                                     gpointer                    user_data,
                                     GDestroyNotify              user_data_free_func);
 
+_GIO_API
 void  g_dbus_connection_remove_filter (GDBusConnection    *connection,
                                        guint               filter_id);
 
diff --git a/gio/gdbuserror.h b/gio/gdbuserror.h
index 85e2f88..06a32f4 100644
--- a/gio/gdbuserror.h
+++ b/gio/gdbuserror.h
@@ -47,11 +47,15 @@ G_BEGIN_DECLS
  */
 #define G_DBUS_ERROR g_dbus_error_quark()
 
+_GIO_API
 GQuark g_dbus_error_quark (void);
 
 /* Used by applications to check, get and strip the D-Bus error name */
+_GIO_API
 gboolean g_dbus_error_is_remote_error       (const GError    *error);
+_GIO_API
 gchar   *g_dbus_error_get_remote_error      (const GError    *error);
+_GIO_API
 gboolean g_dbus_error_strip_remote_error    (GError          *error);
 
 /**
@@ -69,30 +73,37 @@ struct _GDBusErrorEntry
   const gchar *dbus_error_name;
 };
 
+_GIO_API
 gboolean g_dbus_error_register_error        (GQuark                 error_domain,
                                              gint                   error_code,
                                              const gchar           *dbus_error_name);
+_GIO_API
 gboolean g_dbus_error_unregister_error      (GQuark                 error_domain,
                                              gint                   error_code,
                                              const gchar           *dbus_error_name);
+_GIO_API
 void     g_dbus_error_register_error_domain (const gchar           *error_domain_quark_name,
                                              volatile gsize        *quark_volatile,
                                              const GDBusErrorEntry *entries,
                                              guint                  num_entries);
 
 /* Only used by object mappings to map back and forth to GError */
+_GIO_API
 GError  *g_dbus_error_new_for_dbus_error    (const gchar     *dbus_error_name,
                                              const gchar     *dbus_error_message);
+_GIO_API
 void     g_dbus_error_set_dbus_error        (GError         **error,
                                              const gchar     *dbus_error_name,
                                              const gchar     *dbus_error_message,
                                              const gchar     *format,
                                              ...);
+_GIO_API
 void     g_dbus_error_set_dbus_error_valist (GError         **error,
                                              const gchar     *dbus_error_name,
                                              const gchar     *dbus_error_message,
                                              const gchar     *format,
                                              va_list          var_args);
+_GIO_API
 gchar   *g_dbus_error_encode_gerror         (const GError    *error);
 
 G_END_DECLS
diff --git a/gio/gdbusinterface.h b/gio/gdbusinterface.h
index 9536e62..a89defa 100644
--- a/gio/gdbusinterface.h
+++ b/gio/gdbusinterface.h
@@ -66,9 +66,13 @@ struct _GDBusInterfaceIface
   GDBusObject          *(*dup_object) (GDBusInterface      *interface_);
 };
 
+_GIO_API
 GType                 g_dbus_interface_get_type         (void) G_GNUC_CONST;
+_GIO_API
 GDBusInterfaceInfo   *g_dbus_interface_get_info         (GDBusInterface      *interface_);
+_GIO_API
 GDBusObject          *g_dbus_interface_get_object       (GDBusInterface      *interface_);
+_GIO_API
 void                  g_dbus_interface_set_object       (GDBusInterface      *interface_,
                                                          GDBusObject         *object);
 GLIB_AVAILABLE_IN_2_32
diff --git a/gio/gdbusinterfaceskeleton.h b/gio/gdbusinterfaceskeleton.h
index 5f1c166..b4a1d0b 100644
--- a/gio/gdbusinterfaceskeleton.h
+++ b/gio/gdbusinterfaceskeleton.h
@@ -87,27 +87,41 @@ struct _GDBusInterfaceSkeletonClass
   gpointer signal_padding[8];
 };
 
+_GIO_API
 GType                        g_dbus_interface_skeleton_get_type        (void) G_GNUC_CONST;
+_GIO_API
 GDBusInterfaceSkeletonFlags  g_dbus_interface_skeleton_get_flags       (GDBusInterfaceSkeleton      *interface_);
+_GIO_API
 void                         g_dbus_interface_skeleton_set_flags       (GDBusInterfaceSkeleton      *interface_,
                                                                         GDBusInterfaceSkeletonFlags  flags);
+_GIO_API
 GDBusInterfaceInfo          *g_dbus_interface_skeleton_get_info        (GDBusInterfaceSkeleton      *interface_);
+_GIO_API
 GDBusInterfaceVTable        *g_dbus_interface_skeleton_get_vtable      (GDBusInterfaceSkeleton      *interface_);
+_GIO_API
 GVariant                    *g_dbus_interface_skeleton_get_properties  (GDBusInterfaceSkeleton      *interface_);
+_GIO_API
 void                         g_dbus_interface_skeleton_flush           (GDBusInterfaceSkeleton      *interface_);
 
+_GIO_API
 gboolean                     g_dbus_interface_skeleton_export          (GDBusInterfaceSkeleton      *interface_,
                                                                         GDBusConnection             *connection,
                                                                         const gchar                 *object_path,
                                                                         GError                     **error);
+_GIO_API
 void                         g_dbus_interface_skeleton_unexport        (GDBusInterfaceSkeleton      *interface_);
+_GIO_API
 void                g_dbus_interface_skeleton_unexport_from_connection (GDBusInterfaceSkeleton      *interface_,
                                                                         GDBusConnection             *connection);
 
+_GIO_API
 GDBusConnection             *g_dbus_interface_skeleton_get_connection  (GDBusInterfaceSkeleton      *interface_);
+_GIO_API
 GList                       *g_dbus_interface_skeleton_get_connections (GDBusInterfaceSkeleton      *interface_);
+_GIO_API
 gboolean                     g_dbus_interface_skeleton_has_connection  (GDBusInterfaceSkeleton      *interface_,
                                                                         GDBusConnection             *connection);
+_GIO_API
 const gchar                 *g_dbus_interface_skeleton_get_object_path (GDBusInterfaceSkeleton      *interface_);
 
 G_END_DECLS
diff --git a/gio/gdbusintrospection.h b/gio/gdbusintrospection.h
index 884c733..287deac 100644
--- a/gio/gdbusintrospection.h
+++ b/gio/gdbusintrospection.h
@@ -181,43 +181,67 @@ struct _GDBusNodeInfo
   GDBusAnnotationInfo **annotations;
 };
 
+_GIO_API
 const gchar        *g_dbus_annotation_info_lookup          (GDBusAnnotationInfo **annotations,
                                                             const gchar          *name);
+_GIO_API
 GDBusMethodInfo    *g_dbus_interface_info_lookup_method    (GDBusInterfaceInfo   *info,
                                                             const gchar          *name);
+_GIO_API
 GDBusSignalInfo    *g_dbus_interface_info_lookup_signal    (GDBusInterfaceInfo   *info,
                                                             const gchar          *name);
+_GIO_API
 GDBusPropertyInfo  *g_dbus_interface_info_lookup_property  (GDBusInterfaceInfo   *info,
                                                             const gchar          *name);
+_GIO_API
 void                g_dbus_interface_info_cache_build      (GDBusInterfaceInfo   *info);
+_GIO_API
 void                g_dbus_interface_info_cache_release    (GDBusInterfaceInfo   *info);
 
+_GIO_API
 void                g_dbus_interface_info_generate_xml     (GDBusInterfaceInfo   *info,
                                                             guint                 indent,
                                                             GString              *string_builder);
 
+_GIO_API
 GDBusNodeInfo      *g_dbus_node_info_new_for_xml           (const gchar          *xml_data,
                                                             GError              **error);
+_GIO_API
 GDBusInterfaceInfo *g_dbus_node_info_lookup_interface      (GDBusNodeInfo        *info,
                                                             const gchar          *name);
+_GIO_API
 void                g_dbus_node_info_generate_xml          (GDBusNodeInfo        *info,
                                                             guint                 indent,
                                                             GString              *string_builder);
 
+_GIO_API
 GDBusNodeInfo       *g_dbus_node_info_ref                  (GDBusNodeInfo        *info);
+_GIO_API
 GDBusInterfaceInfo  *g_dbus_interface_info_ref             (GDBusInterfaceInfo   *info);
+_GIO_API
 GDBusMethodInfo     *g_dbus_method_info_ref                (GDBusMethodInfo      *info);
+_GIO_API
 GDBusSignalInfo     *g_dbus_signal_info_ref                (GDBusSignalInfo      *info);
+_GIO_API
 GDBusPropertyInfo   *g_dbus_property_info_ref              (GDBusPropertyInfo    *info);
+_GIO_API
 GDBusArgInfo        *g_dbus_arg_info_ref                   (GDBusArgInfo         *info);
+_GIO_API
 GDBusAnnotationInfo *g_dbus_annotation_info_ref            (GDBusAnnotationInfo  *info);
 
+_GIO_API
 void                 g_dbus_node_info_unref                (GDBusNodeInfo        *info);
+_GIO_API
 void                 g_dbus_interface_info_unref           (GDBusInterfaceInfo   *info);
+_GIO_API
 void                 g_dbus_method_info_unref              (GDBusMethodInfo      *info);
+_GIO_API
 void                 g_dbus_signal_info_unref              (GDBusSignalInfo      *info);
+_GIO_API
 void                 g_dbus_property_info_unref            (GDBusPropertyInfo    *info);
+_GIO_API
 void                 g_dbus_arg_info_unref                 (GDBusArgInfo         *info);
+_GIO_API
 void                 g_dbus_annotation_info_unref          (GDBusAnnotationInfo  *info);
 
 /**
@@ -283,12 +307,19 @@ void                 g_dbus_annotation_info_unref          (GDBusAnnotationInfo
  */
 #define G_TYPE_DBUS_ANNOTATION_INFO (g_dbus_annotation_info_get_type ())
 
+_GIO_API
 GType g_dbus_node_info_get_type       (void) G_GNUC_CONST;
+_GIO_API
 GType g_dbus_interface_info_get_type  (void) G_GNUC_CONST;
+_GIO_API
 GType g_dbus_method_info_get_type     (void) G_GNUC_CONST;
+_GIO_API
 GType g_dbus_signal_info_get_type     (void) G_GNUC_CONST;
+_GIO_API
 GType g_dbus_property_info_get_type   (void) G_GNUC_CONST;
+_GIO_API
 GType g_dbus_arg_info_get_type        (void) G_GNUC_CONST;
+_GIO_API
 GType g_dbus_annotation_info_get_type (void) G_GNUC_CONST;
 
 G_END_DECLS
diff --git a/gio/gdbusmenumodel.h b/gio/gdbusmenumodel.h
index 4cbdf2d..adf7610 100644
--- a/gio/gdbusmenumodel.h
+++ b/gio/gdbusmenumodel.h
@@ -34,8 +34,10 @@ G_BEGIN_DECLS
 
 typedef struct _GDBusMenuModel GDBusMenuModel;
 
+_GIO_API
 GType                   g_dbus_menu_model_get_type     (void) G_GNUC_CONST;
 
+_GIO_API
 GDBusMenuModel *        g_dbus_menu_model_get          (GDBusConnection *connection,
                                                         const gchar     *bus_name,
                                                         const gchar     *object_path);
diff --git a/gio/gdbusmessage.h b/gio/gdbusmessage.h
index 5c4febd..85e1c3d 100644
--- a/gio/gdbusmessage.h
+++ b/gio/gdbusmessage.h
@@ -35,112 +35,162 @@ G_BEGIN_DECLS
 #define G_DBUS_MESSAGE(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_MESSAGE, GDBusMessage))
 #define G_IS_DBUS_MESSAGE(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_MESSAGE))
 
+_GIO_API
 GType                     g_dbus_message_get_type           (void) G_GNUC_CONST;
+_GIO_API
 GDBusMessage             *g_dbus_message_new                (void);
+_GIO_API
 GDBusMessage             *g_dbus_message_new_signal         (const gchar              *path,
                                                              const gchar              *interface_,
                                                              const gchar              *signal);
+_GIO_API
 GDBusMessage             *g_dbus_message_new_method_call    (const gchar              *name,
                                                              const gchar              *path,
                                                              const gchar              *interface_,
                                                              const gchar              *method);
+_GIO_API
 GDBusMessage             *g_dbus_message_new_method_reply   (GDBusMessage             *method_call_message);
+_GIO_API
 GDBusMessage             *g_dbus_message_new_method_error   (GDBusMessage             *method_call_message,
                                                              const gchar              *error_name,
                                                              const gchar              *error_message_format,
                                                              ...);
+_GIO_API
 GDBusMessage             *g_dbus_message_new_method_error_valist (GDBusMessage             *method_call_message,
                                                                   const gchar              *error_name,
                                                                   const gchar              *error_message_format,
                                                                   va_list                   var_args);
+_GIO_API
 GDBusMessage             *g_dbus_message_new_method_error_literal (GDBusMessage             *method_call_message,
                                                                    const gchar              *error_name,
                                                                    const gchar              *error_message);
+_GIO_API
 gchar                    *g_dbus_message_print              (GDBusMessage             *message,
                                                              guint                     indent);
+_GIO_API
 gboolean                  g_dbus_message_get_locked         (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_lock               (GDBusMessage             *message);
+_GIO_API
 GDBusMessage             *g_dbus_message_copy               (GDBusMessage             *message,
                                                              GError                  **error);
+_GIO_API
 GDBusMessageByteOrder     g_dbus_message_get_byte_order     (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_byte_order     (GDBusMessage             *message,
                                                              GDBusMessageByteOrder     byte_order);
 
+_GIO_API
 GDBusMessageType          g_dbus_message_get_message_type   (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_message_type   (GDBusMessage             *message,
                                                              GDBusMessageType          type);
+_GIO_API
 GDBusMessageFlags         g_dbus_message_get_flags          (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_flags          (GDBusMessage             *message,
                                                              GDBusMessageFlags         flags);
+_GIO_API
 guint32                   g_dbus_message_get_serial         (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_serial         (GDBusMessage             *message,
                                                              guint32                   serial);
+_GIO_API
 GVariant                 *g_dbus_message_get_header         (GDBusMessage             *message,
                                                              GDBusMessageHeaderField   header_field);
+_GIO_API
 void                      g_dbus_message_set_header         (GDBusMessage             *message,
                                                              GDBusMessageHeaderField   header_field,
                                                              GVariant                 *value);
+_GIO_API
 guchar                   *g_dbus_message_get_header_fields  (GDBusMessage             *message);
+_GIO_API
 GVariant                 *g_dbus_message_get_body           (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_body           (GDBusMessage             *message,
                                                              GVariant                 *body);
+_GIO_API
 GUnixFDList              *g_dbus_message_get_unix_fd_list   (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_unix_fd_list   (GDBusMessage             *message,
                                                              GUnixFDList              *fd_list);
 
+_GIO_API
 guint32                   g_dbus_message_get_reply_serial   (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_reply_serial   (GDBusMessage             *message,
                                                              guint32                   value);
 
+_GIO_API
 const gchar              *g_dbus_message_get_interface      (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_interface      (GDBusMessage             *message,
                                                              const gchar              *value);
 
+_GIO_API
 const gchar              *g_dbus_message_get_member         (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_member         (GDBusMessage             *message,
                                                              const gchar              *value);
 
+_GIO_API
 const gchar              *g_dbus_message_get_path           (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_path           (GDBusMessage             *message,
                                                              const gchar              *value);
 
+_GIO_API
 const gchar              *g_dbus_message_get_sender         (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_sender         (GDBusMessage             *message,
                                                              const gchar              *value);
 
+_GIO_API
 const gchar              *g_dbus_message_get_destination    (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_destination    (GDBusMessage             *message,
                                                              const gchar              *value);
 
+_GIO_API
 const gchar              *g_dbus_message_get_error_name     (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_error_name     (GDBusMessage             *message,
                                                              const gchar              *value);
 
+_GIO_API
 const gchar              *g_dbus_message_get_signature      (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_signature      (GDBusMessage             *message,
                                                              const gchar              *value);
 
+_GIO_API
 guint32                   g_dbus_message_get_num_unix_fds   (GDBusMessage             *message);
+_GIO_API
 void                      g_dbus_message_set_num_unix_fds   (GDBusMessage             *message,
                                                              guint32                   value);
 
+_GIO_API
 const gchar              *g_dbus_message_get_arg0           (GDBusMessage             *message);
 
 
+_GIO_API
 GDBusMessage             *g_dbus_message_new_from_blob      (guchar                   *blob,
                                                              gsize                     blob_len,
                                                              GDBusCapabilityFlags      capabilities,
                                                              GError                  **error);
 
+_GIO_API
 gssize                    g_dbus_message_bytes_needed       (guchar                   *blob,
                                                              gsize                     blob_len,
                                                              GError                  **error);
 
+_GIO_API
 guchar                   *g_dbus_message_to_blob            (GDBusMessage             *message,
                                                              gsize                    *out_size,
                                                              GDBusCapabilityFlags      capabilities,
                                                              GError                  **error);
 
+_GIO_API
 gboolean                  g_dbus_message_to_gerror          (GDBusMessage             *message,
                                                              GError                  **error);
 
diff --git a/gio/gdbusmethodinvocation.h b/gio/gdbusmethodinvocation.h
index b1a87ac..e39d01b 100644
--- a/gio/gdbusmethodinvocation.h
+++ b/gio/gdbusmethodinvocation.h
@@ -35,40 +35,58 @@ G_BEGIN_DECLS
 #define G_DBUS_METHOD_INVOCATION(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_METHOD_INVOCATION, GDBusMethodInvocation))
 #define G_IS_DBUS_METHOD_INVOCATION(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_METHOD_INVOCATION))
 
+_GIO_API
 GType                  g_dbus_method_invocation_get_type             (void) G_GNUC_CONST;
+_GIO_API
 const gchar           *g_dbus_method_invocation_get_sender           (GDBusMethodInvocation *invocation);
+_GIO_API
 const gchar           *g_dbus_method_invocation_get_object_path      (GDBusMethodInvocation *invocation);
+_GIO_API
 const gchar           *g_dbus_method_invocation_get_interface_name   (GDBusMethodInvocation *invocation);
+_GIO_API
 const gchar           *g_dbus_method_invocation_get_method_name      (GDBusMethodInvocation *invocation);
+_GIO_API
 const GDBusMethodInfo *g_dbus_method_invocation_get_method_info      (GDBusMethodInvocation *invocation);
+_GIO_API
 GDBusConnection       *g_dbus_method_invocation_get_connection       (GDBusMethodInvocation *invocation);
+_GIO_API
 GDBusMessage          *g_dbus_method_invocation_get_message          (GDBusMethodInvocation *invocation);
+_GIO_API
 GVariant              *g_dbus_method_invocation_get_parameters       (GDBusMethodInvocation *invocation);
+_GIO_API
 gpointer               g_dbus_method_invocation_get_user_data        (GDBusMethodInvocation *invocation);
 
+_GIO_API
 void                   g_dbus_method_invocation_return_value         (GDBusMethodInvocation *invocation,
                                                                       GVariant              *parameters);
+_GIO_API
 void                   g_dbus_method_invocation_return_value_with_unix_fd_list (GDBusMethodInvocation *invocation,
                                                                                 GVariant              *parameters,
                                                                                 GUnixFDList           *fd_list);
+_GIO_API
 void                   g_dbus_method_invocation_return_error         (GDBusMethodInvocation *invocation,
                                                                       GQuark                 domain,
                                                                       gint                   code,
                                                                       const gchar           *format,
                                                                       ...);
+_GIO_API
 void                   g_dbus_method_invocation_return_error_valist  (GDBusMethodInvocation *invocation,
                                                                       GQuark                 domain,
                                                                       gint                   code,
                                                                       const gchar           *format,
                                                                       va_list                var_args);
+_GIO_API
 void                   g_dbus_method_invocation_return_error_literal (GDBusMethodInvocation *invocation,
                                                                       GQuark                 domain,
                                                                       gint                   code,
                                                                       const gchar           *message);
+_GIO_API
 void                   g_dbus_method_invocation_return_gerror        (GDBusMethodInvocation *invocation,
                                                                       const GError          *error);
+_GIO_API
 void                   g_dbus_method_invocation_take_error           (GDBusMethodInvocation *invocation,
                                                                       GError                *error);
+_GIO_API
 void                   g_dbus_method_invocation_return_dbus_error    (GDBusMethodInvocation *invocation,
                                                                       const gchar           *error_name,
                                                                       const gchar           *error_message);
diff --git a/gio/gdbusnameowning.h b/gio/gdbusnameowning.h
index fc4b92c..ebf4bb6 100644
--- a/gio/gdbusnameowning.h
+++ b/gio/gdbusnameowning.h
@@ -74,6 +74,7 @@ typedef void (*GBusNameLostCallback) (GDBusConnection *connection,
                                       const gchar     *name,
                                       gpointer         user_data);
 
+_GIO_API
 guint g_bus_own_name                 (GBusType                  bus_type,
                                       const gchar              *name,
                                       GBusNameOwnerFlags        flags,
@@ -83,6 +84,7 @@ guint g_bus_own_name                 (GBusType                  bus_type,
                                       gpointer                  user_data,
                                       GDestroyNotify            user_data_free_func);
 
+_GIO_API
 guint g_bus_own_name_on_connection   (GDBusConnection          *connection,
                                       const gchar              *name,
                                       GBusNameOwnerFlags        flags,
@@ -91,6 +93,7 @@ guint g_bus_own_name_on_connection   (GDBusConnection          *connection,
                                       gpointer                  user_data,
                                       GDestroyNotify            user_data_free_func);
 
+_GIO_API
 guint g_bus_own_name_with_closures   (GBusType                  bus_type,
                                       const gchar              *name,
                                       GBusNameOwnerFlags        flags,
@@ -98,6 +101,7 @@ guint g_bus_own_name_with_closures   (GBusType                  bus_type,
                                       GClosure                 *name_acquired_closure,
                                       GClosure                 *name_lost_closure);
 
+_GIO_API
 guint g_bus_own_name_on_connection_with_closures (
                                       GDBusConnection          *connection,
                                       const gchar              *name,
@@ -105,6 +109,7 @@ guint g_bus_own_name_on_connection_with_closures (
                                       GClosure                 *name_acquired_closure,
                                       GClosure                 *name_lost_closure);
 
+_GIO_API
 void  g_bus_unown_name               (guint                     owner_id);
 
 G_END_DECLS
diff --git a/gio/gdbusnamewatching.h b/gio/gdbusnamewatching.h
index a2bb6dc..0cf1976 100644
--- a/gio/gdbusnamewatching.h
+++ b/gio/gdbusnamewatching.h
@@ -67,6 +67,7 @@ typedef void (*GBusNameVanishedCallback) (GDBusConnection *connection,
                                           gpointer         user_data);
 
 
+_GIO_API
 guint g_bus_watch_name               (GBusType                  bus_type,
                                       const gchar              *name,
                                       GBusNameWatcherFlags      flags,
@@ -74,6 +75,7 @@ guint g_bus_watch_name               (GBusType                  bus_type,
                                       GBusNameVanishedCallback  name_vanished_handler,
                                       gpointer                  user_data,
                                       GDestroyNotify            user_data_free_func);
+_GIO_API
 guint g_bus_watch_name_on_connection (GDBusConnection          *connection,
                                       const gchar              *name,
                                       GBusNameWatcherFlags      flags,
@@ -81,17 +83,20 @@ guint g_bus_watch_name_on_connection (GDBusConnection          *connection,
                                       GBusNameVanishedCallback  name_vanished_handler,
                                       gpointer                  user_data,
                                       GDestroyNotify            user_data_free_func);
+_GIO_API
 guint g_bus_watch_name_with_closures (GBusType                  bus_type,
                                       const gchar              *name,
                                       GBusNameWatcherFlags      flags,
                                       GClosure                 *name_appeared_closure,
                                       GClosure                 *name_vanished_closure);
+_GIO_API
 guint g_bus_watch_name_on_connection_with_closures (
                                       GDBusConnection          *connection,
                                       const gchar              *name,
                                       GBusNameWatcherFlags      flags,
                                       GClosure                 *name_appeared_closure,
                                       GClosure                 *name_vanished_closure);
+_GIO_API
 void  g_bus_unwatch_name             (guint                     watcher_id);
 
 G_END_DECLS
diff --git a/gio/gdbusobject.h b/gio/gdbusobject.h
index 30983b1..7121bf2 100644
--- a/gio/gdbusobject.h
+++ b/gio/gdbusobject.h
@@ -65,9 +65,13 @@ struct _GDBusObjectIface
 
 };
 
+_GIO_API
 GType            g_dbus_object_get_type        (void) G_GNUC_CONST;
+_GIO_API
 const gchar     *g_dbus_object_get_object_path (GDBusObject  *object);
+_GIO_API
 GList           *g_dbus_object_get_interfaces  (GDBusObject  *object);
+_GIO_API
 GDBusInterface  *g_dbus_object_get_interface   (GDBusObject  *object,
                                                 const gchar  *interface_name);
 
diff --git a/gio/gdbusobjectmanager.h b/gio/gdbusobjectmanager.h
index 05cec1a..0af270b 100644
--- a/gio/gdbusobjectmanager.h
+++ b/gio/gdbusobjectmanager.h
@@ -77,11 +77,16 @@ struct _GDBusObjectManagerIface
                                            GDBusInterface       *interface_);
 };
 
+_GIO_API
 GType            g_dbus_object_manager_get_type        (void) G_GNUC_CONST;
+_GIO_API
 const gchar     *g_dbus_object_manager_get_object_path (GDBusObjectManager    *manager);
+_GIO_API
 GList           *g_dbus_object_manager_get_objects     (GDBusObjectManager    *manager);
+_GIO_API
 GDBusObject     *g_dbus_object_manager_get_object      (GDBusObjectManager    *manager,
                                                         const gchar           *object_path);
+_GIO_API
 GDBusInterface  *g_dbus_object_manager_get_interface   (GDBusObjectManager    *manager,
                                                         const gchar           *object_path,
                                                         const gchar           *interface_name);
diff --git a/gio/gdbusobjectmanagerclient.h b/gio/gdbusobjectmanagerclient.h
index ad41fee..fe27029 100644
--- a/gio/gdbusobjectmanagerclient.h
+++ b/gio/gdbusobjectmanagerclient.h
@@ -84,7 +84,9 @@ struct _GDBusObjectManagerClientClass
   gpointer padding[8];
 };
 
+_GIO_API
 GType                         g_dbus_object_manager_client_get_type           (void) G_GNUC_CONST;
+_GIO_API
 void                          g_dbus_object_manager_client_new                (GDBusConnection               *connection,
                                                                                GDBusObjectManagerClientFlags  flags,
                                                                                const gchar                   *name,
@@ -95,8 +97,10 @@ void                          g_dbus_object_manager_client_new                (G
                                                                                GCancellable                  *cancellable,
                                                                                GAsyncReadyCallback            callback,
                                                                                gpointer                       user_data);
+_GIO_API
 GDBusObjectManager           *g_dbus_object_manager_client_new_finish         (GAsyncResult                  *res,
                                                                                GError                       **error);
+_GIO_API
 GDBusObjectManager           *g_dbus_object_manager_client_new_sync           (GDBusConnection               *connection,
                                                                                GDBusObjectManagerClientFlags  flags,
                                                                                const gchar                   *name,
@@ -106,6 +110,7 @@ GDBusObjectManager           *g_dbus_object_manager_client_new_sync           (G
                                                                                GDestroyNotify                 get_proxy_type_destroy_notify,
                                                                                GCancellable                  *cancellable,
                                                                                GError                       **error);
+_GIO_API
 void                          g_dbus_object_manager_client_new_for_bus        (GBusType                       bus_type,
                                                                                GDBusObjectManagerClientFlags  flags,
                                                                                const gchar                   *name,
@@ -116,8 +121,10 @@ void                          g_dbus_object_manager_client_new_for_bus        (G
                                                                                GCancellable                  *cancellable,
                                                                                GAsyncReadyCallback            callback,
                                                                                gpointer                       user_data);
+_GIO_API
 GDBusObjectManager           *g_dbus_object_manager_client_new_for_bus_finish (GAsyncResult                  *res,
                                                                                GError                       **error);
+_GIO_API
 GDBusObjectManager           *g_dbus_object_manager_client_new_for_bus_sync   (GBusType                       bus_type,
                                                                                GDBusObjectManagerClientFlags  flags,
                                                                                const gchar                   *name,
@@ -127,9 +134,13 @@ GDBusObjectManager           *g_dbus_object_manager_client_new_for_bus_sync   (G
                                                                                GDestroyNotify                 get_proxy_type_destroy_notify,
                                                                                GCancellable                  *cancellable,
                                                                                GError                       **error);
+_GIO_API
 GDBusConnection              *g_dbus_object_manager_client_get_connection     (GDBusObjectManagerClient      *manager);
+_GIO_API
 GDBusObjectManagerClientFlags g_dbus_object_manager_client_get_flags          (GDBusObjectManagerClient      *manager);
+_GIO_API
 const gchar                  *g_dbus_object_manager_client_get_name           (GDBusObjectManagerClient      *manager);
+_GIO_API
 gchar                        *g_dbus_object_manager_client_get_name_owner     (GDBusObjectManagerClient      *manager);
 
 G_END_DECLS
diff --git a/gio/gdbusobjectmanagerserver.h b/gio/gdbusobjectmanagerserver.h
index 90668dd..670aae8 100644
--- a/gio/gdbusobjectmanagerserver.h
+++ b/gio/gdbusobjectmanagerserver.h
@@ -68,17 +68,25 @@ struct _GDBusObjectManagerServerClass
   gpointer padding[8];
 };
 
+_GIO_API
 GType                     g_dbus_object_manager_server_get_type            (void) G_GNUC_CONST;
+_GIO_API
 GDBusObjectManagerServer *g_dbus_object_manager_server_new                 (const gchar               *object_path);
+_GIO_API
 GDBusConnection          *g_dbus_object_manager_server_get_connection      (GDBusObjectManagerServer  *manager);
+_GIO_API
 void                      g_dbus_object_manager_server_set_connection      (GDBusObjectManagerServer  *manager,
                                                                             GDBusConnection           *connection);
+_GIO_API
 void                      g_dbus_object_manager_server_export              (GDBusObjectManagerServer  *manager,
                                                                             GDBusObjectSkeleton       *object);
+_GIO_API
 void                      g_dbus_object_manager_server_export_uniquely     (GDBusObjectManagerServer  *manager,
                                                                             GDBusObjectSkeleton       *object);
+_GIO_API
 gboolean                  g_dbus_object_manager_server_is_exported         (GDBusObjectManagerServer  *manager,
                                                                             GDBusObjectSkeleton       *object);
+_GIO_API
 gboolean                  g_dbus_object_manager_server_unexport            (GDBusObjectManagerServer  *manager,
                                                                             const gchar               *object_path);
 
diff --git a/gio/gdbusobjectproxy.h b/gio/gdbusobjectproxy.h
index 58aef85..d8120ba 100644
--- a/gio/gdbusobjectproxy.h
+++ b/gio/gdbusobjectproxy.h
@@ -68,9 +68,12 @@ struct _GDBusObjectProxyClass
   gpointer padding[8];
 };
 
+_GIO_API
 GType             g_dbus_object_proxy_get_type       (void) G_GNUC_CONST;
+_GIO_API
 GDBusObjectProxy *g_dbus_object_proxy_new            (GDBusConnection   *connection,
                                                       const gchar       *object_path);
+_GIO_API
 GDBusConnection  *g_dbus_object_proxy_get_connection (GDBusObjectProxy  *proxy);
 
 G_END_DECLS
diff --git a/gio/gdbusobjectskeleton.h b/gio/gdbusobjectskeleton.h
index 918a335..e25548a 100644
--- a/gio/gdbusobjectskeleton.h
+++ b/gio/gdbusobjectskeleton.h
@@ -74,15 +74,22 @@ struct _GDBusObjectSkeletonClass
   gpointer padding[8];
 };
 
+_GIO_API
 GType                g_dbus_object_skeleton_get_type                  (void) G_GNUC_CONST;
+_GIO_API
 GDBusObjectSkeleton *g_dbus_object_skeleton_new                       (const gchar            *object_path);
+_GIO_API
 void                 g_dbus_object_skeleton_flush                     (GDBusObjectSkeleton    *object);
+_GIO_API
 void                 g_dbus_object_skeleton_add_interface             (GDBusObjectSkeleton    *object,
                                                                        GDBusInterfaceSkeleton *interface_);
+_GIO_API
 void                 g_dbus_object_skeleton_remove_interface          (GDBusObjectSkeleton    *object,
                                                                        GDBusInterfaceSkeleton *interface_);
+_GIO_API
 void                 g_dbus_object_skeleton_remove_interface_by_name  (GDBusObjectSkeleton    *object,
                                                                        const gchar            *interface_name);
+_GIO_API
 void                 g_dbus_object_skeleton_set_object_path           (GDBusObjectSkeleton    *object,
                                                                        const gchar            *object_path);
 
diff --git a/gio/gdbusproxy.h b/gio/gdbusproxy.h
index 1e920d3..2378658 100644
--- a/gio/gdbusproxy.h
+++ b/gio/gdbusproxy.h
@@ -86,7 +86,9 @@ struct _GDBusProxyClass
   gpointer padding[32];
 };
 
+_GIO_API
 GType            g_dbus_proxy_get_type                  (void) G_GNUC_CONST;
+_GIO_API
 void             g_dbus_proxy_new                       (GDBusConnection     *connection,
                                                          GDBusProxyFlags      flags,
                                                          GDBusInterfaceInfo *info,
@@ -96,8 +98,10 @@ void             g_dbus_proxy_new                       (GDBusConnection     *co
                                                          GCancellable        *cancellable,
                                                          GAsyncReadyCallback  callback,
                                                          gpointer             user_data);
+_GIO_API
 GDBusProxy      *g_dbus_proxy_new_finish                (GAsyncResult        *res,
                                                          GError             **error);
+_GIO_API
 GDBusProxy      *g_dbus_proxy_new_sync                  (GDBusConnection     *connection,
                                                          GDBusProxyFlags      flags,
                                                          GDBusInterfaceInfo *info,
@@ -106,6 +110,7 @@ GDBusProxy      *g_dbus_proxy_new_sync                  (GDBusConnection     *co
                                                          const gchar         *interface_name,
                                                          GCancellable        *cancellable,
                                                          GError             **error);
+_GIO_API
 void             g_dbus_proxy_new_for_bus               (GBusType             bus_type,
                                                          GDBusProxyFlags      flags,
                                                          GDBusInterfaceInfo *info,
@@ -115,8 +120,10 @@ void             g_dbus_proxy_new_for_bus               (GBusType             bu
                                                          GCancellable        *cancellable,
                                                          GAsyncReadyCallback  callback,
                                                          gpointer             user_data);
+_GIO_API
 GDBusProxy      *g_dbus_proxy_new_for_bus_finish        (GAsyncResult        *res,
                                                          GError             **error);
+_GIO_API
 GDBusProxy      *g_dbus_proxy_new_for_bus_sync          (GBusType             bus_type,
                                                          GDBusProxyFlags      flags,
                                                          GDBusInterfaceInfo *info,
@@ -125,24 +132,38 @@ GDBusProxy      *g_dbus_proxy_new_for_bus_sync          (GBusType             bu
                                                          const gchar         *interface_name,
                                                          GCancellable        *cancellable,
                                                          GError             **error);
+_GIO_API
 GDBusConnection *g_dbus_proxy_get_connection            (GDBusProxy          *proxy);
+_GIO_API
 GDBusProxyFlags  g_dbus_proxy_get_flags                 (GDBusProxy          *proxy);
+_GIO_API
 const gchar     *g_dbus_proxy_get_name                  (GDBusProxy          *proxy);
+_GIO_API
 gchar           *g_dbus_proxy_get_name_owner            (GDBusProxy          *proxy);
+_GIO_API
 const gchar     *g_dbus_proxy_get_object_path           (GDBusProxy          *proxy);
+_GIO_API
 const gchar     *g_dbus_proxy_get_interface_name        (GDBusProxy          *proxy);
+_GIO_API
 gint             g_dbus_proxy_get_default_timeout       (GDBusProxy          *proxy);
+_GIO_API
 void             g_dbus_proxy_set_default_timeout       (GDBusProxy          *proxy,
                                                          gint                 timeout_msec);
+_GIO_API
 GDBusInterfaceInfo *g_dbus_proxy_get_interface_info     (GDBusProxy          *proxy);
+_GIO_API
 void             g_dbus_proxy_set_interface_info        (GDBusProxy           *proxy,
                                                          GDBusInterfaceInfo   *info);
+_GIO_API
 GVariant        *g_dbus_proxy_get_cached_property       (GDBusProxy          *proxy,
                                                          const gchar         *property_name);
+_GIO_API
 void             g_dbus_proxy_set_cached_property       (GDBusProxy          *proxy,
                                                          const gchar         *property_name,
                                                          GVariant            *value);
+_GIO_API
 gchar          **g_dbus_proxy_get_cached_property_names (GDBusProxy          *proxy);
+_GIO_API
 void             g_dbus_proxy_call                      (GDBusProxy          *proxy,
                                                          const gchar         *method_name,
                                                          GVariant            *parameters,
@@ -151,9 +172,11 @@ void             g_dbus_proxy_call                      (GDBusProxy          *pr
                                                          GCancellable        *cancellable,
                                                          GAsyncReadyCallback  callback,
                                                          gpointer             user_data);
+_GIO_API
 GVariant        *g_dbus_proxy_call_finish               (GDBusProxy          *proxy,
                                                          GAsyncResult        *res,
                                                          GError             **error);
+_GIO_API
 GVariant        *g_dbus_proxy_call_sync                 (GDBusProxy          *proxy,
                                                          const gchar         *method_name,
                                                          GVariant            *parameters,
@@ -162,6 +185,7 @@ GVariant        *g_dbus_proxy_call_sync                 (GDBusProxy          *pr
                                                          GCancellable        *cancellable,
                                                          GError             **error);
 
+_GIO_API
 void             g_dbus_proxy_call_with_unix_fd_list        (GDBusProxy          *proxy,
                                                              const gchar         *method_name,
                                                              GVariant            *parameters,
@@ -171,10 +195,12 @@ void             g_dbus_proxy_call_with_unix_fd_list        (GDBusProxy
                                                              GCancellable        *cancellable,
                                                              GAsyncReadyCallback  callback,
                                                              gpointer             user_data);
+_GIO_API
 GVariant        *g_dbus_proxy_call_with_unix_fd_list_finish (GDBusProxy          *proxy,
                                                              GUnixFDList        **out_fd_list,
                                                              GAsyncResult        *res,
                                                              GError             **error);
+_GIO_API
 GVariant        *g_dbus_proxy_call_with_unix_fd_list_sync   (GDBusProxy          *proxy,
                                                              const gchar         *method_name,
                                                              GVariant            *parameters,
diff --git a/gio/gdbusserver.h b/gio/gdbusserver.h
index 3d10c1b..ee70189 100644
--- a/gio/gdbusserver.h
+++ b/gio/gdbusserver.h
@@ -35,18 +35,26 @@ G_BEGIN_DECLS
 #define G_DBUS_SERVER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_SERVER, GDBusServer))
 #define G_IS_DBUS_SERVER(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_SERVER))
 
+_GIO_API
 GType             g_dbus_server_get_type           (void) G_GNUC_CONST;
+_GIO_API
 GDBusServer      *g_dbus_server_new_sync           (const gchar       *address,
                                                     GDBusServerFlags   flags,
                                                     const gchar       *guid,
                                                     GDBusAuthObserver *observer,
                                                     GCancellable      *cancellable,
                                                     GError           **error);
+_GIO_API
 const gchar      *g_dbus_server_get_client_address (GDBusServer       *server);
+_GIO_API
 const gchar      *g_dbus_server_get_guid           (GDBusServer       *server);
+_GIO_API
 GDBusServerFlags  g_dbus_server_get_flags          (GDBusServer       *server);
+_GIO_API
 void              g_dbus_server_start              (GDBusServer       *server);
+_GIO_API
 void              g_dbus_server_stop               (GDBusServer       *server);
+_GIO_API
 gboolean          g_dbus_server_is_active          (GDBusServer       *server);
 
 G_END_DECLS
diff --git a/gio/gdbusutils.h b/gio/gdbusutils.h
index a05a230..c4c6ab6 100644
--- a/gio/gdbusutils.h
+++ b/gio/gdbusutils.h
@@ -31,16 +31,24 @@
 
 G_BEGIN_DECLS
 
+_GIO_API
 gboolean g_dbus_is_guid (const gchar *string);
+_GIO_API
 gchar *g_dbus_generate_guid (void);
 
+_GIO_API
 gboolean g_dbus_is_name (const gchar *string);
+_GIO_API
 gboolean g_dbus_is_unique_name (const gchar *string);
+_GIO_API
 gboolean g_dbus_is_member_name (const gchar *string);
+_GIO_API
 gboolean g_dbus_is_interface_name (const gchar *string);
 
+_GIO_API
 void g_dbus_gvariant_to_gvalue (GVariant  *value,
                                 GValue    *out_gvalue);
+_GIO_API
 GVariant *g_dbus_gvalue_to_gvariant (const GValue         *gvalue,
                                      const GVariantType   *type);
 
diff --git a/gio/gdesktopappinfo.h b/gio/gdesktopappinfo.h
index 51d0879..0dc6e59 100644
--- a/gio/gdesktopappinfo.h
+++ b/gio/gdesktopappinfo.h
@@ -43,11 +43,15 @@ struct _GDesktopAppInfoClass
 };
 
 
+_GIO_API
 GType            g_desktop_app_info_get_type          (void) G_GNUC_CONST;
 
+_GIO_API
 GDesktopAppInfo *g_desktop_app_info_new_from_filename (const char      *filename);
+_GIO_API
 GDesktopAppInfo *g_desktop_app_info_new_from_keyfile  (GKeyFile        *key_file);
 
+_GIO_API
 const char *     g_desktop_app_info_get_filename      (GDesktopAppInfo *info);
 
 GLIB_AVAILABLE_IN_2_30
@@ -64,9 +68,12 @@ gboolean         g_desktop_app_info_get_show_in       (GDesktopAppInfo *info,
 GLIB_AVAILABLE_IN_2_34
 const char *     g_desktop_app_info_get_startup_wm_class (GDesktopAppInfo *info);
 
+_GIO_API
 GDesktopAppInfo *g_desktop_app_info_new               (const char      *desktop_id);
+_GIO_API
 gboolean         g_desktop_app_info_get_is_hidden     (GDesktopAppInfo *info);
 
+_GIO_API
 void             g_desktop_app_info_set_desktop_env   (const char      *desktop_env);
 
 GLIB_AVAILABLE_IN_2_36
diff --git a/gio/gdrive.h b/gio/gdrive.h
index d42b0b7..5c604f7 100644
--- a/gio/gdrive.h
+++ b/gio/gdrive.h
@@ -159,17 +159,28 @@ struct _GDriveIface
 
 };
 
+_GIO_API
 GType    g_drive_get_type                 (void) G_GNUC_CONST;
 
+_GIO_API
 char *   g_drive_get_name                 (GDrive               *drive);
+_GIO_API
 GIcon *  g_drive_get_icon                 (GDrive               *drive);
+_GIO_API
 GIcon *  g_drive_get_symbolic_icon        (GDrive               *drive);
+_GIO_API
 gboolean g_drive_has_volumes              (GDrive               *drive);
+_GIO_API
 GList *  g_drive_get_volumes              (GDrive               *drive);
+_GIO_API
 gboolean g_drive_is_media_removable       (GDrive               *drive);
+_GIO_API
 gboolean g_drive_has_media                (GDrive               *drive);
+_GIO_API
 gboolean g_drive_is_media_check_automatic (GDrive               *drive);
+_GIO_API
 gboolean g_drive_can_poll_for_media       (GDrive               *drive);
+_GIO_API
 gboolean g_drive_can_eject                (GDrive               *drive);
 GLIB_DEPRECATED_FOR(g_drive_eject_with_operation)
 void     g_drive_eject                    (GDrive               *drive,
@@ -182,48 +193,62 @@ GLIB_DEPRECATED_FOR(g_drive_eject_with_operation_finish)
 gboolean g_drive_eject_finish             (GDrive               *drive,
                                            GAsyncResult         *result,
                                            GError              **error);
+_GIO_API
 void     g_drive_poll_for_media           (GDrive               *drive,
                                            GCancellable         *cancellable,
                                            GAsyncReadyCallback   callback,
                                            gpointer              user_data);
+_GIO_API
 gboolean g_drive_poll_for_media_finish    (GDrive               *drive,
                                            GAsyncResult         *result,
                                            GError              **error);
+_GIO_API
 char *   g_drive_get_identifier           (GDrive              *drive,
                                            const char          *kind);
+_GIO_API
 char **  g_drive_enumerate_identifiers    (GDrive              *drive);
 
+_GIO_API
 GDriveStartStopType g_drive_get_start_stop_type (GDrive        *drive);
 
+_GIO_API
 gboolean g_drive_can_start                (GDrive              *drive);
+_GIO_API
 gboolean g_drive_can_start_degraded       (GDrive              *drive);
+_GIO_API
 void     g_drive_start                    (GDrive              *drive,
                                            GDriveStartFlags     flags,
                                            GMountOperation     *mount_operation,
                                            GCancellable        *cancellable,
                                            GAsyncReadyCallback  callback,
                                            gpointer             user_data);
+_GIO_API
 gboolean g_drive_start_finish             (GDrive               *drive,
                                            GAsyncResult         *result,
                                            GError              **error);
 
+_GIO_API
 gboolean g_drive_can_stop                 (GDrive               *drive);
+_GIO_API
 void     g_drive_stop                     (GDrive               *drive,
                                            GMountUnmountFlags    flags,
                                            GMountOperation      *mount_operation,
                                            GCancellable         *cancellable,
                                            GAsyncReadyCallback   callback,
                                            gpointer              user_data);
+_GIO_API
 gboolean g_drive_stop_finish              (GDrive               *drive,
                                            GAsyncResult         *result,
                                            GError              **error);
 
+_GIO_API
 void        g_drive_eject_with_operation      (GDrive              *drive,
                                                GMountUnmountFlags   flags,
                                                GMountOperation     *mount_operation,
                                                GCancellable        *cancellable,
                                                GAsyncReadyCallback  callback,
                                                gpointer             user_data);
+_GIO_API
 gboolean    g_drive_eject_with_operation_finish (GDrive            *drive,
                                                GAsyncResult        *result,
                                                GError             **error);
diff --git a/gio/gemblem.h b/gio/gemblem.h
index 06816e1..9e6c902 100644
--- a/gio/gemblem.h
+++ b/gio/gemblem.h
@@ -45,12 +45,17 @@ G_BEGIN_DECLS
 typedef struct _GEmblem        GEmblem;
 typedef struct _GEmblemClass   GEmblemClass;
 
+_GIO_API
 GType          g_emblem_get_type        (void) G_GNUC_CONST;
 
+_GIO_API
 GEmblem       *g_emblem_new             (GIcon         *icon);
+_GIO_API
 GEmblem       *g_emblem_new_with_origin (GIcon         *icon,
                                          GEmblemOrigin  origin);
+_GIO_API
 GIcon         *g_emblem_get_icon        (GEmblem       *emblem);
+_GIO_API
 GEmblemOrigin  g_emblem_get_origin      (GEmblem       *emblem);
 
 G_END_DECLS
diff --git a/gio/gemblemedicon.h b/gio/gemblemedicon.h
index ded6928..a974e21 100644
--- a/gio/gemblemedicon.h
+++ b/gio/gemblemedicon.h
@@ -62,14 +62,20 @@ struct _GEmblemedIconClass
   GObjectClass parent_class;
 };
 
+_GIO_API
 GType  g_emblemed_icon_get_type    (void) G_GNUC_CONST;
 
+_GIO_API
 GIcon *g_emblemed_icon_new         (GIcon         *icon,
                                     GEmblem       *emblem);
+_GIO_API
 GIcon *g_emblemed_icon_get_icon    (GEmblemedIcon *emblemed);
+_GIO_API
 GList *g_emblemed_icon_get_emblems (GEmblemedIcon *emblemed);
+_GIO_API
 void   g_emblemed_icon_add_emblem  (GEmblemedIcon *emblemed,
                                     GEmblem       *emblem);
+_GIO_API
 void   g_emblemed_icon_clear_emblems  (GEmblemedIcon *emblemed);
 
 G_END_DECLS
diff --git a/gio/gfile.h b/gio/gfile.h
index 8e8b9a3..0d75bd7 100644
--- a/gio/gfile.h
+++ b/gio/gfile.h
@@ -551,10 +551,14 @@ struct _GFileIface
                                                        GError              **error);
 };
 
+_GIO_API
 GType                   g_file_get_type                   (void) G_GNUC_CONST;
 
+_GIO_API
 GFile *                 g_file_new_for_path               (const char                 *path);
+_GIO_API
 GFile *                 g_file_new_for_uri                (const char                 *uri);
+_GIO_API
 GFile *                 g_file_new_for_commandline_arg    (const char                 *arg);
 GLIB_AVAILABLE_IN_2_36
 GFile *                 g_file_new_for_commandline_arg_and_cwd (const gchar           *arg,
@@ -563,76 +567,105 @@ GLIB_AVAILABLE_IN_2_32
 GFile *                 g_file_new_tmp                    (const char                 *tmpl,
                                                            GFileIOStream             **iostream,
                                                            GError                    **error);
+_GIO_API
 GFile *                 g_file_parse_name                 (const char                 *parse_name);
+_GIO_API
 GFile *                 g_file_dup                        (GFile                      *file);
+_GIO_API
 guint                   g_file_hash                       (gconstpointer               file);
+_GIO_API
 gboolean                g_file_equal                      (GFile                      *file1,
 							   GFile                      *file2);
+_GIO_API
 char *                  g_file_get_basename               (GFile                      *file);
+_GIO_API
 char *                  g_file_get_path                   (GFile                      *file);
+_GIO_API
 char *                  g_file_get_uri                    (GFile                      *file);
+_GIO_API
 char *                  g_file_get_parse_name             (GFile                      *file);
+_GIO_API
 GFile *                 g_file_get_parent                 (GFile                      *file);
+_GIO_API
 gboolean                g_file_has_parent                 (GFile                      *file,
                                                            GFile                      *parent);
+_GIO_API
 GFile *                 g_file_get_child                  (GFile                      *file,
 							   const char                 *name);
+_GIO_API
 GFile *                 g_file_get_child_for_display_name (GFile                      *file,
 							   const char                 *display_name,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_has_prefix                 (GFile                      *file,
 							   GFile                      *prefix);
+_GIO_API
 char *                  g_file_get_relative_path          (GFile                      *parent,
 							   GFile                      *descendant);
+_GIO_API
 GFile *                 g_file_resolve_relative_path      (GFile                      *file,
 							   const char                 *relative_path);
+_GIO_API
 gboolean                g_file_is_native                  (GFile                      *file);
+_GIO_API
 gboolean                g_file_has_uri_scheme             (GFile                      *file,
 							   const char                 *uri_scheme);
+_GIO_API
 char *                  g_file_get_uri_scheme             (GFile                      *file);
+_GIO_API
 GFileInputStream *      g_file_read                       (GFile                      *file,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 void                    g_file_read_async                 (GFile                      *file,
 							   int                         io_priority,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFileInputStream *      g_file_read_finish                (GFile                      *file,
 							   GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 GFileOutputStream *     g_file_append_to                  (GFile                      *file,
 							   GFileCreateFlags             flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 GFileOutputStream *     g_file_create                     (GFile                      *file,
 							   GFileCreateFlags             flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 GFileOutputStream *     g_file_replace                    (GFile                      *file,
 							   const char                 *etag,
 							   gboolean                    make_backup,
 							   GFileCreateFlags            flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 void                    g_file_append_to_async            (GFile                      *file,
 							   GFileCreateFlags            flags,
 							   int                         io_priority,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFileOutputStream *     g_file_append_to_finish           (GFile                      *file,
 							   GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 void                    g_file_create_async               (GFile                      *file,
 							   GFileCreateFlags            flags,
 							   int                         io_priority,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFileOutputStream *     g_file_create_finish              (GFile                      *file,
 							   GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 void                    g_file_replace_async              (GFile                      *file,
 							   const char                 *etag,
 							   gboolean                    make_backup,
@@ -641,39 +674,48 @@ void                    g_file_replace_async              (GFile
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFileOutputStream *     g_file_replace_finish             (GFile                      *file,
 							   GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 GFileIOStream *         g_file_open_readwrite             (GFile                      *file,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 void                    g_file_open_readwrite_async       (GFile                      *file,
 							   int                         io_priority,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFileIOStream *         g_file_open_readwrite_finish      (GFile                      *file,
 							   GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 GFileIOStream *         g_file_create_readwrite           (GFile                      *file,
 							   GFileCreateFlags            flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 void                    g_file_create_readwrite_async     (GFile                      *file,
 							   GFileCreateFlags            flags,
 							   int                         io_priority,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFileIOStream *         g_file_create_readwrite_finish    (GFile                      *file,
 							   GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 GFileIOStream *         g_file_replace_readwrite          (GFile                      *file,
 							   const char                 *etag,
 							   gboolean                    make_backup,
 							   GFileCreateFlags            flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 void                    g_file_replace_readwrite_async    (GFile                      *file,
 							   const char                 *etag,
 							   gboolean                    make_backup,
@@ -682,19 +724,24 @@ void                    g_file_replace_readwrite_async    (GFile
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFileIOStream *         g_file_replace_readwrite_finish   (GFile                      *file,
 							   GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_query_exists               (GFile                      *file,
 							   GCancellable               *cancellable);
+_GIO_API
 GFileType               g_file_query_file_type            (GFile                      *file,
                                                            GFileQueryInfoFlags         flags,
                                                            GCancellable               *cancellable);
+_GIO_API
 GFileInfo *             g_file_query_info                 (GFile                      *file,
 							   const char                 *attributes,
 							   GFileQueryInfoFlags         flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 void                    g_file_query_info_async           (GFile                      *file,
 							   const char                 *attributes,
 							   GFileQueryInfoFlags         flags,
@@ -702,38 +749,47 @@ void                    g_file_query_info_async           (GFile
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFileInfo *             g_file_query_info_finish          (GFile                      *file,
 							   GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 GFileInfo *             g_file_query_filesystem_info      (GFile                      *file,
 							   const char                 *attributes,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 void                    g_file_query_filesystem_info_async (GFile                      *file,
 							   const char                 *attributes,
 							   int                         io_priority,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFileInfo *             g_file_query_filesystem_info_finish (GFile                      *file,
                                                            GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 GMount *                g_file_find_enclosing_mount       (GFile                      *file,
                                                            GCancellable               *cancellable,
                                                            GError                    **error);
+_GIO_API
 void                    g_file_find_enclosing_mount_async (GFile                      *file,
 							   int                         io_priority,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GMount *                g_file_find_enclosing_mount_finish (GFile                     *file,
 							    GAsyncResult              *res,
 							    GError                   **error);
+_GIO_API
 GFileEnumerator *       g_file_enumerate_children         (GFile                      *file,
 							   const char                 *attributes,
 							   GFileQueryInfoFlags         flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 void                    g_file_enumerate_children_async   (GFile                      *file,
 							   const char                 *attributes,
 							   GFileQueryInfoFlags         flags,
@@ -741,22 +797,27 @@ void                    g_file_enumerate_children_async   (GFile
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFileEnumerator *       g_file_enumerate_children_finish  (GFile                      *file,
 							   GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 GFile *                 g_file_set_display_name           (GFile                      *file,
 							   const char                 *display_name,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 void                    g_file_set_display_name_async     (GFile                      *file,
 							   const char                 *display_name,
 							   int                         io_priority,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFile *                 g_file_set_display_name_finish    (GFile                      *file,
 							   GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_delete                     (GFile                      *file,
 							   GCancellable               *cancellable,
 							   GError                    **error);
@@ -773,9 +834,11 @@ gboolean                g_file_delete_finish              (GFile
 							   GAsyncResult               *result,
 							   GError                    **error);
 
+_GIO_API
 gboolean                g_file_trash                      (GFile                      *file,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_copy                       (GFile                      *source,
 							   GFile                      *destination,
 							   GFileCopyFlags              flags,
@@ -783,6 +846,7 @@ gboolean                g_file_copy                       (GFile
 							   GFileProgressCallback       progress_callback,
 							   gpointer                    progress_callback_data,
 							   GError                    **error);
+_GIO_API
 void                    g_file_copy_async                 (GFile                      *source,
 							   GFile                      *destination,
 							   GFileCopyFlags              flags,
@@ -792,9 +856,11 @@ void                    g_file_copy_async                 (GFile
 							   gpointer                    progress_callback_data,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 gboolean                g_file_copy_finish                (GFile                      *file,
 							   GAsyncResult               *res,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_move                       (GFile                      *source,
 							   GFile                      *destination,
 							   GFileCopyFlags              flags,
@@ -802,22 +868,28 @@ gboolean                g_file_move                       (GFile
 							   GFileProgressCallback       progress_callback,
 							   gpointer                    progress_callback_data,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_make_directory             (GFile                      *file,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_make_directory_with_parents (GFile                     *file,
 		                                           GCancellable               *cancellable,
 		                                           GError                    **error);
+_GIO_API
 gboolean                g_file_make_symbolic_link         (GFile                      *file,
 							   const char                 *symlink_value,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 GFileAttributeInfoList *g_file_query_settable_attributes  (GFile                      *file,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 GFileAttributeInfoList *g_file_query_writable_namespaces  (GFile                      *file,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_set_attribute              (GFile                      *file,
 							   const char                 *attribute,
 							   GFileAttributeType          type,
@@ -825,11 +897,13 @@ gboolean                g_file_set_attribute              (GFile
 							   GFileQueryInfoFlags         flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_set_attributes_from_info   (GFile                      *file,
 							   GFileInfo                  *info,
 							   GFileQueryInfoFlags         flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 void                    g_file_set_attributes_async       (GFile                      *file,
 							   GFileInfo                  *info,
 							   GFileQueryInfoFlags         flags,
@@ -837,61 +911,72 @@ void                    g_file_set_attributes_async       (GFile
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 gboolean                g_file_set_attributes_finish      (GFile                      *file,
 							   GAsyncResult               *result,
 							   GFileInfo                 **info,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_set_attribute_string       (GFile                      *file,
 							   const char                 *attribute,
 							   const char                 *value,
 							   GFileQueryInfoFlags         flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_set_attribute_byte_string  (GFile                      *file,
 							   const char                 *attribute,
 							   const char                 *value,
 							   GFileQueryInfoFlags         flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_set_attribute_uint32       (GFile                      *file,
 							   const char                 *attribute,
 							   guint32                     value,
 							   GFileQueryInfoFlags         flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_set_attribute_int32        (GFile                      *file,
 							   const char                 *attribute,
 							   gint32                      value,
 							   GFileQueryInfoFlags         flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_set_attribute_uint64       (GFile                      *file,
 							   const char                 *attribute,
 							   guint64                     value,
 							   GFileQueryInfoFlags         flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 gboolean                g_file_set_attribute_int64        (GFile                      *file,
 							   const char                 *attribute,
 							   gint64                      value,
 							   GFileQueryInfoFlags         flags,
 							   GCancellable               *cancellable,
 							   GError                    **error);
+_GIO_API
 void                    g_file_mount_enclosing_volume     (GFile                      *location,
 							   GMountMountFlags            flags,
 							   GMountOperation            *mount_operation,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 gboolean                g_file_mount_enclosing_volume_finish (GFile                      *location,
 							   GAsyncResult               *result,
 							   GError                    **error);
+_GIO_API
 void                    g_file_mount_mountable            (GFile                      *file,
 							   GMountMountFlags            flags,
 							   GMountOperation            *mount_operation,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 GFile *                 g_file_mount_mountable_finish     (GFile                      *file,
 							   GAsyncResult               *result,
 							   GError                    **error);
@@ -906,12 +991,14 @@ GLIB_DEPRECATED_FOR(g_file_unmount_mountable_with_operation_finish)
 gboolean                g_file_unmount_mountable_finish   (GFile                      *file,
                                                            GAsyncResult               *result,
                                                            GError                    **error);
+_GIO_API
 void                    g_file_unmount_mountable_with_operation (GFile                *file,
 							   GMountUnmountFlags          flags,
 							   GMountOperation            *mount_operation,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 gboolean                g_file_unmount_mountable_with_operation_finish (GFile         *file,
 							   GAsyncResult               *result,
 							   GError                    **error);
@@ -926,16 +1013,19 @@ GLIB_DEPRECATED_FOR(g_file_eject_mountable_with_operation_finish)
 gboolean                g_file_eject_mountable_finish     (GFile                      *file,
                                                            GAsyncResult               *result,
                                                            GError                    **error);
+_GIO_API
 void                    g_file_eject_mountable_with_operation (GFile                  *file,
 							   GMountUnmountFlags          flags,
 							   GMountOperation            *mount_operation,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 gboolean                g_file_eject_mountable_with_operation_finish (GFile           *file,
 							   GAsyncResult               *result,
 							   GError                    **error);
 
+_GIO_API
 gboolean                g_file_copy_attributes            (GFile                      *source,
 							   GFile                      *destination,
 							   GFileCopyFlags              flags,
@@ -943,78 +1033,94 @@ gboolean                g_file_copy_attributes            (GFile
 							   GError                    **error);
 
 
+_GIO_API
 GFileMonitor*           g_file_monitor_directory          (GFile                  *file,
 							   GFileMonitorFlags       flags,
 							   GCancellable           *cancellable,
 							   GError                **error);
+_GIO_API
 GFileMonitor*           g_file_monitor_file               (GFile                  *file,
 							   GFileMonitorFlags       flags,
 							   GCancellable           *cancellable,
 							   GError                **error);
+_GIO_API
 GFileMonitor*           g_file_monitor                    (GFile                  *file,
 							   GFileMonitorFlags       flags,
 							   GCancellable           *cancellable,
 							   GError                **error);
 
+_GIO_API
 void                    g_file_start_mountable            (GFile                      *file,
 							   GDriveStartFlags            flags,
 							   GMountOperation            *start_operation,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 gboolean                g_file_start_mountable_finish     (GFile                      *file,
 							   GAsyncResult               *result,
 							   GError                    **error);
+_GIO_API
 void                    g_file_stop_mountable             (GFile                      *file,
 							   GMountUnmountFlags          flags,
                                                            GMountOperation            *mount_operation,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 gboolean                g_file_stop_mountable_finish      (GFile                      *file,
 							   GAsyncResult               *result,
 							   GError                    **error);
 
+_GIO_API
 void                    g_file_poll_mountable             (GFile                      *file,
 							   GCancellable               *cancellable,
 							   GAsyncReadyCallback         callback,
 							   gpointer                    user_data);
+_GIO_API
 gboolean                g_file_poll_mountable_finish      (GFile                      *file,
 							   GAsyncResult               *result,
 							   GError                    **error);
 
 /* Utilities */
 
+_GIO_API
 GAppInfo *g_file_query_default_handler       (GFile                  *file,
 					      GCancellable           *cancellable,
 					      GError                **error);
+_GIO_API
 gboolean g_file_load_contents                (GFile                  *file,
 					      GCancellable           *cancellable,
 					      char                  **contents,
 					      gsize                  *length,
 					      char                  **etag_out,
 					      GError                **error);
+_GIO_API
 void     g_file_load_contents_async          (GFile                  *file,
 					      GCancellable           *cancellable,
 					      GAsyncReadyCallback     callback,
 					      gpointer                user_data);
+_GIO_API
 gboolean g_file_load_contents_finish         (GFile                  *file,
 					      GAsyncResult           *res,
 					      char                  **contents,
 					      gsize                  *length,
 					      char                  **etag_out,
 					      GError                **error);
+_GIO_API
 void     g_file_load_partial_contents_async  (GFile                  *file,
 					      GCancellable           *cancellable,
 					      GFileReadMoreCallback   read_more_callback,
 					      GAsyncReadyCallback     callback,
 					      gpointer                user_data);
+_GIO_API
 gboolean g_file_load_partial_contents_finish (GFile                  *file,
 					      GAsyncResult           *res,
 					      char                  **contents,
 					      gsize                  *length,
 					      char                  **etag_out,
 					      GError                **error);
+_GIO_API
 gboolean g_file_replace_contents             (GFile                  *file,
 					      const char             *contents,
 					      gsize                   length,
@@ -1024,6 +1130,7 @@ gboolean g_file_replace_contents             (GFile                  *file,
 					      char                  **new_etag,
 					      GCancellable           *cancellable,
 					      GError                **error);
+_GIO_API
 void     g_file_replace_contents_async       (GFile                  *file,
 					      const char             *contents,
 					      gsize                   length,
@@ -1033,11 +1140,13 @@ void     g_file_replace_contents_async       (GFile                  *file,
 					      GCancellable           *cancellable,
 					      GAsyncReadyCallback     callback,
 					      gpointer                user_data);
+_GIO_API
 gboolean g_file_replace_contents_finish      (GFile                  *file,
 					      GAsyncResult           *res,
 					      char                  **new_etag,
 					      GError                **error);
 
+_GIO_API
 gboolean g_file_supports_thread_contexts     (GFile                  *file);
 
 G_END_DECLS
diff --git a/gio/gfileattribute.h b/gio/gfileattribute.h
index 445cdd7..eaed825 100644
--- a/gio/gfileattribute.h
+++ b/gio/gfileattribute.h
@@ -61,14 +61,21 @@ struct _GFileAttributeInfoList
 };
 
 #define G_TYPE_FILE_ATTRIBUTE_INFO_LIST (g_file_attribute_info_list_get_type ())
+_GIO_API
 GType g_file_attribute_info_list_get_type (void);
 
+_GIO_API
 GFileAttributeInfoList *  g_file_attribute_info_list_new    (void);
+_GIO_API
 GFileAttributeInfoList *  g_file_attribute_info_list_ref    (GFileAttributeInfoList *list);
+_GIO_API
 void                      g_file_attribute_info_list_unref  (GFileAttributeInfoList *list);
+_GIO_API
 GFileAttributeInfoList *  g_file_attribute_info_list_dup    (GFileAttributeInfoList *list);
+_GIO_API
 const GFileAttributeInfo *g_file_attribute_info_list_lookup (GFileAttributeInfoList *list,
 							     const char             *name);
+_GIO_API
 void                      g_file_attribute_info_list_add    (GFileAttributeInfoList *list,
 							     const char             *name,
 							     GFileAttributeType      type,
diff --git a/gio/gfiledescriptorbased.h b/gio/gfiledescriptorbased.h
index 3679286..4eed11f 100644
--- a/gio/gfiledescriptorbased.h
+++ b/gio/gfiledescriptorbased.h
@@ -52,8 +52,10 @@ struct _GFileDescriptorBasedIface
   int (*get_fd) (GFileDescriptorBased *fd_based);
 };
 
+_GIO_API
 GType    g_file_descriptor_based_get_type     (void) G_GNUC_CONST;
 
+_GIO_API
 int      g_file_descriptor_based_get_fd       (GFileDescriptorBased *fd_based);
 
 G_END_DECLS
diff --git a/gio/gfileenumerator.h b/gio/gfileenumerator.h
index 9cd2f3e..512e6f2 100644
--- a/gio/gfileenumerator.h
+++ b/gio/gfileenumerator.h
@@ -96,35 +96,46 @@ struct _GFileEnumeratorClass
   void (*_g_reserved7) (void);
 };
 
+_GIO_API
 GType      g_file_enumerator_get_type          (void) G_GNUC_CONST;
 
+_GIO_API
 GFileInfo *g_file_enumerator_next_file         (GFileEnumerator      *enumerator,
 						GCancellable         *cancellable,
 						GError              **error);
+_GIO_API
 gboolean   g_file_enumerator_close             (GFileEnumerator      *enumerator,
 						GCancellable         *cancellable,
 						GError              **error);
+_GIO_API
 void       g_file_enumerator_next_files_async  (GFileEnumerator      *enumerator,
 						int                   num_files,
 						int                   io_priority,
 						GCancellable         *cancellable,
 						GAsyncReadyCallback   callback,
 						gpointer              user_data);
+_GIO_API
 GList *    g_file_enumerator_next_files_finish (GFileEnumerator      *enumerator,
 						GAsyncResult         *result,
 						GError              **error);
+_GIO_API
 void       g_file_enumerator_close_async       (GFileEnumerator      *enumerator,
 						int                   io_priority,
 						GCancellable         *cancellable,
 						GAsyncReadyCallback   callback,
 						gpointer              user_data);
+_GIO_API
 gboolean   g_file_enumerator_close_finish      (GFileEnumerator      *enumerator,
 						GAsyncResult         *result,
 						GError              **error);
+_GIO_API
 gboolean   g_file_enumerator_is_closed         (GFileEnumerator      *enumerator);
+_GIO_API
 gboolean   g_file_enumerator_has_pending       (GFileEnumerator      *enumerator);
+_GIO_API
 void       g_file_enumerator_set_pending       (GFileEnumerator      *enumerator,
 						gboolean              pending);
+_GIO_API
 GFile *    g_file_enumerator_get_container     (GFileEnumerator *enumerator);
 
 G_END_DECLS
diff --git a/gio/gfileicon.h b/gio/gfileicon.h
index 08ae791..87e3e0f 100644
--- a/gio/gfileicon.h
+++ b/gio/gfileicon.h
@@ -45,10 +45,13 @@ G_BEGIN_DECLS
  **/
 typedef struct _GFileIconClass   GFileIconClass;
 
+_GIO_API
 GType   g_file_icon_get_type (void) G_GNUC_CONST;
 
+_GIO_API
 GIcon * g_file_icon_new      (GFile     *file);
 
+_GIO_API
 GFile * g_file_icon_get_file (GFileIcon *icon);
 
 G_END_DECLS
diff --git a/gio/gfileinfo.h b/gio/gfileinfo.h
index 98aeaae..b8f27d0 100644
--- a/gio/gfileinfo.h
+++ b/gio/gfileinfo.h
@@ -829,153 +829,225 @@ typedef struct _GFileInfoClass   GFileInfoClass;
  **/
 #define G_FILE_ATTRIBUTE_TRASH_DELETION_DATE "trash::deletion-date"  /* string */
 
+_GIO_API
 GType              g_file_info_get_type                  (void) G_GNUC_CONST;
 
+_GIO_API
 GFileInfo *        g_file_info_new                       (void);
+_GIO_API
 GFileInfo *        g_file_info_dup                       (GFileInfo  *other);
+_GIO_API
 void               g_file_info_copy_into                 (GFileInfo  *src_info,
 							  GFileInfo  *dest_info);
+_GIO_API
 gboolean           g_file_info_has_attribute             (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 gboolean           g_file_info_has_namespace             (GFileInfo  *info,
 							  const char *name_space);
+_GIO_API
 char **            g_file_info_list_attributes           (GFileInfo  *info,
 							  const char *name_space);
+_GIO_API
 gboolean           g_file_info_get_attribute_data        (GFileInfo  *info,
 							  const char *attribute,
 							  GFileAttributeType *type,
 							  gpointer   *value_pp,
 							  GFileAttributeStatus *status);
+_GIO_API
 GFileAttributeType g_file_info_get_attribute_type        (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 void               g_file_info_remove_attribute          (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 GFileAttributeStatus g_file_info_get_attribute_status    (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 gboolean           g_file_info_set_attribute_status      (GFileInfo  *info,
 							  const char *attribute,
 							  GFileAttributeStatus status);
+_GIO_API
 char *             g_file_info_get_attribute_as_string   (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 const char *       g_file_info_get_attribute_string      (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 const char *       g_file_info_get_attribute_byte_string (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 gboolean           g_file_info_get_attribute_boolean     (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 guint32            g_file_info_get_attribute_uint32      (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 gint32             g_file_info_get_attribute_int32       (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 guint64            g_file_info_get_attribute_uint64      (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 gint64             g_file_info_get_attribute_int64       (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 GObject *          g_file_info_get_attribute_object      (GFileInfo  *info,
 							  const char *attribute);
+_GIO_API
 char **            g_file_info_get_attribute_stringv     (GFileInfo  *info,
 							  const char *attribute);
 
+_GIO_API
 void               g_file_info_set_attribute             (GFileInfo  *info,
 							  const char *attribute,
 							  GFileAttributeType type,
 							  gpointer    value_p);
+_GIO_API
 void               g_file_info_set_attribute_string      (GFileInfo  *info,
 							  const char *attribute,
 							  const char *attr_value);
+_GIO_API
 void               g_file_info_set_attribute_byte_string (GFileInfo  *info,
 							  const char *attribute,
 							  const char *attr_value);
+_GIO_API
 void               g_file_info_set_attribute_boolean     (GFileInfo  *info,
 							  const char *attribute,
 							  gboolean    attr_value);
+_GIO_API
 void               g_file_info_set_attribute_uint32      (GFileInfo  *info,
 							  const char *attribute,
 							  guint32     attr_value);
+_GIO_API
 void               g_file_info_set_attribute_int32       (GFileInfo  *info,
 							  const char *attribute,
 							  gint32      attr_value);
+_GIO_API
 void               g_file_info_set_attribute_uint64      (GFileInfo  *info,
 							  const char *attribute,
 							  guint64     attr_value);
+_GIO_API
 void               g_file_info_set_attribute_int64       (GFileInfo  *info,
 							  const char *attribute,
 							  gint64      attr_value);
+_GIO_API
 void               g_file_info_set_attribute_object      (GFileInfo  *info,
 							  const char *attribute,
 							  GObject    *attr_value);
+_GIO_API
 void               g_file_info_set_attribute_stringv     (GFileInfo  *info,
 							  const char *attribute,
 							  char      **attr_value);
 
+_GIO_API
 void               g_file_info_clear_status              (GFileInfo  *info);
 
 /* Helper getters: */
 GLIB_AVAILABLE_IN_2_36
 GDateTime *       g_file_info_get_deletion_date      (GFileInfo         *info);
+_GIO_API
 GFileType         g_file_info_get_file_type          (GFileInfo         *info);
+_GIO_API
 gboolean          g_file_info_get_is_hidden          (GFileInfo         *info);
+_GIO_API
 gboolean          g_file_info_get_is_backup          (GFileInfo         *info);
+_GIO_API
 gboolean          g_file_info_get_is_symlink         (GFileInfo         *info);
+_GIO_API
 const char *      g_file_info_get_name               (GFileInfo         *info);
+_GIO_API
 const char *      g_file_info_get_display_name       (GFileInfo         *info);
+_GIO_API
 const char *      g_file_info_get_edit_name          (GFileInfo         *info);
+_GIO_API
 GIcon *           g_file_info_get_icon               (GFileInfo         *info);
+_GIO_API
 GIcon *           g_file_info_get_symbolic_icon      (GFileInfo         *info);
+_GIO_API
 const char *      g_file_info_get_content_type       (GFileInfo         *info);
+_GIO_API
 goffset           g_file_info_get_size               (GFileInfo         *info);
+_GIO_API
 void              g_file_info_get_modification_time  (GFileInfo         *info,
 						      GTimeVal          *result);
+_GIO_API
 const char *      g_file_info_get_symlink_target     (GFileInfo         *info);
+_GIO_API
 const char *      g_file_info_get_etag               (GFileInfo         *info);
+_GIO_API
 gint32            g_file_info_get_sort_order         (GFileInfo         *info);
 
+_GIO_API
 void              g_file_info_set_attribute_mask     (GFileInfo         *info,
 						      GFileAttributeMatcher *mask);
+_GIO_API
 void              g_file_info_unset_attribute_mask   (GFileInfo         *info);
 
 /* Helper setters: */
+_GIO_API
 void              g_file_info_set_file_type          (GFileInfo         *info,
 						      GFileType          type);
+_GIO_API
 void              g_file_info_set_is_hidden          (GFileInfo         *info,
 						      gboolean           is_hidden);
+_GIO_API
 void              g_file_info_set_is_symlink         (GFileInfo         *info,
 						      gboolean           is_symlink);
+_GIO_API
 void              g_file_info_set_name               (GFileInfo         *info,
 						      const char        *name);
+_GIO_API
 void              g_file_info_set_display_name       (GFileInfo         *info,
 						      const char        *display_name);
+_GIO_API
 void              g_file_info_set_edit_name          (GFileInfo         *info,
 						      const char        *edit_name);
+_GIO_API
 void              g_file_info_set_icon               (GFileInfo         *info,
 						      GIcon             *icon);
+_GIO_API
 void              g_file_info_set_symbolic_icon      (GFileInfo         *info,
 						      GIcon             *icon);
+_GIO_API
 void              g_file_info_set_content_type       (GFileInfo         *info,
 						      const char        *content_type);
+_GIO_API
 void              g_file_info_set_size               (GFileInfo         *info,
 						      goffset            size);
+_GIO_API
 void              g_file_info_set_modification_time  (GFileInfo         *info,
 						      GTimeVal          *mtime);
+_GIO_API
 void              g_file_info_set_symlink_target     (GFileInfo         *info,
 						      const char        *symlink_target);
+_GIO_API
 void              g_file_info_set_sort_order         (GFileInfo         *info,
 						      gint32             sort_order);
 
 #define G_TYPE_FILE_ATTRIBUTE_MATCHER (g_file_attribute_matcher_get_type ())
+_GIO_API
 GType g_file_attribute_matcher_get_type (void) G_GNUC_CONST;
 
+_GIO_API
 GFileAttributeMatcher *g_file_attribute_matcher_new            (const char            *attributes);
+_GIO_API
 GFileAttributeMatcher *g_file_attribute_matcher_ref            (GFileAttributeMatcher *matcher);
+_GIO_API
 void                   g_file_attribute_matcher_unref          (GFileAttributeMatcher *matcher);
+_GIO_API
 GFileAttributeMatcher *g_file_attribute_matcher_subtract       (GFileAttributeMatcher *matcher,
                                                                 GFileAttributeMatcher *subtract);
+_GIO_API
 gboolean               g_file_attribute_matcher_matches        (GFileAttributeMatcher *matcher,
 								const char            *attribute);
+_GIO_API
 gboolean               g_file_attribute_matcher_matches_only   (GFileAttributeMatcher *matcher,
 								const char            *attribute);
+_GIO_API
 gboolean               g_file_attribute_matcher_enumerate_namespace (GFileAttributeMatcher *matcher,
 								     const char            *ns);
+_GIO_API
 const char *           g_file_attribute_matcher_enumerate_next (GFileAttributeMatcher *matcher);
 GLIB_AVAILABLE_IN_2_32
 char *                 g_file_attribute_matcher_to_string      (GFileAttributeMatcher *matcher);
diff --git a/gio/gfileinputstream.h b/gio/gfileinputstream.h
index 08c056e..3836044 100644
--- a/gio/gfileinputstream.h
+++ b/gio/gfileinputstream.h
@@ -91,18 +91,22 @@ struct _GFileInputStreamClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType      g_file_input_stream_get_type          (void) G_GNUC_CONST;
 
+_GIO_API
 GFileInfo *g_file_input_stream_query_info        (GFileInputStream     *stream,
 						  const char           *attributes,
 						  GCancellable         *cancellable,
 						  GError              **error);
+_GIO_API
 void       g_file_input_stream_query_info_async  (GFileInputStream     *stream,
 						  const char           *attributes,
 						  int                   io_priority,
 						  GCancellable         *cancellable,
 						  GAsyncReadyCallback   callback,
 						  gpointer              user_data);
+_GIO_API
 GFileInfo *g_file_input_stream_query_info_finish (GFileInputStream     *stream,
 						  GAsyncResult         *result,
 						  GError              **error);
diff --git a/gio/gfileiostream.h b/gio/gfileiostream.h
index 31497e3..237d45b 100644
--- a/gio/gfileiostream.h
+++ b/gio/gfileiostream.h
@@ -96,21 +96,26 @@ struct _GFileIOStreamClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType      g_file_io_stream_get_type          (void) G_GNUC_CONST;
 
+_GIO_API
 GFileInfo *g_file_io_stream_query_info        (GFileIOStream    *stream,
 					       const char           *attributes,
 					       GCancellable         *cancellable,
 					       GError              **error);
+_GIO_API
 void       g_file_io_stream_query_info_async  (GFileIOStream    *stream,
 					       const char           *attributes,
 					       int                   io_priority,
 					       GCancellable         *cancellable,
 					       GAsyncReadyCallback   callback,
 					       gpointer              user_data);
+_GIO_API
 GFileInfo *g_file_io_stream_query_info_finish (GFileIOStream    *stream,
 					       GAsyncResult         *result,
 					       GError              **error);
+_GIO_API
 char *     g_file_io_stream_get_etag          (GFileIOStream    *stream);
 
 G_END_DECLS
diff --git a/gio/gfilemonitor.h b/gio/gfilemonitor.h
index 8e27d22..b7bd273 100644
--- a/gio/gfilemonitor.h
+++ b/gio/gfilemonitor.h
@@ -76,15 +76,20 @@ struct _GFileMonitorClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType    g_file_monitor_get_type       (void) G_GNUC_CONST;
 
+_GIO_API
 gboolean g_file_monitor_cancel         (GFileMonitor      *monitor);
+_GIO_API
 gboolean g_file_monitor_is_cancelled   (GFileMonitor      *monitor);
+_GIO_API
 void     g_file_monitor_set_rate_limit (GFileMonitor      *monitor,
                                         gint               limit_msecs);
 
 
 /* For implementations */
+_GIO_API
 void     g_file_monitor_emit_event     (GFileMonitor      *monitor,
                                         GFile             *child,
                                         GFile             *other_file,
diff --git a/gio/gfilenamecompleter.h b/gio/gfilenamecompleter.h
index 1899c27..5bb3e46 100644
--- a/gio/gfilenamecompleter.h
+++ b/gio/gfilenamecompleter.h
@@ -60,14 +60,19 @@ struct _GFilenameCompleterClass
   void (*_g_reserved3) (void);
 };
 
+_GIO_API
 GType               g_filename_completer_get_type              (void) G_GNUC_CONST;
 
+_GIO_API
 GFilenameCompleter *g_filename_completer_new                   (void);
 
+_GIO_API
 char *              g_filename_completer_get_completion_suffix (GFilenameCompleter *completer,
                                                                 const char *initial_text);
+_GIO_API
 char **             g_filename_completer_get_completions       (GFilenameCompleter *completer,
                                                                 const char *initial_text);
+_GIO_API
 void                g_filename_completer_set_dirs_only         (GFilenameCompleter *completer,
                                                                 gboolean dirs_only);
 
diff --git a/gio/gfileoutputstream.h b/gio/gfileoutputstream.h
index 3b5f85d..2e60cd2 100644
--- a/gio/gfileoutputstream.h
+++ b/gio/gfileoutputstream.h
@@ -96,22 +96,27 @@ struct _GFileOutputStreamClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType      g_file_output_stream_get_type          (void) G_GNUC_CONST;
 
 
+_GIO_API
 GFileInfo *g_file_output_stream_query_info        (GFileOutputStream    *stream,
                                                    const char           *attributes,
                                                    GCancellable         *cancellable,
                                                    GError              **error);
+_GIO_API
 void       g_file_output_stream_query_info_async  (GFileOutputStream    *stream,
 						   const char           *attributes,
 						   int                   io_priority,
 						   GCancellable         *cancellable,
 						   GAsyncReadyCallback   callback,
 						   gpointer              user_data);
+_GIO_API
 GFileInfo *g_file_output_stream_query_info_finish (GFileOutputStream    *stream,
 						   GAsyncResult         *result,
 						   GError              **error);
+_GIO_API
 char *     g_file_output_stream_get_etag          (GFileOutputStream    *stream);
 
 G_END_DECLS
diff --git a/gio/gfilterinputstream.h b/gio/gfilterinputstream.h
index 1514104..e32391e 100644
--- a/gio/gfilterinputstream.h
+++ b/gio/gfilterinputstream.h
@@ -65,9 +65,13 @@ struct _GFilterInputStreamClass
 };
 
 
+_GIO_API
 GType          g_filter_input_stream_get_type              (void) G_GNUC_CONST;
+_GIO_API
 GInputStream * g_filter_input_stream_get_base_stream       (GFilterInputStream *stream);
+_GIO_API
 gboolean       g_filter_input_stream_get_close_base_stream (GFilterInputStream *stream);
+_GIO_API
 void           g_filter_input_stream_set_close_base_stream (GFilterInputStream *stream,
                                                             gboolean            close_base);
 
diff --git a/gio/gfilteroutputstream.h b/gio/gfilteroutputstream.h
index 10350e5..54d720d 100644
--- a/gio/gfilteroutputstream.h
+++ b/gio/gfilteroutputstream.h
@@ -65,9 +65,13 @@ struct _GFilterOutputStreamClass
 };
 
 
+_GIO_API
 GType           g_filter_output_stream_get_type              (void) G_GNUC_CONST;
+_GIO_API
 GOutputStream * g_filter_output_stream_get_base_stream       (GFilterOutputStream *stream);
+_GIO_API
 gboolean        g_filter_output_stream_get_close_base_stream (GFilterOutputStream *stream);
+_GIO_API
 void            g_filter_output_stream_set_close_base_stream (GFilterOutputStream *stream,
                                                               gboolean             close_base);
 
diff --git a/gio/gicon.h b/gio/gicon.h
index 8f339f6..58a62cb 100644
--- a/gio/gicon.h
+++ b/gio/gicon.h
@@ -77,12 +77,17 @@ struct _GIconIface
                                GError **error);
 };
 
+_GIO_API
 GType    g_icon_get_type  (void) G_GNUC_CONST;
 
+_GIO_API
 guint    g_icon_hash            (gconstpointer  icon);
+_GIO_API
 gboolean g_icon_equal           (GIcon         *icon1,
                                  GIcon         *icon2);
+_GIO_API
 gchar   *g_icon_to_string       (GIcon         *icon);
+_GIO_API
 GIcon   *g_icon_new_for_string  (const gchar   *str,
                                  GError       **error);
 
diff --git a/gio/ginetaddress.h b/gio/ginetaddress.h
index d523cd6..40e943c 100644
--- a/gio/ginetaddress.h
+++ b/gio/ginetaddress.h
@@ -58,46 +58,66 @@ struct _GInetAddressClass
   const guint8 * (*to_bytes)  (GInetAddress *address);
 };
 
+_GIO_API
 GType                 g_inet_address_get_type             (void) G_GNUC_CONST;
 
+_GIO_API
 GInetAddress *        g_inet_address_new_from_string      (const gchar          *string);
 
+_GIO_API
 GInetAddress *        g_inet_address_new_from_bytes       (const guint8         *bytes,
 							   GSocketFamily         family);
 
+_GIO_API
 GInetAddress *        g_inet_address_new_loopback         (GSocketFamily         family);
 
+_GIO_API
 GInetAddress *        g_inet_address_new_any              (GSocketFamily         family);
 
+_GIO_API
 gboolean              g_inet_address_equal                (GInetAddress         *address,
                                                            GInetAddress         *other_address);
 
+_GIO_API
 gchar *               g_inet_address_to_string            (GInetAddress         *address);
 
+_GIO_API
 const guint8 *        g_inet_address_to_bytes             (GInetAddress         *address);
 
+_GIO_API
 gsize                 g_inet_address_get_native_size      (GInetAddress         *address);
 
+_GIO_API
 GSocketFamily         g_inet_address_get_family           (GInetAddress         *address);
 
+_GIO_API
 gboolean              g_inet_address_get_is_any           (GInetAddress         *address);
 
+_GIO_API
 gboolean              g_inet_address_get_is_loopback      (GInetAddress         *address);
 
+_GIO_API
 gboolean              g_inet_address_get_is_link_local    (GInetAddress         *address);
 
+_GIO_API
 gboolean              g_inet_address_get_is_site_local    (GInetAddress         *address);
 
+_GIO_API
 gboolean              g_inet_address_get_is_multicast     (GInetAddress         *address);
 
+_GIO_API
 gboolean              g_inet_address_get_is_mc_global     (GInetAddress         *address);
 
+_GIO_API
 gboolean              g_inet_address_get_is_mc_link_local (GInetAddress         *address);
 
+_GIO_API
 gboolean              g_inet_address_get_is_mc_node_local (GInetAddress         *address);
 
+_GIO_API
 gboolean              g_inet_address_get_is_mc_org_local  (GInetAddress         *address);
 
+_GIO_API
 gboolean              g_inet_address_get_is_mc_site_local (GInetAddress         *address);
 
 G_END_DECLS
diff --git a/gio/ginetsocketaddress.h b/gio/ginetsocketaddress.h
index ab20235..87917d6 100644
--- a/gio/ginetsocketaddress.h
+++ b/gio/ginetsocketaddress.h
@@ -55,12 +55,16 @@ struct _GInetSocketAddressClass
   GSocketAddressClass parent_class;
 };
 
+_GIO_API
 GType           g_inet_socket_address_get_type     (void) G_GNUC_CONST;
 
+_GIO_API
 GSocketAddress *g_inet_socket_address_new          (GInetAddress       *address,
 						    guint16             port);
 
+_GIO_API
 GInetAddress *  g_inet_socket_address_get_address  (GInetSocketAddress *address);
+_GIO_API
 guint16         g_inet_socket_address_get_port     (GInetSocketAddress *address);
 
 GLIB_AVAILABLE_IN_2_32
diff --git a/gio/ginitable.h b/gio/ginitable.h
index 1a2d13d..da04cc1 100644
--- a/gio/ginitable.h
+++ b/gio/ginitable.h
@@ -68,22 +68,27 @@ struct _GInitableIface
 };
 
 
+_GIO_API
 GType    g_initable_get_type   (void) G_GNUC_CONST;
 
+_GIO_API
 gboolean g_initable_init       (GInitable     *initable,
 				GCancellable  *cancellable,
 				GError       **error);
 
+_GIO_API
 gpointer g_initable_new        (GType          object_type,
 				GCancellable  *cancellable,
 				GError       **error,
 				const gchar   *first_property_name,
 				...);
+_GIO_API
 gpointer g_initable_newv       (GType          object_type,
 				guint          n_parameters,
 				GParameter    *parameters,
 				GCancellable  *cancellable,
 				GError       **error);
+_GIO_API
 GObject* g_initable_new_valist (GType          object_type,
 				const gchar   *first_property_name,
 				va_list        var_args,
diff --git a/gio/ginputstream.h b/gio/ginputstream.h
index e9b36f7..32f1a7c 100644
--- a/gio/ginputstream.h
+++ b/gio/ginputstream.h
@@ -111,13 +111,16 @@ struct _GInputStreamClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType    g_input_stream_get_type      (void) G_GNUC_CONST;
 
+_GIO_API
 gssize   g_input_stream_read          (GInputStream          *stream,
 				       void                  *buffer,
 				       gsize                  count,
 				       GCancellable          *cancellable,
 				       GError               **error);
+_GIO_API
 gboolean g_input_stream_read_all      (GInputStream          *stream,
 				       void                  *buffer,
 				       gsize                  count,
@@ -129,13 +132,16 @@ GBytes  *g_input_stream_read_bytes    (GInputStream          *stream,
 				       gsize                  count,
 				       GCancellable          *cancellable,
 				       GError               **error);
+_GIO_API
 gssize   g_input_stream_skip          (GInputStream          *stream,
 				       gsize                  count,
 				       GCancellable          *cancellable,
 				       GError               **error);
+_GIO_API
 gboolean g_input_stream_close         (GInputStream          *stream,
 				       GCancellable          *cancellable,
 				       GError               **error);
+_GIO_API
 void     g_input_stream_read_async    (GInputStream          *stream,
 				       void                  *buffer,
 				       gsize                  count,
@@ -143,6 +149,7 @@ void     g_input_stream_read_async    (GInputStream          *stream,
 				       GCancellable          *cancellable,
 				       GAsyncReadyCallback    callback,
 				       gpointer               user_data);
+_GIO_API
 gssize   g_input_stream_read_finish   (GInputStream          *stream,
 				       GAsyncResult          *result,
 				       GError               **error);
@@ -157,30 +164,38 @@ GLIB_AVAILABLE_IN_2_34
 GBytes  *g_input_stream_read_bytes_finish (GInputStream          *stream,
 					   GAsyncResult          *result,
 					   GError               **error);
+_GIO_API
 void     g_input_stream_skip_async    (GInputStream          *stream,
 				       gsize                  count,
 				       int                    io_priority,
 				       GCancellable          *cancellable,
 				       GAsyncReadyCallback    callback,
 				       gpointer               user_data);
+_GIO_API
 gssize   g_input_stream_skip_finish   (GInputStream          *stream,
 				       GAsyncResult          *result,
 				       GError               **error);
+_GIO_API
 void     g_input_stream_close_async   (GInputStream          *stream,
 				       int                    io_priority,
 				       GCancellable          *cancellable,
 				       GAsyncReadyCallback    callback,
 				       gpointer               user_data);
+_GIO_API
 gboolean g_input_stream_close_finish  (GInputStream          *stream,
 				       GAsyncResult          *result,
 				       GError               **error);
 
 /* For implementations: */
 
+_GIO_API
 gboolean g_input_stream_is_closed     (GInputStream          *stream);
+_GIO_API
 gboolean g_input_stream_has_pending   (GInputStream          *stream);
+_GIO_API
 gboolean g_input_stream_set_pending   (GInputStream          *stream,
 				       GError               **error);
+_GIO_API
 void     g_input_stream_clear_pending (GInputStream          *stream);
 
 G_END_DECLS
diff --git a/gio/gioenumtypes.h.template b/gio/gioenumtypes.h.template
index 174bd62..166dbdf 100644
--- a/gio/gioenumtypes.h.template
+++ b/gio/gioenumtypes.h.template
@@ -13,7 +13,7 @@ G_BEGIN_DECLS
 /*** END file-production ***/
 
 /*** BEGIN value-header ***/
-GType @enum_name _get_type (void) G_GNUC_CONST;
+_GIO_API GType @enum_name _get_type (void) G_GNUC_CONST;
 #define @ENUMPREFIX _TYPE_@ENUMSHORT@ (@enum_name _get_type ())
 /*** END value-header ***/
 
diff --git a/gio/gioerror.h b/gio/gioerror.h
index 12c2b06..fb32994 100644
--- a/gio/gioerror.h
+++ b/gio/gioerror.h
@@ -40,10 +40,13 @@ G_BEGIN_DECLS
  **/
 #define G_IO_ERROR g_io_error_quark()
 
+_GIO_API
 GQuark       g_io_error_quark      (void);
+_GIO_API
 GIOErrorEnum g_io_error_from_errno (gint err_no);
 
 #ifdef G_OS_WIN32
+_GIO_API
 GIOErrorEnum g_io_error_from_win32_error (gint error_code);
 #endif
 
diff --git a/gio/giomodule.h b/gio/giomodule.h
index 3a8a6f1..9c9bc71 100644
--- a/gio/giomodule.h
+++ b/gio/giomodule.h
@@ -56,10 +56,14 @@ void               g_io_module_scope_block   (GIOModuleScope      *scope,
  **/
 typedef struct _GIOModuleClass GIOModuleClass;
 
+_GIO_API
 GType              g_io_module_get_type                       (void) G_GNUC_CONST;
+_GIO_API
 GIOModule         *g_io_module_new                            (const gchar       *filename);
 
+_GIO_API
 void               g_io_modules_scan_all_in_directory         (const char        *dirname);
+_GIO_API
 GList             *g_io_modules_load_all_in_directory         (const gchar       *dirname);
 
 GLIB_AVAILABLE_IN_2_30
@@ -69,22 +73,33 @@ GLIB_AVAILABLE_IN_2_30
 GList             *g_io_modules_load_all_in_directory_with_scope   (const gchar       *dirname,
                                                                     GIOModuleScope    *scope);
 
+_GIO_API
 GIOExtensionPoint *g_io_extension_point_register              (const char        *name);
+_GIO_API
 GIOExtensionPoint *g_io_extension_point_lookup                (const char        *name);
+_GIO_API
 void               g_io_extension_point_set_required_type     (GIOExtensionPoint *extension_point,
 							       GType              type);
+_GIO_API
 GType              g_io_extension_point_get_required_type     (GIOExtensionPoint *extension_point);
+_GIO_API
 GList             *g_io_extension_point_get_extensions        (GIOExtensionPoint *extension_point);
+_GIO_API
 GIOExtension *     g_io_extension_point_get_extension_by_name (GIOExtensionPoint *extension_point,
 							       const char        *name);
+_GIO_API
 GIOExtension *     g_io_extension_point_implement             (const char        *extension_point_name,
 							       GType              type,
 							       const char        *extension_name,
 							       gint               priority);
 
+_GIO_API
 GType              g_io_extension_get_type                    (GIOExtension      *extension);
+_GIO_API
 const char *       g_io_extension_get_name                    (GIOExtension      *extension);
+_GIO_API
 gint               g_io_extension_get_priority                (GIOExtension      *extension);
+_GIO_API
 GTypeClass*        g_io_extension_ref_class                   (GIOExtension      *extension);
 
 
@@ -98,6 +113,7 @@ GTypeClass*        g_io_extension_ref_class                   (GIOExtension
  * This function is ran after the module has been loaded into GIO,
  * to initialize the module.
  **/
+_GIO_API
 void   g_io_module_load   (GIOModule *module);
 
 /**
@@ -108,6 +124,7 @@ void   g_io_module_load   (GIOModule *module);
  * This function is ran when the module is being unloaded from GIO,
  * to finalize the module.
  **/
+_GIO_API
 void   g_io_module_unload (GIOModule *module);
 
 /**
@@ -142,6 +159,7 @@ void   g_io_module_unload (GIOModule *module);
  *
  * Since: 2.24
  **/
+_GIO_API
 char **g_io_module_query (void);
 
 G_END_DECLS
diff --git a/gio/giostream.h b/gio/giostream.h
index 90283dd..7494d35 100644
--- a/gio/giostream.h
+++ b/gio/giostream.h
@@ -83,11 +83,15 @@ struct _GIOStreamClass
   void (*_g_reserved10) (void);
 };
 
+_GIO_API
 GType          g_io_stream_get_type          (void)  G_GNUC_CONST;
 
+_GIO_API
 GInputStream * g_io_stream_get_input_stream  (GIOStream            *stream);
+_GIO_API
 GOutputStream *g_io_stream_get_output_stream (GIOStream            *stream);
 
+_GIO_API
 void           g_io_stream_splice_async      (GIOStream            *stream1,
 					      GIOStream            *stream2,
 					      GIOStreamSpliceFlags  flags,
@@ -96,26 +100,34 @@ void           g_io_stream_splice_async      (GIOStream            *stream1,
 					      GAsyncReadyCallback   callback,
 					      gpointer              user_data);
 
+_GIO_API
 gboolean       g_io_stream_splice_finish     (GAsyncResult         *result,
                                               GError              **error);
 
+_GIO_API
 gboolean       g_io_stream_close             (GIOStream            *stream,
 					      GCancellable         *cancellable,
 					      GError              **error);
 
+_GIO_API
 void           g_io_stream_close_async       (GIOStream            *stream,
 					      int                   io_priority,
 					      GCancellable         *cancellable,
 					      GAsyncReadyCallback   callback,
 					      gpointer              user_data);
+_GIO_API
 gboolean       g_io_stream_close_finish      (GIOStream            *stream,
 					      GAsyncResult         *result,
 					      GError              **error);
 
+_GIO_API
 gboolean       g_io_stream_is_closed         (GIOStream            *stream);
+_GIO_API
 gboolean       g_io_stream_has_pending       (GIOStream            *stream);
+_GIO_API
 gboolean       g_io_stream_set_pending       (GIOStream            *stream,
 					      GError              **error);
+_GIO_API
 void           g_io_stream_clear_pending     (GIOStream            *stream);
 
 G_END_DECLS
diff --git a/gio/gloadableicon.h b/gio/gloadableicon.h
index 754090f..a8cb75f 100644
--- a/gio/gloadableicon.h
+++ b/gio/gloadableicon.h
@@ -75,18 +75,22 @@ struct _GLoadableIconIface
                                   GError             **error);
 };
 
+_GIO_API
 GType         g_loadable_icon_get_type    (void) G_GNUC_CONST;
 
+_GIO_API
 GInputStream *g_loadable_icon_load        (GLoadableIcon        *icon,
 					   int                   size,
 					   char                **type,
 					   GCancellable         *cancellable,
 					   GError              **error);
+_GIO_API
 void          g_loadable_icon_load_async  (GLoadableIcon        *icon,
 					   int                   size,
 					   GCancellable         *cancellable,
 					   GAsyncReadyCallback   callback,
 					   gpointer              user_data);
+_GIO_API
 GInputStream *g_loadable_icon_load_finish (GLoadableIcon        *icon,
 					   GAsyncResult         *res,
 					   char                **type,
diff --git a/gio/glocaldirectorymonitor.h b/gio/glocaldirectorymonitor.h
index 1d54585..9803ad5 100644
--- a/gio/glocaldirectorymonitor.h
+++ b/gio/glocaldirectorymonitor.h
@@ -60,6 +60,7 @@ struct _GLocalDirectoryMonitorClass
   gboolean (* is_supported) (void);
 };
 
+_GIO_API
 GType           g_local_directory_monitor_get_type (void) G_GNUC_CONST;
 
 GFileMonitor * _g_local_directory_monitor_new      (const char         *dirname,
diff --git a/gio/glocalfileinputstream.h b/gio/glocalfileinputstream.h
index 28f28bf..b1a0cbd 100644
--- a/gio/glocalfileinputstream.h
+++ b/gio/glocalfileinputstream.h
@@ -51,9 +51,12 @@ struct _GLocalFileInputStreamClass
   GFileInputStreamClass parent_class;
 };
 
+_GIO_API
 GType              _g_local_file_input_stream_get_type (void) G_GNUC_CONST;
 
+_GIO_API
 GFileInputStream *_g_local_file_input_stream_new          (int                    fd);
+_GIO_API
 void              _g_local_file_input_stream_set_do_close (GLocalFileInputStream *in,
 							   gboolean               do_close);
 
diff --git a/gio/glocalfileiostream.h b/gio/glocalfileiostream.h
index be7c786..6615b7c 100644
--- a/gio/glocalfileiostream.h
+++ b/gio/glocalfileiostream.h
@@ -52,7 +52,9 @@ struct _GLocalFileIOStreamClass
   GFileIOStreamClass parent_class;
 };
 
+_GIO_API
 GType           _g_local_file_io_stream_get_type (void) G_GNUC_CONST;
+_GIO_API
 GFileIOStream * _g_local_file_io_stream_new (GLocalFileOutputStream *output_stream);
 
 G_END_DECLS
diff --git a/gio/glocalfilemonitor.h b/gio/glocalfilemonitor.h
index 6643866..7da6847 100644
--- a/gio/glocalfilemonitor.h
+++ b/gio/glocalfilemonitor.h
@@ -53,6 +53,7 @@ struct _GLocalFileMonitorClass
   gboolean (* is_supported) (void);
 };
 
+_GIO_API
 GType           g_local_file_monitor_get_type (void) G_GNUC_CONST;
 
 GFileMonitor * _g_local_file_monitor_new      (const char         *pathname,
diff --git a/gio/gmemoryinputstream.h b/gio/gmemoryinputstream.h
index 1625ae9..445a606 100644
--- a/gio/gmemoryinputstream.h
+++ b/gio/gmemoryinputstream.h
@@ -67,14 +67,18 @@ struct _GMemoryInputStreamClass
 };
 
 
+_GIO_API
 GType          g_memory_input_stream_get_type      (void) G_GNUC_CONST;
+_GIO_API
 GInputStream * g_memory_input_stream_new           (void);
+_GIO_API
 GInputStream * g_memory_input_stream_new_from_data (const void         *data,
                                                     gssize              len,
                                                     GDestroyNotify      destroy);
 GLIB_AVAILABLE_IN_2_34
 GInputStream * g_memory_input_stream_new_from_bytes (GBytes            *bytes);
 
+_GIO_API
 void           g_memory_input_stream_add_data      (GMemoryInputStream *stream,
                                                     const void         *data,
                                                     gssize              len,
diff --git a/gio/gmemoryoutputstream.h b/gio/gmemoryoutputstream.h
index 8be37e6..e9bfc4a 100644
--- a/gio/gmemoryoutputstream.h
+++ b/gio/gmemoryoutputstream.h
@@ -82,17 +82,23 @@ struct _GMemoryOutputStreamClass
 typedef gpointer (* GReallocFunc) (gpointer data,
                                    gsize    size);
 
+_GIO_API
 GType          g_memory_output_stream_get_type      (void) G_GNUC_CONST;
 
+_GIO_API
 GOutputStream *g_memory_output_stream_new           (gpointer             data,
                                                      gsize                size,
                                                      GReallocFunc         realloc_function,
                                                      GDestroyNotify       destroy_function);
 GLIB_AVAILABLE_IN_2_36
 GOutputStream *g_memory_output_stream_new_resizable (void);
+_GIO_API
 gpointer       g_memory_output_stream_get_data      (GMemoryOutputStream *ostream);
+_GIO_API
 gsize          g_memory_output_stream_get_size      (GMemoryOutputStream *ostream);
+_GIO_API
 gsize          g_memory_output_stream_get_data_size (GMemoryOutputStream *ostream);
+_GIO_API
 gpointer       g_memory_output_stream_steal_data    (GMemoryOutputStream *ostream);
 
 GLIB_AVAILABLE_IN_2_34
diff --git a/gio/gmenumodel.c b/gio/gmenumodel.c
index f9cd826..4aaa28e 100644
--- a/gio/gmenumodel.c
+++ b/gio/gmenumodel.c
@@ -301,6 +301,7 @@ g_menu_attribute_hash_iter_class_init (GMenuAttributeHashIterClass *class)
 G_DEFINE_ABSTRACT_TYPE (GMenuModel, g_menu_model, G_TYPE_OBJECT)
 
 
+_GIO_API
 guint g_menu_model_items_changed_signal;
 
 static GMenuAttributeIter *
diff --git a/gio/gmount.h b/gio/gmount.h
index 3372892..5fc56ae 100644
--- a/gio/gmount.h
+++ b/gio/gmount.h
@@ -163,17 +163,28 @@ struct _GMountIface
   GIcon       * (* get_symbolic_icon)       (GMount              *mount);
 };
 
+_GIO_API
 GType       g_mount_get_type                  (void) G_GNUC_CONST;
 
+_GIO_API
 GFile     * g_mount_get_root                  (GMount              *mount);
+_GIO_API
 GFile     * g_mount_get_default_location      (GMount              *mount);
+_GIO_API
 char      * g_mount_get_name                  (GMount              *mount);
+_GIO_API
 GIcon     * g_mount_get_icon                  (GMount              *mount);
+_GIO_API
 GIcon     * g_mount_get_symbolic_icon         (GMount              *mount);
+_GIO_API
 char      * g_mount_get_uuid                  (GMount              *mount);
+_GIO_API
 GVolume   * g_mount_get_volume                (GMount              *mount);
+_GIO_API
 GDrive    * g_mount_get_drive                 (GMount              *mount);
+_GIO_API
 gboolean    g_mount_can_unmount               (GMount              *mount);
+_GIO_API
 gboolean    g_mount_can_eject                 (GMount              *mount);
 
 GLIB_DEPRECATED_FOR(g_mount_unmount_with_operation)
@@ -200,53 +211,66 @@ gboolean    g_mount_eject_finish              (GMount              *mount,
                                                GAsyncResult        *result,
                                                GError             **error);
 
+_GIO_API
 void        g_mount_remount                   (GMount              *mount,
                                                GMountMountFlags     flags,
                                                GMountOperation     *mount_operation,
                                                GCancellable        *cancellable,
                                                GAsyncReadyCallback  callback,
                                                gpointer             user_data);
+_GIO_API
 gboolean    g_mount_remount_finish            (GMount              *mount,
                                                GAsyncResult        *result,
                                                GError             **error);
 
+_GIO_API
 void        g_mount_guess_content_type        (GMount              *mount,
                                                gboolean             force_rescan,
                                                GCancellable        *cancellable,
                                                GAsyncReadyCallback  callback,
                                                gpointer             user_data);
+_GIO_API
 gchar    ** g_mount_guess_content_type_finish (GMount              *mount,
                                                GAsyncResult        *result,
                                                GError             **error);
+_GIO_API
 gchar    ** g_mount_guess_content_type_sync   (GMount              *mount,
                                                gboolean             force_rescan,
                                                GCancellable        *cancellable,
                                                GError             **error);
 
+_GIO_API
 gboolean    g_mount_is_shadowed               (GMount              *mount);
+_GIO_API
 void        g_mount_shadow                    (GMount              *mount);
+_GIO_API
 void        g_mount_unshadow                  (GMount              *mount);
 
+_GIO_API
 void        g_mount_unmount_with_operation    (GMount              *mount,
                                                GMountUnmountFlags   flags,
                                                GMountOperation     *mount_operation,
                                                GCancellable        *cancellable,
                                                GAsyncReadyCallback  callback,
                                                gpointer             user_data);
+_GIO_API
 gboolean    g_mount_unmount_with_operation_finish (GMount          *mount,
                                                GAsyncResult        *result,
                                                GError             **error);
 
+_GIO_API
 void        g_mount_eject_with_operation      (GMount              *mount,
                                                GMountUnmountFlags   flags,
                                                GMountOperation     *mount_operation,
                                                GCancellable        *cancellable,
                                                GAsyncReadyCallback  callback,
                                                gpointer             user_data);
+_GIO_API
 gboolean    g_mount_eject_with_operation_finish (GMount            *mount,
                                                GAsyncResult        *result,
                                                GError             **error);
 
+_GIO_API
 const gchar *g_mount_get_sort_key             (GMount              *mount);
 
 G_END_DECLS
diff --git a/gio/gmountoperation.h b/gio/gmountoperation.h
index 0c11265..99c0f25 100644
--- a/gio/gmountoperation.h
+++ b/gio/gmountoperation.h
@@ -98,27 +98,42 @@ struct _GMountOperationClass
   void (*_g_reserved9) (void);
 };
 
+_GIO_API
 GType             g_mount_operation_get_type      (void) G_GNUC_CONST;
+_GIO_API
 GMountOperation * g_mount_operation_new           (void);
 
+_GIO_API
 const char *  g_mount_operation_get_username      (GMountOperation *op);
+_GIO_API
 void          g_mount_operation_set_username      (GMountOperation *op,
 						   const char      *username);
+_GIO_API
 const char *  g_mount_operation_get_password      (GMountOperation *op);
+_GIO_API
 void          g_mount_operation_set_password      (GMountOperation *op,
 						   const char      *password);
+_GIO_API
 gboolean      g_mount_operation_get_anonymous     (GMountOperation *op);
+_GIO_API
 void          g_mount_operation_set_anonymous     (GMountOperation *op,
 						   gboolean         anonymous);
+_GIO_API
 const char *  g_mount_operation_get_domain        (GMountOperation *op);
+_GIO_API
 void          g_mount_operation_set_domain        (GMountOperation *op,
 						   const char      *domain);
+_GIO_API
 GPasswordSave g_mount_operation_get_password_save (GMountOperation *op);
+_GIO_API
 void          g_mount_operation_set_password_save (GMountOperation *op,
 						   GPasswordSave    save);
+_GIO_API
 int           g_mount_operation_get_choice        (GMountOperation *op);
+_GIO_API
 void          g_mount_operation_set_choice        (GMountOperation *op,
 						   int              choice);
+_GIO_API
 void          g_mount_operation_reply             (GMountOperation *op,
 						   GMountOperationResult result);
 
diff --git a/gio/gnativevolumemonitor.h b/gio/gnativevolumemonitor.h
index e072576..7e5868a 100644
--- a/gio/gnativevolumemonitor.h
+++ b/gio/gnativevolumemonitor.h
@@ -55,6 +55,7 @@ struct _GNativeVolumeMonitorClass
                                          GCancellable *cancellable);
 };
 
+_GIO_API
 GType g_native_volume_monitor_get_type (void) G_GNUC_CONST;
 
 G_END_DECLS
diff --git a/gio/gnetworkaddress.h b/gio/gnetworkaddress.h
index af16321..620a10d 100644
--- a/gio/gnetworkaddress.h
+++ b/gio/gnetworkaddress.h
@@ -53,18 +53,25 @@ struct _GNetworkAddressClass
 
 };
 
+_GIO_API
 GType               g_network_address_get_type     (void) G_GNUC_CONST;
 
+_GIO_API
 GSocketConnectable *g_network_address_new          (const gchar      *hostname,
 						    guint16           port);
+_GIO_API
 GSocketConnectable *g_network_address_parse        (const gchar      *host_and_port,
 						    guint16           default_port,
 						    GError          **error);
+_GIO_API
 GSocketConnectable *g_network_address_parse_uri    (const gchar      *uri,
     						    guint16           default_port,
 						    GError          **error);
+_GIO_API
 const gchar        *g_network_address_get_hostname (GNetworkAddress  *addr);
+_GIO_API
 guint16             g_network_address_get_port     (GNetworkAddress  *addr);
+_GIO_API
 const gchar        *g_network_address_get_scheme   (GNetworkAddress  *addr);
 
 
diff --git a/gio/gnetworkmonitor.h b/gio/gnetworkmonitor.h
index 995ff54..a127f8c 100644
--- a/gio/gnetworkmonitor.h
+++ b/gio/gnetworkmonitor.h
@@ -71,17 +71,21 @@ GType            g_network_monitor_get_type              (void) G_GNUC_CONST;
 GLIB_AVAILABLE_IN_2_32
 GNetworkMonitor *g_network_monitor_get_default           (void);
 
+_GIO_API
 gboolean         g_network_monitor_get_network_available (GNetworkMonitor     *monitor);
 
+_GIO_API
 gboolean         g_network_monitor_can_reach             (GNetworkMonitor     *monitor,
 							  GSocketConnectable  *connectable,
 							  GCancellable        *cancellable,
 							  GError             **error);
+_GIO_API
 void             g_network_monitor_can_reach_async       (GNetworkMonitor     *monitor,
 							  GSocketConnectable  *connectable,
 							  GCancellable        *cancellable,
 							  GAsyncReadyCallback  callback,
 							  gpointer             user_data);
+_GIO_API
 gboolean         g_network_monitor_can_reach_finish      (GNetworkMonitor     *monitor,
 							  GAsyncResult        *result,
 							  GError             **error);
diff --git a/gio/gnetworkmonitorbase.h b/gio/gnetworkmonitorbase.h
index f70403f..5df1445 100644
--- a/gio/gnetworkmonitorbase.h
+++ b/gio/gnetworkmonitorbase.h
@@ -50,6 +50,7 @@ struct _GNetworkMonitorBaseClass {
   gpointer padding[8];
 };
 
+_GIO_API
 GType g_network_monitor_base_get_type (void);
 
 /*< protected >*/
@@ -59,6 +60,7 @@ void g_network_monitor_base_add_network    (GNetworkMonitorBase  *monitor,
 GLIB_AVAILABLE_IN_2_32
 void g_network_monitor_base_remove_network (GNetworkMonitorBase  *monitor,
 					    GInetAddressMask     *network);
+_GIO_API
 void g_network_monitor_base_set_networks   (GNetworkMonitorBase  *monitor,
 					    GInetAddressMask    **networks,
 					    gint                  length);
diff --git a/gio/gnetworkservice.h b/gio/gnetworkservice.h
index 1f6dbea..c9424a2 100644
--- a/gio/gnetworkservice.h
+++ b/gio/gnetworkservice.h
@@ -53,16 +53,23 @@ struct _GNetworkServiceClass
 
 };
 
+_GIO_API
 GType                g_network_service_get_type      (void) G_GNUC_CONST;
 
+_GIO_API
 GSocketConnectable  *g_network_service_new           (const gchar     *service,
 						      const gchar     *protocol,
 						      const gchar     *domain);
 
+_GIO_API
 const gchar         *g_network_service_get_service   (GNetworkService *srv);
+_GIO_API
 const gchar         *g_network_service_get_protocol  (GNetworkService *srv);
+_GIO_API
 const gchar         *g_network_service_get_domain    (GNetworkService *srv);
+_GIO_API
 const gchar         *g_network_service_get_scheme    (GNetworkService *srv);
+_GIO_API
 void                 g_network_service_set_scheme    (GNetworkService *srv, const gchar *scheme);
 
 G_END_DECLS
diff --git a/gio/goutputstream.h b/gio/goutputstream.h
index 5e9850c..aff9842 100644
--- a/gio/goutputstream.h
+++ b/gio/goutputstream.h
@@ -133,13 +133,16 @@ struct _GOutputStreamClass
   void (*_g_reserved8) (void);
 };
 
+_GIO_API
 GType    g_output_stream_get_type      (void) G_GNUC_CONST;
 
+_GIO_API
 gssize   g_output_stream_write         (GOutputStream             *stream,
 					const void                *buffer,
 					gsize                      count,
 					GCancellable              *cancellable,
 					GError                   **error);
+_GIO_API
 gboolean g_output_stream_write_all     (GOutputStream             *stream,
 					const void                *buffer,
 					gsize                      count,
@@ -151,17 +154,21 @@ gssize   g_output_stream_write_bytes   (GOutputStream             *stream,
 					GBytes                    *bytes,
 					GCancellable              *cancellable,
 					GError                   **error);
+_GIO_API
 gssize   g_output_stream_splice        (GOutputStream             *stream,
 					GInputStream              *source,
 					GOutputStreamSpliceFlags   flags,
 					GCancellable              *cancellable,
 					GError                   **error);
+_GIO_API
 gboolean g_output_stream_flush         (GOutputStream             *stream,
 					GCancellable              *cancellable,
 					GError                   **error);
+_GIO_API
 gboolean g_output_stream_close         (GOutputStream             *stream,
 					GCancellable              *cancellable,
 					GError                   **error);
+_GIO_API
 void     g_output_stream_write_async   (GOutputStream             *stream,
 					const void                *buffer,
 					gsize                      count,
@@ -169,6 +176,7 @@ void     g_output_stream_write_async   (GOutputStream             *stream,
 					GCancellable              *cancellable,
 					GAsyncReadyCallback        callback,
 					gpointer                   user_data);
+_GIO_API
 gssize   g_output_stream_write_finish  (GOutputStream             *stream,
 					GAsyncResult              *result,
 					GError                   **error);
@@ -183,6 +191,7 @@ GLIB_AVAILABLE_IN_2_34
 gssize   g_output_stream_write_bytes_finish (GOutputStream             *stream,
 					     GAsyncResult              *result,
 					     GError                   **error);
+_GIO_API
 void     g_output_stream_splice_async  (GOutputStream             *stream,
 					GInputStream              *source,
 					GOutputStreamSpliceFlags   flags,
@@ -190,31 +199,41 @@ void     g_output_stream_splice_async  (GOutputStream             *stream,
 					GCancellable              *cancellable,
 					GAsyncReadyCallback        callback,
 					gpointer                   user_data);
+_GIO_API
 gssize   g_output_stream_splice_finish (GOutputStream             *stream,
 					GAsyncResult              *result,
 					GError                   **error);
+_GIO_API
 void     g_output_stream_flush_async   (GOutputStream             *stream,
 					int                        io_priority,
 					GCancellable              *cancellable,
 					GAsyncReadyCallback        callback,
 					gpointer                   user_data);
+_GIO_API
 gboolean g_output_stream_flush_finish  (GOutputStream             *stream,
 					GAsyncResult              *result,
 					GError                   **error);
+_GIO_API
 void     g_output_stream_close_async   (GOutputStream             *stream,
 					int                        io_priority,
 					GCancellable              *cancellable,
 					GAsyncReadyCallback        callback,
 					gpointer                   user_data);
+_GIO_API
 gboolean g_output_stream_close_finish  (GOutputStream             *stream,
 					GAsyncResult              *result,
 					GError                   **error);
 
+_GIO_API
 gboolean g_output_stream_is_closed     (GOutputStream             *stream);
+_GIO_API
 gboolean g_output_stream_is_closing    (GOutputStream             *stream);
+_GIO_API
 gboolean g_output_stream_has_pending   (GOutputStream             *stream);
+_GIO_API
 gboolean g_output_stream_set_pending   (GOutputStream             *stream,
 					GError                   **error);
+_GIO_API
 void     g_output_stream_clear_pending (GOutputStream             *stream);
 
 
diff --git a/gio/gpermission.h b/gio/gpermission.h
index 3f74257..3129599 100644
--- a/gio/gpermission.h
+++ b/gio/gpermission.h
@@ -81,33 +81,44 @@ struct _GPermissionClass {
   gpointer reserved[16];
 };
 
+_GIO_API
 GType           g_permission_get_type           (void);
+_GIO_API
 gboolean        g_permission_acquire            (GPermission          *permission,
                                                  GCancellable         *cancellable,
                                                  GError              **error);
+_GIO_API
 void            g_permission_acquire_async      (GPermission          *permission,
                                                  GCancellable         *cancellable,
                                                  GAsyncReadyCallback   callback,
                                                  gpointer              user_data);
+_GIO_API
 gboolean        g_permission_acquire_finish     (GPermission          *permission,
                                                  GAsyncResult         *result,
                                                  GError              **error);
 
+_GIO_API
 gboolean        g_permission_release            (GPermission          *permission,
                                                  GCancellable         *cancellable,
                                                  GError              **error);
+_GIO_API
 void            g_permission_release_async      (GPermission          *permission,
                                                  GCancellable         *cancellable,
                                                  GAsyncReadyCallback   callback,
                                                  gpointer              user_data);
+_GIO_API
 gboolean        g_permission_release_finish     (GPermission          *permission,
                                                  GAsyncResult         *result,
                                                  GError              **error);
 
+_GIO_API
 gboolean        g_permission_get_allowed        (GPermission   *permission);
+_GIO_API
 gboolean        g_permission_get_can_acquire    (GPermission   *permission);
+_GIO_API
 gboolean        g_permission_get_can_release    (GPermission   *permission);
 
+_GIO_API
 void            g_permission_impl_update        (GPermission  *permission,
                                                  gboolean      allowed,
                                                  gboolean      can_acquire,
diff --git a/gio/gpollableinputstream.h b/gio/gpollableinputstream.h
index 49af7ee..55fdf79 100644
--- a/gio/gpollableinputstream.h
+++ b/gio/gpollableinputstream.h
@@ -81,14 +81,19 @@ struct _GPollableInputStreamInterface
 				    GError               **error);
 };
 
+_GIO_API
 GType    g_pollable_input_stream_get_type         (void) G_GNUC_CONST;
 
+_GIO_API
 gboolean g_pollable_input_stream_can_poll         (GPollableInputStream  *stream);
 
+_GIO_API
 gboolean g_pollable_input_stream_is_readable      (GPollableInputStream  *stream);
+_GIO_API
 GSource *g_pollable_input_stream_create_source    (GPollableInputStream  *stream,
 						   GCancellable          *cancellable);
 
+_GIO_API
 gssize   g_pollable_input_stream_read_nonblocking (GPollableInputStream  *stream,
 						   void                  *buffer,
 						   gsize                  count,
diff --git a/gio/gpollableoutputstream.h b/gio/gpollableoutputstream.h
index c5945ce..b7b908c 100644
--- a/gio/gpollableoutputstream.h
+++ b/gio/gpollableoutputstream.h
@@ -81,14 +81,19 @@ struct _GPollableOutputStreamInterface
 				     GError                **error);
 };
 
+_GIO_API
 GType    g_pollable_output_stream_get_type          (void) G_GNUC_CONST;
 
+_GIO_API
 gboolean g_pollable_output_stream_can_poll          (GPollableOutputStream  *stream);
 
+_GIO_API
 gboolean g_pollable_output_stream_is_writable       (GPollableOutputStream  *stream);
+_GIO_API
 GSource *g_pollable_output_stream_create_source     (GPollableOutputStream  *stream,
 						     GCancellable           *cancellable);
 
+_GIO_API
 gssize   g_pollable_output_stream_write_nonblocking (GPollableOutputStream  *stream,
 						     const void             *buffer,
 						     gsize                   count,
diff --git a/gio/gpollableutils.h b/gio/gpollableutils.h
index 782f3ca..f2486bc 100644
--- a/gio/gpollableutils.h
+++ b/gio/gpollableutils.h
@@ -29,6 +29,7 @@
 
 G_BEGIN_DECLS
 
+_GIO_API
 GSource *g_pollable_source_new       (GObject        *pollable_stream);
 
 GLIB_AVAILABLE_IN_2_34
diff --git a/gio/gproxy.h b/gio/gproxy.h
index d7d11a7..1214680 100644
--- a/gio/gproxy.h
+++ b/gio/gproxy.h
@@ -96,16 +96,20 @@ struct _GProxyInterface
   gboolean    (* supports_hostname) (GProxy             *proxy);
 };
 
+_GIO_API
 GType      g_proxy_get_type                 (void) G_GNUC_CONST;
 
+_GIO_API
 GProxy    *g_proxy_get_default_for_protocol (const gchar *protocol);
 
+_GIO_API
 GIOStream *g_proxy_connect           (GProxy               *proxy,
 				      GIOStream            *connection,
 				      GProxyAddress        *proxy_address,
 				      GCancellable         *cancellable,
 				      GError              **error);
 
+_GIO_API
 void       g_proxy_connect_async     (GProxy               *proxy,
 				      GIOStream            *connection,
 				      GProxyAddress        *proxy_address,
@@ -113,10 +117,12 @@ void       g_proxy_connect_async     (GProxy               *proxy,
 				      GAsyncReadyCallback   callback,
 				      gpointer              user_data);
 
+_GIO_API
 GIOStream *g_proxy_connect_finish    (GProxy               *proxy,
 				      GAsyncResult         *result,
 				      GError              **error);
 
+_GIO_API
 gboolean   g_proxy_supports_hostname (GProxy               *proxy);
 
 G_END_DECLS
diff --git a/gio/gproxyaddress.h b/gio/gproxyaddress.h
index 8d51f11..a26ca20 100644
--- a/gio/gproxyaddress.h
+++ b/gio/gproxyaddress.h
@@ -55,8 +55,10 @@ struct _GProxyAddressClass
 };
 
 
+_GIO_API
 GType           g_proxy_address_get_type    (void) G_GNUC_CONST;
 
+_GIO_API
 GSocketAddress *g_proxy_address_new         (GInetAddress *inetaddr,
 					     guint16       port,
 					     const gchar  *protocol,
@@ -65,12 +67,17 @@ GSocketAddress *g_proxy_address_new         (GInetAddress *inetaddr,
 					     const gchar  *username,
 					     const gchar  *password);
 
+_GIO_API
 const gchar    *g_proxy_address_get_protocol                (GProxyAddress *proxy);
 GLIB_AVAILABLE_IN_2_34
 const gchar    *g_proxy_address_get_destination_protocol    (GProxyAddress *proxy);
+_GIO_API
 const gchar    *g_proxy_address_get_destination_hostname    (GProxyAddress *proxy);
+_GIO_API
 guint16         g_proxy_address_get_destination_port        (GProxyAddress *proxy);
+_GIO_API
 const gchar    *g_proxy_address_get_username                (GProxyAddress *proxy);
+_GIO_API
 const gchar    *g_proxy_address_get_password                (GProxyAddress *proxy);
 
 GLIB_AVAILABLE_IN_2_34
diff --git a/gio/gproxyaddressenumerator.h b/gio/gproxyaddressenumerator.h
index b38045f..6a5992f 100644
--- a/gio/gproxyaddressenumerator.h
+++ b/gio/gproxyaddressenumerator.h
@@ -68,6 +68,7 @@ struct _GProxyAddressEnumeratorClass
   void (*_g_reserved7) (void);
 };
 
+_GIO_API
 GType           g_proxy_address_enumerator_get_type    (void) G_GNUC_CONST;
 
 G_END_DECLS
diff --git a/gio/gproxyresolver.h b/gio/gproxyresolver.h
index 7d8d27d..231de0d 100644
--- a/gio/gproxyresolver.h
+++ b/gio/gproxyresolver.h
@@ -68,19 +68,25 @@ struct _GProxyResolverInterface {
 			      GError              **error);
 };
 
+_GIO_API
 GType		g_proxy_resolver_get_type       (void) G_GNUC_CONST;
+_GIO_API
 GProxyResolver *g_proxy_resolver_get_default    (void);
 
+_GIO_API
 gboolean        g_proxy_resolver_is_supported   (GProxyResolver       *resolver);
+_GIO_API
 gchar	      **g_proxy_resolver_lookup		(GProxyResolver       *resolver,
 						 const gchar          *uri,
 						 GCancellable         *cancellable,
 						 GError              **error);
+_GIO_API
 void		g_proxy_resolver_lookup_async   (GProxyResolver       *resolver,
 						 const gchar          *uri,
 						 GCancellable         *cancellable,
 						 GAsyncReadyCallback   callback,
 						 gpointer              user_data);
+_GIO_API
 gchar	      **g_proxy_resolver_lookup_finish  (GProxyResolver       *resolver,
 						 GAsyncResult         *result,
 						 GError              **error);
diff --git a/gio/gresolver.h b/gio/gresolver.h
index ecd8e51..00db43b 100644
--- a/gio/gresolver.h
+++ b/gio/gresolver.h
@@ -115,44 +115,56 @@ struct _GResolverClass {
 
 };
 
+_GIO_API
 GType      g_resolver_get_type                  (void) G_GNUC_CONST;
+_GIO_API
 GResolver *g_resolver_get_default               (void);
+_GIO_API
 void       g_resolver_set_default               (GResolver            *resolver);
 
+_GIO_API
 GList     *g_resolver_lookup_by_name            (GResolver            *resolver,
 						 const gchar          *hostname,
 						 GCancellable         *cancellable,
 						 GError              **error);
+_GIO_API
 void       g_resolver_lookup_by_name_async      (GResolver            *resolver,
 						 const gchar          *hostname,
 						 GCancellable         *cancellable,
 						 GAsyncReadyCallback   callback,
 						 gpointer              user_data);
+_GIO_API
 GList     *g_resolver_lookup_by_name_finish     (GResolver            *resolver,
 						 GAsyncResult         *result,
 						 GError              **error);
 
+_GIO_API
 void       g_resolver_free_addresses            (GList                *addresses);
 
+_GIO_API
 gchar     *g_resolver_lookup_by_address         (GResolver            *resolver,
 						 GInetAddress         *address,
 						 GCancellable         *cancellable,
 						 GError              **error);
+_GIO_API
 void       g_resolver_lookup_by_address_async   (GResolver            *resolver,
 						 GInetAddress         *address,
 						 GCancellable         *cancellable,
 						 GAsyncReadyCallback   callback,
 						 gpointer              user_data);
+_GIO_API
 gchar     *g_resolver_lookup_by_address_finish  (GResolver            *resolver,
 						 GAsyncResult         *result,
 						 GError              **error);
 
+_GIO_API
 GList     *g_resolver_lookup_service            (GResolver            *resolver,
 						 const gchar          *service,
 						 const gchar          *protocol,
 						 const gchar          *domain,
 						 GCancellable         *cancellable,
 						 GError              **error);
+_GIO_API
 void       g_resolver_lookup_service_async      (GResolver            *resolver,
 						 const gchar          *service,
 						 const gchar          *protocol,
@@ -160,6 +172,7 @@ void       g_resolver_lookup_service_async      (GResolver            *resolver,
 						 GCancellable         *cancellable,
 						 GAsyncReadyCallback   callback,
 						 gpointer              user_data);
+_GIO_API
 GList     *g_resolver_lookup_service_finish     (GResolver            *resolver,
 						 GAsyncResult         *result,
 						 GError              **error);
@@ -182,6 +195,7 @@ GList     *g_resolver_lookup_records_finish     (GResolver            *resolver,
                                                  GAsyncResult         *result,
                                                  GError              **error);
 
+_GIO_API
 void       g_resolver_free_targets              (GList                *targets);
 
 /**
@@ -192,6 +206,7 @@ void       g_resolver_free_targets              (GList                *targets);
  * error domains.
  */
 #define G_RESOLVER_ERROR (g_resolver_error_quark ())
+_GIO_API
 GQuark g_resolver_error_quark (void);
 
 G_END_DECLS
diff --git a/gio/gseekable.h b/gio/gseekable.h
index ba51eea..a50f5d5 100644
--- a/gio/gseekable.h
+++ b/gio/gseekable.h
@@ -78,16 +78,22 @@ struct _GSeekableIface
   /* TODO: Async seek/truncate */
 };
 
+_GIO_API
 GType    g_seekable_get_type     (void) G_GNUC_CONST;
 
+_GIO_API
 goffset  g_seekable_tell         (GSeekable     *seekable);
+_GIO_API
 gboolean g_seekable_can_seek     (GSeekable     *seekable);
+_GIO_API
 gboolean g_seekable_seek         (GSeekable     *seekable,
 				  goffset        offset,
 				  GSeekType      type,
 				  GCancellable  *cancellable,
 				  GError       **error);
+_GIO_API
 gboolean g_seekable_can_truncate (GSeekable     *seekable);
+_GIO_API
 gboolean g_seekable_truncate     (GSeekable     *seekable,
 				  goffset        offset,
 				  GCancellable  *cancellable,
diff --git a/gio/gsettings.h b/gio/gsettings.h
index 01f3e9e..b5a0047 100644
--- a/gio/gsettings.h
+++ b/gio/gsettings.h
@@ -69,15 +69,22 @@ struct _GSettings
 };
 
 
+_GIO_API
 GType                   g_settings_get_type                             (void);
 
+_GIO_API
 const gchar * const *   g_settings_list_schemas                         (void);
+_GIO_API
 const gchar * const *   g_settings_list_relocatable_schemas             (void);
+_GIO_API
 GSettings *             g_settings_new                                  (const gchar        *schema_id);
+_GIO_API
 GSettings *             g_settings_new_with_path                        (const gchar        *schema_id,
                                                                          const gchar        *path);
+_GIO_API
 GSettings *             g_settings_new_with_backend                     (const gchar        *schema_id,
                                                                          GSettingsBackend   *backend);
+_GIO_API
 GSettings *             g_settings_new_with_backend_and_path            (const gchar        *schema_id,
                                                                          GSettingsBackend   *backend,
                                                                          const gchar        *path);
@@ -85,81 +92,113 @@ GLIB_AVAILABLE_IN_2_32
 GSettings *             g_settings_new_full                             (GSettingsSchema    *schema,
                                                                          GSettingsBackend   *backend,
                                                                          const gchar        *path);
+_GIO_API
 gchar **                g_settings_list_children                        (GSettings          *settings);
+_GIO_API
 gchar **                g_settings_list_keys                            (GSettings          *settings);
+_GIO_API
 GVariant *              g_settings_get_range                            (GSettings          *settings,
                                                                          const gchar        *key);
+_GIO_API
 gboolean                g_settings_range_check                          (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          GVariant           *value);
 
+_GIO_API
 gboolean                g_settings_set_value                            (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          GVariant           *value);
+_GIO_API
 GVariant *              g_settings_get_value                            (GSettings          *settings,
                                                                          const gchar        *key);
 
+_GIO_API
 gboolean                g_settings_set                                  (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          const gchar        *format,
                                                                          ...);
+_GIO_API
 void                    g_settings_get                                  (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          const gchar        *format,
                                                                          ...);
+_GIO_API
 void                    g_settings_reset                                (GSettings          *settings,
                                                                          const gchar        *key);
 
+_GIO_API
 gint                    g_settings_get_int                              (GSettings          *settings,
                                                                          const gchar        *key);
+_GIO_API
 gboolean                g_settings_set_int                              (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          gint                value);
+_GIO_API
 guint                   g_settings_get_uint                             (GSettings          *settings,
                                                                          const gchar        *key);
+_GIO_API
 gboolean                g_settings_set_uint                             (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          guint               value);
+_GIO_API
 gchar *                 g_settings_get_string                           (GSettings          *settings,
                                                                          const gchar        *key);
+_GIO_API
 gboolean                g_settings_set_string                           (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          const gchar        *value);
+_GIO_API
 gboolean                g_settings_get_boolean                          (GSettings          *settings,
                                                                          const gchar        *key);
+_GIO_API
 gboolean                g_settings_set_boolean                          (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          gboolean            value);
+_GIO_API
 gdouble                 g_settings_get_double                           (GSettings          *settings,
                                                                          const gchar        *key);
+_GIO_API
 gboolean                g_settings_set_double                           (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          gdouble             value);
+_GIO_API
 gchar **                g_settings_get_strv                             (GSettings          *settings,
                                                                          const gchar        *key);
+_GIO_API
 gboolean                g_settings_set_strv                             (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          const gchar *const *value);
+_GIO_API
 gint                    g_settings_get_enum                             (GSettings          *settings,
                                                                          const gchar        *key);
+_GIO_API
 gboolean                g_settings_set_enum                             (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          gint                value);
+_GIO_API
 guint                   g_settings_get_flags                            (GSettings          *settings,
                                                                          const gchar        *key);
+_GIO_API
 gboolean                g_settings_set_flags                            (GSettings          *settings,
                                                                          const gchar        *key,
                                                                          guint               value);
+_GIO_API
 GSettings *             g_settings_get_child                            (GSettings          *settings,
                                                                          const gchar        *name);
 
+_GIO_API
 gboolean                g_settings_is_writable                          (GSettings          *settings,
                                                                          const gchar        *name);
 
+_GIO_API
 void                    g_settings_delay                                (GSettings          *settings);
+_GIO_API
 void                    g_settings_apply                                (GSettings          *settings);
+_GIO_API
 void                    g_settings_revert                               (GSettings          *settings);
+_GIO_API
 gboolean                g_settings_get_has_unapplied                    (GSettings          *settings);
+_GIO_API
 void                    g_settings_sync                                 (void);
 
 /**
@@ -246,11 +285,13 @@ typedef enum
   G_SETTINGS_BIND_INVERT_BOOLEAN = (1<<4)
 } GSettingsBindFlags;
 
+_GIO_API
 void                    g_settings_bind                                 (GSettings               *settings,
                                                                          const gchar             *key,
                                                                          gpointer                 object,
                                                                          const gchar             *property,
                                                                          GSettingsBindFlags       flags);
+_GIO_API
 void                    g_settings_bind_with_mapping                    (GSettings               *settings,
                                                                          const gchar             *key,
                                                                          gpointer                 object,
@@ -260,11 +301,13 @@ void                    g_settings_bind_with_mapping                    (GSettin
                                                                          GSettingsBindSetMapping  set_mapping,
                                                                          gpointer                 user_data,
                                                                          GDestroyNotify           destroy);
+_GIO_API
 void                    g_settings_bind_writable                        (GSettings               *settings,
                                                                          const gchar             *key,
                                                                          gpointer                 object,
                                                                          const gchar             *property,
                                                                          gboolean                 inverted);
+_GIO_API
 void                    g_settings_unbind                               (gpointer                 object,
                                                                          const gchar             *property);
 
@@ -272,6 +315,7 @@ GLIB_AVAILABLE_IN_2_32
 GAction *               g_settings_create_action                        (GSettings               *settings,
                                                                          const gchar             *key);
 
+_GIO_API
 gpointer                g_settings_get_mapped                           (GSettings               *settings,
                                                                          const gchar             *key,
                                                                          GSettingsGetMapping      mapping,
diff --git a/gio/gsettingsbackend.h b/gio/gsettingsbackend.h
index e674187..4779c97 100644
--- a/gio/gsettingsbackend.h
+++ b/gio/gsettingsbackend.h
@@ -104,39 +104,51 @@ struct _GSettingsBackend
   GSettingsBackendPrivate *priv;
 };
 
+_GIO_API
 GType                   g_settings_backend_get_type                     (void);
 
+_GIO_API
 void                    g_settings_backend_changed                      (GSettingsBackend    *backend,
                                                                          const gchar         *key,
                                                                          gpointer             origin_tag);
+_GIO_API
 void                    g_settings_backend_path_changed                 (GSettingsBackend    *backend,
                                                                          const gchar         *path,
                                                                          gpointer             origin_tag);
+_GIO_API
 void                    g_settings_backend_flatten_tree                 (GTree               *tree,
                                                                          gchar              **path,
                                                                          const gchar       ***keys,
                                                                          GVariant          ***values);
+_GIO_API
 void                    g_settings_backend_keys_changed                 (GSettingsBackend    *backend,
                                                                          const gchar         *path,
                                                                          gchar const * const *items,
                                                                          gpointer             origin_tag);
 
+_GIO_API
 void                    g_settings_backend_path_writable_changed        (GSettingsBackend    *backend,
                                                                          const gchar         *path);
+_GIO_API
 void                    g_settings_backend_writable_changed             (GSettingsBackend    *backend,
                                                                          const gchar         *key);
+_GIO_API
 void                    g_settings_backend_changed_tree                 (GSettingsBackend    *backend,
                                                                          GTree               *tree,
                                                                          gpointer             origin_tag);
 
+_GIO_API
 GSettingsBackend *      g_settings_backend_get_default                  (void);
 
+_GIO_API
 GSettingsBackend *      g_keyfile_settings_backend_new                  (const gchar         *filename,
                                                                          const gchar         *root_path,
                                                                          const gchar         *root_group);
 
+_GIO_API
 GSettingsBackend *      g_null_settings_backend_new                     (void);
 
+_GIO_API
 GSettingsBackend *      g_memory_settings_backend_new                   (void);
 
 G_END_DECLS
diff --git a/gio/gsimpleaction.h b/gio/gsimpleaction.h
index 005d0e4..1d377fb 100644
--- a/gio/gsimpleaction.h
+++ b/gio/gsimpleaction.h
@@ -36,15 +36,19 @@ G_BEGIN_DECLS
 #define G_IS_SIMPLE_ACTION(inst)                            (G_TYPE_CHECK_INSTANCE_TYPE ((inst),                     \
                                                              G_TYPE_SIMPLE_ACTION))
 
+_GIO_API
 GType                   g_simple_action_get_type                        (void) G_GNUC_CONST;
 
+_GIO_API
 GSimpleAction *         g_simple_action_new                             (const gchar        *name,
                                                                          const GVariantType *parameter_type);
 
+_GIO_API
 GSimpleAction *         g_simple_action_new_stateful                    (const gchar        *name,
                                                                          const GVariantType *parameter_type,
                                                                          GVariant           *state);
 
+_GIO_API
 void                    g_simple_action_set_enabled                     (GSimpleAction      *simple,
                                                                          gboolean            enabled);
 
diff --git a/gio/gsimpleactiongroup.h b/gio/gsimpleactiongroup.h
index 7de37bc..0007391 100644
--- a/gio/gsimpleactiongroup.h
+++ b/gio/gsimpleactiongroup.h
@@ -70,19 +70,25 @@ struct _GSimpleActionGroupClass
   gpointer padding[12];
 };
 
+_GIO_API
 GType                   g_simple_action_group_get_type                  (void) G_GNUC_CONST;
 
+_GIO_API
 GSimpleActionGroup *    g_simple_action_group_new                       (void);
 
+_GIO_API
 GAction *               g_simple_action_group_lookup                    (GSimpleActionGroup *simple,
                                                                          const gchar        *action_name);
 
+_GIO_API
 void                    g_simple_action_group_insert                    (GSimpleActionGroup *simple,
                                                                          GAction            *action);
 
+_GIO_API
 void                    g_simple_action_group_remove                    (GSimpleActionGroup *simple,
                                                                          const gchar        *action_name);
 
+GLIB_AVAILABLE_IN_2_30
 void                    g_simple_action_group_add_entries               (GSimpleActionGroup *simple,
                                                                          const GActionEntry *entries,
                                                                          gint                n_entries,
diff --git a/gio/gsimpleasyncresult.h b/gio/gsimpleasyncresult.h
index 7497630..6a5a627 100644
--- a/gio/gsimpleasyncresult.h
+++ b/gio/gsimpleasyncresult.h
@@ -46,12 +46,15 @@ G_BEGIN_DECLS
 typedef struct _GSimpleAsyncResultClass   GSimpleAsyncResultClass;
 
 
+_GIO_API
 GType               g_simple_async_result_get_type         (void) G_GNUC_CONST;
 
+_GIO_API
 GSimpleAsyncResult *g_simple_async_result_new              (GObject                 *source_object,
 							    GAsyncReadyCallback      callback,
 							    gpointer                 user_data,
 							    gpointer                 source_tag);
+_GIO_API
 GSimpleAsyncResult *g_simple_async_result_new_error        (GObject                 *source_object,
 							    GAsyncReadyCallback      callback,
 							    gpointer                 user_data,
@@ -59,26 +62,34 @@ GSimpleAsyncResult *g_simple_async_result_new_error        (GObject
 							    gint                     code,
 							    const char              *format,
 							    ...) G_GNUC_PRINTF (6, 7);
+_GIO_API
 GSimpleAsyncResult *g_simple_async_result_new_from_error   (GObject                 *source_object,
 							    GAsyncReadyCallback      callback,
 							    gpointer                 user_data,
 							    const GError            *error);
+_GIO_API
 GSimpleAsyncResult *g_simple_async_result_new_take_error   (GObject                 *source_object,
 							    GAsyncReadyCallback      callback,
 							    gpointer                 user_data,
 							    GError                  *error);
 
+_GIO_API
 void                g_simple_async_result_set_op_res_gpointer (GSimpleAsyncResult      *simple,
                                                                gpointer                 op_res,
                                                                GDestroyNotify           destroy_op_res);
+_GIO_API
 gpointer            g_simple_async_result_get_op_res_gpointer (GSimpleAsyncResult      *simple);
 
+_GIO_API
 void                g_simple_async_result_set_op_res_gssize   (GSimpleAsyncResult      *simple,
                                                                gssize                   op_res);
+_GIO_API
 gssize              g_simple_async_result_get_op_res_gssize   (GSimpleAsyncResult      *simple);
 
+_GIO_API
 void                g_simple_async_result_set_op_res_gboolean (GSimpleAsyncResult      *simple,
                                                                gboolean                 op_res);
+_GIO_API
 gboolean            g_simple_async_result_get_op_res_gboolean (GSimpleAsyncResult      *simple);
 
 
@@ -86,35 +97,47 @@ gboolean            g_simple_async_result_get_op_res_gboolean (GSimpleAsyncResul
 GLIB_AVAILABLE_IN_2_32
 void                g_simple_async_result_set_check_cancellable (GSimpleAsyncResult *simple,
                                                                  GCancellable       *check_cancellable);
+_GIO_API
 gpointer            g_simple_async_result_get_source_tag   (GSimpleAsyncResult      *simple);
+_GIO_API
 void                g_simple_async_result_set_handle_cancellation (GSimpleAsyncResult      *simple,
 								   gboolean          handle_cancellation);
+_GIO_API
 void                g_simple_async_result_complete         (GSimpleAsyncResult      *simple);
+_GIO_API
 void                g_simple_async_result_complete_in_idle (GSimpleAsyncResult      *simple);
+_GIO_API
 void                g_simple_async_result_run_in_thread    (GSimpleAsyncResult      *simple,
 							    GSimpleAsyncThreadFunc   func,
 							    int                      io_priority,
 							    GCancellable            *cancellable);
+_GIO_API
 void                g_simple_async_result_set_from_error   (GSimpleAsyncResult      *simple,
 							    const GError            *error);
+_GIO_API
 void                g_simple_async_result_take_error       (GSimpleAsyncResult      *simple,
 							    GError            *error);
+_GIO_API
 gboolean            g_simple_async_result_propagate_error  (GSimpleAsyncResult      *simple,
 							    GError                 **dest);
+_GIO_API
 void                g_simple_async_result_set_error        (GSimpleAsyncResult      *simple,
 							    GQuark                   domain,
 							    gint                     code,
 							    const char              *format,
 							    ...) G_GNUC_PRINTF (4, 5);
+_GIO_API
 void                g_simple_async_result_set_error_va     (GSimpleAsyncResult      *simple,
 							    GQuark                   domain,
 							    gint                     code,
 							    const char              *format,
 							    va_list                  args);
+_GIO_API
 gboolean            g_simple_async_result_is_valid         (GAsyncResult            *result,
                                                             GObject                 *source,
                                                             gpointer                 source_tag);
 
+_GIO_API
 void g_simple_async_report_error_in_idle  (GObject            *object,
 					   GAsyncReadyCallback callback,
 					   gpointer            user_data,
@@ -122,10 +145,12 @@ void g_simple_async_report_error_in_idle  (GObject            *object,
 					   gint                code,
 					   const char         *format,
 					   ...);
+_GIO_API
 void g_simple_async_report_gerror_in_idle (GObject            *object,
 					   GAsyncReadyCallback callback,
 					   gpointer            user_data,
 					   const GError       *error);
+_GIO_API
 void g_simple_async_report_take_gerror_in_idle (GObject            *object,
                                                 GAsyncReadyCallback callback,
                                                 gpointer            user_data,
diff --git a/gio/gsimplepermission.h b/gio/gsimplepermission.h
index 367fe89..144ba34 100644
--- a/gio/gsimplepermission.h
+++ b/gio/gsimplepermission.h
@@ -37,7 +37,9 @@ G_BEGIN_DECLS
 #define G_IS_SIMPLE_PERMISSION(inst)  (G_TYPE_CHECK_INSTANCE_TYPE ((inst),   \
                                        G_TYPE_SIMPLE_PERMISSION))
 
+_GIO_API
 GType                   g_simple_permission_get_type            (void);
+_GIO_API
 GPermission *           g_simple_permission_new                 (gboolean allowed);
 
 G_END_DECLS
diff --git a/gio/gsocket.h b/gio/gsocket.h
index 29ba44f..48aba4d 100644
--- a/gio/gsocket.h
+++ b/gio/gsocket.h
@@ -73,31 +73,48 @@ struct _GSocket
   GSocketPrivate *priv;
 };
 
+_GIO_API
 GType                  g_socket_get_type                (void) G_GNUC_CONST;
+_GIO_API
 GSocket *              g_socket_new                     (GSocketFamily            family,
 							 GSocketType              type,
 							 GSocketProtocol          protocol,
 							 GError                 **error);
+_GIO_API
 GSocket *              g_socket_new_from_fd             (gint                     fd,
 							 GError                 **error);
+_GIO_API
 int                    g_socket_get_fd                  (GSocket                 *socket);
+_GIO_API
 GSocketFamily          g_socket_get_family              (GSocket                 *socket);
+_GIO_API
 GSocketType            g_socket_get_socket_type         (GSocket                 *socket);
+_GIO_API
 GSocketProtocol        g_socket_get_protocol            (GSocket                 *socket);
+_GIO_API
 GSocketAddress *       g_socket_get_local_address       (GSocket                 *socket,
 							 GError                 **error);
+_GIO_API
 GSocketAddress *       g_socket_get_remote_address      (GSocket                 *socket,
 							 GError                 **error);
+_GIO_API
 void                   g_socket_set_blocking            (GSocket                 *socket,
 							 gboolean                 blocking);
+_GIO_API
 gboolean               g_socket_get_blocking            (GSocket                 *socket);
+_GIO_API
 void                   g_socket_set_keepalive           (GSocket                 *socket,
 							 gboolean                 keepalive);
+_GIO_API
 gboolean               g_socket_get_keepalive           (GSocket                 *socket);
+_GIO_API
 gint                   g_socket_get_listen_backlog      (GSocket                 *socket);
+_GIO_API
 void                   g_socket_set_listen_backlog      (GSocket                 *socket,
 							 gint                     backlog);
+_GIO_API
 guint                  g_socket_get_timeout             (GSocket                 *socket);
+_GIO_API
 void                   g_socket_set_timeout             (GSocket                 *socket,
 							 guint                    timeout);
 
@@ -123,7 +140,9 @@ guint                  g_socket_get_multicast_ttl       (GSocket
 GLIB_AVAILABLE_IN_2_32
 void                   g_socket_set_multicast_ttl       (GSocket                 *socket,
                                                          guint                    ttl);
+_GIO_API
 gboolean               g_socket_is_connected            (GSocket                 *socket);
+_GIO_API
 gboolean               g_socket_bind                    (GSocket                 *socket,
 							 GSocketAddress          *address,
 							 gboolean                 allow_reuse,
@@ -140,17 +159,22 @@ gboolean               g_socket_leave_multicast_group   (GSocket
                                                          gboolean                 source_specific,
                                                          const gchar             *iface,
                                                          GError                 **error);
+_GIO_API
 gboolean               g_socket_connect                 (GSocket                 *socket,
 							 GSocketAddress          *address,
 							 GCancellable            *cancellable,
 							 GError                 **error);
+_GIO_API
 gboolean               g_socket_check_connect_result    (GSocket                 *socket,
 							 GError                 **error);
 
+_GIO_API
 gssize                 g_socket_get_available_bytes     (GSocket                 *socket);
 
+_GIO_API
 GIOCondition           g_socket_condition_check         (GSocket                 *socket,
 							 GIOCondition             condition);
+_GIO_API
 gboolean               g_socket_condition_wait          (GSocket                 *socket,
 							 GIOCondition             condition,
 							 GCancellable            *cancellable,
@@ -161,33 +185,40 @@ gboolean               g_socket_condition_timed_wait    (GSocket
 							 gint64                   timeout,
 							 GCancellable            *cancellable,
 							 GError                 **error);
+_GIO_API
 GSocket *              g_socket_accept                  (GSocket                 *socket,
 							 GCancellable            *cancellable,
 							 GError                 **error);
+_GIO_API
 gboolean               g_socket_listen                  (GSocket                 *socket,
 							 GError                 **error);
+_GIO_API
 gssize                 g_socket_receive                 (GSocket                 *socket,
 							 gchar                   *buffer,
 							 gsize                    size,
 							 GCancellable            *cancellable,
 							 GError                 **error);
+_GIO_API
 gssize                 g_socket_receive_from            (GSocket                 *socket,
 							 GSocketAddress         **address,
 							 gchar                   *buffer,
 							 gsize                    size,
 							 GCancellable            *cancellable,
 							 GError                 **error);
+_GIO_API
 gssize                 g_socket_send                    (GSocket                 *socket,
 							 const gchar             *buffer,
 							 gsize                    size,
 							 GCancellable            *cancellable,
 							 GError                 **error);
+_GIO_API
 gssize                 g_socket_send_to                 (GSocket                 *socket,
 							 GSocketAddress          *address,
 							 const gchar             *buffer,
 							 gsize                    size,
 							 GCancellable            *cancellable,
 							 GError                 **error);
+_GIO_API
 gssize                 g_socket_receive_message         (GSocket                 *socket,
 							 GSocketAddress         **address,
 							 GInputVector            *vectors,
@@ -197,6 +228,7 @@ gssize                 g_socket_receive_message         (GSocket
 							 gint                    *flags,
 							 GCancellable            *cancellable,
 							 GError                 **error);
+_GIO_API
 gssize                 g_socket_send_message            (GSocket                 *socket,
 							 GSocketAddress          *address,
 							 GOutputVector           *vectors,
@@ -206,26 +238,34 @@ gssize                 g_socket_send_message            (GSocket
 							 gint                     flags,
 							 GCancellable            *cancellable,
 							 GError                 **error);
+_GIO_API
 gboolean               g_socket_close                   (GSocket                 *socket,
 							 GError                 **error);
+_GIO_API
 gboolean               g_socket_shutdown                (GSocket                 *socket,
 							 gboolean                 shutdown_read,
 							 gboolean                 shutdown_write,
 							 GError                 **error);
+_GIO_API
 gboolean               g_socket_is_closed               (GSocket                 *socket);
+_GIO_API
 GSource *              g_socket_create_source           (GSocket                 *socket,
 							 GIOCondition             condition,
 							 GCancellable            *cancellable);
+_GIO_API
 gboolean               g_socket_speaks_ipv4             (GSocket                 *socket);
+_GIO_API
 GCredentials          *g_socket_get_credentials         (GSocket                 *socket,
                                                          GError                 **error);
 
+_GIO_API
 gssize                 g_socket_receive_with_blocking   (GSocket                 *socket,
 							 gchar                   *buffer,
 							 gsize                    size,
 							 gboolean                 blocking,
 							 GCancellable            *cancellable,
 							 GError                 **error);
+_GIO_API
 gssize                 g_socket_send_with_blocking      (GSocket                 *socket,
 							 const gchar             *buffer,
 							 gsize                    size,
diff --git a/gio/gsocketaddress.h b/gio/gsocketaddress.h
index 356e2b0..e6d2ab1 100644
--- a/gio/gsocketaddress.h
+++ b/gio/gsocketaddress.h
@@ -60,18 +60,23 @@ struct _GSocketAddressClass
 				     GError        **error);
 };
 
+_GIO_API
 GType                 g_socket_address_get_type        (void) G_GNUC_CONST;
 
+_GIO_API
 GSocketFamily         g_socket_address_get_family      (GSocketAddress *address);
 
+_GIO_API
 GSocketAddress *      g_socket_address_new_from_native (gpointer        native,
                                                         gsize           len);
 
+_GIO_API
 gboolean              g_socket_address_to_native       (GSocketAddress *address,
                                                         gpointer        dest,
                                                         gsize           destlen,
 							GError        **error);
 
+_GIO_API
 gssize                g_socket_address_get_native_size (GSocketAddress *address);
 
 G_END_DECLS
diff --git a/gio/gsocketaddressenumerator.h b/gio/gsocketaddressenumerator.h
index c69be2f..36d44ca 100644
--- a/gio/gsocketaddressenumerator.h
+++ b/gio/gsocketaddressenumerator.h
@@ -69,16 +69,20 @@ struct _GSocketAddressEnumeratorClass
 				    GError                   **error);
 };
 
+_GIO_API
 GType           g_socket_address_enumerator_get_type        (void) G_GNUC_CONST;
 
+_GIO_API
 GSocketAddress *g_socket_address_enumerator_next        (GSocketAddressEnumerator  *enumerator,
 							 GCancellable              *cancellable,
 							 GError                   **error);
 
+_GIO_API
 void            g_socket_address_enumerator_next_async  (GSocketAddressEnumerator  *enumerator,
 							 GCancellable              *cancellable,
 							 GAsyncReadyCallback        callback,
 							 gpointer                   user_data);
+_GIO_API
 GSocketAddress *g_socket_address_enumerator_next_finish (GSocketAddressEnumerator  *enumerator,
 							 GAsyncResult              *result,
 							 GError                   **error);
diff --git a/gio/gsocketclient.h b/gio/gsocketclient.h
index 216310b..3eb40a9 100644
--- a/gio/gsocketclient.h
+++ b/gio/gsocketclient.h
@@ -70,91 +70,122 @@ struct _GSocketClient
   GSocketClientPrivate *priv;
 };
 
+_GIO_API
 GType                   g_socket_client_get_type                        (void) G_GNUC_CONST;
 
+_GIO_API
 GSocketClient          *g_socket_client_new                             (void);
 
+_GIO_API
 GSocketFamily           g_socket_client_get_family                      (GSocketClient        *client);
+_GIO_API
 void                    g_socket_client_set_family                      (GSocketClient        *client,
 									 GSocketFamily         family);
+_GIO_API
 GSocketType             g_socket_client_get_socket_type                 (GSocketClient        *client);
+_GIO_API
 void                    g_socket_client_set_socket_type                 (GSocketClient        *client,
 									 GSocketType           type);
+_GIO_API
 GSocketProtocol         g_socket_client_get_protocol                    (GSocketClient        *client);
+_GIO_API
 void                    g_socket_client_set_protocol                    (GSocketClient        *client,
 									 GSocketProtocol       protocol);
+_GIO_API
 GSocketAddress         *g_socket_client_get_local_address               (GSocketClient        *client);
+_GIO_API
 void                    g_socket_client_set_local_address               (GSocketClient        *client,
 									 GSocketAddress       *address);
+_GIO_API
 guint                   g_socket_client_get_timeout                     (GSocketClient        *client);
+_GIO_API
 void                    g_socket_client_set_timeout                     (GSocketClient        *client,
 									 guint                 timeout);
+_GIO_API
 gboolean                g_socket_client_get_enable_proxy                (GSocketClient        *client);
+_GIO_API
 void                    g_socket_client_set_enable_proxy                (GSocketClient        *client,
     									 gboolean	      enable);
 
+_GIO_API
 gboolean                g_socket_client_get_tls                         (GSocketClient        *client);
+_GIO_API
 void                    g_socket_client_set_tls                         (GSocketClient        *client,
 									 gboolean              tls);
+_GIO_API
 GTlsCertificateFlags    g_socket_client_get_tls_validation_flags        (GSocketClient        *client);
+_GIO_API
 void                    g_socket_client_set_tls_validation_flags        (GSocketClient        *client,
 									 GTlsCertificateFlags  flags);
 
+_GIO_API
 GSocketConnection *     g_socket_client_connect                         (GSocketClient        *client,
                                                                          GSocketConnectable   *connectable,
                                                                          GCancellable         *cancellable,
                                                                          GError              **error);
+_GIO_API
 GSocketConnection *     g_socket_client_connect_to_host                 (GSocketClient        *client,
 									 const gchar          *host_and_port,
 									 guint16               default_port,
                                                                          GCancellable         *cancellable,
                                                                          GError              **error);
+_GIO_API
 GSocketConnection *     g_socket_client_connect_to_service              (GSocketClient        *client,
 									 const gchar          *domain,
 									 const gchar          *service,
                                                                          GCancellable         *cancellable,
                                                                          GError              **error);
+_GIO_API
 GSocketConnection *     g_socket_client_connect_to_uri                  (GSocketClient        *client,
 									 const gchar          *uri,
 									 guint16               default_port,
                                                                          GCancellable         *cancellable,
                                                                          GError              **error);
+_GIO_API
 void                    g_socket_client_connect_async                   (GSocketClient        *client,
                                                                          GSocketConnectable   *connectable,
                                                                          GCancellable         *cancellable,
                                                                          GAsyncReadyCallback   callback,
                                                                          gpointer              user_data);
+_GIO_API
 GSocketConnection *     g_socket_client_connect_finish                  (GSocketClient        *client,
                                                                          GAsyncResult         *result,
                                                                          GError              **error);
+_GIO_API
 void                    g_socket_client_connect_to_host_async           (GSocketClient        *client,
 									 const gchar          *host_and_port,
 									 guint16               default_port,
                                                                          GCancellable         *cancellable,
                                                                          GAsyncReadyCallback   callback,
                                                                          gpointer              user_data);
+_GIO_API
 GSocketConnection *     g_socket_client_connect_to_host_finish          (GSocketClient        *client,
                                                                          GAsyncResult         *result,
                                                                          GError              **error);
 
+_GIO_API
 void                    g_socket_client_connect_to_service_async        (GSocketClient        *client,
 									 const gchar          *domain,
 									 const gchar          *service,
                                                                          GCancellable         *cancellable,
                                                                          GAsyncReadyCallback   callback,
                                                                          gpointer              user_data);
+_GIO_API
 GSocketConnection *     g_socket_client_connect_to_service_finish       (GSocketClient        *client,
                                                                          GAsyncResult         *result,
                                                                          GError              **error);
+_GIO_API
 void                    g_socket_client_connect_to_uri_async            (GSocketClient        *client,
 									 const gchar          *uri,
 									 guint16               default_port,
                                                                          GCancellable         *cancellable,
                                                                          GAsyncReadyCallback   callback,
                                                                          gpointer              user_data);
+_GIO_API
 GSocketConnection *     g_socket_client_connect_to_uri_finish           (GSocketClient        *client,
                                                                          GAsyncResult         *result,
                                                                          GError              **error);
+_GIO_API
 void			g_socket_client_add_application_proxy		(GSocketClient        *client,
 									 const gchar          *protocol);
 
diff --git a/gio/gsocketconnectable.h b/gio/gsocketconnectable.h
index 0f84a4a..92225ac 100644
--- a/gio/gsocketconnectable.h
+++ b/gio/gsocketconnectable.h
@@ -62,10 +62,13 @@ struct _GSocketConnectableIface
 
 };
 
+_GIO_API
 GType                     g_socket_connectable_get_type  (void) G_GNUC_CONST;
 
+_GIO_API
 GSocketAddressEnumerator *g_socket_connectable_enumerate (GSocketConnectable *connectable);
 
+_GIO_API
 GSocketAddressEnumerator *g_socket_connectable_proxy_enumerate (GSocketConnectable *connectable);
 
 G_END_DECLS
diff --git a/gio/gsocketconnection.h b/gio/gsocketconnection.h
index 0daa5f3..2c6fbca 100644
--- a/gio/gsocketconnection.h
+++ b/gio/gsocketconnection.h
@@ -70,6 +70,7 @@ struct _GSocketConnection
   GSocketConnectionPrivate *priv;
 };
 
+_GIO_API
 GType              g_socket_connection_get_type                  (void) G_GNUC_CONST;
 
 GLIB_AVAILABLE_IN_2_32
@@ -90,19 +91,25 @@ gboolean           g_socket_connection_connect_finish            (GSocketConnect
 								  GAsyncResult       *result,
 								  GError            **error);
 
+_GIO_API
 GSocket           *g_socket_connection_get_socket                (GSocketConnection  *connection);
+_GIO_API
 GSocketAddress    *g_socket_connection_get_local_address         (GSocketConnection  *connection,
 								  GError            **error);
+_GIO_API
 GSocketAddress    *g_socket_connection_get_remote_address        (GSocketConnection  *connection,
 								  GError            **error);
 
+_GIO_API
 void               g_socket_connection_factory_register_type     (GType               g_type,
 								  GSocketFamily       family,
 								  GSocketType         type,
 								  gint                protocol);
+_GIO_API
 GType              g_socket_connection_factory_lookup_type       (GSocketFamily       family,
 								  GSocketType         type,
 								  gint                protocol_id);
+_GIO_API
 GSocketConnection *g_socket_connection_factory_create_connection (GSocket            *socket);
 
 G_END_DECLS
diff --git a/gio/gsocketcontrolmessage.h b/gio/gsocketcontrolmessage.h
index 6af300c..8651c52 100644
--- a/gio/gsocketcontrolmessage.h
+++ b/gio/gsocketcontrolmessage.h
@@ -88,12 +88,18 @@ struct _GSocketControlMessage
   GSocketControlMessagePrivate *priv;
 };
 
+_GIO_API
 GType                  g_socket_control_message_get_type     (void) G_GNUC_CONST;
+_GIO_API
 gsize                  g_socket_control_message_get_size     (GSocketControlMessage *message);
+_GIO_API
 int                    g_socket_control_message_get_level    (GSocketControlMessage *message);
+_GIO_API
 int                    g_socket_control_message_get_msg_type (GSocketControlMessage *message);
+_GIO_API
 void                   g_socket_control_message_serialize    (GSocketControlMessage *message,
 							      gpointer               data);
+_GIO_API
 GSocketControlMessage *g_socket_control_message_deserialize  (int                    level,
 							      int                    type,
 							      gsize                  size,
diff --git a/gio/gsocketlistener.h b/gio/gsocketlistener.h
index da09a78..34a2a4c 100644
--- a/gio/gsocketlistener.h
+++ b/gio/gsocketlistener.h
@@ -76,17 +76,22 @@ struct _GSocketListener
   GSocketListenerPrivate *priv;
 };
 
+_GIO_API
 GType                   g_socket_listener_get_type                      (void) G_GNUC_CONST;
 
+_GIO_API
 GSocketListener *       g_socket_listener_new                           (void);
 
+_GIO_API
 void                    g_socket_listener_set_backlog                   (GSocketListener     *listener,
 									 int                  listen_backlog);
 
+_GIO_API
 gboolean                g_socket_listener_add_socket                    (GSocketListener     *listener,
                                                                          GSocket             *socket,
 									 GObject             *source_object,
 									 GError             **error);
+_GIO_API
 gboolean                g_socket_listener_add_address                   (GSocketListener     *listener,
                                                                          GSocketAddress      *address,
 									 GSocketType          type,
@@ -94,43 +99,52 @@ gboolean                g_socket_listener_add_address                   (GSocket
 									 GObject             *source_object,
                                                                          GSocketAddress     **effective_address,
 									 GError             **error);
+_GIO_API
 gboolean                g_socket_listener_add_inet_port                 (GSocketListener     *listener,
                                                                          guint16              port,
 									 GObject             *source_object,
 									 GError             **error);
+_GIO_API
 guint16                 g_socket_listener_add_any_inet_port             (GSocketListener     *listener,
 									 GObject             *source_object,
 									 GError             **error);
 
+_GIO_API
 GSocket *               g_socket_listener_accept_socket                 (GSocketListener      *listener,
 									 GObject             **source_object,
                                                                          GCancellable         *cancellable,
                                                                          GError              **error);
+_GIO_API
 void                    g_socket_listener_accept_socket_async           (GSocketListener      *listener,
                                                                          GCancellable         *cancellable,
                                                                          GAsyncReadyCallback   callback,
                                                                          gpointer              user_data);
+_GIO_API
 GSocket *               g_socket_listener_accept_socket_finish          (GSocketListener      *listener,
                                                                          GAsyncResult         *result,
 									 GObject             **source_object,
                                                                          GError              **error);
 
 
+_GIO_API
 GSocketConnection *     g_socket_listener_accept                        (GSocketListener      *listener,
 									 GObject             **source_object,
                                                                          GCancellable         *cancellable,
                                                                          GError              **error);
 
+_GIO_API
 void                    g_socket_listener_accept_async                  (GSocketListener      *listener,
                                                                          GCancellable         *cancellable,
                                                                          GAsyncReadyCallback   callback,
                                                                          gpointer              user_data);
 
+_GIO_API
 GSocketConnection *     g_socket_listener_accept_finish                 (GSocketListener      *listener,
                                                                          GAsyncResult         *result,
 									 GObject             **source_object,
                                                                          GError              **error);
 
+_GIO_API
 void                    g_socket_listener_close                         (GSocketListener      *listener);
 
 G_END_DECLS
diff --git a/gio/gsocketservice.h b/gio/gsocketservice.h
index 27cc0a2..fe181cd 100644
--- a/gio/gsocketservice.h
+++ b/gio/gsocketservice.h
@@ -75,11 +75,16 @@ struct _GSocketService
   GSocketServicePrivate *priv;
 };
 
+_GIO_API
 GType           g_socket_service_get_type  (void);
 
+_GIO_API
 GSocketService *g_socket_service_new       (void);
+_GIO_API
 void            g_socket_service_start     (GSocketService *service);
+_GIO_API
 void            g_socket_service_stop      (GSocketService *service);
+_GIO_API
 gboolean        g_socket_service_is_active (GSocketService *service);
 
 
diff --git a/gio/gsrvtarget.h b/gio/gsrvtarget.h
index 67ce2a9..0934d0c 100644
--- a/gio/gsrvtarget.h
+++ b/gio/gsrvtarget.h
@@ -29,21 +29,30 @@
 
 G_BEGIN_DECLS
 
+_GIO_API
 GType g_srv_target_get_type (void) G_GNUC_CONST;
 #define G_TYPE_SRV_TARGET (g_srv_target_get_type ())
 
+_GIO_API
 GSrvTarget  *g_srv_target_new          (const gchar *hostname,
 				        guint16      port,
 				        guint16      priority,
 				        guint16      weight);
+_GIO_API
 GSrvTarget  *g_srv_target_copy         (GSrvTarget  *target);
+_GIO_API
 void         g_srv_target_free         (GSrvTarget  *target);
 
+_GIO_API
 const gchar *g_srv_target_get_hostname (GSrvTarget  *target);
+_GIO_API
 guint16      g_srv_target_get_port     (GSrvTarget  *target);
+_GIO_API
 guint16      g_srv_target_get_priority (GSrvTarget  *target);
+_GIO_API
 guint16      g_srv_target_get_weight   (GSrvTarget  *target);
 
+_GIO_API
 GList       *g_srv_target_list_sort    (GList       *targets);
 
 G_END_DECLS
diff --git a/gio/gtcpconnection.h b/gio/gtcpconnection.h
index 3928825..8340499 100644
--- a/gio/gtcpconnection.h
+++ b/gio/gtcpconnection.h
@@ -57,10 +57,13 @@ struct _GTcpConnection
   GTcpConnectionPrivate *priv;
 };
 
+_GIO_API
 GType    g_tcp_connection_get_type                (void) G_GNUC_CONST;
 
+_GIO_API
 void     g_tcp_connection_set_graceful_disconnect (GTcpConnection *connection,
 						   gboolean        graceful_disconnect);
+_GIO_API
 gboolean g_tcp_connection_get_graceful_disconnect (GTcpConnection *connection);
 
 G_END_DECLS
diff --git a/gio/gtcpwrapperconnection.h b/gio/gtcpwrapperconnection.h
index 01d3a03..5b18afb 100644
--- a/gio/gtcpwrapperconnection.h
+++ b/gio/gtcpwrapperconnection.h
@@ -57,10 +57,13 @@ struct _GTcpWrapperConnection
   GTcpWrapperConnectionPrivate *priv;
 };
 
+_GIO_API
 GType              g_tcp_wrapper_connection_get_type (void) G_GNUC_CONST;
 
+_GIO_API
 GSocketConnection *g_tcp_wrapper_connection_new                (GIOStream             *base_io_stream,
 								GSocket               *socket);
+_GIO_API
 GIOStream         *g_tcp_wrapper_connection_get_base_io_stream (GTcpWrapperConnection *conn);
 
 G_END_DECLS
diff --git a/gio/gthemedicon.h b/gio/gthemedicon.h
index b0085e6..6126920 100644
--- a/gio/gthemedicon.h
+++ b/gio/gthemedicon.h
@@ -45,17 +45,24 @@ G_BEGIN_DECLS
  **/
 typedef struct _GThemedIconClass   GThemedIconClass;
 
+_GIO_API
 GType  g_themed_icon_get_type                   (void) G_GNUC_CONST;
 
+_GIO_API
 GIcon *g_themed_icon_new                        (const char  *iconname);
+_GIO_API
 GIcon *g_themed_icon_new_with_default_fallbacks (const char  *iconname);
+_GIO_API
 GIcon *g_themed_icon_new_from_names             (char       **iconnames,
                                                  int          len);
+_GIO_API
 void   g_themed_icon_prepend_name               (GThemedIcon *icon,
                                                  const char  *iconname);
+_GIO_API
 void   g_themed_icon_append_name                (GThemedIcon *icon,
                                                  const char  *iconname);
 
+_GIO_API
 const gchar* const * g_themed_icon_get_names     (GThemedIcon *icon);
 
 G_END_DECLS
diff --git a/gio/gthreadedresolver.h b/gio/gthreadedresolver.h
index 79d3327..6f05920 100644
--- a/gio/gthreadedresolver.h
+++ b/gio/gthreadedresolver.h
@@ -43,6 +43,7 @@ typedef struct {
 
 } GThreadedResolverClass;
 
+_GIO_API
 GType g_threaded_resolver_get_type (void) G_GNUC_CONST;
 
 G_END_DECLS
diff --git a/gio/gthreadedsocketservice.h b/gio/gthreadedsocketservice.h
index f947090..f372ca7 100644
--- a/gio/gthreadedsocketservice.h
+++ b/gio/gthreadedsocketservice.h
@@ -73,7 +73,9 @@ struct _GThreadedSocketService
   GThreadedSocketServicePrivate *priv;
 };
 
+_GIO_API
 GType                   g_threaded_socket_service_get_type              (void);
+_GIO_API
 GSocketService *        g_threaded_socket_service_new                   (int max_threads);
 
 G_END_DECLS
diff --git a/gio/gtlsbackend.h b/gio/gtlsbackend.h
index 389b5d7..9ea6325 100644
--- a/gio/gtlsbackend.h
+++ b/gio/gtlsbackend.h
@@ -72,17 +72,25 @@ struct _GTlsBackendInterface
   GTlsDatabase * ( *get_default_database)       (GTlsBackend *backend);
 };
 
+_GIO_API
 GType          g_tls_backend_get_type                   (void) G_GNUC_CONST;
 
+_GIO_API
 GTlsBackend *  g_tls_backend_get_default                (void);
 
+_GIO_API
 GTlsDatabase * g_tls_backend_get_default_database       (GTlsBackend *backend);
 
+_GIO_API
 gboolean       g_tls_backend_supports_tls               (GTlsBackend *backend);
 
+_GIO_API
 GType          g_tls_backend_get_certificate_type       (GTlsBackend *backend);
+_GIO_API
 GType          g_tls_backend_get_client_connection_type (GTlsBackend *backend);
+_GIO_API
 GType          g_tls_backend_get_server_connection_type (GTlsBackend *backend);
+_GIO_API
 GType          g_tls_backend_get_file_database_type     (GTlsBackend *backend);
 
 G_END_DECLS
diff --git a/gio/gtlscertificate.h b/gio/gtlscertificate.h
index 991eb1d..c96e942 100644
--- a/gio/gtlscertificate.h
+++ b/gio/gtlscertificate.h
@@ -58,22 +58,29 @@ struct _GTlsCertificateClass
   gpointer padding[8];
 };
 
+_GIO_API
 GType                 g_tls_certificate_get_type           (void) G_GNUC_CONST;
 
+_GIO_API
 GTlsCertificate      *g_tls_certificate_new_from_pem       (const gchar         *data,
 							    gssize               length,
 							    GError             **error);
 
+_GIO_API
 GTlsCertificate      *g_tls_certificate_new_from_file      (const gchar         *file,
 							    GError             **error);
+_GIO_API
 GTlsCertificate      *g_tls_certificate_new_from_files     (const gchar         *cert_file,
 							    const gchar         *key_file,
 							    GError             **error);
+_GIO_API
 GList                *g_tls_certificate_list_new_from_file (const gchar         *file,
 							    GError             **error);
 
+_GIO_API
 GTlsCertificate      *g_tls_certificate_get_issuer         (GTlsCertificate     *cert);
 
+_GIO_API
 GTlsCertificateFlags  g_tls_certificate_verify             (GTlsCertificate     *cert,
 							    GSocketConnectable  *identity,
 							    GTlsCertificate     *trusted_ca);
diff --git a/gio/gtlsclientconnection.h b/gio/gtlsclientconnection.h
index eaf62f0..96ff18b 100644
--- a/gio/gtlsclientconnection.h
+++ b/gio/gtlsclientconnection.h
@@ -42,21 +42,30 @@ struct _GTlsClientConnectionInterface
 
 };
 
+_GIO_API
 GType                 g_tls_client_connection_get_type             (void) G_GNUC_CONST;
 
+_GIO_API
 GIOStream *           g_tls_client_connection_new                  (GIOStream               *base_io_stream,
 								    GSocketConnectable      *server_identity,
 								    GError                 **error);
 
+_GIO_API
 GTlsCertificateFlags  g_tls_client_connection_get_validation_flags (GTlsClientConnection    *conn);
+_GIO_API
 void                  g_tls_client_connection_set_validation_flags (GTlsClientConnection    *conn,
 								    GTlsCertificateFlags     flags);
+_GIO_API
 GSocketConnectable   *g_tls_client_connection_get_server_identity  (GTlsClientConnection    *conn);
+_GIO_API
 void                  g_tls_client_connection_set_server_identity  (GTlsClientConnection    *conn,
 								    GSocketConnectable      *identity);
+_GIO_API
 gboolean              g_tls_client_connection_get_use_ssl3         (GTlsClientConnection    *conn);
+_GIO_API
 void                  g_tls_client_connection_set_use_ssl3         (GTlsClientConnection    *conn,
 								    gboolean                 use_ssl3);
+_GIO_API
 GList *               g_tls_client_connection_get_accepted_cas     (GTlsClientConnection    *conn);
 
 G_END_DECLS
diff --git a/gio/gtlsconnection.h b/gio/gtlsconnection.h
index 37132cc..e4748bf 100644
--- a/gio/gtlsconnection.h
+++ b/gio/gtlsconnection.h
@@ -73,6 +73,7 @@ struct _GTlsConnectionClass
   gpointer padding[8];
 };
 
+_GIO_API
 GType                 g_tls_connection_get_type                    (void) G_GNUC_CONST;
 
 GLIB_DEPRECATED
@@ -81,38 +82,53 @@ void                  g_tls_connection_set_use_system_certdb       (GTlsConnecti
 GLIB_DEPRECATED
 gboolean              g_tls_connection_get_use_system_certdb       (GTlsConnection       *conn);
 
+_GIO_API
 void                  g_tls_connection_set_database                (GTlsConnection       *conn,
 								    GTlsDatabase         *database);
+_GIO_API
 GTlsDatabase *        g_tls_connection_get_database                (GTlsConnection       *conn);
 
+_GIO_API
 void                  g_tls_connection_set_certificate             (GTlsConnection       *conn,
                                                                     GTlsCertificate      *certificate);
+_GIO_API
 GTlsCertificate      *g_tls_connection_get_certificate             (GTlsConnection       *conn);
 
+_GIO_API
 void                  g_tls_connection_set_interaction             (GTlsConnection       *conn,
                                                                     GTlsInteraction      *interaction);
+_GIO_API
 GTlsInteraction *     g_tls_connection_get_interaction             (GTlsConnection       *conn);
 
+_GIO_API
 GTlsCertificate      *g_tls_connection_get_peer_certificate        (GTlsConnection       *conn);
+_GIO_API
 GTlsCertificateFlags  g_tls_connection_get_peer_certificate_errors (GTlsConnection       *conn);
 
+_GIO_API
 void                  g_tls_connection_set_require_close_notify    (GTlsConnection       *conn,
 								    gboolean              require_close_notify);
+_GIO_API
 gboolean              g_tls_connection_get_require_close_notify    (GTlsConnection       *conn);
 
+_GIO_API
 void                  g_tls_connection_set_rehandshake_mode        (GTlsConnection       *conn,
 								    GTlsRehandshakeMode   mode);
+_GIO_API
 GTlsRehandshakeMode   g_tls_connection_get_rehandshake_mode        (GTlsConnection       *conn);
 
+_GIO_API
 gboolean              g_tls_connection_handshake                   (GTlsConnection       *conn,
 								    GCancellable         *cancellable,
 								    GError              **error);
 
+_GIO_API
 void                  g_tls_connection_handshake_async             (GTlsConnection       *conn,
 								    int                   io_priority,
 								    GCancellable         *cancellable,
 								    GAsyncReadyCallback   callback,
 								    gpointer              user_data);
+_GIO_API
 gboolean              g_tls_connection_handshake_finish            (GTlsConnection       *conn,
 								    GAsyncResult         *result,
 								    GError              **error);
@@ -125,10 +141,12 @@ gboolean              g_tls_connection_handshake_finish            (GTlsConnecti
  * domains.
  */
 #define G_TLS_ERROR (g_tls_error_quark ())
+_GIO_API
 GQuark g_tls_error_quark (void);
 
 
 /*< protected >*/
+_GIO_API
 gboolean              g_tls_connection_emit_accept_certificate     (GTlsConnection       *conn,
 								    GTlsCertificate      *peer_cert,
 								    GTlsCertificateFlags  errors);
diff --git a/gio/gtlsdatabase.h b/gio/gtlsdatabase.h
index 9f93cc9..7053872 100644
--- a/gio/gtlsdatabase.h
+++ b/gio/gtlsdatabase.h
@@ -145,8 +145,10 @@ struct _GTlsDatabaseClass
   gpointer padding[16];
 };
 
+_GIO_API
 GType                g_tls_database_get_type                              (void) G_GNUC_CONST;
 
+_GIO_API
 GTlsCertificateFlags g_tls_database_verify_chain                          (GTlsDatabase            *self,
                                                                            GTlsCertificate         *chain,
                                                                            const gchar             *purpose,
@@ -156,6 +158,7 @@ GTlsCertificateFlags g_tls_database_verify_chain                          (GTlsD
                                                                            GCancellable            *cancellable,
                                                                            GError                 **error);
 
+_GIO_API
 void                 g_tls_database_verify_chain_async                    (GTlsDatabase            *self,
                                                                            GTlsCertificate         *chain,
                                                                            const gchar             *purpose,
@@ -166,13 +169,16 @@ void                 g_tls_database_verify_chain_async                    (GTlsD
                                                                            GAsyncReadyCallback      callback,
                                                                            gpointer                 user_data);
 
+_GIO_API
 GTlsCertificateFlags g_tls_database_verify_chain_finish                   (GTlsDatabase            *self,
                                                                            GAsyncResult            *result,
                                                                            GError                 **error);
 
+_GIO_API
 gchar*               g_tls_database_create_certificate_handle             (GTlsDatabase            *self,
                                                                            GTlsCertificate         *certificate);
 
+_GIO_API
 GTlsCertificate*     g_tls_database_lookup_certificate_for_handle         (GTlsDatabase            *self,
                                                                            const gchar             *handle,
                                                                            GTlsInteraction         *interaction,
@@ -180,6 +186,7 @@ GTlsCertificate*     g_tls_database_lookup_certificate_for_handle         (GTlsD
                                                                            GCancellable            *cancellable,
                                                                            GError                 **error);
 
+_GIO_API
 void                 g_tls_database_lookup_certificate_for_handle_async   (GTlsDatabase            *self,
                                                                            const gchar             *handle,
                                                                            GTlsInteraction         *interaction,
@@ -188,10 +195,12 @@ void                 g_tls_database_lookup_certificate_for_handle_async   (GTlsD
                                                                            GAsyncReadyCallback      callback,
                                                                            gpointer                 user_data);
 
+_GIO_API
 GTlsCertificate*     g_tls_database_lookup_certificate_for_handle_finish  (GTlsDatabase            *self,
                                                                            GAsyncResult            *result,
                                                                            GError                 **error);
 
+_GIO_API
 GTlsCertificate*     g_tls_database_lookup_certificate_issuer             (GTlsDatabase            *self,
                                                                            GTlsCertificate         *certificate,
                                                                            GTlsInteraction         *interaction,
@@ -199,6 +208,7 @@ GTlsCertificate*     g_tls_database_lookup_certificate_issuer             (GTlsD
                                                                            GCancellable            *cancellable,
                                                                            GError                 **error);
 
+_GIO_API
 void                 g_tls_database_lookup_certificate_issuer_async       (GTlsDatabase            *self,
                                                                            GTlsCertificate         *certificate,
                                                                            GTlsInteraction         *interaction,
@@ -207,10 +217,12 @@ void                 g_tls_database_lookup_certificate_issuer_async       (GTlsD
                                                                            GAsyncReadyCallback      callback,
                                                                            gpointer                 user_data);
 
+_GIO_API
 GTlsCertificate*     g_tls_database_lookup_certificate_issuer_finish      (GTlsDatabase            *self,
                                                                            GAsyncResult            *result,
                                                                            GError                 **error);
 
+_GIO_API
 GList*               g_tls_database_lookup_certificates_issued_by         (GTlsDatabase            *self,
                                                                            GByteArray              *issuer_raw_dn,
                                                                            GTlsInteraction         *interaction,
@@ -218,6 +230,7 @@ GList*               g_tls_database_lookup_certificates_issued_by         (GTlsD
                                                                            GCancellable            *cancellable,
                                                                            GError                 **error);
 
+_GIO_API
 void                 g_tls_database_lookup_certificates_issued_by_async    (GTlsDatabase            *self,
                                                                             GByteArray              *issuer_raw_dn,
                                                                             GTlsInteraction         *interaction,
@@ -226,6 +239,7 @@ void                 g_tls_database_lookup_certificates_issued_by_async    (GTls
                                                                             GAsyncReadyCallback      callback,
                                                                             gpointer                 user_data);
 
+_GIO_API
 GList*               g_tls_database_lookup_certificates_issued_by_finish   (GTlsDatabase            *self,
                                                                             GAsyncResult            *result,
                                                                             GError                 **error);
diff --git a/gio/gtlsfiledatabase.h b/gio/gtlsfiledatabase.h
index bc6a17f..5fedaea 100644
--- a/gio/gtlsfiledatabase.h
+++ b/gio/gtlsfiledatabase.h
@@ -46,8 +46,10 @@ struct _GTlsFileDatabaseInterface
   gpointer padding[8];
 };
 
+_GIO_API
 GType                        g_tls_file_database_get_type              (void) G_GNUC_CONST;
 
+_GIO_API
 GTlsDatabase*                g_tls_file_database_new                   (const gchar  *anchors,
                                                                         GError      **error);
 
diff --git a/gio/gtlsinteraction.h b/gio/gtlsinteraction.h
index fc76fe2..8dccc1b 100644
--- a/gio/gtlsinteraction.h
+++ b/gio/gtlsinteraction.h
@@ -74,25 +74,30 @@ struct _GTlsInteractionClass
   gpointer padding[24];
 };
 
+_GIO_API
 GType                  g_tls_interaction_get_type            (void) G_GNUC_CONST;
 
+_GIO_API
 GTlsInteractionResult  g_tls_interaction_invoke_ask_password (GTlsInteraction    *interaction,
                                                               GTlsPassword       *password,
                                                               GCancellable       *cancellable,
                                                               GError            **error);
 
 
+_GIO_API
 GTlsInteractionResult  g_tls_interaction_ask_password        (GTlsInteraction    *interaction,
                                                               GTlsPassword       *password,
                                                               GCancellable       *cancellable,
                                                               GError            **error);
 
+_GIO_API
 void                   g_tls_interaction_ask_password_async  (GTlsInteraction    *interaction,
                                                               GTlsPassword       *password,
                                                               GCancellable       *cancellable,
                                                               GAsyncReadyCallback callback,
                                                               gpointer            user_data);
 
+_GIO_API
 GTlsInteractionResult  g_tls_interaction_ask_password_finish (GTlsInteraction    *interaction,
                                                               GAsyncResult       *result,
                                                               GError            **error);
diff --git a/gio/gtlspassword.h b/gio/gtlspassword.h
index ef581b6..562bb22 100644
--- a/gio/gtlspassword.h
+++ b/gio/gtlspassword.h
@@ -69,30 +69,41 @@ struct _GTlsPasswordClass
   gpointer padding[4];
 };
 
+_GIO_API
 GType             g_tls_password_get_type            (void) G_GNUC_CONST;
 
+_GIO_API
 GTlsPassword *    g_tls_password_new                 (GTlsPasswordFlags  flags,
                                                       const gchar       *description);
 
+_GIO_API
 const guchar *    g_tls_password_get_value           (GTlsPassword      *password,
                                                       gsize             *length);
+_GIO_API
 void              g_tls_password_set_value           (GTlsPassword      *password,
                                                       const guchar      *value,
                                                       gssize             length);
+_GIO_API
 void              g_tls_password_set_value_full      (GTlsPassword      *password,
                                                       guchar            *value,
                                                       gssize             length,
                                                       GDestroyNotify     destroy);
 
+_GIO_API
 GTlsPasswordFlags g_tls_password_get_flags           (GTlsPassword      *password);
+_GIO_API
 void              g_tls_password_set_flags           (GTlsPassword      *password,
                                                       GTlsPasswordFlags  flags);
 
+_GIO_API
 const gchar*      g_tls_password_get_description     (GTlsPassword      *password);
+_GIO_API
 void              g_tls_password_set_description     (GTlsPassword      *password,
                                                       const gchar       *description);
 
+_GIO_API
 const gchar *     g_tls_password_get_warning         (GTlsPassword      *password);
+_GIO_API
 void              g_tls_password_set_warning         (GTlsPassword      *password,
                                                       const gchar       *warning);
 
diff --git a/gio/gtlsserverconnection.h b/gio/gtlsserverconnection.h
index c909d55..2df84a3 100644
--- a/gio/gtlsserverconnection.h
+++ b/gio/gtlsserverconnection.h
@@ -50,8 +50,10 @@ struct _GTlsServerConnectionInterface
 
 };
 
+_GIO_API
 GType                 g_tls_server_connection_get_type                 (void) G_GNUC_CONST;
 
+_GIO_API
 GIOStream *           g_tls_server_connection_new                      (GIOStream        *base_io_stream,
 									GTlsCertificate  *certificate,
 									GError          **error);
diff --git a/gio/gunixconnection.h b/gio/gunixconnection.h
index 83f2c98..92aa189 100644
--- a/gio/gunixconnection.h
+++ b/gio/gunixconnection.h
@@ -54,16 +54,20 @@ struct _GUnixConnection
   GUnixConnectionPrivate *priv;
 };
 
+_GIO_API
 GType                   g_unix_connection_get_type                      (void);
 
+_GIO_API
 gboolean                g_unix_connection_send_fd                       (GUnixConnection      *connection,
                                                                          gint                  fd,
                                                                          GCancellable         *cancellable,
                                                                          GError              **error);
+_GIO_API
 gint                    g_unix_connection_receive_fd                    (GUnixConnection      *connection,
                                                                          GCancellable         *cancellable,
                                                                          GError              **error);
 
+_GIO_API
 gboolean                g_unix_connection_send_credentials              (GUnixConnection      *connection,
                                                                          GCancellable         *cancellable,
                                                                          GError              **error);
@@ -86,6 +90,7 @@ void                    g_unix_connection_receive_credentials_async     (GUnixCo
                                                                          GCancellable         *cancellable,
                                                                          GAsyncReadyCallback   callback,
                                                                          gpointer              user_data);
+_GIO_API
 GCredentials           *g_unix_connection_receive_credentials_finish    (GUnixConnection      *connection,
                                                                          GAsyncResult         *result,
                                                                          GError              **error);
diff --git a/gio/gunixcredentialsmessage.h b/gio/gunixcredentialsmessage.h
index 8dd660c..5ab86e8 100644
--- a/gio/gunixcredentialsmessage.h
+++ b/gio/gunixcredentialsmessage.h
@@ -70,11 +70,16 @@ struct _GUnixCredentialsMessage
   GUnixCredentialsMessagePrivate *priv;
 };
 
+_GIO_API
 GType                  g_unix_credentials_message_get_type             (void) G_GNUC_CONST;
+_GIO_API
 GSocketControlMessage *g_unix_credentials_message_new                  (void);
+_GIO_API
 GSocketControlMessage *g_unix_credentials_message_new_with_credentials (GCredentials *credentials);
+_GIO_API
 GCredentials          *g_unix_credentials_message_get_credentials      (GUnixCredentialsMessage *message);
 
+_GIO_API
 gboolean               g_unix_credentials_message_is_supported         (void);
 
 G_END_DECLS
diff --git a/gio/gunixfdlist.h b/gio/gunixfdlist.h
index 12b6ee8..f236554 100644
--- a/gio/gunixfdlist.h
+++ b/gio/gunixfdlist.h
@@ -62,24 +62,32 @@ struct _GUnixFDList
   GUnixFDListPrivate *priv;
 };
 
+_GIO_API
 GType                   g_unix_fd_list_get_type                         (void) G_GNUC_CONST;
+_GIO_API
 GUnixFDList *           g_unix_fd_list_new                              (void);
+_GIO_API
 GUnixFDList *           g_unix_fd_list_new_from_array                   (const gint   *fds,
                                                                          gint          n_fds);
 
+_GIO_API
 gint                    g_unix_fd_list_append                           (GUnixFDList  *list,
                                                                          gint          fd,
                                                                          GError      **error);
 
+_GIO_API
 gint                    g_unix_fd_list_get_length                       (GUnixFDList  *list);
 
+_GIO_API
 gint                    g_unix_fd_list_get                              (GUnixFDList  *list,
                                                                          gint          index_,
                                                                          GError      **error);
 
+_GIO_API
 const gint *            g_unix_fd_list_peek_fds                         (GUnixFDList  *list,
                                                                          gint         *length);
 
+_GIO_API
 gint *                  g_unix_fd_list_steal_fds                        (GUnixFDList  *list,
                                                                          gint         *length);
 
diff --git a/gio/gunixfdmessage.h b/gio/gunixfdmessage.h
index 3bfa058..03cb5bc 100644
--- a/gio/gunixfdmessage.h
+++ b/gio/gunixfdmessage.h
@@ -61,14 +61,20 @@ struct _GUnixFDMessage
   GUnixFDMessagePrivate *priv;
 };
 
+_GIO_API
 GType                   g_unix_fd_message_get_type                      (void) G_GNUC_CONST;
+_GIO_API
 GSocketControlMessage * g_unix_fd_message_new_with_fd_list              (GUnixFDList     *fd_list);
+_GIO_API
 GSocketControlMessage * g_unix_fd_message_new                           (void);
 
+_GIO_API
 GUnixFDList *           g_unix_fd_message_get_fd_list                   (GUnixFDMessage  *message);
 
+_GIO_API
 gint *                  g_unix_fd_message_steal_fds                     (GUnixFDMessage  *message,
                                                                          gint            *length);
+_GIO_API
 gboolean                g_unix_fd_message_append_fd                     (GUnixFDMessage  *message,
                                                                          gint             fd,
                                                                          GError         **error);
diff --git a/gio/gunixinputstream.h b/gio/gunixinputstream.h
index cbdbe54..e072c87 100644
--- a/gio/gunixinputstream.h
+++ b/gio/gunixinputstream.h
@@ -64,13 +64,18 @@ struct _GUnixInputStreamClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType          g_unix_input_stream_get_type     (void) G_GNUC_CONST;
 
+_GIO_API
 GInputStream * g_unix_input_stream_new          (gint              fd,
                                                  gboolean          close_fd);
+_GIO_API
 void           g_unix_input_stream_set_close_fd (GUnixInputStream *stream,
                                                  gboolean          close_fd);
+_GIO_API
 gboolean       g_unix_input_stream_get_close_fd (GUnixInputStream *stream);
+_GIO_API
 gint           g_unix_input_stream_get_fd       (GUnixInputStream *stream);
 
 G_END_DECLS
diff --git a/gio/gunixmounts.h b/gio/gunixmounts.h
index 15515cf..0bc8f05 100644
--- a/gio/gunixmounts.h
+++ b/gio/gunixmounts.h
@@ -57,50 +57,83 @@ typedef struct _GUnixMountMonitorClass GUnixMountMonitorClass;
 #define G_IS_UNIX_MOUNT_MONITOR(o)       (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_UNIX_MOUNT_MONITOR))
 #define G_IS_UNIX_MOUNT_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_UNIX_MOUNT_MONITOR))
 
+_GIO_API
 void           g_unix_mount_free                    (GUnixMountEntry    *mount_entry);
+_GIO_API
 void           g_unix_mount_point_free              (GUnixMountPoint    *mount_point);
+_GIO_API
 gint           g_unix_mount_compare                 (GUnixMountEntry    *mount1,
 						     GUnixMountEntry    *mount2);
+_GIO_API
 const char *   g_unix_mount_get_mount_path          (GUnixMountEntry    *mount_entry);
+_GIO_API
 const char *   g_unix_mount_get_device_path         (GUnixMountEntry    *mount_entry);
+_GIO_API
 const char *   g_unix_mount_get_fs_type             (GUnixMountEntry    *mount_entry);
+_GIO_API
 gboolean       g_unix_mount_is_readonly             (GUnixMountEntry    *mount_entry);
+_GIO_API
 gboolean       g_unix_mount_is_system_internal      (GUnixMountEntry    *mount_entry);
+_GIO_API
 gboolean       g_unix_mount_guess_can_eject         (GUnixMountEntry    *mount_entry);
+_GIO_API
 gboolean       g_unix_mount_guess_should_display    (GUnixMountEntry    *mount_entry);
+_GIO_API
 char *         g_unix_mount_guess_name              (GUnixMountEntry    *mount_entry);
+_GIO_API
 GIcon *        g_unix_mount_guess_icon              (GUnixMountEntry    *mount_entry);
+_GIO_API
 GIcon *        g_unix_mount_guess_symbolic_icon     (GUnixMountEntry    *mount_entry);
 
 
+_GIO_API
 gint           g_unix_mount_point_compare           (GUnixMountPoint    *mount1,
 						     GUnixMountPoint    *mount2);
+_GIO_API
 const char *   g_unix_mount_point_get_mount_path    (GUnixMountPoint    *mount_point);
+_GIO_API
 const char *   g_unix_mount_point_get_device_path   (GUnixMountPoint    *mount_point);
+_GIO_API
 const char *   g_unix_mount_point_get_fs_type       (GUnixMountPoint    *mount_point);
 GLIB_AVAILABLE_IN_2_32
 const char *   g_unix_mount_point_get_options       (GUnixMountPoint    *mount_point);
+_GIO_API
 gboolean       g_unix_mount_point_is_readonly       (GUnixMountPoint    *mount_point);
+_GIO_API
 gboolean       g_unix_mount_point_is_user_mountable (GUnixMountPoint    *mount_point);
+_GIO_API
 gboolean       g_unix_mount_point_is_loopback       (GUnixMountPoint    *mount_point);
+_GIO_API
 gboolean       g_unix_mount_point_guess_can_eject   (GUnixMountPoint    *mount_point);
+_GIO_API
 char *         g_unix_mount_point_guess_name        (GUnixMountPoint    *mount_point);
+_GIO_API
 GIcon *        g_unix_mount_point_guess_icon        (GUnixMountPoint    *mount_point);
+_GIO_API
 GIcon *        g_unix_mount_point_guess_symbolic_icon (GUnixMountPoint    *mount_point);
 
 
+_GIO_API
 GList *        g_unix_mount_points_get              (guint64            *time_read);
+_GIO_API
 GList *        g_unix_mounts_get                    (guint64            *time_read);
+_GIO_API
 GUnixMountEntry *g_unix_mount_at                    (const char         *mount_path,
 						     guint64            *time_read);
+_GIO_API
 gboolean       g_unix_mounts_changed_since          (guint64             time);
+_GIO_API
 gboolean       g_unix_mount_points_changed_since    (guint64             time);
 
+_GIO_API
 GType              g_unix_mount_monitor_get_type       (void) G_GNUC_CONST;
+_GIO_API
 GUnixMountMonitor *g_unix_mount_monitor_new            (void);
+_GIO_API
 void               g_unix_mount_monitor_set_rate_limit (GUnixMountMonitor *mount_monitor,
                                                         int                limit_msec);
 
+_GIO_API
 gboolean g_unix_is_mount_path_system_internal (const char *mount_path);
 
 G_END_DECLS
diff --git a/gio/gunixoutputstream.h b/gio/gunixoutputstream.h
index ad42923..758fb33 100644
--- a/gio/gunixoutputstream.h
+++ b/gio/gunixoutputstream.h
@@ -64,13 +64,18 @@ struct _GUnixOutputStreamClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType           g_unix_output_stream_get_type     (void) G_GNUC_CONST;
 
+_GIO_API
 GOutputStream * g_unix_output_stream_new          (gint     fd,
                                                    gboolean close_fd);
+_GIO_API
 void            g_unix_output_stream_set_close_fd (GUnixOutputStream *stream,
                                                    gboolean           close_fd);
+_GIO_API
 gboolean        g_unix_output_stream_get_close_fd (GUnixOutputStream *stream);
+_GIO_API
 gint            g_unix_output_stream_get_fd       (GUnixOutputStream *stream);
 G_END_DECLS
 
diff --git a/gio/gunixsocketaddress.h b/gio/gunixsocketaddress.h
index 83ece0b..a1dfc13 100644
--- a/gio/gunixsocketaddress.h
+++ b/gio/gunixsocketaddress.h
@@ -52,21 +52,28 @@ struct _GUnixSocketAddressClass
   GSocketAddressClass parent_class;
 };
 
+_GIO_API
 GType           g_unix_socket_address_get_type    (void) G_GNUC_CONST;
 
+_GIO_API
 GSocketAddress *g_unix_socket_address_new             (const gchar        *path);
 GLIB_DEPRECATED_FOR(g_unix_socket_address_new_with_type)
 GSocketAddress *g_unix_socket_address_new_abstract    (const gchar        *path,
                                                        gint                path_len);
+_GIO_API
 GSocketAddress *g_unix_socket_address_new_with_type   (const gchar            *path,
                                                        gint                    path_len,
                                                        GUnixSocketAddressType  type);
+_GIO_API
 const char *    g_unix_socket_address_get_path        (GUnixSocketAddress *address);
+_GIO_API
 gsize           g_unix_socket_address_get_path_len    (GUnixSocketAddress *address);
+_GIO_API
 GUnixSocketAddressType g_unix_socket_address_get_address_type (GUnixSocketAddress *address);
 GLIB_DEPRECATED
 gboolean        g_unix_socket_address_get_is_abstract (GUnixSocketAddress *address);
 
+_GIO_API
 gboolean        g_unix_socket_address_abstract_names_supported (void);
 
 G_END_DECLS
diff --git a/gio/gvfs.h b/gio/gvfs.h
index bacbe8b..eabf996 100644
--- a/gio/gvfs.h
+++ b/gio/gvfs.h
@@ -105,19 +105,27 @@ struct _GVfsClass
   void (*_g_reserved7) (void);
 };
 
+_GIO_API
 GType                 g_vfs_get_type                  (void) G_GNUC_CONST;
 
+_GIO_API
 gboolean              g_vfs_is_active                 (GVfs       *vfs);
+_GIO_API
 GFile *               g_vfs_get_file_for_path         (GVfs       *vfs,
                                                        const char *path);
+_GIO_API
 GFile *               g_vfs_get_file_for_uri          (GVfs       *vfs,
                                                        const char *uri);
+_GIO_API
 const gchar* const * g_vfs_get_supported_uri_schemes  (GVfs       *vfs);
 
+_GIO_API
 GFile *               g_vfs_parse_name                (GVfs       *vfs,
                                                        const char *parse_name);
 
+_GIO_API
 GVfs *                g_vfs_get_default               (void);
+_GIO_API
 GVfs *                g_vfs_get_local                 (void);
 
 G_END_DECLS
diff --git a/gio/gvolume.h b/gio/gvolume.h
index b0d862e..a81f059 100644
--- a/gio/gvolume.h
+++ b/gio/gvolume.h
@@ -184,23 +184,35 @@ struct _GVolumeIface
   GIcon       * (* get_symbolic_icon)   (GVolume             *volume);
 };
 
+_GIO_API
 GType    g_volume_get_type              (void) G_GNUC_CONST;
 
+_GIO_API
 char *   g_volume_get_name              (GVolume              *volume);
+_GIO_API
 GIcon *  g_volume_get_icon              (GVolume              *volume);
+_GIO_API
 GIcon *  g_volume_get_symbolic_icon     (GVolume              *volume);
+_GIO_API
 char *   g_volume_get_uuid              (GVolume              *volume);
+_GIO_API
 GDrive * g_volume_get_drive             (GVolume              *volume);
+_GIO_API
 GMount * g_volume_get_mount             (GVolume              *volume);
+_GIO_API
 gboolean g_volume_can_mount             (GVolume              *volume);
+_GIO_API
 gboolean g_volume_can_eject             (GVolume              *volume);
+_GIO_API
 gboolean g_volume_should_automount      (GVolume              *volume);
+_GIO_API
 void     g_volume_mount                 (GVolume              *volume,
 					 GMountMountFlags      flags,
 					 GMountOperation      *mount_operation,
 					 GCancellable         *cancellable,
 					 GAsyncReadyCallback   callback,
 					 gpointer              user_data);
+_GIO_API
 gboolean g_volume_mount_finish          (GVolume              *volume,
 					 GAsyncResult         *result,
 					 GError              **error);
@@ -215,18 +227,23 @@ GLIB_DEPRECATED_FOR(g_volume_eject_with_operation_finish)
 gboolean g_volume_eject_finish          (GVolume              *volume,
                                          GAsyncResult         *result,
                                          GError              **error);
+_GIO_API
 char *   g_volume_get_identifier        (GVolume              *volume,
 					 const char           *kind);
+_GIO_API
 char **  g_volume_enumerate_identifiers (GVolume              *volume);
 
+_GIO_API
 GFile *  g_volume_get_activation_root   (GVolume              *volume);
 
+_GIO_API
 void        g_volume_eject_with_operation     (GVolume             *volume,
                                                GMountUnmountFlags   flags,
                                                GMountOperation     *mount_operation,
                                                GCancellable        *cancellable,
                                                GAsyncReadyCallback  callback,
                                                gpointer             user_data);
+_GIO_API
 gboolean    g_volume_eject_with_operation_finish (GVolume          *volume,
                                                GAsyncResult        *result,
                                                GError             **error);
diff --git a/gio/gvolumemonitor.h b/gio/gvolumemonitor.h
index 2bff07e..3a0a053 100644
--- a/gio/gvolumemonitor.h
+++ b/gio/gvolumemonitor.h
@@ -130,14 +130,21 @@ struct _GVolumeMonitorClass
   void (*_g_reserved6) (void);
 };
 
+_GIO_API
 GType           g_volume_monitor_get_type             (void) G_GNUC_CONST;
 
+_GIO_API
 GVolumeMonitor *g_volume_monitor_get                  (void);
+_GIO_API
 GList *         g_volume_monitor_get_connected_drives (GVolumeMonitor *volume_monitor);
+_GIO_API
 GList *         g_volume_monitor_get_volumes          (GVolumeMonitor *volume_monitor);
+_GIO_API
 GList *         g_volume_monitor_get_mounts           (GVolumeMonitor *volume_monitor);
+_GIO_API
 GVolume *       g_volume_monitor_get_volume_for_uuid  (GVolumeMonitor *volume_monitor,
                                                        const char     *uuid);
+_GIO_API
 GMount *        g_volume_monitor_get_mount_for_uuid   (GVolumeMonitor *volume_monitor,
                                                        const char     *uuid);
 
diff --git a/gio/gwin32appinfo.h b/gio/gwin32appinfo.h
index c07ee30..03939c7 100644
--- a/gio/gwin32appinfo.h
+++ b/gio/gwin32appinfo.h
@@ -42,6 +42,7 @@ struct _GWin32AppInfoClass
   GObjectClass parent_class;
 };
 
+_GIO_API
 GType g_win32_app_info_get_type (void) G_GNUC_CONST;
 
 G_END_DECLS
diff --git a/gio/gwin32inputstream.h b/gio/gwin32inputstream.h
index 937685f..a0ffe3f 100644
--- a/gio/gwin32inputstream.h
+++ b/gio/gwin32inputstream.h
@@ -65,13 +65,18 @@ struct _GWin32InputStreamClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType          g_win32_input_stream_get_type         (void) G_GNUC_CONST;
 
+_GIO_API
 GInputStream * g_win32_input_stream_new              (void              *handle,
 						      gboolean           close_handle);
+_GIO_API
 void           g_win32_input_stream_set_close_handle (GWin32InputStream *stream,
 						      gboolean           close_handle);
+_GIO_API
 gboolean       g_win32_input_stream_get_close_handle (GWin32InputStream *stream);
+_GIO_API
 void          *g_win32_input_stream_get_handle       (GWin32InputStream *stream);
 
 G_END_DECLS
diff --git a/gio/gwin32outputstream.h b/gio/gwin32outputstream.h
index 399a53a..6321983 100644
--- a/gio/gwin32outputstream.h
+++ b/gio/gwin32outputstream.h
@@ -65,13 +65,18 @@ struct _GWin32OutputStreamClass
   void (*_g_reserved5) (void);
 };
 
+_GIO_API
 GType           g_win32_output_stream_get_type         (void) G_GNUC_CONST;
 
+_GIO_API
 GOutputStream * g_win32_output_stream_new              (void               *handle,
 							gboolean            close_handle);
+_GIO_API
 void            g_win32_output_stream_set_close_handle (GWin32OutputStream *stream,
 							gboolean           close_handle);
+_GIO_API
 gboolean        g_win32_output_stream_get_close_handle (GWin32OutputStream *stream);
+_GIO_API
 void           *g_win32_output_stream_get_handle       (GWin32OutputStream *stream);
 G_END_DECLS
 
diff --git a/gio/gzlibcompressor.h b/gio/gzlibcompressor.h
index 5824781..c8344fb 100644
--- a/gio/gzlibcompressor.h
+++ b/gio/gzlibcompressor.h
@@ -46,12 +46,16 @@ struct _GZlibCompressorClass
   GObjectClass parent_class;
 };
 
+_GIO_API
 GType            g_zlib_compressor_get_type (void) G_GNUC_CONST;
 
+_GIO_API
 GZlibCompressor *g_zlib_compressor_new (GZlibCompressorFormat format,
 					int level);
 
+_GIO_API
 GFileInfo       *g_zlib_compressor_get_file_info (GZlibCompressor *compressor);
+_GIO_API
 void             g_zlib_compressor_set_file_info (GZlibCompressor *compressor,
                                                   GFileInfo       *file_info);
 
diff --git a/gio/gzlibdecompressor.h b/gio/gzlibdecompressor.h
index f7bb57d..41b64c2 100644
--- a/gio/gzlibdecompressor.h
+++ b/gio/gzlibdecompressor.h
@@ -46,10 +46,13 @@ struct _GZlibDecompressorClass
   GObjectClass parent_class;
 };
 
+_GIO_API
 GType              g_zlib_decompressor_get_type (void) G_GNUC_CONST;
 
+_GIO_API
 GZlibDecompressor *g_zlib_decompressor_new (GZlibCompressorFormat format);
 
+_GIO_API
 GFileInfo         *g_zlib_decompressor_get_file_info (GZlibDecompressor *decompressor);
 
 G_END_DECLS
diff --git a/glib/deprecated/gthread-deprecated.c b/glib/deprecated/gthread-deprecated.c
index a98fc95..520b047 100644
--- a/glib/deprecated/gthread-deprecated.c
+++ b/glib/deprecated/gthread-deprecated.c
@@ -196,6 +196,7 @@ g_thread_get_initialized (void)
 }
 
 /* We need this for ABI compatibility */
+_GLIB_API
 void g_thread_init_glib (void);
 void g_thread_init_glib (void) { }
 
diff --git a/glib/deprecated/gthread.h b/glib/deprecated/gthread.h
index 1866540..b882804 100644
--- a/glib/deprecated/gthread.h
+++ b/glib/deprecated/gthread.h
@@ -145,6 +145,7 @@ GLIB_DEPRECATED_IN_2_32_FOR(g_mutex_init)
 void    g_static_mutex_init           (GStaticMutex *mutex);
 GLIB_DEPRECATED_IN_2_32_FOR(g_mutex_free)
 void    g_static_mutex_free           (GStaticMutex *mutex);
+GLIB_DEPRECATED_IN_2_32_FOR(GMutex)
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
 
 typedef struct _GStaticRecMutex GStaticRecMutex;
diff --git a/glib/garray.h b/glib/garray.h
index eb37b92..9988f00 100644
--- a/glib/garray.h
+++ b/glib/garray.h
@@ -68,42 +68,58 @@ struct _GPtrArray
 #define g_array_insert_val(a,i,v) g_array_insert_vals (a, i, &(v), 1)
 #define g_array_index(a,t,i)      (((t*) (void *) (a)->data) [(i)])
 
+_GLIB_API
 GArray* g_array_new               (gboolean          zero_terminated,
 				   gboolean          clear_,
 				   guint             element_size);
+_GLIB_API
 GArray* g_array_sized_new         (gboolean          zero_terminated,
 				   gboolean          clear_,
 				   guint             element_size,
 				   guint             reserved_size);
+_GLIB_API
 gchar*  g_array_free              (GArray           *array,
 				   gboolean          free_segment);
+_GLIB_API
 GArray *g_array_ref               (GArray           *array);
+_GLIB_API
 void    g_array_unref             (GArray           *array);
+_GLIB_API
 guint   g_array_get_element_size  (GArray           *array);
+_GLIB_API
 GArray* g_array_append_vals       (GArray           *array,
 				   gconstpointer     data,
 				   guint             len);
+_GLIB_API
 GArray* g_array_prepend_vals      (GArray           *array,
 				   gconstpointer     data,
 				   guint             len);
+_GLIB_API
 GArray* g_array_insert_vals       (GArray           *array,
 				   guint             index_,
 				   gconstpointer     data,
 				   guint             len);
+_GLIB_API
 GArray* g_array_set_size          (GArray           *array,
 				   guint             length);
+_GLIB_API
 GArray* g_array_remove_index      (GArray           *array,
 				   guint             index_);
+_GLIB_API
 GArray* g_array_remove_index_fast (GArray           *array,
 				   guint             index_);
+_GLIB_API
 GArray* g_array_remove_range      (GArray           *array,
 				   guint             index_,
 				   guint             length);
+_GLIB_API
 void    g_array_sort              (GArray           *array,
 				   GCompareFunc      compare_func);
+_GLIB_API
 void    g_array_sort_with_data    (GArray           *array,
 				   GCompareDataFunc  compare_func,
 				   gpointer          user_data);
+_GLIB_API
 void    g_array_set_clear_func    (GArray           *array,
                                    GDestroyNotify    clear_func);
 
@@ -112,37 +128,55 @@ void    g_array_set_clear_func    (GArray           *array,
  * spot and shortens the array. remove_fast will again distort order.  
  */
 #define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
+_GLIB_API
 GPtrArray* g_ptr_array_new                (void);
+_GLIB_API
 GPtrArray* g_ptr_array_new_with_free_func (GDestroyNotify    element_free_func);
+_GLIB_API
 GPtrArray* g_ptr_array_sized_new          (guint             reserved_size);
+_GLIB_API
 GPtrArray* g_ptr_array_new_full           (guint             reserved_size,
 					   GDestroyNotify    element_free_func);
+_GLIB_API
 gpointer*  g_ptr_array_free               (GPtrArray        *array,
 					   gboolean          free_seg);
+_GLIB_API
 GPtrArray* g_ptr_array_ref                (GPtrArray        *array);
+_GLIB_API
 void       g_ptr_array_unref              (GPtrArray        *array);
+_GLIB_API
 void       g_ptr_array_set_free_func      (GPtrArray        *array,
                                            GDestroyNotify    element_free_func);
+_GLIB_API
 void       g_ptr_array_set_size           (GPtrArray        *array,
 					   gint              length);
+_GLIB_API
 gpointer   g_ptr_array_remove_index       (GPtrArray        *array,
 					   guint             index_);
+_GLIB_API
 gpointer   g_ptr_array_remove_index_fast  (GPtrArray        *array,
 					   guint             index_);
+_GLIB_API
 gboolean   g_ptr_array_remove             (GPtrArray        *array,
 					   gpointer          data);
+_GLIB_API
 gboolean   g_ptr_array_remove_fast        (GPtrArray        *array,
 					   gpointer          data);
+_GLIB_API
 void       g_ptr_array_remove_range       (GPtrArray        *array,
 					   guint             index_,
 					   guint             length);
+_GLIB_API
 void       g_ptr_array_add                (GPtrArray        *array,
 					   gpointer          data);
+_GLIB_API
 void       g_ptr_array_sort               (GPtrArray        *array,
 					   GCompareFunc      compare_func);
+_GLIB_API
 void       g_ptr_array_sort_with_data     (GPtrArray        *array,
 					   GCompareDataFunc  compare_func,
 					   gpointer          user_data);
+_GLIB_API
 void       g_ptr_array_foreach            (GPtrArray        *array,
 					   GFunc             func,
 					   gpointer          user_data);
@@ -152,32 +186,47 @@ void       g_ptr_array_foreach            (GPtrArray        *array,
  * but type-safe.
  */
 
+_GLIB_API
 GByteArray* g_byte_array_new               (void);
+_GLIB_API
 GByteArray* g_byte_array_new_take          (guint8           *data,
                                             gsize             len);
+_GLIB_API
 GByteArray* g_byte_array_sized_new         (guint             reserved_size);
+_GLIB_API
 guint8*     g_byte_array_free              (GByteArray       *array,
 					    gboolean          free_segment);
+_GLIB_API
 GBytes*     g_byte_array_free_to_bytes     (GByteArray       *array);
+_GLIB_API
 GByteArray *g_byte_array_ref               (GByteArray       *array);
+_GLIB_API
 void        g_byte_array_unref             (GByteArray       *array);
+_GLIB_API
 GByteArray* g_byte_array_append            (GByteArray       *array,
 					    const guint8     *data,
 					    guint             len);
+_GLIB_API
 GByteArray* g_byte_array_prepend           (GByteArray       *array,
 					    const guint8     *data,
 					    guint             len);
+_GLIB_API
 GByteArray* g_byte_array_set_size          (GByteArray       *array,
 					    guint             length);
+_GLIB_API
 GByteArray* g_byte_array_remove_index      (GByteArray       *array,
 					    guint             index_);
+_GLIB_API
 GByteArray* g_byte_array_remove_index_fast (GByteArray       *array,
 					    guint             index_);
+_GLIB_API
 GByteArray* g_byte_array_remove_range      (GByteArray       *array,
 					    guint             index_,
 					    guint             length);
+_GLIB_API
 void        g_byte_array_sort              (GByteArray       *array,
 					    GCompareFunc      compare_func);
+_GLIB_API
 void        g_byte_array_sort_with_data    (GByteArray       *array,
 					    GCompareDataFunc  compare_func,
 					    gpointer          user_data);
diff --git a/glib/gasyncqueue.h b/glib/gasyncqueue.h
index f0d6d95..897aca1 100644
--- a/glib/gasyncqueue.h
+++ b/glib/gasyncqueue.h
@@ -37,11 +37,17 @@ G_BEGIN_DECLS
 
 typedef struct _GAsyncQueue GAsyncQueue;
 
+_GLIB_API
 GAsyncQueue *g_async_queue_new                  (void);
+_GLIB_API
 GAsyncQueue *g_async_queue_new_full             (GDestroyNotify item_free_func);
+_GLIB_API
 void         g_async_queue_lock                 (GAsyncQueue      *queue);
+_GLIB_API
 void         g_async_queue_unlock               (GAsyncQueue      *queue);
+_GLIB_API
 GAsyncQueue *g_async_queue_ref                  (GAsyncQueue      *queue);
+_GLIB_API
 void         g_async_queue_unref                (GAsyncQueue      *queue);
 
 GLIB_DEPRECATED_FOR(g_async_queue_ref)
@@ -50,31 +56,45 @@ void         g_async_queue_ref_unlocked         (GAsyncQueue      *queue);
 GLIB_DEPRECATED_FOR(g_async_queue_unref)
 void         g_async_queue_unref_and_unlock     (GAsyncQueue      *queue);
 
+_GLIB_API
 void         g_async_queue_push                 (GAsyncQueue      *queue,
                                                  gpointer          data);
+_GLIB_API
 void         g_async_queue_push_unlocked        (GAsyncQueue      *queue,
                                                  gpointer          data);
+_GLIB_API
 void         g_async_queue_push_sorted          (GAsyncQueue      *queue,
                                                  gpointer          data,
                                                  GCompareDataFunc  func,
                                                  gpointer          user_data);
+_GLIB_API
 void         g_async_queue_push_sorted_unlocked (GAsyncQueue      *queue,
                                                  gpointer          data,
                                                  GCompareDataFunc  func,
                                                  gpointer          user_data);
+_GLIB_API
 gpointer     g_async_queue_pop                  (GAsyncQueue      *queue);
+_GLIB_API
 gpointer     g_async_queue_pop_unlocked         (GAsyncQueue      *queue);
+_GLIB_API
 gpointer     g_async_queue_try_pop              (GAsyncQueue      *queue);
+_GLIB_API
 gpointer     g_async_queue_try_pop_unlocked     (GAsyncQueue      *queue);
+_GLIB_API
 gpointer     g_async_queue_timeout_pop          (GAsyncQueue      *queue,
                                                  guint64           timeout);
+_GLIB_API
 gpointer     g_async_queue_timeout_pop_unlocked (GAsyncQueue      *queue,
                                                  guint64           timeout);
+_GLIB_API
 gint         g_async_queue_length               (GAsyncQueue      *queue);
+_GLIB_API
 gint         g_async_queue_length_unlocked      (GAsyncQueue      *queue);
+_GLIB_API
 void         g_async_queue_sort                 (GAsyncQueue      *queue,
                                                  GCompareDataFunc  func,
                                                  gpointer          user_data);
+_GLIB_API
 void         g_async_queue_sort_unlocked        (GAsyncQueue      *queue,
                                                  GCompareDataFunc  func,
                                                  gpointer          user_data);
diff --git a/glib/gatomic.h b/glib/gatomic.h
index 8b52e0b..f1e7489 100644
--- a/glib/gatomic.h
+++ b/glib/gatomic.h
@@ -30,14 +30,20 @@
 
 G_BEGIN_DECLS
 
+_GLIB_API
 gint                    g_atomic_int_get                      (volatile gint  *atomic);
+_GLIB_API
 void                    g_atomic_int_set                      (volatile gint  *atomic,
                                                                gint            newval);
+_GLIB_API
 void                    g_atomic_int_inc                      (volatile gint  *atomic);
+_GLIB_API
 gboolean                g_atomic_int_dec_and_test             (volatile gint  *atomic);
+_GLIB_API
 gboolean                g_atomic_int_compare_and_exchange     (volatile gint  *atomic,
                                                                gint            oldval,
                                                                gint            newval);
+_GLIB_API
 gint                    g_atomic_int_add                      (volatile gint  *atomic,
                                                                gint            val);
 GLIB_AVAILABLE_IN_2_30
@@ -46,15 +52,20 @@ guint                   g_atomic_int_and                      (volatile guint *a
 GLIB_AVAILABLE_IN_2_30
 guint                   g_atomic_int_or                       (volatile guint *atomic,
                                                                guint           val);
+_GLIB_API
 guint                   g_atomic_int_xor                      (volatile guint *atomic,
                                                                guint           val);
 
+_GLIB_API
 gpointer                g_atomic_pointer_get                  (volatile void  *atomic);
+_GLIB_API
 void                    g_atomic_pointer_set                  (volatile void  *atomic,
                                                                gpointer        newval);
+_GLIB_API
 gboolean                g_atomic_pointer_compare_and_exchange (volatile void  *atomic,
                                                                gpointer        oldval,
                                                                gpointer        newval);
+_GLIB_API
 gssize                  g_atomic_pointer_add                  (volatile void  *atomic,
                                                                gssize          val);
 GLIB_AVAILABLE_IN_2_30
@@ -63,6 +74,7 @@ gsize                   g_atomic_pointer_and                  (volatile void  *a
 GLIB_AVAILABLE_IN_2_30
 gsize                   g_atomic_pointer_or                   (volatile void  *atomic,
                                                                gsize           val);
+_GLIB_API
 gsize                   g_atomic_pointer_xor                  (volatile void  *atomic,
                                                                gsize           val);
 
diff --git a/glib/gbacktrace.c b/glib/gbacktrace.c
index 957c482..b3d9ba8 100644
--- a/glib/gbacktrace.c
+++ b/glib/gbacktrace.c
@@ -89,6 +89,8 @@
 static void stack_trace (char **args);
 #endif
 
+/* People want to hit this from their debugger... */
+_GLIB_API
 extern volatile gboolean glib_on_error_halt;
 volatile gboolean glib_on_error_halt = TRUE;
 
diff --git a/glib/gbacktrace.h b/glib/gbacktrace.h
index f0a6eab..d6f67d2 100644
--- a/glib/gbacktrace.h
+++ b/glib/gbacktrace.h
@@ -36,7 +36,9 @@
 
 G_BEGIN_DECLS
 
+_GLIB_API
 void g_on_error_query (const gchar *prg_name);
+_GLIB_API
 void g_on_error_stack_trace (const gchar *prg_name);
 
 /**
diff --git a/glib/gbase64.h b/glib/gbase64.h
index 88ce6d8..38e3d7d 100644
--- a/glib/gbase64.h
+++ b/glib/gbase64.h
@@ -29,25 +29,31 @@
 
 G_BEGIN_DECLS
 
+_GLIB_API
 gsize   g_base64_encode_step    (const guchar *in,
                                  gsize         len,
                                  gboolean      break_lines,
                                  gchar        *out,
                                  gint         *state,
                                  gint         *save);
+_GLIB_API
 gsize   g_base64_encode_close   (gboolean      break_lines,
                                  gchar        *out,
                                  gint         *state,
                                  gint         *save);
+_GLIB_API
 gchar*  g_base64_encode         (const guchar *data,
                                  gsize         len) G_GNUC_MALLOC;
+_GLIB_API
 gsize   g_base64_decode_step    (const gchar  *in,
                                  gsize         len,
                                  guchar       *out,
                                  gint         *state,
                                  guint        *save);
+_GLIB_API
 guchar *g_base64_decode         (const gchar  *text,
                                  gsize        *out_len) G_GNUC_MALLOC;
+_GLIB_API
 guchar *g_base64_decode_inplace (gchar        *text,
                                  gsize        *out_len);
 
diff --git a/glib/gbitlock.h b/glib/gbitlock.h
index 641ee69..aaf4f53 100644
--- a/glib/gbitlock.h
+++ b/glib/gbitlock.h
@@ -31,17 +31,23 @@
 
 G_BEGIN_DECLS
 
+_GLIB_API
 void      g_bit_lock                      (volatile gint *address,
                                            gint           lock_bit);
+_GLIB_API
 gboolean  g_bit_trylock                   (volatile gint *address,
                                            gint           lock_bit);
+_GLIB_API
 void      g_bit_unlock                    (volatile gint *address,
                                            gint           lock_bit);
 
+_GLIB_API
 void      g_pointer_bit_lock              (volatile void *address,
                                            gint           lock_bit);
+_GLIB_API
 gboolean  g_pointer_bit_trylock           (volatile void *address,
                                            gint           lock_bit);
+_GLIB_API
 void      g_pointer_bit_unlock            (volatile void *address,
                                            gint           lock_bit);
 
diff --git a/glib/gbookmarkfile.h b/glib/gbookmarkfile.h
index 6b2ee6f..7db9ba8 100644
--- a/glib/gbookmarkfile.h
+++ b/glib/gbookmarkfile.h
@@ -66,6 +66,7 @@ typedef enum
   G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND
 } GBookmarkFileError;
 
+_GLIB_API
 GQuark g_bookmark_file_error_quark (void);
 
 /**
@@ -76,72 +77,93 @@ GQuark g_bookmark_file_error_quark (void);
  */
 typedef struct _GBookmarkFile GBookmarkFile;
 
+_GLIB_API
 GBookmarkFile *g_bookmark_file_new                 (void);
+_GLIB_API
 void           g_bookmark_file_free                (GBookmarkFile  *bookmark);
 
+_GLIB_API
 gboolean       g_bookmark_file_load_from_file      (GBookmarkFile  *bookmark,
 						    const gchar    *filename,
 						    GError        **error);
+_GLIB_API
 gboolean       g_bookmark_file_load_from_data      (GBookmarkFile  *bookmark,
 						    const gchar    *data,
 						    gsize           length,
 						    GError        **error);
+_GLIB_API
 gboolean       g_bookmark_file_load_from_data_dirs (GBookmarkFile  *bookmark,
 						    const gchar    *file,
 						    gchar         **full_path,
 						    GError        **error);
+_GLIB_API
 gchar *        g_bookmark_file_to_data             (GBookmarkFile  *bookmark,
 						    gsize          *length,
 						    GError        **error) G_GNUC_MALLOC;
+_GLIB_API
 gboolean       g_bookmark_file_to_file             (GBookmarkFile  *bookmark,
 						    const gchar    *filename,
 						    GError        **error);
 
+_GLIB_API
 void           g_bookmark_file_set_title           (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *title);
+_GLIB_API
 gchar *        g_bookmark_file_get_title           (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    GError        **error) G_GNUC_MALLOC;
+_GLIB_API
 void           g_bookmark_file_set_description     (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *description);
+_GLIB_API
 gchar *        g_bookmark_file_get_description     (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    GError        **error) G_GNUC_MALLOC;
+_GLIB_API
 void           g_bookmark_file_set_mime_type       (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *mime_type);
+_GLIB_API
 gchar *        g_bookmark_file_get_mime_type       (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    GError        **error) G_GNUC_MALLOC;
+_GLIB_API
 void           g_bookmark_file_set_groups          (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar   **groups,
 						    gsize           length);
+_GLIB_API
 void           g_bookmark_file_add_group           (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *group);
+_GLIB_API
 gboolean       g_bookmark_file_has_group           (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *group,
 						    GError        **error);
+_GLIB_API
 gchar **       g_bookmark_file_get_groups          (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    gsize          *length,
 						    GError        **error) G_GNUC_MALLOC;
+_GLIB_API
 void           g_bookmark_file_add_application     (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *name,
 						    const gchar    *exec);
+_GLIB_API
 gboolean       g_bookmark_file_has_application     (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *name,
 						    GError        **error);
+_GLIB_API
 gchar **       g_bookmark_file_get_applications    (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    gsize          *length,
 						    GError        **error) G_GNUC_MALLOC;
+_GLIB_API
 gboolean       g_bookmark_file_set_app_info        (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *name,
@@ -149,6 +171,7 @@ gboolean       g_bookmark_file_set_app_info        (GBookmarkFile  *bookmark,
 						    gint            count,
 						    time_t          stamp,
 						    GError        **error);
+_GLIB_API
 gboolean       g_bookmark_file_get_app_info        (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *name,
@@ -156,55 +179,72 @@ gboolean       g_bookmark_file_get_app_info        (GBookmarkFile  *bookmark,
 						    guint          *count,
 						    time_t         *stamp,
 						    GError        **error);
+_GLIB_API
 void           g_bookmark_file_set_is_private      (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    gboolean        is_private);
+_GLIB_API
 gboolean       g_bookmark_file_get_is_private      (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    GError        **error);
+_GLIB_API
 void           g_bookmark_file_set_icon            (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *href,
 						    const gchar    *mime_type);
+_GLIB_API
 gboolean       g_bookmark_file_get_icon            (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    gchar         **href,
 						    gchar         **mime_type,
 						    GError        **error);
+_GLIB_API
 void           g_bookmark_file_set_added           (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    time_t          added);
+_GLIB_API
 time_t         g_bookmark_file_get_added           (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    GError        **error);
+_GLIB_API
 void           g_bookmark_file_set_modified        (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    time_t          modified);
+_GLIB_API
 time_t         g_bookmark_file_get_modified        (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    GError        **error);
+_GLIB_API
 void           g_bookmark_file_set_visited         (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    time_t          visited);
+_GLIB_API
 time_t         g_bookmark_file_get_visited         (GBookmarkFile  *bookmark,
 						    const gchar    *uri, 
 						    GError        **error);
+_GLIB_API
 gboolean       g_bookmark_file_has_item            (GBookmarkFile  *bookmark,
 						    const gchar    *uri);
+_GLIB_API
 gint           g_bookmark_file_get_size            (GBookmarkFile  *bookmark);
+_GLIB_API
 gchar **       g_bookmark_file_get_uris            (GBookmarkFile  *bookmark,
 						    gsize          *length) G_GNUC_MALLOC;
+_GLIB_API
 gboolean       g_bookmark_file_remove_group        (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *group,
 						    GError        **error);
+_GLIB_API
 gboolean       g_bookmark_file_remove_application  (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    const gchar    *name,
 						    GError        **error);
+_GLIB_API
 gboolean       g_bookmark_file_remove_item         (GBookmarkFile  *bookmark,
 						    const gchar    *uri,
 						    GError        **error);
+_GLIB_API
 gboolean       g_bookmark_file_move_item           (GBookmarkFile  *bookmark,
 						    const gchar    *old_uri,
 						    const gchar    *new_uri,
diff --git a/glib/gbytes.h b/glib/gbytes.h
index de3c8f8..444357a 100644
--- a/glib/gbytes.h
+++ b/glib/gbytes.h
@@ -33,43 +33,57 @@
 
 G_BEGIN_DECLS
 
+_GLIB_API
 GBytes *        g_bytes_new                     (gconstpointer   data,
                                                  gsize           size);
 
+_GLIB_API
 GBytes *        g_bytes_new_take                (gpointer        data,
                                                  gsize           size);
 
+_GLIB_API
 GBytes *        g_bytes_new_static              (gconstpointer   data,
                                                  gsize           size);
 
+_GLIB_API
 GBytes *        g_bytes_new_with_free_func      (gconstpointer   data,
                                                  gsize           size,
                                                  GDestroyNotify  free_func,
                                                  gpointer        user_data);
 
+_GLIB_API
 GBytes *        g_bytes_new_from_bytes          (GBytes         *bytes,
                                                  gsize           offset,
                                                  gsize           length);
 
+_GLIB_API
 gconstpointer   g_bytes_get_data                (GBytes         *bytes,
                                                  gsize          *size);
 
+_GLIB_API
 gsize           g_bytes_get_size                (GBytes         *bytes);
 
+_GLIB_API
 GBytes *        g_bytes_ref                     (GBytes         *bytes);
 
+_GLIB_API
 void            g_bytes_unref                   (GBytes         *bytes);
 
+_GLIB_API
 gpointer        g_bytes_unref_to_data           (GBytes         *bytes,
                                                  gsize          *size);
 
+_GLIB_API
 GByteArray *    g_bytes_unref_to_array          (GBytes         *bytes);
 
+_GLIB_API
 guint           g_bytes_hash                    (gconstpointer   bytes);
 
+_GLIB_API
 gboolean        g_bytes_equal                   (gconstpointer   bytes1,
                                                  gconstpointer   bytes2);
 
+_GLIB_API
 gint            g_bytes_compare                 (gconstpointer   bytes1,
                                                  gconstpointer   bytes2);
 
diff --git a/glib/gcharset.h b/glib/gcharset.h
index 9b56524..1b7a3f3 100644
--- a/glib/gcharset.h
+++ b/glib/gcharset.h
@@ -29,10 +29,14 @@
 
 G_BEGIN_DECLS
 
+_GLIB_API
 gboolean              g_get_charset         (const char **charset);
+_GLIB_API
 gchar *               g_get_codeset         (void);
 
+_GLIB_API
 const gchar * const * g_get_language_names  (void);
+_GLIB_API
 gchar **              g_get_locale_variants (const gchar *locale);
 
 G_END_DECLS
diff --git a/glib/gchecksum.h b/glib/gchecksum.h
index be6ab65..a620907 100644
--- a/glib/gchecksum.h
+++ b/glib/gchecksum.h
@@ -63,23 +63,33 @@ typedef enum {
  */
 typedef struct _GChecksum       GChecksum;
 
+_GLIB_API
 gssize                g_checksum_type_get_length    (GChecksumType    checksum_type);
 
+_GLIB_API
 GChecksum *           g_checksum_new                (GChecksumType    checksum_type);
+_GLIB_API
 void                  g_checksum_reset              (GChecksum       *checksum);
+_GLIB_API
 GChecksum *           g_checksum_copy               (const GChecksum *checksum);
+_GLIB_API
 void                  g_checksum_free               (GChecksum       *checksum);
+_GLIB_API
 void                  g_checksum_update             (GChecksum       *checksum,
                                                      const guchar    *data,
                                                      gssize           length);
+_GLIB_API
 const gchar *         g_checksum_get_string         (GChecksum       *checksum);
+_GLIB_API
 void                  g_checksum_get_digest         (GChecksum       *checksum,
                                                      guint8          *buffer,
                                                      gsize           *digest_len);
 
+_GLIB_API
 gchar                *g_compute_checksum_for_data   (GChecksumType    checksum_type,
                                                      const guchar    *data,
                                                      gsize            length);
+_GLIB_API
 gchar                *g_compute_checksum_for_string (GChecksumType    checksum_type,
                                                      const gchar     *str,
                                                      gssize           length);
diff --git a/glib/gconvert.h b/glib/gconvert.h
index e85556e..64b602b 100644
--- a/glib/gconvert.h
+++ b/glib/gconvert.h
@@ -65,6 +65,7 @@ typedef enum
  * error domains.
  */
 #define G_CONVERT_ERROR g_convert_error_quark()
+_GLIB_API
 GQuark g_convert_error_quark (void);
 
 /**
@@ -76,16 +77,20 @@ GQuark g_convert_error_quark (void);
  */
 typedef struct _GIConv *GIConv;
 
+_GLIB_API
 GIConv g_iconv_open   (const gchar  *to_codeset,
 		       const gchar  *from_codeset);
+_GLIB_API
 gsize  g_iconv        (GIConv        converter,
 		       gchar       **inbuf,
 		       gsize        *inbytes_left,
 		       gchar       **outbuf,
 		       gsize        *outbytes_left);
+_GLIB_API
 gint   g_iconv_close  (GIConv        converter);
 
 
+_GLIB_API
 gchar* g_convert               (const gchar  *str,
 				gssize        len,            
 				const gchar  *to_codeset,
@@ -93,12 +98,14 @@ gchar* g_convert               (const gchar  *str,
 				gsize        *bytes_read,     
 				gsize        *bytes_written,  
 				GError      **error) G_GNUC_MALLOC;
+_GLIB_API
 gchar* g_convert_with_iconv    (const gchar  *str,
 				gssize        len,
 				GIConv        converter,
 				gsize        *bytes_read,     
 				gsize        *bytes_written,  
 				GError      **error) G_GNUC_MALLOC;
+_GLIB_API
 gchar* g_convert_with_fallback (const gchar  *str,
 				gssize        len,            
 				const gchar  *to_codeset,
@@ -111,11 +118,13 @@ gchar* g_convert_with_fallback (const gchar  *str,
 
 /* Convert between libc's idea of strings and UTF-8.
  */
+_GLIB_API
 gchar* g_locale_to_utf8   (const gchar  *opsysstring,
 			   gssize        len,            
 			   gsize        *bytes_read,     
 			   gsize        *bytes_written,  
 			   GError      **error) G_GNUC_MALLOC;
+_GLIB_API
 gchar* g_locale_from_utf8 (const gchar  *utf8string,
 			   gssize        len,            
 			   gsize        *bytes_read,     
@@ -125,29 +134,37 @@ gchar* g_locale_from_utf8 (const gchar  *utf8string,
 /* Convert between the operating system (or C runtime)
  * representation of file names and UTF-8.
  */
+_GLIB_API
 gchar* g_filename_to_utf8   (const gchar  *opsysstring,
 			     gssize        len,            
 			     gsize        *bytes_read,     
 			     gsize        *bytes_written,  
 			     GError      **error) G_GNUC_MALLOC;
+_GLIB_API
 gchar* g_filename_from_utf8 (const gchar  *utf8string,
 			     gssize        len,            
 			     gsize        *bytes_read,     
 			     gsize        *bytes_written,  
 			     GError      **error) G_GNUC_MALLOC;
 
+_GLIB_API
 gchar *g_filename_from_uri (const gchar *uri,
 			    gchar      **hostname,
 			    GError     **error) G_GNUC_MALLOC;
   
+_GLIB_API
 gchar *g_filename_to_uri   (const gchar *filename,
 			    const gchar *hostname,
 			    GError     **error) G_GNUC_MALLOC;
+_GLIB_API
 gchar *g_filename_display_name (const gchar *filename) G_GNUC_MALLOC;
+_GLIB_API
 gboolean g_get_filename_charsets (const gchar ***charsets);
 
+_GLIB_API
 gchar *g_filename_display_basename (const gchar *filename) G_GNUC_MALLOC;
 
+_GLIB_API
 gchar **g_uri_list_extract_uris (const gchar *uri_list) G_GNUC_MALLOC;
 
 #ifdef G_OS_WIN32
@@ -156,19 +173,23 @@ gchar **g_uri_list_extract_uris (const gchar *uri_list) G_GNUC_MALLOC;
 #define g_filename_from_uri  g_filename_from_uri_utf8
 #define g_filename_to_uri    g_filename_to_uri_utf8
 
+_GLIB_API
 gchar* g_filename_to_utf8_utf8   (const gchar  *opsysstring,
                                   gssize        len,
                                   gsize        *bytes_read,
                                   gsize        *bytes_written,
                                   GError      **error) G_GNUC_MALLOC;
+_GLIB_API
 gchar* g_filename_from_utf8_utf8 (const gchar  *utf8string,
                                   gssize        len,
                                   gsize        *bytes_read,
                                   gsize        *bytes_written,
                                   GError      **error) G_GNUC_MALLOC;
+_GLIB_API
 gchar *g_filename_from_uri_utf8  (const gchar  *uri,
                                   gchar       **hostname,
                                   GError      **error) G_GNUC_MALLOC;
+_GLIB_API
 gchar *g_filename_to_uri_utf8    (const gchar  *filename,
                                   const gchar  *hostname,
                                   GError      **error) G_GNUC_MALLOC;
diff --git a/glib/gdataset.h b/glib/gdataset.h
index a93f6ae..ea2cd6d 100644
--- a/glib/gdataset.h
+++ b/glib/gdataset.h
@@ -43,10 +43,14 @@ typedef void            (*GDataForeachFunc)     (GQuark         key_id,
 
 /* Keyed Data List
  */
+_GLIB_API
 void     g_datalist_init                (GData            **datalist);
+_GLIB_API
 void     g_datalist_clear               (GData            **datalist);
+_GLIB_API
 gpointer g_datalist_id_get_data         (GData            **datalist,
 					 GQuark             key_id);
+_GLIB_API
 void     g_datalist_id_set_data_full    (GData            **datalist,
 					 GQuark             key_id,
 					 gpointer           data,
@@ -67,8 +71,10 @@ gboolean g_datalist_id_replace_data     (GData            **datalist,
                                          GDestroyNotify     destroy,
 					 GDestroyNotify    *old_destroy);
 
+_GLIB_API
 gpointer g_datalist_id_remove_no_notify (GData            **datalist,
 					 GQuark             key_id);
+_GLIB_API
 void     g_datalist_foreach             (GData            **datalist,
 					 GDataForeachFunc   func,
 					 gpointer           user_data);
@@ -82,10 +88,13 @@ void     g_datalist_foreach             (GData            **datalist,
  */
 #define G_DATALIST_FLAGS_MASK 0x3
 
+_GLIB_API
 void     g_datalist_set_flags           (GData            **datalist,
 					 guint              flags);
+_GLIB_API
 void     g_datalist_unset_flags         (GData            **datalist,
 					 guint              flags);
+_GLIB_API
 guint    g_datalist_get_flags           (GData            **datalist);
 
 #define   g_datalist_id_set_data(dl, q, d)      \
@@ -103,17 +112,23 @@ guint    g_datalist_get_flags           (GData            **datalist);
 
 /* Location Associated Keyed Data
  */
+_GLIB_API
 void      g_dataset_destroy             (gconstpointer    dataset_location);
+_GLIB_API
 gpointer  g_dataset_id_get_data         (gconstpointer    dataset_location,
                                          GQuark           key_id);
+_GLIB_API
 gpointer  g_datalist_get_data            (GData	 **datalist,
 					  const gchar *key);
+_GLIB_API
 void      g_dataset_id_set_data_full    (gconstpointer    dataset_location,
                                          GQuark           key_id,
                                          gpointer         data,
                                          GDestroyNotify   destroy_func);
+_GLIB_API
 gpointer  g_dataset_id_remove_no_notify (gconstpointer    dataset_location,
                                          GQuark           key_id);
+_GLIB_API
 void      g_dataset_foreach             (gconstpointer    dataset_location,
                                          GDataForeachFunc func,
                                          gpointer         user_data);
diff --git a/glib/gdate.h b/glib/gdate.h
index 5ef1850..0c757c5 100644
--- a/glib/gdate.h
+++ b/glib/gdate.h
@@ -119,11 +119,15 @@ struct _GDate
  * to get a usable object. You can also allocate a GDate statically,
  * then call g_date_clear() to initialize.
  */
+_GLIB_API
 GDate*       g_date_new                   (void);
+_GLIB_API
 GDate*       g_date_new_dmy               (GDateDay     day,
                                            GDateMonth   month,
                                            GDateYear    year);
+_GLIB_API
 GDate*       g_date_new_julian            (guint32      julian_day);
+_GLIB_API
 void         g_date_free                  (GDate       *date);
 
 /* check g_date_valid() after doing an operation that might fail, like
@@ -131,21 +135,34 @@ void         g_date_free                  (GDate       *date);
  * dates (the exceptions are the mutators, since you need those to
  * return to validity).
  */
+_GLIB_API
 gboolean     g_date_valid                 (const GDate *date);
+_GLIB_API
 gboolean     g_date_valid_day             (GDateDay     day) G_GNUC_CONST;
+_GLIB_API
 gboolean     g_date_valid_month           (GDateMonth month) G_GNUC_CONST;
+_GLIB_API
 gboolean     g_date_valid_year            (GDateYear  year) G_GNUC_CONST;
+_GLIB_API
 gboolean     g_date_valid_weekday         (GDateWeekday weekday) G_GNUC_CONST;
+_GLIB_API
 gboolean     g_date_valid_julian          (guint32 julian_date) G_GNUC_CONST;
+_GLIB_API
 gboolean     g_date_valid_dmy             (GDateDay     day,
                                            GDateMonth   month,
                                            GDateYear    year) G_GNUC_CONST;
 
+_GLIB_API
 GDateWeekday g_date_get_weekday           (const GDate *date);
+_GLIB_API
 GDateMonth   g_date_get_month             (const GDate *date);
+_GLIB_API
 GDateYear    g_date_get_year              (const GDate *date);
+_GLIB_API
 GDateDay     g_date_get_day               (const GDate *date);
+_GLIB_API
 guint32      g_date_get_julian            (const GDate *date);
+_GLIB_API
 guint        g_date_get_day_of_year       (const GDate *date);
 /* First monday/sunday is the start of week 1; if we haven't reached
  * that day, return 0. These are not ISO weeks of the year; that
@@ -153,14 +170,18 @@ guint        g_date_get_day_of_year       (const GDate *date);
  * these functions return the number of weeks, starting on the
  * corrsponding day
  */
+_GLIB_API
 guint        g_date_get_monday_week_of_year (const GDate *date);
+_GLIB_API
 guint        g_date_get_sunday_week_of_year (const GDate *date);
+_GLIB_API
 guint        g_date_get_iso8601_week_of_year (const GDate *date);
 
 /* If you create a static date struct you need to clear it to get it
  * in a sane state before use. You can clear a whole array at
  * once with the ndates argument.
  */
+_GLIB_API
 void         g_date_clear                 (GDate       *date,
                                            guint        n_dates);
 
@@ -168,76 +189,103 @@ void         g_date_clear                 (GDate       *date,
  * permits many formats but tries to catch common typos. If your data
  * needs to be strictly validated, it is not an appropriate function.
  */
+_GLIB_API
 void         g_date_set_parse             (GDate       *date,
                                            const gchar *str);
+_GLIB_API
 void         g_date_set_time_t            (GDate       *date,
 					   time_t       timet);
+_GLIB_API
 void         g_date_set_time_val          (GDate       *date,
 					   GTimeVal    *timeval);
 #ifndef G_DISABLE_DEPRECATED
 GLIB_DEPRECATED_FOR(g_date_set_time_t)
+_GLIB_API
 void         g_date_set_time              (GDate       *date,
                                            GTime        time_);
 #endif
+_GLIB_API
 void         g_date_set_month             (GDate       *date,
                                            GDateMonth   month);
+_GLIB_API
 void         g_date_set_day               (GDate       *date,
                                            GDateDay     day);
+_GLIB_API
 void         g_date_set_year              (GDate       *date,
                                            GDateYear    year);
+_GLIB_API
 void         g_date_set_dmy               (GDate       *date,
                                            GDateDay     day,
                                            GDateMonth   month,
                                            GDateYear    y);
+_GLIB_API
 void         g_date_set_julian            (GDate       *date,
                                            guint32      julian_date);
+_GLIB_API
 gboolean     g_date_is_first_of_month     (const GDate *date);
+_GLIB_API
 gboolean     g_date_is_last_of_month      (const GDate *date);
 
 /* To go forward by some number of weeks just go forward weeks*7 days */
+_GLIB_API
 void         g_date_add_days              (GDate       *date,
                                            guint        n_days);
+_GLIB_API
 void         g_date_subtract_days         (GDate       *date,
                                            guint        n_days);
 
 /* If you add/sub months while day > 28, the day might change */
+_GLIB_API
 void         g_date_add_months            (GDate       *date,
                                            guint        n_months);
+_GLIB_API
 void         g_date_subtract_months       (GDate       *date,
                                            guint        n_months);
 
 /* If it's feb 29, changing years can move you to the 28th */
+_GLIB_API
 void         g_date_add_years             (GDate       *date,
                                            guint        n_years);
+_GLIB_API
 void         g_date_subtract_years        (GDate       *date,
                                            guint        n_years);
+_GLIB_API
 gboolean     g_date_is_leap_year          (GDateYear    year) G_GNUC_CONST;
+_GLIB_API
 guint8       g_date_get_days_in_month     (GDateMonth   month,
                                            GDateYear    year) G_GNUC_CONST;
+_GLIB_API
 guint8       g_date_get_monday_weeks_in_year  (GDateYear    year) G_GNUC_CONST;
+_GLIB_API
 guint8       g_date_get_sunday_weeks_in_year  (GDateYear    year) G_GNUC_CONST;
 
 /* Returns the number of days between the two dates.  If date2 comes
    before date1, a negative value is return. */
+_GLIB_API
 gint         g_date_days_between          (const GDate *date1,
 					   const GDate *date2);
 
 /* qsort-friendly (with a cast...) */
+_GLIB_API
 gint         g_date_compare               (const GDate *lhs,
                                            const GDate *rhs);
+_GLIB_API
 void         g_date_to_struct_tm          (const GDate *date,
                                            struct tm   *tm);
 
+_GLIB_API
 void         g_date_clamp                 (GDate *date,
 					   const GDate *min_date,
 					   const GDate *max_date);
 
 /* Swap date1 and date2's values if date1 > date2. */
+_GLIB_API
 void         g_date_order                 (GDate *date1, GDate *date2);
 
 /* Just like strftime() except you can only use date-related formats.
  *   Using a time format is undefined.
  */
+_GLIB_API
 gsize        g_date_strftime              (gchar       *s,
                                            gsize        slen,
                                            const gchar *format,
diff --git a/glib/gdatetime.h b/glib/gdatetime.h
index 6643e3f..9fe7108 100644
--- a/glib/gdatetime.h
+++ b/glib/gdatetime.h
@@ -98,19 +98,29 @@ typedef gint64 GTimeSpan;
  */
 typedef struct _GDateTime GDateTime;
 
+_GLIB_API
 void                    g_date_time_unref                               (GDateTime      *datetime);
+_GLIB_API
 GDateTime *             g_date_time_ref                                 (GDateTime      *datetime);
 
+_GLIB_API
 GDateTime *             g_date_time_new_now                             (GTimeZone      *tz);
+_GLIB_API
 GDateTime *             g_date_time_new_now_local                       (void);
+_GLIB_API
 GDateTime *             g_date_time_new_now_utc                         (void);
 
+_GLIB_API
 GDateTime *             g_date_time_new_from_unix_local                 (gint64          t);
+_GLIB_API
 GDateTime *             g_date_time_new_from_unix_utc                   (gint64          t);
 
+_GLIB_API
 GDateTime *             g_date_time_new_from_timeval_local              (const GTimeVal *tv);
+_GLIB_API
 GDateTime *             g_date_time_new_from_timeval_utc                (const GTimeVal *tv);
 
+_GLIB_API
 GDateTime *             g_date_time_new                                 (GTimeZone      *tz,
                                                                          gint            year,
                                                                          gint            month,
@@ -118,12 +128,14 @@ GDateTime *             g_date_time_new                                 (GTimeZo
                                                                          gint            hour,
                                                                          gint            minute,
                                                                          gdouble         seconds);
+_GLIB_API
 GDateTime *             g_date_time_new_local                           (gint            year,
                                                                          gint            month,
                                                                          gint            day,
                                                                          gint            hour,
                                                                          gint            minute,
                                                                          gdouble         seconds);
+_GLIB_API
 GDateTime *             g_date_time_new_utc                             (gint            year,
                                                                          gint            month,
                                                                          gint            day,
@@ -131,33 +143,42 @@ GDateTime *             g_date_time_new_utc                             (gint
                                                                          gint            minute,
                                                                          gdouble         seconds);
 
+_GLIB_API
 G_GNUC_WARN_UNUSED_RESULT
 GDateTime *             g_date_time_add                                 (GDateTime      *datetime,
                                                                          GTimeSpan       timespan);
 
+_GLIB_API
 G_GNUC_WARN_UNUSED_RESULT
 GDateTime *             g_date_time_add_years                           (GDateTime      *datetime,
                                                                          gint            years);
+_GLIB_API
 G_GNUC_WARN_UNUSED_RESULT
 GDateTime *             g_date_time_add_months                          (GDateTime      *datetime,
                                                                          gint            months);
+_GLIB_API
 G_GNUC_WARN_UNUSED_RESULT
 GDateTime *             g_date_time_add_weeks                           (GDateTime      *datetime,
                                                                          gint            weeks);
+_GLIB_API
 G_GNUC_WARN_UNUSED_RESULT
 GDateTime *             g_date_time_add_days                            (GDateTime      *datetime,
                                                                          gint            days);
 
+_GLIB_API
 G_GNUC_WARN_UNUSED_RESULT
 GDateTime *             g_date_time_add_hours                           (GDateTime      *datetime,
                                                                          gint            hours);
+_GLIB_API
 G_GNUC_WARN_UNUSED_RESULT
 GDateTime *             g_date_time_add_minutes                         (GDateTime      *datetime,
                                                                          gint            minutes);
+_GLIB_API
 G_GNUC_WARN_UNUSED_RESULT
 GDateTime *             g_date_time_add_seconds                         (GDateTime      *datetime,
                                                                          gdouble         seconds);
 
+_GLIB_API
 G_GNUC_WARN_UNUSED_RESULT
 GDateTime *             g_date_time_add_full                            (GDateTime      *datetime,
                                                                          gint            years,
@@ -167,48 +188,74 @@ GDateTime *             g_date_time_add_full                            (GDateTi
                                                                          gint            minutes,
                                                                          gdouble         seconds);
 
+_GLIB_API
 gint                    g_date_time_compare                             (gconstpointer   dt1,
                                                                          gconstpointer   dt2);
+_GLIB_API
 GTimeSpan               g_date_time_difference                          (GDateTime      *end,
                                                                          GDateTime      *begin);
+_GLIB_API
 guint                   g_date_time_hash                                (gconstpointer   datetime);
+_GLIB_API
 gboolean                g_date_time_equal                               (gconstpointer   dt1,
                                                                          gconstpointer   dt2);
 
+_GLIB_API
 void                    g_date_time_get_ymd                             (GDateTime      *datetime,
                                                                          gint           *year,
                                                                          gint           *month,
                                                                          gint           *day);
 
+_GLIB_API
 gint                    g_date_time_get_year                            (GDateTime      *datetime);
+_GLIB_API
 gint                    g_date_time_get_month                           (GDateTime      *datetime);
+_GLIB_API
 gint                    g_date_time_get_day_of_month                    (GDateTime      *datetime);
 
+_GLIB_API
 gint                    g_date_time_get_week_numbering_year             (GDateTime      *datetime);
+_GLIB_API
 gint                    g_date_time_get_week_of_year                    (GDateTime      *datetime);
+_GLIB_API
 gint                    g_date_time_get_day_of_week                     (GDateTime      *datetime);
 
+_GLIB_API
 gint                    g_date_time_get_day_of_year                     (GDateTime      *datetime);
 
+_GLIB_API
 gint                    g_date_time_get_hour                            (GDateTime      *datetime);
+_GLIB_API
 gint                    g_date_time_get_minute                          (GDateTime      *datetime);
+_GLIB_API
 gint                    g_date_time_get_second                          (GDateTime      *datetime);
+_GLIB_API
 gint                    g_date_time_get_microsecond                     (GDateTime      *datetime);
+_GLIB_API
 gdouble                 g_date_time_get_seconds                         (GDateTime      *datetime);
 
+_GLIB_API
 gint64                  g_date_time_to_unix                             (GDateTime      *datetime);
+_GLIB_API
 gboolean                g_date_time_to_timeval                          (GDateTime      *datetime,
                                                                          GTimeVal       *tv);
 
+_GLIB_API
 GTimeSpan               g_date_time_get_utc_offset                      (GDateTime      *datetime);
+_GLIB_API
 const gchar *           g_date_time_get_timezone_abbreviation           (GDateTime      *datetime);
+_GLIB_API
 gboolean                g_date_time_is_daylight_savings                 (GDateTime      *datetime);
 
+_GLIB_API
 GDateTime *             g_date_time_to_timezone                         (GDateTime      *datetime,
                                                                          GTimeZone      *tz);
+_GLIB_API
 GDateTime *             g_date_time_to_local                            (GDateTime      *datetime);
+_GLIB_API
 GDateTime *             g_date_time_to_utc                              (GDateTime      *datetime);
 
+_GLIB_API
 gchar *                 g_date_time_format                              (GDateTime      *datetime,
                                                                          const gchar    *format) G_GNUC_MALLOC;
 
diff --git a/glib/gdir.h b/glib/gdir.h
index 2e734ac..3142f79 100644
--- a/glib/gdir.h
+++ b/glib/gdir.h
@@ -34,20 +34,26 @@ G_BEGIN_DECLS
 
 typedef struct _GDir GDir;
 
+_GLIB_API
 GDir    *                g_dir_open           (const gchar  *path,
 					       guint         flags,
 					       GError      **error);
+_GLIB_API
 const gchar *            g_dir_read_name      (GDir         *dir);
+_GLIB_API
 void                     g_dir_rewind         (GDir         *dir);
+_GLIB_API
 void                     g_dir_close          (GDir         *dir);
 
 #ifdef G_OS_WIN32
 #define g_dir_open      g_dir_open_utf8
 #define g_dir_read_name g_dir_read_name_utf8
 
+_GLIB_API
 GDir        *g_dir_open_utf8      (const gchar  *path,
                                    guint         flags,
                                    GError      **error);
+_GLIB_API
 const gchar *g_dir_read_name_utf8 (GDir         *dir);
 #endif /* G_OS_WIN32 */
 
diff --git a/glib/genviron.h b/glib/genviron.h
index 2f23b58..fc4ad96 100644
--- a/glib/genviron.h
+++ b/glib/genviron.h
@@ -35,20 +35,28 @@
 
 G_BEGIN_DECLS
 
+_GLIB_API
 const gchar * g_getenv           (const gchar  *variable);
+_GLIB_API
 gboolean      g_setenv           (const gchar  *variable,
                                   const gchar  *value,
                                   gboolean      overwrite);
+_GLIB_API
 void          g_unsetenv         (const gchar  *variable);
+_GLIB_API
 gchar **      g_listenv          (void);
 
+_GLIB_API
 gchar **      g_get_environ      (void);
+_GLIB_API
 const gchar * g_environ_getenv   (gchar       **envp,
                                   const gchar  *variable);
+_GLIB_API
 gchar **      g_environ_setenv   (gchar       **envp,
                                   const gchar  *variable,
                                   const gchar  *value,
                                   gboolean      overwrite) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 gchar **      g_environ_unsetenv (gchar       **envp,
                                   const gchar  *variable) G_GNUC_WARN_UNUSED_RESULT;
 
@@ -57,10 +65,13 @@ gchar **      g_environ_unsetenv (gchar       **envp,
 #define g_setenv   g_setenv_utf8
 #define g_unsetenv g_unsetenv_utf8
 
+_GLIB_API
 const gchar *g_getenv_utf8   (const gchar  *variable);
+_GLIB_API
 gboolean     g_setenv_utf8   (const gchar  *variable,
                               const gchar  *value,
                               gboolean      overwrite);
+_GLIB_API
 void         g_unsetenv_utf8 (const gchar  *variable);
 #endif
 
diff --git a/glib/gerror.h b/glib/gerror.h
index 6eb65fe..8595260 100644
--- a/glib/gerror.h
+++ b/glib/gerror.h
@@ -49,22 +49,28 @@ struct _GError
   gchar       *message;
 };
 
+_GLIB_API
 GError*  g_error_new           (GQuark         domain,
                                 gint           code,
                                 const gchar   *format,
                                 ...) G_GNUC_PRINTF (3, 4);
 
+_GLIB_API
 GError*  g_error_new_literal   (GQuark         domain,
                                 gint           code,
                                 const gchar   *message);
+_GLIB_API
 GError*  g_error_new_valist    (GQuark         domain,
                                 gint           code,
                                 const gchar   *format,
                                 va_list        args);
 
+_GLIB_API
 void     g_error_free          (GError        *error);
+_GLIB_API
 GError*  g_error_copy          (const GError  *error);
 
+_GLIB_API
 gboolean g_error_matches       (const GError  *error,
                                 GQuark         domain,
                                 gint           code);
@@ -72,12 +78,14 @@ gboolean g_error_matches       (const GError  *error,
 /* if (err) *err = g_error_new(domain, code, format, ...), also has
  * some sanity checks.
  */
+_GLIB_API
 void     g_set_error           (GError       **err,
                                 GQuark         domain,
                                 gint           code,
                                 const gchar   *format,
                                 ...) G_GNUC_PRINTF (4, 5);
 
+_GLIB_API
 void     g_set_error_literal   (GError       **err,
                                 GQuark         domain,
                                 gint           code,
@@ -85,18 +93,22 @@ void     g_set_error_literal   (GError       **err,
 
 /* if (dest) *dest = src; also has some sanity checks.
  */
+_GLIB_API
 void     g_propagate_error     (GError       **dest,
 				GError        *src);
 
 /* if (err && *err) { g_error_free(*err); *err = NULL; } */
+_GLIB_API
 void     g_clear_error         (GError       **err);
 
 /* if (err) prefix the formatted string to the ->message */
+_GLIB_API
 void     g_prefix_error               (GError       **err,
                                        const gchar   *format,
                                        ...) G_GNUC_PRINTF (2, 3);
 
 /* g_propagate_error then g_error_prefix on dest */
+_GLIB_API
 void     g_propagate_prefixed_error   (GError       **dest,
                                        GError        *src,
                                        const gchar   *format,
diff --git a/glib/gfileutils.h b/glib/gfileutils.h
index 17b2acb..45bb352 100644
--- a/glib/gfileutils.h
+++ b/glib/gfileutils.h
@@ -73,20 +73,26 @@ typedef enum
   G_FILE_TEST_EXISTS        = 1 << 4
 } GFileTest;
 
+_GLIB_API
 GQuark     g_file_error_quark      (void);
 /* So other code can generate a GFileError */
+_GLIB_API
 GFileError g_file_error_from_errno (gint err_no);
 
+_GLIB_API
 gboolean g_file_test         (const gchar  *filename,
                               GFileTest     test);
+_GLIB_API
 gboolean g_file_get_contents (const gchar  *filename,
                               gchar       **contents,
                               gsize        *length,
                               GError      **error);
+_GLIB_API
 gboolean g_file_set_contents (const gchar *filename,
                               const gchar *contents,
                               gssize         length,
                               GError       **error);
+_GLIB_API
 gchar   *g_file_read_link    (const gchar  *filename,
                               GError      **error);
 
@@ -98,12 +104,15 @@ gchar   *g_mkdtemp_full       (gchar        *tmpl,
                                gint          mode);
 
 /* Wrapper / workalike for mkstemp() */
+_GLIB_API
 gint     g_mkstemp            (gchar        *tmpl);
+_GLIB_API
 gint     g_mkstemp_full       (gchar        *tmpl,
                                gint          flags,
                                gint          mode);
 
 /* Wrappers for g_mkstemp and g_mkdtemp() */
+_GLIB_API
 gint     g_file_open_tmp      (const gchar  *tmpl,
                                gchar       **name_used,
                                GError      **error);
@@ -111,16 +120,21 @@ GLIB_AVAILABLE_IN_2_30
 gchar   *g_dir_make_tmp       (const gchar  *tmpl,
                                GError      **error);
 
+_GLIB_API
 gchar   *g_build_path         (const gchar *separator,
                                const gchar *first_element,
                                ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
+_GLIB_API
 gchar   *g_build_pathv        (const gchar  *separator,
                                gchar       **args) G_GNUC_MALLOC;
 
+_GLIB_API
 gchar   *g_build_filename     (const gchar *first_element,
                                ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
+_GLIB_API
 gchar   *g_build_filenamev    (gchar      **args) G_GNUC_MALLOC;
 
+_GLIB_API
 gint     g_mkdir_with_parents (const gchar *pathname,
                                gint         mode);
 
@@ -146,7 +160,9 @@ gint     g_mkdir_with_parents (const gchar *pathname,
 
 #endif /* !G_OS_WIN32 */
 
+_GLIB_API
 gboolean     g_path_is_absolute (const gchar *file_name);
+_GLIB_API
 const gchar *g_path_skip_root   (const gchar *file_name);
 
 GLIB_DEPRECATED_FOR(g_path_get_basename)
@@ -155,8 +171,11 @@ const gchar *g_basename         (const gchar *file_name);
 #define g_dirname g_path_get_dirname
 #endif
 
+_GLIB_API
 gchar *g_get_current_dir   (void);
+_GLIB_API
 gchar *g_path_get_basename (const gchar *file_name) G_GNUC_MALLOC;
+_GLIB_API
 gchar *g_path_get_dirname  (const gchar *file_name) G_GNUC_MALLOC;
 
 #ifdef G_OS_WIN32
@@ -166,16 +185,21 @@ gchar *g_path_get_dirname  (const gchar *file_name) G_GNUC_MALLOC;
 #define g_file_open_tmp     g_file_open_tmp_utf8
 #define g_get_current_dir   g_get_current_dir_utf8
 
+_GLIB_API
 gboolean g_file_test_utf8         (const gchar  *filename,
                                    GFileTest     test);
+_GLIB_API
 gboolean g_file_get_contents_utf8 (const gchar  *filename,
                                    gchar       **contents,
                                    gsize        *length,
                                    GError      **error);
+_GLIB_API
 gint     g_mkstemp_utf8           (gchar        *tmpl);
+_GLIB_API
 gint     g_file_open_tmp_utf8     (const gchar  *tmpl,
                                    gchar       **name_used,
                                    GError      **error);
+_GLIB_API
 gchar   *g_get_current_dir_utf8   (void);
 #endif /* G_OS_WIN32 */
 
diff --git a/glib/ggettext.h b/glib/ggettext.h
index 54bbaa8..f42b3f9 100644
--- a/glib/ggettext.h
+++ b/glib/ggettext.h
@@ -35,21 +35,27 @@
 
 G_BEGIN_DECLS
 
+_GLIB_API
 const gchar *g_strip_context (const gchar *msgid,
                               const gchar *msgval) G_GNUC_FORMAT(1);
 
+_GLIB_API
 const gchar *g_dgettext      (const gchar *domain,
                               const gchar *msgid) G_GNUC_FORMAT(2);
+_GLIB_API
 const gchar *g_dcgettext     (const gchar *domain,
                               const gchar *msgid,
                               gint         category) G_GNUC_FORMAT(2);
+_GLIB_API
 const gchar *g_dngettext     (const gchar *domain,
                               const gchar *msgid,
                               const gchar *msgid_plural,
                               gulong       n) G_GNUC_FORMAT(3);
+_GLIB_API
 const gchar *g_dpgettext     (const gchar *domain,
                               const gchar *msgctxtid,
                               gsize        msgidoffset) G_GNUC_FORMAT(2);
+_GLIB_API
 const gchar *g_dpgettext2    (const gchar *domain,
                               const gchar *context,
                               const gchar *msgid) G_GNUC_FORMAT(3);
diff --git a/glib/ghash.h b/glib/ghash.h
index 3eb8912..18ae660 100644
--- a/glib/ghash.h
+++ b/glib/ghash.h
@@ -55,64 +55,91 @@ struct _GHashTableIter
   gpointer      dummy6;
 };
 
+_GLIB_API
 GHashTable* g_hash_table_new               (GHashFunc       hash_func,
                                             GEqualFunc      key_equal_func);
+_GLIB_API
 GHashTable* g_hash_table_new_full          (GHashFunc       hash_func,
                                             GEqualFunc      key_equal_func,
                                             GDestroyNotify  key_destroy_func,
                                             GDestroyNotify  value_destroy_func);
+_GLIB_API
 void        g_hash_table_destroy           (GHashTable     *hash_table);
+_GLIB_API
 void        g_hash_table_insert            (GHashTable     *hash_table,
                                             gpointer        key,
                                             gpointer        value);
+_GLIB_API
 void        g_hash_table_replace           (GHashTable     *hash_table,
                                             gpointer        key,
                                             gpointer        value);
+_GLIB_API
 void        g_hash_table_add               (GHashTable     *hash_table,
                                             gpointer        key);
+_GLIB_API
 gboolean    g_hash_table_remove            (GHashTable     *hash_table,
                                             gconstpointer   key);
+_GLIB_API
 void        g_hash_table_remove_all        (GHashTable     *hash_table);
+_GLIB_API
 gboolean    g_hash_table_steal             (GHashTable     *hash_table,
                                             gconstpointer   key);
+_GLIB_API
 void        g_hash_table_steal_all         (GHashTable     *hash_table);
+_GLIB_API
 gpointer    g_hash_table_lookup            (GHashTable     *hash_table,
                                             gconstpointer   key);
+_GLIB_API
 gboolean    g_hash_table_contains          (GHashTable     *hash_table,
                                             gconstpointer   key);
+_GLIB_API
 gboolean    g_hash_table_lookup_extended   (GHashTable     *hash_table,
                                             gconstpointer   lookup_key,
                                             gpointer       *orig_key,
                                             gpointer       *value);
+_GLIB_API
 void        g_hash_table_foreach           (GHashTable     *hash_table,
                                             GHFunc          func,
                                             gpointer        user_data);
+_GLIB_API
 gpointer    g_hash_table_find              (GHashTable     *hash_table,
                                             GHRFunc         predicate,
                                             gpointer        user_data);
+_GLIB_API
 guint       g_hash_table_foreach_remove    (GHashTable     *hash_table,
                                             GHRFunc         func,
                                             gpointer        user_data);
+_GLIB_API
 guint       g_hash_table_foreach_steal     (GHashTable     *hash_table,
                                             GHRFunc         func,
                                             gpointer        user_data);
+_GLIB_API
 guint       g_hash_table_size              (GHashTable     *hash_table);
+_GLIB_API
 GList *     g_hash_table_get_keys          (GHashTable     *hash_table);
+_GLIB_API
 GList *     g_hash_table_get_values        (GHashTable     *hash_table);
 
+_GLIB_API
 void        g_hash_table_iter_init         (GHashTableIter *iter,
                                             GHashTable     *hash_table);
+_GLIB_API
 gboolean    g_hash_table_iter_next         (GHashTableIter *iter,
                                             gpointer       *key,
                                             gpointer       *value);
+_GLIB_API
 GHashTable* g_hash_table_iter_get_hash_table (GHashTableIter *iter);
+_GLIB_API
 void        g_hash_table_iter_remove       (GHashTableIter *iter);
 GLIB_AVAILABLE_IN_2_30
 void        g_hash_table_iter_replace      (GHashTableIter *iter,
                                             gpointer        value);
+_GLIB_API
 void        g_hash_table_iter_steal        (GHashTableIter *iter);
 
+_GLIB_API
 GHashTable* g_hash_table_ref               (GHashTable     *hash_table);
+_GLIB_API
 void        g_hash_table_unref             (GHashTable     *hash_table);
 
 #ifndef G_DISABLE_DEPRECATED
@@ -122,23 +149,33 @@ void        g_hash_table_unref             (GHashTable     *hash_table);
 
 /* Hash Functions
  */
+_GLIB_API
 gboolean g_str_equal    (gconstpointer  v1,
                          gconstpointer  v2);
+_GLIB_API
 guint    g_str_hash     (gconstpointer  v);
 
+_GLIB_API
 gboolean g_int_equal    (gconstpointer  v1,
                          gconstpointer  v2);
+_GLIB_API
 guint    g_int_hash     (gconstpointer  v);
 
+_GLIB_API
 gboolean g_int64_equal  (gconstpointer  v1,
                          gconstpointer  v2);
+_GLIB_API
 guint    g_int64_hash   (gconstpointer  v);
 
+_GLIB_API
 gboolean g_double_equal (gconstpointer  v1,
                          gconstpointer  v2);
+_GLIB_API
 guint    g_double_hash  (gconstpointer  v);
 
+_GLIB_API
 guint    g_direct_hash  (gconstpointer  v) G_GNUC_CONST;
+_GLIB_API
 gboolean g_direct_equal (gconstpointer  v1,
                          gconstpointer  v2) G_GNUC_CONST;
 
diff --git a/glib/ghook.h b/glib/ghook.h
index e7292ea..badb23f 100644
--- a/glib/ghook.h
+++ b/glib/ghook.h
@@ -103,54 +103,73 @@ struct _GHook
 
 /* --- prototypes --- */
 /* callback maintenance functions */
+_GLIB_API
 void	 g_hook_list_init		(GHookList		*hook_list,
 					 guint			 hook_size);
+_GLIB_API
 void	 g_hook_list_clear		(GHookList		*hook_list);
+_GLIB_API
 GHook*	 g_hook_alloc			(GHookList		*hook_list);
+_GLIB_API
 void	 g_hook_free			(GHookList		*hook_list,
 					 GHook			*hook);
+_GLIB_API
 GHook *	 g_hook_ref			(GHookList		*hook_list,
 					 GHook			*hook);
+_GLIB_API
 void	 g_hook_unref			(GHookList		*hook_list,
 					 GHook			*hook);
+_GLIB_API
 gboolean g_hook_destroy			(GHookList		*hook_list,
 					 gulong			 hook_id);
+_GLIB_API
 void	 g_hook_destroy_link		(GHookList		*hook_list,
 					 GHook			*hook);
+_GLIB_API
 void	 g_hook_prepend			(GHookList		*hook_list,
 					 GHook			*hook);
+_GLIB_API
 void	 g_hook_insert_before		(GHookList		*hook_list,
 					 GHook			*sibling,
 					 GHook			*hook);
+_GLIB_API
 void	 g_hook_insert_sorted		(GHookList		*hook_list,
 					 GHook			*hook,
 					 GHookCompareFunc	 func);
+_GLIB_API
 GHook*	 g_hook_get			(GHookList		*hook_list,
 					 gulong			 hook_id);
+_GLIB_API
 GHook*	 g_hook_find			(GHookList		*hook_list,
 					 gboolean		 need_valids,
 					 GHookFindFunc		 func,
 					 gpointer		 data);
+_GLIB_API
 GHook*	 g_hook_find_data		(GHookList		*hook_list,
 					 gboolean		 need_valids,
 					 gpointer		 data);
+_GLIB_API
 GHook*	 g_hook_find_func		(GHookList		*hook_list,
 					 gboolean		 need_valids,
 					 gpointer		 func);
+_GLIB_API
 GHook*	 g_hook_find_func_data		(GHookList		*hook_list,
 					 gboolean		 need_valids,
 					 gpointer		 func,
 					 gpointer		 data);
 /* return the first valid hook, and increment its reference count */
+_GLIB_API
 GHook*	 g_hook_first_valid		(GHookList		*hook_list,
 					 gboolean		 may_be_in_call);
 /* return the next valid hook with incremented reference count, and
  * decrement the reference count of the original hook
  */
+_GLIB_API
 GHook*	 g_hook_next_valid		(GHookList		*hook_list,
 					 GHook			*hook,
 					 gboolean		 may_be_in_call);
 /* GHookCompareFunc implementation to insert hooks sorted by their id */
+_GLIB_API
 gint	 g_hook_compare_ids		(GHook			*new_hook,
 					 GHook			*sibling);
 /* convenience macros */
@@ -158,19 +177,23 @@ gint	 g_hook_compare_ids		(GHook			*new_hook,
      g_hook_insert_before ((hook_list), NULL, (hook))
 /* invoke all valid hooks with the (*GHookFunc) signature.
  */
+_GLIB_API
 void	 g_hook_list_invoke		(GHookList		*hook_list,
 					 gboolean		 may_recurse);
 /* invoke all valid hooks with the (*GHookCheckFunc) signature,
  * and destroy the hook if FALSE is returned.
  */
+_GLIB_API
 void	 g_hook_list_invoke_check	(GHookList		*hook_list,
 					 gboolean		 may_recurse);
 /* invoke a marshaller on all valid hooks.
  */
+_GLIB_API
 void	 g_hook_list_marshal		(GHookList		*hook_list,
 					 gboolean		 may_recurse,
 					 GHookMarshaller	 marshaller,
 					 gpointer		 marshal_data);
+_GLIB_API
 void	 g_hook_list_marshal_check	(GHookList		*hook_list,
 					 gboolean		 may_recurse,
 					 GHookCheckMarshaller	 marshaller,
diff --git a/glib/ghostutils.h b/glib/ghostutils.h
index 0349da3..e496fe3 100644
--- a/glib/ghostutils.h
+++ b/glib/ghostutils.h
@@ -28,11 +28,16 @@
 
 G_BEGIN_DECLS
 
+_GLIB_API
 gboolean  g_hostname_is_non_ascii     (const gchar *hostname);
+_GLIB_API
 gboolean  g_hostname_is_ascii_encoded (const gchar *hostname);
+_GLIB_API
 gboolean  g_hostname_is_ip_address    (const gchar *hostname);
 
+_GLIB_API
 gchar    *g_hostname_to_ascii         (const gchar *hostname);
+_GLIB_API
 gchar    *g_hostname_to_unicode       (const gchar *hostname);
 
 G_END_DECLS
diff --git a/glib/giochannel.h b/glib/giochannel.h
index 013ee19..9a3178a 100644
--- a/glib/giochannel.h
+++ b/glib/giochannel.h
@@ -169,8 +169,11 @@ struct _GIOFuncs
   GIOFlags   (*io_get_flags)     (GIOChannel   *channel);
 };
 
+_GLIB_API
 void        g_io_channel_init   (GIOChannel    *channel);
+_GLIB_API
 GIOChannel *g_io_channel_ref    (GIOChannel    *channel);
+_GLIB_API
 void        g_io_channel_unref  (GIOChannel    *channel);
 
 GLIB_DEPRECATED_FOR(g_io_channel_read_for)
@@ -193,17 +196,21 @@ GIOError  g_io_channel_seek     (GIOChannel    *channel,
 GLIB_DEPRECATED_FOR(g_io_channel_shutdown)
 void      g_io_channel_close    (GIOChannel    *channel);
 
+_GLIB_API
 GIOStatus g_io_channel_shutdown (GIOChannel      *channel,
 				 gboolean         flush,
 				 GError         **err);
+_GLIB_API
 guint     g_io_add_watch_full   (GIOChannel      *channel,
 				 gint             priority,
 				 GIOCondition     condition,
 				 GIOFunc          func,
 				 gpointer         user_data,
 				 GDestroyNotify   notify);
+_GLIB_API
 GSource * g_io_create_watch     (GIOChannel      *channel,
 				 GIOCondition     condition);
+_GLIB_API
 guint     g_io_add_watch        (GIOChannel      *channel,
 				 GIOCondition     condition,
 				 GIOFunc          func,
@@ -212,73 +219,98 @@ guint     g_io_add_watch        (GIOChannel      *channel,
 /* character encoding conversion involved functions.
  */
 
+_GLIB_API
 void                  g_io_channel_set_buffer_size      (GIOChannel   *channel,
 							 gsize         size);
+_GLIB_API
 gsize                 g_io_channel_get_buffer_size      (GIOChannel   *channel);
+_GLIB_API
 GIOCondition          g_io_channel_get_buffer_condition (GIOChannel   *channel);
+_GLIB_API
 GIOStatus             g_io_channel_set_flags            (GIOChannel   *channel,
 							 GIOFlags      flags,
 							 GError      **error);
+_GLIB_API
 GIOFlags              g_io_channel_get_flags            (GIOChannel   *channel);
+_GLIB_API
 void                  g_io_channel_set_line_term        (GIOChannel   *channel,
 							 const gchar  *line_term,
 							 gint          length);
+_GLIB_API
 const gchar *         g_io_channel_get_line_term        (GIOChannel   *channel,
 							 gint         *length);
+_GLIB_API
 void		      g_io_channel_set_buffered		(GIOChannel   *channel,
 							 gboolean      buffered);
+_GLIB_API
 gboolean	      g_io_channel_get_buffered		(GIOChannel   *channel);
+_GLIB_API
 GIOStatus             g_io_channel_set_encoding         (GIOChannel   *channel,
 							 const gchar  *encoding,
 							 GError      **error);
+_GLIB_API
 const gchar *         g_io_channel_get_encoding         (GIOChannel   *channel);
+_GLIB_API
 void                  g_io_channel_set_close_on_unref	(GIOChannel   *channel,
 							 gboolean      do_close);
+_GLIB_API
 gboolean              g_io_channel_get_close_on_unref	(GIOChannel   *channel);
 
 
+_GLIB_API
 GIOStatus   g_io_channel_flush            (GIOChannel   *channel,
 					   GError      **error);
+_GLIB_API
 GIOStatus   g_io_channel_read_line        (GIOChannel   *channel,
 					   gchar       **str_return,
 					   gsize        *length,
 					   gsize        *terminator_pos,
 					   GError      **error);
+_GLIB_API
 GIOStatus   g_io_channel_read_line_string (GIOChannel   *channel,
 					   GString      *buffer,
 					   gsize        *terminator_pos,
 					   GError      **error);
+_GLIB_API
 GIOStatus   g_io_channel_read_to_end      (GIOChannel   *channel,
 					   gchar       **str_return,
 					   gsize        *length,
 					   GError      **error);
+_GLIB_API
 GIOStatus   g_io_channel_read_chars       (GIOChannel   *channel,
 					   gchar        *buf,
 					   gsize         count,
 					   gsize        *bytes_read,
 					   GError      **error);
+_GLIB_API
 GIOStatus   g_io_channel_read_unichar     (GIOChannel   *channel,
 					   gunichar     *thechar,
 					   GError      **error);
+_GLIB_API
 GIOStatus   g_io_channel_write_chars      (GIOChannel   *channel,
 					   const gchar  *buf,
 					   gssize        count,
 					   gsize        *bytes_written,
 					   GError      **error);
+_GLIB_API
 GIOStatus   g_io_channel_write_unichar    (GIOChannel   *channel,
 					   gunichar      thechar,
 					   GError      **error);
+_GLIB_API
 GIOStatus   g_io_channel_seek_position    (GIOChannel   *channel,
 					   gint64        offset,
 					   GSeekType     type,
 					   GError      **error);
+_GLIB_API
 GIOChannel* g_io_channel_new_file         (const gchar  *filename,
 					   const gchar  *mode,
 					   GError      **error);
 
 /* Error handling */
 
+_GLIB_API
 GQuark          g_io_channel_error_quark      (void);
+_GLIB_API
 GIOChannelError g_io_channel_error_from_errno (gint en);
 
 /* On Unix, IO channels created with this function for any file
@@ -299,7 +331,9 @@ GIOChannelError g_io_channel_error_from_errno (gint en);
  * corresponding concept is file HANDLE. There isn't as of yet a way to
  * get GIOChannels for Win32 file HANDLEs.
  */
+_GLIB_API
 GIOChannel* g_io_channel_unix_new    (int         fd);
+_GLIB_API
 gint        g_io_channel_unix_get_fd (GIOChannel *channel);
 
 
@@ -320,6 +354,7 @@ GLIB_VAR GSourceFuncs g_io_watch_funcs;
  * from the underlying file descriptor. For SOCKETs, it is possible to call
  * recv().
  */
+_GLIB_API
 void        g_io_channel_win32_make_pollfd (GIOChannel   *channel,
 					    GIOCondition  condition,
 					    GPollFD      *fd);
@@ -327,6 +362,7 @@ void        g_io_channel_win32_make_pollfd (GIOChannel   *channel,
 /* This can be used to wait a until at least one of the channels is readable.
  * On Unix you would do a select() on the file descriptors of the channels.
  */
+_GLIB_API
 gint        g_io_channel_win32_poll   (GPollFD    *fds,
 				       gint        n_fds,
 				       gint        timeout_);
@@ -337,8 +373,10 @@ gint        g_io_channel_win32_poll   (GPollFD    *fds,
  * pointer, like the guint in the traditional prototype. We can't use
  * intptr_t as that is not portable enough.
  */
+_GLIB_API
 GIOChannel *g_io_channel_win32_new_messages (gsize hwnd);
 #else
+_GLIB_API
 GIOChannel *g_io_channel_win32_new_messages (guint hwnd);
 #endif
 
@@ -351,9 +389,11 @@ GIOChannel *g_io_channel_win32_new_messages (guint hwnd);
  * the file descriptor should be done by this internal GLib
  * thread. Your code should call only g_io_channel_read_chars().
  */
+_GLIB_API
 GIOChannel* g_io_channel_win32_new_fd (gint         fd);
 
 /* Get the C runtime file descriptor of a channel. */
+_GLIB_API
 gint        g_io_channel_win32_get_fd (GIOChannel *channel);
 
 /* Create an IO channel for a winsock socket. The parameter should be
@@ -361,11 +401,13 @@ gint        g_io_channel_win32_get_fd (GIOChannel *channel);
  * you can use normal recv() or recvfrom() on sockets even if GLib
  * is polling them.
  */
+_GLIB_API
 GIOChannel *g_io_channel_win32_new_socket (gint socket);
 
 GLIB_DEPRECATED_FOR(g_io_channel_win32_new_socket)
 GIOChannel *g_io_channel_win32_new_stream_socket (gint socket);
 
+_GLIB_API
 void        g_io_channel_win32_set_debug (GIOChannel *channel,
                                           gboolean    flag);
 
@@ -374,6 +416,7 @@ void        g_io_channel_win32_set_debug (GIOChannel *channel,
 #ifdef G_OS_WIN32
 #define g_io_channel_new_file g_io_channel_new_file_utf8
 
+_GLIB_API
 GIOChannel *g_io_channel_new_file_utf8 (const gchar  *filename,
                                         const gchar  *mode,
                                         GError      **error);
diff --git a/glib/gkeyfile.h b/glib/gkeyfile.h
index 998bb7a..a483627 100644
--- a/glib/gkeyfile.h
+++ b/glib/gkeyfile.h
@@ -43,6 +43,7 @@ typedef enum
 
 #define G_KEY_FILE_ERROR g_key_file_error_quark()
 
+_GLIB_API
 GQuark g_key_file_error_quark (void);
 
 typedef struct _GKeyFile GKeyFile;
@@ -54,184 +55,230 @@ typedef enum
   G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1
 } GKeyFileFlags;
 
+_GLIB_API
 GKeyFile *g_key_file_new                    (void);
+_GLIB_API
 GKeyFile *g_key_file_ref                    (GKeyFile             *key_file);
+_GLIB_API
 void      g_key_file_unref                  (GKeyFile             *key_file);
+_GLIB_API
 void      g_key_file_free                   (GKeyFile             *key_file);
+_GLIB_API
 void      g_key_file_set_list_separator     (GKeyFile             *key_file,
 					     gchar                 separator);
+_GLIB_API
 gboolean  g_key_file_load_from_file         (GKeyFile             *key_file,
 					     const gchar          *file,
 					     GKeyFileFlags         flags,
 					     GError              **error);
+_GLIB_API
 gboolean  g_key_file_load_from_data         (GKeyFile             *key_file,
 					     const gchar          *data,
 					     gsize                 length,
 					     GKeyFileFlags         flags,
 					     GError              **error);
+_GLIB_API
 gboolean g_key_file_load_from_dirs          (GKeyFile             *key_file,
 					     const gchar	  *file,
 					     const gchar	 **search_dirs,
 					     gchar		 **full_path,
 					     GKeyFileFlags         flags,
 					     GError              **error);
+_GLIB_API
 gboolean g_key_file_load_from_data_dirs     (GKeyFile             *key_file,
 					     const gchar          *file,
 					     gchar               **full_path,
 					     GKeyFileFlags         flags,
 					     GError              **error);
+_GLIB_API
 gchar    *g_key_file_to_data                (GKeyFile             *key_file,
 					     gsize                *length,
 					     GError              **error) G_GNUC_MALLOC;
+_GLIB_API
 gchar    *g_key_file_get_start_group        (GKeyFile             *key_file) G_GNUC_MALLOC;
+_GLIB_API
 gchar   **g_key_file_get_groups             (GKeyFile             *key_file,
 					     gsize                *length) G_GNUC_MALLOC;
+_GLIB_API
 gchar   **g_key_file_get_keys               (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     gsize                *length,
 					     GError              **error) G_GNUC_MALLOC;
+_GLIB_API
 gboolean  g_key_file_has_group              (GKeyFile             *key_file,
 					     const gchar          *group_name);
+_GLIB_API
 gboolean  g_key_file_has_key                (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     GError              **error);
+_GLIB_API
 gchar    *g_key_file_get_value              (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     GError              **error) G_GNUC_MALLOC;
+_GLIB_API
 void      g_key_file_set_value              (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     const gchar          *value);
+_GLIB_API
 gchar    *g_key_file_get_string             (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     GError              **error) G_GNUC_MALLOC;
+_GLIB_API
 void      g_key_file_set_string             (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     const gchar          *string);
+_GLIB_API
 gchar    *g_key_file_get_locale_string      (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     const gchar          *locale,
 					     GError              **error) G_GNUC_MALLOC;
+_GLIB_API
 void      g_key_file_set_locale_string      (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     const gchar          *locale,
 					     const gchar          *string);
+_GLIB_API
 gboolean  g_key_file_get_boolean            (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     GError              **error);
+_GLIB_API
 void      g_key_file_set_boolean            (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     gboolean              value);
+_GLIB_API
 gint      g_key_file_get_integer            (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     GError              **error);
+_GLIB_API
 void      g_key_file_set_integer            (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     gint                  value);
+_GLIB_API
 gint64    g_key_file_get_int64              (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     GError              **error);
+_GLIB_API
 void      g_key_file_set_int64              (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     gint64                value);
+_GLIB_API
 guint64   g_key_file_get_uint64             (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     GError              **error);
+_GLIB_API
 void      g_key_file_set_uint64             (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     guint64               value);
+_GLIB_API
 gdouble   g_key_file_get_double             (GKeyFile             *key_file,
                                              const gchar          *group_name,
                                              const gchar          *key,
                                              GError              **error);
+_GLIB_API
 void      g_key_file_set_double             (GKeyFile             *key_file,
                                              const gchar          *group_name,
                                              const gchar          *key,
                                              gdouble               value);
+_GLIB_API
 gchar   **g_key_file_get_string_list        (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     gsize                *length,
 					     GError              **error) G_GNUC_MALLOC;
+_GLIB_API
 void      g_key_file_set_string_list        (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     const gchar * const   list[],
 					     gsize                 length);
+_GLIB_API
 gchar   **g_key_file_get_locale_string_list (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     const gchar          *locale,
 					     gsize                *length,
 					     GError              **error) G_GNUC_MALLOC;
+_GLIB_API
 void      g_key_file_set_locale_string_list (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     const gchar          *locale,
 					     const gchar * const   list[],
 					     gsize                 length);
+_GLIB_API
 gboolean *g_key_file_get_boolean_list       (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     gsize                *length,
 					     GError              **error) G_GNUC_MALLOC;
+_GLIB_API
 void      g_key_file_set_boolean_list       (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     gboolean              list[],
 					     gsize                 length);
+_GLIB_API
 gint     *g_key_file_get_integer_list       (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     gsize                *length,
 					     GError              **error) G_GNUC_MALLOC;
+_GLIB_API
 void      g_key_file_set_double_list        (GKeyFile             *key_file,
                                              const gchar          *group_name,
                                              const gchar          *key,
                                              gdouble               list[],
                                              gsize                 length);
+_GLIB_API
 gdouble  *g_key_file_get_double_list        (GKeyFile             *key_file,
                                              const gchar          *group_name,
                                              const gchar          *key,
                                              gsize                *length,
                                              GError              **error) G_GNUC_MALLOC;
+_GLIB_API
 void      g_key_file_set_integer_list       (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     gint                  list[],
 					     gsize                 length);
+_GLIB_API
 gboolean  g_key_file_set_comment            (GKeyFile             *key_file,
                                              const gchar          *group_name,
                                              const gchar          *key,
                                              const gchar          *comment,
                                              GError              **error);
+_GLIB_API
 gchar    *g_key_file_get_comment            (GKeyFile             *key_file,
                                              const gchar          *group_name,
                                              const gchar          *key,
                                              GError              **error) G_GNUC_MALLOC;
 
+_GLIB_API
 gboolean  g_key_file_remove_comment         (GKeyFile             *key_file,
                                              const gchar          *group_name,
                                              const gchar          *key,
 					     GError              **error);
+_GLIB_API
 gboolean  g_key_file_remove_key             (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     const gchar          *key,
 					     GError              **error);
+_GLIB_API
 gboolean  g_key_file_remove_group           (GKeyFile             *key_file,
 					     const gchar          *group_name,
 					     GError              **error);
diff --git a/glib/glib-private.h b/glib/glib-private.h
index f4388ed..7f47e6f 100644
--- a/glib/glib-private.h
+++ b/glib/glib-private.h
@@ -54,6 +54,7 @@ typedef struct {
   /* Add other private functions here, initialize them in glib-private.c */
 } GLibPrivateVTable;
 
+_GLIB_API
 GLibPrivateVTable *glib__private__ (void);
 
 #endif /* __G_MAIN_H__ */
diff --git a/glib/glibintl.h b/glib/glibintl.h
index 507e1c3..dde92c1 100644
--- a/glib/glibintl.h
+++ b/glib/glibintl.h
@@ -5,7 +5,9 @@
 #error "config.h must be included prior to glibintl.h"
 #endif
 
+_GLIB_API
 const gchar * glib_gettext  (const gchar *str) G_GNUC_FORMAT(1);
+_GLIB_API
 const gchar * glib_pgettext (const gchar *msgctxtid,
                              gsize        msgidoffset) G_GNUC_FORMAT(1);
 
diff --git a/glib/glist.h b/glib/glist.h
index 44cfcc0..13cfefb 100644
--- a/glib/glist.h
+++ b/glib/glist.h
@@ -47,40 +47,57 @@ struct _GList
 
 /* Doubly linked lists
  */
+_GLIB_API
 GList*   g_list_alloc                   (void) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 void     g_list_free                    (GList            *list);
+_GLIB_API
 void     g_list_free_1                  (GList            *list);
 #define  g_list_free1                   g_list_free_1
+_GLIB_API
 void     g_list_free_full               (GList            *list,
 					 GDestroyNotify    free_func);
+_GLIB_API
 GList*   g_list_append                  (GList            *list,
 					 gpointer          data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_prepend                 (GList            *list,
 					 gpointer          data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_insert                  (GList            *list,
 					 gpointer          data,
 					 gint              position) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_insert_sorted           (GList            *list,
 					 gpointer          data,
 					 GCompareFunc      func) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_insert_sorted_with_data (GList            *list,
 					 gpointer          data,
 					 GCompareDataFunc  func,
 					 gpointer          user_data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_insert_before           (GList            *list,
 					 GList            *sibling,
 					 gpointer          data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_concat                  (GList            *list1,
 					 GList            *list2) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_remove                  (GList            *list,
 					 gconstpointer     data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_remove_all              (GList            *list,
 					 gconstpointer     data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_remove_link             (GList            *list,
 					 GList            *llink) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_delete_link             (GList            *list,
 					 GList            *link_) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_reverse                 (GList            *list) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_copy                    (GList            *list) G_GNUC_WARN_UNUSED_RESULT;
 
 GLIB_AVAILABLE_IN_2_34
@@ -88,30 +105,43 @@ GList*   g_list_copy_deep               (GList            *list,
 					 GCopyFunc         func,
 					 gpointer          user_data) G_GNUC_WARN_UNUSED_RESULT;
 
+_GLIB_API
 GList*   g_list_nth                     (GList            *list,
 					 guint             n);
+_GLIB_API
 GList*   g_list_nth_prev                (GList            *list,
 					 guint             n);
+_GLIB_API
 GList*   g_list_find                    (GList            *list,
 					 gconstpointer     data);
+_GLIB_API
 GList*   g_list_find_custom             (GList            *list,
 					 gconstpointer     data,
 					 GCompareFunc      func);
+_GLIB_API
 gint     g_list_position                (GList            *list,
 					 GList            *llink);
+_GLIB_API
 gint     g_list_index                   (GList            *list,
 					 gconstpointer     data);
+_GLIB_API
 GList*   g_list_last                    (GList            *list);
+_GLIB_API
 GList*   g_list_first                   (GList            *list);
+_GLIB_API
 guint    g_list_length                  (GList            *list);
+_GLIB_API
 void     g_list_foreach                 (GList            *list,
 					 GFunc             func,
 					 gpointer          user_data);
+_GLIB_API
 GList*   g_list_sort                    (GList            *list,
 					 GCompareFunc      compare_func) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GList*   g_list_sort_with_data          (GList            *list,
 					 GCompareDataFunc  compare_func,
 					 gpointer          user_data)  G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 gpointer g_list_nth_data                (GList            *list,
 					 guint             n);
 
diff --git a/glib/gmain.h b/glib/gmain.h
index 4d4d504..9066c58 100644
--- a/glib/gmain.h
+++ b/glib/gmain.h
@@ -284,130 +284,187 @@ struct _GSourceFuncs
 
 /* GMainContext: */
 
+_GLIB_API
 GMainContext *g_main_context_new       (void);
+_GLIB_API
 GMainContext *g_main_context_ref       (GMainContext *context);
+_GLIB_API
 void          g_main_context_unref     (GMainContext *context);
+_GLIB_API
 GMainContext *g_main_context_default   (void);
 
+_GLIB_API
 gboolean      g_main_context_iteration (GMainContext *context,
                                         gboolean      may_block);
+_GLIB_API
 gboolean      g_main_context_pending   (GMainContext *context);
 
 /* For implementation of legacy interfaces
  */
+_GLIB_API
 GSource      *g_main_context_find_source_by_id              (GMainContext *context,
                                                              guint         source_id);
+_GLIB_API
 GSource      *g_main_context_find_source_by_user_data       (GMainContext *context,
                                                              gpointer      user_data);
+_GLIB_API
 GSource      *g_main_context_find_source_by_funcs_user_data (GMainContext *context,
                                                              GSourceFuncs *funcs,
                                                              gpointer      user_data);
 
 /* Low level functions for implementing custom main loops.
  */
+_GLIB_API
 void     g_main_context_wakeup  (GMainContext *context);
+_GLIB_API
 gboolean g_main_context_acquire (GMainContext *context);
+_GLIB_API
 void     g_main_context_release (GMainContext *context);
+_GLIB_API
 gboolean g_main_context_is_owner (GMainContext *context);
+_GLIB_API
 gboolean g_main_context_wait    (GMainContext *context,
                                  GCond        *cond,
                                  GMutex       *mutex);
 
+_GLIB_API
 gboolean g_main_context_prepare  (GMainContext *context,
                                   gint         *priority);
+_GLIB_API
 gint     g_main_context_query    (GMainContext *context,
                                   gint          max_priority,
                                   gint         *timeout_,
                                   GPollFD      *fds,
                                   gint          n_fds);
+_GLIB_API
 gint     g_main_context_check    (GMainContext *context,
                                   gint          max_priority,
                                   GPollFD      *fds,
                                   gint          n_fds);
+_GLIB_API
 void     g_main_context_dispatch (GMainContext *context);
 
+_GLIB_API
 void     g_main_context_set_poll_func (GMainContext *context,
                                        GPollFunc     func);
+_GLIB_API
 GPollFunc g_main_context_get_poll_func (GMainContext *context);
 
 /* Low level functions for use by source implementations
  */
+_GLIB_API
 void     g_main_context_add_poll    (GMainContext *context,
                                      GPollFD      *fd,
                                      gint          priority);
+_GLIB_API
 void     g_main_context_remove_poll (GMainContext *context,
                                      GPollFD      *fd);
 
+_GLIB_API
 gint     g_main_depth               (void);
+_GLIB_API
 GSource *g_main_current_source      (void);
 
 /* GMainContexts for other threads
  */
+_GLIB_API
 void          g_main_context_push_thread_default (GMainContext *context);
+_GLIB_API
 void          g_main_context_pop_thread_default  (GMainContext *context);
+_GLIB_API
 GMainContext *g_main_context_get_thread_default  (void);
+_GLIB_API
 GMainContext *g_main_context_ref_thread_default  (void);
 
 /* GMainLoop: */
 
+_GLIB_API
 GMainLoop *g_main_loop_new        (GMainContext *context,
                                    gboolean      is_running);
+_GLIB_API
 void       g_main_loop_run        (GMainLoop    *loop);
+_GLIB_API
 void       g_main_loop_quit       (GMainLoop    *loop);
+_GLIB_API
 GMainLoop *g_main_loop_ref        (GMainLoop    *loop);
+_GLIB_API
 void       g_main_loop_unref      (GMainLoop    *loop);
+_GLIB_API
 gboolean   g_main_loop_is_running (GMainLoop    *loop);
+_GLIB_API
 GMainContext *g_main_loop_get_context (GMainLoop    *loop);
 
 /* GSource: */
 
+_GLIB_API
 GSource *g_source_new             (GSourceFuncs   *source_funcs,
                                    guint           struct_size);
+_GLIB_API
 GSource *g_source_ref             (GSource        *source);
+_GLIB_API
 void     g_source_unref           (GSource        *source);
 
+_GLIB_API
 guint    g_source_attach          (GSource        *source,
                                    GMainContext   *context);
+_GLIB_API
 void     g_source_destroy         (GSource        *source);
 
+_GLIB_API
 void     g_source_set_priority    (GSource        *source,
                                    gint            priority);
+_GLIB_API
 gint     g_source_get_priority    (GSource        *source);
+_GLIB_API
 void     g_source_set_can_recurse (GSource        *source,
                                    gboolean        can_recurse);
+_GLIB_API
 gboolean g_source_get_can_recurse (GSource        *source);
+_GLIB_API
 guint    g_source_get_id          (GSource        *source);
 
+_GLIB_API
 GMainContext *g_source_get_context (GSource       *source);
 
+_GLIB_API
 void     g_source_set_callback    (GSource        *source,
                                    GSourceFunc     func,
                                    gpointer        data,
                                    GDestroyNotify  notify);
 
+_GLIB_API
 void     g_source_set_funcs       (GSource        *source,
                                    GSourceFuncs   *funcs);
+_GLIB_API
 gboolean g_source_is_destroyed    (GSource        *source);
 
+_GLIB_API
 void                 g_source_set_name       (GSource        *source,
                                               const char     *name);
+_GLIB_API
 const char *         g_source_get_name       (GSource        *source);
+_GLIB_API
 void                 g_source_set_name_by_id (guint           tag,
                                               const char     *name);
 
 
 /* Used to implement g_source_connect_closure and internally*/
+_GLIB_API
 void g_source_set_callback_indirect (GSource              *source,
                                      gpointer              callback_data,
                                      GSourceCallbackFuncs *callback_funcs);
 
+_GLIB_API
 void     g_source_add_poll            (GSource        *source,
 				       GPollFD        *fd);
+_GLIB_API
 void     g_source_remove_poll         (GSource        *source,
 				       GPollFD        *fd);
 
+_GLIB_API
 void     g_source_add_child_source    (GSource        *source,
 				       GSource        *child_source);
+_GLIB_API
 void     g_source_remove_child_source (GSource        *source,
 				       GSource        *child_source);
 
@@ -415,6 +472,7 @@ GLIB_DEPRECATED_IN_2_28_FOR(g_source_get_time)
 void     g_source_get_current_time (GSource        *source,
                                     GTimeVal       *timeval);
 
+_GLIB_API
 gint64   g_source_get_time         (GSource        *source);
 
  /* void g_source_connect_closure (GSource        *source,
@@ -423,62 +481,83 @@ gint64   g_source_get_time         (GSource        *source);
 
 /* Specific source types
  */
+_GLIB_API
 GSource *g_idle_source_new        (void);
+_GLIB_API
 GSource *g_child_watch_source_new (GPid pid);
+_GLIB_API
 GSource *g_timeout_source_new     (guint interval);
+_GLIB_API
 GSource *g_timeout_source_new_seconds (guint interval);
 
 /* Miscellaneous functions
  */
+_GLIB_API
 void   g_get_current_time                 (GTimeVal       *result);
+_GLIB_API
 gint64 g_get_monotonic_time               (void);
+_GLIB_API
 gint64 g_get_real_time                    (void);
 
 
 /* Source manipulation by ID */
+_GLIB_API
 gboolean g_source_remove                     (guint          tag);
+_GLIB_API
 gboolean g_source_remove_by_user_data        (gpointer       user_data);
+_GLIB_API
 gboolean g_source_remove_by_funcs_user_data  (GSourceFuncs  *funcs,
                                               gpointer       user_data);
 
 /* Idles, child watchers and timeouts */
+_GLIB_API
 guint    g_timeout_add_full         (gint            priority,
                                      guint           interval,
                                      GSourceFunc     function,
                                      gpointer        data,
                                      GDestroyNotify  notify);
+_GLIB_API
 guint    g_timeout_add              (guint           interval,
                                      GSourceFunc     function,
                                      gpointer        data);
+_GLIB_API
 guint    g_timeout_add_seconds_full (gint            priority,
                                      guint           interval,
                                      GSourceFunc     function,
                                      gpointer        data,
                                      GDestroyNotify  notify);
+_GLIB_API
 guint    g_timeout_add_seconds      (guint           interval,
                                      GSourceFunc     function,
                                      gpointer        data);
+_GLIB_API
 guint    g_child_watch_add_full     (gint            priority,
                                      GPid            pid,
                                      GChildWatchFunc function,
                                      gpointer        data,
                                      GDestroyNotify  notify);
+_GLIB_API
 guint    g_child_watch_add          (GPid            pid,
                                      GChildWatchFunc function,
                                      gpointer        data);
+_GLIB_API
 guint    g_idle_add                 (GSourceFunc     function,
                                      gpointer        data);
+_GLIB_API
 guint    g_idle_add_full            (gint            priority,
                                      GSourceFunc     function,
                                      gpointer        data,
                                      GDestroyNotify  notify);
+_GLIB_API
 gboolean g_idle_remove_by_data      (gpointer        data);
 
+_GLIB_API
 void     g_main_context_invoke_full (GMainContext   *context,
                                      gint            priority,
                                      GSourceFunc     function,
                                      gpointer        data,
                                      GDestroyNotify  notify);
+_GLIB_API
 void     g_main_context_invoke      (GMainContext   *context,
                                      GSourceFunc     function,
                                      gpointer        data);
diff --git a/glib/gmappedfile.h b/glib/gmappedfile.h
index cf122e4..1f79c37 100644
--- a/glib/gmappedfile.h
+++ b/glib/gmappedfile.h
@@ -33,17 +33,23 @@ G_BEGIN_DECLS
 
 typedef struct _GMappedFile GMappedFile;
 
+_GLIB_API
 GMappedFile *g_mapped_file_new          (const gchar  *filename,
 				         gboolean      writable,
 				         GError      **error) G_GNUC_MALLOC;
+_GLIB_API
 GMappedFile *g_mapped_file_new_from_fd  (gint          fd,
 					 gboolean      writable,
 					 GError      **error) G_GNUC_MALLOC;
+_GLIB_API
 gsize        g_mapped_file_get_length   (GMappedFile  *file);
+_GLIB_API
 gchar       *g_mapped_file_get_contents (GMappedFile  *file);
 GLIB_AVAILABLE_IN_2_34
 GBytes *     g_mapped_file_get_bytes    (GMappedFile  *file);
+_GLIB_API
 GMappedFile *g_mapped_file_ref          (GMappedFile  *file);
+_GLIB_API
 void         g_mapped_file_unref        (GMappedFile  *file);
 
 GLIB_DEPRECATED_FOR(g_mapped_file_unref)
diff --git a/glib/gmarkup.h b/glib/gmarkup.h
index a8865da..5045944 100644
--- a/glib/gmarkup.h
+++ b/glib/gmarkup.h
@@ -71,6 +71,7 @@ typedef enum
  */
 #define G_MARKUP_ERROR g_markup_error_quark ()
 
+_GLIB_API
 GQuark g_markup_error_quark (void);
 
 /**
@@ -178,37 +179,50 @@ struct _GMarkupParser
                           gpointer             user_data);
 };
 
+_GLIB_API
 GMarkupParseContext *g_markup_parse_context_new   (const GMarkupParser *parser,
                                                    GMarkupParseFlags    flags,
                                                    gpointer             user_data,
                                                    GDestroyNotify       user_data_dnotify);
+_GLIB_API
 void                 g_markup_parse_context_free  (GMarkupParseContext *context);
+_GLIB_API
 gboolean             g_markup_parse_context_parse (GMarkupParseContext *context,
                                                    const gchar         *text,
                                                    gssize               text_len,
                                                    GError             **error);
+_GLIB_API
 void                 g_markup_parse_context_push  (GMarkupParseContext *context,
                                                    const GMarkupParser *parser,
                                                    gpointer             user_data);
+_GLIB_API
 gpointer             g_markup_parse_context_pop   (GMarkupParseContext *context);
 
+_GLIB_API
 gboolean             g_markup_parse_context_end_parse (GMarkupParseContext *context,
                                                        GError             **error);
+_GLIB_API
 const gchar *        g_markup_parse_context_get_element (GMarkupParseContext *context);
+_GLIB_API
 const GSList *       g_markup_parse_context_get_element_stack (GMarkupParseContext *context);
 
 /* For user-constructed error messages, has no precise semantics */
+_GLIB_API
 void                 g_markup_parse_context_get_position (GMarkupParseContext *context,
                                                           gint                *line_number,
                                                           gint                *char_number);
+_GLIB_API
 gpointer             g_markup_parse_context_get_user_data (GMarkupParseContext *context);
 
 /* useful when saving */
+_GLIB_API
 gchar* g_markup_escape_text (const gchar *text,
                              gssize       length);
 
+_GLIB_API
 gchar *g_markup_printf_escaped (const char *format,
 				...) G_GNUC_PRINTF (1, 2);
+_GLIB_API
 gchar *g_markup_vprintf_escaped (const char *format,
 				 va_list     args);
 
@@ -225,6 +239,7 @@ typedef enum
 
 
 /* useful from start_element */
+_GLIB_API
 gboolean   g_markup_collect_attributes (const gchar         *element_name,
                                         const gchar        **attribute_names,
                                         const gchar        **attribute_values,
diff --git a/glib/gmem.h b/glib/gmem.h
index c50f46e..00c6cde 100644
--- a/glib/gmem.h
+++ b/glib/gmem.h
@@ -67,32 +67,45 @@ typedef struct _GMemVTable GMemVTable;
 /* Memory allocation functions
  */
 
+_GLIB_API
 void	 g_free	          (gpointer	 mem);
 
 GLIB_AVAILABLE_IN_2_34
 void     g_clear_pointer  (gpointer      *pp,
                            GDestroyNotify destroy);
 
+_GLIB_API
 gpointer g_malloc         (gsize	 n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
+_GLIB_API
 gpointer g_malloc0        (gsize	 n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
+_GLIB_API
 gpointer g_realloc        (gpointer	 mem,
 			   gsize	 n_bytes) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 gpointer g_try_malloc     (gsize	 n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
+_GLIB_API
 gpointer g_try_malloc0    (gsize	 n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
+_GLIB_API
 gpointer g_try_realloc    (gpointer	 mem,
 			   gsize	 n_bytes) G_GNUC_WARN_UNUSED_RESULT;
 
+_GLIB_API
 gpointer g_malloc_n       (gsize	 n_blocks,
 			   gsize	 n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
+_GLIB_API
 gpointer g_malloc0_n      (gsize	 n_blocks,
 			   gsize	 n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
+_GLIB_API
 gpointer g_realloc_n      (gpointer	 mem,
 			   gsize	 n_blocks,
 			   gsize	 n_block_bytes) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 gpointer g_try_malloc_n   (gsize	 n_blocks,
 			   gsize	 n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
+_GLIB_API
 gpointer g_try_malloc0_n  (gsize	 n_blocks,
 			   gsize	 n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
+_GLIB_API
 gpointer g_try_realloc_n  (gpointer	 mem,
 			   gsize	 n_blocks,
 			   gsize	 n_block_bytes) G_GNUC_WARN_UNUSED_RESULT;
@@ -270,7 +283,9 @@ struct _GMemVTable {
   gpointer (*try_realloc) (gpointer mem,
 			   gsize    n_bytes);
 };
+_GLIB_API
 void	 g_mem_set_vtable (GMemVTable	*vtable);
+_GLIB_API
 gboolean g_mem_is_system_malloc (void);
 
 GLIB_VAR gboolean g_mem_gc_friendly;
@@ -278,6 +293,7 @@ GLIB_VAR gboolean g_mem_gc_friendly;
 /* Memory profiler and checker, has to be enabled via g_mem_set_vtable()
  */
 GLIB_VAR GMemVTable	*glib_mem_profiler_table;
+_GLIB_API
 void	g_mem_profile	(void);
 
 G_END_DECLS
diff --git a/glib/gmessages.h b/glib/gmessages.h
index 9cbcc83..2acd162 100644
--- a/glib/gmessages.h
+++ b/glib/gmessages.h
@@ -45,6 +45,7 @@ G_BEGIN_DECLS
 
 /* calculate a string size, guaranteed to fit format + args.
  */
+_GLIB_API
 gsize	g_printf_string_upper_bound (const gchar* format,
 				     va_list	  args);
 
@@ -82,28 +83,36 @@ typedef void            (*GLogFunc)             (const gchar   *log_domain,
 
 /* Logging mechanism
  */
+_GLIB_API
 guint           g_log_set_handler       (const gchar    *log_domain,
                                          GLogLevelFlags  log_levels,
                                          GLogFunc        log_func,
                                          gpointer        user_data);
+_GLIB_API
 void            g_log_remove_handler    (const gchar    *log_domain,
                                          guint           handler_id);
+_GLIB_API
 void            g_log_default_handler   (const gchar    *log_domain,
                                          GLogLevelFlags  log_level,
                                          const gchar    *message,
                                          gpointer        unused_data);
+_GLIB_API
 GLogFunc        g_log_set_default_handler (GLogFunc      log_func,
 					   gpointer      user_data);
+_GLIB_API
 void            g_log                   (const gchar    *log_domain,
                                          GLogLevelFlags  log_level,
                                          const gchar    *format,
                                          ...) G_GNUC_PRINTF (3, 4);
+_GLIB_API
 void            g_logv                  (const gchar    *log_domain,
                                          GLogLevelFlags  log_level,
                                          const gchar    *format,
                                          va_list         args);
+_GLIB_API
 GLogLevelFlags  g_log_set_fatal_mask    (const gchar    *log_domain,
                                          GLogLevelFlags  fatal_mask);
+_GLIB_API
 GLogLevelFlags  g_log_set_always_fatal  (GLogLevelFlags  fatal_mask);
 
 /* internal */
@@ -113,9 +122,11 @@ G_GNUC_INTERNAL void	_g_log_fallback_handler	(const gchar   *log_domain,
 						 gpointer       unused_data);
 
 /* Internal functions, used to implement the following macros */
+_GLIB_API
 void g_return_if_fail_warning (const char *log_domain,
 			       const char *pretty_function,
 			       const char *expression);
+_GLIB_API
 void g_warn_message           (const char     *domain,
                                const char     *file,
                                int             line,
@@ -233,11 +244,15 @@ g_debug (const gchar *format,
  * These are called with the complete formatted string to output.
  */
 typedef void    (*GPrintFunc)           (const gchar    *string);
+_GLIB_API
 void            g_print                 (const gchar    *format,
                                          ...) G_GNUC_PRINTF (1, 2);
+_GLIB_API
 GPrintFunc      g_set_print_handler     (GPrintFunc      func);
+_GLIB_API
 void            g_printerr              (const gchar    *format,
                                          ...) G_GNUC_PRINTF (1, 2);
+_GLIB_API
 GPrintFunc      g_set_printerr_handler  (GPrintFunc      func);
 
 /**
diff --git a/glib/gnode.h b/glib/gnode.h
index 7ffdcbf..931172c 100644
--- a/glib/gnode.h
+++ b/glib/gnode.h
@@ -112,30 +112,44 @@ struct _GNode
  */
 #define	 G_NODE_IS_LEAF(node)	(((GNode*) (node))->children == NULL)
 
+_GLIB_API
 GNode*	 g_node_new		(gpointer	   data);
+_GLIB_API
 void	 g_node_destroy		(GNode		  *root);
+_GLIB_API
 void	 g_node_unlink		(GNode		  *node);
+_GLIB_API
 GNode*   g_node_copy_deep       (GNode            *node,
 				 GCopyFunc         copy_func,
 				 gpointer          data);
+_GLIB_API
 GNode*   g_node_copy            (GNode            *node);
+_GLIB_API
 GNode*	 g_node_insert		(GNode		  *parent,
 				 gint		   position,
 				 GNode		  *node);
+_GLIB_API
 GNode*	 g_node_insert_before	(GNode		  *parent,
 				 GNode		  *sibling,
 				 GNode		  *node);
+_GLIB_API
 GNode*   g_node_insert_after    (GNode            *parent,
 				 GNode            *sibling,
 				 GNode            *node); 
+_GLIB_API
 GNode*	 g_node_prepend		(GNode		  *parent,
 				 GNode		  *node);
+_GLIB_API
 guint	 g_node_n_nodes		(GNode		  *root,
 				 GTraverseFlags	   flags);
+_GLIB_API
 GNode*	 g_node_get_root	(GNode		  *node);
+_GLIB_API
 gboolean g_node_is_ancestor	(GNode		  *node,
 				 GNode		  *descendant);
+_GLIB_API
 guint	 g_node_depth		(GNode		  *node);
+_GLIB_API
 GNode*	 g_node_find		(GNode		  *root,
 				 GTraverseType	   order,
 				 GTraverseFlags	   flags,
@@ -223,6 +237,7 @@ GNode*	 g_node_find		(GNode		  *root,
  * this function is just a high level interface to
  * low level traversal functions, optimized for speed.
  */
+_GLIB_API
 void	 g_node_traverse	(GNode		  *root,
 				 GTraverseType	   order,
 				 GTraverseFlags	   flags,
@@ -235,26 +250,37 @@ void	 g_node_traverse	(GNode		  *root,
  * adding `guint height' to struct _GNode, but then again, this is not very
  * often needed, and would make g_node_insert() more time consuming.
  */
+_GLIB_API
 guint	 g_node_max_height	 (GNode *root);
 
+_GLIB_API
 void	 g_node_children_foreach (GNode		  *node,
 				  GTraverseFlags   flags,
 				  GNodeForeachFunc func,
 				  gpointer	   data);
+_GLIB_API
 void	 g_node_reverse_children (GNode		  *node);
+_GLIB_API
 guint	 g_node_n_children	 (GNode		  *node);
+_GLIB_API
 GNode*	 g_node_nth_child	 (GNode		  *node,
 				  guint		   n);
+_GLIB_API
 GNode*	 g_node_last_child	 (GNode		  *node);
+_GLIB_API
 GNode*	 g_node_find_child	 (GNode		  *node,
 				  GTraverseFlags   flags,
 				  gpointer	   data);
+_GLIB_API
 gint	 g_node_child_position	 (GNode		  *node,
 				  GNode		  *child);
+_GLIB_API
 gint	 g_node_child_index	 (GNode		  *node,
 				  gpointer	   data);
 
+_GLIB_API
 GNode*	 g_node_first_sibling	 (GNode		  *node);
+_GLIB_API
 GNode*	 g_node_last_sibling	 (GNode		  *node);
 
 /**
diff --git a/glib/goption.h b/glib/goption.h
index 7d1f2a1..61d562c 100644
--- a/glib/goption.h
+++ b/glib/goption.h
@@ -209,6 +209,7 @@ typedef enum
   G_OPTION_ERROR_FAILED
 } GOptionError;
 
+_GLIB_API
 GQuark g_option_error_quark (void);
 
 /**
@@ -307,61 +308,86 @@ struct _GOptionEntry
  */
 #define G_OPTION_REMAINING ""
 
+_GLIB_API
 GOptionContext *g_option_context_new              (const gchar         *parameter_string);
+_GLIB_API
 void            g_option_context_set_summary      (GOptionContext      *context,
                                                    const gchar         *summary);
+_GLIB_API
 const gchar *   g_option_context_get_summary      (GOptionContext     *context);
+_GLIB_API
 void            g_option_context_set_description  (GOptionContext      *context,
                                                    const gchar         *description);
+_GLIB_API
 const gchar *   g_option_context_get_description  (GOptionContext     *context);
+_GLIB_API
 void            g_option_context_free             (GOptionContext      *context);
+_GLIB_API
 void		g_option_context_set_help_enabled (GOptionContext      *context,
 						   gboolean		help_enabled);
+_GLIB_API
 gboolean	g_option_context_get_help_enabled (GOptionContext      *context);
+_GLIB_API
 void		g_option_context_set_ignore_unknown_options (GOptionContext *context,
 							     gboolean	     ignore_unknown);
+_GLIB_API
 gboolean        g_option_context_get_ignore_unknown_options (GOptionContext *context);
 
+_GLIB_API
 void            g_option_context_add_main_entries (GOptionContext      *context,
 						   const GOptionEntry  *entries,
 						   const gchar         *translation_domain);
+_GLIB_API
 gboolean        g_option_context_parse            (GOptionContext      *context,
 						   gint                *argc,
 						   gchar             ***argv,
 						   GError             **error);
+_GLIB_API
 void            g_option_context_set_translate_func (GOptionContext     *context,
 						     GTranslateFunc      func,
 						     gpointer            data,
 						     GDestroyNotify      destroy_notify);
+_GLIB_API
 void            g_option_context_set_translation_domain (GOptionContext  *context,
 							 const gchar     *domain);
 
+_GLIB_API
 void            g_option_context_add_group      (GOptionContext *context,
 						 GOptionGroup   *group);
+_GLIB_API
 void          g_option_context_set_main_group (GOptionContext *context,
 					       GOptionGroup   *group);
+_GLIB_API
 GOptionGroup *g_option_context_get_main_group (GOptionContext *context);
+_GLIB_API
 gchar        *g_option_context_get_help       (GOptionContext *context,
                                                gboolean        main_help,
                                                GOptionGroup   *group);
 
+_GLIB_API
 GOptionGroup *g_option_group_new                    (const gchar        *name,
 						     const gchar        *description,
 						     const gchar        *help_description,
 						     gpointer            user_data,
 						     GDestroyNotify      destroy);
+_GLIB_API
 void	      g_option_group_set_parse_hooks	    (GOptionGroup       *group,
 						     GOptionParseFunc    pre_parse_func,
 						     GOptionParseFunc	 post_parse_func);
+_GLIB_API
 void	      g_option_group_set_error_hook	    (GOptionGroup       *group,
 						     GOptionErrorFunc	 error_func);
+_GLIB_API
 void          g_option_group_free                   (GOptionGroup       *group);
+_GLIB_API
 void          g_option_group_add_entries            (GOptionGroup       *group,
 						     const GOptionEntry *entries);
+_GLIB_API
 void          g_option_group_set_translate_func     (GOptionGroup       *group,
 						     GTranslateFunc      func,
 						     gpointer            data,
 						     GDestroyNotify      destroy_notify);
+_GLIB_API
 void          g_option_group_set_translation_domain (GOptionGroup       *group,
 						     const gchar        *domain);
 
diff --git a/glib/gpattern.h b/glib/gpattern.h
index e692d90..45ff241 100644
--- a/glib/gpattern.h
+++ b/glib/gpattern.h
@@ -31,16 +31,22 @@ G_BEGIN_DECLS
 
 typedef struct _GPatternSpec    GPatternSpec;
 
+_GLIB_API
 GPatternSpec* g_pattern_spec_new       (const gchar  *pattern);
+_GLIB_API
 void          g_pattern_spec_free      (GPatternSpec *pspec);
+_GLIB_API
 gboolean      g_pattern_spec_equal     (GPatternSpec *pspec1,
 					GPatternSpec *pspec2);
+_GLIB_API
 gboolean      g_pattern_match          (GPatternSpec *pspec,
 					guint         string_length,
 					const gchar  *string,
 					const gchar  *string_reversed);
+_GLIB_API
 gboolean      g_pattern_match_string   (GPatternSpec *pspec,
 					const gchar  *string);
+_GLIB_API
 gboolean      g_pattern_match_simple   (const gchar  *pattern,
 					const gchar  *string);
 
diff --git a/glib/gpoll.h b/glib/gpoll.h
index f28b758..32be8dd 100644
--- a/glib/gpoll.h
+++ b/glib/gpoll.h
@@ -111,6 +111,7 @@ struct _GPollFD
 #define G_POLLFD_FORMAT "%d"
 #endif
 
+_GLIB_API
 gint g_poll (GPollFD *fds,
 	     guint    nfds,
 	     gint     timeout);
diff --git a/glib/gprimes.h b/glib/gprimes.h
index 19f5702..0f490db 100644
--- a/glib/gprimes.h
+++ b/glib/gprimes.h
@@ -44,6 +44,7 @@ G_BEGIN_DECLS
  * next largest prime, or the highest it knows about which is about
  * MAXINT/4.
  */
+_GLIB_API
 guint	   g_spaced_primes_closest (guint num) G_GNUC_CONST;
 
 G_END_DECLS
diff --git a/glib/gprintf.h b/glib/gprintf.h
index d96870f..c695bfb 100644
--- a/glib/gprintf.h
+++ b/glib/gprintf.h
@@ -26,23 +26,30 @@
 
 G_BEGIN_DECLS
 
+_GLIB_API
 gint                  g_printf    (gchar const *format,
                                    ...) G_GNUC_PRINTF (1, 2);
+_GLIB_API
 gint                  g_fprintf   (FILE        *file,
 				   gchar const *format,
 				   ...) G_GNUC_PRINTF (2, 3);
+_GLIB_API
 gint                  g_sprintf   (gchar       *string,
 				   gchar const *format,
 				   ...) G_GNUC_PRINTF (2, 3);
 
+_GLIB_API
 gint                  g_vprintf   (gchar const *format,
                                    va_list      args);
+_GLIB_API
 gint                  g_vfprintf  (FILE        *file,
 				   gchar const *format,
 				   va_list      args);
+_GLIB_API
 gint                  g_vsprintf  (gchar       *string,
 				   gchar const *format,
 				   va_list      args);
+_GLIB_API
 gint                  g_vasprintf (gchar      **string,
 				   gchar const *format,
 				   va_list      args);
diff --git a/glib/gqsort.h b/glib/gqsort.h
index 05b4b66..86e5201 100644
--- a/glib/gqsort.h
+++ b/glib/gqsort.h
@@ -35,6 +35,7 @@
 
 G_BEGIN_DECLS
 
+_GLIB_API
 void g_qsort_with_data (gconstpointer    pbase,
 			gint             total_elems,
 			gsize            size,
diff --git a/glib/gquark.h b/glib/gquark.h
index 39d22ab..bfed2d6 100644
--- a/glib/gquark.h
+++ b/glib/gquark.h
@@ -39,9 +39,13 @@ typedef guint32 GQuark;
 
 /* Quarks (string<->id association)
  */
+_GLIB_API
 GQuark                g_quark_try_string         (const gchar *string);
+_GLIB_API
 GQuark                g_quark_from_static_string (const gchar *string);
+_GLIB_API
 GQuark                g_quark_from_string        (const gchar *string);
+_GLIB_API
 const gchar *         g_quark_to_string          (GQuark       quark) G_GNUC_CONST;
 
 #define G_DEFINE_QUARK(QN, q_n)                                         \
@@ -56,7 +60,9 @@ q_n##_quark (void)                                                      \
   return q;                                                             \
 }
 
+_GLIB_API
 const gchar *         g_intern_string            (const gchar *string);
+_GLIB_API
 const gchar *         g_intern_static_string     (const gchar *string);
 
 G_END_DECLS
diff --git a/glib/gqueue.h b/glib/gqueue.h
index 1d13eef..a1b42a8 100644
--- a/glib/gqueue.h
+++ b/glib/gqueue.h
@@ -71,79 +71,119 @@ struct _GQueue
 
 /* Queues
  */
+_GLIB_API
 GQueue*  g_queue_new            (void);
+_GLIB_API
 void     g_queue_free           (GQueue           *queue);
+_GLIB_API
 void     g_queue_free_full      (GQueue           *queue,
 				GDestroyNotify    free_func);
+_GLIB_API
 void     g_queue_init           (GQueue           *queue);
+_GLIB_API
 void     g_queue_clear          (GQueue           *queue);
+_GLIB_API
 gboolean g_queue_is_empty       (GQueue           *queue);
+_GLIB_API
 guint    g_queue_get_length     (GQueue           *queue);
+_GLIB_API
 void     g_queue_reverse        (GQueue           *queue);
+_GLIB_API
 GQueue * g_queue_copy           (GQueue           *queue);
+_GLIB_API
 void     g_queue_foreach        (GQueue           *queue,
                                  GFunc             func,
                                  gpointer          user_data);
+_GLIB_API
 GList *  g_queue_find           (GQueue           *queue,
                                  gconstpointer     data);
+_GLIB_API
 GList *  g_queue_find_custom    (GQueue           *queue,
                                  gconstpointer     data,
                                  GCompareFunc      func);
+_GLIB_API
 void     g_queue_sort           (GQueue           *queue,
                                  GCompareDataFunc  compare_func,
                                  gpointer          user_data);
 
+_GLIB_API
 void     g_queue_push_head      (GQueue           *queue,
                                  gpointer          data);
+_GLIB_API
 void     g_queue_push_tail      (GQueue           *queue,
                                  gpointer          data);
+_GLIB_API
 void     g_queue_push_nth       (GQueue           *queue,
                                  gpointer          data,
                                  gint              n);
+_GLIB_API
 gpointer g_queue_pop_head       (GQueue           *queue);
+_GLIB_API
 gpointer g_queue_pop_tail       (GQueue           *queue);
+_GLIB_API
 gpointer g_queue_pop_nth        (GQueue           *queue,
                                  guint             n);
+_GLIB_API
 gpointer g_queue_peek_head      (GQueue           *queue);
+_GLIB_API
 gpointer g_queue_peek_tail      (GQueue           *queue);
+_GLIB_API
 gpointer g_queue_peek_nth       (GQueue           *queue,
                                  guint             n);
+_GLIB_API
 gint     g_queue_index          (GQueue           *queue,
                                  gconstpointer     data);
+_GLIB_API
 gboolean g_queue_remove         (GQueue           *queue,
                                  gconstpointer     data);
+_GLIB_API
 guint    g_queue_remove_all     (GQueue           *queue,
                                  gconstpointer     data);
+_GLIB_API
 void     g_queue_insert_before  (GQueue           *queue,
                                  GList            *sibling,
                                  gpointer          data);
+_GLIB_API
 void     g_queue_insert_after   (GQueue           *queue,
                                  GList            *sibling,
                                  gpointer          data);
+_GLIB_API
 void     g_queue_insert_sorted  (GQueue           *queue,
                                  gpointer          data,
                                  GCompareDataFunc  func,
                                  gpointer          user_data);
 
+_GLIB_API
 void     g_queue_push_head_link (GQueue           *queue,
                                  GList            *link_);
+_GLIB_API
 void     g_queue_push_tail_link (GQueue           *queue,
                                  GList            *link_);
+_GLIB_API
 void     g_queue_push_nth_link  (GQueue           *queue,
                                  gint              n,
                                  GList            *link_);
+_GLIB_API
 GList*   g_queue_pop_head_link  (GQueue           *queue);
+_GLIB_API
 GList*   g_queue_pop_tail_link  (GQueue           *queue);
+_GLIB_API
 GList*   g_queue_pop_nth_link   (GQueue           *queue,
                                  guint             n);
+_GLIB_API
 GList*   g_queue_peek_head_link (GQueue           *queue);
+_GLIB_API
 GList*   g_queue_peek_tail_link (GQueue           *queue);
+_GLIB_API
 GList*   g_queue_peek_nth_link  (GQueue           *queue,
                                  guint             n);
+_GLIB_API
 gint     g_queue_link_index     (GQueue           *queue,
                                  GList            *link_);
+_GLIB_API
 void     g_queue_unlink         (GQueue           *queue,
                                  GList            *link_);
+_GLIB_API
 void     g_queue_delete_link    (GQueue           *queue,
                                  GList            *link_);
 
diff --git a/glib/grand.h b/glib/grand.h
index 182616b..47a9cb3 100644
--- a/glib/grand.h
+++ b/glib/grand.h
@@ -46,36 +46,52 @@ typedef struct _GRand           GRand;
  * double_range -> [begin..end)
  */
 
+_GLIB_API
 GRand*  g_rand_new_with_seed  (guint32  seed);
+_GLIB_API
 GRand*  g_rand_new_with_seed_array (const guint32 *seed,
 				    guint seed_length);
+_GLIB_API
 GRand*  g_rand_new            (void);
+_GLIB_API
 void    g_rand_free           (GRand   *rand_);
+_GLIB_API
 GRand*  g_rand_copy           (GRand   *rand_);
+_GLIB_API
 void    g_rand_set_seed       (GRand   *rand_,
 			       guint32  seed);
+_GLIB_API
 void	g_rand_set_seed_array (GRand   *rand_,
 			       const guint32 *seed,
 			       guint    seed_length);
 
 #define g_rand_boolean(rand_) ((g_rand_int (rand_) & (1 << 15)) != 0)
 
+_GLIB_API
 guint32 g_rand_int            (GRand   *rand_);
+_GLIB_API
 gint32  g_rand_int_range      (GRand   *rand_,
 			       gint32   begin,
 			       gint32   end);
+_GLIB_API
 gdouble g_rand_double         (GRand   *rand_);
+_GLIB_API
 gdouble g_rand_double_range   (GRand   *rand_,
 			       gdouble  begin,
 			       gdouble  end);
+_GLIB_API
 void    g_random_set_seed     (guint32  seed);
 
 #define g_random_boolean() ((g_random_int () & (1 << 15)) != 0)
 
+_GLIB_API
 guint32 g_random_int          (void);
+_GLIB_API
 gint32  g_random_int_range    (gint32   begin,
 			       gint32   end);
+_GLIB_API
 gdouble g_random_double       (void);
+_GLIB_API
 gdouble g_random_double_range (gdouble  begin,
 			       gdouble  end);
 
diff --git a/glib/gregex.h b/glib/gregex.h
index 53a2aee..23f6303 100644
--- a/glib/gregex.h
+++ b/glib/gregex.h
@@ -212,6 +212,7 @@ typedef enum
  */
 #define G_REGEX_ERROR g_regex_error_quark ()
 
+_GLIB_API
 GQuark g_regex_error_quark (void);
 
 /**
@@ -436,35 +437,50 @@ typedef gboolean (*GRegexEvalCallback)		(const GMatchInfo *match_info,
 						 gpointer          user_data);
 
 
+_GLIB_API
 GRegex		 *g_regex_new			(const gchar         *pattern,
 						 GRegexCompileFlags   compile_options,
 						 GRegexMatchFlags     match_options,
 						 GError             **error);
+_GLIB_API
 GRegex           *g_regex_ref			(GRegex              *regex);
+_GLIB_API
 void		  g_regex_unref			(GRegex              *regex);
+_GLIB_API
 const gchar	 *g_regex_get_pattern		(const GRegex        *regex);
+_GLIB_API
 gint		  g_regex_get_max_backref	(const GRegex        *regex);
+_GLIB_API
 gint		  g_regex_get_capture_count	(const GRegex        *regex);
+_GLIB_API
 gboolean          g_regex_get_has_cr_or_lf      (const GRegex        *regex);
+_GLIB_API
 gint		  g_regex_get_string_number	(const GRegex        *regex, 
 						 const gchar         *name);
+_GLIB_API
 gchar		 *g_regex_escape_string		(const gchar         *string,
 						 gint                 length);
+_GLIB_API
 gchar		 *g_regex_escape_nul		(const gchar         *string,
 						 gint                 length);
 
+_GLIB_API
 GRegexCompileFlags g_regex_get_compile_flags    (const GRegex        *regex);
+_GLIB_API
 GRegexMatchFlags   g_regex_get_match_flags      (const GRegex        *regex);
 
 /* Matching. */
+_GLIB_API
 gboolean	  g_regex_match_simple		(const gchar         *pattern,
 						 const gchar         *string,
 						 GRegexCompileFlags   compile_options,
 						 GRegexMatchFlags     match_options);
+_GLIB_API
 gboolean	  g_regex_match			(const GRegex        *regex,
 						 const gchar         *string,
 						 GRegexMatchFlags     match_options,
 						 GMatchInfo         **match_info);
+_GLIB_API
 gboolean	  g_regex_match_full		(const GRegex        *regex,
 						 const gchar         *string,
 						 gssize               string_len,
@@ -472,10 +488,12 @@ gboolean	  g_regex_match_full		(const GRegex        *regex,
 						 GRegexMatchFlags     match_options,
 						 GMatchInfo         **match_info,
 						 GError             **error);
+_GLIB_API
 gboolean	  g_regex_match_all		(const GRegex        *regex,
 						 const gchar         *string,
 						 GRegexMatchFlags     match_options,
 						 GMatchInfo         **match_info);
+_GLIB_API
 gboolean	  g_regex_match_all_full	(const GRegex        *regex,
 						 const gchar         *string,
 						 gssize               string_len,
@@ -485,13 +503,16 @@ gboolean	  g_regex_match_all_full	(const GRegex        *regex,
 						 GError             **error);
 
 /* String splitting. */
+_GLIB_API
 gchar		**g_regex_split_simple		(const gchar         *pattern,
 						 const gchar         *string,
 						 GRegexCompileFlags   compile_options,
 						 GRegexMatchFlags     match_options);
+_GLIB_API
 gchar		**g_regex_split			(const GRegex        *regex,
 						 const gchar         *string,
 						 GRegexMatchFlags     match_options);
+_GLIB_API
 gchar		**g_regex_split_full		(const GRegex        *regex,
 						 const gchar         *string,
 						 gssize               string_len,
@@ -501,6 +522,7 @@ gchar		**g_regex_split_full		(const GRegex        *regex,
 						 GError             **error);
 
 /* String replacement. */
+_GLIB_API
 gchar		 *g_regex_replace		(const GRegex        *regex,
 						 const gchar         *string,
 						 gssize               string_len,
@@ -508,6 +530,7 @@ gchar		 *g_regex_replace		(const GRegex        *regex,
 						 const gchar         *replacement,
 						 GRegexMatchFlags     match_options,
 						 GError             **error);
+_GLIB_API
 gchar		 *g_regex_replace_literal	(const GRegex        *regex,
 						 const gchar         *string,
 						 gssize               string_len,
@@ -515,6 +538,7 @@ gchar		 *g_regex_replace_literal	(const GRegex        *regex,
 						 const gchar         *replacement,
 						 GRegexMatchFlags     match_options,
 						 GError             **error);
+_GLIB_API
 gchar		 *g_regex_replace_eval		(const GRegex        *regex,
 						 const gchar         *string,
 						 gssize               string_len,
@@ -523,37 +547,53 @@ gchar		 *g_regex_replace_eval		(const GRegex        *regex,
 						 GRegexEvalCallback   eval,
 						 gpointer             user_data,
 						 GError             **error);
+_GLIB_API
 gboolean	  g_regex_check_replacement	(const gchar         *replacement,
 						 gboolean            *has_references,
 						 GError             **error);
 
 /* Match info */
+_GLIB_API
 GRegex		 *g_match_info_get_regex	(const GMatchInfo    *match_info);
+_GLIB_API
 const gchar      *g_match_info_get_string       (const GMatchInfo    *match_info);
 
+_GLIB_API
 GMatchInfo       *g_match_info_ref              (GMatchInfo          *match_info);
+_GLIB_API
 void              g_match_info_unref            (GMatchInfo          *match_info);
+_GLIB_API
 void		  g_match_info_free		(GMatchInfo          *match_info);
+_GLIB_API
 gboolean	  g_match_info_next		(GMatchInfo          *match_info,
 						 GError             **error);
+_GLIB_API
 gboolean	  g_match_info_matches		(const GMatchInfo    *match_info);
+_GLIB_API
 gint		  g_match_info_get_match_count	(const GMatchInfo    *match_info);
+_GLIB_API
 gboolean	  g_match_info_is_partial_match	(const GMatchInfo    *match_info);
+_GLIB_API
 gchar		 *g_match_info_expand_references(const GMatchInfo    *match_info,
 						 const gchar         *string_to_expand,
 						 GError             **error);
+_GLIB_API
 gchar		 *g_match_info_fetch		(const GMatchInfo    *match_info,
 						 gint                 match_num);
+_GLIB_API
 gboolean	  g_match_info_fetch_pos	(const GMatchInfo    *match_info,
 						 gint                 match_num,
 						 gint                *start_pos,
 						 gint                *end_pos);
+_GLIB_API
 gchar		 *g_match_info_fetch_named	(const GMatchInfo    *match_info,
 						 const gchar         *name);
+_GLIB_API
 gboolean	  g_match_info_fetch_named_pos	(const GMatchInfo    *match_info,
 						 const gchar         *name,
 						 gint                *start_pos,
 						 gint                *end_pos);
+_GLIB_API
 gchar		**g_match_info_fetch_all	(const GMatchInfo    *match_info);
 
 G_END_DECLS
diff --git a/glib/gscanner.h b/glib/gscanner.h
index dd932f4..6c8ba19 100644
--- a/glib/gscanner.h
+++ b/glib/gscanner.h
@@ -212,39 +212,58 @@ struct	_GScanner
   GScannerMsgFunc	msg_handler;
 };
 
+_GLIB_API
 GScanner*	g_scanner_new			(const GScannerConfig *config_templ);
+_GLIB_API
 void		g_scanner_destroy		(GScanner	*scanner);
+_GLIB_API
 void		g_scanner_input_file		(GScanner	*scanner,
 						 gint		input_fd);
+_GLIB_API
 void		g_scanner_sync_file_offset	(GScanner	*scanner);
+_GLIB_API
 void		g_scanner_input_text		(GScanner	*scanner,
 						 const	gchar	*text,
 						 guint		text_len);
+_GLIB_API
 GTokenType	g_scanner_get_next_token	(GScanner	*scanner);
+_GLIB_API
 GTokenType	g_scanner_peek_next_token	(GScanner	*scanner);
+_GLIB_API
 GTokenType	g_scanner_cur_token		(GScanner	*scanner);
+_GLIB_API
 GTokenValue	g_scanner_cur_value		(GScanner	*scanner);
+_GLIB_API
 guint		g_scanner_cur_line		(GScanner	*scanner);
+_GLIB_API
 guint		g_scanner_cur_position		(GScanner	*scanner);
+_GLIB_API
 gboolean	g_scanner_eof			(GScanner	*scanner);
+_GLIB_API
 guint		g_scanner_set_scope		(GScanner	*scanner,
 						 guint		 scope_id);
+_GLIB_API
 void		g_scanner_scope_add_symbol	(GScanner	*scanner,
 						 guint		 scope_id,
 						 const gchar	*symbol,
 						 gpointer	value);
+_GLIB_API
 void		g_scanner_scope_remove_symbol	(GScanner	*scanner,
 						 guint		 scope_id,
 						 const gchar	*symbol);
+_GLIB_API
 gpointer	g_scanner_scope_lookup_symbol	(GScanner	*scanner,
 						 guint		 scope_id,
 						 const gchar	*symbol);
+_GLIB_API
 void		g_scanner_scope_foreach_symbol	(GScanner	*scanner,
 						 guint		 scope_id,
 						 GHFunc		 func,
 						 gpointer	 user_data);
+_GLIB_API
 gpointer	g_scanner_lookup_symbol		(GScanner	*scanner,
 						 const gchar	*symbol);
+_GLIB_API
 void		g_scanner_unexp_token		(GScanner	*scanner,
 						 GTokenType	expected_token,
 						 const gchar	*identifier_spec,
@@ -252,9 +271,11 @@ void		g_scanner_unexp_token		(GScanner	*scanner,
 						 const gchar	*symbol_name,
 						 const gchar	*message,
 						 gint		 is_error);
+_GLIB_API
 void		g_scanner_error			(GScanner	*scanner,
 						 const gchar	*format,
 						 ...) G_GNUC_PRINTF (2,3);
+_GLIB_API
 void		g_scanner_warn			(GScanner	*scanner,
 						 const gchar	*format,
 						 ...) G_GNUC_PRINTF (2,3);
diff --git a/glib/gsequence.h b/glib/gsequence.h
index 3e5a03d..a17e0c7 100644
--- a/glib/gsequence.h
+++ b/glib/gsequence.h
@@ -38,71 +38,97 @@ typedef gint (* GSequenceIterCompareFunc) (GSequenceIter *a,
 
 
 /* GSequence */
+_GLIB_API
 GSequence *    g_sequence_new                (GDestroyNotify            data_destroy);
+_GLIB_API
 void           g_sequence_free               (GSequence                *seq);
+_GLIB_API
 gint           g_sequence_get_length         (GSequence                *seq);
+_GLIB_API
 void           g_sequence_foreach            (GSequence                *seq,
                                               GFunc                     func,
                                               gpointer                  user_data);
+_GLIB_API
 void           g_sequence_foreach_range      (GSequenceIter            *begin,
                                               GSequenceIter            *end,
                                               GFunc                     func,
                                               gpointer                  user_data);
+_GLIB_API
 void           g_sequence_sort               (GSequence                *seq,
                                               GCompareDataFunc          cmp_func,
                                               gpointer                  cmp_data);
+_GLIB_API
 void           g_sequence_sort_iter          (GSequence                *seq,
                                               GSequenceIterCompareFunc  cmp_func,
                                               gpointer                  cmp_data);
 
 
 /* Getting iters */
+_GLIB_API
 GSequenceIter *g_sequence_get_begin_iter     (GSequence                *seq);
+_GLIB_API
 GSequenceIter *g_sequence_get_end_iter       (GSequence                *seq);
+_GLIB_API
 GSequenceIter *g_sequence_get_iter_at_pos    (GSequence                *seq,
                                               gint                      pos);
+_GLIB_API
 GSequenceIter *g_sequence_append             (GSequence                *seq,
                                               gpointer                  data);
+_GLIB_API
 GSequenceIter *g_sequence_prepend            (GSequence                *seq,
                                               gpointer                  data);
+_GLIB_API
 GSequenceIter *g_sequence_insert_before      (GSequenceIter            *iter,
                                               gpointer                  data);
+_GLIB_API
 void           g_sequence_move               (GSequenceIter            *src,
                                               GSequenceIter            *dest);
+_GLIB_API
 void           g_sequence_swap               (GSequenceIter            *a,
                                               GSequenceIter            *b);
+_GLIB_API
 GSequenceIter *g_sequence_insert_sorted      (GSequence                *seq,
                                               gpointer                  data,
                                               GCompareDataFunc          cmp_func,
                                               gpointer                  cmp_data);
+_GLIB_API
 GSequenceIter *g_sequence_insert_sorted_iter (GSequence                *seq,
                                               gpointer                  data,
                                               GSequenceIterCompareFunc  iter_cmp,
                                               gpointer                  cmp_data);
+_GLIB_API
 void           g_sequence_sort_changed       (GSequenceIter            *iter,
                                               GCompareDataFunc          cmp_func,
                                               gpointer                  cmp_data);
+_GLIB_API
 void           g_sequence_sort_changed_iter  (GSequenceIter            *iter,
                                               GSequenceIterCompareFunc  iter_cmp,
                                               gpointer                  cmp_data);
+_GLIB_API
 void           g_sequence_remove             (GSequenceIter            *iter);
+_GLIB_API
 void           g_sequence_remove_range       (GSequenceIter            *begin,
                                               GSequenceIter            *end);
+_GLIB_API
 void           g_sequence_move_range         (GSequenceIter            *dest,
                                               GSequenceIter            *begin,
                                               GSequenceIter            *end);
+_GLIB_API
 GSequenceIter *g_sequence_search             (GSequence                *seq,
                                               gpointer                  data,
                                               GCompareDataFunc          cmp_func,
                                               gpointer                  cmp_data);
+_GLIB_API
 GSequenceIter *g_sequence_search_iter        (GSequence                *seq,
                                               gpointer                  data,
                                               GSequenceIterCompareFunc  iter_cmp,
                                               gpointer                  cmp_data);
+_GLIB_API
 GSequenceIter *g_sequence_lookup             (GSequence                *seq,
                                               gpointer                  data,
                                               GCompareDataFunc          cmp_func,
                                               gpointer                  cmp_data);
+_GLIB_API
 GSequenceIter *g_sequence_lookup_iter        (GSequence                *seq,
                                               gpointer                  data,
                                               GSequenceIterCompareFunc  iter_cmp,
@@ -110,24 +136,35 @@ GSequenceIter *g_sequence_lookup_iter        (GSequence                *seq,
 
 
 /* Dereferencing */
+_GLIB_API
 gpointer       g_sequence_get                (GSequenceIter            *iter);
+_GLIB_API
 void           g_sequence_set                (GSequenceIter            *iter,
                                               gpointer                  data);
 
 /* Operations on GSequenceIter * */
+_GLIB_API
 gboolean       g_sequence_iter_is_begin      (GSequenceIter            *iter);
+_GLIB_API
 gboolean       g_sequence_iter_is_end        (GSequenceIter            *iter);
+_GLIB_API
 GSequenceIter *g_sequence_iter_next          (GSequenceIter            *iter);
+_GLIB_API
 GSequenceIter *g_sequence_iter_prev          (GSequenceIter            *iter);
+_GLIB_API
 gint           g_sequence_iter_get_position  (GSequenceIter            *iter);
+_GLIB_API
 GSequenceIter *g_sequence_iter_move          (GSequenceIter            *iter,
                                               gint                      delta);
+_GLIB_API
 GSequence *    g_sequence_iter_get_sequence  (GSequenceIter            *iter);
 
 
 /* Search */
+_GLIB_API
 gint           g_sequence_iter_compare       (GSequenceIter            *a,
                                               GSequenceIter            *b);
+_GLIB_API
 GSequenceIter *g_sequence_range_get_midpoint (GSequenceIter            *begin,
                                               GSequenceIter            *end);
 
diff --git a/glib/gshell.h b/glib/gshell.h
index ddb4ec5..0b553e4 100644
--- a/glib/gshell.h
+++ b/glib/gshell.h
@@ -40,11 +40,15 @@ typedef enum
   G_SHELL_ERROR_FAILED
 } GShellError;
 
+_GLIB_API
 GQuark g_shell_error_quark (void);
 
+_GLIB_API
 gchar*   g_shell_quote      (const gchar   *unquoted_string);
+_GLIB_API
 gchar*   g_shell_unquote    (const gchar   *quoted_string,
                              GError       **error);
+_GLIB_API
 gboolean g_shell_parse_argv (const gchar   *command_line,
                              gint          *argcp,
                              gchar       ***argvp,
diff --git a/glib/gslice.h b/glib/gslice.h
index 7e0c5b1..eb947de 100644
--- a/glib/gslice.h
+++ b/glib/gslice.h
@@ -30,12 +30,17 @@ G_BEGIN_DECLS
 
 /* slices - fast allocation/release of small memory blocks
  */
+_GLIB_API
 gpointer g_slice_alloc          	(gsize	       block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
+_GLIB_API
 gpointer g_slice_alloc0         	(gsize         block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
+_GLIB_API
 gpointer g_slice_copy                   (gsize         block_size,
                                          gconstpointer mem_block) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
+_GLIB_API
 void     g_slice_free1          	(gsize         block_size,
 					 gpointer      mem_block);
+_GLIB_API
 void     g_slice_free_chain_with_offset (gsize         block_size,
 					 gpointer      mem_chain,
 					 gsize         next_offset);
@@ -86,6 +91,7 @@ GLIB_DEPRECATED_IN_2_34
 gint64*  g_slice_get_config_state  (GSliceConfig ckey, gint64 address, guint *n_values);
 
 #ifdef G_ENABLE_DEBUG
+_GLIB_API
 void     g_slice_debug_tree_statistics (void);
 #endif
 
diff --git a/glib/gslist.h b/glib/gslist.h
index c61fd2f..15515fc 100644
--- a/glib/gslist.h
+++ b/glib/gslist.h
@@ -46,67 +46,95 @@ struct _GSList
 
 /* Singly linked lists
  */
+_GLIB_API
 GSList*  g_slist_alloc                   (void) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 void     g_slist_free                    (GSList           *list);
+_GLIB_API
 void     g_slist_free_1                  (GSList           *list);
 #define	 g_slist_free1		         g_slist_free_1
+_GLIB_API
 void     g_slist_free_full               (GSList           *list,
 					  GDestroyNotify    free_func);
+_GLIB_API
 GSList*  g_slist_append                  (GSList           *list,
 					  gpointer          data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_prepend                 (GSList           *list,
 					  gpointer          data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_insert                  (GSList           *list,
 					  gpointer          data,
 					  gint              position) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_insert_sorted           (GSList           *list,
 					  gpointer          data,
 					  GCompareFunc      func) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_insert_sorted_with_data (GSList           *list,
 					  gpointer          data,
 					  GCompareDataFunc  func,
 					  gpointer          user_data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_insert_before           (GSList           *slist,
 					  GSList           *sibling,
 					  gpointer          data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_concat                  (GSList           *list1,
 					  GSList           *list2) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_remove                  (GSList           *list,
 					  gconstpointer     data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_remove_all              (GSList           *list,
 					  gconstpointer     data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_remove_link             (GSList           *list,
 					  GSList           *link_) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_delete_link             (GSList           *list,
 					  GSList           *link_) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_reverse                 (GSList           *list) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_copy                    (GSList           *list) G_GNUC_WARN_UNUSED_RESULT;
 
 GLIB_AVAILABLE_IN_2_34
 GSList*  g_slist_copy_deep               (GSList            *list,
 					  GCopyFunc         func,
 					  gpointer          user_data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_nth                     (GSList           *list,
 					  guint             n);
+_GLIB_API
 GSList*  g_slist_find                    (GSList           *list,
 					  gconstpointer     data);
+_GLIB_API
 GSList*  g_slist_find_custom             (GSList           *list,
 					  gconstpointer     data,
 					  GCompareFunc      func);
+_GLIB_API
 gint     g_slist_position                (GSList           *list,
 					  GSList           *llink);
+_GLIB_API
 gint     g_slist_index                   (GSList           *list,
 					  gconstpointer     data);
+_GLIB_API
 GSList*  g_slist_last                    (GSList           *list);
+_GLIB_API
 guint    g_slist_length                  (GSList           *list);
+_GLIB_API
 void     g_slist_foreach                 (GSList           *list,
 					  GFunc             func,
 					  gpointer          user_data);
+_GLIB_API
 GSList*  g_slist_sort                    (GSList           *list,
 					  GCompareFunc      compare_func) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 GSList*  g_slist_sort_with_data          (GSList           *list,
 					  GCompareDataFunc  compare_func,
 					  gpointer          user_data) G_GNUC_WARN_UNUSED_RESULT;
+_GLIB_API
 gpointer g_slist_nth_data                (GSList           *list,
 					  guint             n);
 
diff --git a/glib/gspawn.h b/glib/gspawn.h
index 3145641..d73f6e0 100644
--- a/glib/gspawn.h
+++ b/glib/gspawn.h
@@ -183,9 +183,12 @@ typedef enum
   G_SPAWN_SEARCH_PATH_FROM_ENVP  = 1 << 7
 } GSpawnFlags;
 
+_GLIB_API
 GQuark g_spawn_error_quark (void);
+_GLIB_API
 GQuark g_spawn_exit_error_quark (void);
 
+_GLIB_API
 gboolean g_spawn_async (const gchar           *working_directory,
                         gchar                **argv,
                         gchar                **envp,
@@ -199,6 +202,7 @@ gboolean g_spawn_async (const gchar           *working_directory,
 /* Opens pipes for non-NULL standard_output, standard_input, standard_error,
  * and returns the parent's end of the pipes.
  */
+_GLIB_API
 gboolean g_spawn_async_with_pipes (const gchar          *working_directory,
                                    gchar               **argv,
                                    gchar               **envp,
@@ -216,6 +220,7 @@ gboolean g_spawn_async_with_pipes (const gchar          *working_directory,
  * standard output or error of the command will be placed there.
  */
 
+_GLIB_API
 gboolean g_spawn_sync         (const gchar          *working_directory,
                                gchar               **argv,
                                gchar               **envp,
@@ -227,11 +232,13 @@ gboolean g_spawn_sync         (const gchar          *working_directory,
                                gint                 *exit_status,
                                GError              **error);
 
+_GLIB_API
 gboolean g_spawn_command_line_sync  (const gchar          *command_line,
                                      gchar               **standard_output,
                                      gchar               **standard_error,
                                      gint                 *exit_status,
                                      GError              **error);
+_GLIB_API
 gboolean g_spawn_command_line_async (const gchar          *command_line,
                                      GError              **error);
 
@@ -239,6 +246,7 @@ GLIB_AVAILABLE_IN_2_34
 gboolean g_spawn_check_exit_status (gint      exit_status,
 				    GError  **error);
 
+_GLIB_API
 void g_spawn_close_pid (GPid pid);
 
 #ifdef G_OS_WIN32
@@ -248,6 +256,7 @@ void g_spawn_close_pid (GPid pid);
 #define g_spawn_command_line_sync  g_spawn_command_line_sync_utf8
 #define g_spawn_command_line_async g_spawn_command_line_async_utf8
 
+_GLIB_API
 gboolean g_spawn_async_utf8              (const gchar           *working_directory,
                                           gchar                **argv,
                                           gchar                **envp,
@@ -256,6 +265,7 @@ gboolean g_spawn_async_utf8              (const gchar           *working_directo
                                           gpointer               user_data,
                                           GPid                  *child_pid,
                                           GError               **error);
+_GLIB_API
 gboolean g_spawn_async_with_pipes_utf8   (const gchar           *working_directory,
                                           gchar                **argv,
                                           gchar                **envp,
@@ -267,6 +277,7 @@ gboolean g_spawn_async_with_pipes_utf8   (const gchar           *working_directo
                                           gint                  *standard_output,
                                           gint                  *standard_error,
                                           GError               **error);
+_GLIB_API
 gboolean g_spawn_sync_utf8               (const gchar           *working_directory,
                                           gchar                **argv,
                                           gchar                **envp,
@@ -278,11 +289,13 @@ gboolean g_spawn_sync_utf8               (const gchar           *working_directo
                                           gint                  *exit_status,
                                           GError               **error);
 
+_GLIB_API
 gboolean g_spawn_command_line_sync_utf8  (const gchar           *command_line,
                                           gchar                **standard_output,
                                           gchar                **standard_error,
                                           gint                  *exit_status,
                                           GError               **error);
+_GLIB_API
 gboolean g_spawn_command_line_async_utf8 (const gchar           *command_line,
                                           GError               **error);
 #endif
diff --git a/glib/gstdio.h b/glib/gstdio.h
index 08aea7d..d727f62 100644
--- a/glib/gstdio.h
+++ b/glib/gstdio.h
@@ -74,13 +74,17 @@ typedef struct stat GStatBuf;
 #define g_utime   utime
 #endif
 
+_GLIB_API
 int g_access (const gchar *filename,
 	      int          mode);
 
+_GLIB_API
 int g_chdir  (const gchar *path);
 
+_GLIB_API
 int g_unlink (const gchar *filename);
 
+_GLIB_API
 int g_rmdir  (const gchar *filename);
 
 #else /* ! G_OS_UNIX */
@@ -95,42 +99,56 @@ int g_rmdir  (const gchar *filename);
  * API.
  */
 
+_GLIB_API
 int g_access    (const gchar *filename,
 		 int          mode);
 
+_GLIB_API
 int g_chmod     (const gchar *filename,
 		 int          mode);
 
+_GLIB_API
 int g_open      (const gchar *filename,
                  int          flags,
                  int          mode);
 
+_GLIB_API
 int g_creat     (const gchar *filename,
                  int          mode);
 
+_GLIB_API
 int g_rename    (const gchar *oldfilename,
                  const gchar *newfilename);
 
+_GLIB_API
 int g_mkdir     (const gchar *filename,
                  int          mode);
 
+_GLIB_API
 int g_chdir     (const gchar *path);
 
+_GLIB_API
 int g_stat      (const gchar *filename,
                  GStatBuf    *buf);
 
+_GLIB_API
 int g_lstat     (const gchar *filename,
                  GStatBuf    *buf);
 
+_GLIB_API
 int g_unlink    (const gchar *filename);
 
+_GLIB_API
 int g_remove    (const gchar *filename);
 
+_GLIB_API
 int g_rmdir     (const gchar *filename);
 
+_GLIB_API
 FILE *g_fopen   (const gchar *filename,
                  const gchar *mode);
 
+_GLIB_API
 FILE *g_freopen (const gchar *filename,
                  const gchar *mode,
                  FILE        *stream);
@@ -139,6 +157,7 @@ struct utimbuf;			/* Don't need the real definition of struct utimbuf when just
 				 * including this header.
 				 */
 
+_GLIB_API
 int g_utime     (const gchar    *filename,
 		 struct utimbuf *utb);
 
diff --git a/glib/gstrfuncs.h b/glib/gstrfuncs.h
index 68c89fd..be15b90 100644
--- a/glib/gstrfuncs.h
+++ b/glib/gstrfuncs.h
@@ -87,54 +87,74 @@ GLIB_VAR const guint16 * const g_ascii_table;
 #define g_ascii_isxdigit(c) \
   ((g_ascii_table[(guchar) (c)] & G_ASCII_XDIGIT) != 0)
 
+_GLIB_API
 gchar                 g_ascii_tolower  (gchar        c) G_GNUC_CONST;
+_GLIB_API
 gchar                 g_ascii_toupper  (gchar        c) G_GNUC_CONST;
 
+_GLIB_API
 gint                  g_ascii_digit_value  (gchar    c) G_GNUC_CONST;
+_GLIB_API
 gint                  g_ascii_xdigit_value (gchar    c) G_GNUC_CONST;
 
 /* String utility functions that modify a string argument or
  * return a constant string that must not be freed.
  */
 #define	 G_STR_DELIMITERS	"_-|> <."
+_GLIB_API
 gchar*	              g_strdelimit     (gchar	     *string,
 					const gchar  *delimiters,
 					gchar	      new_delimiter);
+_GLIB_API
 gchar*	              g_strcanon       (gchar        *string,
 					const gchar  *valid_chars,
 					gchar         substitutor);
+_GLIB_API
 const gchar *         g_strerror       (gint	      errnum) G_GNUC_CONST;
+_GLIB_API
 const gchar *         g_strsignal      (gint	      signum) G_GNUC_CONST;
+_GLIB_API
 gchar *	              g_strreverse     (gchar	     *string);
+_GLIB_API
 gsize	              g_strlcpy	       (gchar	     *dest,
 					const gchar  *src,
 					gsize         dest_size);
+_GLIB_API
 gsize	              g_strlcat        (gchar	     *dest,
 					const gchar  *src,
 					gsize         dest_size);
+_GLIB_API
 gchar *               g_strstr_len     (const gchar  *haystack,
 					gssize        haystack_len,
 					const gchar  *needle);
+_GLIB_API
 gchar *               g_strrstr        (const gchar  *haystack,
 					const gchar  *needle);
+_GLIB_API
 gchar *               g_strrstr_len    (const gchar  *haystack,
 					gssize        haystack_len,
 					const gchar  *needle);
 
+_GLIB_API
 gboolean              g_str_has_suffix (const gchar  *str,
 					const gchar  *suffix);
+_GLIB_API
 gboolean              g_str_has_prefix (const gchar  *str,
 					const gchar  *prefix);
 
 /* String to/from double conversion functions */
 
+_GLIB_API
 gdouble	              g_strtod         (const gchar  *nptr,
 					gchar	    **endptr);
+_GLIB_API
 gdouble	              g_ascii_strtod   (const gchar  *nptr,
 					gchar	    **endptr);
+_GLIB_API
 guint64		      g_ascii_strtoull (const gchar *nptr,
 					gchar      **endptr,
 					guint        base);
+_GLIB_API
 gint64		      g_ascii_strtoll  (const gchar *nptr,
 					gchar      **endptr,
 					guint        base);
@@ -142,28 +162,36 @@ gint64		      g_ascii_strtoll  (const gchar *nptr,
  * g_ascii_dtostr can produce.
  * Then add 10 for good measure */
 #define G_ASCII_DTOSTR_BUF_SIZE (29 + 10)
+_GLIB_API
 gchar *               g_ascii_dtostr   (gchar        *buffer,
 					gint          buf_len,
 					gdouble       d);
+_GLIB_API
 gchar *               g_ascii_formatd  (gchar        *buffer,
 					gint          buf_len,
 					const gchar  *format,
 					gdouble       d);
 
 /* removes leading spaces */
+_GLIB_API
 gchar*                g_strchug        (gchar        *string);
 /* removes trailing spaces */
+_GLIB_API
 gchar*                g_strchomp       (gchar        *string);
 /* removes leading & trailing spaces */
 #define g_strstrip( string )	g_strchomp (g_strchug (string))
 
+_GLIB_API
 gint                  g_ascii_strcasecmp  (const gchar *s1,
 					   const gchar *s2);
+_GLIB_API
 gint                  g_ascii_strncasecmp (const gchar *s1,
 					   const gchar *s2,
 					   gsize        n);
+_GLIB_API
 gchar*                g_ascii_strdown     (const gchar *str,
 					   gssize       len) G_GNUC_MALLOC;
+_GLIB_API
 gchar*                g_ascii_strup       (const gchar *str,
 					   gssize       len) G_GNUC_MALLOC;
 
@@ -184,17 +212,24 @@ gchar*                g_strup          (gchar       *string);
 /* String utility functions that return a newly allocated string which
  * ought to be freed with g_free from the caller at some point.
  */
+_GLIB_API
 gchar*	              g_strdup	       (const gchar *str) G_GNUC_MALLOC;
+_GLIB_API
 gchar*	              g_strdup_printf  (const gchar *format,
 					...) G_GNUC_PRINTF (1, 2) G_GNUC_MALLOC;
+_GLIB_API
 gchar*	              g_strdup_vprintf (const gchar *format,
 					va_list      args) G_GNUC_MALLOC;
+_GLIB_API
 gchar*	              g_strndup	       (const gchar *str,
 					gsize        n) G_GNUC_MALLOC;  
+_GLIB_API
 gchar*	              g_strnfill       (gsize        length,  
 					gchar        fill_char) G_GNUC_MALLOC;
+_GLIB_API
 gchar*	              g_strconcat      (const gchar *string1,
 					...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
+_GLIB_API
 gchar*                g_strjoin	       (const gchar  *separator,
 					...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
 
@@ -202,6 +237,7 @@ gchar*                g_strjoin	       (const gchar  *separator,
  * sequences. Inverse of g_strescape. The recognized sequences are \b
  * \f \n \r \t \\ \" and the octal format.
  */
+_GLIB_API
 gchar*                g_strcompress    (const gchar *source) G_GNUC_MALLOC;
 
 /* Copy a string escaping nonprintable characters like in C strings.
@@ -212,9 +248,11 @@ gchar*                g_strcompress    (const gchar *source) G_GNUC_MALLOC;
  * Luckily this function wasn't used much, using NULL as second parameter
  * provides mostly identical semantics.
  */
+_GLIB_API
 gchar*                g_strescape      (const gchar *source,
 					const gchar *exceptions) G_GNUC_MALLOC;
 
+_GLIB_API
 gpointer              g_memdup	       (gconstpointer mem,
 					guint	       byte_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(2);
 
@@ -227,18 +265,25 @@ gpointer              g_memdup	       (gconstpointer mem,
  * g_strdupv() copies a NULL-terminated array of strings
  * g_strv_length() returns the length of a NULL-terminated array of strings
  */
+_GLIB_API
 gchar**	              g_strsplit       (const gchar  *string,
 					const gchar  *delimiter,
 					gint          max_tokens) G_GNUC_MALLOC;
+_GLIB_API
 gchar **	      g_strsplit_set   (const gchar *string,
 					const gchar *delimiters,
 					gint         max_tokens) G_GNUC_MALLOC;
+_GLIB_API
 gchar*                g_strjoinv       (const gchar  *separator,
 					gchar       **str_array) G_GNUC_MALLOC;
+_GLIB_API
 void                  g_strfreev       (gchar       **str_array);
+_GLIB_API
 gchar**               g_strdupv        (gchar       **str_array) G_GNUC_MALLOC;
+_GLIB_API
 guint                 g_strv_length    (gchar       **str_array);
 
+_GLIB_API
 gchar*                g_stpcpy         (gchar        *dest,
                                         const char   *src);
 
diff --git a/glib/gstring.h b/glib/gstring.h
index 7543490..693adc9 100644
--- a/glib/gstring.h
+++ b/glib/gstring.h
@@ -47,78 +47,109 @@ struct _GString
   gsize allocated_len;
 };
 
+_GLIB_API
 GString*     g_string_new               (const gchar     *init);
+_GLIB_API
 GString*     g_string_new_len           (const gchar     *init,
                                          gssize           len);
+_GLIB_API
 GString*     g_string_sized_new         (gsize            dfl_size);
+_GLIB_API
 gchar*       g_string_free              (GString         *string,
                                          gboolean         free_segment);
 GLIB_AVAILABLE_IN_2_34
 GBytes*      g_string_free_to_bytes     (GString         *string);
+_GLIB_API
 gboolean     g_string_equal             (const GString   *v,
                                          const GString   *v2);
+_GLIB_API
 guint        g_string_hash              (const GString   *str);
+_GLIB_API
 GString*     g_string_assign            (GString         *string,
                                          const gchar     *rval);
+_GLIB_API
 GString*     g_string_truncate          (GString         *string,
                                          gsize            len);
+_GLIB_API
 GString*     g_string_set_size          (GString         *string,
                                          gsize            len);
+_GLIB_API
 GString*     g_string_insert_len        (GString         *string,
                                          gssize           pos,
                                          const gchar     *val,
                                          gssize           len);
+_GLIB_API
 GString*     g_string_append            (GString         *string,
                                          const gchar     *val);
+_GLIB_API
 GString*     g_string_append_len        (GString         *string,
                                          const gchar     *val,
                                          gssize           len);
+_GLIB_API
 GString*     g_string_append_c          (GString         *string,
                                          gchar            c);
+_GLIB_API
 GString*     g_string_append_unichar    (GString         *string,
                                          gunichar         wc);
+_GLIB_API
 GString*     g_string_prepend           (GString         *string,
                                          const gchar     *val);
+_GLIB_API
 GString*     g_string_prepend_c         (GString         *string,
                                          gchar            c);
+_GLIB_API
 GString*     g_string_prepend_unichar   (GString         *string,
                                          gunichar         wc);
+_GLIB_API
 GString*     g_string_prepend_len       (GString         *string,
                                          const gchar     *val,
                                          gssize           len);
+_GLIB_API
 GString*     g_string_insert            (GString         *string,
                                          gssize           pos,
                                          const gchar     *val);
+_GLIB_API
 GString*     g_string_insert_c          (GString         *string,
                                          gssize           pos,
                                          gchar            c);
+_GLIB_API
 GString*     g_string_insert_unichar    (GString         *string,
                                          gssize           pos,
                                          gunichar         wc);
+_GLIB_API
 GString*     g_string_overwrite         (GString         *string,
                                          gsize            pos,
                                          const gchar     *val);
+_GLIB_API
 GString*     g_string_overwrite_len     (GString         *string,
                                          gsize            pos,
                                          const gchar     *val,
                                          gssize           len);
+_GLIB_API
 GString*     g_string_erase             (GString         *string,
                                          gssize           pos,
                                          gssize           len);
+_GLIB_API
 GString*     g_string_ascii_down        (GString         *string);
+_GLIB_API
 GString*     g_string_ascii_up          (GString         *string);
+_GLIB_API
 void         g_string_vprintf           (GString         *string,
                                          const gchar     *format,
                                          va_list          args);
+_GLIB_API
 void         g_string_printf            (GString         *string,
                                          const gchar     *format,
                                          ...) G_GNUC_PRINTF (2, 3);
+_GLIB_API
 void         g_string_append_vprintf    (GString         *string,
                                          const gchar     *format,
                                          va_list          args);
+_GLIB_API
 void         g_string_append_printf     (GString         *string,
                                          const gchar     *format,
                                          ...) G_GNUC_PRINTF (2, 3);
+_GLIB_API
 GString*     g_string_append_uri_escaped (GString         *string,
                                           const gchar     *unescaped,
                                           const gchar     *reserved_chars_allowed,
diff --git a/glib/gstringchunk.h b/glib/gstringchunk.h
index 5ab2e8a..985de96 100644
--- a/glib/gstringchunk.h
+++ b/glib/gstringchunk.h
@@ -37,14 +37,20 @@ G_BEGIN_DECLS
 
 typedef struct _GStringChunk GStringChunk;
 
+_GLIB_API
 GStringChunk* g_string_chunk_new          (gsize size);
+_GLIB_API
 void          g_string_chunk_free         (GStringChunk *chunk);
+_GLIB_API
 void          g_string_chunk_clear        (GStringChunk *chunk);
+_GLIB_API
 gchar*        g_string_chunk_insert       (GStringChunk *chunk,
                                            const gchar  *string);
+_GLIB_API
 gchar*        g_string_chunk_insert_len   (GStringChunk *chunk,
                                            const gchar  *string,
                                            gssize        len);
+_GLIB_API
 gchar*        g_string_chunk_insert_const (GStringChunk *chunk,
                                            const gchar  *string);
 
diff --git a/glib/gtestutils.h b/glib/gtestutils.h
index 967fa63..22da87f 100644
--- a/glib/gtestutils.h
+++ b/glib/gtestutils.h
@@ -76,18 +76,22 @@ typedef void (*GTestFixtureFunc) (gpointer      fixture,
                                                  #expr); } while (0)
 #endif /* !G_DISABLE_ASSERT */
 
+_GLIB_API
 int     g_strcmp0                       (const char     *str1,
                                          const char     *str2);
 
 /* report performance results */
+_GLIB_API
 void    g_test_minimized_result         (double          minimized_quantity,
                                          const char     *format,
                                          ...) G_GNUC_PRINTF (2, 3);
+_GLIB_API
 void    g_test_maximized_result         (double          maximized_quantity,
                                          const char     *format,
                                          ...) G_GNUC_PRINTF (2, 3);
 
 /* initialize testing framework */
+_GLIB_API
 void    g_test_init                     (int            *argc,
                                          char         ***argv,
                                          ...);
@@ -100,22 +104,27 @@ void    g_test_init                     (int            *argc,
 #define g_test_quiet()                  (g_test_config_vars->test_quiet)
 #define g_test_undefined()              (g_test_config_vars->test_undefined)
 /* run all tests under toplevel suite (path: /) */
+_GLIB_API
 int     g_test_run                      (void);
 /* hook up a test functions under test path */
+_GLIB_API
 void    g_test_add_func                 (const char     *testpath,
                                          GTestFunc       test_func);
 
+_GLIB_API
 void    g_test_add_data_func            (const char     *testpath,
                                          gconstpointer   test_data,
                                          GTestDataFunc   test_func);
 
 GLIB_AVAILABLE_IN_2_34
+_GLIB_API
 void    g_test_add_data_func_full       (const char     *testpath,
                                          gpointer        test_data,
                                          GTestDataFunc   test_func,
                                          GDestroyNotify  data_free_func);
 
 /* tell about failure */
+_GLIB_API
 void    g_test_fail                     (void);
 
 /* hook up a test with fixture under test path */
@@ -132,17 +141,25 @@ void    g_test_fail                     (void);
 					} G_STMT_END
 
 /* add test messages to the test report */
+_GLIB_API
 void    g_test_message                  (const char *format,
                                          ...) G_GNUC_PRINTF (1, 2);
+_GLIB_API
 void    g_test_bug_base                 (const char *uri_pattern);
+_GLIB_API
 void    g_test_bug                      (const char *bug_uri_snippet);
 /* measure test timings */
+_GLIB_API
 void    g_test_timer_start              (void);
+_GLIB_API
 double  g_test_timer_elapsed            (void); /* elapsed seconds */
+_GLIB_API
 double  g_test_timer_last               (void); /* repeat last elapsed() result */
 
 /* automatically g_free or g_object_unref upon teardown */
+_GLIB_API
 void    g_test_queue_free               (gpointer gfree_pointer);
+_GLIB_API
 void    g_test_queue_destroy            (GDestroyNotify destroy_func,
                                          gpointer       destroy_data);
 #define g_test_queue_unref(gobject)     g_test_queue_destroy (g_object_unref, gobject)
@@ -153,9 +170,12 @@ typedef enum {
   G_TEST_TRAP_SILENCE_STDERR    = 1 << 8,
   G_TEST_TRAP_INHERIT_STDIN     = 1 << 9
 } GTestTrapFlags;
+_GLIB_API
 gboolean g_test_trap_fork               (guint64              usec_timeout,
                                          GTestTrapFlags       test_trap_flags);
+_GLIB_API
 gboolean g_test_trap_has_passed         (void);
+_GLIB_API
 gboolean g_test_trap_reached_timeout    (void);
 #define  g_test_trap_assert_passed()                      g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 0, 0)
 #define  g_test_trap_assert_failed()                      g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 1, 0)
@@ -166,45 +186,59 @@ gboolean g_test_trap_reached_timeout    (void);
 
 /* provide seed-able random numbers for tests */
 #define  g_test_rand_bit()              (0 != (g_test_rand_int() & (1 << 15)))
+_GLIB_API
 gint32   g_test_rand_int                (void);
+_GLIB_API
 gint32   g_test_rand_int_range          (gint32          begin,
                                          gint32          end);
+_GLIB_API
 double   g_test_rand_double             (void);
+_GLIB_API
 double   g_test_rand_double_range       (double          range_start,
                                          double          range_end);
 
 /* semi-internal API */
+_GLIB_API
 GTestCase*    g_test_create_case        (const char       *test_name,
                                          gsize             data_size,
                                          gconstpointer     test_data,
                                          GTestFixtureFunc  data_setup,
                                          GTestFixtureFunc  data_test,
                                          GTestFixtureFunc  data_teardown);
+_GLIB_API
 GTestSuite*   g_test_create_suite       (const char       *suite_name);
+_GLIB_API
 GTestSuite*   g_test_get_root           (void);
+_GLIB_API
 void          g_test_suite_add          (GTestSuite     *suite,
                                          GTestCase      *test_case);
+_GLIB_API
 void          g_test_suite_add_suite    (GTestSuite     *suite,
                                          GTestSuite     *nestedsuite);
+_GLIB_API
 int           g_test_run_suite          (GTestSuite     *suite);
 
 /* internal ABI */
+_GLIB_API
 void    g_test_trap_assertions          (const char     *domain,
                                          const char     *file,
                                          int             line,
                                          const char     *func,
                                          guint64         assertion_flags, /* 0-pass, 1-fail, 2-outpattern, 4-errpattern */
                                          const char     *pattern);
+_GLIB_API
 void    g_assertion_message             (const char     *domain,
                                          const char     *file,
                                          int             line,
                                          const char     *func,
                                          const char     *message) G_GNUC_NORETURN;
+_GLIB_API
 void    g_assertion_message_expr        (const char     *domain,
                                          const char     *file,
                                          int             line,
                                          const char     *func,
                                          const char     *expr) G_GNUC_NORETURN;
+_GLIB_API
 void    g_assertion_message_cmpstr      (const char     *domain,
                                          const char     *file,
                                          int             line,
@@ -213,6 +247,7 @@ void    g_assertion_message_cmpstr      (const char     *domain,
                                          const char     *arg1,
                                          const char     *cmp,
                                          const char     *arg2) G_GNUC_NORETURN;
+_GLIB_API
 void    g_assertion_message_cmpnum      (const char     *domain,
                                          const char     *file,
                                          int             line,
@@ -222,6 +257,7 @@ void    g_assertion_message_cmpnum      (const char     *domain,
                                          const char     *cmp,
                                          long double     arg2,
                                          char            numtype) G_GNUC_NORETURN;
+_GLIB_API
 void    g_assertion_message_error       (const char     *domain,
                                          const char     *file,
                                          int             line,
@@ -230,6 +266,7 @@ void    g_assertion_message_error       (const char     *domain,
                                          const GError   *error,
                                          GQuark          error_domain,
                                          int             error_code) G_GNUC_NORETURN;
+_GLIB_API
 void    g_test_add_vtable               (const char     *testpath,
                                          gsize           data_size,
                                          gconstpointer   test_data,
@@ -273,13 +310,19 @@ typedef struct {
   GSList      *msgs;
 } GTestLogBuffer;
 
+_GLIB_API
 const char*     g_test_log_type_name    (GTestLogType    log_type);
+_GLIB_API
 GTestLogBuffer* g_test_log_buffer_new   (void);
+_GLIB_API
 void            g_test_log_buffer_free  (GTestLogBuffer *tbuffer);
+_GLIB_API
 void            g_test_log_buffer_push  (GTestLogBuffer *tbuffer,
                                          guint           n_bytes,
                                          const guint8   *bytes);
+_GLIB_API
 GTestLogMsg*    g_test_log_buffer_pop   (GTestLogBuffer *tbuffer);
+_GLIB_API
 void            g_test_log_msg_free     (GTestLogMsg    *tmsg);
 
 /**
@@ -299,13 +342,16 @@ typedef gboolean        (*GTestLogFatalFunc)    (const gchar    *log_domain,
                                                  GLogLevelFlags  log_level,
                                                  const gchar    *message,
                                                  gpointer        user_data);
+_GLIB_API
 void
 g_test_log_set_fatal_handler            (GTestLogFatalFunc log_func,
                                          gpointer          user_data);
 
+_GLIB_API
 void    g_test_expect_message                    (const gchar    *log_domain,
                                                   GLogLevelFlags  log_level,
                                                   const gchar    *pattern);
+_GLIB_API
 void    g_test_assert_expected_messages_internal (const char     *domain,
                                                   const char     *file,
                                                   int             line,
diff --git a/glib/gthread.h b/glib/gthread.h
index 710b64d..128ab94 100644
--- a/glib/gthread.h
+++ b/glib/gthread.h
@@ -37,6 +37,7 @@
 G_BEGIN_DECLS
 
 #define G_THREAD_ERROR g_thread_error_quark ()
+_GLIB_API
 GQuark g_thread_error_quark (void);
 
 typedef enum
@@ -150,9 +151,13 @@ GThread *       g_thread_try_new                (const gchar    *name,
                                                  GThreadFunc     func,
                                                  gpointer        data,
                                                  GError        **error);
+_GLIB_API
 GThread *       g_thread_self                   (void);
+_GLIB_API
 void            g_thread_exit                   (gpointer        retval);
+_GLIB_API
 gpointer        g_thread_join                   (GThread        *thread);
+_GLIB_API
 void            g_thread_yield                  (void);
 
 
@@ -160,8 +165,11 @@ GLIB_AVAILABLE_IN_2_32
 void            g_mutex_init                    (GMutex         *mutex);
 GLIB_AVAILABLE_IN_2_32
 void            g_mutex_clear                   (GMutex         *mutex);
+_GLIB_API
 void            g_mutex_lock                    (GMutex         *mutex);
+_GLIB_API
 gboolean        g_mutex_trylock                 (GMutex         *mutex);
+_GLIB_API
 void            g_mutex_unlock                  (GMutex         *mutex);
 
 GLIB_AVAILABLE_IN_2_32
@@ -196,26 +204,34 @@ GLIB_AVAILABLE_IN_2_32
 void            g_cond_init                     (GCond          *cond);
 GLIB_AVAILABLE_IN_2_32
 void            g_cond_clear                    (GCond          *cond);
+_GLIB_API
 void            g_cond_wait                     (GCond          *cond,
                                                  GMutex         *mutex);
+_GLIB_API
 void            g_cond_signal                   (GCond          *cond);
+_GLIB_API
 void            g_cond_broadcast                (GCond          *cond);
 GLIB_AVAILABLE_IN_2_32
 gboolean        g_cond_wait_until               (GCond          *cond,
                                                  GMutex         *mutex,
                                                  gint64          end_time);
 
+_GLIB_API
 gpointer        g_private_get                   (GPrivate       *key);
+_GLIB_API
 void            g_private_set                   (GPrivate       *key,
                                                  gpointer        value);
 GLIB_AVAILABLE_IN_2_32
 void            g_private_replace               (GPrivate       *key,
                                                  gpointer        value);
 
+_GLIB_API
 gpointer        g_once_impl                     (GOnce          *once,
                                                  GThreadFunc     func,
                                                  gpointer        arg);
+_GLIB_API
 gboolean        g_once_init_enter               (volatile void  *location);
+_GLIB_API
 void            g_once_init_leave               (volatile void  *location,
                                                  gsize           result);
 
diff --git a/glib/gthreadpool.h b/glib/gthreadpool.h
index 3a1f298..3fe3ccb 100644
--- a/glib/gthreadpool.h
+++ b/glib/gthreadpool.h
@@ -47,32 +47,46 @@ struct _GThreadPool
   gboolean exclusive;
 };
 
+_GLIB_API
 GThreadPool *   g_thread_pool_new               (GFunc            func,
                                                  gpointer         user_data,
                                                  gint             max_threads,
                                                  gboolean         exclusive,
                                                  GError         **error);
+_GLIB_API
 void            g_thread_pool_free              (GThreadPool     *pool,
                                                  gboolean         immediate,
                                                  gboolean         wait_);
+_GLIB_API
 gboolean        g_thread_pool_push              (GThreadPool     *pool,
                                                  gpointer         data,
                                                  GError         **error);
+_GLIB_API
 guint           g_thread_pool_unprocessed       (GThreadPool     *pool);
+_GLIB_API
 void            g_thread_pool_set_sort_function (GThreadPool      *pool,
                                                  GCompareDataFunc  func,
                                                  gpointer          user_data);
+_GLIB_API
 gboolean        g_thread_pool_set_max_threads   (GThreadPool     *pool,
                                                  gint             max_threads,
                                                  GError         **error);
+_GLIB_API
 gint            g_thread_pool_get_max_threads   (GThreadPool     *pool);
+_GLIB_API
 guint           g_thread_pool_get_num_threads   (GThreadPool     *pool);
 
+_GLIB_API
 void            g_thread_pool_set_max_unused_threads (gint  max_threads);
+_GLIB_API
 gint            g_thread_pool_get_max_unused_threads (void);
+_GLIB_API
 guint           g_thread_pool_get_num_unused_threads (void);
+_GLIB_API
 void            g_thread_pool_stop_unused_threads    (void);
+_GLIB_API
 void            g_thread_pool_set_max_idle_time      (guint interval);
+_GLIB_API
 guint           g_thread_pool_get_max_idle_time      (void);
 
 G_END_DECLS
diff --git a/glib/gtimer.h b/glib/gtimer.h
index b927fc3..35a8240 100644
--- a/glib/gtimer.h
+++ b/glib/gtimer.h
@@ -43,21 +43,32 @@ typedef struct _GTimer		GTimer;
 
 #define G_USEC_PER_SEC 1000000
 
+_GLIB_API
 GTimer*  g_timer_new	         (void);
+_GLIB_API
 void	 g_timer_destroy         (GTimer      *timer);
+_GLIB_API
 void	 g_timer_start	         (GTimer      *timer);
+_GLIB_API
 void	 g_timer_stop	         (GTimer      *timer);
+_GLIB_API
 void	 g_timer_reset	         (GTimer      *timer);
+_GLIB_API
 void	 g_timer_continue        (GTimer      *timer);
+_GLIB_API
 gdouble  g_timer_elapsed         (GTimer      *timer,
 				  gulong      *microseconds);
 
+_GLIB_API
 void     g_usleep                (gulong       microseconds);
 
+_GLIB_API
 void     g_time_val_add          (GTimeVal    *time_, 
                                   glong        microseconds);
+_GLIB_API
 gboolean g_time_val_from_iso8601 (const gchar *iso_date,
 				  GTimeVal    *time_);
+_GLIB_API
 gchar*   g_time_val_to_iso8601   (GTimeVal    *time_) G_GNUC_MALLOC;
 
 G_END_DECLS
diff --git a/glib/gtimezone.h b/glib/gtimezone.h
index c877e8f..23f8368 100644
--- a/glib/gtimezone.h
+++ b/glib/gtimezone.h
@@ -54,25 +54,35 @@ typedef enum
   G_TIME_TYPE_UNIVERSAL
 } GTimeType;
 
+_GLIB_API
 GTimeZone *             g_time_zone_new                                 (const gchar *identifier);
+_GLIB_API
 GTimeZone *             g_time_zone_new_utc                             (void);
+_GLIB_API
 GTimeZone *             g_time_zone_new_local                           (void);
 
+_GLIB_API
 GTimeZone *             g_time_zone_ref                                 (GTimeZone   *tz);
+_GLIB_API
 void                    g_time_zone_unref                               (GTimeZone   *tz);
 
+_GLIB_API
 gint                    g_time_zone_find_interval                       (GTimeZone   *tz,
                                                                          GTimeType    type,
                                                                          gint64       time_);
 
+_GLIB_API
 gint                    g_time_zone_adjust_time                         (GTimeZone   *tz,
                                                                          GTimeType    type,
                                                                          gint64      *time_);
 
+_GLIB_API
 const gchar *           g_time_zone_get_abbreviation                    (GTimeZone   *tz,
                                                                          gint         interval);
+_GLIB_API
 gint32                  g_time_zone_get_offset                          (GTimeZone   *tz,
                                                                          gint         interval);
+_GLIB_API
 gboolean                g_time_zone_is_dst                              (GTimeZone   *tz,
                                                                          gint         interval);
 
diff --git a/glib/gtree.h b/glib/gtree.h
index e17a518..84095c9 100644
--- a/glib/gtree.h
+++ b/glib/gtree.h
@@ -43,32 +43,45 @@ typedef gboolean (*GTraverseFunc) (gpointer  key,
 
 /* Balanced binary trees
  */
+_GLIB_API
 GTree*   g_tree_new             (GCompareFunc      key_compare_func);
+_GLIB_API
 GTree*   g_tree_new_with_data   (GCompareDataFunc  key_compare_func,
                                  gpointer          key_compare_data);
+_GLIB_API
 GTree*   g_tree_new_full        (GCompareDataFunc  key_compare_func,
                                  gpointer          key_compare_data,
                                  GDestroyNotify    key_destroy_func,
                                  GDestroyNotify    value_destroy_func);
+_GLIB_API
 GTree*   g_tree_ref             (GTree            *tree);
+_GLIB_API
 void     g_tree_unref           (GTree            *tree);
+_GLIB_API
 void     g_tree_destroy         (GTree            *tree);
+_GLIB_API
 void     g_tree_insert          (GTree            *tree,
                                  gpointer          key,
                                  gpointer          value);
+_GLIB_API
 void     g_tree_replace         (GTree            *tree,
                                  gpointer          key,
                                  gpointer          value);
+_GLIB_API
 gboolean g_tree_remove          (GTree            *tree,
                                  gconstpointer     key);
+_GLIB_API
 gboolean g_tree_steal           (GTree            *tree,
                                  gconstpointer     key);
+_GLIB_API
 gpointer g_tree_lookup          (GTree            *tree,
                                  gconstpointer     key);
+_GLIB_API
 gboolean g_tree_lookup_extended (GTree            *tree,
                                  gconstpointer     lookup_key,
                                  gpointer         *orig_key,
                                  gpointer         *value);
+_GLIB_API
 void     g_tree_foreach         (GTree            *tree,
                                  GTraverseFunc	   func,
                                  gpointer	   user_data);
@@ -79,10 +92,13 @@ void     g_tree_traverse        (GTree            *tree,
                                  GTraverseType     traverse_type,
                                  gpointer          user_data);
 
+_GLIB_API
 gpointer g_tree_search          (GTree            *tree,
                                  GCompareFunc      search_func,
                                  gconstpointer     user_data);
+_GLIB_API
 gint     g_tree_height          (GTree            *tree);
+_GLIB_API
 gint     g_tree_nnodes          (GTree            *tree);
 
 G_END_DECLS
diff --git a/glib/gtypes.h b/glib/gtypes.h
index 7e4c8ea..801f0c1 100644
--- a/glib/gtypes.h
+++ b/glib/gtypes.h
@@ -477,7 +477,7 @@ G_END_DECLS
 #      endif /* !GLIB_COMPILATION */
 #    endif /* !GLIB_STATIC_COMPILATION */
 #  else /* !G_PLATFORM_WIN32 */
-#    define GLIB_VAR extern
+#    define GLIB_VAR extern _GLIB_API
 #  endif /* !G_PLATFORM_WIN32 */
 #endif /* GLIB_VAR */
 
diff --git a/glib/gunicode.h b/glib/gunicode.h
index aee9913..d8bc3c4 100644
--- a/glib/gunicode.h
+++ b/glib/gunicode.h
@@ -506,66 +506,99 @@ typedef enum
   G_UNICODE_SCRIPT_TAKRI                   /* Takr */
 } GUnicodeScript;
 
+_GLIB_API
 guint32        g_unicode_script_to_iso15924   (GUnicodeScript script);
+_GLIB_API
 GUnicodeScript g_unicode_script_from_iso15924 (guint32        iso15924);
 
 /* These are all analogs of the <ctype.h> functions.
  */
+_GLIB_API
 gboolean g_unichar_isalnum   (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_isalpha   (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_iscntrl   (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_isdigit   (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_isgraph   (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_islower   (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_isprint   (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_ispunct   (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_isspace   (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_isupper   (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_isxdigit  (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_istitle   (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_isdefined (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_iswide    (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_iswide_cjk(gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_iszerowidth(gunichar c) G_GNUC_CONST;
+_GLIB_API
 gboolean g_unichar_ismark    (gunichar c) G_GNUC_CONST;
 
 /* More <ctype.h> functions.  These convert between the three cases.
  * See the Unicode book to understand title case.  */
+_GLIB_API
 gunichar g_unichar_toupper (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gunichar g_unichar_tolower (gunichar c) G_GNUC_CONST;
+_GLIB_API
 gunichar g_unichar_totitle (gunichar c) G_GNUC_CONST;
 
 /* If C is a digit (according to `g_unichar_isdigit'), then return its
    numeric value.  Otherwise return -1.  */
+_GLIB_API
 gint g_unichar_digit_value (gunichar c) G_GNUC_CONST;
 
+_GLIB_API
 gint g_unichar_xdigit_value (gunichar c) G_GNUC_CONST;
 
 /* Return the Unicode character type of a given character.  */
+_GLIB_API
 GUnicodeType g_unichar_type (gunichar c) G_GNUC_CONST;
 
 /* Return the line break property for a given character */
+_GLIB_API
 GUnicodeBreakType g_unichar_break_type (gunichar c) G_GNUC_CONST;
 
 /* Returns the combining class for a given character */
+_GLIB_API
 gint g_unichar_combining_class (gunichar uc) G_GNUC_CONST;
 
+_GLIB_API
 gboolean g_unichar_get_mirror_char (gunichar ch,
                                     gunichar *mirrored_ch);
 
+_GLIB_API
 GUnicodeScript g_unichar_get_script (gunichar ch) G_GNUC_CONST;
 
 /* Validate a Unicode character */
+_GLIB_API
 gboolean g_unichar_validate (gunichar ch) G_GNUC_CONST;
 
 /* Pairwise canonical compose/decompose */
+_GLIB_API
 gboolean g_unichar_compose (gunichar  a,
                             gunichar  b,
                             gunichar *ch);
+_GLIB_API
 gboolean g_unichar_decompose (gunichar  ch,
                               gunichar *a,
                               gunichar *b);
 
+_GLIB_API
 gsize g_unichar_fully_decompose (gunichar  ch,
                                  gboolean  compat,
                                  gunichar *result,
@@ -586,6 +619,7 @@ gsize g_unichar_fully_decompose (gunichar  ch,
 /* Compute canonical ordering of a string in-place.  This rearranges
    decomposed characters in the string according to their combining
    classes.  See the Unicode manual for more information.  */
+_GLIB_API
 void g_unicode_canonical_ordering (gunichar *string,
                                    gsize     len);
 
@@ -611,20 +645,28 @@ GLIB_VAR const gchar * const g_utf8_skip;
  */
 #define g_utf8_next_char(p) (char *)((p) + g_utf8_skip[*(const guchar *)(p)])
 
+_GLIB_API
 gunichar g_utf8_get_char           (const gchar  *p) G_GNUC_PURE;
+_GLIB_API
 gunichar g_utf8_get_char_validated (const  gchar *p,
                                     gssize        max_len) G_GNUC_PURE;
 
+_GLIB_API
 gchar*   g_utf8_offset_to_pointer (const gchar *str,
                                    glong        offset) G_GNUC_PURE;
+_GLIB_API
 glong    g_utf8_pointer_to_offset (const gchar *str,
                                    const gchar *pos) G_GNUC_PURE;
+_GLIB_API
 gchar*   g_utf8_prev_char         (const gchar *p) G_GNUC_PURE;
+_GLIB_API
 gchar*   g_utf8_find_next_char    (const gchar *p,
                                    const gchar *end) G_GNUC_PURE;
+_GLIB_API
 gchar*   g_utf8_find_prev_char    (const gchar *str,
                                    const gchar *p) G_GNUC_PURE;
 
+_GLIB_API
 glong    g_utf8_strlen            (const gchar *p,
                                    gssize       max) G_GNUC_PURE;
 
@@ -633,66 +675,82 @@ gchar   *g_utf8_substring         (const gchar *str,
                                    glong        start_pos,
                                    glong        end_pos) G_GNUC_MALLOC;
 
+_GLIB_API
 gchar   *g_utf8_strncpy           (gchar       *dest,
                                    const gchar *src,
                                    gsize        n);
 
 /* Find the UTF-8 character corresponding to ch, in string p. These
    functions are equivalants to strchr and strrchr */
+_GLIB_API
 gchar* g_utf8_strchr  (const gchar *p,
                        gssize       len,
                        gunichar     c);
+_GLIB_API
 gchar* g_utf8_strrchr (const gchar *p,
                        gssize       len,
                        gunichar     c);
+_GLIB_API
 gchar* g_utf8_strreverse (const gchar *str,
                           gssize len);
 
+_GLIB_API
 gunichar2 *g_utf8_to_utf16     (const gchar      *str,
                                 glong             len,
                                 glong            *items_read,
                                 glong            *items_written,
                                 GError          **error) G_GNUC_MALLOC;
+_GLIB_API
 gunichar * g_utf8_to_ucs4      (const gchar      *str,
                                 glong             len,
                                 glong            *items_read,
                                 glong            *items_written,
                                 GError          **error) G_GNUC_MALLOC;
+_GLIB_API
 gunichar * g_utf8_to_ucs4_fast (const gchar      *str,
                                 glong             len,
                                 glong            *items_written) G_GNUC_MALLOC;
+_GLIB_API
 gunichar * g_utf16_to_ucs4     (const gunichar2  *str,
                                 glong             len,
                                 glong            *items_read,
                                 glong            *items_written,
                                 GError          **error) G_GNUC_MALLOC;
+_GLIB_API
 gchar*     g_utf16_to_utf8     (const gunichar2  *str,
                                 glong             len,
                                 glong            *items_read,
                                 glong            *items_written,
                                 GError          **error) G_GNUC_MALLOC;
+_GLIB_API
 gunichar2 *g_ucs4_to_utf16     (const gunichar   *str,
                                 glong             len,
                                 glong            *items_read,
                                 glong            *items_written,
                                 GError          **error) G_GNUC_MALLOC;
+_GLIB_API
 gchar*     g_ucs4_to_utf8      (const gunichar   *str,
                                 glong             len,
                                 glong            *items_read,
                                 glong            *items_written,
                                 GError          **error) G_GNUC_MALLOC;
 
+_GLIB_API
 gint      g_unichar_to_utf8 (gunichar    c,
                              gchar      *outbuf);
 
+_GLIB_API
 gboolean g_utf8_validate (const gchar  *str,
                           gssize        max_len,
                           const gchar **end);
 
+_GLIB_API
 gchar *g_utf8_strup   (const gchar *str,
                        gssize       len) G_GNUC_MALLOC;
+_GLIB_API
 gchar *g_utf8_strdown (const gchar *str,
                        gssize       len) G_GNUC_MALLOC;
+_GLIB_API
 gchar *g_utf8_casefold (const gchar *str,
                         gssize       len) G_GNUC_MALLOC;
 
@@ -731,20 +789,25 @@ typedef enum {
   G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE
 } GNormalizeMode;
 
+_GLIB_API
 gchar *g_utf8_normalize (const gchar   *str,
                          gssize         len,
                          GNormalizeMode mode) G_GNUC_MALLOC;
 
+_GLIB_API
 gint   g_utf8_collate     (const gchar *str1,
                            const gchar *str2) G_GNUC_PURE;
+_GLIB_API
 gchar *g_utf8_collate_key (const gchar *str,
                            gssize       len) G_GNUC_MALLOC;
+_GLIB_API
 gchar *g_utf8_collate_key_for_filename (const gchar *str,
                                         gssize       len) G_GNUC_MALLOC;
 
 
 /* private */
 
+_GLIB_API
 gchar *_g_utf8_make_valid (const gchar *name);
 
 G_END_DECLS
diff --git a/glib/gurifuncs.h b/glib/gurifuncs.h
index 6e6b739..01c068c 100644
--- a/glib/gurifuncs.h
+++ b/glib/gurifuncs.h
@@ -66,12 +66,16 @@ G_BEGIN_DECLS
  **/
 #define G_URI_RESERVED_CHARS_ALLOWED_IN_USERINFO G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS ":"
 
+_GLIB_API
 char *   g_uri_unescape_string       (const char *escaped_string,
 				      const char *illegal_characters);
+_GLIB_API
 char *   g_uri_unescape_segment      (const char *escaped_string,
 				      const char *escaped_string_end,
 				      const char *illegal_characters);
+_GLIB_API
 char *   g_uri_parse_scheme          (const char *uri);
+_GLIB_API
 char *   g_uri_escape_string         (const char *unescaped,
 				      const char *reserved_chars_allowed,
 				      gboolean    allow_utf8);
diff --git a/glib/gutils.h b/glib/gutils.h
index c256800..4b5fabf 100644
--- a/glib/gutils.h
+++ b/glib/gutils.h
@@ -74,34 +74,49 @@ G_BEGIN_DECLS
 #  endif
 #endif
 #ifdef G_IMPLEMENT_INLINES
-#  define G_INLINE_FUNC
+#  define G_INLINE_FUNC _GLIB_API
 #  undef  G_CAN_INLINE
 #elif defined (__GNUC__) 
 #  define G_INLINE_FUNC static __inline __attribute__ ((unused))
 #elif defined (G_CAN_INLINE) 
 #  define G_INLINE_FUNC static inline
 #else /* can't inline */
-#  define G_INLINE_FUNC
+#  define G_INLINE_FUNC _GLIB_API
 #endif /* !G_INLINE_FUNC */
 
+_GLIB_API
 const gchar *         g_get_user_name        (void);
+_GLIB_API
 const gchar *         g_get_real_name        (void);
+_GLIB_API
 const gchar *         g_get_home_dir         (void);
+_GLIB_API
 const gchar *         g_get_tmp_dir          (void);
+_GLIB_API
 const gchar *         g_get_host_name	     (void);
+_GLIB_API
 gchar *               g_get_prgname          (void);
+_GLIB_API
 void                  g_set_prgname          (const gchar *prgname);
+_GLIB_API
 const gchar *         g_get_application_name (void);
+_GLIB_API
 void                  g_set_application_name (const gchar *application_name);
 
+_GLIB_API
 void      g_reload_user_special_dirs_cache     (void);
+_GLIB_API
 const gchar *         g_get_user_data_dir      (void);
+_GLIB_API
 const gchar *         g_get_user_config_dir    (void);
+_GLIB_API
 const gchar *         g_get_user_cache_dir     (void);
+_GLIB_API
 const gchar * const * g_get_system_data_dirs   (void);
 
 #ifdef G_OS_WIN32
 /* This functions is not part of the public GLib API */
+_GLIB_API
 const gchar * const * g_win32_get_system_data_dirs_for_module (void (*address_of_function)(void));
 #endif
 
@@ -118,8 +133,10 @@ _g_win32_get_system_data_dirs (void)
 #define g_get_system_data_dirs _g_win32_get_system_data_dirs
 #endif
 
+_GLIB_API
 const gchar * const * g_get_system_config_dirs (void);
 
+_GLIB_API
 const gchar * g_get_user_runtime_dir (void);
 
 /**
@@ -157,6 +174,7 @@ typedef enum {
   G_USER_N_DIRECTORIES
 } GUserDirectory;
 
+_GLIB_API
 const gchar * g_get_user_special_dir (GUserDirectory directory);
 
 /**
@@ -176,19 +194,23 @@ struct _GDebugKey
 
 /* Miscellaneous utility functions
  */
+_GLIB_API
 guint                 g_parse_debug_string (const gchar     *string,
 					    const GDebugKey *keys,
 					    guint            nkeys);
 
+_GLIB_API
 gint                  g_snprintf           (gchar       *string,
 					    gulong       n,
 					    gchar const *format,
 					    ...) G_GNUC_PRINTF (3, 4);
+_GLIB_API
 gint                  g_vsnprintf          (gchar       *string,
 					    gulong       n,
 					    gchar const *format,
 					    va_list      args);
 
+_GLIB_API
 void                  g_nullify_pointer    (gpointer    *nullify_location);
 
 typedef enum
@@ -246,6 +268,7 @@ int atexit (void (*)(void));
 
 
 /* Look for an executable in PATH, following execvp() rules */
+_GLIB_API
 gchar*  g_find_program_in_path  (const gchar *program);
 
 /* Bit tests
@@ -365,10 +388,15 @@ DllMain (HINSTANCE hinstDLL,						\
 #define g_get_tmp_dir          g_get_tmp_dir_utf8
 #define g_find_program_in_path g_find_program_in_path_utf8
 
+_GLIB_API
 const gchar *g_get_user_name_utf8        (void);
+_GLIB_API
 const gchar *g_get_real_name_utf8        (void);
+_GLIB_API
 const gchar *g_get_home_dir_utf8         (void);
+_GLIB_API
 const gchar *g_get_tmp_dir_utf8          (void);
+_GLIB_API
 gchar       *g_find_program_in_path_utf8 (const gchar *program);
 #endif
 
diff --git a/glib/gvariant-internal.h b/glib/gvariant-internal.h
index 8d4a577..6aa0b72 100644
--- a/glib/gvariant-internal.h
+++ b/glib/gvariant-internal.h
@@ -39,10 +39,12 @@
 
 #undef __GLIB_H_INSIDE__
 
+_GLIB_API
 gboolean                        g_variant_format_string_scan            (const gchar          *string,
                                                                          const gchar          *limit,
                                                                          const gchar         **endptr);
 
+_GLIB_API
 GVariantType *                  g_variant_format_string_scan_type       (const gchar          *string,
                                                                          const gchar          *limit,
                                                                          const gchar         **endptr);
diff --git a/glib/gvariant-serialiser.h b/glib/gvariant-serialiser.h
index f26b118..90fd6c8 100644
--- a/glib/gvariant-serialiser.h
+++ b/glib/gvariant-serialiser.h
@@ -33,7 +33,9 @@ typedef struct
 } GVariantSerialised;
 
 /* deserialisation */
+_GLIB_API
 gsize                           g_variant_serialised_n_children         (GVariantSerialised        container);
+_GLIB_API
 GVariantSerialised              g_variant_serialised_get_child          (GVariantSerialised        container,
                                                                          gsize                     index);
 
@@ -41,25 +43,32 @@ GVariantSerialised              g_variant_serialised_get_child          (GVarian
 typedef void                  (*GVariantSerialisedFiller)               (GVariantSerialised       *serialised,
                                                                          gpointer                  data);
 
+_GLIB_API
 gsize                           g_variant_serialiser_needed_size        (GVariantTypeInfo         *info,
                                                                          GVariantSerialisedFiller  gsv_filler,
                                                                          const gpointer           *children,
                                                                          gsize                     n_children);
 
+_GLIB_API
 void                            g_variant_serialiser_serialise          (GVariantSerialised        container,
                                                                          GVariantSerialisedFiller  gsv_filler,
                                                                          const gpointer           *children,
                                                                          gsize                     n_children);
 
 /* misc */
+_GLIB_API
 gboolean                        g_variant_serialised_is_normal          (GVariantSerialised        value);
+_GLIB_API
 void                            g_variant_serialised_byteswap           (GVariantSerialised        value);
 
 /* validation of strings */
+_GLIB_API
 gboolean                        g_variant_serialiser_is_string          (gconstpointer             data,
                                                                          gsize                     size);
+_GLIB_API
 gboolean                        g_variant_serialiser_is_object_path     (gconstpointer             data,
                                                                          gsize                     size);
+_GLIB_API
 gboolean                        g_variant_serialiser_is_signature       (gconstpointer             data,
                                                                          gsize                     size);
 
diff --git a/glib/gvariant.h b/glib/gvariant.h
index fc66116..1c48758 100644
--- a/glib/gvariant.h
+++ b/glib/gvariant.h
@@ -57,132 +57,204 @@ typedef enum
   G_VARIANT_CLASS_DICT_ENTRY    = '{'
 } GVariantClass;
 
+_GLIB_API
 void                            g_variant_unref                         (GVariant             *value);
+_GLIB_API
 GVariant *                      g_variant_ref                           (GVariant             *value);
+_GLIB_API
 GVariant *                      g_variant_ref_sink                      (GVariant             *value);
+_GLIB_API
 gboolean                        g_variant_is_floating                   (GVariant             *value);
+_GLIB_API
 GVariant *                      g_variant_take_ref                      (GVariant             *value);
 
+_GLIB_API
 const GVariantType *            g_variant_get_type                      (GVariant             *value);
+_GLIB_API
 const gchar *                   g_variant_get_type_string               (GVariant             *value);
+_GLIB_API
 gboolean                        g_variant_is_of_type                    (GVariant             *value,
                                                                          const GVariantType   *type);
+_GLIB_API
 gboolean                        g_variant_is_container                  (GVariant             *value);
+_GLIB_API
 GVariantClass                   g_variant_classify                      (GVariant             *value);
+_GLIB_API
 GVariant *                      g_variant_new_boolean                   (gboolean              value);
+_GLIB_API
 GVariant *                      g_variant_new_byte                      (guchar                value);
+_GLIB_API
 GVariant *                      g_variant_new_int16                     (gint16                value);
+_GLIB_API
 GVariant *                      g_variant_new_uint16                    (guint16               value);
+_GLIB_API
 GVariant *                      g_variant_new_int32                     (gint32                value);
+_GLIB_API
 GVariant *                      g_variant_new_uint32                    (guint32               value);
+_GLIB_API
 GVariant *                      g_variant_new_int64                     (gint64                value);
+_GLIB_API
 GVariant *                      g_variant_new_uint64                    (guint64               value);
+_GLIB_API
 GVariant *                      g_variant_new_handle                    (gint32                value);
+_GLIB_API
 GVariant *                      g_variant_new_double                    (gdouble               value);
+_GLIB_API
 GVariant *                      g_variant_new_string                    (const gchar          *string);
+_GLIB_API
 GVariant *                      g_variant_new_object_path               (const gchar          *object_path);
+_GLIB_API
 gboolean                        g_variant_is_object_path                (const gchar          *string);
+_GLIB_API
 GVariant *                      g_variant_new_signature                 (const gchar          *signature);
+_GLIB_API
 gboolean                        g_variant_is_signature                  (const gchar          *string);
+_GLIB_API
 GVariant *                      g_variant_new_variant                   (GVariant             *value);
+_GLIB_API
 GVariant *                      g_variant_new_strv                      (const gchar * const  *strv,
                                                                          gssize                length);
 GLIB_AVAILABLE_IN_2_30
 GVariant *                      g_variant_new_objv                      (const gchar * const  *strv,
                                                                          gssize                length);
+_GLIB_API
 GVariant *                      g_variant_new_bytestring                (const gchar          *string);
+_GLIB_API
 GVariant *                      g_variant_new_bytestring_array          (const gchar * const  *strv,
                                                                          gssize                length);
+_GLIB_API
 GVariant *                      g_variant_new_fixed_array               (const GVariantType   *element_type,
                                                                          gconstpointer         elements,
                                                                          gsize                 n_elements,
                                                                          gsize                 element_size);
+_GLIB_API
 gboolean                        g_variant_get_boolean                   (GVariant             *value);
+_GLIB_API
 guchar                          g_variant_get_byte                      (GVariant             *value);
+_GLIB_API
 gint16                          g_variant_get_int16                     (GVariant             *value);
+_GLIB_API
 guint16                         g_variant_get_uint16                    (GVariant             *value);
+_GLIB_API
 gint32                          g_variant_get_int32                     (GVariant             *value);
+_GLIB_API
 guint32                         g_variant_get_uint32                    (GVariant             *value);
+_GLIB_API
 gint64                          g_variant_get_int64                     (GVariant             *value);
+_GLIB_API
 guint64                         g_variant_get_uint64                    (GVariant             *value);
+_GLIB_API
 gint32                          g_variant_get_handle                    (GVariant             *value);
+_GLIB_API
 gdouble                         g_variant_get_double                    (GVariant             *value);
+_GLIB_API
 GVariant *                      g_variant_get_variant                   (GVariant             *value);
+_GLIB_API
 const gchar *                   g_variant_get_string                    (GVariant             *value,
                                                                          gsize                *length);
+_GLIB_API
 gchar *                         g_variant_dup_string                    (GVariant             *value,
                                                                          gsize                *length);
+_GLIB_API
 const gchar **                  g_variant_get_strv                      (GVariant             *value,
                                                                          gsize                *length);
+_GLIB_API
 gchar **                        g_variant_dup_strv                      (GVariant             *value,
                                                                          gsize                *length);
 GLIB_AVAILABLE_IN_2_30
 const gchar **                  g_variant_get_objv                      (GVariant             *value,
                                                                          gsize                *length);
+_GLIB_API
 gchar **                        g_variant_dup_objv                      (GVariant             *value,
                                                                          gsize                *length);
+_GLIB_API
 const gchar *                   g_variant_get_bytestring                (GVariant             *value);
+_GLIB_API
 gchar *                         g_variant_dup_bytestring                (GVariant             *value,
                                                                          gsize                *length);
+_GLIB_API
 const gchar **                  g_variant_get_bytestring_array          (GVariant             *value,
                                                                          gsize                *length);
+_GLIB_API
 gchar **                        g_variant_dup_bytestring_array          (GVariant             *value,
                                                                          gsize                *length);
 
+_GLIB_API
 GVariant *                      g_variant_new_maybe                     (const GVariantType   *child_type,
                                                                          GVariant             *child);
+_GLIB_API
 GVariant *                      g_variant_new_array                     (const GVariantType   *child_type,
                                                                          GVariant * const     *children,
                                                                          gsize                 n_children);
+_GLIB_API
 GVariant *                      g_variant_new_tuple                     (GVariant * const     *children,
                                                                          gsize                 n_children);
+_GLIB_API
 GVariant *                      g_variant_new_dict_entry                (GVariant             *key,
                                                                          GVariant             *value);
 
+_GLIB_API
 GVariant *                      g_variant_get_maybe                     (GVariant             *value);
+_GLIB_API
 gsize                           g_variant_n_children                    (GVariant             *value);
+_GLIB_API
 void                            g_variant_get_child                     (GVariant             *value,
                                                                          gsize                 index_,
                                                                          const gchar          *format_string,
                                                                          ...);
+_GLIB_API
 GVariant *                      g_variant_get_child_value               (GVariant             *value,
                                                                          gsize                 index_);
+_GLIB_API
 gboolean                        g_variant_lookup                        (GVariant             *dictionary,
                                                                          const gchar          *key,
                                                                          const gchar          *format_string,
                                                                          ...);
+_GLIB_API
 GVariant *                      g_variant_lookup_value                  (GVariant             *dictionary,
                                                                          const gchar          *key,
                                                                          const GVariantType   *expected_type);
+_GLIB_API
 gconstpointer                   g_variant_get_fixed_array               (GVariant             *value,
                                                                          gsize                *n_elements,
                                                                          gsize                 element_size);
 
+_GLIB_API
 gsize                           g_variant_get_size                      (GVariant             *value);
+_GLIB_API
 gconstpointer                   g_variant_get_data                      (GVariant             *value);
 GLIB_AVAILABLE_IN_2_36
 GBytes *                        g_variant_get_data_as_bytes             (GVariant             *value);
+_GLIB_API
 void                            g_variant_store                         (GVariant             *value,
                                                                          gpointer              data);
 
+_GLIB_API
 gchar *                         g_variant_print                         (GVariant             *value,
                                                                          gboolean              type_annotate);
+_GLIB_API
 GString *                       g_variant_print_string                  (GVariant             *value,
                                                                          GString              *string,
                                                                          gboolean              type_annotate);
 
+_GLIB_API
 guint                           g_variant_hash                          (gconstpointer         value);
+_GLIB_API
 gboolean                        g_variant_equal                         (gconstpointer         one,
                                                                          gconstpointer         two);
 
+_GLIB_API
 GVariant *                      g_variant_get_normal_form               (GVariant             *value);
+_GLIB_API
 gboolean                        g_variant_is_normal_form                (GVariant             *value);
+_GLIB_API
 GVariant *                      g_variant_byteswap                      (GVariant             *value);
 
 GLIB_AVAILABLE_IN_2_36
 GVariant *                      g_variant_new_from_bytes                (const GVariantType   *type,
                                                                          GBytes               *bytes,
                                                                          gboolean              trusted);
+_GLIB_API
 GVariant *                      g_variant_new_from_data                 (const GVariantType   *type,
                                                                          gconstpointer         data,
                                                                          gsize                 size,
@@ -196,16 +268,24 @@ struct _GVariantIter {
   gsize x[16];
 };
 
+_GLIB_API
 GVariantIter *                  g_variant_iter_new                      (GVariant             *value);
+_GLIB_API
 gsize                           g_variant_iter_init                     (GVariantIter         *iter,
                                                                          GVariant             *value);
+_GLIB_API
 GVariantIter *                  g_variant_iter_copy                     (GVariantIter         *iter);
+_GLIB_API
 gsize                           g_variant_iter_n_children               (GVariantIter         *iter);
+_GLIB_API
 void                            g_variant_iter_free                     (GVariantIter         *iter);
+_GLIB_API
 GVariant *                      g_variant_iter_next_value               (GVariantIter         *iter);
+_GLIB_API
 gboolean                        g_variant_iter_next                     (GVariantIter         *iter,
                                                                          const gchar          *format_string,
                                                                          ...);
+_GLIB_API
 gboolean                        g_variant_iter_loop                     (GVariantIter         *iter,
                                                                          const gchar          *format_string,
                                                                          ...);
@@ -240,53 +320,74 @@ typedef enum
 } GVariantParseError;
 #define G_VARIANT_PARSE_ERROR (g_variant_parser_get_error_quark ())
 
+_GLIB_API
 GQuark                          g_variant_parser_get_error_quark        (void);
 
+_GLIB_API
 GVariantBuilder *               g_variant_builder_new                   (const GVariantType   *type);
+_GLIB_API
 void                            g_variant_builder_unref                 (GVariantBuilder      *builder);
+_GLIB_API
 GVariantBuilder *               g_variant_builder_ref                   (GVariantBuilder      *builder);
+_GLIB_API
 void                            g_variant_builder_init                  (GVariantBuilder      *builder,
                                                                          const GVariantType   *type);
+_GLIB_API
 GVariant *                      g_variant_builder_end                   (GVariantBuilder      *builder);
+_GLIB_API
 void                            g_variant_builder_clear                 (GVariantBuilder      *builder);
+_GLIB_API
 void                            g_variant_builder_open                  (GVariantBuilder      *builder,
                                                                          const GVariantType   *type);
+_GLIB_API
 void                            g_variant_builder_close                 (GVariantBuilder      *builder);
+_GLIB_API
 void                            g_variant_builder_add_value             (GVariantBuilder      *builder,
                                                                          GVariant             *value);
+_GLIB_API
 void                            g_variant_builder_add                   (GVariantBuilder      *builder,
                                                                          const gchar          *format_string,
                                                                          ...);
+_GLIB_API
 void                            g_variant_builder_add_parsed            (GVariantBuilder      *builder,
                                                                          const gchar          *format,
                                                                          ...);
 
+_GLIB_API
 GVariant *                      g_variant_new                           (const gchar          *format_string,
                                                                          ...);
+_GLIB_API
 void                            g_variant_get                           (GVariant             *value,
                                                                          const gchar          *format_string,
                                                                          ...);
+_GLIB_API
 GVariant *                      g_variant_new_va                        (const gchar          *format_string,
                                                                          const gchar         **endptr,
                                                                          va_list              *app);
+_GLIB_API
 void                            g_variant_get_va                        (GVariant             *value,
                                                                          const gchar          *format_string,
                                                                          const gchar         **endptr,
                                                                          va_list              *app);
+_GLIB_API
 gboolean                        g_variant_check_format_string           (GVariant             *value,
                                                                          const gchar          *format_string,
                                                                          gboolean              copy_only);
 
+_GLIB_API
 GVariant *                      g_variant_parse                         (const GVariantType   *type,
                                                                          const gchar          *text,
                                                                          const gchar          *limit,
                                                                          const gchar         **endptr,
                                                                          GError              **error);
+_GLIB_API
 GVariant *                      g_variant_new_parsed                    (const gchar          *format,
                                                                          ...);
+_GLIB_API
 GVariant *                      g_variant_new_parsed_va                 (const gchar          *format,
                                                                          va_list              *app);
 
+_GLIB_API
 gint                            g_variant_compare                       (gconstpointer one,
                                                                          gconstpointer two);
 G_END_DECLS
diff --git a/glib/gvarianttype.h b/glib/gvarianttype.h
index fe1ba84..663c2fe 100644
--- a/glib/gvarianttype.h
+++ b/glib/gvarianttype.h
@@ -294,57 +294,87 @@ typedef struct _GVariantType GVariantType;
 #endif
 
 /* type string checking */
+_GLIB_API
 gboolean                        g_variant_type_string_is_valid          (const gchar         *type_string);
+_GLIB_API
 gboolean                        g_variant_type_string_scan              (const gchar         *string,
                                                                          const gchar         *limit,
                                                                          const gchar        **endptr);
 
 /* create/destroy */
+_GLIB_API
 void                            g_variant_type_free                     (GVariantType        *type);
+_GLIB_API
 GVariantType *                  g_variant_type_copy                     (const GVariantType  *type);
+_GLIB_API
 GVariantType *                  g_variant_type_new                      (const gchar         *type_string);
 
 /* getters */
+_GLIB_API
 gsize                           g_variant_type_get_string_length        (const GVariantType  *type);
+_GLIB_API
 const gchar *                   g_variant_type_peek_string              (const GVariantType  *type);
+_GLIB_API
 gchar *                         g_variant_type_dup_string               (const GVariantType  *type);
 
 /* classification */
+_GLIB_API
 gboolean                        g_variant_type_is_definite              (const GVariantType  *type);
+_GLIB_API
 gboolean                        g_variant_type_is_container             (const GVariantType  *type);
+_GLIB_API
 gboolean                        g_variant_type_is_basic                 (const GVariantType  *type);
+_GLIB_API
 gboolean                        g_variant_type_is_maybe                 (const GVariantType  *type);
+_GLIB_API
 gboolean                        g_variant_type_is_array                 (const GVariantType  *type);
+_GLIB_API
 gboolean                        g_variant_type_is_tuple                 (const GVariantType  *type);
+_GLIB_API
 gboolean                        g_variant_type_is_dict_entry            (const GVariantType  *type);
+_GLIB_API
 gboolean                        g_variant_type_is_variant               (const GVariantType  *type);
 
 /* for hash tables */
+_GLIB_API
 guint                           g_variant_type_hash                     (gconstpointer        type);
+_GLIB_API
 gboolean                        g_variant_type_equal                    (gconstpointer        type1,
                                                                          gconstpointer        type2);
 
 /* subtypes */
+_GLIB_API
 gboolean                        g_variant_type_is_subtype_of            (const GVariantType  *type,
                                                                          const GVariantType  *supertype);
 
 /* type iterator interface */
+_GLIB_API
 const GVariantType *            g_variant_type_element                  (const GVariantType  *type);
+_GLIB_API
 const GVariantType *            g_variant_type_first                    (const GVariantType  *type);
+_GLIB_API
 const GVariantType *            g_variant_type_next                     (const GVariantType  *type);
+_GLIB_API
 gsize                           g_variant_type_n_items                  (const GVariantType  *type);
+_GLIB_API
 const GVariantType *            g_variant_type_key                      (const GVariantType  *type);
+_GLIB_API
 const GVariantType *            g_variant_type_value                    (const GVariantType  *type);
 
 /* constructors */
+_GLIB_API
 GVariantType *                  g_variant_type_new_array                (const GVariantType  *element);
+_GLIB_API
 GVariantType *                  g_variant_type_new_maybe                (const GVariantType  *element);
+_GLIB_API
 GVariantType *                  g_variant_type_new_tuple                (const GVariantType * const *items,
                                                                          gint                 length);
+_GLIB_API
 GVariantType *                  g_variant_type_new_dict_entry           (const GVariantType  *key,
                                                                          const GVariantType  *value);
 
 /*< private >*/
+_GLIB_API
 const GVariantType *            g_variant_type_checked_                 (const gchar *);
 
 G_END_DECLS
diff --git a/glib/gvarianttypeinfo.h b/glib/gvarianttypeinfo.h
index aaf14f4..539758d 100644
--- a/glib/gvarianttypeinfo.h
+++ b/glib/gvarianttypeinfo.h
@@ -125,27 +125,37 @@ typedef struct
 #define G_VARIANT_MEMBER_ENDING_OFFSET  2
 
 /* query */
+_GLIB_API
 const gchar *                   g_variant_type_info_get_type_string     (GVariantTypeInfo   *typeinfo);
 
+_GLIB_API
 void                            g_variant_type_info_query               (GVariantTypeInfo   *typeinfo,
                                                                          guint              *alignment,
                                                                          gsize              *size);
 
 /* array */
+_GLIB_API
 GVariantTypeInfo *              g_variant_type_info_element             (GVariantTypeInfo   *typeinfo);
+_GLIB_API
 void                            g_variant_type_info_query_element       (GVariantTypeInfo   *typeinfo,
                                                                          guint              *alignment,
                                                                          gsize              *size);
 
 /* structure */
+_GLIB_API
 gsize                           g_variant_type_info_n_members           (GVariantTypeInfo   *typeinfo);
+_GLIB_API
 const GVariantMemberInfo *      g_variant_type_info_member_info         (GVariantTypeInfo   *typeinfo,
                                                                          gsize               index);
 
 /* new/ref/unref */
+_GLIB_API
 GVariantTypeInfo *              g_variant_type_info_get                 (const GVariantType *type);
+_GLIB_API
 GVariantTypeInfo *              g_variant_type_info_ref                 (GVariantTypeInfo   *typeinfo);
+_GLIB_API
 void                            g_variant_type_info_unref               (GVariantTypeInfo   *typeinfo);
+_GLIB_API
 void                            g_variant_type_info_assert_no_infos     (void);
 
 #endif /* __G_VARIANT_TYPE_INFO_H__ */
diff --git a/glib/gversion.h b/glib/gversion.h
index d0581c2..0f843ff 100644
--- a/glib/gversion.h
+++ b/glib/gversion.h
@@ -41,6 +41,7 @@ GLIB_VAR const guint glib_micro_version;
 GLIB_VAR const guint glib_interface_age;
 GLIB_VAR const guint glib_binary_age;
 
+_GLIB_API
 const gchar * glib_check_version (guint required_major,
                                   guint required_minor,
                                   guint required_micro);
diff --git a/gmodule/gmodule.h b/gmodule/gmodule.h
index dbfa28b..daaa687 100644
--- a/gmodule/gmodule.h
+++ b/gmodule/gmodule.h
@@ -53,27 +53,34 @@ typedef const gchar* (*GModuleCheckInit) (GModule	*module);
 typedef void	     (*GModuleUnload)	 (GModule	*module);
 
 /* return TRUE if dynamic module loading is supported */
+_GMODULE_API
 gboolean	g_module_supported	   (void) G_GNUC_CONST;
 
 /* open a module `file_name' and return handle, which is NULL on error */
+_GMODULE_API
 GModule*              g_module_open          (const gchar  *file_name,
 					      GModuleFlags  flags);
 
 /* close a previously opened module, returns TRUE on success */
+_GMODULE_API
 gboolean              g_module_close         (GModule      *module);
 
 /* make a module resident so g_module_close on it will be ignored */
+_GMODULE_API
 void                  g_module_make_resident (GModule      *module);
 
 /* query the last module error as a string */
+_GMODULE_API
 const gchar *         g_module_error         (void);
 
 /* retrieve a symbol pointer from `module', returns TRUE on success */
+_GMODULE_API
 gboolean              g_module_symbol        (GModule      *module,
 					      const gchar  *symbol_name,
 					      gpointer     *symbol);
 
 /* retrieve the file name from an existing module */
+_GMODULE_API
 const gchar *         g_module_name          (GModule      *module);
 
 /* Build the actual file name containing a module. `directory' is the
@@ -87,6 +94,7 @@ const gchar *         g_module_name          (GModule      *module);
  *
  * No checks are made that the file exists, or is of correct type.
  */
+_GMODULE_API
 gchar*                g_module_build_path    (const gchar  *directory,
 					      const gchar  *module_name);
 
@@ -96,8 +104,10 @@ gchar*                g_module_build_path    (const gchar  *directory,
 #define g_module_open g_module_open_utf8
 #define g_module_name g_module_name_utf8
 
+_GMODULE_API
 GModule *    g_module_open_utf8 (const gchar  *file_name,
                                  GModuleFlags  flags);
+_GMODULE_API
 const gchar *g_module_name_utf8 (GModule      *module);
 #endif
 #endif
diff --git a/gobject/gbinding.h b/gobject/gbinding.h
index 1b71540..427013a 100644
--- a/gobject/gbinding.h
+++ b/gobject/gbinding.h
@@ -100,20 +100,29 @@ typedef enum { /*< prefix=G_BINDING >*/
   G_BINDING_INVERT_BOOLEAN = 1 << 2
 } GBindingFlags;
 
+_GOBJECT_API
 GType                 g_binding_flags_get_type      (void) G_GNUC_CONST;
+_GOBJECT_API
 GType                 g_binding_get_type            (void) G_GNUC_CONST;
 
+_GOBJECT_API
 GBindingFlags         g_binding_get_flags           (GBinding *binding);
+_GOBJECT_API
 GObject *             g_binding_get_source          (GBinding *binding);
+_GOBJECT_API
 GObject *             g_binding_get_target          (GBinding *binding);
+_GOBJECT_API
 const gchar *         g_binding_get_source_property (GBinding *binding);
+_GOBJECT_API
 const gchar *         g_binding_get_target_property (GBinding *binding);
 
+_GOBJECT_API
 GBinding *g_object_bind_property               (gpointer               source,
                                                 const gchar           *source_property,
                                                 gpointer               target,
                                                 const gchar           *target_property,
                                                 GBindingFlags          flags);
+_GOBJECT_API
 GBinding *g_object_bind_property_full          (gpointer               source,
                                                 const gchar           *source_property,
                                                 gpointer               target,
@@ -123,6 +132,7 @@ GBinding *g_object_bind_property_full          (gpointer               source,
                                                 GBindingTransformFunc  transform_from,
                                                 gpointer               user_data,
                                                 GDestroyNotify         notify);
+_GOBJECT_API
 GBinding *g_object_bind_property_with_closures (gpointer               source,
                                                 const gchar           *source_property,
                                                 gpointer               target,
diff --git a/gobject/gboxed.h b/gobject/gboxed.h
index 2b84087..4fcfa6d 100644
--- a/gobject/gboxed.h
+++ b/gobject/gboxed.h
@@ -68,24 +68,32 @@ typedef void (*GBoxedFreeFunc) (gpointer boxed);
 
 
 /* --- prototypes --- */
+_GOBJECT_API
 gpointer g_boxed_copy                     (GType boxed_type,
                                            gconstpointer  src_boxed);
+_GOBJECT_API
 void     g_boxed_free                     (GType          boxed_type,
                                            gpointer       boxed);
+_GOBJECT_API
 void     g_value_set_boxed                (GValue        *value,
                                            gconstpointer  v_boxed);
+_GOBJECT_API
 void     g_value_set_static_boxed         (GValue        *value,
                                            gconstpointer  v_boxed);
+_GOBJECT_API
 void     g_value_take_boxed               (GValue        *value,
                                            gconstpointer  v_boxed);
 GLIB_DEPRECATED_FOR(g_value_take_boxed)
 void     g_value_set_boxed_take_ownership (GValue        *value,
                                            gconstpointer  v_boxed);
+_GOBJECT_API
 gpointer g_value_get_boxed                (const GValue  *value);
+_GOBJECT_API
 gpointer g_value_dup_boxed                (const GValue  *value);
 
 
 /* --- convenience --- */
+_GOBJECT_API
 GType    g_boxed_type_register_static     (const gchar   *name,
                                            GBoxedCopyFunc boxed_copy,
                                            GBoxedFreeFunc boxed_free);
@@ -106,7 +114,9 @@ GType    g_boxed_type_register_static     (const gchar   *name,
  */
 #define G_TYPE_VALUE (g_value_get_type ())
 
+_GOBJECT_API
 GType   g_closure_get_type         (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_value_get_type           (void) G_GNUC_CONST;
 
 G_END_DECLS
diff --git a/gobject/gclosure.h b/gobject/gclosure.h
index fffac58..0a7c1e6 100644
--- a/gobject/gclosure.h
+++ b/gobject/gclosure.h
@@ -203,46 +203,62 @@ struct _GCClosure
 
 
 /* --- prototypes --- */
+_GOBJECT_API
 GClosure* g_cclosure_new			(GCallback	callback_func,
 						 gpointer	user_data,
 						 GClosureNotify destroy_data);
+_GOBJECT_API
 GClosure* g_cclosure_new_swap			(GCallback	callback_func,
 						 gpointer	user_data,
 						 GClosureNotify destroy_data);
+_GOBJECT_API
 GClosure* g_signal_type_cclosure_new		(GType          itype,
 						 guint          struct_offset);
 
 
 /* --- prototypes --- */
+_GOBJECT_API
 GClosure* g_closure_ref				(GClosure	*closure);
+_GOBJECT_API
 void	  g_closure_sink			(GClosure	*closure);
+_GOBJECT_API
 void	  g_closure_unref			(GClosure	*closure);
 /* intimidating */
+_GOBJECT_API
 GClosure* g_closure_new_simple			(guint		 sizeof_closure,
 						 gpointer	 data);
+_GOBJECT_API
 void	  g_closure_add_finalize_notifier	(GClosure       *closure,
 						 gpointer	 notify_data,
 						 GClosureNotify	 notify_func);
+_GOBJECT_API
 void	  g_closure_remove_finalize_notifier	(GClosure       *closure,
 						 gpointer	 notify_data,
 						 GClosureNotify	 notify_func);
+_GOBJECT_API
 void	  g_closure_add_invalidate_notifier	(GClosure       *closure,
 						 gpointer	 notify_data,
 						 GClosureNotify	 notify_func);
+_GOBJECT_API
 void	  g_closure_remove_invalidate_notifier	(GClosure       *closure,
 						 gpointer	 notify_data,
 						 GClosureNotify	 notify_func);
+_GOBJECT_API
 void	  g_closure_add_marshal_guards		(GClosure	*closure,
 						 gpointer        pre_marshal_data,
 						 GClosureNotify	 pre_marshal_notify,
 						 gpointer        post_marshal_data,
 						 GClosureNotify	 post_marshal_notify);
+_GOBJECT_API
 void	  g_closure_set_marshal			(GClosure	*closure,
 						 GClosureMarshal marshal);
+_GOBJECT_API
 void	  g_closure_set_meta_marshal		(GClosure       *closure,
 						 gpointer	 marshal_data,
 						 GClosureMarshal meta_marshal);
+_GOBJECT_API
 void	  g_closure_invalidate			(GClosure	*closure);
+_GOBJECT_API
 void	  g_closure_invoke			(GClosure 	*closure,
 						 GValue	/*out*/	*return_value,
 						 guint		 n_param_values,
@@ -260,6 +276,7 @@ void	  g_closure_invoke			(GClosure 	*closure,
    - provide marshaller collection, virtually covering anything out there
 */
 
+_GOBJECT_API
 void g_cclosure_marshal_generic (GClosure     *closure,
                                  GValue       *return_gvalue,
                                  guint         n_param_values,
@@ -267,6 +284,7 @@ void g_cclosure_marshal_generic (GClosure     *closure,
                                  gpointer      invocation_hint,
                                  gpointer      marshal_data);
 
+_GOBJECT_API
 void g_cclosure_marshal_generic_va (GClosure *closure,
 				    GValue   *return_value,
 				    gpointer  instance,
diff --git a/gobject/genums.h b/gobject/genums.h
index bf8a419..be63ea0 100644
--- a/gobject/genums.h
+++ b/gobject/genums.h
@@ -217,23 +217,33 @@ struct _GFlagsValue
 
 
 /* --- prototypes --- */
+_GOBJECT_API
 GEnumValue*	g_enum_get_value		(GEnumClass	*enum_class,
 						 gint		 value);
+_GOBJECT_API
 GEnumValue*	g_enum_get_value_by_name	(GEnumClass	*enum_class,
 						 const gchar	*name);
+_GOBJECT_API
 GEnumValue*	g_enum_get_value_by_nick	(GEnumClass	*enum_class,
 						 const gchar	*nick);
+_GOBJECT_API
 GFlagsValue*	g_flags_get_first_value		(GFlagsClass	*flags_class,
 						 guint		 value);
+_GOBJECT_API
 GFlagsValue*	g_flags_get_value_by_name	(GFlagsClass	*flags_class,
 						 const gchar	*name);
+_GOBJECT_API
 GFlagsValue*	g_flags_get_value_by_nick	(GFlagsClass	*flags_class,
 						 const gchar	*nick);
+_GOBJECT_API
 void            g_value_set_enum        	(GValue         *value,
 						 gint            v_enum);
+_GOBJECT_API
 gint            g_value_get_enum        	(const GValue   *value);
+_GOBJECT_API
 void            g_value_set_flags       	(GValue         *value,
 						 guint           v_flags);
+_GOBJECT_API
 guint           g_value_get_flags       	(const GValue   *value);
 
 
@@ -242,16 +252,20 @@ guint           g_value_get_flags       	(const GValue   *value);
 /* const_static_values is a NULL terminated array of enum/flags
  * values that is taken over!
  */
+_GOBJECT_API
 GType	g_enum_register_static	   (const gchar	      *name,
 				    const GEnumValue  *const_static_values);
+_GOBJECT_API
 GType	g_flags_register_static	   (const gchar	      *name,
 				    const GFlagsValue *const_static_values);
 /* functions to complete the type information
  * for enums/flags implemented by plugins
  */
+_GOBJECT_API
 void	g_enum_complete_type_info  (GType	       g_enum_type,
 				    GTypeInfo	      *info,
 				    const GEnumValue  *const_values);
+_GOBJECT_API
 void	g_flags_complete_type_info (GType	       g_flags_type,
 				    GTypeInfo	      *info,
 				    const GFlagsValue *const_values);
diff --git a/gobject/glib-types.h b/gobject/glib-types.h
index f30139b..c4f64ba 100644
--- a/gobject/glib-types.h
+++ b/gobject/glib-types.h
@@ -254,24 +254,41 @@ typedef gsize GType;
  */
 #define G_TYPE_THREAD (g_thread_get_type ())
 
+_GOBJECT_API
 GType   g_date_get_type            (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_strv_get_type            (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_gstring_get_type         (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_hash_table_get_type      (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_array_get_type           (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_byte_array_get_type      (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_ptr_array_get_type       (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_bytes_get_type           (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_variant_type_get_gtype   (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_regex_get_type           (void) G_GNUC_CONST;
 GLIB_AVAILABLE_IN_2_30
 GType   g_match_info_get_type      (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_error_get_type           (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_date_time_get_type       (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_time_zone_get_type       (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_io_channel_get_type      (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_io_condition_get_type    (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_variant_builder_get_type (void) G_GNUC_CONST;
+_GOBJECT_API
 GType   g_key_file_get_type        (void) G_GNUC_CONST;
 GLIB_AVAILABLE_IN_2_30
 GType   g_main_loop_get_type       (void) G_GNUC_CONST;
diff --git a/gobject/gmarshal.h b/gobject/gmarshal.h
index 0c21be6..c477de0 100644
--- a/gobject/gmarshal.h
+++ b/gobject/gmarshal.h
@@ -5,12 +5,14 @@
 G_BEGIN_DECLS
 
 /* VOID:VOID (./gmarshal.list:6) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__VOID (GClosure     *closure,
                                            GValue       *return_value,
                                            guint         n_param_values,
                                            const GValue *param_values,
                                            gpointer      invocation_hint,
                                            gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__VOIDv (GClosure     *closure,
                                             GValue       *return_value,
                                             gpointer      instance,
@@ -20,12 +22,14 @@ extern void g_cclosure_marshal_VOID__VOIDv (GClosure     *closure,
                                             GType        *param_types);
 
 /* VOID:BOOLEAN (./gmarshal.list:7) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__BOOLEAN (GClosure     *closure,
                                               GValue       *return_value,
                                               guint         n_param_values,
                                               const GValue *param_values,
                                               gpointer      invocation_hint,
                                               gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__BOOLEANv (GClosure     *closure,
                                                GValue       *return_value,
                                                gpointer      instance,
@@ -35,12 +39,14 @@ extern void g_cclosure_marshal_VOID__BOOLEANv (GClosure     *closure,
                                                GType        *param_types);
 
 /* VOID:CHAR (./gmarshal.list:8) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__CHAR (GClosure     *closure,
                                            GValue       *return_value,
                                            guint         n_param_values,
                                            const GValue *param_values,
                                            gpointer      invocation_hint,
                                            gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__CHARv (GClosure     *closure,
                                             GValue       *return_value,
                                             gpointer      instance,
@@ -50,12 +56,14 @@ extern void g_cclosure_marshal_VOID__CHARv (GClosure     *closure,
                                             GType        *param_types);
 
 /* VOID:UCHAR (./gmarshal.list:9) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__UCHAR (GClosure     *closure,
                                             GValue       *return_value,
                                             guint         n_param_values,
                                             const GValue *param_values,
                                             gpointer      invocation_hint,
                                             gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__UCHARv (GClosure     *closure,
                                              GValue       *return_value,
                                              gpointer      instance,
@@ -65,12 +73,14 @@ extern void g_cclosure_marshal_VOID__UCHARv (GClosure     *closure,
                                              GType        *param_types);
 
 /* VOID:INT (./gmarshal.list:10) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__INT (GClosure     *closure,
                                           GValue       *return_value,
                                           guint         n_param_values,
                                           const GValue *param_values,
                                           gpointer      invocation_hint,
                                           gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__INTv (GClosure     *closure,
                                            GValue       *return_value,
                                            gpointer      instance,
@@ -80,12 +90,14 @@ extern void g_cclosure_marshal_VOID__INTv (GClosure     *closure,
                                            GType        *param_types);
 
 /* VOID:UINT (./gmarshal.list:11) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__UINT (GClosure     *closure,
                                            GValue       *return_value,
                                            guint         n_param_values,
                                            const GValue *param_values,
                                            gpointer      invocation_hint,
                                            gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__UINTv (GClosure     *closure,
                                             GValue       *return_value,
                                             gpointer      instance,
@@ -95,12 +107,14 @@ extern void g_cclosure_marshal_VOID__UINTv (GClosure     *closure,
                                             GType        *param_types);
 
 /* VOID:LONG (./gmarshal.list:12) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__LONG (GClosure     *closure,
                                            GValue       *return_value,
                                            guint         n_param_values,
                                            const GValue *param_values,
                                            gpointer      invocation_hint,
                                            gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__LONGv (GClosure     *closure,
                                             GValue       *return_value,
                                             gpointer      instance,
@@ -110,12 +124,14 @@ extern void g_cclosure_marshal_VOID__LONGv (GClosure     *closure,
                                             GType        *param_types);
 
 /* VOID:ULONG (./gmarshal.list:13) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__ULONG (GClosure     *closure,
                                             GValue       *return_value,
                                             guint         n_param_values,
                                             const GValue *param_values,
                                             gpointer      invocation_hint,
                                             gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__ULONGv (GClosure     *closure,
                                              GValue       *return_value,
                                              gpointer      instance,
@@ -125,12 +141,14 @@ extern void g_cclosure_marshal_VOID__ULONGv (GClosure     *closure,
                                              GType        *param_types);
 
 /* VOID:ENUM (./gmarshal.list:14) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__ENUM (GClosure     *closure,
                                            GValue       *return_value,
                                            guint         n_param_values,
                                            const GValue *param_values,
                                            gpointer      invocation_hint,
                                            gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__ENUMv (GClosure     *closure,
                                             GValue       *return_value,
                                             gpointer      instance,
@@ -140,12 +158,14 @@ extern void g_cclosure_marshal_VOID__ENUMv (GClosure     *closure,
                                             GType        *param_types);
 
 /* VOID:FLAGS (./gmarshal.list:15) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__FLAGS (GClosure     *closure,
                                             GValue       *return_value,
                                             guint         n_param_values,
                                             const GValue *param_values,
                                             gpointer      invocation_hint,
                                             gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__FLAGSv (GClosure     *closure,
                                              GValue       *return_value,
                                              gpointer      instance,
@@ -155,12 +175,14 @@ extern void g_cclosure_marshal_VOID__FLAGSv (GClosure     *closure,
                                              GType        *param_types);
 
 /* VOID:FLOAT (./gmarshal.list:16) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__FLOAT (GClosure     *closure,
                                             GValue       *return_value,
                                             guint         n_param_values,
                                             const GValue *param_values,
                                             gpointer      invocation_hint,
                                             gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__FLOATv (GClosure     *closure,
                                              GValue       *return_value,
                                              gpointer      instance,
@@ -170,12 +192,14 @@ extern void g_cclosure_marshal_VOID__FLOATv (GClosure     *closure,
                                              GType        *param_types);
 
 /* VOID:DOUBLE (./gmarshal.list:17) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__DOUBLE (GClosure     *closure,
                                              GValue       *return_value,
                                              guint         n_param_values,
                                              const GValue *param_values,
                                              gpointer      invocation_hint,
                                              gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__DOUBLEv (GClosure     *closure,
                                               GValue       *return_value,
                                               gpointer      instance,
@@ -185,12 +209,14 @@ extern void g_cclosure_marshal_VOID__DOUBLEv (GClosure     *closure,
                                               GType        *param_types);
 
 /* VOID:STRING (./gmarshal.list:18) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__STRING (GClosure     *closure,
                                              GValue       *return_value,
                                              guint         n_param_values,
                                              const GValue *param_values,
                                              gpointer      invocation_hint,
                                              gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__STRINGv (GClosure     *closure,
                                               GValue       *return_value,
                                               gpointer      instance,
@@ -200,12 +226,14 @@ extern void g_cclosure_marshal_VOID__STRINGv (GClosure     *closure,
                                               GType        *param_types);
 
 /* VOID:PARAM (./gmarshal.list:19) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__PARAM (GClosure     *closure,
                                             GValue       *return_value,
                                             guint         n_param_values,
                                             const GValue *param_values,
                                             gpointer      invocation_hint,
                                             gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__PARAMv (GClosure     *closure,
                                              GValue       *return_value,
                                              gpointer      instance,
@@ -215,12 +243,14 @@ extern void g_cclosure_marshal_VOID__PARAMv (GClosure     *closure,
                                              GType        *param_types);
 
 /* VOID:BOXED (./gmarshal.list:20) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__BOXED (GClosure     *closure,
                                             GValue       *return_value,
                                             guint         n_param_values,
                                             const GValue *param_values,
                                             gpointer      invocation_hint,
                                             gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__BOXEDv (GClosure     *closure,
                                              GValue       *return_value,
                                              gpointer      instance,
@@ -230,12 +260,14 @@ extern void g_cclosure_marshal_VOID__BOXEDv (GClosure     *closure,
                                              GType        *param_types);
 
 /* VOID:POINTER (./gmarshal.list:21) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__POINTER (GClosure     *closure,
                                               GValue       *return_value,
                                               guint         n_param_values,
                                               const GValue *param_values,
                                               gpointer      invocation_hint,
                                               gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__POINTERv (GClosure     *closure,
                                                GValue       *return_value,
                                                gpointer      instance,
@@ -245,12 +277,14 @@ extern void g_cclosure_marshal_VOID__POINTERv (GClosure     *closure,
                                                GType        *param_types);
 
 /* VOID:OBJECT (./gmarshal.list:22) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__OBJECT (GClosure     *closure,
                                              GValue       *return_value,
                                              guint         n_param_values,
                                              const GValue *param_values,
                                              gpointer      invocation_hint,
                                              gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__OBJECTv (GClosure     *closure,
                                               GValue       *return_value,
                                               gpointer      instance,
@@ -260,12 +294,14 @@ extern void g_cclosure_marshal_VOID__OBJECTv (GClosure     *closure,
                                               GType        *param_types);
 
 /* VOID:VARIANT (./gmarshal.list:23) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__VARIANT (GClosure     *closure,
                                               GValue       *return_value,
                                               guint         n_param_values,
                                               const GValue *param_values,
                                               gpointer      invocation_hint,
                                               gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__VARIANTv (GClosure     *closure,
                                                GValue       *return_value,
                                                gpointer      instance,
@@ -275,12 +311,14 @@ extern void g_cclosure_marshal_VOID__VARIANTv (GClosure     *closure,
                                                GType        *param_types);
 
 /* VOID:UINT,POINTER (./gmarshal.list:26) */
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__UINT_POINTER (GClosure     *closure,
                                                    GValue       *return_value,
                                                    guint         n_param_values,
                                                    const GValue *param_values,
                                                    gpointer      invocation_hint,
                                                    gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_VOID__UINT_POINTERv (GClosure     *closure,
                                                     GValue       *return_value,
                                                     gpointer      instance,
@@ -290,12 +328,14 @@ extern void g_cclosure_marshal_VOID__UINT_POINTERv (GClosure     *closure,
                                                     GType        *param_types);
 
 /* BOOL:FLAGS (./gmarshal.list:27) */
+_GOBJECT_API
 extern void g_cclosure_marshal_BOOLEAN__FLAGS (GClosure     *closure,
                                                GValue       *return_value,
                                                guint         n_param_values,
                                                const GValue *param_values,
                                                gpointer      invocation_hint,
                                                gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_BOOLEAN__FLAGSv (GClosure     *closure,
                                                 GValue       *return_value,
                                                 gpointer      instance,
@@ -306,12 +346,14 @@ extern void g_cclosure_marshal_BOOLEAN__FLAGSv (GClosure     *closure,
 #define g_cclosure_marshal_BOOL__FLAGS	g_cclosure_marshal_BOOLEAN__FLAGS
 
 /* STRING:OBJECT,POINTER (./gmarshal.list:28) */
+_GOBJECT_API
 extern void g_cclosure_marshal_STRING__OBJECT_POINTER (GClosure     *closure,
                                                        GValue       *return_value,
                                                        guint         n_param_values,
                                                        const GValue *param_values,
                                                        gpointer      invocation_hint,
                                                        gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_STRING__OBJECT_POINTERv (GClosure     *closure,
                                                         GValue       *return_value,
                                                         gpointer      instance,
@@ -321,12 +363,14 @@ extern void g_cclosure_marshal_STRING__OBJECT_POINTERv (GClosure     *closure,
                                                         GType        *param_types);
 
 /* BOOL:BOXED,BOXED (./gmarshal.list:29) */
+_GOBJECT_API
 extern void g_cclosure_marshal_BOOLEAN__BOXED_BOXED (GClosure     *closure,
                                                      GValue       *return_value,
                                                      guint         n_param_values,
                                                      const GValue *param_values,
                                                      gpointer      invocation_hint,
                                                      gpointer      marshal_data);
+_GOBJECT_API
 extern void g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv (GClosure     *closure,
                                                       GValue       *return_value,
                                                       gpointer      instance,
diff --git a/gobject/gobject.h b/gobject/gobject.h
index f63e4d1..57ce4b1 100644
--- a/gobject/gobject.h
+++ b/gobject/gobject.h
@@ -380,80 +380,113 @@ struct _GObjectConstructParam
 
 
 /* --- prototypes --- */
+_GOBJECT_API
 GType       g_initially_unowned_get_type      (void);
+_GOBJECT_API
 void        g_object_class_install_property   (GObjectClass   *oclass,
 					       guint           property_id,
 					       GParamSpec     *pspec);
+_GOBJECT_API
 GParamSpec* g_object_class_find_property      (GObjectClass   *oclass,
 					       const gchar    *property_name);
+_GOBJECT_API
 GParamSpec**g_object_class_list_properties    (GObjectClass   *oclass,
 					       guint	      *n_properties);
+_GOBJECT_API
 void        g_object_class_override_property  (GObjectClass   *oclass,
 					       guint           property_id,
 					       const gchar    *name);
+_GOBJECT_API
 void        g_object_class_install_properties (GObjectClass   *oclass,
                                                guint           n_pspecs,
                                                GParamSpec    **pspecs);
 
+_GOBJECT_API
 void        g_object_interface_install_property (gpointer     g_iface,
 						 GParamSpec  *pspec);
+_GOBJECT_API
 GParamSpec* g_object_interface_find_property    (gpointer     g_iface,
 						 const gchar *property_name);
+_GOBJECT_API
 GParamSpec**g_object_interface_list_properties  (gpointer     g_iface,
 						 guint       *n_properties_p);
 
+_GOBJECT_API
 GType       g_object_get_type                 (void) G_GNUC_CONST;
+_GOBJECT_API
 gpointer    g_object_new                      (GType           object_type,
 					       const gchar    *first_property_name,
 					       ...);
+_GOBJECT_API
 gpointer    g_object_newv		      (GType           object_type,
 					       guint	       n_parameters,
 					       GParameter     *parameters);
+_GOBJECT_API
 GObject*    g_object_new_valist               (GType           object_type,
 					       const gchar    *first_property_name,
 					       va_list         var_args);
+_GOBJECT_API
 void	    g_object_set                      (gpointer	       object,
 					       const gchar    *first_property_name,
 					       ...) G_GNUC_NULL_TERMINATED;
+_GOBJECT_API
 void        g_object_get                      (gpointer        object,
 					       const gchar    *first_property_name,
 					       ...) G_GNUC_NULL_TERMINATED;
+_GOBJECT_API
 gpointer    g_object_connect                  (gpointer	       object,
 					       const gchar    *signal_spec,
 					       ...) G_GNUC_NULL_TERMINATED;
+_GOBJECT_API
 void	    g_object_disconnect               (gpointer	       object,
 					       const gchar    *signal_spec,
 					       ...) G_GNUC_NULL_TERMINATED;
+_GOBJECT_API
 void        g_object_set_valist               (GObject        *object,
 					       const gchar    *first_property_name,
 					       va_list         var_args);
+_GOBJECT_API
 void        g_object_get_valist               (GObject        *object,
 					       const gchar    *first_property_name,
 					       va_list         var_args);
+_GOBJECT_API
 void        g_object_set_property             (GObject        *object,
 					       const gchar    *property_name,
 					       const GValue   *value);
+_GOBJECT_API
 void        g_object_get_property             (GObject        *object,
 					       const gchar    *property_name,
 					       GValue         *value);
+_GOBJECT_API
 void        g_object_freeze_notify            (GObject        *object);
+_GOBJECT_API
 void        g_object_notify                   (GObject        *object,
 					       const gchar    *property_name);
+_GOBJECT_API
 void        g_object_notify_by_pspec          (GObject        *object,
 					       GParamSpec     *pspec);
+_GOBJECT_API
 void        g_object_thaw_notify              (GObject        *object);
+_GOBJECT_API
 gboolean    g_object_is_floating    	      (gpointer        object);
+_GOBJECT_API
 gpointer    g_object_ref_sink       	      (gpointer	       object);
+_GOBJECT_API
 gpointer    g_object_ref                      (gpointer        object);
+_GOBJECT_API
 void        g_object_unref                    (gpointer        object);
+_GOBJECT_API
 void	    g_object_weak_ref		      (GObject	      *object,
 					       GWeakNotify     notify,
 					       gpointer	       data);
+_GOBJECT_API
 void	    g_object_weak_unref		      (GObject	      *object,
 					       GWeakNotify     notify,
 					       gpointer	       data);
+_GOBJECT_API
 void        g_object_add_weak_pointer         (GObject        *object, 
                                                gpointer       *weak_pointer_location);
+_GOBJECT_API
 void        g_object_remove_weak_pointer      (GObject        *object, 
                                                gpointer       *weak_pointer_location);
 
@@ -473,22 +506,28 @@ typedef void (*GToggleNotify) (gpointer      data,
 			       GObject      *object,
 			       gboolean      is_last_ref);
 
+_GOBJECT_API
 void g_object_add_toggle_ref    (GObject       *object,
 				 GToggleNotify  notify,
 				 gpointer       data);
+_GOBJECT_API
 void g_object_remove_toggle_ref (GObject       *object,
 				 GToggleNotify  notify,
 				 gpointer       data);
 
+_GOBJECT_API
 gpointer    g_object_get_qdata                (GObject        *object,
 					       GQuark          quark);
+_GOBJECT_API
 void        g_object_set_qdata                (GObject        *object,
 					       GQuark          quark,
 					       gpointer        data);
+_GOBJECT_API
 void        g_object_set_qdata_full           (GObject        *object,
 					       GQuark          quark,
 					       gpointer        data,
 					       GDestroyNotify  destroy);
+_GOBJECT_API
 gpointer    g_object_steal_qdata              (GObject        *object,
 					       GQuark          quark);
 
@@ -505,15 +544,19 @@ gboolean    g_object_replace_qdata            (GObject        *object,
                                                GDestroyNotify  destroy,
 					       GDestroyNotify *old_destroy);
 
+_GOBJECT_API
 gpointer    g_object_get_data                 (GObject        *object,
 					       const gchar    *key);
+_GOBJECT_API
 void        g_object_set_data                 (GObject        *object,
 					       const gchar    *key,
 					       gpointer        data);
+_GOBJECT_API
 void        g_object_set_data_full            (GObject        *object,
 					       const gchar    *key,
 					       gpointer        data,
 					       GDestroyNotify  destroy);
+_GOBJECT_API
 gpointer    g_object_steal_data               (GObject        *object,
 					       const gchar    *key);
 
@@ -531,18 +574,26 @@ gboolean    g_object_replace_data             (GObject        *object,
 					       GDestroyNotify *old_destroy);
 
 
+_GOBJECT_API
 void        g_object_watch_closure            (GObject        *object,
 					       GClosure       *closure);
+_GOBJECT_API
 GClosure*   g_cclosure_new_object             (GCallback       callback_func,
 					       GObject	      *object);
+_GOBJECT_API
 GClosure*   g_cclosure_new_object_swap        (GCallback       callback_func,
 					       GObject	      *object);
+_GOBJECT_API
 GClosure*   g_closure_new_object              (guint           sizeof_closure,
 					       GObject        *object);
+_GOBJECT_API
 void        g_value_set_object                (GValue         *value,
 					       gpointer        v_object);
+_GOBJECT_API
 gpointer    g_value_get_object                (const GValue   *value);
+_GOBJECT_API
 gpointer    g_value_dup_object                (const GValue   *value);
+_GOBJECT_API
 gulong	    g_signal_connect_object           (gpointer	       instance,
 					       const gchar    *detailed_signal,
 					       GCallback       c_handler,
@@ -550,10 +601,13 @@ gulong	    g_signal_connect_object           (gpointer	       instance,
 					       GConnectFlags   connect_flags);
 
 /*< protected >*/
+_GOBJECT_API
 void        g_object_force_floating           (GObject        *object);
+_GOBJECT_API
 void        g_object_run_dispose	      (GObject	      *object);
 
 
+_GOBJECT_API
 void        g_value_take_object               (GValue         *value,
 					       gpointer        v_object);
 GLIB_DEPRECATED_FOR(g_value_take_object)
@@ -590,6 +644,7 @@ G_STMT_START { \
 #define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec) \
     G_OBJECT_WARN_INVALID_PSPEC ((object), "property", (property_id), (pspec))
 
+_GOBJECT_API
 void    g_clear_object (volatile GObject **object_ptr);
 #define g_clear_object(object_ptr) g_clear_pointer ((object_ptr), g_object_unref)
 
@@ -598,10 +653,14 @@ typedef struct {
     union { gpointer p; } priv;
 } GWeakRef;
 
+_GOBJECT_API
 void     g_weak_ref_init       (GWeakRef *weak_ref,
                                 gpointer  object);
+_GOBJECT_API
 void     g_weak_ref_clear      (GWeakRef *weak_ref);
+_GOBJECT_API
 gpointer g_weak_ref_get        (GWeakRef *weak_ref);
+_GOBJECT_API
 void     g_weak_ref_set        (GWeakRef *weak_ref,
                                 gpointer  object);
 
diff --git a/gobject/gparam.h b/gobject/gparam.h
index 84b3c44..aa97476 100644
--- a/gobject/gparam.h
+++ b/gobject/gparam.h
@@ -271,45 +271,66 @@ struct _GParameter /* auxiliary structure for _setv() variants */
 
 
 /* --- prototypes --- */
+_GOBJECT_API
 GParamSpec*	g_param_spec_ref		(GParamSpec    *pspec);
+_GOBJECT_API
 void		g_param_spec_unref		(GParamSpec    *pspec);
+_GOBJECT_API
 void		g_param_spec_sink		(GParamSpec    *pspec);
+_GOBJECT_API
 GParamSpec*	g_param_spec_ref_sink   	(GParamSpec    *pspec);
+_GOBJECT_API
 gpointer        g_param_spec_get_qdata		(GParamSpec    *pspec,
 						 GQuark         quark);
+_GOBJECT_API
 void            g_param_spec_set_qdata		(GParamSpec    *pspec,
 						 GQuark         quark,
 						 gpointer       data);
+_GOBJECT_API
 void            g_param_spec_set_qdata_full	(GParamSpec    *pspec,
 						 GQuark         quark,
 						 gpointer       data,
 						 GDestroyNotify destroy);
+_GOBJECT_API
 gpointer        g_param_spec_steal_qdata	(GParamSpec    *pspec,
 						 GQuark         quark);
+_GOBJECT_API
 GParamSpec*     g_param_spec_get_redirect_target (GParamSpec   *pspec);
 
+_GOBJECT_API
 void		g_param_value_set_default	(GParamSpec    *pspec,
 						 GValue	       *value);
+_GOBJECT_API
 gboolean	g_param_value_defaults		(GParamSpec    *pspec,
 						 GValue	       *value);
+_GOBJECT_API
 gboolean	g_param_value_validate		(GParamSpec    *pspec,
 						 GValue	       *value);
+_GOBJECT_API
 gboolean	g_param_value_convert		(GParamSpec    *pspec,
 						 const GValue  *src_value,
 						 GValue	       *dest_value,
 						 gboolean	strict_validation);
+_GOBJECT_API
 gint		g_param_values_cmp		(GParamSpec    *pspec,
 						 const GValue  *value1,
 						 const GValue  *value2);
+_GOBJECT_API
 const gchar *   g_param_spec_get_name           (GParamSpec    *pspec);
+_GOBJECT_API
 const gchar *   g_param_spec_get_nick           (GParamSpec    *pspec);
+_GOBJECT_API
 const gchar *   g_param_spec_get_blurb          (GParamSpec    *pspec);
+_GOBJECT_API
 void            g_value_set_param               (GValue	       *value,
 						 GParamSpec    *param);
+_GOBJECT_API
 GParamSpec*     g_value_get_param               (const GValue  *value);
+_GOBJECT_API
 GParamSpec*     g_value_dup_param               (const GValue  *value);
 
 
+_GOBJECT_API
 void           g_value_take_param               (GValue        *value,
 					         GParamSpec    *param);
 GLIB_DEPRECATED_FOR(g_value_take_param)
@@ -360,6 +381,7 @@ struct _GParamSpecTypeInfo
 					 const GValue *value1,
 					 const GValue *value2);
 };
+_GOBJECT_API
 GType	g_param_type_register_static	(const gchar		  *name,
 					 const GParamSpecTypeInfo *pspec_info);
 
@@ -370,23 +392,30 @@ GType  _g_param_type_register_static_constant (const gchar              *name,
 
 
 /* --- protected --- */
+_GOBJECT_API
 gpointer	g_param_spec_internal		(GType	        param_type,
 						 const gchar   *name,
 						 const gchar   *nick,
 						 const gchar   *blurb,
 						 GParamFlags    flags);
+_GOBJECT_API
 GParamSpecPool* g_param_spec_pool_new		(gboolean	type_prefixing);
+_GOBJECT_API
 void		g_param_spec_pool_insert	(GParamSpecPool	*pool,
 						 GParamSpec	*pspec,
 						 GType		 owner_type);
+_GOBJECT_API
 void		g_param_spec_pool_remove	(GParamSpecPool	*pool,
 						 GParamSpec	*pspec);
+_GOBJECT_API
 GParamSpec*	g_param_spec_pool_lookup	(GParamSpecPool	*pool,
 						 const gchar	*param_name,
 						 GType		 owner_type,
 						 gboolean	 walk_ancestors);
+_GOBJECT_API
 GList*		g_param_spec_pool_list_owned	(GParamSpecPool	*pool,
 						 GType		 owner_type);
+_GOBJECT_API
 GParamSpec**	g_param_spec_pool_list		(GParamSpecPool	*pool,
 						 GType		 owner_type,
 						 guint		*n_pspecs_p);
diff --git a/gobject/gparamspecs.h b/gobject/gparamspecs.h
index 3e0ff6e..531bbe0 100644
--- a/gobject/gparamspecs.h
+++ b/gobject/gparamspecs.h
@@ -977,6 +977,7 @@ struct _GParamSpecVariant
 };
 
 /* --- GParamSpec prototypes --- */
+_GOBJECT_API
 GParamSpec*	g_param_spec_char	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
@@ -984,6 +985,7 @@ GParamSpec*	g_param_spec_char	 (const gchar	 *name,
 					  gint8		  maximum,
 					  gint8		  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_uchar	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
@@ -991,11 +993,13 @@ GParamSpec*	g_param_spec_uchar	 (const gchar	 *name,
 					  guint8	  maximum,
 					  guint8	  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_boolean	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
 					  gboolean	  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_int	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
@@ -1003,6 +1007,7 @@ GParamSpec*	g_param_spec_int	 (const gchar	 *name,
 					  gint		  maximum,
 					  gint		  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_uint	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
@@ -1010,6 +1015,7 @@ GParamSpec*	g_param_spec_uint	 (const gchar	 *name,
 					  guint		  maximum,
 					  guint		  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_long	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
@@ -1017,6 +1023,7 @@ GParamSpec*	g_param_spec_long	 (const gchar	 *name,
 					  glong		  maximum,
 					  glong		  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_ulong	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
@@ -1024,6 +1031,7 @@ GParamSpec*	g_param_spec_ulong	 (const gchar	 *name,
 					  gulong	  maximum,
 					  gulong	  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_int64	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
@@ -1031,6 +1039,7 @@ GParamSpec*	g_param_spec_int64	 (const gchar	 *name,
 					  gint64       	  maximum,
 					  gint64       	  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_uint64	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
@@ -1038,23 +1047,27 @@ GParamSpec*	g_param_spec_uint64	 (const gchar	 *name,
 					  guint64	  maximum,
 					  guint64	  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_unichar      (const gchar    *name,
 				          const gchar    *nick,
 				          const gchar    *blurb,
 				          gunichar	  default_value,
 				          GParamFlags     flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_enum	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
 					  GType		  enum_type,
 					  gint		  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_flags	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
 					  GType		  flags_type,
 					  guint		  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_float	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
@@ -1062,6 +1075,7 @@ GParamSpec*	g_param_spec_float	 (const gchar	 *name,
 					  gfloat	  maximum,
 					  gfloat	  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_double	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
@@ -1069,42 +1083,51 @@ GParamSpec*	g_param_spec_double	 (const gchar	 *name,
 					  gdouble	  maximum,
 					  gdouble	  default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_string	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
 					  const gchar	 *default_value,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_param	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
 					  GType		  param_type,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_boxed	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
 					  GType		  boxed_type,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_pointer	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_value_array (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
 					  GParamSpec	 *element_spec,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_object	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
 					  GType		  object_type,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_override    (const gchar    *name,
 					  GParamSpec     *overridden);
+_GOBJECT_API
 GParamSpec*	g_param_spec_gtype	 (const gchar	 *name,
 					  const gchar	 *nick,
 					  const gchar	 *blurb,
 					  GType           is_a_type,
 					  GParamFlags	  flags);
+_GOBJECT_API
 GParamSpec*	g_param_spec_variant	 (const gchar        *name,
 					  const gchar        *nick,
 					  const gchar	     *blurb,
@@ -1132,7 +1155,7 @@ GParamSpec*	g_param_spec_variant	 (const gchar        *name,
 #      endif /* !GOBJECT_COMPILATION */
 #    endif /* !GOBJECT_STATIC_COMPILATION */
 #  else /* !G_PLATFORM_WIN32 */
-#    define GOBJECT_VAR extern
+#    define GOBJECT_VAR extern _GOBJECT_API
 #  endif /* !G_PLATFORM_WIN32 */
 #endif /* GOBJECT_VAR */
 
diff --git a/gobject/gsignal.h b/gobject/gsignal.h
index fbf1c19..124ce00 100644
--- a/gobject/gsignal.h
+++ b/gobject/gsignal.h
@@ -262,6 +262,7 @@ struct _GSignalQuery
 
 
 /* --- signals --- */
+_GOBJECT_API
 guint                 g_signal_newv         (const gchar        *signal_name,
 					     GType               itype,
 					     GSignalFlags        signal_flags,
@@ -272,6 +273,7 @@ guint                 g_signal_newv         (const gchar        *signal_name,
 					     GType               return_type,
 					     guint               n_params,
 					     GType              *param_types);
+_GOBJECT_API
 guint                 g_signal_new_valist   (const gchar        *signal_name,
 					     GType               itype,
 					     GSignalFlags        signal_flags,
@@ -282,6 +284,7 @@ guint                 g_signal_new_valist   (const gchar        *signal_name,
 					     GType               return_type,
 					     guint               n_params,
 					     va_list             args);
+_GOBJECT_API
 guint                 g_signal_new          (const gchar        *signal_name,
 					     GType               itype,
 					     GSignalFlags        signal_flags,
@@ -292,6 +295,7 @@ guint                 g_signal_new          (const gchar        *signal_name,
 					     GType               return_type,
 					     guint               n_params,
 					     ...);
+_GOBJECT_API
 guint            g_signal_new_class_handler (const gchar        *signal_name,
                                              GType               itype,
                                              GSignalFlags        signal_flags,
@@ -302,83 +306,107 @@ guint            g_signal_new_class_handler (const gchar        *signal_name,
                                              GType               return_type,
                                              guint               n_params,
                                              ...);
+_GOBJECT_API
 void             g_signal_set_va_marshaller (guint              signal_id,
 					     GType              instance_type,
 					     GSignalCVaMarshaller va_marshaller);
 
+_GOBJECT_API
 void                  g_signal_emitv        (const GValue       *instance_and_params,
 					     guint               signal_id,
 					     GQuark              detail,
 					     GValue             *return_value);
+_GOBJECT_API
 void                  g_signal_emit_valist  (gpointer            instance,
 					     guint               signal_id,
 					     GQuark              detail,
 					     va_list             var_args);
+_GOBJECT_API
 void                  g_signal_emit         (gpointer            instance,
 					     guint               signal_id,
 					     GQuark              detail,
 					     ...);
+_GOBJECT_API
 void                  g_signal_emit_by_name (gpointer            instance,
 					     const gchar        *detailed_signal,
 					     ...);
+_GOBJECT_API
 guint                 g_signal_lookup       (const gchar        *name,
 					     GType               itype);
+_GOBJECT_API
 const gchar *         g_signal_name         (guint               signal_id);
+_GOBJECT_API
 void                  g_signal_query        (guint               signal_id,
 					     GSignalQuery       *query);
+_GOBJECT_API
 guint*                g_signal_list_ids     (GType               itype,
 					     guint              *n_ids);
+_GOBJECT_API
 gboolean	      g_signal_parse_name   (const gchar	*detailed_signal,
 					     GType		 itype,
 					     guint		*signal_id_p,
 					     GQuark		*detail_p,
 					     gboolean		 force_detail_quark);
+_GOBJECT_API
 GSignalInvocationHint* g_signal_get_invocation_hint (gpointer    instance);
 
 
 /* --- signal emissions --- */
+_GOBJECT_API
 void	g_signal_stop_emission		    (gpointer		  instance,
 					     guint		  signal_id,
 					     GQuark		  detail);
+_GOBJECT_API
 void	g_signal_stop_emission_by_name	    (gpointer		  instance,
 					     const gchar	 *detailed_signal);
+_GOBJECT_API
 gulong	g_signal_add_emission_hook	    (guint		  signal_id,
 					     GQuark		  detail,
 					     GSignalEmissionHook  hook_func,
 					     gpointer	       	  hook_data,
 					     GDestroyNotify	  data_destroy);
+_GOBJECT_API
 void	g_signal_remove_emission_hook	    (guint		  signal_id,
 					     gulong		  hook_id);
 
 
 /* --- signal handlers --- */
+_GOBJECT_API
 gboolean g_signal_has_handler_pending	      (gpointer		  instance,
 					       guint		  signal_id,
 					       GQuark		  detail,
 					       gboolean		  may_be_blocked);
+_GOBJECT_API
 gulong	 g_signal_connect_closure_by_id	      (gpointer		  instance,
 					       guint		  signal_id,
 					       GQuark		  detail,
 					       GClosure		 *closure,
 					       gboolean		  after);
+_GOBJECT_API
 gulong	 g_signal_connect_closure	      (gpointer		  instance,
 					       const gchar       *detailed_signal,
 					       GClosure		 *closure,
 					       gboolean		  after);
+_GOBJECT_API
 gulong	 g_signal_connect_data		      (gpointer		  instance,
 					       const gchar	 *detailed_signal,
 					       GCallback	  c_handler,
 					       gpointer		  data,
 					       GClosureNotify	  destroy_data,
 					       GConnectFlags	  connect_flags);
+_GOBJECT_API
 void	 g_signal_handler_block		      (gpointer		  instance,
 					       gulong		  handler_id);
+_GOBJECT_API
 void	 g_signal_handler_unblock	      (gpointer		  instance,
 					       gulong		  handler_id);
+_GOBJECT_API
 void	 g_signal_handler_disconnect	      (gpointer		  instance,
 					       gulong		  handler_id);
+_GOBJECT_API
 gboolean g_signal_handler_is_connected	      (gpointer		  instance,
 					       gulong		  handler_id);
+_GOBJECT_API
 gulong	 g_signal_handler_find		      (gpointer		  instance,
 					       GSignalMatchType	  mask,
 					       guint		  signal_id,
@@ -386,6 +414,7 @@ gulong	 g_signal_handler_find		      (gpointer		  instance,
 					       GClosure		 *closure,
 					       gpointer		  func,
 					       gpointer		  data);
+_GOBJECT_API
 guint	 g_signal_handlers_block_matched      (gpointer		  instance,
 					       GSignalMatchType	  mask,
 					       guint		  signal_id,
@@ -393,6 +422,7 @@ guint	 g_signal_handlers_block_matched      (gpointer		  instance,
 					       GClosure		 *closure,
 					       gpointer		  func,
 					       gpointer		  data);
+_GOBJECT_API
 guint	 g_signal_handlers_unblock_matched    (gpointer		  instance,
 					       GSignalMatchType	  mask,
 					       guint		  signal_id,
@@ -400,6 +430,7 @@ guint	 g_signal_handlers_unblock_matched    (gpointer		  instance,
 					       GClosure		 *closure,
 					       gpointer		  func,
 					       gpointer		  data);
+_GOBJECT_API
 guint	 g_signal_handlers_disconnect_matched (gpointer		  instance,
 					       GSignalMatchType	  mask,
 					       guint		  signal_id,
@@ -410,14 +441,18 @@ guint	 g_signal_handlers_disconnect_matched (gpointer		  instance,
 
 
 /* --- overriding and chaining --- */
+_GOBJECT_API
 void    g_signal_override_class_closure       (guint              signal_id,
                                                GType              instance_type,
                                                GClosure          *class_closure);
+_GOBJECT_API
 void    g_signal_override_class_handler       (const gchar       *signal_name,
                                                GType              instance_type,
                                                GCallback          class_handler);
+_GOBJECT_API
 void    g_signal_chain_from_overridden        (const GValue      *instance_and_params,
                                                GValue            *return_value);
+_GOBJECT_API
 void   g_signal_chain_from_overridden_handler (gpointer           instance,
                                                ...);
 
@@ -528,17 +563,20 @@ void   g_signal_chain_from_overridden_handler (gpointer           instance,
 				          0, 0, NULL, (func), (data))
 
 
+_GOBJECT_API
 gboolean g_signal_accumulator_true_handled (GSignalInvocationHint *ihint,
 					    GValue                *return_accu,
 					    const GValue          *handler_return,
 					    gpointer               dummy);
 
+_GOBJECT_API
 gboolean g_signal_accumulator_first_wins   (GSignalInvocationHint *ihint,
                                             GValue                *return_accu,
                                             const GValue          *handler_return,
                                             gpointer               dummy);
 
 /*< private >*/
+_GOBJECT_API
 void	 g_signal_handlers_destroy	      (gpointer		  instance);
 void	 _g_signals_destroy		      (GType		  itype);
 
diff --git a/gobject/gsourceclosure.h b/gobject/gsourceclosure.h
index 3cfdacd..ad34648 100644
--- a/gobject/gsourceclosure.h
+++ b/gobject/gsourceclosure.h
@@ -28,9 +28,11 @@
 
 G_BEGIN_DECLS
 
+_GOBJECT_API
 void g_source_set_closure        (GSource  *source,
 				  GClosure *closure);
 
+_GOBJECT_API
 void g_source_set_dummy_callback (GSource  *source);
 
 G_END_DECLS
diff --git a/gobject/gtype.h b/gobject/gtype.h
index 80a4ddf..5cf766f 100644
--- a/gobject/gtype.h
+++ b/gobject/gtype.h
@@ -669,40 +669,62 @@ GLIB_DEPRECATED_IN_2_36
 void                  g_type_init                    (void);
 GLIB_DEPRECATED_IN_2_36
 void                  g_type_init_with_debug_flags   (GTypeDebugFlags  debug_flags);
+_GOBJECT_API
 const gchar *         g_type_name                    (GType            type);
+_GOBJECT_API
 GQuark                g_type_qname                   (GType            type);
+_GOBJECT_API
 GType                 g_type_from_name               (const gchar     *name);
+_GOBJECT_API
 GType                 g_type_parent                  (GType            type);
+_GOBJECT_API
 guint                 g_type_depth                   (GType            type);
+_GOBJECT_API
 GType                 g_type_next_base               (GType            leaf_type,
 						      GType            root_type);
+_GOBJECT_API
 gboolean              g_type_is_a                    (GType            type,
 						      GType            is_a_type);
+_GOBJECT_API
 gpointer              g_type_class_ref               (GType            type);
+_GOBJECT_API
 gpointer              g_type_class_peek              (GType            type);
+_GOBJECT_API
 gpointer              g_type_class_peek_static       (GType            type);
+_GOBJECT_API
 void                  g_type_class_unref             (gpointer         g_class);
+_GOBJECT_API
 gpointer              g_type_class_peek_parent       (gpointer         g_class);
+_GOBJECT_API
 gpointer              g_type_interface_peek          (gpointer         instance_class,
 						      GType            iface_type);
+_GOBJECT_API
 gpointer              g_type_interface_peek_parent   (gpointer         g_iface);
 
+_GOBJECT_API
 gpointer              g_type_default_interface_ref   (GType            g_type);
+_GOBJECT_API
 gpointer              g_type_default_interface_peek  (GType            g_type);
+_GOBJECT_API
 void                  g_type_default_interface_unref (gpointer         g_iface);
 
 /* g_free() the returned arrays */
+_GOBJECT_API
 GType*                g_type_children                (GType            type,
 						      guint           *n_children);
+_GOBJECT_API
 GType*                g_type_interfaces              (GType            type,
 						      guint           *n_interfaces);
 
 /* per-type _static_ data */
+_GOBJECT_API
 void                  g_type_set_qdata               (GType            type,
 						      GQuark           quark,
 						      gpointer         data);
+_GOBJECT_API
 gpointer              g_type_get_qdata               (GType            type,
 						      GQuark           quark);
+_GOBJECT_API
 void		      g_type_query		     (GType	       type,
 						      GTypeQuery      *query);
 
@@ -1220,10 +1242,12 @@ struct _GTypeValueTable
 				  GTypeCValue  *collect_values,
 				  guint		collect_flags);
 };
+_GOBJECT_API
 GType g_type_register_static		(GType			     parent_type,
 					 const gchar		    *type_name,
 					 const GTypeInfo	    *info,
 					 GTypeFlags		     flags);
+_GOBJECT_API
 GType g_type_register_static_simple     (GType                       parent_type,
 					 const gchar                *type_name,
 					 guint                       class_size,
@@ -1232,32 +1256,42 @@ GType g_type_register_static_simple     (GType                       parent_type
 					 GInstanceInitFunc           instance_init,
 					 GTypeFlags	             flags);
   
+_GOBJECT_API
 GType g_type_register_dynamic		(GType			     parent_type,
 					 const gchar		    *type_name,
 					 GTypePlugin		    *plugin,
 					 GTypeFlags		     flags);
+_GOBJECT_API
 GType g_type_register_fundamental	(GType			     type_id,
 					 const gchar		    *type_name,
 					 const GTypeInfo	    *info,
 					 const GTypeFundamentalInfo *finfo,
 					 GTypeFlags		     flags);
+_GOBJECT_API
 void  g_type_add_interface_static	(GType			     instance_type,
 					 GType			     interface_type,
 					 const GInterfaceInfo	    *info);
+_GOBJECT_API
 void  g_type_add_interface_dynamic	(GType			     instance_type,
 					 GType			     interface_type,
 					 GTypePlugin		    *plugin);
+_GOBJECT_API
 void  g_type_interface_add_prerequisite (GType			     interface_type,
 					 GType			     prerequisite_type);
+_GOBJECT_API
 GType*g_type_interface_prerequisites    (GType                       interface_type,
 					 guint                      *n_prerequisites);
+_GOBJECT_API
 void     g_type_class_add_private       (gpointer                    g_class,
                                          gsize                       private_size);
+_GOBJECT_API
 gpointer g_type_instance_get_private    (GTypeInstance              *instance,
                                          GType                       private_type);
 
+_GOBJECT_API
 void      g_type_add_class_private      (GType    		     class_type,
 					 gsize    		     private_size);
+_GOBJECT_API
 gpointer  g_type_class_get_private      (GTypeClass 		    *klass,
 					 GType			     private_type);
 
@@ -1622,48 +1656,71 @@ type_name##_get_type (void) \
       { /* custom code follows */
 
 /* --- protected (for fundamental type implementations) --- */
+_GOBJECT_API
 GTypePlugin*	 g_type_get_plugin		(GType		     type);
+_GOBJECT_API
 GTypePlugin*	 g_type_interface_get_plugin	(GType		     instance_type,
 						 GType               interface_type);
+_GOBJECT_API
 GType		 g_type_fundamental_next	(void);
+_GOBJECT_API
 GType		 g_type_fundamental		(GType		     type_id);
+_GOBJECT_API
 GTypeInstance*   g_type_create_instance         (GType               type);
+_GOBJECT_API
 void             g_type_free_instance           (GTypeInstance      *instance);
 
+_GOBJECT_API
 void		 g_type_add_class_cache_func    (gpointer	     cache_data,
 						 GTypeClassCacheFunc cache_func);
+_GOBJECT_API
 void		 g_type_remove_class_cache_func (gpointer	     cache_data,
 						 GTypeClassCacheFunc cache_func);
+_GOBJECT_API
 void             g_type_class_unref_uncached    (gpointer            g_class);
 
+_GOBJECT_API
 void             g_type_add_interface_check     (gpointer	         check_data,
 						 GTypeInterfaceCheckFunc check_func);
+_GOBJECT_API
 void             g_type_remove_interface_check  (gpointer	         check_data,
 						 GTypeInterfaceCheckFunc check_func);
 
+_GOBJECT_API
 GTypeValueTable* g_type_value_table_peek        (GType		     type);
 
 
 /*< private >*/
+_GOBJECT_API
 gboolean	 g_type_check_instance          (GTypeInstance      *instance) G_GNUC_PURE;
+_GOBJECT_API
 GTypeInstance*   g_type_check_instance_cast     (GTypeInstance      *instance,
 						 GType               iface_type);
+_GOBJECT_API
 gboolean         g_type_check_instance_is_a	(GTypeInstance      *instance,
 						 GType               iface_type) G_GNUC_PURE;
+_GOBJECT_API
 GTypeClass*      g_type_check_class_cast        (GTypeClass         *g_class,
 						 GType               is_a_type);
+_GOBJECT_API
 gboolean         g_type_check_class_is_a        (GTypeClass         *g_class,
 						 GType               is_a_type) G_GNUC_PURE;
+_GOBJECT_API
 gboolean	 g_type_check_is_value_type     (GType		     type) G_GNUC_CONST;
+_GOBJECT_API
 gboolean	 g_type_check_value             (GValue		    *value) G_GNUC_PURE;
+_GOBJECT_API
 gboolean	 g_type_check_value_holds	(GValue		    *value,
 						 GType		     type) G_GNUC_PURE;
+_GOBJECT_API
 gboolean         g_type_test_flags              (GType               type,
 						 guint               flags) G_GNUC_CONST;
 
 
 /* --- debugging functions --- */
+_GOBJECT_API
 const gchar *    g_type_name_from_instance      (GTypeInstance	*instance);
+_GOBJECT_API
 const gchar *    g_type_name_from_class         (GTypeClass	*g_class);
 
 
diff --git a/gobject/gtypemodule.h b/gobject/gtypemodule.h
index f2d524b..df2fc56 100644
--- a/gobject/gtypemodule.h
+++ b/gobject/gtypemodule.h
@@ -237,23 +237,31 @@ type_name##_register_type (GTypeModule *type_module) \
   g_type_module_add_interface (type_module, g_define_type_id, TYPE_IFACE, &g_implement_interface_info); \
 }
 
+_GOBJECT_API
 GType    g_type_module_get_type       (void) G_GNUC_CONST;
+_GOBJECT_API
 gboolean g_type_module_use            (GTypeModule          *module);
+_GOBJECT_API
 void     g_type_module_unuse          (GTypeModule          *module);
+_GOBJECT_API
 void     g_type_module_set_name       (GTypeModule          *module,
                                        const gchar          *name);
+_GOBJECT_API
 GType    g_type_module_register_type  (GTypeModule          *module,
                                        GType                 parent_type,
                                        const gchar          *type_name,
                                        const GTypeInfo      *type_info,
                                        GTypeFlags            flags);
+_GOBJECT_API
 void     g_type_module_add_interface  (GTypeModule          *module,
                                        GType                 instance_type,
                                        GType                 interface_type,
                                        const GInterfaceInfo *interface_info);
+_GOBJECT_API
 GType    g_type_module_register_enum  (GTypeModule          *module,
                                        const gchar          *name,
                                        const GEnumValue     *const_static_values);
+_GOBJECT_API
 GType    g_type_module_register_flags (GTypeModule          *module,
                                        const gchar          *name,
                                        const GFlagsValue    *const_static_values);
diff --git a/gobject/gtypeplugin.h b/gobject/gtypeplugin.h
index ff87a70..f602193 100644
--- a/gobject/gtypeplugin.h
+++ b/gobject/gtypeplugin.h
@@ -117,13 +117,18 @@ struct _GTypePluginClass
 
 
 /* --- prototypes --- */
+_GOBJECT_API
 GType	g_type_plugin_get_type			(void)	G_GNUC_CONST;
+_GOBJECT_API
 void	g_type_plugin_use			(GTypePlugin	 *plugin);
+_GOBJECT_API
 void	g_type_plugin_unuse			(GTypePlugin	 *plugin);
+_GOBJECT_API
 void	g_type_plugin_complete_type_info	(GTypePlugin     *plugin,
 						 GType            g_type,
 						 GTypeInfo       *info,
 						 GTypeValueTable *value_table);
+_GOBJECT_API
 void	g_type_plugin_complete_interface_info	(GTypePlugin     *plugin,
 						 GType            instance_type,
 						 GType            interface_type,
diff --git a/gobject/gvalue.h b/gobject/gvalue.h
index 7bebfb1..68cf7ff 100644
--- a/gobject/gvalue.h
+++ b/gobject/gvalue.h
@@ -126,28 +126,39 @@ struct _GValue
 
 
 /* --- prototypes --- */
+_GOBJECT_API
 GValue*         g_value_init	   	(GValue       *value,
 					 GType         g_type);
+_GOBJECT_API
 void            g_value_copy    	(const GValue *src_value,
 					 GValue       *dest_value);
+_GOBJECT_API
 GValue*         g_value_reset   	(GValue       *value);
+_GOBJECT_API
 void            g_value_unset   	(GValue       *value);
+_GOBJECT_API
 void		g_value_set_instance	(GValue	      *value,
 					 gpointer      instance);
 
 
 /* --- private --- */
+_GOBJECT_API
 gboolean	g_value_fits_pointer	(const GValue *value);
+_GOBJECT_API
 gpointer	g_value_peek_pointer	(const GValue *value);
 
 
 /* --- implementation details --- */
+_GOBJECT_API
 gboolean g_value_type_compatible	(GType		 src_type,
 					 GType		 dest_type);
+_GOBJECT_API
 gboolean g_value_type_transformable	(GType           src_type,
 					 GType           dest_type);
+_GOBJECT_API
 gboolean g_value_transform		(const GValue   *src_value,
 					 GValue         *dest_value);
+_GOBJECT_API
 void	g_value_register_transform_func	(GType		 src_type,
 					 GType		 dest_type,
 					 GValueTransform transform_func);
diff --git a/gobject/gvaluetypes.h b/gobject/gvaluetypes.h
index 584162e..0d776fb 100644
--- a/gobject/gvaluetypes.h
+++ b/gobject/gvaluetypes.h
@@ -182,67 +182,105 @@ void                  g_value_set_char          (GValue       *value,
                                                  gchar         v_char);
 GLIB_DEPRECATED_IN_2_32_FOR(g_value_get_schar)
 gchar                 g_value_get_char          (const GValue *value);
+_GOBJECT_API
 void		      g_value_set_schar		(GValue	      *value,
 						 gint8	       v_char);
+_GOBJECT_API
 gint8		      g_value_get_schar		(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_uchar		(GValue	      *value,
 						 guchar	       v_uchar);
+_GOBJECT_API
 guchar		      g_value_get_uchar		(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_boolean	(GValue	      *value,
 						 gboolean      v_boolean);
+_GOBJECT_API
 gboolean	      g_value_get_boolean	(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_int		(GValue	      *value,
 						 gint	       v_int);
+_GOBJECT_API
 gint		      g_value_get_int		(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_uint		(GValue	      *value,
 						 guint	       v_uint);
+_GOBJECT_API
 guint		      g_value_get_uint		(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_long		(GValue	      *value,
 						 glong	       v_long);
+_GOBJECT_API
 glong		      g_value_get_long		(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_ulong		(GValue	      *value,
 						 gulong	       v_ulong);
+_GOBJECT_API
 gulong		      g_value_get_ulong		(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_int64		(GValue	      *value,
 						 gint64	       v_int64);
+_GOBJECT_API
 gint64		      g_value_get_int64		(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_uint64	(GValue	      *value,
 						 guint64      v_uint64);
+_GOBJECT_API
 guint64		      g_value_get_uint64	(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_float		(GValue	      *value,
 						 gfloat	       v_float);
+_GOBJECT_API
 gfloat		      g_value_get_float		(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_double	(GValue	      *value,
 						 gdouble       v_double);
+_GOBJECT_API
 gdouble		      g_value_get_double	(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_string	(GValue	      *value,
 						 const gchar  *v_string);
+_GOBJECT_API
 void		      g_value_set_static_string (GValue	      *value,
 						 const gchar  *v_string);
+_GOBJECT_API
 const gchar *         g_value_get_string	(const GValue *value);
+_GOBJECT_API
 gchar*		      g_value_dup_string	(const GValue *value);
+_GOBJECT_API
 void		      g_value_set_pointer	(GValue	      *value,
 						 gpointer      v_pointer);
+_GOBJECT_API
 gpointer	      g_value_get_pointer	(const GValue *value);
+_GOBJECT_API
 GType		      g_gtype_get_type		(void);
+_GOBJECT_API
 void		      g_value_set_gtype	        (GValue	      *value,
 						 GType         v_gtype);
+_GOBJECT_API
 GType	              g_value_get_gtype	        (const GValue *value);
+_GOBJECT_API
 void		      g_value_set_variant	(GValue	      *value,
 						 GVariant     *variant);
+_GOBJECT_API
 void		      g_value_take_variant	(GValue	      *value,
 						 GVariant     *variant);
+_GOBJECT_API
 GVariant*	      g_value_get_variant	(const GValue *value);
+_GOBJECT_API
 GVariant*	      g_value_dup_variant	(const GValue *value);
 
 
 /* Convenience for registering new pointer types */
+_GOBJECT_API
 GType                 g_pointer_type_register_static (const gchar *name);
 
 /* debugging aid, describe value contents as string */
+_GOBJECT_API
 gchar*                g_strdup_value_contents   (const GValue *value);
 
 
+_GOBJECT_API
 void g_value_take_string		        (GValue		   *value,
 						 gchar		   *v_string);
 GLIB_DEPRECATED_FOR(g_value_take_string)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]