Allow the shared library initialization routine to be overridden with an initialize=xxx argument.
Should fix #492465.
This commit is contained in:
parent
dc74568782
commit
b66e1a3dd2
|
@ -53,6 +53,8 @@ class ProjectBuilder:
|
|||
dict['stdlibraryflags'] = 'Debug'
|
||||
if not dict.has_key('libraryflags'):
|
||||
dict['libraryflags'] = 'Debug'
|
||||
if not dict.has_key('initialize'):
|
||||
dict['initialize'] = '__initialize'
|
||||
if not dict.has_key('mac_sysprefixtype'):
|
||||
if os.path.isabs(dict['sysprefix']):
|
||||
dict['mac_sysprefixtype'] = 'Absolute'
|
||||
|
|
|
@ -558,7 +558,7 @@
|
|||
<SETTING><NAME>MWLinker_PPC_dontdeadstripinitcode</NAME><VALUE>0</VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_permitmultdefs</NAME><VALUE>0</VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_linkmode</NAME><VALUE>Fast</VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE>__initialize</VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE>%(initialize)s</VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_mainname</NAME><VALUE></VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_termname</NAME><VALUE>__terminate</VALUE></SETTING>
|
||||
|
||||
|
|
|
@ -549,7 +549,7 @@
|
|||
<SETTING><NAME>MWLinker_PPC_dontdeadstripinitcode</NAME><VALUE>0</VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_permitmultdefs</NAME><VALUE>0</VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_linkmode</NAME><VALUE>Fast</VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE>__initialize</VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE>%(initialize)s</VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_mainname</NAME><VALUE></VALUE></SETTING>
|
||||
<SETTING><NAME>MWLinker_PPC_termname</NAME><VALUE>__terminate</VALUE></SETTING>
|
||||
|
||||
|
|
|
@ -36,16 +36,17 @@ def genpluginproject(architecture, module,
|
|||
sources=[], sourcedirs=[],
|
||||
libraries=[], extradirs=[],
|
||||
extraexportsymbols=[], outputdir=":::Lib:lib-dynload",
|
||||
libraryflags=None, stdlibraryflags=None, prefixname=None):
|
||||
libraryflags=None, stdlibraryflags=None, prefixname=None,
|
||||
initialize=None):
|
||||
if architecture == "all":
|
||||
# For the time being we generate two project files. Not as nice as
|
||||
# a single multitarget project, but easier to implement for now.
|
||||
genpluginproject("ppc", module, project, projectdir, sources, sourcedirs,
|
||||
libraries, extradirs, extraexportsymbols, outputdir, libraryflags,
|
||||
stdlibraryflags, prefixname)
|
||||
stdlibraryflags, prefixname, initialize)
|
||||
genpluginproject("carbon", module, project, projectdir, sources, sourcedirs,
|
||||
libraries, extradirs, extraexportsymbols, outputdir, libraryflags,
|
||||
stdlibraryflags, prefixname)
|
||||
stdlibraryflags, prefixname, initialize)
|
||||
return
|
||||
templatename = "template-%s" % architecture
|
||||
targetname = "%s.%s" % (module, architecture)
|
||||
|
@ -99,6 +100,8 @@ def genpluginproject(architecture, module,
|
|||
dict['libraryflags'] = libraryflags
|
||||
if stdlibraryflags:
|
||||
dict['stdlibraryflags'] = stdlibraryflags
|
||||
if initialize:
|
||||
dict['initialize'] = initialize
|
||||
mkcwproject.mkproject(os.path.join(projectdir, project), module, dict,
|
||||
force=FORCEREBUILD, templatename=templatename)
|
||||
|
||||
|
|
Loading…
Reference in New Issue