[patch] avoid '//' prefixes when sysroot is set to '/'

Matthias Klose doko@ubuntu.com
Wed Feb 8 00:14:00 GMT 2012


On 26.01.2012 18:57, Joseph S. Myers wrote:
> On Thu, 26 Jan 2012, Matthias Klose wrote:
>
>> On 25.01.2012 17:45, Joseph S. Myers wrote:
>>> On Wed, 25 Jan 2012, Matthias Klose wrote:
>>>
>>>> This can end up in generation for dependency files, and other files
>>>> parsing
>>>> the output. The solution I came up with is to check for sysroot set to '/'
>>>> and
>>>> special case this in two places. Afaics, there are no other places.
>>>
>>> I could imagine a sysroot path that isn't just '/' but ends with '/'
>>> resulting in duplicate '/' in the middle of the path - although that's not
>>> a correctness issue in the way that '//' at the start could be, maybe the
>>> best check is actually for '/' at end of sysroot (in which case skip the
>>> '/' at the start of the path within the sysroot)?
>>
>> as in the attached trailing.diff? built and regression tested.
>
> Yes, that's OK (with copyright date updates in incpath.c).

there is one more issue, when configuring

  --with-sysroot=/ --with-gxx-include-dir=/usr/include/c++/4.7

in that the leading / is stripped away in configure.ac. This case needs an 
explicit check. Ok for the trunk?

   Matthias

* configure.ac (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
-------------- next part --------------
--- a/src/gcc/configure.ac
+++ b/src/gcc/configure.ac
@@ -149,7 +149,9 @@
 if test "${with_sysroot+set}" = set; then
   gcc_gxx_without_sysroot=`expr "${gcc_gxx_include_dir}" : "${with_sysroot}"'\(.*\)'`
   if test "${gcc_gxx_without_sysroot}"; then
-    gcc_gxx_include_dir="${gcc_gxx_without_sysroot}"
+    if test x${with_sysroot} != x/; then
+      gcc_gxx_include_dir="${gcc_gxx_without_sysroot}"
+    fi
     gcc_gxx_include_dir_add_sysroot=1
   fi
 fi


More information about the Gcc-patches mailing list