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?
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); | ^~
I left those lines commented out, then removed -lgconf-2 from all Makefiles, and then did make install, the problem persists.
Наш пакет gnome-vfs успешно собирается. https://packages.altlinux.org/ru/sisyphus/srpms/gnome-vfs/ Что, на какой OS пытаетесь собирать вы?
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?
(Ответ для ArtEze на комментарий #4) ... > The operating system is Puppy Linux Обратитесь за помощью сюда https://forum.puppylinux.com/
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.
(Ответ для 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
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.
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.