diff --git a/config/rules.mk b/config/rules.mk index d7cbf60987..2078a5160c 100644 --- a/config/rules.mk +++ b/config/rules.mk @@ -411,6 +411,10 @@ EXTRA_DSO_LDOPTS += -Wl,--version-script,$(SYMBOLS_FILE) else ifeq ($(OS_TARGET),Darwin) EXTRA_DSO_LDOPTS += -Wl,-exported_symbols_list,$(SYMBOLS_FILE) +else +ifeq ($(OS_TARGET),SunOS) +EXTRA_DSO_LDOPTS += -Wl,-M,$(SYMBOLS_FILE) +endif endif endif endif diff --git a/dom/base/EventSource.cpp b/dom/base/EventSource.cpp index 06cabc3098..32329098e2 100644 --- a/dom/base/EventSource.cpp +++ b/dom/base/EventSource.cpp @@ -190,6 +190,7 @@ public: bool IsClosed() { + MutexAutoLock lock(mMutex); return ReadyState() == CLOSED; } diff --git a/old-configure.in b/old-configure.in index f949285e22..3093858a43 100644 --- a/old-configure.in +++ b/old-configure.in @@ -5579,7 +5579,14 @@ ac_configure_args="$_SUBDIR_CONFIG_ARGS" # --with-system-nspr will have been converted into the relevant $NSPR_CFLAGS # and $NSPR_LIBS. -ac_configure_args="`echo $ac_configure_args | sed -e 's/--with-system-nspr\S* *//'`" +case "${OS_TARGET}" in + Darwin|DragonFly|FreeBSD|NetBSD|OpenBSD) + ac_configure_args="`echo $ac_configure_args | sed -e 's/--with-system-nspr[^[:space:]]* *//'`" + ;; + *) + ac_configure_args="`echo $ac_configure_args | ${TOOLCHAIN_PREFIX}sed -e 's/--with-system-nspr\S* *//'`" + ;; +esac if test -n "$NSPR_CFLAGS" -o -n "$NSPR_LIBS"; then ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'" diff --git a/python/mozbuild/mozbuild/action/generate_symbols_file.py b/python/mozbuild/mozbuild/action/generate_symbols_file.py index ff6136bb14..3eebf324cc 100644 --- a/python/mozbuild/mozbuild/action/generate_symbols_file.py +++ b/python/mozbuild/mozbuild/action/generate_symbols_file.py @@ -83,6 +83,20 @@ def generate_symbols_file(output, *args): # }; output.write('{\nglobal:\n %s;\nlocal:\n *;\n};' % ';\n '.join(symbols)) + elif buildconfig.substs['OS_TARGET'] == 'SunOS': + # A linker version script is generated for Sun LD that looks like the + # following: + # $mapfile_version 2 + # SYMBOL_VERSION SUNW_1.1 { + # global: + # symbol1; + # symbol2; + # ... + # local: + # *; + # }; + output.write('$mapfile_version 2\nSYMBOL_VERSION SUNW_1.1 {\nglobal:\n %s;\nlocal:\n *;\n};' + % ';\n '.join(symbols)) elif buildconfig.substs['OS_TARGET'] == 'Darwin': # A list of symbols is generated for Apple ld that simply lists all # symbols, with an underscore prefix.