diff options
author | Moonchild <moonchild@palemoon.org> | 2021-01-02 13:35:39 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2021-01-02 13:35:39 +0000 |
commit | babeb5c556de6f9686f5cd47133d0c40c07bfc2e (patch) | |
tree | 146dd48634e5d44746acdd49dc142e413349054d | |
parent | 0bb464bfc13e3a0239fd268de265fc332014b385 (diff) | |
download | UXP-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.
31 files changed, 804 insertions, 16 deletions
diff --git a/config/moz.build b/config/moz.build index fccf5cbcd..3e95e46d2 100644 --- a/config/moz.build +++ b/config/moz.build @@ -28,6 +28,9 @@ if CONFIG['HOST_OS_ARCH'] != 'WINNT': # while the program here is in C. HostProgram('nsinstall_real', c_only=True) +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + DEFINES['GKMEDIAS_SHARED_LIBRARY'] = True + PYTHON_UNIT_TESTS += [ 'tests/test_mozbuild_reading.py', 'tests/unit-expandlibs.py', diff --git a/config/system-headers b/config/system-headers index 015644428..76c79c915 100644 --- a/config/system-headers +++ b/config/system-headers @@ -1287,6 +1287,22 @@ QtSparql/qsparqlresult.h #if MOZ_TREE_PIXMAN!=1 pixman.h #endif +#ifdef GKMEDIAS_SHARED_LIBRARY +vpx/vpx_codec.h +vpx/vpx_decoder.h +vpx/vpx_encoder.h +vpx/vp8cx.h +vpx/vp8dx.h +vpx_mem/vpx_mem.h +vorbis/codec.h +theora/theoradec.h +tremor/ivorbiscodec.h +speex/speex_resampler.h +ogg/ogg.h +ogg/os_types.h +nestegg/nestegg.h +cubeb/cubeb.h +#endif gst/gst.h gst/app/gstappsink.h gst/app/gstappsrc.h diff --git a/dom/media/gmp/moz.build b/dom/media/gmp/moz.build index 252bfc4a6..6e9e92e8a 100644 --- a/dom/media/gmp/moz.build +++ b/dom/media/gmp/moz.build @@ -145,6 +145,9 @@ IPDL_SOURCES += [ 'PGMPVideoEncoder.ipdl', ] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + # comment this out to use Unsafe Shmem for more performance DEFINES['GMP_SAFE_SHMEM'] = True diff --git a/gfx/angle/moz.build b/gfx/angle/moz.build index 1dbfaf2ce..f12eb6ca5 100755 --- a/gfx/angle/moz.build +++ b/gfx/angle/moz.build @@ -172,6 +172,14 @@ EXPORTS.angle.KHR += [ 'include/KHR/khrplatform.h' ] LOCAL_INCLUDES += [ 'include', 'src', 'src/common/third_party/numerics' ] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + +# This tells ANGLE to build the translator with declspec(dllexport) on Windows +# which we need to get these symbols exported from gkmedias +DEFINES['COMPONENT_BUILD'] = True +DEFINES['ANGLE_TRANSLATOR_IMPLEMENTATION'] = True + # We allow warnings for third-party code that can be updated from upstream. ALLOW_COMPILER_WARNINGS = True diff --git a/gfx/graphite2/src/moz.build b/gfx/graphite2/src/moz.build index 09ebc0ce6..ecf396e2b 100644 --- a/gfx/graphite2/src/moz.build +++ b/gfx/graphite2/src/moz.build @@ -57,9 +57,13 @@ SOURCES += [ 'UtfCodec.cpp', ] -# tell graphite2 not to export symbols, we'll be linking it directly with -# thebes -DEFINES['GRAPHITE2_STATIC'] = True +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + DEFINES['GRAPHITE2_EXPORTING'] = True +else: + # tell graphite2 not to export symbols, we'll be linking it directly with + # thebes + DEFINES['GRAPHITE2_STATIC'] = True # We allow warnings for third-party code that can be updated from upstream. ALLOW_COMPILER_WARNINGS = True diff --git a/gfx/ots/src/moz.build b/gfx/ots/src/moz.build index 150773db9..909a2092e 100644 --- a/gfx/ots/src/moz.build +++ b/gfx/ots/src/moz.build @@ -56,6 +56,9 @@ SOURCES += [ 'vvar.cc', ] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + # We allow warnings for third-party code that can be updated from upstream. ALLOW_COMPILER_WARNINGS = True @@ -66,6 +69,10 @@ DEFINES['PACKAGE_BUGREPORT'] = '"http://bugzilla.mozilla.org/"' DEFINES['OTS_GRAPHITE'] = 1 DEFINES['OTS_VARIATIONS'] = 1 +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + DEFINES['OTS_DLL'] = True + DEFINES['OTS_DLL_EXPORTS'] = True + USE_LIBS += [ 'brotli', 'woff2', diff --git a/gfx/qcms/moz.build b/gfx/qcms/moz.build index 405743606..9bcbbe63a 100644 --- a/gfx/qcms/moz.build +++ b/gfx/qcms/moz.build @@ -16,7 +16,10 @@ SOURCES += [ 'transform_util.c', ] -FINAL_LIBRARY = 'xul' +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + +FINAL_LIBRARY = 'gkmedias' if CONFIG['GNU_CC']: CFLAGS += ['-Wno-missing-field-initializers'] diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py index 08d6ed9ab..de0a5c52e 100755 --- a/gfx/skia/generate_mozbuild.py +++ b/gfx/skia/generate_mozbuild.py @@ -84,6 +84,10 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows': 'skia/src/fonts/SkRemotableFontMgr.cpp', ] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + DEFINES['SKIA_DLL'] = 1 + DEFINES['GR_DLL'] = 1 + # We should autogenerate these SSE related flags. if CONFIG['_MSC_VER']: diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build index 56570e61f..4ef5060b0 100644 --- a/gfx/skia/moz.build +++ b/gfx/skia/moz.build @@ -643,7 +643,6 @@ else: 'skia/src/opts/SkBlitRow_opts_none.cpp', ] - # We allow warnings for third-party code that can be updated from upstream. ALLOW_COMPILER_WARNINGS = True @@ -694,6 +693,11 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows': 'skia/src/fonts/SkRemotableFontMgr.cpp', ] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + DEFINES['SKIA_DLL'] = 1 + DEFINES['GR_DLL'] = 1 + DEFINES['SK_FONT_HOST_USE_SYSTEM_SETTINGS'] = 1 + # We should autogenerate these SSE related flags. if CONFIG['_MSC_VER']: diff --git a/gfx/skia/skia/include/utils/SkPaintFilterCanvas.h b/gfx/skia/skia/include/utils/SkPaintFilterCanvas.h index 63eaaa2fb..29474df0f 100644 --- a/gfx/skia/skia/include/utils/SkPaintFilterCanvas.h +++ b/gfx/skia/skia/include/utils/SkPaintFilterCanvas.h @@ -27,7 +27,7 @@ public: * specified canvas. Also copies the target canvas matrix and clip bounds. */ SkPaintFilterCanvas(SkCanvas* canvas); - + enum Type { kPaint_Type, kPoint_Type, diff --git a/gfx/skia/skia/src/core/SkCanvas.cpp b/gfx/skia/skia/src/core/SkCanvas.cpp index 505592d0f..0a080f737 100644 --- a/gfx/skia/skia/src/core/SkCanvas.cpp +++ b/gfx/skia/skia/src/core/SkCanvas.cpp @@ -22,6 +22,7 @@ #include "SkLatticeIter.h" #include "SkMatrixUtils.h" #include "SkMetaData.h" +#include "SkNWayCanvas.h" #include "SkNx.h" #include "SkPaintPriv.h" #include "SkPatchUtils.h" @@ -45,9 +46,10 @@ #include "GrContext.h" #include "GrRenderTarget.h" #include "SkGrPriv.h" - #endif +class SkNWayCanvas; + #define RETURN_ON_NULL(ptr) do { if (nullptr == (ptr)) return; } while (0) /* diff --git a/gfx/skia/skia/src/ports/SkTypeface_win_dw.cpp b/gfx/skia/skia/src/ports/SkTypeface_win_dw.cpp index 96a728f60..ca5f01aed 100644 --- a/gfx/skia/skia/src/ports/SkTypeface_win_dw.cpp +++ b/gfx/skia/skia/src/ports/SkTypeface_win_dw.cpp @@ -251,7 +251,7 @@ SkScalerContext* DWriteFontTypeface::onCreateScalerContext(const SkScalerContext } #ifdef MOZ_SKIA -IDWriteRenderingParams* GetDwriteRenderingParams(bool aGDI); +extern IDWriteRenderingParams* GetDwriteRenderingParams(bool aGDI); #endif void DWriteFontTypeface::onFilterRec(SkScalerContext::Rec* rec) const { diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build index a725ab024..b84c4a4c6 100644 --- a/gfx/thebes/moz.build +++ b/gfx/thebes/moz.build @@ -255,6 +255,9 @@ LOCAL_INCLUDES += ['/media/libyuv/include'] DEFINES['GRAPHITE2_STATIC'] = True +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + DEFINES['OTS_DLL'] = True + if CONFIG['CLANG_CXX']: # Suppress warnings from Skia header files. SOURCES['gfxPlatform.cpp'].flags += ['-Wno-implicit-fallthrough'] 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 diff --git a/media/libaom/moz.build b/media/libaom/moz.build index 72d55cffe..aedac3102 100644 --- a/media/libaom/moz.build +++ b/media/libaom/moz.build @@ -88,6 +88,9 @@ else: LOCAL_INCLUDES += [ '/media/libaom/config/generic/' ] EXPORTS.aom += [ 'config/generic/config/aom_config.h' ] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + # We allow warnings for third-party code that can be updated from upstream. ALLOW_COMPILER_WARNINGS = True diff --git a/media/libcubeb/src/moz.build b/media/libcubeb/src/moz.build index b53dec799..65aaf7256 100644 --- a/media/libcubeb/src/moz.build +++ b/media/libcubeb/src/moz.build @@ -81,6 +81,9 @@ if CONFIG['OS_TARGET'] == 'Android': ] DEFINES['USE_AUDIOTRACK'] = True +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + FINAL_LIBRARY = 'gkmedias' CFLAGS += CONFIG['MOZ_ALSA_CFLAGS'] diff --git a/media/libjpeg/moz.build b/media/libjpeg/moz.build index 866830dad..6519c30fb 100644 --- a/media/libjpeg/moz.build +++ b/media/libjpeg/moz.build @@ -150,6 +150,9 @@ else: # No SIMD support? ASFLAGS += CONFIG['LIBJPEG_TURBO_ASFLAGS'] ASFLAGS += ['-I%s/media/libjpeg/simd/' % TOPSRCDIR] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + # We allow warnings for third-party code that can be updated from upstream. ALLOW_COMPILER_WARNINGS = True diff --git a/media/libmkv/moz.build b/media/libmkv/moz.build index 2463bed86..018ca7474 100644 --- a/media/libmkv/moz.build +++ b/media/libmkv/moz.build @@ -20,6 +20,9 @@ SOURCES += [ 'WebMElement.c', ] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + FINAL_LIBRARY = 'gkmedias' # We allow warnings for third-party code that can be updated from upstream. diff --git a/media/libnestegg/src/moz.build b/media/libnestegg/src/moz.build index 541e18e04..bf9edcdbc 100644 --- a/media/libnestegg/src/moz.build +++ b/media/libnestegg/src/moz.build @@ -7,6 +7,9 @@ UNIFIED_SOURCES += [ 'nestegg.c', ] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + FINAL_LIBRARY = 'gkmedias' # We allow warnings for third-party code that can be updated from upstream. diff --git a/media/libogg/moz.build b/media/libogg/moz.build index a4745029e..abc8d0285 100644 --- a/media/libogg/moz.build +++ b/media/libogg/moz.build @@ -18,4 +18,7 @@ UNIFIED_SOURCES += [ 'src/ogg_framing.c', ] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + FINAL_LIBRARY = 'gkmedias' diff --git a/media/libopus/moz.build b/media/libopus/moz.build index 3c981e2aa..9ef394940 100644 --- a/media/libopus/moz.build +++ b/media/libopus/moz.build @@ -22,8 +22,10 @@ DEFINES['OPUS_BUILD'] = True DEFINES['OPUS_VERSION'] = '"v1.1.3-mozilla"' DEFINES['USE_ALLOCA'] = True -# Don't export symbols -DEFINES['OPUS_EXPORT'] = '' +# We only need to export symbols if we're built into libgkmedias +# instead of libxul. +if not CONFIG['GKMEDIAS_SHARED_LIBRARY']: + DEFINES['OPUS_EXPORT'] = '' if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_AS']: DEFINES['OPUS_ARM_ASM'] = True diff --git a/media/libpng/moz.build b/media/libpng/moz.build index 987c73745..ff4b9e9cb 100644 --- a/media/libpng/moz.build +++ b/media/libpng/moz.build @@ -46,6 +46,9 @@ if CONFIG['INTEL_ARCHITECTURE']: Library('mozpng') +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + FINAL_LIBRARY = 'gkmedias' # We allow warnings for third-party code that can be updated from upstream. diff --git a/media/libspeex_resampler/src/moz.build b/media/libspeex_resampler/src/moz.build index cad566800..c8c8db653 100644 --- a/media/libspeex_resampler/src/moz.build +++ b/media/libspeex_resampler/src/moz.build @@ -22,7 +22,11 @@ FINAL_LIBRARY = 'gkmedias' # We don't compile the full speex codec, only the resampler. DEFINES['OUTSIDE_SPEEX'] = True +# Visibility is handled through VISIBILITY_FLAGS and +# layout/media/symbols.def.in. DEFINES['EXPORT'] = '' +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True if CONFIG['MOZ_SAMPLE_TYPE_S16']: DEFINES['FIXED_POINT'] = True diff --git a/media/libtheora/moz.build b/media/libtheora/moz.build index 5fe30c60b..0a88d8f92 100644 --- a/media/libtheora/moz.build +++ b/media/libtheora/moz.build @@ -17,6 +17,9 @@ ALLOW_COMPILER_WARNINGS = True FINAL_LIBRARY = 'gkmedias' +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + # The encoder is currently not included. DEFINES['THEORA_DISABLE_ENCODE'] = True diff --git a/media/libvorbis/moz.build b/media/libvorbis/moz.build index 1d42d5ff1..0bc180909 100644 --- a/media/libvorbis/moz.build +++ b/media/libvorbis/moz.build @@ -47,6 +47,9 @@ if CONFIG['OS_ARCH'] == 'AIX': if CONFIG['OS_ARCH'] == 'SunOS': DEFINES['HAVE_ALLOCA_H'] = True +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + # We allow warnings for third-party code that can be updated from upstream. ALLOW_COMPILER_WARNINGS = True diff --git a/media/libvpx/moz.build b/media/libvpx/moz.build index 3e24eb14c..1630f6da4 100644 --- a/media/libvpx/moz.build +++ b/media/libvpx/moz.build @@ -62,6 +62,9 @@ if 'vp8/encoder/arm/armv5te/boolhuff_armv5te.asm' not in arm_asm_files: 'vp8/encoder/boolhuff.c', ] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + # We allow warnings for third-party code that can be updated from upstream. ALLOW_COMPILER_WARNINGS = True diff --git a/media/mtransport/build/moz.build b/media/mtransport/build/moz.build index 4bac8210f..a5fdef5dd 100644 --- a/media/mtransport/build/moz.build +++ b/media/mtransport/build/moz.build @@ -32,4 +32,7 @@ include('../common.build') # nr_socket_short_term_violation_time. SOURCES += mtransport_cppsrcs +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + FINAL_LIBRARY = 'xul' diff --git a/modules/brotli/moz.build b/modules/brotli/moz.build index 95445ce5b..b2b87b40a 100644 --- a/modules/brotli/moz.build +++ b/modules/brotli/moz.build @@ -25,6 +25,9 @@ SOURCES += [ 'dec/state.c', ] +if CONFIG['GKMEDIAS_SHARED_LIBRARY']: + NO_VISIBILITY_FLAGS = True + # We allow warnings for third-party code that can be updated from upstream. ALLOW_COMPILER_WARNINGS = True @@ -36,6 +39,8 @@ CFLAGS += ['-DBROTLI_BUILD_PORTABLE'] Library('brotli') +FINAL_LIBRARY = 'gkmedias' + HostProgram('brotli') HOST_SOURCES += SOURCES diff --git a/old-configure.in b/old-configure.in index ade675e95..07b8535c8 100644 --- a/old-configure.in +++ b/old-configure.in @@ -4614,8 +4614,16 @@ dnl = dnl ======================================================== MOZ_ARG_HEADER(Static build options) +if test "$OS_ARCH" = "WINNT"; then + GKMEDIAS_SHARED_LIBRARY=1 +fi +if test -n "$GKMEDIAS_SHARED_LIBRARY"; then + AC_DEFINE(GKMEDIAS_SHARED_LIBRARY) +fi +AC_SUBST(GKMEDIAS_SHARED_LIBRARY) + if test -z "$MOZ_SYSTEM_ZLIB"; then -if test -n "$JS_SHARED_LIBRARY"; then +if test -n "$JS_SHARED_LIBRARY" -o "$GKMEDIAS_SHARED_LIBRARY"; then ZLIB_IN_MOZGLUE=1 AC_DEFINE(ZLIB_IN_MOZGLUE) fi |