ccc: Don't be pedantically compatible with -Z options, these are the

result of an internal implementation detail of gcc.

llvm-svn: 62389
This commit is contained in:
Daniel Dunbar 2009-01-17 00:53:19 +00:00
parent 563dc04faa
commit ee5a4a8cce
4 changed files with 87 additions and 92 deletions

View File

@ -525,11 +525,6 @@ class OptionParser:
self.stdOption = self.addOption(JoinedOption('-std=')) self.stdOption = self.addOption(JoinedOption('-std='))
self.addOption(JoinedOrSeparateOption('--sysroot')) self.addOption(JoinedOrSeparateOption('--sysroot'))
# Version control
self.addOption(JoinedOrSeparateOption('-B'))
self.addOption(JoinedOrSeparateOption('-V'))
self.addOption(JoinedOrSeparateOption('-b'))
# Blanket pass-through options. # Blanket pass-through options.
self.WaOption = self.addOption(CommaJoinedOption('-Wa,')) self.WaOption = self.addOption(CommaJoinedOption('-Wa,'))
@ -557,21 +552,22 @@ class OptionParser:
self.undefOption = self.addOption(FlagOption('-undef')) self.undefOption = self.addOption(FlagOption('-undef'))
self.wOption = self.addOption(FlagOption('-w')) self.wOption = self.addOption(FlagOption('-w'))
self.addOption(JoinedOrSeparateOption('-allowable_client')) self.bundle_loaderOption = self.addOption(SeparateOption('-bundle_loader'))
self.bundleOption = self.addOption(FlagOption('-bundle'))
self.client_nameOption = self.addOption(JoinedOrSeparateOption('-client_name')) self.client_nameOption = self.addOption(JoinedOrSeparateOption('-client_name'))
self.compatibility_versionOption = self.addOption(JoinedOrSeparateOption('-compatibility_version')) self.compatibility_versionOption = self.addOption(JoinedOrSeparateOption('-compatibility_version'))
self.current_versionOption = self.addOption(JoinedOrSeparateOption('-current_version')) self.current_versionOption = self.addOption(JoinedOrSeparateOption('-current_version'))
self.dependencyFileOption = self.addOption(SeparateOption('-dependency-file')) self.dependencyFileOption = self.addOption(SeparateOption('-dependency-file'))
self.dylinkerOption = self.addOption(FlagOption('-dylinker')) self.dynamiclibOption = self.addOption(FlagOption('-dynamiclib'))
self.dynamicOption = self.addOption(FlagOption('-dynamic'))
self.dylinker_install_nameOption = self.addOption(JoinedOrSeparateOption('-dylinker_install_name')) self.dylinker_install_nameOption = self.addOption(JoinedOrSeparateOption('-dylinker_install_name'))
self.addOption(JoinedOrSeparateOption('-exported_symbols_list')) self.dylinkerOption = self.addOption(FlagOption('-dylinker'))
self.iGroup = OptionGroup('-i') self.iGroup = OptionGroup('-i')
self.addOption(JoinedOrSeparateOption('-idirafter', self.iGroup)) self.addOption(JoinedOrSeparateOption('-idirafter', self.iGroup))
self.addOption(JoinedOrSeparateOption('-iquote', self.iGroup)) self.addOption(JoinedOrSeparateOption('-iquote', self.iGroup))
self.isysrootOption = self.addOption(JoinedOrSeparateOption('-isysroot', self.iGroup)) self.isysrootOption = self.addOption(JoinedOrSeparateOption('-isysroot', self.iGroup))
self.includeOption = self.addOption(JoinedOrSeparateOption('-include', self.iGroup)) self.includeOption = self.addOption(JoinedOrSeparateOption('-include', self.iGroup))
self.addOption(JoinedOption('-i', self.iGroup))
self.keep_private_externsOption = self.addOption(JoinedOrSeparateOption('-keep_private_externs')) self.keep_private_externsOption = self.addOption(JoinedOrSeparateOption('-keep_private_externs'))
self.private_bundleOption = self.addOption(FlagOption('-private_bundle')) self.private_bundleOption = self.addOption(FlagOption('-private_bundle'))
@ -579,10 +575,8 @@ class OptionParser:
self.segprotOption = self.addOption(JoinedOrSeparateOption('-segprot')) self.segprotOption = self.addOption(JoinedOrSeparateOption('-segprot'))
self.sub_libraryOption = self.addOption(JoinedOrSeparateOption('-sub_library')) self.sub_libraryOption = self.addOption(JoinedOrSeparateOption('-sub_library'))
self.sub_umbrellaOption = self.addOption(JoinedOrSeparateOption('-sub_umbrella')) self.sub_umbrellaOption = self.addOption(JoinedOrSeparateOption('-sub_umbrella'))
self.umbrellaOption = self.addOption(JoinedOrSeparateOption('-umbrella')) self.umbrellaOption = self.addOption(SeparateOption('-umbrella'))
self.undefinedOption = self.addOption(JoinedOrSeparateOption('-undefined')) self.undefinedOption = self.addOption(JoinedOrSeparateOption('-undefined'))
self.addOption(JoinedOrSeparateOption('-unexported_symbols_list'))
self.addOption(JoinedOrSeparateOption('-weak_framework'))
self.headerpad_max_install_namesOption = self.addOption(JoinedOption('-headerpad_max_install_names')) self.headerpad_max_install_namesOption = self.addOption(JoinedOption('-headerpad_max_install_names'))
self.twolevel_namespaceOption = self.addOption(FlagOption('-twolevel_namespace')) self.twolevel_namespaceOption = self.addOption(FlagOption('-twolevel_namespace'))
self.twolevel_namespace_hintsOption = self.addOption(FlagOption('-twolevel_namespace_hints')) self.twolevel_namespace_hintsOption = self.addOption(FlagOption('-twolevel_namespace_hints'))
@ -592,7 +586,6 @@ class OptionParser:
self.prebind_all_twolevel_modulesOption = self.addOption(FlagOption('-prebind_all_twolevel_modules')) self.prebind_all_twolevel_modulesOption = self.addOption(FlagOption('-prebind_all_twolevel_modules'))
self.remapOption = self.addOption(FlagOption('-remap')) self.remapOption = self.addOption(FlagOption('-remap'))
self.read_only_relocsOption = self.addOption(SeparateOption('-read_only_relocs')) self.read_only_relocsOption = self.addOption(SeparateOption('-read_only_relocs'))
self.addOption(FlagOption('-single_module'))
self.nomultidefsOption = self.addOption(FlagOption('-nomultidefs')) self.nomultidefsOption = self.addOption(FlagOption('-nomultidefs'))
self.nostartfilesOption = self.addOption(FlagOption('-nostartfiles')) self.nostartfilesOption = self.addOption(FlagOption('-nostartfiles'))
self.nodefaultlibsOption = self.addOption(FlagOption('-nodefaultlibs')) self.nodefaultlibsOption = self.addOption(FlagOption('-nodefaultlibs'))
@ -612,13 +605,12 @@ class OptionParser:
self.POption = self.addOption(FlagOption('-P')) self.POption = self.addOption(FlagOption('-P'))
self.QOption = self.addOption(FlagOption('-Q')) self.QOption = self.addOption(FlagOption('-Q'))
self.QnOption = self.addOption(FlagOption('-Qn')) self.QnOption = self.addOption(FlagOption('-Qn'))
self.addOption(FlagOption('-all_load'))
self.addOption(FlagOption('--constant-cfstrings')) self.addOption(FlagOption('--constant-cfstrings'))
self.traditionalOption = self.addOption(FlagOption('-traditional')) self.traditionalOption = self.addOption(FlagOption('-traditional'))
self.traditionalCPPOption = self.addOption(FlagOption('-traditional-cpp')) self.traditionalCPPOption = self.addOption(FlagOption('-traditional-cpp'))
# FIXME: Alias. # FIXME: Alias.
self.addOption(FlagOption('--traditional')) self.addOption(FlagOption('--traditional'))
self.addOption(FlagOption('-no_dead_strip_inits_and_terms')) self.no_dead_strip_inits_and_termsOption = self.addOption(FlagOption('-no_dead_strip_inits_and_terms'))
self.addOption(JoinedOption('-weak-l', isLinkerInput=True)) self.addOption(JoinedOption('-weak-l', isLinkerInput=True))
self.addOption(SeparateOption('-weak_framework', isLinkerInput=True)) self.addOption(SeparateOption('-weak_framework', isLinkerInput=True))
self.addOption(SeparateOption('-weak_library', isLinkerInput=True)) self.addOption(SeparateOption('-weak_library', isLinkerInput=True))
@ -627,48 +619,41 @@ class OptionParser:
self.sectalignOption = self.addOption(MultiArgOption('-sectalign', numArgs=3)) self.sectalignOption = self.addOption(MultiArgOption('-sectalign', numArgs=3))
self.sectobjectsymbolsOption = self.addOption(MultiArgOption('-sectobjectsymbols', numArgs=2)) self.sectobjectsymbolsOption = self.addOption(MultiArgOption('-sectobjectsymbols', numArgs=2))
self.segcreateOption = self.addOption(MultiArgOption('-segcreate', numArgs=3)) self.segcreateOption = self.addOption(MultiArgOption('-segcreate', numArgs=3))
self.segs_read_Option = self.addOption(JoinedOption('-segs_read_'))
self.seglinkeditOption = self.addOption(FlagOption('-seglinkedit')) self.seglinkeditOption = self.addOption(FlagOption('-seglinkedit'))
self.noseglinkeditOption = self.addOption(FlagOption('-noseglinkedit')) self.noseglinkeditOption = self.addOption(FlagOption('-noseglinkedit'))
self.sectcreateOption = self.addOption(MultiArgOption('-sectcreate', numArgs=3)) self.sectcreateOption = self.addOption(MultiArgOption('-sectcreate', numArgs=3))
self.sectorderOption = self.addOption(MultiArgOption('-sectorder', numArgs=3)) self.sectorderOption = self.addOption(MultiArgOption('-sectorder', numArgs=3))
self.Zall_loadOption = self.addOption(FlagOption('-Zall_load'))
self.Zallowable_clientOption = self.addOption(SeparateOption('-Zallowable_client')) self.all_loadOption = self.addOption(FlagOption('-all_load'))
self.Zbind_at_loadOption = self.addOption(SeparateOption('-Zbind_at_load')) self.allowable_clientOption = self.addOption(SeparateOption('-allowable_client'))
self.ZbundleOption = self.addOption(FlagOption('-Zbundle')) self.bind_at_loadOption = self.addOption(FlagOption('-bind_at_load'))
self.Zbundle_loaderOption = self.addOption(JoinedOrSeparateOption('-Zbundle_loader')) self.dead_stripOption = self.addOption(FlagOption('-dead_strip'))
self.Zdead_stripOption = self.addOption(FlagOption('-Zdead_strip')) self.dylib_fileOption = self.addOption(SeparateOption('-dylib_file'))
self.Zdylib_fileOption = self.addOption(JoinedOrSeparateOption('-Zdylib_file')) self.exported_symbols_listOption = self.addOption(SeparateOption('-exported_symbols_list'))
self.ZdynamicOption = self.addOption(FlagOption('-Zdynamic')) self.flat_namespaceOption = self.addOption(FlagOption('-flat_namespace'))
self.ZdynamiclibOption = self.addOption(FlagOption('-Zdynamiclib')) self.force_cpusubtype_ALLOption = self.addOption(FlagOption('-force_cpusubtype_ALL'))
self.Zexported_symbols_listOption = self.addOption(JoinedOrSeparateOption('-Zexported_symbols_list')) self.force_flat_namespaceOption = self.addOption(FlagOption('-force_flat_namespace'))
self.Zflat_namespaceOption = self.addOption(FlagOption('-Zflat_namespace')) self.image_baseOption = self.addOption(FlagOption('-image_base'))
self.Zfn_seg_addr_table_filenameOption = self.addOption(JoinedOrSeparateOption('-Zfn_seg_addr_table_filename')) self.initOption = self.addOption(SeparateOption('-init'))
self.Zforce_cpusubtype_ALLOption = self.addOption(FlagOption('-Zforce_cpusubtype_ALL')) self.install_nameOption = self.addOption(SeparateOption('-install_name'))
self.Zforce_flat_namespaceOption = self.addOption(FlagOption('-Zforce_flat_namespace')) self.multi_moduleOption = self.addOption(FlagOption('-multi_module'))
self.Zimage_baseOption = self.addOption(FlagOption('-Zimage_base')) self.multiply_definedOption = self.addOption(SeparateOption('-multiply_defined'))
self.ZinitOption = self.addOption(JoinedOrSeparateOption('-Zinit')) self.multiply_defined_unusedOption = self.addOption(SeparateOption('-multiply_defined_unused'))
self.Zmulti_moduleOption = self.addOption(FlagOption('-Zmulti_module')) self.seg_addr_table_filenameOption = self.addOption(SeparateOption('-seg_addr_table_filename'))
self.Zmultiply_definedOption = self.addOption(JoinedOrSeparateOption('-Zmultiply_defined')) self.seg_addr_tableOption = self.addOption(SeparateOption('-seg_addr_table'))
self.ZmultiplydefinedunusedOption = self.addOption(JoinedOrSeparateOption('-Zmultiplydefinedunused')) self.segaddrOption = self.addOption(SeparateOption('-segaddr'))
self.ZmultiplydefinedunusedOption = self.addOption(JoinedOrSeparateOption('-Zmultiplydefinedunused')) self.segs_read_only_addrOption = self.addOption(SeparateOption('-segs_read_only_addr'))
self.Zno_dead_strip_inits_and_termsOption = self.addOption(FlagOption('-Zno_dead_strip_inits_and_terms')) self.segs_read_write_addrOption = self.addOption(SeparateOption('-segs_read_write_addr'))
self.Zseg_addr_tableOption = self.addOption(JoinedOrSeparateOption('-Zseg_addr_table')) # FIXME: This probably isn't necessary.
self.ZsegaddrOption = self.addOption(JoinedOrSeparateOption('-Zsegaddr')) self.segs_read_Option = self.addOption(JoinedOption('-segs_read_'))
self.Zsegs_read_only_addrOption = self.addOption(JoinedOrSeparateOption('-Zsegs_read_only_addr')) self.single_moduleOption = self.addOption(FlagOption('-single_module'))
self.Zsegs_read_write_addrOption = self.addOption(JoinedOrSeparateOption('-Zsegs_read_write_addr')) self.unexported_symbols_listOption = self.addOption(SeparateOption('-unexported_symbols_list'))
self.Zsingle_moduleOption = self.addOption(FlagOption('-Zsingle_module')) self.weak_reference_mismatchesOption = self.addOption(SeparateOption('-weak_reference_mismatches'))
self.ZumbrellaOption = self.addOption(JoinedOrSeparateOption('-Zumbrella'))
self.Zunexported_symbols_listOption = self.addOption(JoinedOrSeparateOption('-Zunexported_symbols_list'))
self.Zweak_reference_mismatchesOption = self.addOption(JoinedOrSeparateOption('-Zweak_reference_mismatches'))
self.addOption(SeparateOption('-filelist', isLinkerInput=True)) self.addOption(SeparateOption('-filelist', isLinkerInput=True))
self.addOption(SeparateOption('-framework', isLinkerInput=True)) self.addOption(SeparateOption('-framework', isLinkerInput=True))
# FIXME: Alias.
self.addOption(SeparateOption('-install_name')) self.addOption(JoinedOption('-i', self.iGroup))
self.Zinstall_nameOption = self.addOption(JoinedOrSeparateOption('-Zinstall_name'))
self.addOption(SeparateOption('-seg_addr_table'))
self.addOption(SeparateOption('-seg_addr_table_filename'))
# Where are these coming from? I can't find them... # Where are these coming from? I can't find them...
self.eOption = self.addOption(JoinedOrSeparateOption('-e')) self.eOption = self.addOption(JoinedOrSeparateOption('-e'))
@ -838,6 +823,11 @@ class OptionParser:
self.pthreadOption = self.addOption(FlagOption('-pthread')) self.pthreadOption = self.addOption(FlagOption('-pthread'))
self.addOption(FlagOption('-pthreads')) self.addOption(FlagOption('-pthreads'))
# Version control
self.addOption(JoinedOrSeparateOption('-B'))
self.addOption(JoinedOrSeparateOption('-V'))
self.addOption(JoinedOrSeparateOption('-b'))
def addOption(self, opt): def addOption(self, opt):
self.options.append(opt) self.options.append(opt)
return opt return opt

