<html><head><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style></head><body><div>Hi Michalis,</div><div><br></div><div>Thank you for looking at this and spotting this problem.</div><div><br></div><div>On Sat, 2026-03-21 at 14:36 +0000, Michalis Kamburelis wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>6. The critical problem is that project doesn't link with fp-units-gtk3 . I'm attaching full output, the core are linking issues:<br></div><div><br>"""<br>/usr/bin/x86_64-linux-gnu-ld.bfd: /usr/lib/x86_64-linux-gnu/fpc/3.2.2/units/x86_64-linux/gtk3/glib2.o: in function `GLIB2$_$TGMAINCONTEXT_$__$$_PUSHER_NEW$$PGMAINCONTEXTPUSHER':<br>glib2.pas:(.text.n_glib2$_$tgmaincontext_$__$$_pusher_new$$pgmaincontextpusher+0x15): undefined reference to `g_main_context_pusher_new'<br>/usr/bin/x86_64-linux-gnu-ld.bfd: /usr/lib/x86_64-linux-gnu/fpc/3.2.2/units/x86_64-linux/gtk3/glib2.o: in function `GLIB2$_$TGMAINCONTEXT_$__$$_PUSHER_FREE$PGMAINCONTEXTPUSHER':<br>glib2.pas:(.text.n_glib2$_$tgmaincontext_$__$$_pusher_free$pgmaincontextpusher+0x19): undefined reference to `g_main_context_pusher_free'<br>/usr/bin/x86_64-linux-gnu-ld.bfd: /usr/lib/x86_64-linux-gnu/fpc/3.2.2/units/x86_64-linux/gtk3/glib2.o: in function `GLIB2$_$TGTHREAD_$__$$_INIT$POINTER':<br>glib2.pas:(.text.n_glib2$_$tgthread_$__$$_init$pointer+0x19): undefined reference to `g_thread_init'<br>/usr/bin/x86_64-linux-gnu-ld.bfd: /usr/lib/x86_64-linux-gnu/fpc/3.2.2/units/x86_64-linux/gtk3/glib2.o: in function `GLIB2$_$TGTHREAD_$__$$_INIT_WITH_ERRORCHECK_MUTEXES$POINTER':<br>glib2.pas:(.text.n_glib2$_$tgthread_$__$$_init_with_errorcheck_mutexes$pointer+0x19): undefined reference to `g_thread_init_with_errorcheck_mutexes'<br>"""</div></blockquote><div>I've checked these functions and they are defined as <i>static inline</i> in the C header file. However there is no indication in the GIR file that they are not regular functions.</div><div><br></div><div>Looking on this issue, it seems that in old GIR files, this can be detected using the documentation tag pointing to a .h file instead of .c file.</div><div><br></div><div>I'm going to fix this issue in <i>gir2pas</i> and then regenerate new version of bindings.</div><div><br></div><div>The reason this does not happen in Lazarus distributed units is that they were manually tweaked, which we want to avoid on gtk4pas project.</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Cantarell; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0.4); -webkit-text-stroke-width: 0px; text-decoration: none;"><span><pre>-- <br></pre>Mazen Neifer <<a href="mailto:mazen@debian.org" style="color: rgb(46, 52, 54);">mazen@debian.org</a>></span></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"></blockquote></body></html>