mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-24 12:31:25 +08:00
tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
* doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove. * doc/tm.texi: Regenerate. * opts-common.c (tm.h): Don't include. (target_option_translations): Remove. (decode_cmdline_options_to_array): Don't handle translating options. * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison. * config/darwin-driver.c: Don't condition includes on CROSS_DIRECTORY_STRUCTURE. (darwin_default_min_version): Make static. (darwin_driver_init): New. Call darwin_default_min_version if not CROSS_DIRECTORY_STRUCTURE. * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove. (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define. (ASM_SPEC): Add %{static}. (darwin_default_min_version): Don't declare. (darwin_driver_init): Declare. (GCC_DRIVER_HOST_INITIALIZATION): Define to call darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE. * config/darwin.opt (all_load, allowable_client, arch_errors_fatal, bind_at_load, bundle, bundle_loader, dead_strip, dependency-file, dylib_file, dynamic, dynamiclib, exported_symbols_list, filelist, findirect-virtual-calls, flat_namespace, force_cpusubtype_ALL, force_flat_namespace, framework, fterminated-vtables, gfull, gused, image_base, init, install_name, multi_module, multiply_defined, multiply_defined_unused, no_dead_strip_inits_and_terms, seg_addr_table, seg_addr_table_filename, segaddr, segs_read_only_addr, segs_read_write_addr, single_module, umbrella, unexported_symbols_list, weak_reference_mismatches, Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle, Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace, Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module, Zno_dead_strip_inits_and_terms, Zsingle_module): New. * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC. (ASM_SPEC): Add %{static}. (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove. * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove. (DRIVER_SELF_SPECS): Handle options formerly in TARGET_OPTION_TRANSLATE_TABLE. * config/mep/mep.opt (mfar): New. * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove. (DRIVER_SELF_SPECS): Define. Handle options formerly in TARGET_OPTION_TRANSLATE_TABLE. * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec. (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove. * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec, ffix-and-continue, findirect-data): New. * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove. * config/rx/rx.opt (nofpu): Make into alias of mnofpu. (mnofpu): Define mask and use Report here. From-SVN: r166534
This commit is contained in:
parent
6532e8a053
commit
2be55a2540
gcc
@ -1,3 +1,59 @@
|
||||
2010-11-10 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
|
||||
* doc/tm.texi: Regenerate.
|
||||
* opts-common.c (tm.h): Don't include.
|
||||
(target_option_translations): Remove.
|
||||
(decode_cmdline_options_to_array): Don't handle translating
|
||||
options.
|
||||
* system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
|
||||
* config/darwin-driver.c: Don't condition includes on
|
||||
CROSS_DIRECTORY_STRUCTURE.
|
||||
(darwin_default_min_version): Make static.
|
||||
(darwin_driver_init): New. Call darwin_default_min_version if not
|
||||
CROSS_DIRECTORY_STRUCTURE.
|
||||
* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
|
||||
(DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
|
||||
(ASM_SPEC): Add %{static}.
|
||||
(darwin_default_min_version): Don't declare.
|
||||
(darwin_driver_init): Declare.
|
||||
(GCC_DRIVER_HOST_INITIALIZATION): Define to call
|
||||
darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
|
||||
* config/darwin.opt (all_load, allowable_client,
|
||||
arch_errors_fatal, bind_at_load, bundle, bundle_loader,
|
||||
dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
|
||||
exported_symbols_list, filelist, findirect-virtual-calls,
|
||||
flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
|
||||
framework, fterminated-vtables, gfull, gused, image_base, init,
|
||||
install_name, multi_module, multiply_defined,
|
||||
multiply_defined_unused, no_dead_strip_inits_and_terms,
|
||||
seg_addr_table, seg_addr_table_filename, segaddr,
|
||||
segs_read_only_addr, segs_read_write_addr, single_module,
|
||||
umbrella, unexported_symbols_list, weak_reference_mismatches,
|
||||
Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
|
||||
Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
|
||||
Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
|
||||
Zno_dead_strip_inits_and_terms, Zsingle_module): New.
|
||||
* config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
|
||||
(ASM_SPEC): Add %{static}.
|
||||
(SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
|
||||
* config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
|
||||
(DRIVER_SELF_SPECS): Handle options formerly in
|
||||
TARGET_OPTION_TRANSLATE_TABLE.
|
||||
* config/mep/mep.opt (mfar): New.
|
||||
* config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE):
|
||||
Remove.
|
||||
(DRIVER_SELF_SPECS): Define. Handle options formerly in
|
||||
TARGET_OPTION_TRANSLATE_TABLE.
|
||||
* config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and
|
||||
-fno-altivec.
|
||||
(SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
|
||||
* config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
|
||||
ffix-and-continue, findirect-data): New.
|
||||
* config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
|
||||
* config/rx/rx.opt (nofpu): Make into alias of mnofpu.
|
||||
(mnofpu): Define mask and use Report here.
|
||||
|
||||
2010-11-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||
|
||||
* gcc/config/s390/s390.c (s390_emit_prologue): Report the stack
|
||||
|
@ -18,13 +18,14 @@ You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#ifndef CROSS_DIRECTORY_STRUCTURE
|
||||
#include "config.h"
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "tm.h"
|
||||
#include "gcc.h"
|
||||
#include "opts.h"
|
||||
|
||||
#ifndef CROSS_DIRECTORY_STRUCTURE
|
||||
#include <sys/sysctl.h>
|
||||
#include "xregex.h"
|
||||
|
||||
@ -32,7 +33,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
libraries, default the -mmacosx-version-min flag to be the version
|
||||
of the system on which the compiler is running. */
|
||||
|
||||
void
|
||||
static void
|
||||
darwin_default_min_version (unsigned int *decoded_options_count,
|
||||
struct cl_decoded_option **decoded_options)
|
||||
{
|
||||
@ -138,3 +139,51 @@ darwin_default_min_version (unsigned int *decoded_options_count,
|
||||
}
|
||||
|
||||
#endif /* CROSS_DIRECTORY_STRUCTURE */
|
||||
|
||||
/* Translate -filelist and -framework options in *DECODED_OPTIONS
|
||||
(size *DECODED_OPTIONS_COUNT) to use -Xlinker so that they are
|
||||
considered to be linker inputs in the case that no other inputs are
|
||||
specified. Handling these options in DRIVER_SELF_SPECS does not
|
||||
suffice because specs are too late to add linker inputs, and
|
||||
handling them in LINK_SPEC does not suffice because the linker will
|
||||
not be called if there are no other inputs. When native, also
|
||||
default the -mmacosx-version-min flag. */
|
||||
|
||||
void
|
||||
darwin_driver_init (unsigned int *decoded_options_count,
|
||||
struct cl_decoded_option **decoded_options)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 1; i < *decoded_options_count; i++)
|
||||
{
|
||||
if ((*decoded_options)[i].errors & CL_ERR_MISSING_ARG)
|
||||
continue;
|
||||
switch ((*decoded_options)[i].opt_index)
|
||||
{
|
||||
case OPT_filelist:
|
||||
case OPT_framework:
|
||||
++*decoded_options_count;
|
||||
*decoded_options = XRESIZEVEC (struct cl_decoded_option,
|
||||
*decoded_options,
|
||||
*decoded_options_count);
|
||||
memmove (*decoded_options + i + 2,
|
||||
*decoded_options + i + 1,
|
||||
((*decoded_options_count - i - 2)
|
||||
* sizeof (struct cl_decoded_option)));
|
||||
generate_option (OPT_Xlinker, (*decoded_options)[i].arg, 1,
|
||||
CL_DRIVER, &(*decoded_options)[i + 1]);
|
||||
generate_option (OPT_Xlinker,
|
||||
(*decoded_options)[i].canonical_option[0], 1,
|
||||
CL_DRIVER, &(*decoded_options)[i]);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef CROSS_DIRECTORY_STRUCTURE
|
||||
darwin_default_min_version (decoded_options_count, decoded_options);
|
||||
#endif
|
||||
}
|
||||
|
@ -123,71 +123,16 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
/* True if pragma ms_struct is in effect. */
|
||||
extern GTY(()) int darwin_ms_struct;
|
||||
|
||||
/* This table intercepts weirdo options whose names would interfere
|
||||
with normal driver conventions, and either translates them into
|
||||
standardly-named options, or adds a 'Z' so that they can get to
|
||||
specs processing without interference.
|
||||
#define DRIVER_SELF_SPECS \
|
||||
"%{gfull:-g -fno-eliminate-unused-debug-symbols} %<gfull", \
|
||||
"%{gused:-g -feliminate-unused-debug-symbols} %<gused", \
|
||||
"%{fapple-kext|mkernel:-static}", \
|
||||
"%{shared:-Zdynamiclib} %<shared"
|
||||
|
||||
Do not expand a linker option to "-Xlinker -<option>", since that
|
||||
forfeits the ability to control via spec strings later. However,
|
||||
as a special exception, do this translation with -filelist, because
|
||||
otherwise the driver will think there are no input files and quit.
|
||||
(The alternative would be to hack the driver to recognize -filelist
|
||||
specially, but it's simpler to use the translation table.)
|
||||
|
||||
Note that an option name with a prefix that matches another option
|
||||
name, that also takes an argument, needs to be modified so the
|
||||
prefix is different, otherwise a '*' after the shorter option will
|
||||
match with the longer one.
|
||||
|
||||
The SUBTARGET_OPTION_TRANSLATE_TABLE macro, which _must_ be defined
|
||||
in gcc/config/{i386,rs6000}/darwin.h, should contain any additional
|
||||
command-line option translations specific to the particular target
|
||||
architecture. */
|
||||
|
||||
#define TARGET_OPTION_TRANSLATE_TABLE \
|
||||
{ "-all_load", "-Zall_load" }, \
|
||||
{ "-allowable_client", "-Zallowable_client" }, \
|
||||
{ "-arch_errors_fatal", "-Zarch_errors_fatal" }, \
|
||||
{ "-bind_at_load", "-Zbind_at_load" }, \
|
||||
{ "-bundle", "-Zbundle" }, \
|
||||
{ "-bundle_loader", "-Zbundle_loader" }, \
|
||||
{ "-weak_reference_mismatches", "-Zweak_reference_mismatches" }, \
|
||||
{ "-dead_strip", "-Zdead_strip" }, \
|
||||
{ "-no_dead_strip_inits_and_terms", "-Zno_dead_strip_inits_and_terms" }, \
|
||||
{ "-dependency-file", "-MF" }, \
|
||||
{ "-dylib_file", "-Zdylib_file" }, \
|
||||
{ "-dynamic", "-Zdynamic" }, \
|
||||
{ "-dynamiclib", "-Zdynamiclib" }, \
|
||||
{ "-exported_symbols_list", "-Zexported_symbols_list" }, \
|
||||
{ "-gfull", "-g -fno-eliminate-unused-debug-symbols" }, \
|
||||
{ "-gused", "-g -feliminate-unused-debug-symbols" }, \
|
||||
{ "-segaddr", "-Zsegaddr" }, \
|
||||
{ "-segs_read_only_addr", "-Zsegs_read_only_addr" }, \
|
||||
{ "-segs_read_write_addr", "-Zsegs_read_write_addr" }, \
|
||||
{ "-seg_addr_table", "-Zseg_addr_table" }, \
|
||||
{ "-seg_addr_table_filename", "-Zfn_seg_addr_table_filename" }, \
|
||||
{ "-umbrella", "-Zumbrella" }, \
|
||||
{ "-fapple-kext", "-fapple-kext -static -Wa,-static" }, \
|
||||
{ "-filelist", "-Xlinker -filelist -Xlinker" }, \
|
||||
{ "-findirect-virtual-calls", "-fapple-kext" }, \
|
||||
{ "-flat_namespace", "-Zflat_namespace" }, \
|
||||
{ "-force_cpusubtype_ALL", "-Zforce_cpusubtype_ALL" }, \
|
||||
{ "-force_flat_namespace", "-Zforce_flat_namespace" }, \
|
||||
{ "-framework", "-Xlinker -framework -Xlinker" }, \
|
||||
{ "-fterminated-vtables", "-fapple-kext" }, \
|
||||
{ "-image_base", "-Zimage_base" }, \
|
||||
{ "-init", "-Zinit" }, \
|
||||
{ "-install_name", "-Zinstall_name" }, \
|
||||
{ "-mkernel", "-mkernel -static -Wa,-static" }, \
|
||||
{ "-multiply_defined_unused", "-Zmultiplydefinedunused" }, \
|
||||
{ "-multiply_defined", "-Zmultiply_defined" }, \
|
||||
{ "-multi_module", "-Zmulti_module" }, \
|
||||
{ "-static", "-static -Wa,-static" }, \
|
||||
{ "-shared", "-Zdynamiclib" }, \
|
||||
{ "-single_module", "-Zsingle_module" }, \
|
||||
{ "-unexported_symbols_list", "-Zunexported_symbols_list" }, \
|
||||
SUBTARGET_OPTION_TRANSLATE_TABLE
|
||||
#define DARWIN_CC1_SPEC \
|
||||
"%{findirect-virtual-calls: -fapple-kext} %<findirect-virtual-calls " \
|
||||
"%{fterminated-vtables: -fapple-kext} %<fterminated-vtables " \
|
||||
"%<filelist* %<framework*"
|
||||
|
||||
#define SUBSUBTARGET_OVERRIDE_OPTIONS \
|
||||
do { \
|
||||
@ -416,7 +361,8 @@ extern GTY(()) int darwin_ms_struct;
|
||||
|
||||
/* Default Darwin ASM_SPEC, very simple. */
|
||||
#define ASM_SPEC "-arch %(darwin_arch) \
|
||||
%{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL}"
|
||||
%{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL} \
|
||||
%{static}"
|
||||
|
||||
/* We still allow output of STABS. */
|
||||
|
||||
@ -1037,12 +983,10 @@ __enable_execute_stack (void *addr) \
|
||||
|
||||
#define TARGET_HAS_TARGETCM 1
|
||||
|
||||
#ifndef CROSS_DIRECTORY_STRUCTURE
|
||||
extern void darwin_default_min_version (unsigned int *decoded_options_count,
|
||||
struct cl_decoded_option **decoded_options);
|
||||
extern void darwin_driver_init (unsigned int *decoded_options_count,
|
||||
struct cl_decoded_option **decoded_options);
|
||||
#define GCC_DRIVER_HOST_INITIALIZATION \
|
||||
darwin_default_min_version (&decoded_options_count, &decoded_options)
|
||||
#endif /* CROSS_DIRECTORY_STRUCTURE */
|
||||
darwin_driver_init (&decoded_options_count, &decoded_options)
|
||||
|
||||
/* The Apple assembler and linker do not support constructor priorities. */
|
||||
#undef SUPPORTS_INIT_PRIORITY
|
||||
|
@ -18,10 +18,128 @@
|
||||
; along with GCC; see the file COPYING3. If not see
|
||||
; <http://www.gnu.org/licenses/>.
|
||||
|
||||
; Various linker options have a -Z added so that they can get to specs
|
||||
; processing without interference. Note that an option name with a
|
||||
; prefix that matches another option name, that also takes an
|
||||
; argument, being mapped to a -Z linker option, needs to be modified
|
||||
; so the prefix is different, otherwise a '*' after the shorter option
|
||||
; will match with the longer one.
|
||||
|
||||
all_load
|
||||
Driver Alias(Zall_load)
|
||||
|
||||
allowable_client
|
||||
Driver Separate Alias(Zallowable_client)
|
||||
|
||||
arch_errors_fatal
|
||||
Driver Alias(Zarch_errors_fatal)
|
||||
|
||||
bind_at_load
|
||||
Driver Alias(Zbind_at_load)
|
||||
|
||||
bundle
|
||||
Driver Alias(Zbundle)
|
||||
|
||||
bundle_loader
|
||||
Driver Separate Alias(Zbundle_loader)
|
||||
|
||||
dead_strip
|
||||
Driver Alias(Zdead_strip)
|
||||
|
||||
dependency-file
|
||||
C ObjC C++ ObjC++ Separate Alias(MF) MissingArgError(missing filename after %qs)
|
||||
|
||||
dylib_file
|
||||
Driver Separate Alias(Zdylib_file)
|
||||
|
||||
dynamic
|
||||
Driver Alias(Zdynamic)
|
||||
|
||||
dynamiclib
|
||||
Driver Alias(Zdynamiclib)
|
||||
|
||||
exported_symbols_list
|
||||
Driver Separate Alias(Zexported_symbols_list)
|
||||
|
||||
filelist
|
||||
Driver RejectNegative Separate
|
||||
|
||||
findirect-virtual-calls
|
||||
Driver RejectNegative
|
||||
|
||||
flat_namespace
|
||||
Driver RejectNegative Alias(Zflat_namespace)
|
||||
|
||||
force_cpusubtype_ALL
|
||||
Driver RejectNegative Alias(Zforce_cpusubtype_ALL)
|
||||
|
||||
force_flat_namespace
|
||||
Driver RejectNegative Alias(Zforce_flat_namespace)
|
||||
|
||||
framework
|
||||
Driver RejectNegative Separate
|
||||
|
||||
fterminated-vtables
|
||||
Driver RejectNegative
|
||||
|
||||
gfull
|
||||
Driver
|
||||
|
||||
gused
|
||||
Driver
|
||||
|
||||
image_base
|
||||
Driver Separate Alias(Zimage_base)
|
||||
|
||||
init
|
||||
Driver Separate Alias(Zinit)
|
||||
|
||||
install_name
|
||||
Driver Separate Alias(Zinstall_name)
|
||||
|
||||
mconstant-cfstrings
|
||||
Target Report Var(darwin_constant_cfstrings) Init(1)
|
||||
Generate compile-time CFString objects
|
||||
|
||||
multi_module
|
||||
Driver RejectNegative Alias(Zmulti_module)
|
||||
|
||||
multiply_defined
|
||||
Driver RejectNegative Separate Alias(Zmultiply_defined)
|
||||
|
||||
multiply_defined_unused
|
||||
Driver RejectNegative Separate Alias(Zmultiplydefinedunused)
|
||||
|
||||
no_dead_strip_inits_and_terms
|
||||
Driver Alias(Zno_dead_strip_inits_and_terms)
|
||||
|
||||
seg_addr_table
|
||||
Driver Separate Alias(Zseg_addr_table)
|
||||
|
||||
seg_addr_table_filename
|
||||
Driver Separate Alias(Zfn_seg_addr_table_filename)
|
||||
|
||||
segaddr
|
||||
Driver Separate Args(2) Alias(Zsegaddr)
|
||||
|
||||
segs_read_only_addr
|
||||
Driver Separate Alias(Zsegs_read_only_addr)
|
||||
|
||||
segs_read_write_addr
|
||||
Driver Separate Alias(Zsegs_read_write_addr)
|
||||
|
||||
single_module
|
||||
Driver Alias(Zsingle_module)
|
||||
|
||||
umbrella
|
||||
Driver Separate Alias(Zumbrella)
|
||||
|
||||
unexported_symbols_list
|
||||
Driver Separate Alias(Zunexported_symbols_list)
|
||||
|
||||
weak_reference_mismatches
|
||||
Driver Separate Alias(Zweak_reference_mismatches)
|
||||
|
||||
Wnonportable-cfstrings
|
||||
Target Report Var(darwin_warn_nonportable_cfstrings) Init(1) Warning
|
||||
Warn if constant CFString objects contain non-portable characters
|
||||
@ -63,21 +181,51 @@ iframework
|
||||
Target RejectNegative C ObjC C++ ObjC++ Joined Separate
|
||||
-iframework <dir> Add <dir> to the end of the system framework include path
|
||||
|
||||
Zall_load
|
||||
Driver
|
||||
|
||||
Zallowable_client
|
||||
Driver Separate
|
||||
|
||||
Zarch_errors_fatal
|
||||
Driver
|
||||
|
||||
Zbind_at_load
|
||||
Driver
|
||||
|
||||
Zbundle
|
||||
Driver
|
||||
|
||||
Zbundle_loader
|
||||
Driver Separate
|
||||
|
||||
Zdead_strip
|
||||
Driver
|
||||
|
||||
Zdylib_file
|
||||
Driver Separate
|
||||
|
||||
Zdynamic
|
||||
Driver
|
||||
|
||||
Zdynamiclib
|
||||
Driver
|
||||
|
||||
Zexported_symbols_list
|
||||
Driver Separate
|
||||
|
||||
Zfn_seg_addr_table_filename
|
||||
Driver Separate
|
||||
|
||||
Zflat_namespace
|
||||
Driver
|
||||
|
||||
Zforce_cpusubtype_ALL
|
||||
Driver
|
||||
|
||||
Zforce_flat_namespace
|
||||
Driver
|
||||
|
||||
Zimage_base
|
||||
Driver Separate
|
||||
|
||||
@ -87,12 +235,18 @@ Driver Separate
|
||||
Zinstall_name
|
||||
Driver Separate
|
||||
|
||||
Zmulti_module
|
||||
Driver
|
||||
|
||||
Zmultiply_defined
|
||||
Driver Separate
|
||||
|
||||
Zmultiplydefinedunused
|
||||
Driver Separate
|
||||
|
||||
Zno_dead_strip_inits_and_terms
|
||||
Driver
|
||||
|
||||
Zseg_addr_table
|
||||
Driver Separate
|
||||
|
||||
@ -105,6 +259,9 @@ Driver Separate
|
||||
Zsegs_read_write_addr
|
||||
Driver Separate
|
||||
|
||||
Zsingle_module
|
||||
Driver
|
||||
|
||||
Zumbrella
|
||||
Driver Separate
|
||||
|
||||
|
@ -110,10 +110,12 @@ extern int darwin_emit_branch_islands;
|
||||
#define CC1_SPEC "%(cc1_cpu) \
|
||||
%{!mkernel:%{!static:%{!mdynamic-no-pic:-fPIC}}} \
|
||||
%{!mmacosx-version-min=*:-mmacosx-version-min=%(darwin_minversion)} \
|
||||
%{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }}"
|
||||
%{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }} " \
|
||||
DARWIN_CC1_SPEC
|
||||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "-arch %(darwin_arch) -force_cpusubtype_ALL"
|
||||
#define ASM_SPEC "-arch %(darwin_arch) -force_cpusubtype_ALL \
|
||||
%{static}"
|
||||
|
||||
#define DARWIN_ARCH_SPEC "%{m64:x86_64;:i386}"
|
||||
#define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC
|
||||
@ -141,11 +143,6 @@ extern int darwin_emit_branch_islands;
|
||||
{ "darwin_crt2", "" }, \
|
||||
{ "darwin_subarch", DARWIN_SUBARCH_SPEC },
|
||||
|
||||
/* Use the following macro for any Darwin/x86-specific command-line option
|
||||
translation. */
|
||||
#define SUBTARGET_OPTION_TRANSLATE_TABLE \
|
||||
{ "", "" }
|
||||
|
||||
/* The Darwin assembler mostly follows AT&T syntax. */
|
||||
#undef ASSEMBLER_DIALECT
|
||||
#define ASSEMBLER_DIALECT ASM_ATT
|
||||
|
@ -132,17 +132,6 @@ crtbegin.o%s"
|
||||
|
||||
#define TARGET_VERSION fprintf (stderr, " (Toshiba Media Processor (MeP))");
|
||||
|
||||
/* The MeP config tool will add TARGET_OPTION_TRANSLATE_TABLE here. */
|
||||
#define TARGET_OPTION_TRANSLATE_TABLE \
|
||||
{"-mall-opts", "-maverage -mmult -mdiv -mbitops -mleadz \
|
||||
-mabsdiff -mminmax -mclip -msatur -mdebug" }, \
|
||||
{"-mno-opts", "-mno-average -mno-mult -mno-div -mno-bitops -mno-leadz \
|
||||
-mno-absdiff -mno-minmax -mno-clip -mno-satur -mno-debug" }, \
|
||||
{"-mfar", "-ml -mtf -mc=far" } \
|
||||
/* start-target-option-table */ \
|
||||
, {"-mconfig=default", "-mconfig=default -mmult -mdiv -D__MEP_CONFIG_ISA=1" } \
|
||||
/* end-target-option-table */
|
||||
|
||||
/* The MeP config tool will replace this as appropriate. */
|
||||
#define DEFAULT_ENDIAN_SPEC "%{!meb: -mel}"
|
||||
|
||||
@ -152,7 +141,13 @@ crtbegin.o%s"
|
||||
/* Don't add an endian option when building the libraries. */
|
||||
#define DRIVER_SELF_SPECS \
|
||||
"%{!mlibrary:" DEFAULT_ENDIAN_SPEC "}", \
|
||||
"%{mlibrary: " LIBRARY_CONFIG_SPEC " %{!mel:-meb}}"
|
||||
"%{mlibrary: " LIBRARY_CONFIG_SPEC " %{!mel:-meb}}", \
|
||||
"%{mall-opts:-maverage -mmult -mdiv -mbitops -mleadz \
|
||||
-mabsdiff -mminmax -mclip -msatur -mdebug} %<mall-opts", \
|
||||
"%{mno-opts:-mno-average -mno-mult -mno-div -mno-bitops -mno-leadz \
|
||||
-mno-absdiff -mno-minmax -mno-clip -mno-satur -mno-debug} %<mno-opts", \
|
||||
"%{mfar:-ml -mtf -mc=far} %<mfar", \
|
||||
"%{mconfig=default:-mmult -mdiv -D__MEP_CONFIG_ISA=1}"
|
||||
|
||||
/* The MeP config tool will add COPROC_SELECTION_TABLE here. */
|
||||
/* start-coproc-selection-table */
|
||||
|
@ -83,6 +83,9 @@ mel
|
||||
Target Mask(LITTLE_ENDIAN) RejectNegative
|
||||
Use little-endian byte order
|
||||
|
||||
mfar
|
||||
Driver RejectNegative
|
||||
|
||||
mio-volatile
|
||||
Target Mask(IO_VOLATILE)
|
||||
__io vars are volatile by default
|
||||
|
@ -60,19 +60,19 @@ extern enum picochip_dfa_type picochip_schedule_type;
|
||||
|
||||
/* Translate requests for particular AEs into their respective ISA
|
||||
options. Note that byte access is enabled by default. */
|
||||
#define TARGET_OPTION_TRANSLATE_TABLE \
|
||||
{ "-mae=ANY", "-mmul-type=none -mno-byte-access" }, \
|
||||
{ "-mae=ANY2", "-mmul-type=none -mno-byte-access" }, \
|
||||
{ "-mae=ANY3", "-mmul-type=none" }, \
|
||||
{ "-mae=STAN", "-mmul-type=none -mno-byte-access" }, \
|
||||
{ "-mae=STAN2", "-mmul-type=mac -mno-byte-access" }, \
|
||||
{ "-mae=STAN3", "-mmul-type=mac " }, \
|
||||
{ "-mae=MAC", "-mmul-type=mac -mno-byte-access" }, \
|
||||
{ "-mae=MUL", "-mmul-type=mul" }, \
|
||||
{ "-mae=MEM", "-mmul-type=mul" }, \
|
||||
{ "-mae=MEM2", "-mmul-type=mul" }, \
|
||||
{ "-mae=CTRL", "-mmul-type=mul" }, \
|
||||
{ "-mae=CTRL2", "-mmul-type=mul" }
|
||||
#define DRIVER_SELF_SPECS \
|
||||
"%{mae=ANY:-mmul-type=none -mno-byte-access} %<mae=ANY", \
|
||||
"%{mae=ANY2:-mmul-type=none -mno-byte-access} %<mae=ANY2", \
|
||||
"%{mae=ANY3:-mmul-type=none} %<mae=ANY3", \
|
||||
"%{mae=STAN:-mmul-type=none -mno-byte-access} %<mae=STAN", \
|
||||
"%{mae=STAN2:-mmul-type=mac -mno-byte-access} %<mae=STAN2", \
|
||||
"%{mae=STAN3:-mmul-type=mac} %<mae=STAN3", \
|
||||
"%{mae=MAC:-mmul-type=mac -mno-byte-access} %<mae=MAC", \
|
||||
"%{mae=MUL:-mmul-type=mul} %<mae=MUL", \
|
||||
"%{mae=MEM:-mmul-type=mul} %<mae=MEM", \
|
||||
"%{mae=MEM2:-mmul-type=mul} %<mae=MEM2", \
|
||||
"%{mae=CTRL:-mmul-type=mul} %<mae=CTRL", \
|
||||
"%{mae=CTRL2:-mmul-type=mul} %<mae=CTRL2"
|
||||
|
||||
/* Specify the default options, so that the multilib build doesn't
|
||||
need to provide special cases for the defaults. */
|
||||
|
@ -90,14 +90,18 @@ extern int darwin_emit_branch_islands;
|
||||
|
||||
|
||||
/* We want -fPIC by default, unless we're using -static to compile for
|
||||
the kernel or some such. */
|
||||
the kernel or some such. The "-faltivec" option should have been
|
||||
called "-maltivec" all along. */
|
||||
|
||||
#define CC1_SPEC "\
|
||||
%(cc1_cpu) \
|
||||
%{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }} \
|
||||
%{static: %{Zdynamic: %e conflicting code gen style switches are used}}\
|
||||
%{!mmacosx-version-min=*:-mmacosx-version-min=%(darwin_minversion)} \
|
||||
%{!mkernel:%{!static:%{!mdynamic-no-pic:-fPIC}}}"
|
||||
%{!mkernel:%{!static:%{!mdynamic-no-pic:-fPIC}}} \
|
||||
%{faltivec:-maltivec -include altivec.h} %{fno-altivec:-mno-altivec} \
|
||||
%<faltivec %<fno-altivec " \
|
||||
DARWIN_CC1_SPEC
|
||||
|
||||
#define DARWIN_ARCH_SPEC "%{m64:ppc64;:ppc}"
|
||||
|
||||
@ -146,18 +150,6 @@ extern int darwin_emit_branch_islands;
|
||||
#undef TARGET_ASM_FILE_START
|
||||
#define TARGET_ASM_FILE_START rs6000_darwin_file_start
|
||||
|
||||
/* The "-faltivec" option should have been called "-maltivec" all
|
||||
along. -ffix-and-continue and -findirect-data is for compatibility
|
||||
for old compilers. */
|
||||
|
||||
#define SUBTARGET_OPTION_TRANSLATE_TABLE \
|
||||
{ "-ffix-and-continue", "-mfix-and-continue" }, \
|
||||
{ "-findirect-data", "-mfix-and-continue" }, \
|
||||
{ "-faltivec", "-maltivec -include altivec.h" }, \
|
||||
{ "-fno-altivec", "-mno-altivec" }, \
|
||||
{ "-Waltivec-long-deprecated", "-mwarn-altivec-long" }, \
|
||||
{ "-Wno-altivec-long-deprecated", "-mno-warn-altivec-long" }
|
||||
|
||||
/* Make both r2 and r13 available for allocation. */
|
||||
#define FIXED_R2 0
|
||||
#define FIXED_R13 0
|
||||
|
@ -19,6 +19,20 @@
|
||||
; along with GCC; see the file COPYING3. If not see
|
||||
; <http://www.gnu.org/licenses/>.
|
||||
|
||||
Waltivec-long-deprecated
|
||||
Driver Alias(mwarn-altivec-long)
|
||||
|
||||
faltivec
|
||||
Driver
|
||||
|
||||
; -ffix-and-continue and -findirect-data are for compatibility for old
|
||||
; compilers.
|
||||
ffix-and-continue
|
||||
Driver RejectNegative Alias(mfix-and-continue)
|
||||
|
||||
findirect-data
|
||||
Driver RejectNegative Alias(mfix-and-continue)
|
||||
|
||||
m64
|
||||
Target RejectNegative Negative(m32) Mask(64BIT)
|
||||
Generate 64-bit code
|
||||
|
@ -619,10 +619,6 @@ extern int rx_float_compare_mode;
|
||||
#define ARG_POINTER_CFA_OFFSET(FNDECL) 4
|
||||
#define FRAME_POINTER_CFA_OFFSET(FNDECL) 4
|
||||
|
||||
/* Translate -nofpu into -mnofpu so that it gets passed from gcc to cc1. */
|
||||
#define TARGET_OPTION_TRANSLATE_TABLE \
|
||||
{"-nofpu", "-mnofpu" }
|
||||
|
||||
#define TARGET_USE_FPU (! TARGET_NO_USE_FPU)
|
||||
|
||||
/* This macro is used to decide when RX FPU instructions can be used. */
|
||||
|
@ -30,11 +30,11 @@ Target RejectNegative InverseMask(64BIT_DOUBLES) Report
|
||||
Stores doubles in 32 bits. This is the default.
|
||||
|
||||
nofpu
|
||||
Target RejectNegative Mask(NO_USE_FPU) Report
|
||||
Target RejectNegative Alias(mnofpu)
|
||||
Disable the use of RX FPU instructions.
|
||||
|
||||
mnofpu
|
||||
Target RejectNegative Mask(NO_USE_FPU) MaskExists Undocumented
|
||||
Target RejectNegative Mask(NO_USE_FPU) Report Undocumented
|
||||
|
||||
fpu
|
||||
Target RejectNegative InverseMask(NO_USE_FPU) Report
|
||||
|
@ -99,26 +99,6 @@ from being defined in the @file{.h} file to being part of the
|
||||
@c prevent bad page break with this line
|
||||
You can control the compilation driver.
|
||||
|
||||
@defmac TARGET_OPTION_TRANSLATE_TABLE
|
||||
If defined, a list of pairs of strings, the first of which is a
|
||||
potential command line target to the @file{gcc} driver program, and the
|
||||
second of which is a space-separated (tabs and other whitespace are not
|
||||
supported) list of options with which to replace the first option. The
|
||||
target defining this list is responsible for assuring that the results
|
||||
are valid. Replacement options may not be the @code{--opt} style, they
|
||||
must be the @code{-opt} style. It is the intention of this macro to
|
||||
provide a mechanism for substitution that affects the multilibs chosen,
|
||||
such as one option that enables many options, some of which select
|
||||
multilibs. Example nonsensical definition, where @option{-malt-abi},
|
||||
@option{-EB}, and @option{-mspoo} cause different multilibs to be chosen:
|
||||
|
||||
@smallexample
|
||||
#define TARGET_OPTION_TRANSLATE_TABLE \
|
||||
@{ "-fast", "-march=fast-foo -malt-abi -I/usr/fast-foo" @}, \
|
||||
@{ "-compat", "-EB -malign=4 -mspoo" @}
|
||||
@end smallexample
|
||||
@end defmac
|
||||
|
||||
@defmac DRIVER_SELF_SPECS
|
||||
A list of specs for the driver itself. It should be a suitable
|
||||
initializer for an array of strings, with no surrounding braces.
|
||||
|
@ -99,26 +99,6 @@ from being defined in the @file{.h} file to being part of the
|
||||
@c prevent bad page break with this line
|
||||
You can control the compilation driver.
|
||||
|
||||
@defmac TARGET_OPTION_TRANSLATE_TABLE
|
||||
If defined, a list of pairs of strings, the first of which is a
|
||||
potential command line target to the @file{gcc} driver program, and the
|
||||
second of which is a space-separated (tabs and other whitespace are not
|
||||
supported) list of options with which to replace the first option. The
|
||||
target defining this list is responsible for assuring that the results
|
||||
are valid. Replacement options may not be the @code{--opt} style, they
|
||||
must be the @code{-opt} style. It is the intention of this macro to
|
||||
provide a mechanism for substitution that affects the multilibs chosen,
|
||||
such as one option that enables many options, some of which select
|
||||
multilibs. Example nonsensical definition, where @option{-malt-abi},
|
||||
@option{-EB}, and @option{-mspoo} cause different multilibs to be chosen:
|
||||
|
||||
@smallexample
|
||||
#define TARGET_OPTION_TRANSLATE_TABLE \
|
||||
@{ "-fast", "-march=fast-foo -malt-abi -I/usr/fast-foo" @}, \
|
||||
@{ "-compat", "-EB -malign=4 -mspoo" @}
|
||||
@end smallexample
|
||||
@end defmac
|
||||
|
||||
@defmac DRIVER_SELF_SPECS
|
||||
A list of specs for the driver itself. It should be a suitable
|
||||
initializer for an array of strings, with no surrounding braces.
|
||||
|
@ -24,7 +24,6 @@ along with GCC; see the file COPYING3. If not see
|
||||
#include "opts.h"
|
||||
#include "flags.h"
|
||||
#include "diagnostic.h"
|
||||
#include "tm.h" /* For TARGET_OPTION_TRANSLATE_TABLE. */
|
||||
|
||||
static void prune_options (struct cl_decoded_option **, unsigned int *);
|
||||
|
||||
@ -567,17 +566,6 @@ decode_cmdline_option (const char **argv, unsigned int lang_mask,
|
||||
return result;
|
||||
}
|
||||
|
||||
#ifdef TARGET_OPTION_TRANSLATE_TABLE
|
||||
static const struct {
|
||||
const char *const option_found;
|
||||
const char *const replacements;
|
||||
} target_option_translations[] =
|
||||
{
|
||||
TARGET_OPTION_TRANSLATE_TABLE,
|
||||
{ 0, 0 }
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Decode command-line options (ARGC and ARGV being the arguments of
|
||||
main) into an array, setting *DECODED_OPTIONS to a pointer to that
|
||||
array and *DECODED_OPTIONS_COUNT to the number of entries in the
|
||||
@ -593,7 +581,7 @@ decode_cmdline_options_to_array (unsigned int argc, const char **argv,
|
||||
struct cl_decoded_option **decoded_options,
|
||||
unsigned int *decoded_options_count)
|
||||
{
|
||||
unsigned int n, i, target_translate_from;
|
||||
unsigned int n, i;
|
||||
struct cl_decoded_option *opt_array;
|
||||
unsigned int num_decoded_options;
|
||||
bool argv_copied = false;
|
||||
@ -613,7 +601,6 @@ decode_cmdline_options_to_array (unsigned int argc, const char **argv,
|
||||
opt_array[0].errors = 0;
|
||||
num_decoded_options = 1;
|
||||
|
||||
target_translate_from = 1;
|
||||
for (i = 1; i < argc; i += n)
|
||||
{
|
||||
const char *opt = argv[i];
|
||||
@ -627,81 +614,6 @@ decode_cmdline_options_to_array (unsigned int argc, const char **argv,
|
||||
continue;
|
||||
}
|
||||
|
||||
if (i >= target_translate_from && (lang_mask & CL_DRIVER))
|
||||
{
|
||||
#ifdef TARGET_OPTION_TRANSLATE_TABLE
|
||||
int tott_idx;
|
||||
|
||||
for (tott_idx = 0;
|
||||
target_option_translations[tott_idx].option_found;
|
||||
tott_idx++)
|
||||
{
|
||||
if (strcmp (target_option_translations[tott_idx].option_found,
|
||||
argv[i]) == 0)
|
||||
{
|
||||
unsigned int spaces = 0;
|
||||
unsigned int m = 0;
|
||||
const char *sp;
|
||||
char *np;
|
||||
|
||||
for (sp = target_option_translations[tott_idx].replacements;
|
||||
*sp; sp++)
|
||||
{
|
||||
if (*sp == ' ')
|
||||
{
|
||||
spaces++;
|
||||
while (*sp == ' ')
|
||||
sp++;
|
||||
sp--;
|
||||
}
|
||||
}
|
||||
|
||||
if (spaces)
|
||||
{
|
||||
int new_argc = argc + spaces;
|
||||
if (argv_copied)
|
||||
argv = XRESIZEVEC (const char *, argv, new_argc + 1);
|
||||
else
|
||||
{
|
||||
const char **new_argv = XNEWVEC (const char *,
|
||||
new_argc + 1);
|
||||
memcpy (new_argv, argv,
|
||||
(argc + 1) * sizeof (const char *));
|
||||
argv = new_argv;
|
||||
argv_copied = true;
|
||||
}
|
||||
memmove (&argv[i] + spaces, &argv[i],
|
||||
(argc + 1 - i) * sizeof (const char *));
|
||||
argc = new_argc;
|
||||
opt_array = XRESIZEVEC (struct cl_decoded_option,
|
||||
opt_array, argc);
|
||||
}
|
||||
|
||||
sp = target_option_translations[tott_idx].replacements;
|
||||
np = xstrdup (sp);
|
||||
|
||||
while (1)
|
||||
{
|
||||
while (*np == ' ')
|
||||
np++;
|
||||
if (*np == 0)
|
||||
break;
|
||||
argv[i + m++] = np;
|
||||
while (*np != ' ' && *np)
|
||||
np++;
|
||||
if (*np == 0)
|
||||
break;
|
||||
*np++ = 0;
|
||||
}
|
||||
|
||||
target_translate_from = i + m;
|
||||
gcc_assert (m == spaces + 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
n = decode_cmdline_option (argv + i, lang_mask,
|
||||
&opt_array[num_decoded_options]);
|
||||
num_decoded_options++;
|
||||
|
@ -776,7 +776,8 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
|
||||
STACK_CHECK_PROBE_INTERVAL STACK_CHECK_PROBE_LOAD \
|
||||
ORDER_REGS_FOR_LOCAL_ALLOC FUNCTION_OUTGOING_VALUE \
|
||||
ASM_DECLARE_CONSTANT_NAME MODIFY_TARGET_NAME SWITCHES_NEED_SPACES \
|
||||
SWITCH_CURTAILS_COMPILATION SWITCH_TAKES_ARG WORD_SWITCH_TAKES_ARG
|
||||
SWITCH_CURTAILS_COMPILATION SWITCH_TAKES_ARG WORD_SWITCH_TAKES_ARG \
|
||||
TARGET_OPTION_TRANSLATE_TABLE
|
||||
|
||||
/* Hooks that are no longer used. */
|
||||
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
|
||||
|
Loading…
x
Reference in New Issue
Block a user