| Index: pylib/gyp/generator/ninja.py | 
| =================================================================== | 
| --- pylib/gyp/generator/ninja.py	(revision 1702) | 
| +++ pylib/gyp/generator/ninja.py	(working copy) | 
| @@ -1057,8 +1057,10 @@ | 
| extra_bindings.append(('implibflag', | 
| '/IMPLIB:%s' % self.target.import_lib)) | 
| output = [output, self.target.import_lib] | 
| +      elif not self.is_mac_bundle: | 
| +        output = [output, output + '.TOC'] | 
| else: | 
| -        output = [output, output + '.TOC'] | 
| +        command = command + '_notoc' | 
|  | 
| if len(solibs): | 
| extra_bindings.append(('solibs', gyp.common.EncodePOSIXShellList(solibs))) | 
| @@ -1875,6 +1877,7 @@ | 
|  | 
| # Record the public interface of $lib in $lib.TOC. See the corresponding | 
| # comment in the posix section above for details. | 
| +    solink_base = '$ld -shared $ldflags -o $lib %(suffix)s' | 
| mtime_preserving_solink_base = ( | 
| 'if [ ! -e $lib -o ! -e ${lib}.TOC ] || ' | 
| # Always force dependent targets to relink if this library | 
| @@ -1888,27 +1891,40 @@ | 
| 'mv ${lib}.tmp ${lib}.TOC ; ' | 
| 'fi; ' | 
| 'fi' | 
| -        % { 'solink': '$ld -shared $ldflags -o $lib %(suffix)s', | 
| +        % { 'solink': solink_base, | 
| 'extract_toc': | 
| '{ otool -l $lib | grep LC_ID_DYLIB -A 5; ' | 
| 'nm -gP $lib | cut -f1-2 -d\' \' | grep -v U$$; true; }'}) | 
|  | 
| # TODO(thakis): The solink_module rule is likely wrong. Xcode seems to pass | 
| # -bundle -single_module here (for osmesa.so). | 
| +    solink_suffix = '$in $solibs $libs$postbuilds' | 
| master_ninja.rule( | 
| 'solink', | 
| description='SOLINK $lib, POSTBUILDS', | 
| restat=True, | 
| -      command=(mtime_preserving_solink_base % { | 
| -          'suffix': '$in $solibs $libs$postbuilds'}), | 
| +      command=mtime_preserving_solink_base % {'suffix':solink_suffix}, | 
| pool='link_pool') | 
| master_ninja.rule( | 
| +      'solink_notoc', | 
| +      description='SOLINK $lib, POSTBUILDS', | 
| +      restat=True, | 
| +      command=solink_base % {'suffix':solink_suffix}, | 
| +      pool='link_pool') | 
| + | 
| +    solink_module_suffix = '$in $solibs $libs$postbuilds' | 
| +    master_ninja.rule( | 
| 'solink_module', | 
| description='SOLINK(module) $lib, POSTBUILDS', | 
| restat=True, | 
| -      command=(mtime_preserving_solink_base % { | 
| -          'suffix': '$in $solibs $libs$postbuilds'}), | 
| +      command=mtime_preserving_solink_base % {'suffix':solink_module_suffix}, | 
| pool='link_pool') | 
| +    master_ninja.rule( | 
| +      'solink_module_notoc', | 
| +      description='SOLINK(module) $lib, POSTBUILDS', | 
| +      restat=True, | 
| +      command=solink_base % {'suffix':solink_module_suffix}, | 
| +      pool='link_pool') | 
|  | 
| master_ninja.rule( | 
| 'link', | 
|  |