After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 764233 - gtksourceviewmm3 needs update with respect to the API changes in gtksourceview3.20
gtksourceviewmm3 needs update with respect to the API changes in gtksourcevie...
Status: RESOLVED FIXED
Product: gtksourceviewmm
Classification: Other
Component: general
3.18.x
Other All
: Normal major
: ---
Assigned To: gtksourceviewmm-maint
gtksourceviewmm-maint
Depends on:
Blocks:
 
 
Reported: 2016-03-26 13:47 UTC by Ole Christian Eidheim
Modified: 2016-03-30 08:01 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Ole Christian Eidheim 2016-03-26 13:47:51 UTC
Building gtksourceviewmm3.18 with gtksourceview3.20 development files gave the following errors:

.libs/completion.o:completion.cc:(.text+0xb5d): undefined reference to `gtk_source_completion_move_window'
.libs/completioninfo.o:completioninfo.cc:(.text+0x821): undefined reference to `gtk_source_completion_info_get_widget'
.libs/completioninfo.o:completioninfo.cc:(.text+0x809): undefined reference to `gtk_source_completion_info_set_widget'
.libs/gutter.o:gutter.cc:(.text+0x446): undefined reference to `gtk_source_gutter_get_window'
.libs/gutter.o:gutter.cc:(.text+0x55d): undefined reference to `gtk_source_gutter_set_padding'
.libs/gutter.o:gutter.cc:(.text+0x57d): undefined reference to `gtk_source_gutter_get_padding'
.libs/gutterrendererpixbuf.o:gutterrendererpixbuf.cc:(.text+0x628): undefined reference to `gtk_source_gutter_renderer_pixbuf_get_stock_id'
.libs/gutterrendererpixbuf.o:gutterrendererpixbuf.cc:(.text+0x6f0): undefined reference to `gtk_source_gutter_renderer_pixbuf_set_stock_id'
.libs/markattributes.o:markattributes.cc:(.text+0x848): undefined reference to `gtk_source_mark_attributes_get_stock_id'
.libs/markattributes.o:markattributes.cc:(.text+0x910): undefined reference to `gtk_source_mark_attributes_set_stock_id'
.libs/view.o:view.cc:(.text+0x140d): undefined reference to `gtk_source_view_get_draw_spaces'
Comment 1 Krzesimir Nowak 2016-03-26 16:49:10 UTC
I was able to build to build gtksourceviewmm 3.18 with gtksourceview 3.20 just fine in jhbuild. Could you send me the output of "make V=1 check"? It might be some problem with the environment. For the record, the relevant parts from the output from the "make V=1 check" invocation on my computer:

[krnowak@fiodor gtksourceviewmm]$ make V=1 check
...
Making check in tests
make[1]: Entering directory '/home/krnowak/usr/src/gtksourceviewmm/tests'
make  basic/test langs/test search/test get_buffer/test mime_types/test completion/test
make[2]: Entering directory '/home/krnowak/usr/src/gtksourceviewmm/tests'
...
depbase=`echo completion/main.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H   -I.. -I../gtksourceview  -pthread  -pthread -I/home/krnowak/usr/include/gtkmm-3.0 -I/home/krnowak/usr/lib/gtkmm-3.0/include -I/home/krnowak/usr/include/atkmm-1.6 -I/home/krnowak/usr/include/gtk-3.0/unix-print -I/home/krnowak/usr/include/gdkmm-3.0 -I/home/krnowak/usr/lib/gdkmm-3.0/include -I/home/krnowak/usr/include/giomm-2.4 -I/home/krnowak/usr/lib/giomm-2.4/include -I/home/krnowak/usr/include/pangomm-1.4 -I/home/krnowak/usr/lib/pangomm-1.4/include -I/home/krnowak/usr/include/glibmm-2.4 -I/home/krnowak/usr/lib/glibmm-2.4/include -I/home/krnowak/usr/include/cairomm-1.0 -I/home/krnowak/usr/lib/cairomm-1.0/include -I/home/krnowak/usr/include/sigc++-2.0 -I/home/krnowak/usr/lib/sigc++-2.0/include -I/home/krnowak/usr/include/gtksourceview-3.0 -I/home/krnowak/usr/include/gtk-3.0 -I/home/krnowak/usr/include/at-spi2-atk/2.0 -I/home/krnowak/usr/include/at-spi-2.0 -I/home/krnowak/usr/include/gtk-3.0 -I/home/krnowak/usr/include/gio-unix-2.0/ -I/home/krnowak/usr/include/pango-1.0 -I/home/krnowak/usr/include/harfbuzz -I/home/krnowak/usr/include/pango-1.0 -I/home/krnowak/usr/include/atk-1.0 -I/home/krnowak/usr/include/gdk-pixbuf-2.0 -I/home/krnowak/usr/include/glib-2.0 -I/home/krnowak/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/libpng16   -Wall -Wno-long-long -g -O0 -std=c++11 -MT completion/main.o -MD -MP -MF $depbase.Tpo -c -o completion/main.o completion/main.cc &&\
mv -f $depbase.Tpo $depbase.Po
/bin/sh ../libtool  --tag=CXX   --mode=link g++ -Wall -Wno-long-long -g -O0 -std=c++11  -L/home/krnowak/usr/lib  -o completion/test completion/main.o -L/home/krnowak/usr/lib -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtksourceview-3.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0  ../gtksourceview/gtksourceviewmm/libgtksourceviewmm-3.0.la 
libtool: link: g++ -Wall -Wno-long-long -g -O0 -std=c++11 -o completion/.libs/test completion/main.o  -L/home/krnowak/usr/lib ../gtksourceview/gtksourceviewmm/.libs/libgtksourceviewmm-3.0.so -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtksourceview-3.0 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -Wl,-rpath -Wl,/home/krnowak/usr/lib
make[2]: Leaving directory '/home/krnowak/usr/src/gtksourceviewmm/tests'
make[1]: Leaving directory '/home/krnowak/usr/src/gtksourceviewmm/tests'
make[1]: Entering directory '/home/krnowak/usr/src/gtksourceviewmm'
make[1]: Leaving directory '/home/krnowak/usr/src/gtksourceviewmm'
Comment 2 Ole Christian Eidheim 2016-03-26 18:59:52 UTC
Thank you for the quick response. I see now that this issue does not have anything with API changes, since it is happening when linking. Sorry. 

