summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/moz.build3
-rw-r--r--config/system-headers16
-rw-r--r--dom/media/gmp/moz.build3
-rwxr-xr-xgfx/angle/moz.build8
-rw-r--r--gfx/graphite2/src/moz.build10
-rw-r--r--gfx/ots/src/moz.build7
-rw-r--r--gfx/qcms/moz.build5
-rwxr-xr-xgfx/skia/generate_mozbuild.py4
-rw-r--r--gfx/skia/moz.build6
-rw-r--r--gfx/skia/skia/include/utils/SkPaintFilterCanvas.h2
-rw-r--r--gfx/skia/skia/src/core/SkCanvas.cpp4
-rw-r--r--gfx/skia/skia/src/ports/SkTypeface_win_dw.cpp2
-rw-r--r--gfx/thebes/moz.build3
-rw-r--r--layout/media/Makefile.in11
-rw-r--r--layout/media/moz.build17
-rw-r--r--layout/media/symbols.def.in661
-rw-r--r--media/libaom/moz.build3
-rw-r--r--media/libcubeb/src/moz.build3
-rw-r--r--media/libjpeg/moz.build3
-rw-r--r--media/libmkv/moz.build3
-rw-r--r--media/libnestegg/src/moz.build3
-rw-r--r--media/libogg/moz.build3
-rw-r--r--media/libopus/moz.build6
-rw-r--r--media/libpng/moz.build3
-rw-r--r--media/libspeex_resampler/src/moz.build4
-rw-r--r--media/libtheora/moz.build3
-rw-r--r--media/libvorbis/moz.build3
-rw-r--r--media/libvpx/moz.build3
-rw-r--r--media/mtransport/build/moz.build3
-rw-r--r--modules/brotli/moz.build5
-rw-r--r--old-configure.in10
31 files changed, 804 insertions, 16 deletions
diff --git a/config/moz.build b/config/moz.build
index fccf5cbcdc..3e95e46d2e 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 0156444284..76c79c9151 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 252bfc4a67..6e9e92e8a5 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 1dbfaf2cee..f12eb6ca5a 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 09ebc0ce61..ecf396e2b0 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 150773db9c..909a2092e8 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 405743606f..9bcbbe63a8 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 08d6ed9ab7..de0a5c52e4 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 56570e61fb..4ef5060b0f 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 63eaaa2fbc..29474df0fb 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 505592d0f2..0a080f737a 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 96a728f600..ca5f01aed2 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 a725ab0247..b84c4a4c68 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 0000000000..86d9b181df
--- /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 8fd0eb9a8e..9ea4653198 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 0000000000..80ce13b653
--- /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 72d55cffe1..aedac31022 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 b53dec7998..65aaf7256a 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 866830dad3..6519c30fbd 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 2463bed86c..018ca7474d 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 541e18e041..bf9edcdbc0 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 a4745029e2..abc8d02850 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 3c981e2aad..9ef3949401 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 987c737454..ff4b9e9cb1 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 cad566800a..c8c8db6531 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 5fe30c60b2..0a88d8f92c 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 1d42d5ff19..0bc1809092 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 3e24eb14c4..1630f6da45 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 4bac8210f4..a5fdef5dd6 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 95445ce5b7..b2b87b40ac 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 ade675e956..07b8535c85 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