darwin.h (SUBTARGET_OPTIONS): Add -mmacosx= option.
* config/darwin.h (SUBTARGET_OPTIONS): Add -mmacosx= option. (macosx_version_min_required): Declare global variable. * config/darwin-protos.h (darwin_parse_macosx_version_name): Declare. * config/darwin.c (macosx_version_min_required): Define variable. (darwin_macosx_vers_tbl): Define. Table mapping text strings of OS versions to numerical codes. (darwin_parse_macosx_version_name): Define. Parse -mmacosx=, set macosx_version_min_required appropriately. * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Define. Invoke darwin_parse_macosx_version_name. * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add darwin_parse_macosx_version_name to Darwin option handling. * doc/invoke.texi (-mmacosx=): Document. From-SVN: r78329
This commit is contained in:
parent
6f94dea785
commit
4fd1ff2bdb
|
@ -1,3 +1,19 @@
|
|||
2003-02-23 Matt Austern <austern@apple.com >
|
||||
|
||||
* config/darwin.h (SUBTARGET_OPTIONS): Add -mmacosx= option.
|
||||
(macosx_version_min_required): Declare global variable.
|
||||
* config/darwin-protos.h (darwin_parse_macosx_version_name): Declare.
|
||||
* config/darwin.c (macosx_version_min_required): Define variable.
|
||||
(darwin_macosx_vers_tbl): Define. Table mapping text strings of
|
||||
OS versions to numerical codes.
|
||||
(darwin_parse_macosx_version_name): Define. Parse -mmacosx=,
|
||||
set macosx_version_min_required appropriately.
|
||||
* config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
|
||||
Invoke darwin_parse_macosx_version_name.
|
||||
* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
|
||||
darwin_parse_macosx_version_name to Darwin option handling.
|
||||
* doc/invoke.texi (-mmacosx=): Document.
|
||||
|
||||
2004-02-23 Dale Johannesen <dalej@apple.com>
|
||||
|
||||
* config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
|
||||
|
|
|
@ -18,6 +18,8 @@ along with GCC; see the file COPYING. If not, write to
|
|||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
extern void darwin_parse_macosx_version_name (void);
|
||||
|
||||
extern int name_needs_quotes (const char *);
|
||||
|
||||
extern void machopic_validate_stub_or_non_lazy_ptr (const char *, int);
|
||||
|
|
|
@ -48,6 +48,48 @@ static void update_non_lazy_ptrs (const char *);
|
|||
static void update_stubs (const char *);
|
||||
static const char *machopic_non_lazy_ptr_name (const char*);
|
||||
|
||||
/* Earliest operating system for which generated code is targeted, as string
|
||||
and as integer. The string form is "10.0", "10.1", etc. The corresponding
|
||||
numeric versions are 1000, 1010, etc. This number is used for feature
|
||||
tests of the form "enable_this_feature = macosx_version_min_required >= n",
|
||||
so 0 is a conservative default. */
|
||||
|
||||
const char *darwin_macosx_version_name;
|
||||
unsigned int macosx_version_min_required = 0;
|
||||
|
||||
/* Parse -macosx= option. */
|
||||
|
||||
static struct darwin_macosx_vers {
|
||||
const char *vers_str;
|
||||
unsigned int vers_num;
|
||||
} darwin_macosx_vers_tbl[] = {
|
||||
{ "10.0", 1000 },
|
||||
{ "10.1", 1010 },
|
||||
{ "10.2", 1020 },
|
||||
{ "jaguar", 1020 },
|
||||
{ "10.3", 1030 },
|
||||
{ "panther", 1030 },
|
||||
{ "10.4", 1040 },
|
||||
{ "10.5", 1050 },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
void darwin_parse_macosx_version_name (void)
|
||||
{
|
||||
if (darwin_macosx_version_name)
|
||||
{
|
||||
struct darwin_macosx_vers *v = darwin_macosx_vers_tbl;
|
||||
while (v->vers_str
|
||||
&& strcmp (darwin_macosx_version_name, v->vers_str) != 0)
|
||||
v++;
|
||||
|
||||
if (v->vers_str)
|
||||
macosx_version_min_required = v->vers_num;
|
||||
else
|
||||
warning ("-macosx=%s: unrecognized version", darwin_macosx_version_name);
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
name_needs_quotes (const char *name)
|
||||
{
|
||||
|
|
|
@ -82,6 +82,19 @@ Boston, MA 02111-1307, USA. */
|
|||
#undef DEFAULT_PCC_STRUCT_RETURN
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
/* Strings provided by SUBTARGET_OPTIONS */
|
||||
extern const char *darwin_macosx_version_name;
|
||||
|
||||
/* Override rs6000.h/i386.h definition */
|
||||
#undef SUBTARGET_OPTIONS
|
||||
#define SUBTARGET_OPTIONS \
|
||||
{ "macosx=", &darwin_macosx_version_name, \
|
||||
N_("Earliest operating system for which code should be generated"), 0 }
|
||||
|
||||
/* Earliest operating system for which generated code is targeted. 1000 for 10.0,
|
||||
1010 for 10.1, etc. */
|
||||
extern unsigned int macosx_version_min_required;
|
||||
|
||||
/* 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
|
||||
|
|
|
@ -51,6 +51,11 @@ Boston, MA 02111-1307, USA. */
|
|||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "darwin_arch", "i386" },
|
||||
|
||||
#define SUBTARGET_OVERRIDE_OPTIONS \
|
||||
do { \
|
||||
darwin_parse_macosx_version_name (); \
|
||||
} while (0)
|
||||
|
||||
/* Use the following macro for any Darwin/x86-specific command-line option
|
||||
translation. */
|
||||
#define SUBTARGET_OPTION_TRANSLATE_TABLE
|
||||
|
|
|
@ -87,7 +87,8 @@ do { \
|
|||
flag_pic = 2; \
|
||||
} \
|
||||
} \
|
||||
}while(0)
|
||||
darwin_parse_macosx_version_name (); \
|
||||
} while (0)
|
||||
|
||||
/* We want -fPIC by default, unless we're using -static to compile for
|
||||
the kernel or some such. */
|
||||
|
|
|
@ -462,7 +462,7 @@ in the following sections.
|
|||
-single_module -static -sub_library -sub_umbrella @gol
|
||||
-twolevel_namespace -umbrella -undefined @gol
|
||||
-unexported_symbols_list -weak_reference_mismatches @gol
|
||||
-whatsloaded}
|
||||
-whatsloaded -mmacosx=@var{ver}}
|
||||
|
||||
@emph{MIPS Options}
|
||||
@gccoptlist{-EL -EB -march=@var{arch} -mtune=@var{arch} @gol
|
||||
|
@ -7590,6 +7590,13 @@ See man ld(1) for more information.
|
|||
This specifies the @var{executable} that will be loading the build
|
||||
output file being linked. See man ld(1) for more information.
|
||||
|
||||
@item -mmacosx=@var{ver}
|
||||
@opindex mmacosx
|
||||
This specifies the earliest version of Mac OS for which code should
|
||||
be generated. Specifying @code{-mmacosx=10.2}, for example, allows
|
||||
the compiler to use features that were first made available in that
|
||||
version of the operating system.
|
||||
|
||||
@item -allowable_client @var{client_name}
|
||||
@itemx -arch_only
|
||||
|
||||
|
|
Loading…
Reference in New Issue