I am trying to fix gtksourceviewmm3 for MSYS2 (https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-gtksourceviewmm3) after they upgraded to gtksourceview3.20. I just verified that gtksourceviewmm3 compiles and links with the older gtksourceview3.18 MSYS2 package.

When running make V=1 check (hopefully the relevant parts):
$ make V=1 check
Making check in gtksourceview/gtksourceviewmm
make[1]: Entering directory '/home/ole/MINGW-packages/mingw-w64-gtksourceviewmm3/src/build-x86_64-w64-mingw32/gtksourceview/gtksourceviewmm'
/bin/sh ../../libtool  --tag=CXX   --mode=link x86_64-w64-mingw32-g++ -Wall -Wno-long-long -march=x86-64 -mtune=generic -O2 -pipe -std=c++11 -no-undefined -version-info 0:0:0 -pipe -o libgtksourceviewmm-3.0.la -rpath /mingw64/lib buffer.lo completion.lo completionactivation.lo completioncontext.lo completioninfo.lo completionitem.lo completionproposal.lo completionprovider.lo completionwords.lo gutter.lo gutterrenderer.lo gutterrendererpixbuf.lo gutterrenderertext.lo language.lo languagemanager.lo mark.lo markattributes.lo printcompositor.lo style.lo stylescheme.lo styleschememanager.lo undomanager.lo view.lo wrap_init.lo init.lo markup.lo -LC:/msys64/mingw64/lib -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtksourceview-3.0 -lgtk-3 -lgdk-3 -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lwinmm -ldwmapi -lz -lpangowin32-1.0 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl
libtool: link: rm -fr  .libs/libgtksourceviewmm-3.0.dll.a
libtool: link: x86_64-w64-mingw32-g++ -shared -nostdlib C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/lib/../lib/dllcrt2.o C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/crtbegin.o  .libs/buffer.o .libs/completion.o .libs/completionactivation.o .libs/completioncontext.o .libs/completioninfo.o .libs/completionitem.o .libs/completionproposal.o .libs/completionprovider.o .libs/completionwords.o .libs/gutter.o .libs/gutterrenderer.o .libs/gutterrendererpixbuf.o .libs/gutterrenderertext.o .libs/language.o .libs/languagemanager.o .libs/mark.o .libs/markattributes.o .libs/printcompositor.o .libs/style.o .libs/stylescheme.o .libs/styleschememanager.o .libs/undomanager.o .libs/view.o .libs/wrap_init.o .libs/init.o .libs/markup.o   -LC:/msys64/mingw64/lib -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtksourceview-3.0 -lgtk-3 -lgdk-3 -lgdi32 -limm32 -lshell32 -lole32 -lwinmm -ldwmapi -lz -lpangowin32-1.0 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -LC:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0 -LC:/msys64/mingw64/bin/../lib/gcc -LC:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/lib/../lib -LC:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../lib -LC:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../../../x86_64-w64-mingw32/lib -LC:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/../../.. -lstdc++ -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/crtend.o  -march=x86-64 -mtune=generic -O2 -Wl,-luuid   -o .libs/libgtksourceviewmm-3.0-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libgtksourceviewmm-3.0.dll.a
.libs/completion.o:completion.cc:(.text+0xb5d): undefined reference to `gtk_source_completion_move_window'
.libs/completioninfo.o:completioninfo.cc:(.text+0x821): undefined reference to `gtk_source_completion_info_get_widget'
.libs/completioninfo.o:completioninfo.cc:(.text+0x809): undefined reference to `gtk_source_completion_info_set_widget'
.libs/gutter.o:gutter.cc:(.text+0x446): undefined reference to `gtk_source_gutter_get_window'
.libs/gutter.o:gutter.cc:(.text+0x55d): undefined reference to `gtk_source_gutter_set_padding'
.libs/gutter.o:gutter.cc:(.text+0x57d): undefined reference to `gtk_source_gutter_get_padding'
.libs/gutterrendererpixbuf.o:gutterrendererpixbuf.cc:(.text+0x628): undefined reference to `gtk_source_gutter_renderer_pixbuf_get_stock_id'
.libs/gutterrendererpixbuf.o:gutterrendererpixbuf.cc:(.text+0x6f0): undefined reference to `gtk_source_gutter_renderer_pixbuf_set_stock_id'
.libs/markattributes.o:markattributes.cc:(.text+0x848): undefined reference to `gtk_source_mark_attributes_get_stock_id'
.libs/markattributes.o:markattributes.cc:(.text+0x910): undefined reference to `gtk_source_mark_attributes_set_stock_id'
.libs/view.o:view.cc:(.text+0x140d): undefined reference to `gtk_source_view_get_draw_spaces'
collect2.exe: error: ld returned 1 exit status
Makefile:507: recipe for target 'libgtksourceviewmm-3.0.la' failed
make[1]: *** [libgtksourceviewmm-3.0.la] Error 1
make[1]: Leaving directory '/home/ole/MINGW-packages/mingw-w64-gtksourceviewmm3/src/build-x86_64-w64-mingw32/gtksourceview/gtksourceviewmm'
Makefile:558: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1
Comment 3 Krzesimir Nowak 2016-03-26 20:35:24 UTC
That's curious. Almost all the undefined references are references to the deprecated functions (marked with GTK_SOURCE_DEPRECATED_IN_3_X or GTK_SOURCE_DEPRECATED_IN_3_X_FOR). The lone exception is gtk_source_view_get_draw_spaces which is not deprecated, but does not have the GTK_SOURCE_AVAILABLE_IN_ALL attribute (https://git.gnome.org/browse/gtksourceview/tree/gtksourceview/gtksourceview.h#n254).

The last one is likely a bug in gtksourceview and I just sent a patch here - https://bugzilla.gnome.org/show_bug.cgi?id=764246.

I don't know where exactly is the problem. Maybe with G_DEPRECATED macro? But you would have issues with it earlier I guess.
Comment 4 Ole Christian Eidheim 2016-03-27 09:24:46 UTC
When looking into gtksourceviewmm3 source, and running:
$ grep -R gtk_source_completion_move_window *
I get these two:
gtksourceviewmm/completion.cc:  gtk_source_completion_move_window(gobj(), const_cast<GtkTextIter*>((iter).gobj()));

src/completion.hg:  _WRAP_METHOD(void move_window(const Gtk::TextIter& iter), gtk_source_completion_move_window, deprecated "Use SourceCompletionProvider::get_start_iter() instead.")

Might the solution be to update the implementations (.cc-files) to use non-deprecated functions? I take it some functions got removed (due to older deprecations) from gtksourceview3.18 to 3.20? However, it is still strange that you got it to compile...

Also by running configure and make manually I get the following output that is a bit more descriptive (the "In function" are included):
$ make
Making all in gtksourceview/gtksourceviewmm
make[1]: Entering directory '/home/ole/MINGW-packages/mingw-w64-gtksourceviewmm3/src/gtksourceviewmm-3.18.0/gtksourceview/gtksourceviewmm'
  CXX      buffer.lo
  CXX      completion.lo
  CXX      completionactivation.lo
  CXX      completioncontext.lo
  CXX      completioninfo.lo
  CXX      completionitem.lo
  CXX      completionproposal.lo
  CXX      completionprovider.lo
  CXX      completionwords.lo
  CXX      gutter.lo
  CXX      gutterrenderer.lo
  CXX      gutterrendererpixbuf.lo
  CXX      gutterrenderertext.lo
  CXX      language.lo
  CXX      languagemanager.lo
  CXX      mark.lo
  CXX      markattributes.lo
  CXX      printcompositor.lo
  CXX      style.lo
  CXX      stylescheme.lo
  CXX      styleschememanager.lo
  CXX      undomanager.lo
  CXX      view.lo
  CXX      wrap_init.lo
  CXX      init.lo
  CXX      markup.lo
  CXXLD    libgtksourceviewmm-3.0.la
.libs/completion.o: In function `Gsv::Completion::move_window(Gtk::TextIter const&)':
C:\msys64\home\ole\MINGW-packages\mingw-w64-gtksourceviewmm3\src\gtksourceviewmm-3.18.0\gtksourceview\gtksourceviewmm/completion.cc:404: undefined reference to `gtk_source_completion_move_window'
.libs/completioninfo.o: In function `Gsv::CompletionInfo::get_widget()':
C:\msys64\home\ole\MINGW-packages\mingw-w64-gtksourceviewmm3\src\gtksourceviewmm-3.18.0\gtksourceview\gtksourceviewmm/completioninfo.cc:229: undefined reference to `gtk_source_completion_info_get_widget'
.libs/completioninfo.o: In function `Gsv::CompletionInfo::set_widget(Gtk::Widget&)':
C:\msys64\home\ole\MINGW-packages\mingw-w64-gtksourceviewmm3\src\gtksourceviewmm-3.18.0\gtksourceview\gtksourceviewmm/completioninfo.cc:220: undefined reference to `gtk_source_completion_info_set_widget'
.libs/gutter.o: In function `Gsv::Gutter::get_window()':
C:\msys64\home\ole\MINGW-packages\mingw-w64-gtksourceviewmm3\src\gtksourceviewmm-3.18.0\gtksourceview\gtksourceviewmm/gutter.cc:145: undefined reference to `gtk_source_gutter_get_window'
.libs/gutter.o: In function `Gsv::Gutter::set_padding(int, int)':
C:\msys64\home\ole\MINGW-packages\mingw-w64-gtksourceviewmm3\src\gtksourceviewmm-3.18.0\gtksourceview\gtksourceviewmm/gutter.cc:186: undefined reference to `gtk_source_gutter_set_padding'
.libs/gutter.o: In function `Gsv::Gutter::get_padding(int&, int&) const':
C:\msys64\home\ole\MINGW-packages\mingw-w64-gtksourceviewmm3\src\gtksourceviewmm-3.18.0\gtksourceview\gtksourceviewmm/gutter.cc:195: undefined reference to `gtk_source_gutter_get_padding'
.libs/gutterrendererpixbuf.o: In function `Gsv::GutterRendererPixbuf::get_stock_id[abi:cxx11]() const':
C:\msys64\home\ole\MINGW-packages\mingw-w64-gtksourceviewmm3\src\gtksourceviewmm-3.18.0\gtksourceview\gtksourceviewmm/gutterrendererpixbuf.cc:173: undefined reference to `gtk_source_gutter_renderer_pixbuf_get_stock_id'
.libs/gutterrendererpixbuf.o: In function `Gsv::GutterRendererPixbuf::set_stock_id(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
C:\msys64\home\ole\MINGW-packages\mingw-w64-gtksourceviewmm3\src\gtksourceviewmm-3.18.0\gtksourceview\gtksourceviewmm/gutterrendererpixbuf.cc:182: undefined reference to `gtk_source_gutter_renderer_pixbuf_set_stock_id'
.libs/markattributes.o: In function `Gsv::MarkAttributes::get_stock_id[abi:cxx11]() const':
C:\msys64\home\ole\MINGW-packages\mingw-w64-gtksourceviewmm3\src\gtksourceviewmm-3.18.0\gtksourceview\gtksourceviewmm/markattributes.cc:309: undefined reference to `gtk_source_mark_attributes_get_stock_id'
.libs/markattributes.o: In function `Gsv::MarkAttributes::set_stock_id(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
C:\msys64\home\ole\MINGW-packages\mingw-w64-gtksourceviewmm3\src\gtksourceviewmm-3.18.0\gtksourceview\gtksourceviewmm/markattributes.cc:318: undefined reference to `gtk_source_mark_attributes_set_stock_id'
.libs/view.o: In function `Gsv::View::get_draw_spaces() const':
C:\msys64\home\ole\MINGW-packages\mingw-w64-gtksourceviewmm3\src\gtksourceviewmm-3.18.0\gtksourceview\gtksourceviewmm/view.cc:512: undefined reference to `gtk_source_view_get_draw_spaces'
collect2.exe: error: ld returned 1 exit status
Makefile:507: recipe for target 'libgtksourceviewmm-3.0.la' failed
make[1]: *** [libgtksourceviewmm-3.0.la] Error 1
make[1]: Leaving directory '/home/ole/MINGW-packages/mingw-w64-gtksourceviewmm3/src/gtksourceviewmm-3.18.0/gtksourceview/gtksourceviewmm'
Makefile:558: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

Not sure if this helps, but posting it anyway. Have also tried configuring and compiling with various deprecation settings and macros without any luck.
Comment 5 Ole Christian Eidheim 2016-03-27 10:23:57 UTC
Update: The problem seems not to be gtksourceviewmm3.18 but instead in gtksourceview3.20. When I try to build an application using a deprecated symbol in gtksourceview3.20 I get the same undefined reference error. 

MSYS2 builds gtksourceview3 using the PKGCONFIG in:
https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-gtksourceview3

I have also tried various deprecation settings here. The older gtksourceview3 version 3.18 in MSYS2 was build with the same configuration settings.
Comment 6 Ole Christian Eidheim 2016-03-27 13:17:32 UTC
Might the problem be that G_DEPRECATED and G_DEPRECATED_FOR is used instead of GDK_DEPRECATED and GDK_DEPRECATED_FOR in https://git.gnome.org/browse/gtksourceview/tree/gtksourceview/gtksourceversion.h.in?

G_DEPRECATED and G_DEPRECATED_FOR is missing the keyword "extern" at the end. The following source:
#pragma message "G_DEPRECATED_FOR=" BOOST_PP_STRINGIZE(G_DEPRECATED_FOR(something))  
#pragma message "GDK_DEPRECATED_FOR=" BOOST_PP_STRINGIZE(GDK_DEPRECATED_FOR(something))

#pragma message "G_DEPRECATED=" BOOST_PP_STRINGIZE(G_DEPRECATED)
#pragma message "GDK_DEPRECATED=" BOOST_PP_STRINGIZE(GDK_DEPRECATED)

Gives the following output:
C:/msys64/home/ole/gui_example/main.cpp:60:83: note: #pragma message: G_DEPRECATED_FOR=__attribute__((__deprecated__("Use '" "something" "' instead")))
 #pragma message "G_DEPRECATED_FOR=" BOOST_PP_STRINGIZE(G_DEPRECATED_FOR(something))
                                                                                   ^
C:/msys64/home/ole/gui_example/main.cpp:61:87: note: #pragma message: GDK_DEPRECATED_FOR=__attribute__((__deprecated__("Use '" "something" "' instead"))) extern
 #pragma message "GDK_DEPRECATED_FOR=" BOOST_PP_STRINGIZE(GDK_DEPRECATED_FOR(something))
                                                                                       ^
C:/msys64/home/ole/gui_example/main.cpp:63:64: note: #pragma message: G_DEPRECATED=__attribute__((__deprecated__))
 #pragma message "G_DEPRECATED=" BOOST_PP_STRINGIZE(G_DEPRECATED)
                                                                ^
C:/msys64/home/ole/gui_example/main.cpp:64:68: note: #pragma message: GDK_DEPRECATED=__attribute__((__deprecated__)) extern
 #pragma message "GDK_DEPRECATED=" BOOST_PP_STRINGIZE(GDK_DEPRECATED)
                                                                    ^
C:/msys64/home/ole/gui_example/main.cpp:49:8: warning: unused variable 'w' [-Wunused-variable]
   auto w=gtk_source_gutter_get_window(NULL);
Comment 7 Ole Christian Eidheim 2016-03-27 13:59:55 UTC
Just verified that applying your patch, and replacing all G_DEPRECATED and G_DEPRECATED_FOR(f) with _GTK_SOURCE_EXTERN in https://git.gnome.org/browse/gtksourceview/tree/gtksourceview/gtksourceversion.h.in made everything work. Of course this is a bad solution. Did try to replace G_DEPRECATED and G_DEPRECATED_FOR(f) with GDK_DEPRECATED and GDK_DEPRECATED_FOR(f), but that did not work for some reason.
Comment 8 Ole Christian Eidheim 2016-03-27 14:54:17 UTC
Ok, it seems _GTK_SOURCE_EXTERN is defined in https://git.gnome.org/browse/gtksourceview/tree/config.h.win32.in#n81

My guess then is that the dllexport is missing for G_DEPRECATED and G_DEPRECATED_FOR, or?
Comment 9 Ole Christian Eidheim 2016-03-27 15:38:01 UTC
_GTK_SOURCE_EXTERN seems to be missing behind all G_DEPRECATED and G_DEPRECATED_FOR(f).

See for instance how they do it in https://git.gnome.org/browse/gtk+/tree/gdk/gdkversionmacros.h.in. In gtksourceversion.h.in it is done by adding _GTK_SOURCE_EXTERN at the end of each line, for instance like here: https://git.gnome.org/browse/gtksourceview/tree/gtksourceview/gtksourceversion.h.in#n291

Fix for https://git.gnome.org/browse/gtksourceview/tree/gtksourceview/gtksourceversion.h.in (sorry I'm used to GitHub only):
$ diff -u gtksourceversion.h.in.old gtksourceversion.h.in
--- gtksourceversion.h.in.old   2016-03-27 17:22:19.000000000 +0200
+++ gtksourceversion.h.in       2016-03-27 17:24:00.000000000 +0200
@@ -278,8 +278,8 @@

 #ifndef __GTK_DOC_IGNORE__
 #if GTK_SOURCE_VERSION_MIN_REQUIRED >= GTK_SOURCE_VERSION_3_0
-#define GTK_SOURCE_DEPRECATED_IN_3_0 G_DEPRECATED
-#define GTK_SOURCE_DEPRECATED_IN_3_0_FOR(f) G_DEPRECATED_FOR(f)
+#define GTK_SOURCE_DEPRECATED_IN_3_0 G_DEPRECATED _GTK_SOURCE_EXTERN
+#define GTK_SOURCE_DEPRECATED_IN_3_0_FOR(f) G_DEPRECATED_FOR(f) _GTK_SOURCE_EXTERN
 #else
 #define GTK_SOURCE_DEPRECATED_IN_3_0 _GTK_SOURCE_EXTERN
 #define GTK_SOURCE_DEPRECATED_IN_3_0_FOR(f) _GTK_SOURCE_EXTERN
@@ -296,8 +296,8 @@

 #ifndef __GTK_DOC_IGNORE__
 #if GTK_SOURCE_VERSION_MIN_REQUIRED >= GTK_SOURCE_VERSION_3_2
-#define GTK_SOURCE_DEPRECATED_IN_3_2 G_DEPRECATED
-#define GTK_SOURCE_DEPRECATED_IN_3_2_FOR(f) G_DEPRECATED_FOR(f)
+#define GTK_SOURCE_DEPRECATED_IN_3_2 G_DEPRECATED _GTK_SOURCE_EXTERN
+#define GTK_SOURCE_DEPRECATED_IN_3_2_FOR(f) G_DEPRECATED_FOR(f) _GTK_SOURCE_EXTERN
 #else
 #define GTK_SOURCE_DEPRECATED_IN_3_2 _GTK_SOURCE_EXTERN
 #define GTK_SOURCE_DEPRECATED_IN_3_2_FOR(f) _GTK_SOURCE_EXTERN
@@ -314,8 +314,8 @@

 #ifndef __GTK_DOC_IGNORE__
 #if GTK_SOURCE_VERSION_MIN_REQUIRED >= GTK_SOURCE_VERSION_3_4
-#define GTK_SOURCE_DEPRECATED_IN_3_4 G_DEPRECATED
-#define GTK_SOURCE_DEPRECATED_IN_3_4_FOR(f) G_DEPRECATED_FOR(f)
+#define GTK_SOURCE_DEPRECATED_IN_3_4 G_DEPRECATED _GTK_SOURCE_EXTERN
+#define GTK_SOURCE_DEPRECATED_IN_3_4_FOR(f) G_DEPRECATED_FOR(f) _GTK_SOURCE_EXTERN
 #else
 #define GTK_SOURCE_DEPRECATED_IN_3_4 _GTK_SOURCE_EXTERN
 #define GTK_SOURCE_DEPRECATED_IN_3_4_FOR(f) _GTK_SOURCE_EXTERN
@@ -332,8 +332,8 @@

 #ifndef __GTK_DOC_IGNORE__
 #if GTK_SOURCE_VERSION_MIN_REQUIRED >= GTK_SOURCE_VERSION_3_6
-#define GTK_SOURCE_DEPRECATED_IN_3_6 G_DEPRECATED
-#define GTK_SOURCE_DEPRECATED_IN_3_6_FOR(f) G_DEPRECATED_FOR(f)
+#define GTK_SOURCE_DEPRECATED_IN_3_6 G_DEPRECATED _GTK_SOURCE_EXTERN
+#define GTK_SOURCE_DEPRECATED_IN_3_6_FOR(f) G_DEPRECATED_FOR(f) _GTK_SOURCE_EXTERN
 #else
 #define GTK_SOURCE_DEPRECATED_IN_3_6 _GTK_SOURCE_EXTERN
 #define GTK_SOURCE_DEPRECATED_IN_3_6_FOR(f) _GTK_SOURCE_EXTERN
@@ -350,8 +350,8 @@

 #ifndef __GTK_DOC_IGNORE__
 #if GTK_SOURCE_VERSION_MIN_REQUIRED >= GTK_SOURCE_VERSION_3_8
-#define GTK_SOURCE_DEPRECATED_IN_3_8 G_DEPRECATED
-#define GTK_SOURCE_DEPRECATED_IN_3_8_FOR(f) G_DEPRECATED_FOR(f)
+#define GTK_SOURCE_DEPRECATED_IN_3_8 G_DEPRECATED _GTK_SOURCE_EXTERN
+#define GTK_SOURCE_DEPRECATED_IN_3_8_FOR(f) G_DEPRECATED_FOR(f) _GTK_SOURCE_EXTERN
 #else
 #define GTK_SOURCE_DEPRECATED_IN_3_8 _GTK_SOURCE_EXTERN
 #define GTK_SOURCE_DEPRECATED_IN_3_8_FOR(f) _GTK_SOURCE_EXTERN
@@ -368,8 +368,8 @@

 #ifndef __GTK_DOC_IGNORE__
 #if GTK_SOURCE_VERSION_MIN_REQUIRED >= GTK_SOURCE_VERSION_3_10
-#define GTK_SOURCE_DEPRECATED_IN_3_10 G_DEPRECATED
-#define GTK_SOURCE_DEPRECATED_IN_3_10_FOR(f) G_DEPRECATED_FOR(f)
+#define GTK_SOURCE_DEPRECATED_IN_3_10 G_DEPRECATED _GTK_SOURCE_EXTERN
+#define GTK_SOURCE_DEPRECATED_IN_3_10_FOR(f) G_DEPRECATED_FOR(f) _GTK_SOURCE_EXTERN
 #else
 #define GTK_SOURCE_DEPRECATED_IN_3_10 _GTK_SOURCE_EXTERN
 #define GTK_SOURCE_DEPRECATED_IN_3_10_FOR(f) _GTK_SOURCE_EXTERN
@@ -386,8 +386,8 @@

 #ifndef __GTK_DOC_IGNORE__
 #if GTK_SOURCE_VERSION_MIN_REQUIRED >= GTK_SOURCE_VERSION_3_12
-#define GTK_SOURCE_DEPRECATED_IN_3_12 G_DEPRECATED
-#define GTK_SOURCE_DEPRECATED_IN_3_12_FOR(f) G_DEPRECATED_FOR(f)
+#define GTK_SOURCE_DEPRECATED_IN_3_12 G_DEPRECATED _GTK_SOURCE_EXTERN
+#define GTK_SOURCE_DEPRECATED_IN_3_12_FOR(f) G_DEPRECATED_FOR(f) _GTK_SOURCE_EXTERN
 #else
 #define GTK_SOURCE_DEPRECATED_IN_3_12 _GTK_SOURCE_EXTERN
 #define GTK_SOURCE_DEPRECATED_IN_3_12_FOR(f) _GTK_SOURCE_EXTERN
@@ -404,8 +404,8 @@

 #ifndef __GTK_DOC_IGNORE__
 #if GTK_SOURCE_VERSION_MIN_REQUIRED >= GTK_SOURCE_VERSION_3_14
-#define GTK_SOURCE_DEPRECATED_IN_3_14 G_DEPRECATED
-#define GTK_SOURCE_DEPRECATED_IN_3_14_FOR(f) G_DEPRECATED_FOR(f)
+#define GTK_SOURCE_DEPRECATED_IN_3_14 G_DEPRECATED _GTK_SOURCE_EXTERN
+#define GTK_SOURCE_DEPRECATED_IN_3_14_FOR(f) G_DEPRECATED_FOR(f) _GTK_SOURCE_EXTERN
 #else
 #define GTK_SOURCE_DEPRECATED_IN_3_14 _GTK_SOURCE_EXTERN
 #define GTK_SOURCE_DEPRECATED_IN_3_14_FOR(f) _GTK_SOURCE_EXTERN
@@ -422,8 +422,8 @@

 #ifndef __GTK_DOC_IGNORE__
 #if GTK_SOURCE_VERSION_MIN_REQUIRED >= GTK_SOURCE_VERSION_3_16
-#define GTK_SOURCE_DEPRECATED_IN_3_16 G_DEPRECATED
-#define GTK_SOURCE_DEPRECATED_IN_3_16_FOR(f) G_DEPRECATED_FOR(f)
+#define GTK_SOURCE_DEPRECATED_IN_3_16 G_DEPRECATED _GTK_SOURCE_EXTERN
+#define GTK_SOURCE_DEPRECATED_IN_3_16_FOR(f) G_DEPRECATED_FOR(f) _GTK_SOURCE_EXTERN
 #else
 #define GTK_SOURCE_DEPRECATED_IN_3_16 _GTK_SOURCE_EXTERN
 #define GTK_SOURCE_DEPRECATED_IN_3_16_FOR(f) _GTK_SOURCE_EXTERN
@@ -440,8 +440,8 @@

 #ifndef __GTK_DOC_IGNORE__
 #if GTK_SOURCE_VERSION_MIN_REQUIRED >= GTK_SOURCE_VERSION_3_18
-#define GTK_SOURCE_DEPRECATED_IN_3_18 G_DEPRECATED
-#define GTK_SOURCE_DEPRECATED_IN_3_18_FOR(f) G_DEPRECATED_FOR(f)
+#define GTK_SOURCE_DEPRECATED_IN_3_18 G_DEPRECATED _GTK_SOURCE_EXTERN
+#define GTK_SOURCE_DEPRECATED_IN_3_18_FOR(f) G_DEPRECATED_FOR(f) _GTK_SOURCE_EXTERN
 #else
 #define GTK_SOURCE_DEPRECATED_IN_3_18 _GTK_SOURCE_EXTERN
 #define GTK_SOURCE_DEPRECATED_IN_3_18_FOR(f) _GTK_SOURCE_EXTERN
@@ -458,8 +458,8 @@

 #ifndef __GTK_DOC_IGNORE__
 #if GTK_SOURCE_VERSION_MIN_REQUIRED >= GTK_SOURCE_VERSION_3_20
-#define GTK_SOURCE_DEPRECATED_IN_3_20 G_DEPRECATED
-#define GTK_SOURCE_DEPRECATED_IN_3_20_FOR(f) G_DEPRECATED_FOR(f)
+#define GTK_SOURCE_DEPRECATED_IN_3_20 G_DEPRECATED _GTK_SOURCE_EXTERN
+#define GTK_SOURCE_DEPRECATED_IN_3_20_FOR(f) G_DEPRECATED_FOR(f) _GTK_SOURCE_EXTERN
 #else
 #define GTK_SOURCE_DEPRECATED_IN_3_20 _GTK_SOURCE_EXTERN
 #define GTK_SOURCE_DEPRECATED_IN_3_20_FOR(f) _GTK_SOURCE_EXTERN
Comment 10 Ole Christian Eidheim 2016-03-27 17:52:16 UTC
Added the patch here: https://bugzilla.gnome.org/show_bug.cgi?id=764263
Comment 11 Krzesimir Nowak 2016-03-27 22:33:52 UTC
Thanks for investigating it! Will close it when the issue on gtksourceview side is resolved - I added myself to CC there.
Comment 12 Krzesimir Nowak 2016-03-30 08:01:22 UTC
Closing, the bug on gtksourceview side was fixed.