summaryrefslogtreecommitdiffstats
path: root/layout
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2021-01-02 13:35:39 +0000
committerMoonchild <moonchild@palemoon.org>2021-01-02 13:35:39 +0000
commitbabeb5c556de6f9686f5cd47133d0c40c07bfc2e (patch)
tree146dd48634e5d44746acdd49dc142e413349054d /layout
parent0bb464bfc13e3a0239fd268de265fc332014b385 (diff)
downloadUXP-babeb5c556de6f9686f5cd47133d0c40c07bfc2e.tar
UXP-babeb5c556de6f9686f5cd47133d0c40c07bfc2e.tar.gz
UXP-babeb5c556de6f9686f5cd47133d0c40c07bfc2e.tar.lz
UXP-babeb5c556de6f9686f5cd47133d0c40c07bfc2e.tar.xz
UXP-babeb5c556de6f9686f5cd47133d0c40c07bfc2e.zip
Issue #61 - Reinstate buildability with shared gkmedias dll
This fully works for splitting gkmedias.dll back out from xul with one exception which is Skia throwing undefined externals when linking gkmedias.
Diffstat (limited to 'layout')
-rw-r--r--layout/media/Makefile.in11
-rw-r--r--layout/media/moz.build17
-rw-r--r--layout/media/symbols.def.in661
3 files changed, 684 insertions, 5 deletions
diff --git a/layout/media/Makefile.in b/layout/media/Makefile.in
new file mode 100644
index 000000000..86d9b181d
--- /dev/null
+++ b/layout/media/Makefile.in
@@ -0,0 +1,11 @@
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include $(topsrcdir)/config/rules.mk
+
+ifeq (WINNT,$(OS_TARGET))
+symbols.def: symbols.def.in $(GLOBAL_DEPS)
+ $(call py_action,preprocessor,$(ACDEFINES) $< -o $@)
+endif
diff --git a/layout/media/moz.build b/layout/media/moz.build
index 8fd0eb9a8..9ea465319 100644
--- a/layout/media/moz.build
+++ b/layout/media/moz.build
@@ -6,16 +6,23 @@
with Files('**'):
BUG_COMPONENT = ('Core', 'Video/Audio')
-# media/webrtc/signaling/test/common.build uses the gkmedias library,
-# expecting at least some of what it contains to be linked, but not libxul,
-# so we need to keep an independent pseudo-library, as well as the OS_LIBS
-# on Windows for them to propagate there.
-Library('gkmedias')
+if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
+ GeckoSharedLibrary('gkmedias', linkage=None)
+ USE_LIBS += [
+ 'nspr',
+ ]
+else:
+ # media/webrtc/signaling/test/common.build uses the gkmedias library,
+ # expecting at least some of what it contains to be linked, but not libxul,
+ # so we need to keep an independent pseudo-library, as well as the OS_LIBS
+ # on Windows for them to propagate there.
+ Library('gkmedias')
if CONFIG['MOZ_WEBRTC']:
DIRS += ['webrtc']
if CONFIG['OS_TARGET'] == 'WINNT':
+ DEFFILE = 'symbols.def'
OS_LIBS += [
'usp10',
'ole32',
diff --git a/layout/media/symbols.def.in b/layout/media/symbols.def.in
new file mode 100644
index 000000000..80ce13b65
--- /dev/null
+++ b/layout/media/symbols.def.in
@@ -0,0 +1,661 @@
+;+# This Source Code Form is subject to the terms of the Mozilla Public
+;+# License, v. 2.0. If a copy of the MPL was not distributed with this
+;+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+LIBRARY gkmedias.dll
+EXPORTS
+nestegg_destroy
+nestegg_duration
+nestegg_free_packet
+nestegg_init
+nestegg_offset_seek
+nestegg_packet_count
+nestegg_packet_discard_padding
+nestegg_packet_data
+nestegg_packet_duration
+nestegg_packet_encryption
+nestegg_packet_has_keyframe
+nestegg_packet_iv
+nestegg_packet_track
+nestegg_packet_tstamp
+nestegg_read_packet
+nestegg_read_reset
+nestegg_track_audio_params
+nestegg_track_codec_data
+nestegg_track_codec_data_count
+nestegg_track_codec_id
+nestegg_track_content_enc_key_id
+nestegg_track_count
+nestegg_get_cue_point
+nestegg_track_seek
+nestegg_track_type
+nestegg_track_video_params
+nestegg_tstamp_scale
+nestegg_has_cues
+nestegg_sniff
+#ifdef MOZ_WEBM_ENCODER
+writeSimpleBlock
+writeHeader
+writeSegmentInformation
+writeVideoTrack
+writeAudioTrack
+Ebml_Serialize
+Ebml_SerializeUnsigned
+Ebml_StartSubElement
+Ebml_EndSubElement
+#endif
+vpx_codec_control_
+vpx_codec_dec_init_ver
+vpx_codec_decode
+vpx_codec_destroy
+vpx_codec_err_to_string
+vpx_codec_get_frame
+vpx_codec_peek_stream_info
+vpx_codec_vp8_dx
+vpx_codec_vp9_dx
+vpx_img_free
+vpx_codec_enc_config_set
+vpx_codec_enc_init_ver
+vpx_codec_vp8_cx
+vpx_codec_vp9_cx
+vpx_img_set_rect
+vpx_img_wrap
+vpx_codec_get_cx_data
+vpx_codec_enc_config_default
+vpx_img_alloc
+vpx_codec_encode
+#ifdef MOZ_AV1
+aom_codec_av1_dx
+aom_codec_dec_init_ver
+aom_codec_decode
+aom_codec_destroy
+aom_codec_err_to_string
+aom_codec_get_frame
+aom_codec_peek_stream_info
+aom_img_alloc
+aom_img_free
+
+#ifdef MOZ_VORBIS
+ogg_page_bos
+ogg_page_granulepos
+ogg_page_serialno
+ogg_set_mem_functions
+ogg_stream_check
+ogg_stream_clear
+ogg_stream_eos
+ogg_stream_flush
+ogg_stream_init
+ogg_stream_packetin
+ogg_stream_packetout
+ogg_stream_pagein
+ogg_stream_pageout
+ogg_stream_reset
+ogg_sync_buffer
+ogg_sync_clear
+ogg_sync_init
+ogg_sync_pageseek
+ogg_sync_reset
+ogg_sync_wrote
+vorbis_analysis
+vorbis_analysis_blockout
+vorbis_analysis_buffer
+vorbis_analysis_init
+vorbis_analysis_headerout
+vorbis_analysis_wrote
+vorbis_block_clear
+vorbis_block_init
+vorbis_comment_add_tag
+vorbis_comment_clear
+vorbis_comment_init
+vorbis_dsp_clear
+vorbis_encode_init_vbr
+vorbis_info_clear
+vorbis_info_init
+vorbis_packet_blocksize
+vorbis_synthesis
+vorbis_synthesis_blockin
+vorbis_synthesis_headerin
+vorbis_synthesis_init
+vorbis_synthesis_pcmout
+vorbis_synthesis_read
+vorbis_synthesis_restart
+#endif
+moz_speex_resampler_init
+moz_speex_resampler_destroy
+moz_speex_resampler_process_float
+moz_speex_resampler_process_interleaved_float
+moz_speex_resampler_process_interleaved_int
+moz_speex_resampler_set_rate
+moz_speex_resampler_get_rate
+moz_speex_resampler_get_ratio
+moz_speex_resampler_get_input_latency
+moz_speex_resampler_get_output_latency
+moz_speex_resampler_skip_zeros
+moz_speex_resampler_set_skip_frac_num
+moz_speex_resampler_reset_mem
+cubeb_destroy
+cubeb_init
+cubeb_get_backend_id
+cubeb_get_max_channel_count
+cubeb_get_min_latency
+cubeb_get_preferred_sample_rate
+cubeb_stream_destroy
+cubeb_stream_get_position
+cubeb_stream_init
+cubeb_stream_start
+cubeb_stream_stop
+cubeb_stream_get_latency
+cubeb_stream_set_volume
+cubeb_stream_set_panning
+cubeb_stream_get_current_device
+cubeb_stream_device_destroy
+cubeb_stream_register_device_changed_callback
+th_comment_clear
+th_comment_init
+th_decode_alloc
+th_decode_free
+th_decode_headerin
+th_decode_packetin
+th_decode_ycbcr_out
+th_granule_frame
+th_info_clear
+th_info_init
+th_packet_isheader
+th_packet_iskeyframe
+th_setup_free
+opus_decoder_create
+opus_decoder_destroy
+opus_decoder_ctl
+opus_decoder_get_nb_samples
+opus_decode
+opus_decode_float
+opus_get_version_string
+opus_multistream_decoder_create
+opus_multistream_decoder_ctl
+opus_multistream_decoder_destroy
+opus_multistream_decode_float
+opus_multistream_decode
+opus_packet_get_nb_frames
+opus_packet_get_samples_per_frame
+opus_encoder_create
+opus_encoder_destroy
+opus_encoder_ctl
+opus_encode
+opus_encode_float
+#ifndef MOZ_NATIVE_PNG
+MOZ_APNG_get_first_frame_is_hidden
+MOZ_APNG_get_next_frame_blend_op
+MOZ_APNG_get_next_frame_delay_den
+MOZ_APNG_get_next_frame_delay_num
+MOZ_APNG_get_next_frame_dispose_op
+MOZ_APNG_set_prog_frame_fn
+MOZ_APNG_get_next_frame_height
+MOZ_APNG_get_next_frame_width
+MOZ_APNG_get_next_frame_x_offset
+MOZ_APNG_get_next_frame_y_offset
+MOZ_APNG_set_acTL
+MOZ_APNG_set_first_frame_is_hidden
+MOZ_APNG_set_num_plays
+MOZ_APNG_write_frame_head
+MOZ_APNG_write_frame_tail
+MOZ_PNG_cr_info_str
+MOZ_PNG_cr_read_str
+MOZ_PNG_cr_write_str
+MOZ_PNG_dest_read_str
+MOZ_PNG_dest_write_str
+MOZ_PNG_free_data
+MOZ_PNG_get_channels
+MOZ_PNG_get_cHRM
+MOZ_PNG_get_gAMA
+MOZ_PNG_get_IHDR
+MOZ_PNG_get_iCCP
+MOZ_PNG_get_io_ptr
+MOZ_PNG_get_progressive_ptr
+MOZ_PNG_get_sRGB
+MOZ_PNG_get_tRNS
+MOZ_PNG_get_valid
+MOZ_PNG_longjmp
+MOZ_PNG_process_data
+MOZ_PNG_process_data_pause
+MOZ_PNG_progressive_combine_row
+MOZ_PNG_read_update_info
+MOZ_PNG_set_cHRM
+MOZ_PNG_set_crc_action
+MOZ_PNG_set_gAMA
+MOZ_PNG_set_gamma
+MOZ_PNG_set_gray_to_rgb
+MOZ_PNG_set_expand
+MOZ_PNG_set_IHDR
+MOZ_PNG_set_interlace_handling
+MOZ_PNG_set_longjmp_fn
+MOZ_PNG_set_progressive_read_fn
+MOZ_PNG_set_scale_16
+MOZ_PNG_set_write_fn
+MOZ_PNG_write_end
+MOZ_PNG_write_info
+MOZ_PNG_write_row
+#endif
+png_set_option
+png_error
+#ifndef MOZ_NATIVE_JPEG
+jpeg_calc_output_dimensions
+jpeg_consume_input
+jpeg_CreateCompress
+jpeg_CreateDecompress
+jpeg_destroy_compress
+jpeg_destroy_decompress
+jpeg_finish_compress
+jpeg_finish_decompress
+jpeg_finish_output
+jpeg_has_multiple_scans
+jpeg_input_complete
+jpeg_read_header
+jpeg_read_scanlines
+jpeg_resync_to_restart
+jpeg_save_markers
+jpeg_set_defaults
+jpeg_set_quality
+jpeg_start_compress
+jpeg_start_decompress
+jpeg_start_output
+jpeg_std_error
+jpeg_write_scanlines
+jpeg_write_raw_data
+jpeg_stdio_dest
+jpeg_abort
+jpeg_abort_decompress
+jpeg_read_raw_data
+#endif
+WebPDemuxDelete
+WebPDemuxGetChunk
+WebPDemuxGetFrame
+WebPDemuxGetI
+WebPDemuxInternal
+WebPDemuxNextFrame
+WebPDemuxReleaseChunkIterator
+WebPDemuxReleaseIterator
+WebPFreeDecBuffer
+WebPIDecGetRGB
+WebPIDelete
+WebPINewDecoder
+WebPIUpdate
+WebPInitDecBufferInternal
+qcms_enable_iccv4
+qcms_data_from_unicode_path
+qcms_data_from_path
+qcms_profile_create_rgb_with_gamma
+qcms_profile_from_memory
+qcms_profile_from_path
+qcms_profile_from_unicode_path
+qcms_profile_get_color_space
+qcms_profile_get_rendering_intent
+qcms_profile_is_bogus
+qcms_profile_precache_output_transform
+qcms_profile_release
+qcms_profile_sRGB
+qcms_transform_create
+qcms_transform_data
+qcms_transform_release
+MOZ_XMLCheckQName
+MOZ_XMLIsLetter
+MOZ_XMLIsNCNameChar
+MOZ_XMLTranslateEntity
+MOZ_XML_ExternalEntityParserCreate
+MOZ_XML_GetBase
+MOZ_XML_GetCurrentByteIndex
+MOZ_XML_GetCurrentColumnNumber
+MOZ_XML_GetCurrentLineNumber
+MOZ_XML_GetErrorCode
+MOZ_XML_GetIdAttributeIndex
+MOZ_XML_GetMismatchedTag
+MOZ_XML_GetSpecifiedAttributeCount
+MOZ_XML_Parse
+MOZ_XML_ParserCreate_MM
+MOZ_XML_ParserFree
+MOZ_XML_ResumeParser
+MOZ_XML_SetBase
+MOZ_XML_SetCdataSectionHandler
+MOZ_XML_SetCharacterDataHandler
+MOZ_XML_SetCommentHandler
+MOZ_XML_SetDefaultHandlerExpand
+MOZ_XML_SetDoctypeDeclHandler
+MOZ_XML_SetElementHandler
+MOZ_XML_SetExternalEntityRefHandler
+MOZ_XML_SetExternalEntityRefHandlerArg
+MOZ_XML_SetNamespaceDeclHandler
+MOZ_XML_SetNotationDeclHandler
+MOZ_XML_SetParamEntityParsing
+MOZ_XML_SetProcessingInstructionHandler
+MOZ_XML_SetReturnNSTriplet
+MOZ_XML_SetUnparsedEntityDeclHandler
+MOZ_XML_SetUserData
+MOZ_XML_SetXmlDeclHandler
+MOZ_XML_StopParser
+#ifdef MOZ_TREE_CAIRO
+_moz_cairo_append_path
+_moz_cairo_arc
+_moz_cairo_arc_negative
+_moz_cairo_clip
+_moz_cairo_clip_extents
+_moz_cairo_clip_preserve
+_moz_cairo_close_path
+_moz_cairo_copy_clip_rectangle_list
+_moz_cairo_copy_path
+_moz_cairo_copy_path_flat
+_moz_cairo_create
+_moz_cairo_curve_to
+_moz_cairo_d2d_create_device
+_moz_cairo_d2d_create_device_from_d3d10device
+_moz_cairo_d2d_device_get_device
+_moz_cairo_d2d_get_dc
+_moz_cairo_d2d_get_image_surface_cache_usage
+_moz_cairo_d2d_get_surface_vram_usage
+_moz_cairo_d2d_present_backbuffer
+_moz_cairo_d2d_release_dc
+_moz_cairo_d2d_scroll
+_moz_cairo_d2d_surface_create
+_moz_cairo_d2d_surface_create_for_handle
+_moz_cairo_d2d_surface_create_for_hwnd
+_moz_cairo_d2d_surface_create_for_texture
+_moz_cairo_d2d_surface_get_height
+_moz_cairo_d2d_surface_get_texture
+_moz_cairo_d2d_surface_get_width
+_moz_cairo_debug_reset_static_data
+_moz_cairo_destroy
+_moz_cairo_device_to_user
+_moz_cairo_device_to_user_distance
+_moz_cairo_dwrite_font_face_create_for_dwrite_fontface
+_moz_cairo_dwrite_get_cleartype_rendering_mode
+_moz_cairo_dwrite_scaled_font_allow_manual_show_glyphs
+_moz_cairo_dwrite_scaled_font_get_force_GDI_classic
+_moz_cairo_dwrite_scaled_font_set_force_GDI_classic
+_moz_cairo_dwrite_set_cleartype_params
+_moz_cairo_fill
+_moz_cairo_fill_extents
+_moz_cairo_fill_preserve
+_moz_cairo_font_face_destroy
+_moz_cairo_font_options_create
+_moz_cairo_font_options_destroy
+_moz_cairo_font_options_get_antialias
+_moz_cairo_font_options_get_hint_metrics
+_moz_cairo_font_options_set_antialias
+_moz_cairo_format_stride_for_width
+_moz_cairo_get_antialias
+_moz_cairo_get_current_point
+_moz_cairo_get_dash
+_moz_cairo_get_dash_count
+_moz_cairo_get_fill_rule
+_moz_cairo_get_font_matrix
+_moz_cairo_get_font_options
+_moz_cairo_get_group_target
+_moz_cairo_get_line_cap
+_moz_cairo_get_line_join
+_moz_cairo_get_line_width
+_moz_cairo_get_matrix
+_moz_cairo_get_miter_limit
+_moz_cairo_get_operator
+_moz_cairo_get_scaled_font
+_moz_cairo_get_source
+_moz_cairo_get_target
+_moz_cairo_glyph_extents
+_moz_cairo_glyph_path
+_moz_cairo_identity_matrix
+_moz_cairo_image_surface_create
+_moz_cairo_image_surface_create_for_data
+_moz_cairo_image_surface_get_data
+_moz_cairo_image_surface_get_format
+_moz_cairo_image_surface_get_height
+_moz_cairo_image_surface_get_stride
+_moz_cairo_image_surface_get_width
+_moz_cairo_in_fill
+_moz_cairo_in_stroke
+_moz_cairo_line_to
+_moz_cairo_mask
+_moz_cairo_mask_surface
+_moz_cairo_matrix_init
+_moz_cairo_matrix_init_identity
+_moz_cairo_matrix_init_scale
+_moz_cairo_matrix_init_translate
+_moz_cairo_matrix_invert
+_moz_cairo_matrix_multiply
+_moz_cairo_matrix_rotate
+_moz_cairo_matrix_scale
+_moz_cairo_matrix_transform_distance
+_moz_cairo_matrix_transform_point
+_moz_cairo_matrix_translate
+_moz_cairo_move_to
+_moz_cairo_new_path
+_moz_cairo_new_sub_path
+_moz_cairo_null_surface_create
+_moz_cairo_paint
+_moz_cairo_paint_with_alpha
+_moz_cairo_path_destroy
+_moz_cairo_path_extents
+_moz_cairo_pattern_add_color_stop_rgba
+_moz_cairo_pattern_create_for_surface
+_moz_cairo_pattern_create_linear
+_moz_cairo_pattern_create_radial
+_moz_cairo_pattern_create_rgba
+_moz_cairo_pattern_destroy
+_moz_cairo_pattern_get_color_stop_count
+_moz_cairo_pattern_get_color_stop_rgba
+_moz_cairo_pattern_get_extend
+_moz_cairo_pattern_get_filter
+_moz_cairo_pattern_get_linear_points
+_moz_cairo_pattern_get_matrix
+_moz_cairo_pattern_get_radial_circles
+_moz_cairo_pattern_get_rgba
+_moz_cairo_pattern_get_surface
+_moz_cairo_pattern_get_type
+_moz_cairo_pattern_reference
+_moz_cairo_pattern_set_extend
+_moz_cairo_pattern_set_filter
+_moz_cairo_pattern_set_matrix
+_moz_cairo_pattern_status
+_moz_cairo_pdf_surface_create_for_stream
+_moz_cairo_pop_group
+_moz_cairo_pop_group_to_source
+_moz_cairo_push_group
+_moz_cairo_push_group_with_content
+_moz_cairo_rectangle
+_moz_cairo_rectangle_list_destroy
+_moz_cairo_reference
+_moz_cairo_release_device
+_moz_cairo_reset_clip
+_moz_cairo_restore
+_moz_cairo_rotate
+_moz_cairo_save
+_moz_cairo_scale
+_moz_cairo_scaled_font_create
+_moz_cairo_scaled_font_destroy
+_moz_cairo_scaled_font_get_font_matrix
+_moz_cairo_scaled_font_get_font_options
+_moz_cairo_scaled_font_get_type
+_moz_cairo_scaled_font_glyph_extents
+_moz_cairo_scaled_font_reference
+_moz_cairo_scaled_font_status
+_moz_cairo_set_antialias
+_moz_cairo_set_dash
+_moz_cairo_set_fill_rule
+_moz_cairo_set_font_face
+_moz_cairo_set_font_options
+_moz_cairo_set_font_size
+_moz_cairo_set_line_cap
+_moz_cairo_set_line_join
+_moz_cairo_set_line_width
+_moz_cairo_set_matrix
+_moz_cairo_set_miter_limit
+_moz_cairo_set_operator
+_moz_cairo_set_scaled_font
+_moz_cairo_set_source
+_moz_cairo_set_source_rgba
+_moz_cairo_set_source_surface
+_moz_cairo_show_glyphs
+_moz_cairo_status
+_moz_cairo_status_to_string
+_moz_cairo_stroke
+_moz_cairo_stroke_extents
+_moz_cairo_stroke_preserve
+_moz_cairo_surface_attach_snapshot
+_moz_cairo_surface_create_similar
+_moz_cairo_surface_destroy
+_moz_cairo_surface_finish
+_moz_cairo_surface_flush
+_moz_cairo_surface_get_content
+_moz_cairo_surface_get_device_offset
+_moz_cairo_surface_get_reference_count
+_moz_cairo_surface_get_subpixel_antialiasing
+_moz_cairo_surface_get_type
+_moz_cairo_surface_get_user_data
+_moz_cairo_surface_mark_dirty
+_moz_cairo_surface_mark_dirty_rectangle
+_moz_cairo_surface_reference
+_moz_cairo_surface_set_device_offset
+_moz_cairo_surface_set_fallback_resolution
+_moz_cairo_surface_set_subpixel_antialiasing
+_moz_cairo_surface_set_user_data
+_moz_cairo_surface_show_page
+_moz_cairo_surface_status
+_moz_cairo_tee_surface_add
+_moz_cairo_tee_surface_create
+_moz_cairo_tee_surface_index
+_moz_cairo_transform
+_moz_cairo_translate
+_moz_cairo_user_to_device
+_moz_cairo_user_to_device_distance
+_moz_cairo_win32_font_face_create_for_logfontw
+_moz_cairo_win32_font_face_create_for_logfontw_hfont
+_moz_cairo_win32_get_dc_with_clip
+_moz_cairo_win32_get_system_text_quality
+#ifdef NS_PRINTING
+_moz_cairo_win32_printing_surface_create
+#endif
+_moz_cairo_win32_scaled_font_select_font
+_moz_cairo_win32_surface_create
+_moz_cairo_win32_surface_create_with_alpha
+_moz_cairo_win32_surface_create_with_d3dsurface9
+_moz_cairo_win32_surface_create_with_ddb
+_moz_cairo_win32_surface_create_with_dib
+_moz_cairo_win32_surface_get_dc
+_moz_cairo_win32_surface_get_height
+_moz_cairo_win32_surface_get_image
+_moz_cairo_win32_surface_get_width
+_moz_cairo_win32_surface_set_can_convert_to_dib
+#ifdef MOZ_TREE_PIXMAN
+_moz_pixman_image_composite32
+_moz_pixman_image_create_bits
+_moz_pixman_image_set_filter
+_moz_pixman_image_set_transform
+_moz_pixman_image_unref
+_moz_pixman_transform_from_pixman_f_transform
+_moz_pixman_transform_invert
+_moz_pixman_region32_reset
+_moz_pixman_region32_init
+_moz_pixman_region32_init_rect
+_moz_pixman_region32_init_rects
+_moz_pixman_region32_init_with_extents
+_moz_pixman_region32_fini
+_moz_pixman_region32_translate
+_moz_pixman_region32_copy
+_moz_pixman_region32_intersect
+_moz_pixman_region32_intersect_rect
+_moz_pixman_region32_union
+_moz_pixman_region32_union_rect
+_moz_pixman_region32_subtract
+_moz_pixman_region32_inverse
+_moz_pixman_region32_contains_point
+_moz_pixman_region32_contains_rectangle
+_moz_pixman_region32_not_empty
+_moz_pixman_region32_extents
+_moz_pixman_region32_n_rects
+_moz_pixman_region32_rectangles
+_moz_pixman_region32_equal
+_moz_pixman_region32_selfcheck
+_moz_pixman_region32_reset
+_moz_pixman_region32_clear
+#endif
+#endif
+hb_blob_create
+hb_blob_destroy
+hb_blob_get_data
+hb_blob_get_empty
+hb_blob_get_length
+hb_blob_reference
+hb_buffer_add_utf16
+hb_buffer_create
+hb_buffer_destroy
+hb_buffer_get_glyph_infos
+hb_buffer_get_glyph_positions
+hb_buffer_reverse
+hb_buffer_set_cluster_level
+hb_buffer_set_direction
+hb_buffer_set_language
+hb_buffer_set_script
+hb_buffer_set_unicode_funcs
+hb_face_create_for_tables
+hb_face_destroy
+hb_face_reference
+hb_font_create
+hb_font_destroy
+hb_font_funcs_create
+hb_font_funcs_set_glyph_contour_point_func
+hb_font_funcs_set_glyph_extents_func
+hb_font_funcs_set_glyph_func
+hb_font_funcs_set_glyph_h_advance_func
+hb_font_funcs_set_glyph_h_kerning_func
+hb_font_funcs_set_glyph_h_origin_func
+hb_font_funcs_set_glyph_v_origin_func
+hb_font_funcs_set_glyph_v_advance_func
+hb_font_funcs_set_nominal_glyph_func
+hb_font_funcs_set_variation_glyph_func
+hb_font_set_funcs
+hb_font_set_ppem
+hb_font_set_scale
+hb_language_from_string
+hb_ot_layout_collect_lookups
+hb_ot_layout_feature_get_lookups
+hb_ot_layout_has_positioning
+hb_ot_layout_has_substitution
+hb_ot_layout_language_find_feature
+hb_ot_layout_language_get_feature_indexes
+hb_ot_layout_language_get_feature_tags
+hb_ot_layout_language_get_required_feature_index
+hb_ot_layout_lookup_collect_glyphs
+hb_ot_layout_script_get_language_tags
+hb_ot_layout_table_choose_script
+hb_ot_layout_table_find_script
+hb_ot_layout_table_get_script_tags
+hb_ot_math_get_constant
+hb_ot_math_get_glyph_assembly
+hb_ot_math_get_glyph_italics_correction
+hb_ot_math_get_glyph_variants
+hb_ot_math_has_data
+hb_ot_tag_to_language
+hb_ot_tag_to_script
+hb_ot_tags_from_script
+hb_set_add
+hb_set_clear
+hb_set_create
+hb_set_destroy
+hb_set_get_population
+hb_set_has
+hb_set_intersect
+hb_set_is_empty
+hb_set_next
+hb_shape
+hb_unicode_funcs_create
+hb_unicode_funcs_get_empty
+hb_unicode_funcs_set_combining_class_func
+hb_unicode_funcs_set_compose_func
+hb_unicode_funcs_set_decompose_func
+hb_unicode_funcs_set_eastasian_width_func
+hb_unicode_funcs_set_general_category_func
+hb_unicode_funcs_set_mirroring_func
+hb_unicode_funcs_set_script_func
+BrotliDecoderCreateInstance
+BrotliDecoderDecompress
+BrotliDecoderDecompressStream
+BrotliDecoderDestroyInstance
+BrotliDecoderIsFinished
+BrotliDecoderStateCleanup
+BrotliDecoderStateInit