Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.12.1
-
None
-
emscripten 1.38.21
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!