Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-72528

wasm: building example app fails to link

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.12.1
    • 5.12.1
    • Build System, QPA
    • None
    • emscripten 1.38.21
      webassembly
    • WebAssembly
    • 9d76beee5be0812fdc8bd53c3145de95b45ab6a6

    Description

      While updating and trying to fix a bug in wasm, I noticed my usual test app - textedit example did not link with this error:

      warning: To disable errors for undefined symbols use `-s ERROR_ON_UNDEFINED_SYMBOLS=0`
      error: undefined symbol: hb_blob_get_empty
      error: undefined symbol: hb_buffer_add_utf16
      error: undefined symbol: hb_buffer_allocation_successful
      error: undefined symbol: hb_buffer_clear_contents
      error: undefined symbol: hb_buffer_create
      error: undefined symbol: hb_buffer_destroy
      error: undefined symbol: hb_buffer_get_glyph_infos
      error: undefined symbol: hb_buffer_get_glyph_positions
      error: undefined symbol: hb_buffer_get_length
      error: undefined symbol: hb_buffer_guess_segment_properties
      error: undefined symbol: hb_buffer_pre_allocate
      error: undefined symbol: hb_buffer_reverse
      error: undefined symbol: hb_buffer_set_flags
      error: undefined symbol: hb_buffer_set_segment_properties
      error: undefined symbol: hb_buffer_set_unicode_funcs
      error: undefined symbol: hb_face_create_for_tables
      error: undefined symbol: hb_face_destroy
      error: undefined symbol: hb_face_is_immutable
      error: undefined symbol: hb_face_set_index
      error: undefined symbol: hb_face_set_upem
      error: undefined symbol: hb_font_create
      error: undefined symbol: hb_font_destroy
      error: undefined symbol: hb_font_funcs_create
      error: undefined symbol: hb_font_funcs_destroy
      error: undefined symbol: hb_font_funcs_make_immutable
      error: undefined symbol: hb_font_funcs_set_font_h_extents_func
      error: undefined symbol: hb_font_funcs_set_glyph_contour_point_func
      error: undefined symbol: hb_font_funcs_set_glyph_extents_func
      error: undefined symbol: hb_font_funcs_set_glyph_h_advance_func
      error: undefined symbol: hb_font_funcs_set_glyph_h_kerning_func
      error: undefined symbol: hb_font_funcs_set_nominal_glyph_func
      error: undefined symbol: hb_font_funcs_set_variation_glyph_func
      error: undefined symbol: hb_font_get_user_data
      error: undefined symbol: hb_font_is_immutable
      error: undefined symbol: hb_font_set_funcs
      error: undefined symbol: hb_font_set_ppem
      error: undefined symbol: hb_font_set_scale
      error: undefined symbol: hb_font_set_user_data
      error: undefined symbol: hb_ot_layout_table_find_script
      error: undefined symbol: hb_ot_tags_from_script
      error: undefined symbol: hb_shape_full
      error: undefined symbol: hb_unicode_funcs_create
      error: undefined symbol: hb_unicode_funcs_destroy
      error: undefined symbol: hb_unicode_funcs_set_combining_class_func
      error: undefined symbol: hb_unicode_funcs_set_compose_func
      error: undefined symbol: hb_unicode_funcs_set_decompose_compatibility_func
      error: undefined symbol: hb_unicode_funcs_set_decompose_func
      error: undefined symbol: hb_unicode_funcs_set_eastasian_width_func
      error: undefined symbol: hb_unicode_funcs_set_general_category_func
      error: undefined symbol: hb_unicode_funcs_set_mirroring_func
      error: undefined symbol: hb_unicode_funcs_set_script_func
      error: undefined symbol: pcre2_code_free_16
      error: undefined symbol: pcre2_compile_16
      error: undefined symbol: pcre2_config_16
      error: undefined symbol: pcre2_get_ovector_pointer_16
      error: undefined symbol: pcre2_jit_compile_16
      error: undefined symbol: pcre2_jit_stack_assign_16
      error: undefined symbol: pcre2_jit_stack_create_16
      error: undefined symbol: pcre2_jit_stack_free_16
      error: undefined symbol: pcre2_match_16
      error: undefined symbol: pcre2_match_context_create_16
      error: undefined symbol: pcre2_match_context_free_16
      error: undefined symbol: pcre2_match_data_create_from_pattern_16
      error: undefined symbol: pcre2_match_data_free_16
      error: undefined symbol: pcre2_pattern_info_16
      error: undefined symbol: png_create_info_struct
      error: undefined symbol: png_create_read_struct
      error: undefined symbol: png_create_write_struct
      error: undefined symbol: png_destroy_read_struct
      error: undefined symbol: png_destroy_write_struct
      error: undefined symbol: png_error
      error: undefined symbol: png_get_IHDR
      error: undefined symbol: png_get_PLTE
      error: undefined symbol: png_get_channels
      error: undefined symbol: png_get_error_ptr
      error: undefined symbol: png_get_gAMA
      error: undefined symbol: png_get_image_height
      error: undefined symbol: png_get_image_width
      error: undefined symbol: png_get_io_ptr
      error: undefined symbol: png_get_oFFs
      error: undefined symbol: png_get_tRNS
      error: undefined symbol: png_get_text
      error: undefined symbol: png_get_valid
      error: undefined symbol: png_get_x_pixels_per_meter
      error: undefined symbol: png_get_y_pixels_per_meter
      error: undefined symbol: png_read_end
      error: undefined symbol: png_read_image
      error: undefined symbol: png_read_info
      error: undefined symbol: png_read_row
      error: undefined symbol: png_read_update_info
      error: undefined symbol: png_set_IHDR
      error: undefined symbol: png_set_PLTE
      error: undefined symbol: png_set_bgr
      error: undefined symbol: png_set_compression_level
      error: undefined symbol: png_set_error_fn
      error: undefined symbol: png_set_expand
      error: undefined symbol: png_set_expand_gray_1_2_4_to_8
      error: undefined symbol: png_set_filler
      error: undefined symbol: png_set_gAMA
      error: undefined symbol: png_set_gamma
      error: undefined symbol: png_set_gray_to_rgb
      error: undefined symbol: png_set_interlace_handling
      error: undefined symbol: png_set_invert_mono
      error: undefined symbol: png_set_longjmp_fn
      error: undefined symbol: png_set_oFFs
      error: undefined symbol: png_set_option
      error: undefined symbol: png_set_pHYs
      error: undefined symbol: png_set_packing
      error: undefined symbol: png_set_packswap
      error: undefined symbol: png_set_palette_to_rgb
      error: undefined symbol: png_set_read_fn
      error: undefined symbol: png_set_read_user_transform_fn
      error: undefined symbol: png_set_sig_bytes
      error: undefined symbol: png_set_strip_16
      error: undefined symbol: png_set_swap
      error: undefined symbol: png_set_tRNS
      error: undefined symbol: png_set_tRNS_to_alpha
      error: undefined symbol: png_set_text
      error: undefined symbol: png_set_write_fn
      error: undefined symbol: png_write_chunk
      error: undefined symbol: png_write_end
      error: undefined symbol: png_write_image
      error: undefined symbol: png_write_info
      error: undefined symbol: png_write_rows
      Error: Aborting compilation due to previous errors
      shared:ERROR: '/home/lpotter/emsdk/node/8.9.1_64bit/bin/node /home/lpotter/emsdk/emscripten/1.38.21/src/compiler.js /tmp/tmpElB46Q.txt /home/lpotter/emsdk/emscripten/1.38.21/src/embind/emval.js /home/lpotter/emsdk/emscripten/1.38.21/src/embind/embind.js /home/lpotter/emsdk/emscripten/1.38.21/src/library_pthread_stub.js' failed (1)
      Makefile:109: recipe for target 'textedit.js' failed
      make: *** [textedit.js] Error 1

       

      I narrowed it down to this commit:

      configure: actually resolve libraries into full filepaths

      521a85395da1a2728902816c072ec46bcb0ad380

      It would seem that the -s USE_FREETYPE=1-s USE_LIBPNG=1 -s USE_ZLIB=1

       are not getting passed on so the emscripten's libraries are not getting used.

       

      When I explicitly add them to wasm-emscripten/qmake.conf  that horrible linking error is gone but symbols get defined multiple times.

      error: Linking globals named 'png_sRGB_table': symbol multiply defined!

       

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            buddenha Oswald Buddenhagen
            lpotter Lorn Potter
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes