X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gcc%2Fprefix.c;h=369ede703090153bebb615dbba1b20ac1e0b70c5;hb=629c2cca17ff1c931a89011abdbd3ef4761aecb6;hp=1d2eded8ca0a97fc32fb8572dff597c81fdd1938;hpb=0682f0b80c5a14f1a2d9c6499c7481af34ebfb18;p=platform%2Fupstream%2Fgcc.git diff --git a/gcc/prefix.c b/gcc/prefix.c index 1d2eded..369ede7 100644 --- a/gcc/prefix.c +++ b/gcc/prefix.c @@ -1,12 +1,12 @@ /* Utility to update paths from internal to external forms. - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 - Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, + 2007, 2011 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at +the Free Software Foundation; either version 3 of the License, or (at your option) any later version. GCC is distributed in the hope that it will be useful, @@ -15,9 +15,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public -License along with GCC; see the file COPYING. If not, write to the Free -Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +License along with GCC; see the file COPYING3. If not see +. */ /* This file contains routines to update a path, both to canonicalize the directory format and to handle any prefix translation. @@ -68,11 +67,11 @@ Boston, MA 02111-1307, USA. */ #include "config.h" #include "system.h" #include "coretypes.h" -#include "tm.h" #if defined(_WIN32) && defined(ENABLE_WIN32_REGISTRY) #include #endif #include "prefix.h" +#include "common/common-target.h" static const char *std_prefix = PREFIX; @@ -104,8 +103,7 @@ get_key_value (char *key) if (prefix == 0) prefix = std_prefix; - if (temp) - free (temp); + free (temp); return prefix; } @@ -115,7 +113,7 @@ get_key_value (char *key) static char * save_string (const char *s, int len) { - char *result = xmalloc (len + 1); + char *result = XNEWVEC (char, len + 1); memcpy (result, s, len); result[len] = 0; @@ -124,6 +122,10 @@ save_string (const char *s, int len) #if defined(_WIN32) && defined(ENABLE_WIN32_REGISTRY) +#ifndef WIN32_REGISTRY_KEY +# define WIN32_REGISTRY_KEY BASEVER +#endif + /* Look up "key" in the registry, as above. */ static char * @@ -157,11 +159,11 @@ lookup_key (char *key) size = 32; dst = xmalloc (size); - res = RegQueryValueExA (reg_key, key, 0, &type, dst, &size); + res = RegQueryValueExA (reg_key, key, 0, &type, (LPBYTE) dst, &size); if (res == ERROR_MORE_DATA && type == REG_SZ) { dst = xrealloc (dst, size); - res = RegQueryValueExA (reg_key, key, 0, &type, dst, &size); + res = RegQueryValueExA (reg_key, key, 0, &type, (LPBYTE) dst, &size); } if (type != REG_SZ || res != ERROR_SUCCESS) @@ -197,7 +199,7 @@ translate_name (char *name) keylen++) ; - key = alloca (keylen + 1); + key = (char *) alloca (keylen + 1); strncpy (key, &name[1], keylen); key[keylen] = 0; @@ -248,7 +250,7 @@ update_path (const char *path, const char *key) char *result, *p; const int len = strlen (std_prefix); - if (! strncmp (path, std_prefix, len) + if (! filename_ncmp (path, std_prefix, len) && (IS_DIR_SEPARATOR(path[len]) || path[len] == '\0') && key != 0) @@ -263,16 +265,12 @@ update_path (const char *path, const char *key) result = concat (key, &path[len], NULL); if (free_key) - free ((char *) key); + free (CONST_CAST (char *, key)); result = translate_name (result); } else result = xstrdup (path); -#ifndef ALWAYS_STRIP_DOTDOT -#define ALWAYS_STRIP_DOTDOT 0 -#endif - p = result; while (1) { @@ -287,7 +285,8 @@ update_path (const char *path, const char *key) && (p != result && IS_DIR_SEPARATOR (p[-1]))) { *p = 0; - if (!ALWAYS_STRIP_DOTDOT && access (result, X_OK) == 0) + if (!targetm_common.always_strip_dotdot + && access (result, X_OK) == 0) { *p = '.'; break;