Bug 48958 - undefined symbol: g_io_module_load
Summary: undefined symbol: g_io_module_load
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: gnome-vfs (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 major
Assignee: Yuri N. Sedunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-28 15:13 MSK by ArtEze
Modified: 2023-12-30 23:53 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ArtEze 2023-12-28 15:13:55 MSK
I have this problem with gnome-vfs and I want to solve it, making it able to read the symbol that currently detects it as undefined:

The libvfs-test.so library and ultimately, all the other modules is giving me this problem: undefined symbol: g_io_module_load

The symbol does exist in libgio:

strings /usr/lib64/libgio-2.0.so.0.7800.3 | grep -i g_io_module_load
g_io_module_load

What could be happening here? How do I solve it?
Comment 1 ArtEze 2023-12-28 21:58:01 MSK
When I try to compile it I have this error:

gnome-vfs-ssl.c:403:38: error: uso no válido del typedef incompleto ‘SSL’ {también conocido como ‘struct ssl_st’}
  403 |                 if (ssl->private->ssl->ctx)
      |                                      ^~
gnome-vfs-ssl.c:404:56: error: uso no válido del typedef incompleto ‘SSL’ {también conocido como ‘struct ssl_st’}
  404 |                         SSL_CTX_free (ssl->private->ssl->ctx);
      |                                                        ^~
gnome-vfs-ssl.c: En la función ‘gnome_vfs_ssl_destroy’:
gnome-vfs-ssl.c:708:40: error: uso no válido del typedef incompleto ‘SSL’ {también conocido como ‘struct ssl_st’}
  708 |         SSL_CTX_free (ssl->private->ssl->ctx);
      |                                        ^~

Translated to English:

gnome-vfs-ssl.c:403:38: error: invalid use of incomplete typedef 'SSL' {aka 'struct ssl_st'}
   403 | if (ssl->private->ssl->ctx)
       | ^~
gnome-vfs-ssl.c:404:56: error: invalid use of incomplete typedef 'SSL' {aka 'struct ssl_st'}
   404 | SSL_CTX_free (ssl->private->ssl->ctx);
       | ^~
gnome-vfs-ssl.c: In the function 'gnome_vfs_ssl_destroy':
gnome-vfs-ssl.c:708:40: error: invalid use of incomplete typedef 'SSL' {aka 'struct ssl_st'}
   708 | SSL_CTX_free (ssl->private->ssl->ctx);
       | ^~
Comment 2 ArtEze 2023-12-28 23:24:58 MSK
I left those lines commented out, then removed -lgconf-2 from all Makefiles, and then did make install, the problem persists.
Comment 3 Yuri N. Sedunov 2023-12-29 13:33:55 MSK
Наш пакет gnome-vfs успешно собирается. 
https://packages.altlinux.org/ru/sisyphus/srpms/gnome-vfs/
Что, на какой OS пытаетесь собирать вы?
Comment 4 ArtEze 2023-12-30 01:41:51 MSK
I tried to compile from this link:


https://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/Sisyphus/x86_64/SRPMS.classic/gnome-vfs-2.24.4-alt12.src.rpm

The operating system is Puppy Linux LxPupSc64, which is Slackware. For the packages I use pacman of ArchLinux.

gcc --version
gcc (GCC) 13.2.1 20230801
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the code for copy conditions. There is no
warranty; not even for MERCHANTABILITY or FITNESS FOR A PURPOSE IN
PARTICULAR

ld --version
GNU ld (GNU Binutils) 2.41.0
Copyright (C) 2023 Free Software Foundation, Inc.

Configure:

Gnome VFS configuration summary:

configure: WARNING: *** FAM support will not be built (FAM library not found) Gnome-vfs depends on FAM to provide notification when files are altered (either through filesystem polling, or a kernel notification mechanism). If Gnome-vfs is built without FAM support, directories viewed with Nautilus or other applications will not remain in synch with the actual filesystem when they are altered by external processes. Particularly if you are a distributor please compile Nautilus with FAM support. FAM is available from http://oss.sgi.com/projects/fam/. A patch to add Linux Kernel 2.4 directory notify support to FAM (highly desirable) is available from http://people.redhat.com/alexl/files/ ***


	IPv6 support:                yes
	SSL support:                 yes
      	Avahi support:		     yes
      	Howl support:		     no
	HAL  support:                yes
	Enable gnome-vfs-daemon:     yes
	SELinux  support:            yes
	File ACL backends:           posix
	Gtk Doc:                     no
	FS monitor backends:         inotify 
	Samba method:		     no
	CDDA method:		     no
	Enable profiler:             no

Then a problem on this line in libgnomevfs/gnome-vfs-ssl.c

                if (ssl->private->ssl->ctx)
                        SSL_CTX_free (ssl->private->ssl->ctx);

And this line:

	SSL_CTX_free (ssl->private->ssl->ctx);

I comment on the lines that are causing problems.

Then "hal" was missing, I was able to solve it.

http://netbsd.ftp.fu-berlin.de/pub/NetBSD/pkgsrc/packages/NetBSD/amd64/9.3/All/hal-0.5.14nb30.tgz

http://netbsd.ftp.fu-berlin.de/pub/NetBSD/pkgsrc/packages/NetBSD/amd64/9.3/All/libexecinfo-1.1nb1.tgz

ln -svfr /usr/lib/libexecinfo.so.1 /usr/lib/libexecinfo.so.0

/usr/bin/ld: cannot find -lgconf-2: No such file or directory

pacman -Syu gconf hal-git clang util-linux-libs

/usr/bin/ld: warning: libc.so.12, needed by /usr/pkg/lib/libhal-storage.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libm.so.0, needed by /usr/lib/libexecinfo.so.0, not found (try using -rpath or -rpath-link)

ln -svfr /usr/lib/libc.so.6 /usr/lib/libc.so.12
ln -svfr /usr/lib/libm.so.6 /usr/lib/libm.so.0

make

/usr/bin/ld: /usr/pkg/lib/libhal-storage.so: undefined reference to `__sF'
/usr/bin/ld: /usr/pkg/lib/libhal-storage.so: undefined reference to `__stack_chk_guard'

/usr/pkg/lib/libhal-storage.so
	linux-vdso.so.1 (0x00007ffd2eddc000)
	libhal.so.1 => /usr/pkg/lib/libhal.so.1 (0x00007fa0c3c00000)
	libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007fa0c4298000)
	libexecinfo.so.0 => /usr/lib/libexecinfo.so.0 (0x00007fa0c3800000)
	libpthread.so.1 => /usr/lib/libpthread.so.1 (0x00007fa0c4293000)
	libc.so.12 => /usr/lib/libc.so.12 (0x00007fa0c3e1e000)
	libelogind.so.0 => /usr/lib/libelogind.so.0 (0x00007fa0c3b53000)
	libm.so.0 => /usr/lib/libm.so.0 (0x00007fa0c3a66000)
	/usr/lib64/ld-linux-x86-64.so.2 (0x00007fa0c42eb000)
	libcap.so.2 => /usr/lib/libcap.so.2 (0x00007fa0c4285000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fa0c4260000)

