#2 Does not build with gcc==9

Closed
opened 1 year ago by moht · 5 comments
moht commented 1 year ago

On Debian sid, if I try to build with gcc-9, I get the following error:

$ CC=gcc-9 ./configure
[...]
$ make
make  all-recursive
make[1] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5 »
Making all in po
make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/po »
make[2]: rien à faire pour « all ».
make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/po »
Making all in lib
make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/lib »
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2  -MT splitstr.o -MD -MP -MF .deps/splitstr.Tpo -c -o splitstr.o splitstr.c
mv -f .deps/splitstr.Tpo .deps/splitstr.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2  -MT xmem.o -MD -MP -MF .deps/xmem.Tpo -c -o xmem.o xmem.c
mv -f .deps/xmem.Tpo .deps/xmem.Po
rm -f libgfsecret.a
ar cru libgfsecret.a splitstr.o xmem.o 
ar: le modificateur « u » est ignoré puisque « D » est le défaut (consultez « U »)
ranlib libgfsecret.a
make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/lib »
Making all in src
make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/src »
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT gfsec-use.o -MD -MP -MF .deps/gfsec-use.Tpo -c -o gfsec-use.o gfsec-use.c
mv -f .deps/gfsec-use.Tpo .deps/gfsec-use.Po
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT util.o -MD -MP -MF .deps/util.Tpo -c -o util.o util.c
mv -f .deps/util.Tpo .deps/util.Po
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT secret.o -MD -MP -MF .deps/secret.Tpo -c -o secret.o secret.c
mv -f .deps/secret.Tpo .deps/secret.Po
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT secretcfg.o -MD -MP -MF .deps/secretcfg.Tpo -c -o secretcfg.o secretcfg.c
mv -f .deps/secretcfg.Tpo .deps/secretcfg.Po
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT scheme-module.o -MD -MP -MF .deps/scheme-module.Tpo -c -o scheme-module.o scheme-module.c
mv -f .deps/scheme-module.Tpo .deps/scheme-module.Po
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT scheme-libmtp.o -MD -MP -MF .deps/scheme-libmtp.Tpo -c -o scheme-libmtp.o scheme-libmtp.c
mv -f .deps/scheme-libmtp.Tpo .deps/scheme-libmtp.Po
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT scheme-gio.o -MD -MP -MF .deps/scheme-gio.Tpo -c -o scheme-gio.o scheme-gio.c
mv -f .deps/scheme-gio.Tpo .deps/scheme-gio.Po
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT scheme-file.o -MD -MP -MF .deps/scheme-file.Tpo -c -o scheme-file.o scheme-file.c
mv -f .deps/scheme-file.Tpo .deps/scheme-file.Po
gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT support.o -MD -MP -MF .deps/support.Tpo -c -o support.o support.c
mv -f .deps/support.Tpo .deps/support.Po
gcc  -g -O2  -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0  -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt
/usr/bin/ld : secret.o : dans la fonction « gfsec_secret_combine » :
/home/thomas/tmp/gfsecret-0.4.5/src/secret.c:464 : référence indéfinie vers « gfshare_fill_rand »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:480 : référence indéfinie vers « gfshare_ctx_init_dec »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:486 : référence indéfinie vers « gfshare_ctx_dec_giveshare »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:489 : référence indéfinie vers « gfshare_ctx_dec_extract »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:490 : référence indéfinie vers « gfshare_ctx_free »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:465 : référence indéfinie vers « gfshare_fill_rand »
/usr/bin/ld : secret.o : dans la fonction « gfsec_secret_split » :
/home/thomas/tmp/gfsecret-0.4.5/src/secret.c:543 : référence indéfinie vers « gfshare_fill_rand »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:558 : référence indéfinie vers « gfshare_ctx_init_enc »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:565 : référence indéfinie vers « gfshare_ctx_enc_setsecret »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:571 : référence indéfinie vers « gfshare_ctx_enc_getshare »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:596 : référence indéfinie vers « gfshare_ctx_free »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:544 : référence indéfinie vers « gfshare_fill_rand »
/usr/bin/ld : scheme-module.o : dans la fonction « gfsec_scheme_module_init » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-module.c:72 : référence indéfinie vers « LIBMTP_Init »
/usr/bin/ld : scheme-libmtp.o : dans la fonction « find_mtp_device » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:51 : référence indéfinie vers « LIBMTP_Detect_Raw_Devices »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:57 : référence indéfinie vers « LIBMTP_Open_Raw_Device_Uncached »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:60 : référence indéfinie vers « LIBMTP_Get_Serialnumber »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:62 : référence indéfinie vers « LIBMTP_Release_Device »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:62 : référence indéfinie vers « LIBMTP_Release_Device »
/usr/bin/ld : scheme-libmtp.o : dans la fonction « find_mtp_file » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:103 : référence indéfinie vers « LIBMTP_Get_Files_And_Folders »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:125 : référence indéfinie vers « LIBMTP_destroy_file_t »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:125 : référence indéfinie vers « LIBMTP_destroy_file_t »
/usr/bin/ld : scheme-libmtp.o : dans la fonction « gfsec_scheme_libmtp_get_file » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:292 : référence indéfinie vers « LIBMTP_Get_File_To_Handler »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:302 : référence indéfinie vers « LIBMTP_Release_Device »
/usr/bin/ld : scheme-libmtp.o : dans la fonction « find_mtp_directory » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:188 : référence indéfinie vers « LIBMTP_destroy_file_t »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:166 : référence indéfinie vers « LIBMTP_Get_Files_And_Folders »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:188 : référence indéfinie vers « LIBMTP_destroy_file_t »
/usr/bin/ld : scheme-libmtp.o : dans la fonction « gfsec_scheme_libmtp_put_file » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:369 : référence indéfinie vers « LIBMTP_new_file_t »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:379 : référence indéfinie vers « LIBMTP_Send_File_From_Handler »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:383 : référence indéfinie vers « LIBMTP_destroy_file_t »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:386 : référence indéfinie vers « LIBMTP_Release_Device »
/usr/bin/ld : scheme-libmtp.o : dans la fonction « gfsec_scheme_libmtp_get_supports » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:399 : référence indéfinie vers « LIBMTP_Detect_Raw_Devices »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:405 : référence indéfinie vers « LIBMTP_Open_Raw_Device_Uncached »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:408 : référence indéfinie vers « LIBMTP_Get_Serialnumber »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:409 : référence indéfinie vers « LIBMTP_Get_Friendlyname »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:413 : référence indéfinie vers « LIBMTP_Release_Device »
/usr/bin/ld : scheme-gio.o : dans la fonction « find_volume » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:109 : référence indéfinie vers « g_volume_monitor_get »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:110 : référence indéfinie vers « g_volume_monitor_get_volumes »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:128 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:117 : référence indéfinie vers « g_volume_get_type »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:117 : référence indéfinie vers « g_type_check_instance_cast »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:118 : référence indéfinie vers « g_volume_get_uuid »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:125 : référence indéfinie vers « g_free »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:131 : référence indéfinie vers « g_list_free »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:132 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:118 : référence indéfinie vers « g_volume_get_name »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:121 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:125 : référence indéfinie vers « g_free »
/usr/bin/ld : scheme-gio.o : dans la fonction « mount_volume » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:54 : référence indéfinie vers « g_main_loop_new »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:55 : référence indéfinie vers « g_volume_mount »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:56 : référence indéfinie vers « g_main_loop_run »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:59 : référence indéfinie vers « g_volume_get_mount »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:61 : référence indéfinie vers « g_main_loop_unref »
/usr/bin/ld : scheme-gio.o : dans la fonction « mount_cb » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:41 : référence indéfinie vers « g_volume_get_type »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:41 : référence indéfinie vers « g_type_check_instance_cast »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:44 : référence indéfinie vers « g_volume_mount_finish »
/usr/bin/ld : scheme-gio.o : dans la fonction « unmount_volume » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:81 : référence indéfinie vers « g_main_loop_new »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:82 : référence indéfinie vers « g_mount_unmount_with_operation »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:84 : référence indéfinie vers « g_main_loop_run »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:86 : référence indéfinie vers « g_main_loop_unref »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:87 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : scheme-gio.o : dans la fonction « unmount_cb » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:69 : référence indéfinie vers « g_mount_get_type »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:69 : référence indéfinie vers « g_type_check_instance_cast »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:72 : référence indéfinie vers « g_mount_unmount_with_operation_finish »
/usr/bin/ld : scheme-gio.o : dans la fonction « get_file_contents » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:159 : référence indéfinie vers « g_volume_get_mount »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:166 : référence indéfinie vers « g_mount_get_root »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:167 : référence indéfinie vers « g_file_get_path »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:168 : référence indéfinie vers « g_strjoin »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:174 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:178 : référence indéfinie vers « g_free »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:179 : référence indéfinie vers « g_free »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:180 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : scheme-gio.o : dans la fonction « gfsec_scheme_gio_get_file » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:258 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : scheme-gio.o : dans la fonction « get_file_contents » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:166 : référence indéfinie vers « g_mount_get_root »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:167 : référence indéfinie vers « g_file_get_path »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:168 : référence indéfinie vers « g_strjoin »
/usr/bin/ld : scheme-gio.o : dans la fonction « put_file_contents » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:206 : référence indéfinie vers « g_volume_get_mount »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:213 : référence indéfinie vers « g_mount_get_root »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:214 : référence indéfinie vers « g_file_get_path »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:215 : référence indéfinie vers « g_strjoin »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:221 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:225 : référence indéfinie vers « g_free »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:226 : référence indéfinie vers « g_free »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:227 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : scheme-gio.o : dans la fonction « gfsec_scheme_gio_put_file » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:290 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : scheme-gio.o : dans la fonction « put_file_contents » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:213 : référence indéfinie vers « g_mount_get_root »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:214 : référence indéfinie vers « g_file_get_path »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:215 : référence indéfinie vers « g_strjoin »
/usr/bin/ld : scheme-gio.o : dans la fonction « gfsec_scheme_gio_get_supports » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:303 : référence indéfinie vers « g_volume_monitor_get »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:304 : référence indéfinie vers « g_volume_monitor_get_volumes »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:310 : référence indéfinie vers « g_volume_get_type »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:310 : référence indéfinie vers « g_type_check_instance_cast »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:311 : référence indéfinie vers « g_volume_get_name »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:312 : référence indéfinie vers « g_volume_get_uuid »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:330 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:333 : référence indéfinie vers « g_list_free »
/usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:334 : référence indéfinie vers « g_object_unref »
/usr/bin/ld : scheme-gio.o : dans la fonction « mount_cb » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:45 : référence indéfinie vers « g_main_loop_quit »
/usr/bin/ld : scheme-gio.o : dans la fonction « unmount_cb » :
/home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:73 : référence indéfinie vers « g_main_loop_quit »
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:438: gfsec-use] Error 1
make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/src »
make[1]: *** [Makefile:457: all-recursive] Error 1
make[1] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5 »
make: *** [Makefile:377: all] Error 2