View File

@ -399,6 +399,11 @@ class Driver(object):
if hasCombine: if hasCombine:
raise NotImplementedError,"-combine is not yet supported" raise NotImplementedError,"-combine is not yet supported"
# Reject -Z* at the top level for now.
arg = args.getLastArg(self.parser.ZOption)
if arg:
raise Arguments.InvalidArgumentsError("%s: unsupported use of internal gcc option" % ' '.join(args.render(arg)))
if (not inputs and if (not inputs and
not args.getLastArg(self.parser.hashHashHashOption)): not args.getLastArg(self.parser.hashHashHashOption)):
raise Arguments.InvalidArgumentsError("no input files") raise Arguments.InvalidArgumentsError("no input files")

View File

@ -132,7 +132,7 @@ class Darwin_AssembleTool(Tool):
if (arglist.getLastArg(arglist.parser.m_kernelOption) or if (arglist.getLastArg(arglist.parser.m_kernelOption) or
arglist.getLastArg(arglist.parser.staticOption) or arglist.getLastArg(arglist.parser.staticOption) or
arglist.getLastArg(arglist.parser.f_appleKextOption)): arglist.getLastArg(arglist.parser.f_appleKextOption)):
if not arglist.getLastArg(arglist.parser.ZdynamicOption): if not arglist.getLastArg(arglist.parser.dynamicOption):
cmd_args.append('-static') cmd_args.append('-static')
for arg in arglist.getArgs2(arglist.parser.WaOption, for arg in arglist.getArgs2(arglist.parser.WaOption,
@ -291,7 +291,7 @@ class Darwin_X86_CompileTool(Tool):
# The gcc spec is broken here, it refers to dynamic but # The gcc spec is broken here, it refers to dynamic but
# that has been translated. Start by being bug compatible. # that has been translated. Start by being bug compatible.
# if not arglist.getLastArg(arglist.parser.ZdynamicOption): # if not arglist.getLastArg(arglist.parser.dynamicOption):
cmd_args.append('-D__STATIC__') cmd_args.append('-D__STATIC__')
else: else:
cmd_args.append('-D__DYNAMIC__') cmd_args.append('-D__DYNAMIC__')
@ -627,16 +627,16 @@ class Darwin_X86_LinkTool(Tool):
# -lobjc-gnu. How do we wish to handle such things? # -lobjc-gnu. How do we wish to handle such things?
pass pass
if not arglist.getLastArg(arglist.parser.ZdynamiclibOption): if not arglist.getLastArg(arglist.parser.dynamiclibOption):
if arglist.getLastArg(arglist.parser.Zforce_cpusubtype_ALLOption): if arglist.getLastArg(arglist.parser.force_cpusubtype_ALLOption):
self.addDarwinArch(cmd_args, arch, arglist) self.addDarwinArch(cmd_args, arch, arglist)
cmd_args.append('-force_cpusubtype_all') cmd_args.append('-force_cpusubtype_all')
else: else:
self.addDarwinSubArch(cmd_args, arch, arglist) self.addDarwinSubArch(cmd_args, arch, arglist)
if arglist.getLastArg(arglist.parser.ZbundleOption): if arglist.getLastArg(arglist.parser.bundleOption):
cmd_args.append('-bundle') cmd_args.append('-bundle')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zbundle_loaderOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.bundle_loaderOption,
'-bundle_loader') '-bundle_loader')
arglist.addAllArgs(cmd_args, arglist.parser.client_nameOption) arglist.addAllArgs(cmd_args, arglist.parser.client_nameOption)
if arglist.getLastArg(arglist.parser.compatibility_versionOption): if arglist.getLastArg(arglist.parser.compatibility_versionOption):
@ -646,19 +646,19 @@ class Darwin_X86_LinkTool(Tool):
if arglist.getLastArg(arglist.parser.current_versionOption): if arglist.getLastArg(arglist.parser.current_versionOption):
print >>sys.stderr, "-current_version only allowed with -dynamiclib" print >>sys.stderr, "-current_version only allowed with -dynamiclib"
sys.exit(1) sys.exit(1)
if arglist.getLastArg(arglist.parser.Zforce_flat_namespaceOption): if arglist.getLastArg(arglist.parser.force_flat_namespaceOption):
cmd_args.append('-force_flat_namespace') cmd_args.append('-force_flat_namespace')
if arglist.getLastArg(arglist.parser.Zinstall_nameOption): if arglist.getLastArg(arglist.parser.install_nameOption):
print >>sys.stderr, "-install_name only allowed with -dynamiclib" print >>sys.stderr, "-install_name only allowed with -dynamiclib"
sys.exit(1) sys.exit(1)
arglist.addLastArg(cmd_args, arglist.parser.keep_private_externsOption) arglist.addLastArg(cmd_args, arglist.parser.keep_private_externsOption)
arglist.addLastArg(cmd_args, arglist.parser.private_bundleOption) arglist.addLastArg(cmd_args, arglist.parser.private_bundleOption)
else: else:
cmd_args.append('-dylib') cmd_args.append('-dylib')
if arglist.getLastArg(arglist.parser.ZbundleOption): if arglist.getLastArg(arglist.parser.bundleOption):
print >>sys.stderr, "-bundle not allowed with -dynamiclib" print >>sys.stderr, "-bundle not allowed with -dynamiclib"
sys.exit(1) sys.exit(1)
if arglist.getLastArg(arglist.parser.Zbundle_loaderOption): if arglist.getLastArg(arglist.parser.bundle_loaderOption):
print >>sys.stderr, "-bundle_loader not allowed with -dynamiclib" print >>sys.stderr, "-bundle_loader not allowed with -dynamiclib"
sys.exit(1) sys.exit(1)
if arglist.getLastArg(arglist.parser.client_nameOption): if arglist.getLastArg(arglist.parser.client_nameOption):
@ -669,17 +669,17 @@ class Darwin_X86_LinkTool(Tool):
arglist.addAllArgsTranslated(cmd_args, arglist.parser.current_versionOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.current_versionOption,
'-dylib_current_version') '-dylib_current_version')
if arglist.getLastArg(arglist.parser.Zforce_cpusubtype_ALLOption): if arglist.getLastArg(arglist.parser.force_cpusubtype_ALLOption):
self.addDarwinArch(cmd_args, arch, arglist) self.addDarwinArch(cmd_args, arch, arglist)
# NOTE: We don't add -force_cpusubtype_ALL on this path. Ok. # NOTE: We don't add -force_cpusubtype_ALL on this path. Ok.
else: else:
self.addDarwinSubArch(cmd_args, arch, arglist) self.addDarwinSubArch(cmd_args, arch, arglist)
if arglist.getLastArg(arglist.parser.Zforce_flat_namespaceOption): if arglist.getLastArg(arglist.parser.force_flat_namespaceOption):
print >>sys.stderr, "-force_flat_namespace not allowed with -dynamiclib" print >>sys.stderr, "-force_flat_namespace not allowed with -dynamiclib"
sys.exit(1) sys.exit(1)
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zinstall_nameOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.install_nameOption,
'-dylib_install_name') '-dylib_install_name')
if arglist.getLastArg(arglist.parser.keep_private_externsOption): if arglist.getLastArg(arglist.parser.keep_private_externsOption):
@ -689,37 +689,37 @@ class Darwin_X86_LinkTool(Tool):
print >>sys.stderr, "-private_bundle not allowed with -dynamiclib" print >>sys.stderr, "-private_bundle not allowed with -dynamiclib"
sys.exit(1) sys.exit(1)
if arglist.getLastArg(arglist.parser.Zall_loadOption): if arglist.getLastArg(arglist.parser.all_loadOption):
cmd_args.append('-all_load') cmd_args.append('-all_load')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zallowable_clientOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.allowable_clientOption,
'-allowable_client') '-allowable_client')
if arglist.getLastArg(arglist.parser.Zbind_at_loadOption): if arglist.getLastArg(arglist.parser.bind_at_loadOption):
cmd_args.append('-bind_at_load') cmd_args.append('-bind_at_load')
if arglist.getLastArg(arglist.parser.Zdead_stripOption): if arglist.getLastArg(arglist.parser.dead_stripOption):
cmd_args.append('-dead_strip') cmd_args.append('-dead_strip')
if arglist.getLastArg(arglist.parser.Zno_dead_strip_inits_and_termsOption): if arglist.getLastArg(arglist.parser.no_dead_strip_inits_and_termsOption):
cmd_args.append('-no_dead_strip_inits_and_terms') cmd_args.append('-no_dead_strip_inits_and_terms')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zdylib_fileOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.dylib_fileOption,
'-dylib_file') '-dylib_file')
if arglist.getLastArg(arglist.parser.ZdynamicOption): if arglist.getLastArg(arglist.parser.dynamicOption):
cmd_args.append('-dynamic') cmd_args.append('-dynamic')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zexported_symbols_listOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.exported_symbols_listOption,
'-exported_symbols_list') '-exported_symbols_list')
if arglist.getLastArg(arglist.parser.Zflat_namespaceOption): if arglist.getLastArg(arglist.parser.flat_namespaceOption):
cmd_args.append('-flat_namespace') cmd_args.append('-flat_namespace')
arglist.addAllArgs(cmd_args, arglist.parser.headerpad_max_install_namesOption) arglist.addAllArgs(cmd_args, arglist.parser.headerpad_max_install_namesOption)
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zimage_baseOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.image_baseOption,
'-image_base') '-image_base')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.ZinitOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.initOption,
'-init') '-init')
if not arglist.getLastArg(arglist.parser.m_macosxVersionMinOption): if not arglist.getLastArg(arglist.parser.m_macosxVersionMinOption):
@ -741,16 +741,16 @@ class Darwin_X86_LinkTool(Tool):
'-iphoneos_version_min') '-iphoneos_version_min')
arglist.addLastArg(cmd_args, arglist.parser.nomultidefsOption) arglist.addLastArg(cmd_args, arglist.parser.nomultidefsOption)
if arglist.getLastArg(arglist.parser.Zmulti_moduleOption): if arglist.getLastArg(arglist.parser.multi_moduleOption):
cmd_args.append('-multi_module') cmd_args.append('-multi_module')
if arglist.getLastArg(arglist.parser.Zsingle_moduleOption): if arglist.getLastArg(arglist.parser.single_moduleOption):
cmd_args.append('-single_module') cmd_args.append('-single_module')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zmultiply_definedOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.multiply_definedOption,
'-multiply_defined') '-multiply_defined')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.ZmultiplydefinedunusedOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.multiply_defined_unusedOption,
'-multiply_defined_unused') '-multiply_defined_unused')
if arglist.getLastArg(arglist.parser.f_pieOption): if arglist.getLastArg(arglist.parser.f_pieOption):
@ -765,31 +765,31 @@ class Darwin_X86_LinkTool(Tool):
arglist.addAllArgs(cmd_args, arglist.parser.sectorderOption) arglist.addAllArgs(cmd_args, arglist.parser.sectorderOption)
arglist.addAllArgs(cmd_args, arglist.parser.seg1addrOption) arglist.addAllArgs(cmd_args, arglist.parser.seg1addrOption)
arglist.addAllArgs(cmd_args, arglist.parser.segprotOption) arglist.addAllArgs(cmd_args, arglist.parser.segprotOption)
arglist.addAllArgsTranslated(cmd_args, arglist.parser.ZsegaddrOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.segaddrOption,
'-segaddr') '-segaddr')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zsegs_read_only_addrOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.segs_read_only_addrOption,
'-segs_read_only_addr') '-segs_read_only_addr')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zsegs_read_write_addrOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.segs_read_write_addrOption,
'-segs_read_write_addr') '-segs_read_write_addr')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zseg_addr_tableOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.seg_addr_tableOption,
'-seg_addr_table') '-seg_addr_table')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zfn_seg_addr_table_filenameOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.seg_addr_table_filenameOption,
'-fn_seg_addr_table_filename') '-seg_addr_table_filename')
arglist.addAllArgs(cmd_args, arglist.parser.sub_libraryOption) arglist.addAllArgs(cmd_args, arglist.parser.sub_libraryOption)
arglist.addAllArgs(cmd_args, arglist.parser.sub_umbrellaOption) arglist.addAllArgs(cmd_args, arglist.parser.sub_umbrellaOption)
arglist.addAllArgsTranslated(cmd_args, arglist.parser.isysrootOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.isysrootOption,
'-syslibroot') '-syslibroot')
arglist.addLastArg(cmd_args, arglist.parser.twolevel_namespaceOption) arglist.addLastArg(cmd_args, arglist.parser.twolevel_namespaceOption)
arglist.addLastArg(cmd_args, arglist.parser.twolevel_namespace_hintsOption) arglist.addLastArg(cmd_args, arglist.parser.twolevel_namespace_hintsOption)
arglist.addAllArgsTranslated(cmd_args, arglist.parser.ZumbrellaOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.umbrellaOption,
'-umbrella') '-umbrella')
arglist.addAllArgs(cmd_args, arglist.parser.undefinedOption) arglist.addAllArgs(cmd_args, arglist.parser.undefinedOption)
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zunexported_symbols_listOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.unexported_symbols_listOption,
'-unexported_symbols_list') '-unexported_symbols_list')
arglist.addAllArgsTranslated(cmd_args, arglist.parser.Zweak_reference_mismatchesOption, arglist.addAllArgsTranslated(cmd_args, arglist.parser.weak_reference_mismatchesOption,
'-weak_reference_mismatches') '-weak_reference_mismatches')
if not arglist.getLastArg(arglist.parser.Zweak_reference_mismatchesOption): if not arglist.getLastArg(arglist.parser.weak_reference_mismatchesOption):
cmd_args.append('-weak_reference_mismatches') cmd_args.append('-weak_reference_mismatches')
cmd_args.append('non-weak') cmd_args.append('non-weak')
@ -853,7 +853,7 @@ class Darwin_X86_LinkTool(Tool):
not arglist.getLastArg(arglist.parser.nostdlibOption) and not arglist.getLastArg(arglist.parser.nostdlibOption) and
not arglist.getLastArg(arglist.parser.nostartfilesOption)): not arglist.getLastArg(arglist.parser.nostartfilesOption)):
# Derived from startfile spec. # Derived from startfile spec.
if arglist.getLastArg(arglist.parser.ZdynamiclibOption): if arglist.getLastArg(arglist.parser.dynamiclibOption):
# Derived from darwin_dylib1 spec. # Derived from darwin_dylib1 spec.
if arglist.getLastArg(arglist.parser.m_iphoneosVersionMinOption): if arglist.getLastArg(arglist.parser.m_iphoneosVersionMinOption):
cmd_args.append('-ldylib1.o') cmd_args.append('-ldylib1.o')
@ -863,7 +863,7 @@ class Darwin_X86_LinkTool(Tool):
else: else:
cmd_args.append('-ldylib1.10.5.o') cmd_args.append('-ldylib1.10.5.o')
else: else:
if arglist.getLastArg(arglist.parser.ZbundleOption): if arglist.getLastArg(arglist.parser.bundleOption):
if not arglist.getLastArg(arglist.parser.staticOption): if not arglist.getLastArg(arglist.parser.staticOption):
cmd_args.append('-lbundle1.o') cmd_args.append('-lbundle1.o')
else: else:

View File

@ -9,14 +9,14 @@ def main():
progDir = os.path.dirname(sys.argv[0]) progDir = os.path.dirname(sys.argv[0])
progName = os.path.basename(sys.argv[0]) progName = os.path.basename(sys.argv[0])
d = Driver.Driver(progDir, progName) d = Driver.Driver(progName, progDir)
try: try:
d.run(sys.argv[1:]) d.run(sys.argv[1:])
except Arguments.InvalidArgumentsError,e: except Arguments.InvalidArgumentsError,e:
print >>sys.stderr, "%s: %s" % (progName, e.args[0]) print >>sys.stderr, "%s: %s" % (progName, e.args[0])
sys.exit(1) sys.exit(1)
except Arguments.MissingArgumentError,e: except Arguments.MissingArgumentError,e:
print >>sys.stderr, "%s: %s" % (progName, e.args[0]) print >>sys.stderr, "%s: argument to '%s' missing" % (progName, e.args[0].name)
sys.exit(1) sys.exit(1)
except NotImplementedError,e: except NotImplementedError,e:
print >>sys.stderr, "%s: not implemented: %s" % (progName, e.args[0]) print >>sys.stderr, "%s: not implemented: %s" % (progName, e.args[0])