Closed CuriousTommy closed 3 years ago
Hi, yes, I have the ability to test arm64 support on Linux and MacOS. Thanks for checking.
If you send a PR that adds arm support, limit it to build for only these two environments and target the devel branch.
Thanks
Thanks for the nudge on this. I implemented something similar, currently at HEAD of devel. If you would test it on your system and confirm for me it works that would be appreciated.
Apologizes for not replying sooner, was busy with some stuff. I'll test it and let you know.
I did a quick test and was able to build a release version for gmake_linux
, but gmake_linux_zenity
failed at the linker stage.
[... gmake_linux_zenity]$ make config=release_arm64
==== Building nfd (release_arm64) ====
==== Building test_pickfolder (release_arm64) ====
Linking test_pickfolder
/usr/bin/ld: ../lib/Release/arm64/libnfd.a(nfd_gtk.o): in function `AllocUserFilename':
nfd_gtk.c:(.text+0x40): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x4c): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x50): undefined reference to `gtk_file_chooser_get_filter'
/usr/bin/ld: nfd_gtk.c:(.text+0x5c): undefined reference to `gtk_file_filter_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x68): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x6c): undefined reference to `gtk_file_filter_get_name'
/usr/bin/ld: ../lib/Release/arm64/libnfd.a(nfd_gtk.o): in function `SetDefaultDir':
nfd_gtk.c:(.text+0x180): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x190): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x1a4): undefined reference to `gtk_file_chooser_set_current_folder'
/usr/bin/ld: nfd_gtk.c:(.text+0x1a8): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x1bc): undefined reference to `gtk_file_chooser_set_filename'
/usr/bin/ld: ../lib/Release/arm64/libnfd.a(nfd_gtk.o): in function `ConfigureFocus':
nfd_gtk.c:(.text+0x1d0): undefined reference to `gtk_widget_show_all'
/usr/bin/ld: nfd_gtk.c:(.text+0x1d4): undefined reference to `gdk_display_get_default'
/usr/bin/ld: nfd_gtk.c:(.text+0x1dc): undefined reference to `gdk_x11_display_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x200): undefined reference to `g_type_check_instance_is_a'
/usr/bin/ld: nfd_gtk.c:(.text+0x20c): undefined reference to `gtk_widget_get_window'
/usr/bin/ld: nfd_gtk.c:(.text+0x214): undefined reference to `gdk_window_get_events'
/usr/bin/ld: nfd_gtk.c:(.text+0x224): undefined reference to `gdk_window_set_events'
/usr/bin/ld: nfd_gtk.c:(.text+0x228): undefined reference to `gtk_window_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x234): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x240): undefined reference to `gdk_x11_get_server_time'
/usr/bin/ld: nfd_gtk.c:(.text+0x254): undefined reference to `gtk_window_present_with_time'
/usr/bin/ld: ../lib/Release/arm64/libnfd.a(nfd_gtk.o): in function `AddFiltersToDialog':
nfd_gtk.c:(.text+0x310): undefined reference to `gtk_file_filter_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x318): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x358): undefined reference to `gtk_file_filter_set_name'
/usr/bin/ld: nfd_gtk.c:(.text+0x364): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x36c): undefined reference to `gtk_file_chooser_add_filter'
/usr/bin/ld: nfd_gtk.c:(.text+0x37c): undefined reference to `gtk_file_filter_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x400): undefined reference to `gtk_file_filter_add_pattern'
/usr/bin/ld: nfd_gtk.c:(.text+0x43c): undefined reference to `gtk_file_filter_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x44c): undefined reference to `gtk_file_filter_set_name'
/usr/bin/ld: nfd_gtk.c:(.text+0x45c): undefined reference to `gtk_file_filter_add_pattern'
/usr/bin/ld: nfd_gtk.c:(.text+0x468): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x470): undefined reference to `gtk_file_chooser_add_filter'
/usr/bin/ld: ../lib/Release/arm64/libnfd.a(nfd_gtk.o): in function `NFD_OpenDialog':
nfd_gtk.c:(.text+0x4b8): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x4ec): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x514): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x520): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x524): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0x530): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x53c): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x544): undefined reference to `gtk_file_chooser_get_filename'
/usr/bin/ld: nfd_gtk.c:(.text+0x560): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x570): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x598): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x59c): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x5a8): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x5b0): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x5b4): undefined reference to `gtk_events_pending'
/usr/bin/ld: ../lib/Release/arm64/libnfd.a(nfd_gtk.o): in function `NFD_OpenDialogMultiple':
nfd_gtk.c:(.text+0x61c): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x650): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x658): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x668): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x670): undefined reference to `gtk_file_chooser_set_select_multiple'
/usr/bin/ld: nfd_gtk.c:(.text+0x698): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x6a4): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x6a8): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0x6bc): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x6c0): undefined reference to `gtk_file_chooser_get_filenames'
/usr/bin/ld: nfd_gtk.c:(.text+0x6c8): undefined reference to `g_slist_length'
/usr/bin/ld: nfd_gtk.c:(.text+0x74c): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x778): undefined reference to `g_slist_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x77c): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x788): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x78c): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x798): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x7a0): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x7a4): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x7f4): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: ../lib/Release/arm64/libnfd.a(nfd_gtk.o): in function `NFD_SaveDialog':
nfd_gtk.c:(.text+0x834): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x86c): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x874): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x884): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x88c): undefined reference to `gtk_file_chooser_set_do_overwrite_confirmation'
/usr/bin/ld: nfd_gtk.c:(.text+0x8b4): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x8c0): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x8c4): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0x8d8): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x8e0): undefined reference to `gtk_file_chooser_get_filename'
/usr/bin/ld: nfd_gtk.c:(.text+0x8fc): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x90c): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x928): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x92c): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x938): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x940): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x944): undefined reference to `gtk_events_pending'
/usr/bin/ld: ../lib/Release/arm64/libnfd.a(nfd_gtk.o): in function `NFD_PickFolder':
nfd_gtk.c:(.text+0x9b0): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x9e8): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x9f0): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0xa00): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0xa08): undefined reference to `gtk_file_chooser_set_do_overwrite_confirmation'
/usr/bin/ld: nfd_gtk.c:(.text+0xa24): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0xa30): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0xa34): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0xa48): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0xa50): undefined reference to `gtk_file_chooser_get_filename'
/usr/bin/ld: nfd_gtk.c:(.text+0xa6c): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0xa7c): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0xa98): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0xa9c): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0xaa8): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0xab0): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0xab4): undefined reference to `gtk_events_pending'
collect2: error: ld returned 1 exit status
make[1]: *** [test_pickfolder.make:189: ../bin/test_pickfolder] Error 1
make: *** [Makefile:69: test_pickfolder] Error 2
@CuriousTommy Try doing a make config=release_arm64 clean
before running make for Zenity.
Thanks for checking!
Ah, my bad! I was running make clean
. The gmake_linux_zenity
builds fine.
Thank You.
Wonderful! Thanks for your help.
Hello,
I noticed that nativefiledialog does not have support for ARM64. I added in the changes needed to build nativefiledialog on ARM64 Linux (and Windows in theory, but I haven't test building on Windows).
But before I make a PR, I want to ask a question about one of your bullet points:
Do you have the ability to verify ARM64 builds? I'm worried that you might reject my PR if you don't have any ARM64 hardware to test the ARM64 builds.