I'm not sure if it comes from gcc or ld, my skills with compiling are not that great…

With gcc <= 8, it works as expected:

$ CC=gcc-8 ./configure
[...]
$ make
make  all-recursive
make[1] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5 »
Making all in po
make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/po »
make[2]: rien à faire pour « all ».
make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/po »
Making all in lib
make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/lib »
gcc-8 -DHAVE_CONFIG_H -I. -I..     -g -O2  -MT splitstr.o -MD -MP -MF .deps/splitstr.Tpo -c -o splitstr.o splitstr.c
mv -f .deps/splitstr.Tpo .deps/splitstr.Po
gcc-8 -DHAVE_CONFIG_H -I. -I..     -g -O2  -MT xmem.o -MD -MP -MF .deps/xmem.Tpo -c -o xmem.o xmem.c
mv -f .deps/xmem.Tpo .deps/xmem.Po
rm -f libgfsecret.a
ar cru libgfsecret.a splitstr.o xmem.o 
ar: le modificateur « u » est ignoré puisque « D » est le défaut (consultez « U »)
ranlib libgfsecret.a
make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/lib »
Making all in src
make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/src »
gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT gfsec-use.o -MD -MP -MF .deps/gfsec-use.Tpo -c -o gfsec-use.o gfsec-use.c
mv -f .deps/gfsec-use.Tpo .deps/gfsec-use.Po
gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT util.o -MD -MP -MF .deps/util.Tpo -c -o util.o util.c
mv -f .deps/util.Tpo .deps/util.Po
gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT secret.o -MD -MP -MF .deps/secret.Tpo -c -o secret.o secret.c
mv -f .deps/secret.Tpo .deps/secret.Po
gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT secretcfg.o -MD -MP -MF .deps/secretcfg.Tpo -c -o secretcfg.o secretcfg.c
mv -f .deps/secretcfg.Tpo .deps/secretcfg.Po
gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT scheme-module.o -MD -MP -MF .deps/scheme-module.Tpo -c -o scheme-module.o scheme-module.c
mv -f .deps/scheme-module.Tpo .deps/scheme-module.Po
gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT scheme-libmtp.o -MD -MP -MF .deps/scheme-libmtp.Tpo -c -o scheme-libmtp.o scheme-libmtp.c
mv -f .deps/scheme-libmtp.Tpo .deps/scheme-libmtp.Po
gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT scheme-gio.o -MD -MP -MF .deps/scheme-gio.Tpo -c -o scheme-gio.o scheme-gio.c
mv -f .deps/scheme-gio.Tpo .deps/scheme-gio.Po
gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT scheme-file.o -MD -MP -MF .deps/scheme-file.Tpo -c -o scheme-file.o scheme-file.c
mv -f .deps/scheme-file.Tpo .deps/scheme-file.Po
gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT support.o -MD -MP -MF .deps/support.Tpo -c -o support.o support.c
mv -f .deps/support.Tpo .deps/support.Po
gcc-8  -g -O2  -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0  -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt
gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I../lib  -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -g -O2  -MT gfsec-split.o -MD -MP -MF .deps/gfsec-split.Tpo -c -o gfsec-split.o gfsec-split.c
mv -f .deps/gfsec-split.Tpo .deps/gfsec-split.Po
gcc-8  -g -O2  -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0  -o gfsec-split gfsec-split.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt
cd .. && /bin/bash ./config.status src/gfsec-split-gpg
config.status: creating src/gfsec-split-gpg
make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/src »
Making all in man
make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/man »
make[2]: rien à faire pour « all ».
make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/man »
Making all in info
make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/info »
make[2]: rien à faire pour « all ».
make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/info »
make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5 »
make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5 »
make[1] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5 »
On Debian sid, if I try to build with gcc-9, I get the following error: ```bash $ CC=gcc-9 ./configure [...] $ make make all-recursive make[1] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5 » Making all in po make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/po » make[2]: rien à faire pour « all ». make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/po » Making all in lib make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/lib » gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT splitstr.o -MD -MP -MF .deps/splitstr.Tpo -c -o splitstr.o splitstr.c mv -f .deps/splitstr.Tpo .deps/splitstr.Po gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT xmem.o -MD -MP -MF .deps/xmem.Tpo -c -o xmem.o xmem.c mv -f .deps/xmem.Tpo .deps/xmem.Po rm -f libgfsecret.a ar cru libgfsecret.a splitstr.o xmem.o ar: le modificateur « u » est ignoré puisque « D » est le défaut (consultez « U ») ranlib libgfsecret.a make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/lib » Making all in src make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/src » gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT gfsec-use.o -MD -MP -MF .deps/gfsec-use.Tpo -c -o gfsec-use.o gfsec-use.c mv -f .deps/gfsec-use.Tpo .deps/gfsec-use.Po gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT util.o -MD -MP -MF .deps/util.Tpo -c -o util.o util.c mv -f .deps/util.Tpo .deps/util.Po gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT secret.o -MD -MP -MF .deps/secret.Tpo -c -o secret.o secret.c mv -f .deps/secret.Tpo .deps/secret.Po gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT secretcfg.o -MD -MP -MF .deps/secretcfg.Tpo -c -o secretcfg.o secretcfg.c mv -f .deps/secretcfg.Tpo .deps/secretcfg.Po gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT scheme-module.o -MD -MP -MF .deps/scheme-module.Tpo -c -o scheme-module.o scheme-module.c mv -f .deps/scheme-module.Tpo .deps/scheme-module.Po gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT scheme-libmtp.o -MD -MP -MF .deps/scheme-libmtp.Tpo -c -o scheme-libmtp.o scheme-libmtp.c mv -f .deps/scheme-libmtp.Tpo .deps/scheme-libmtp.Po gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT scheme-gio.o -MD -MP -MF .deps/scheme-gio.Tpo -c -o scheme-gio.o scheme-gio.c mv -f .deps/scheme-gio.Tpo .deps/scheme-gio.Po gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT scheme-file.o -MD -MP -MF .deps/scheme-file.Tpo -c -o scheme-file.o scheme-file.c mv -f .deps/scheme-file.Tpo .deps/scheme-file.Po gcc -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT support.o -MD -MP -MF .deps/support.Tpo -c -o support.o support.c mv -f .deps/support.Tpo .deps/support.Po gcc -g -O2 -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0 -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt /usr/bin/ld : secret.o : dans la fonction « gfsec_secret_combine » : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:464 : référence indéfinie vers « gfshare_fill_rand » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:480 : référence indéfinie vers « gfshare_ctx_init_dec » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:486 : référence indéfinie vers « gfshare_ctx_dec_giveshare » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:489 : référence indéfinie vers « gfshare_ctx_dec_extract » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:490 : référence indéfinie vers « gfshare_ctx_free » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:465 : référence indéfinie vers « gfshare_fill_rand » /usr/bin/ld : secret.o : dans la fonction « gfsec_secret_split » : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:543 : référence indéfinie vers « gfshare_fill_rand » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:558 : référence indéfinie vers « gfshare_ctx_init_enc » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:565 : référence indéfinie vers « gfshare_ctx_enc_setsecret » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:571 : référence indéfinie vers « gfshare_ctx_enc_getshare » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:596 : référence indéfinie vers « gfshare_ctx_free » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/secret.c:544 : référence indéfinie vers « gfshare_fill_rand » /usr/bin/ld : scheme-module.o : dans la fonction « gfsec_scheme_module_init » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-module.c:72 : référence indéfinie vers « LIBMTP_Init » /usr/bin/ld : scheme-libmtp.o : dans la fonction « find_mtp_device » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:51 : référence indéfinie vers « LIBMTP_Detect_Raw_Devices » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:57 : référence indéfinie vers « LIBMTP_Open_Raw_Device_Uncached » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:60 : référence indéfinie vers « LIBMTP_Get_Serialnumber » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:62 : référence indéfinie vers « LIBMTP_Release_Device » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:62 : référence indéfinie vers « LIBMTP_Release_Device » /usr/bin/ld : scheme-libmtp.o : dans la fonction « find_mtp_file » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:103 : référence indéfinie vers « LIBMTP_Get_Files_And_Folders » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:125 : référence indéfinie vers « LIBMTP_destroy_file_t » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:125 : référence indéfinie vers « LIBMTP_destroy_file_t » /usr/bin/ld : scheme-libmtp.o : dans la fonction « gfsec_scheme_libmtp_get_file » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:292 : référence indéfinie vers « LIBMTP_Get_File_To_Handler » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:302 : référence indéfinie vers « LIBMTP_Release_Device » /usr/bin/ld : scheme-libmtp.o : dans la fonction « find_mtp_directory » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:188 : référence indéfinie vers « LIBMTP_destroy_file_t » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:166 : référence indéfinie vers « LIBMTP_Get_Files_And_Folders » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:188 : référence indéfinie vers « LIBMTP_destroy_file_t » /usr/bin/ld : scheme-libmtp.o : dans la fonction « gfsec_scheme_libmtp_put_file » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:369 : référence indéfinie vers « LIBMTP_new_file_t » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:379 : référence indéfinie vers « LIBMTP_Send_File_From_Handler » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:383 : référence indéfinie vers « LIBMTP_destroy_file_t » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:386 : référence indéfinie vers « LIBMTP_Release_Device » /usr/bin/ld : scheme-libmtp.o : dans la fonction « gfsec_scheme_libmtp_get_supports » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:399 : référence indéfinie vers « LIBMTP_Detect_Raw_Devices » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:405 : référence indéfinie vers « LIBMTP_Open_Raw_Device_Uncached » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:408 : référence indéfinie vers « LIBMTP_Get_Serialnumber » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:409 : référence indéfinie vers « LIBMTP_Get_Friendlyname » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-libmtp.c:413 : référence indéfinie vers « LIBMTP_Release_Device » /usr/bin/ld : scheme-gio.o : dans la fonction « find_volume » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:109 : référence indéfinie vers « g_volume_monitor_get » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:110 : référence indéfinie vers « g_volume_monitor_get_volumes » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:128 : référence indéfinie vers « g_object_unref » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:117 : référence indéfinie vers « g_volume_get_type » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:117 : référence indéfinie vers « g_type_check_instance_cast » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:118 : référence indéfinie vers « g_volume_get_uuid » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:125 : référence indéfinie vers « g_free » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:131 : référence indéfinie vers « g_list_free » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:132 : référence indéfinie vers « g_object_unref » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:118 : référence indéfinie vers « g_volume_get_name » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:121 : référence indéfinie vers « g_object_unref » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:125 : référence indéfinie vers « g_free » /usr/bin/ld : scheme-gio.o : dans la fonction « mount_volume » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:54 : référence indéfinie vers « g_main_loop_new » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:55 : référence indéfinie vers « g_volume_mount » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:56 : référence indéfinie vers « g_main_loop_run » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:59 : référence indéfinie vers « g_volume_get_mount » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:61 : référence indéfinie vers « g_main_loop_unref » /usr/bin/ld : scheme-gio.o : dans la fonction « mount_cb » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:41 : référence indéfinie vers « g_volume_get_type » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:41 : référence indéfinie vers « g_type_check_instance_cast » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:44 : référence indéfinie vers « g_volume_mount_finish » /usr/bin/ld : scheme-gio.o : dans la fonction « unmount_volume » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:81 : référence indéfinie vers « g_main_loop_new » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:82 : référence indéfinie vers « g_mount_unmount_with_operation » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:84 : référence indéfinie vers « g_main_loop_run » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:86 : référence indéfinie vers « g_main_loop_unref » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:87 : référence indéfinie vers « g_object_unref » /usr/bin/ld : scheme-gio.o : dans la fonction « unmount_cb » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:69 : référence indéfinie vers « g_mount_get_type » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:69 : référence indéfinie vers « g_type_check_instance_cast » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:72 : référence indéfinie vers « g_mount_unmount_with_operation_finish » /usr/bin/ld : scheme-gio.o : dans la fonction « get_file_contents » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:159 : référence indéfinie vers « g_volume_get_mount » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:166 : référence indéfinie vers « g_mount_get_root » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:167 : référence indéfinie vers « g_file_get_path » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:168 : référence indéfinie vers « g_strjoin » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:174 : référence indéfinie vers « g_object_unref » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:178 : référence indéfinie vers « g_free » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:179 : référence indéfinie vers « g_free » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:180 : référence indéfinie vers « g_object_unref » /usr/bin/ld : scheme-gio.o : dans la fonction « gfsec_scheme_gio_get_file » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:258 : référence indéfinie vers « g_object_unref » /usr/bin/ld : scheme-gio.o : dans la fonction « get_file_contents » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:166 : référence indéfinie vers « g_mount_get_root » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:167 : référence indéfinie vers « g_file_get_path » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:168 : référence indéfinie vers « g_strjoin » /usr/bin/ld : scheme-gio.o : dans la fonction « put_file_contents » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:206 : référence indéfinie vers « g_volume_get_mount » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:213 : référence indéfinie vers « g_mount_get_root » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:214 : référence indéfinie vers « g_file_get_path » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:215 : référence indéfinie vers « g_strjoin » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:221 : référence indéfinie vers « g_object_unref » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:225 : référence indéfinie vers « g_free » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:226 : référence indéfinie vers « g_free » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:227 : référence indéfinie vers « g_object_unref » /usr/bin/ld : scheme-gio.o : dans la fonction « gfsec_scheme_gio_put_file » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:290 : référence indéfinie vers « g_object_unref » /usr/bin/ld : scheme-gio.o : dans la fonction « put_file_contents » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:213 : référence indéfinie vers « g_mount_get_root » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:214 : référence indéfinie vers « g_file_get_path » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:215 : référence indéfinie vers « g_strjoin » /usr/bin/ld : scheme-gio.o : dans la fonction « gfsec_scheme_gio_get_supports » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:303 : référence indéfinie vers « g_volume_monitor_get » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:304 : référence indéfinie vers « g_volume_monitor_get_volumes » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:310 : référence indéfinie vers « g_volume_get_type » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:310 : référence indéfinie vers « g_type_check_instance_cast » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:311 : référence indéfinie vers « g_volume_get_name » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:312 : référence indéfinie vers « g_volume_get_uuid » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:330 : référence indéfinie vers « g_object_unref » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:333 : référence indéfinie vers « g_list_free » /usr/bin/ld : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:334 : référence indéfinie vers « g_object_unref » /usr/bin/ld : scheme-gio.o : dans la fonction « mount_cb » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:45 : référence indéfinie vers « g_main_loop_quit » /usr/bin/ld : scheme-gio.o : dans la fonction « unmount_cb » : /home/thomas/tmp/gfsecret-0.4.5/src/scheme-gio.c:73 : référence indéfinie vers « g_main_loop_quit » collect2: error: ld returned 1 exit status make[2]: *** [Makefile:438: gfsec-use] Error 1 make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/src » make[1]: *** [Makefile:457: all-recursive] Error 1 make[1] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5 » make: *** [Makefile:377: all] Error 2 ``` I'm not sure if it comes from gcc or ld, my skills with compiling are not that great… With gcc <= 8, it works as expected: ```bash $ CC=gcc-8 ./configure [...] $ make make all-recursive make[1] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5 » Making all in po make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/po » make[2]: rien à faire pour « all ». make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/po » Making all in lib make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/lib » gcc-8 -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT splitstr.o -MD -MP -MF .deps/splitstr.Tpo -c -o splitstr.o splitstr.c mv -f .deps/splitstr.Tpo .deps/splitstr.Po gcc-8 -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT xmem.o -MD -MP -MF .deps/xmem.Tpo -c -o xmem.o xmem.c mv -f .deps/xmem.Tpo .deps/xmem.Po rm -f libgfsecret.a ar cru libgfsecret.a splitstr.o xmem.o ar: le modificateur « u » est ignoré puisque « D » est le défaut (consultez « U ») ranlib libgfsecret.a make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/lib » Making all in src make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/src » gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT gfsec-use.o -MD -MP -MF .deps/gfsec-use.Tpo -c -o gfsec-use.o gfsec-use.c mv -f .deps/gfsec-use.Tpo .deps/gfsec-use.Po gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT util.o -MD -MP -MF .deps/util.Tpo -c -o util.o util.c mv -f .deps/util.Tpo .deps/util.Po gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT secret.o -MD -MP -MF .deps/secret.Tpo -c -o secret.o secret.c mv -f .deps/secret.Tpo .deps/secret.Po gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT secretcfg.o -MD -MP -MF .deps/secretcfg.Tpo -c -o secretcfg.o secretcfg.c mv -f .deps/secretcfg.Tpo .deps/secretcfg.Po gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT scheme-module.o -MD -MP -MF .deps/scheme-module.Tpo -c -o scheme-module.o scheme-module.c mv -f .deps/scheme-module.Tpo .deps/scheme-module.Po gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT scheme-libmtp.o -MD -MP -MF .deps/scheme-libmtp.Tpo -c -o scheme-libmtp.o scheme-libmtp.c mv -f .deps/scheme-libmtp.Tpo .deps/scheme-libmtp.Po gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT scheme-gio.o -MD -MP -MF .deps/scheme-gio.Tpo -c -o scheme-gio.o scheme-gio.c mv -f .deps/scheme-gio.Tpo .deps/scheme-gio.Po gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT scheme-file.o -MD -MP -MF .deps/scheme-file.Tpo -c -o scheme-file.o scheme-file.c mv -f .deps/scheme-file.Tpo .deps/scheme-file.Po gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT support.o -MD -MP -MF .deps/support.Tpo -c -o support.o support.c mv -f .deps/support.Tpo .deps/support.Po gcc-8 -g -O2 -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0 -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt gcc-8 -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I.. -I../lib -I/usr/include/libusb-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT gfsec-split.o -MD -MP -MF .deps/gfsec-split.Tpo -c -o gfsec-split.o gfsec-split.c mv -f .deps/gfsec-split.Tpo .deps/gfsec-split.Po gcc-8 -g -O2 -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0 -o gfsec-split gfsec-split.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt cd .. && /bin/bash ./config.status src/gfsec-split-gpg config.status: creating src/gfsec-split-gpg make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/src » Making all in man make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/man » make[2]: rien à faire pour « all ». make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/man » Making all in info make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5/info » make[2]: rien à faire pour « all ». make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5/info » make[2] : on entre dans le répertoire « /home/thomas/tmp/gfsecret-0.4.5 » make[2] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5 » make[1] : on quitte le répertoire « /home/thomas/tmp/gfsecret-0.4.5 » ```
damien commented 1 year ago
Poster
Owner

