Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b66e1a3

Browse files
committed
Allow the shared library initialization routine to be overridden with an initialize=xxx argument.
Should fix #492465.
1 parent dc74568 commit b66e1a3

4 files changed

Lines changed: 10 additions & 5 deletions

File tree

Mac/Lib/mkcwproject/cwxmlgen.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ def _adddefaults(self, dict):
5353
dict['stdlibraryflags'] = 'Debug'
5454
if not dict.has_key('libraryflags'):
5555
dict['libraryflags'] = 'Debug'
56+
if not dict.has_key('initialize'):
57+
dict['initialize'] = '__initialize'
5658
if not dict.has_key('mac_sysprefixtype'):
5759
if os.path.isabs(dict['sysprefix']):
5860
dict['mac_sysprefixtype'] = 'Absolute'

Mac/Lib/mkcwproject/template-carbon/template.prj.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@
558558
<SETTING><NAME>MWLinker_PPC_dontdeadstripinitcode</NAME><VALUE>0</VALUE></SETTING>
559559
<SETTING><NAME>MWLinker_PPC_permitmultdefs</NAME><VALUE>0</VALUE></SETTING>
560560
<SETTING><NAME>MWLinker_PPC_linkmode</NAME><VALUE>Fast</VALUE></SETTING>
561-
<SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE>__initialize</VALUE></SETTING>
561+
<SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE>%(initialize)s</VALUE></SETTING>
562562
<SETTING><NAME>MWLinker_PPC_mainname</NAME><VALUE></VALUE></SETTING>
563563
<SETTING><NAME>MWLinker_PPC_termname</NAME><VALUE>__terminate</VALUE></SETTING>
564564

Mac/Lib/mkcwproject/template-ppc/template.prj.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,7 @@
549549
<SETTING><NAME>MWLinker_PPC_dontdeadstripinitcode</NAME><VALUE>0</VALUE></SETTING>
550550
<SETTING><NAME>MWLinker_PPC_permitmultdefs</NAME><VALUE>0</VALUE></SETTING>
551551
<SETTING><NAME>MWLinker_PPC_linkmode</NAME><VALUE>Fast</VALUE></SETTING>
552-
<SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE>__initialize</VALUE></SETTING>
552+
<SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE>%(initialize)s</VALUE></SETTING>
553553
<SETTING><NAME>MWLinker_PPC_mainname</NAME><VALUE></VALUE></SETTING>
554554
<SETTING><NAME>MWLinker_PPC_termname</NAME><VALUE>__terminate</VALUE></SETTING>
555555

Mac/scripts/genpluginprojects.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,17 @@ def genpluginproject(architecture, module,
3636
sources=[], sourcedirs=[],
3737
libraries=[], extradirs=[],
3838
extraexportsymbols=[], outputdir=":::Lib:lib-dynload",
39-
libraryflags=None, stdlibraryflags=None, prefixname=None):
39+
libraryflags=None, stdlibraryflags=None, prefixname=None,
40+
initialize=None):
4041
if architecture == "all":
4142
# For the time being we generate two project files. Not as nice as
4243
# a single multitarget project, but easier to implement for now.
4344
genpluginproject("ppc", module, project, projectdir, sources, sourcedirs,
4445
libraries, extradirs, extraexportsymbols, outputdir, libraryflags,
45-
stdlibraryflags, prefixname)
46+
stdlibraryflags, prefixname, initialize)
4647
genpluginproject("carbon", module, project, projectdir, sources, sourcedirs,
4748
libraries, extradirs, extraexportsymbols, outputdir, libraryflags,
48-
stdlibraryflags, prefixname)
49+
stdlibraryflags, prefixname, initialize)
4950
return
5051
templatename = "template-%s" % architecture
5152
targetname = "%s.%s" % (module, architecture)
@@ -99,6 +100,8 @@ def genpluginproject(architecture, module,
99100
dict['libraryflags'] = libraryflags
100101
if stdlibraryflags:
101102
dict['stdlibraryflags'] = stdlibraryflags
103+
if initialize:
104+
dict['initialize'] = initialize
102105
mkcwproject.mkproject(os.path.join(projectdir, project), module, dict,
103106
force=FORCEREBUILD, templatename=templatename)
104107

0 commit comments

Comments
 (0)