On Sun, Oct 25, 2026 at 04:33:58PM +0200, Eli Zaretskii wrote: > This link command is supposed to produce the shared library > .libs/cygtexinfo-convert-1.dll, right? > > The link command line mentions .libs/libtexinfo.dll.a several times. > This is an import library, which is supposed to tell the linker in > which DLL to find each function it needs. If you run "nm -A" on > .libs/libtexinfo.dll.a, do you see there entries for the functions > that the linker complains as unresolved? For example, if I look at > .libs/libtexinfo.dll.a which was built with MinGW from Texinfo 7.3, I > see this for rpl_free:
As Hans-Bernhard Bröker said, nm supports a lot of formats, and "nm -A" works out of the box on libtexinfo.dll.a, which appears to be almost empty, consistently with a small size, the only T symbol is libtexinfo.dll.a:cygtexinfo_1_dll_d000001.o:00000000 T _gl_get_setlocale_null_lock Also: $ ar t .libs/libtexinfo.dll.a cygtexinfo_1_dll_d000002.o cygtexinfo_1_dll_d000000.o cygtexinfo_1_dll_d000001.o The linking of .libs/libtexinfo.dll.a is the following command. The list of the .o looks good and I checked two .o with nm and got the expected list of symbols. 2026-10-25T19:40:47.2006630Z libtool: link: gcc -shared main/.libs/libtexinfo_la-tree.o main/.libs/libtexinfo_la-text.o main/.libs/libtexinfo_la-base_utils.o main/.libs/libtexinfo_la-builtin_commands.o main/.libs/libtexinfo_la-types_data.o main/.libs/libtexinfo_la-debug.o main/.libs/libtexinfo_la-errors.o main/.libs/libtexinfo_la-extra.o main/.libs/libtexinfo_la-structure_list.o main/.libs/libtexinfo_la-convert_to_texinfo.o main/.libs/libtexinfo_la-convert_to_text.o main/.libs/libtexinfo_la-convert_utils.o main/.libs/libtexinfo_la-customization_options.o main/.libs/libtexinfo_la-html_conversion_data.o main/.libs/libtexinfo_la-html_css_data.o main/.libs/libtexinfo_la-floats.o main/.libs/libtexinfo_la-manipulate_tree.o main/.libs/libtexinfo_la-reader.o main/.libs/libtexinfo_la-node_name_normalization.o main/.libs/libtexinfo_la-command_stack.o main/.libs/libtexinfo_la-cmd_structuring.o main/.libs/libtexinfo_la-cmd_text.o main/.libs/libtexinfo_la-parser_conf.o main/.libs/libtexinfo_la-targets.o main/.libs/libtexinfo_la-options_init_free.o main/.libs/libtexinfo_la-options_defaults.o main/.libs/libtexinfo_la-utils.o main/.libs/libtexinfo_la-unicode.o main/.libs/libtexinfo_la-hashmap.o main/.libs/libtexinfo_la-translations.o main/.libs/libtexinfo_la-document.o main/.libs/libtexinfo_la-manipulate_indices.o main/.libs/libtexinfo_la-output_unit.o main/.libs/libtexinfo_la-txi_config.o main/.libs/libtexinfo_la-txi_documentlanguage_languages.o main/.libs/libtexinfo_la-txi_documentlanguage_regions.o main/.libs/libtexinfo_la-txi_documentlanguage_scripts.o main/.libs/libtexinfo_la-txi_documentlanguage_script_names.o main/.libs/libtexinfo_la-txi_documentlanguage_variants.o main/unicode-collation/.libs/libtexinfo_la-collation_data_lookup.o main/unicode-collation/.libs/libtexinfo_la-collation_key.o parsetexi/.libs/libtexinfo_la-parser_api.o parsetexi/.libs/libtexinfo_la-parser.o parsetexi/.libs/libtexinfo_la-input.o parsetexi/.libs/libtexinfo_la-close.o parsetexi/.libs/libtexinfo_la-set_parser_conf.o parsetexi/.libs/libtexinfo_la-context_stack.o parsetexi/.libs/libtexinfo_la-debug_parser.o parsetexi/.libs/libtexinfo_la-errors_parser.o parsetexi/.libs/libtexinfo_la-end_line.o parsetexi/.libs/libtexinfo_la-separator.o parsetexi/.libs/libtexinfo_la-multitable.o parsetexi/.libs/libtexinfo_la-indices.o parsetexi/.libs/libtexinfo_la-commands.o parsetexi/.libs/libtexinfo_la-macro.o parsetexi/.libs/libtexinfo_la-handle_commands.o parsetexi/.libs/libtexinfo_la-def.o parsetexi/.libs/libtexinfo_la-menus.o parsetexi/.libs/libtexinfo_la-labels.o parsetexi/.libs/libtexinfo_la-counter.o parsetexi/.libs/libtexinfo_la-source_marks.o structuring_transfo/.libs/libtexinfo_la-structuring.o structuring_transfo/.libs/libtexinfo_la-transformations.o -Wl,--whole-archive ./.libs/libcallperl_libtexinfo.a -Wl,--no-whole-archive -liconv -lintl -g -O2 -o .libs/cygtexinfo-1.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libtexinfo.dll.a With the Perl flags, the end of the linking command adds, after removing Perl specific and -fstack-protector-strong, -Wl,--enable-auto-image-base being duplicated at the end too: -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--enable-auto-image-base -Wl,--enable-auto-image-base is also in the call above, only at the end, but the other two are not (same as other linking command). The two ld options --enable-auto-import and --export-all-symbols could be relevant to have code added to DLL, but it is strange that libtool does not add them already. -- Pat