I can build without any issue (not even warnings) both with gcc-8.3.0 on Debian -stable and with gcc-9.2.0 on Slackware -current.

Have you ever successfully build any program with your gcc-9? Because it seems there’s a problem with the configuration of your linker (it cannot find any external symbol, e.g. symbols from libgfshare, from glib, or from libmtp).

I can build without any issue (not even warnings) both with gcc-8.3.0 on Debian -stable and with gcc-9.2.0 on Slackware -current. Have you ever successfully build any program with your gcc-9? Because it seems there’s a problem with the configuration of your linker (it cannot find *any* external symbol, e.g. symbols from libgfshare, from glib, or from libmtp).
moht commented 1 year ago
Poster

Yes I have build few software with gcc-9 (gcc-9.2.1 on Debian/sid) without issues.

Note that I build the Debian package in a clean chroot not directly on my system so the configuration is the Debian default one.

I dug a little more and the problem seems to come from the ld linker. More precisely because the order of libraries linked in the gcc command. If I build manually the failing command and change the order of linked libraries, it builds ok:

$ gcc  -g -O2  -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0  -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt
[...] # same error about not found references

$ gcc  -g -O2 -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0
# builds OK

the only difference is putting all linked libraries at the end of the command:

-- gcc  -g -O2  -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0  -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt
++ gcc  -g -O2 -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0

