@@ -87,10 +87,11 @@ func isConstructor(sig *types.Signature) bool {
8787}
8888
8989type PyConfig struct {
90- Version int
91- CFlags string
92- LdFlags string
93- ExtSuffix string
90+ Version int
91+ CFlags string
92+ LdFlags string
93+ LdDynamicFlags string
94+ ExtSuffix string
9495}
9596
9697// AllFlags returns CFlags + " " + LdFlags
@@ -107,6 +108,12 @@ import json
107108import os
108109version=sys.version_info.major
109110
111+ def clear_ld_flags(s):
112+ skip_first_word = s.split(' ', 1)[1] # skip compiler name
113+ skip_bundle = skip_first_word.replace('-bundle', '') # cgo already passes -dynamiclib
114+ return skip_bundle
115+
116+
110117if "GOPY_INCLUDE" in os.environ and "GOPY_LIBDIR" in os.environ and "GOPY_PYLIB" in os.environ:
111118 print(json.dumps({
112119 "version": version,
@@ -117,6 +124,7 @@ if "GOPY_INCLUDE" in os.environ and "GOPY_LIBDIR" in os.environ and "GOPY_PYLIB"
117124 "shlibs": ds.get_config_var("SHLIBS"),
118125 "syslibs": ds.get_config_var("SYSLIBS"),
119126 "shlinks": ds.get_config_var("LINKFORSHARED"),
127+ "shflags": clear_ld_flags(ds.get_config_var("LDSHARED")),
120128 "extsuffix": ds.get_config_var("EXT_SUFFIX"),
121129}))
122130else:
@@ -129,6 +137,7 @@ else:
129137 "shlibs": ds.get_config_var("SHLIBS"),
130138 "syslibs": ds.get_config_var("SYSLIBS"),
131139 "shlinks": ds.get_config_var("LINKFORSHARED"),
140+ "shflags": clear_ld_flags(ds.get_config_var("LDSHARED")),
132141 "extsuffix": ds.get_config_var("EXT_SUFFIX"),
133142}))
134143`
@@ -158,6 +167,7 @@ else:
158167 ShLibs string `json:"shlibs"`
159168 SysLibs string `json:"syslibs"`
160169 ExtSuffix string `json:"extsuffix"`
170+ ShFlags string `json:"shflags"`
161171 }
162172 err = json .NewDecoder (buf ).Decode (& raw )
163173 if err != nil {
@@ -199,6 +209,7 @@ else:
199209 raw .ShLibs ,
200210 raw .SysLibs ,
201211 }, " " )
212+ cfg .LdDynamicFlags = raw .ShFlags
202213
203214 return cfg , nil
204215}
0 commit comments