[llvm-commits] [llvm-gcc-4.2] r54187 - in /llvm-gcc-4.2/trunk/gcc: config/darwin-driver.c config/darwin.h gcc.c
Bill Wendling
isanbard at gmail.com
Tue Jul 29 17:33:35 PDT 2008
Author: void
Date: Tue Jul 29 19:33:35 2008
New Revision: 54187
URL: http://llvm.org/viewvc/llvm-project?rev=54187&view=rev
Log:
More merges with Apple's GCC 4.2
Modified:
llvm-gcc-4.2/trunk/gcc/config/darwin-driver.c
llvm-gcc-4.2/trunk/gcc/config/darwin.h
llvm-gcc-4.2/trunk/gcc/gcc.c
Modified: llvm-gcc-4.2/trunk/gcc/config/darwin-driver.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin-driver.c?rev=54187&r1=54186&r2=54187&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/darwin-driver.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/darwin-driver.c Tue Jul 29 19:33:35 2008
@@ -1,4 +1,4 @@
-/* APPLE LOCAL file mainline 2007-06-14 5235474 */
+/* APPLE LOCAL file 5235474 5683689 */
/* Additional functions for the GCC driver on Darwin native.
Copyright (C) 2006, 2007 Free Software Foundation, Inc.
Contributed by Apple Computer Inc.
@@ -37,12 +37,17 @@
#define WORD_SWITCH_TAKES_ARG(STR) DEFAULT_WORD_SWITCH_TAKES_ARG (STR)
#endif
-/* When running on a Darwin system and using that system's headers and
- libraries, default the -mmacosx-version-min flag to be the version
- of the system on which the compiler is running. */
+/* This function is used when running on a Darwin system and using that
+ system's headers and libraries. Unless specified otherwise by
+ command-line options or environment variables, this routine will
+ set the appropriate version specification flag to a default value.
+ The version flag used is based on VERS_TYPE, and is either:
+ DARWIN_VERSION_MACOSX to use -mmacosx-version-min and
+ DARWIN_VERSION_IPHONEOS to use -miphoneos-version-min. */
void
-darwin_default_min_version (int * argc_p, char *** argv_p)
+darwin_default_min_version (int * argc_p, char *** argv_p,
+ enum darwin_version_type vers_type)
{
const int argc = *argc_p;
char ** const argv = *argv_p;
@@ -54,7 +59,7 @@
char * version_pend;
int major_vers;
char minor_vers[6];
- static char new_flag[sizeof ("-mmacosx-version-min=10.0.0") + 6];
+ static char new_flag[sizeof ("-mxxxxxx-version-min=99.99.99") + 6];
/* If the command-line is empty, just return. */
if (argc <= 1)
@@ -66,14 +71,17 @@
((argv[1][1] == 'b') && (NULL != strchr(argv[1] + 2,'-')))))
return;
- /* Don't do this if the user specified -mmacosx-version-min= or
- -mno-macosx-version-min. */
+ /* Don't do this if the user specified -mmacosx-version-min=,
+ -miphoneos-version-min, -mno-macosx-version-min, or
+ -mno-iphoneos-version-min. */
for (i = 1; i < argc; i++)
if (argv[i][0] == '-')
{
const char * const p = argv[i];
if (strncmp (p, "-mno-macosx-version-min", 23) == 0
- || strncmp (p, "-mmacosx-version-min", 20) == 0)
+ || strncmp (p, "-mno-iphoneos-version-min", 25) == 0
+ || strncmp (p, "-mmacosx-version-min", 20) == 0
+ || strncmp (p, "-miphoneos-version-min", 22) == 0)
return;
/* It doesn't count if it's an argument to a different switch. */
@@ -87,12 +95,31 @@
it as a flag. */
{
const char * macosx_deployment_target;
+ const char * iphoneos_deployment_target;
+ bool iphoneos_env_set, macosx_env_set;
+
macosx_deployment_target = getenv ("MACOSX_DEPLOYMENT_TARGET");
- if (macosx_deployment_target
- /* Apparently, an empty string for MACOSX_DEPLOYMENT_TARGET means
- "use the default". Or, possibly "use 10.1". We choose
- to ignore the environment variable, as if it was never set. */
- && macosx_deployment_target[0])
+ iphoneos_deployment_target = getenv ("IPHONEOS_DEPLOYMENT_TARGET");
+
+ /* We choose to ignore an environment variable set to an empty
+ string. */
+ macosx_env_set = macosx_deployment_target
+ && macosx_deployment_target[0];
+ iphoneos_env_set = iphoneos_deployment_target
+ && iphoneos_deployment_target[0];
+
+ if (macosx_env_set && iphoneos_env_set)
+ {
+ /* Conflicting DEPLOYMENT_TARGETs given. Don't emit a warning
+ for now (see rdar://5819018) -- just choose based on
+ VERS_TYPE. */
+ if (vers_type == DARWIN_VERSION_IPHONEOS)
+ macosx_env_set = 0;
+ else
+ iphoneos_env_set = 0;
+ }
+
+ if (macosx_env_set)
{
++*argc_p;
*argv_p = xmalloc (sizeof (char *) * *argc_p);
@@ -102,8 +129,33 @@
memcpy (*argv_p + 2, argv + 1, (argc - 1) * sizeof (char *));
return;
}
+
+ if (iphoneos_env_set)
+ {
+ ++*argc_p;
+ *argv_p = xmalloc (sizeof (char *) * *argc_p);
+ (*argv_p)[0] = argv[0];
+ (*argv_p)[1] = concat ("-miphoneos-version-min=",
+ iphoneos_deployment_target, NULL);
+ memcpy (*argv_p + 2, argv + 1, (argc - 1) * sizeof (char *));
+ return;
+ }
}
+ /* For iPhone OS, if no version number is specified, we default to
+ 2.0. */
+ if (vers_type == DARWIN_VERSION_IPHONEOS)
+ {
+ ++*argc_p;
+ *argv_p = xmalloc (sizeof (char *) * *argc_p);
+ (*argv_p)[0] = argv[0];
+ (*argv_p)[1] = xstrdup ("-miphoneos-version-min=2.0");
+ memcpy (*argv_p + 2, argv + 1, (argc - 1) * sizeof (char *));
+ return;
+ }
+
+ gcc_assert (vers_type == DARWIN_VERSION_MACOSX);
+
/* Determine the version of the running OS. If we can't, warn user,
and do nothing. */
if (sysctl (osversion_name, ARRAY_SIZE (osversion_name), osversion,
Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin.h?rev=54187&r1=54186&r2=54187&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/darwin.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/darwin.h Tue Jul 29 19:33:35 2008
@@ -1541,8 +1541,6 @@
/* APPLE LOCAL begin mainline 2007-06-14 5235474 */
#ifndef CROSS_DIRECTORY_STRUCTURE
/* APPLE LOCAL begin ARM 5683689 */
-/* LLVM FIXME: Uncomment!!! */
-#if 0
extern void darwin_default_min_version (int * argc, char *** argv,
enum darwin_version_type vers_type);
#define GCC_DRIVER_HOST_INITIALIZATION \
@@ -1550,13 +1548,6 @@
GCC_DRIVER_HOST_INITIALIZATION1; \
darwin_default_min_version (&argc, &argv, DARWIN_DEFAULT_VERSION_TYPE)
/* APPLE LOCAL end ARM 5683689 */
-#else
-extern void darwin_default_min_version (int * argc, char *** argv);
-#define GCC_DRIVER_HOST_INITIALIZATION \
- /* APPLE LOCAL isysroot 5083137 */ \
- GCC_DRIVER_HOST_INITIALIZATION1; \
- darwin_default_min_version (&argc, &argv)
-#endif
#endif /* CROSS_DIRECTORY_STRUCTURE */
/* APPLE LOCAL end mainline 2007-06-14 5235474 */
Modified: llvm-gcc-4.2/trunk/gcc/gcc.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/gcc.c?rev=54187&r1=54186&r2=54187&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/gcc.c (original)
+++ llvm-gcc-4.2/trunk/gcc/gcc.c Tue Jul 29 19:33:35 2008
@@ -6460,7 +6460,8 @@
main (int argc, char **argv)
{
size_t i;
- int value;
+ /* APPLE LOCAL uninit warning */
+ int value = 0;
int linker_was_run = 0;
int lang_n_infiles = 0;
int num_linker_inputs = 0;
@@ -7000,9 +7001,7 @@
infiles[i].incompiler = lookup_compiler (infiles[i].name,
strlen (infiles[i].name),
infiles[i].language);
-
- if (value < 0)
- this_file_error = 1;
+
}
else if (traditional_cpp_flag)
{
@@ -7015,6 +7014,9 @@
}
}
+ if (value < 0)
+ this_file_error = 1;
+
if (this_file_error)
{
delete_failure_queue ();
More information about the llvm-commits
mailing list