This is a little over my skills about compiling/linking. Does it looks understandable to you?

Yes I have build few software with gcc-9 (gcc-9.2.1 on Debian/sid) without issues. Note that I build the Debian package in a clean chroot not directly on my system so the configuration is the Debian default one. I dug a little more and the problem seems to come from the `ld` linker. More precisely because the _order_ of libraries linked in the gcc command. If I build manually the failing command and change the order of linked libraries, it builds ok: ```bash $ gcc -g -O2 -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0 -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt [...] # same error about not found references $ gcc -g -O2 -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0 # builds OK ``` the only difference is putting all linked libraries at the end of the command: ```diff -- gcc -g -O2 -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0 -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt ++ gcc -g -O2 -o gfsec-use gfsec-use.o util.o secret.o secretcfg.o scheme-module.o scheme-libmtp.o scheme-gio.o scheme-file.o support.o -lgfsecret -lgcrypt -L../lib -lgfshare -lmtp -lgio-2.0 -lgobject-2.0 -lglib-2.0 ``` This is a little over my skills about compiling/linking. Does it looks understandable to you?
damien commented 1 year ago
Poster
Owner

Does it looks understandable to you?

Yes it does, and my bad, there’s nothing wrong with your configuration.

An often forgotten quirk of the linker is that libraries (-l flags) should be mentioned on the command line after any object file containing a reference to a symbol from that library. If the library comes first, the linker will not know what to look for in the library.

