diff options
-rw-r--r-- | config/rules.mk | 4 | ||||
-rw-r--r-- | python/mozbuild/mozbuild/action/generate_symbols_file.py | 14 |
2 files changed, 18 insertions, 0 deletions
diff --git a/config/rules.mk b/config/rules.mk index b2fafc5762..b774063699 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/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. |