Allow the shared library initialization routine to be overridden with an initialize=xxx argument.

Should fix #492465.
This commit is contained in:
Jack Jansen 2002-05-23 22:34:18 +00:00
parent dc74568782
commit b66e1a3dd2
4 changed files with 10 additions and 5 deletions

View File

@ -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'

View File

@ -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>

View File

@ -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>

View File

@ -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)