What I am not sure I understand is why you encountered the issue and I didn’t. But anyway, can you test the attached patch and check it fixes the build with gcc-9? (You will need to run autoreconf after applying the patch and before running the configure script)?

> Does it looks understandable to you? Yes it does, and my bad, there’s nothing wrong with your configuration. An often forgotten quirk of the linker is that libraries (`-l` flags) should be mentioned on the command line *after* any object file containing a reference to a symbol from that library. If the library comes first, the linker will not know what to look for in the library. What I am not sure I understand is why you encountered the issue and I didn’t. But anyway, can you test the attached patch and check it fixes the build with gcc-9? (You will need to run *autoreconf* after applying the patch and before running the configure script)?
moht commented 1 year ago
Poster

Works perfectly as expected!

Thanks for the quick fix.

Do you think to plan another release with this fix or should I add this patch to the current version for the Debian packaging?

Works perfectly as expected! Thanks for the quick fix. Do you think to plan another release with this fix or should I add this patch to the current version for the Debian packaging?
damien commented 1 year ago
Poster
Owner

Thanks for the quick test.

I’d like to fix issue #6 (the configuration file issue with gfsec-split) before doing a 0.4.6 release. I’ll probably work on that tonight, shouldn't be difficult (famous last words…).

Thanks for the quick test. I’d like to fix issue #6 (the configuration file issue with *gfsec-split*) before doing a 0.4.6 release. I’ll probably work on that tonight, shouldn't be difficult (famous last words…).
damien closed this issue 1 year ago
Sign in to join this conversation.
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.