realpath /usr/lib/libc.so.12
/usr/lib/libc.so.6

What library do I point to so that __stack_chk_guard resolves?

Or what is the correct way to get libhal-storage.so?
Comment 5 Yuri N. Sedunov 2023-12-30 12:52:28 MSK
(Ответ для ArtEze на комментарий #4)
...

> The operating system is Puppy Linux 


Обратитесь за помощью сюда https://forum.puppylinux.com/
Comment 6 ArtEze 2023-12-30 16:04:44 MSK
I understand. A question, does it compile from your system?

https://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/Sisyphus/x86_64/SRPMS.classic/gnome-vfs-2.24.4-alt12.src.rpm

Don't you get the error that appeared to me?

gnome-vfs-ssl.c:403:38: error: uso no válido del typedef incompleto ‘SSL’ {también conocido como ‘struct ssl_st’}
  403 |                 if (ssl->private->ssl->ctx)
      |                                      ^~
gnome-vfs-ssl.c:404:56: error: uso no válido del typedef incompleto ‘SSL’ {también conocido como ‘struct ssl_st’}
  404 |                         SSL_CTX_free (ssl->private->ssl->ctx);
      |                                                        ^~
gnome-vfs-ssl.c: En la función ‘gnome_vfs_ssl_destroy’:
gnome-vfs-ssl.c:708:40: error: uso no válido del typedef incompleto ‘SSL’ {también conocido como ‘struct ssl_st’}
  708 |         SSL_CTX_free (ssl->private->ssl->ctx);
      |                                        ^~

If the same problem occurs, I would like to know what would have to be changed, since we would not be working on Puppy Linux.
Comment 7 Yuri N. Sedunov 2023-12-30 16:40:21 MSK
(Ответ для ArtEze на комментарий #6)
> I understand. A question, does it compile from your system?

Да, конечно.

https://packages.altlinux.org/en/tasks/337514/


> 
> https://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/Sisyphus/x86_64/
> SRPMS.classic/gnome-vfs-2.24.4-alt12.src.rpm
> 
> Don't you get the error that appeared to me?

Нет.

https://git.altlinux.org/tasks/337514/build/100/x86_64/log
Comment 8 ArtEze 2023-12-30 20:25:25 MSK
Using ChatGPT I managed to create a script that recursively searches the dependencies to look for the symbol.

https://gist.github.com/arteze/8c16e7f86c733558d221e287a724cbd5

I used it like this:

readelf_recursivo.sh /usr/lib/gvfs/modules/libvfs-test.so g_io_module_load

Result:

/usr/lib/gvfs/modules/libvfs-test.so
/usr/lib/libgnomevfs-2.so.0
/usr/lib/libgconf-2.so.4
/usr/lib/libdbus-glib-1.so.2
/usr/lib/libgio-2.0.so.0

/usr/lib/gvfs/modules/libvfs-test.so
/usr/lib/libgnomevfs-2.so.0
/usr/lib/libdbus-glib-1.so.2
/usr/lib/libgio-2.0.so.0

It seems that /usr/lib/libdbus-glib-1.so.2 is not looking for the g_io_module_load symbol and I don't really know which library is looking for it.

When you do the following you can't find it:

strings /usr/lib/libdbus-glib-1.so.2 | grep -i g_io_module_load

I think that adding -lgio-2.0 to the Makefile could solve the problem. Perhaps the problem is with libdbus-glib-1.so.2 and the flag should be added to that library.
Comment 9 ArtEze 2023-12-30 23:53:56 MSK
I already tried -lgio-2.0 and it doesn't work either.

I think there are no alternatives left, I deleted the modules from that folder, maybe they just shouldn't be in that folder.