Solved Undefined symbol "g_task_get_name"

Hi Everyone,

I've recently upgraded from 12.1-RELEASE to 12.2-RELEASE. So far as I can tell, the upgrade process went through without a glitch; freebsd-version reports that I'm on 12.2.RELEASE-p3, and freebsd-update fetch and freebsd-update install say that no more updates are available.

Before the upgrade I used only the base system. After the upgrade I decided to install X with XFCE. The window manager starts properly, but when I try to launch an xfce terminal, it aborts with
Code:
ld-elf.so.1: /usr/local/lib/libgtk-3.so.0: Undefined symbol "g_task_get_name"
. Most of the other graphical programs fail with similar error messages. The only graphical program that works is plain old xterm.

Any help for how to resolve this issue is appreciated.
Thanks!
 
Run pkg upgrade to upgrade your packages. The error has nothing to do with 12.1 vs. 12.2.
 
Thanks, that took care of it, though I'm puzzled: the Handbook, Section 24.2.3 says that is necessary only after major version upgrades? Could the upgrade from 12.1 to 12.2 break the ABI? Was that the issue here?
 
Could the upgrade from 12.1 to 12.2 break the ABI?
The error isn't related to the ABI. I suspect you had some older versions of various packages installed, the installation of X and XFCE installed the latest versions and this caused a discrepancy with the packages that were already installed previously. By running pkg upgrade everything was updated and in sync again.
 
As SirDice said, this is not ABI related. Error is coming from libgtk-3.so.0 and its missing symbol. When I check it on my 12.2 VM:
Code:
# readelf -Wa /usr/local/lib/libgtk-3.so | grep g_task_get_name
1548: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND g_task_get_name

# ldd /usr/local/lib/libgtk-3.so |grep libgio
    libgio-2.0.so.0 => /usr/local/lib/libgio-2.0.so.0 (0x801aa2000)

# readelf -Wa /usr/local/lib/libgio-2.0.so.0  |grep g_task_get_name
  1191: 0000000000127cf0   135 FUNC    GLOBAL DEFAULT   12 g_task_get_name
#
You can see the required symbol (function) is coming from this library that is included in glib-2.66.0_1,1 package, gtk has dependency on it.
There are few possibilities why it happened to you but it would be a guessing game at this point. Most likely versions of these packages were far apart.
 
Back
Top