[odb-users] Can't run odb.

Andrey Devyatka an9bit at gmail.com
Tue Oct 18 13:57:40 EDT 2011


> Andrey Devyatka<an9bit at gmail.com>  writes:
>
>> On 18.10.2011 11:37, Boris Kolpackov wrote:
>>
>>>> During start-up error:
>>>>>   $ odb
>>>>>   odb: error: unable to parse profile paths
>>> Hm, this is interesting. Can you show me the output of your GCC
>>> (for both 4.5 and 4.6) with the following command line:
>>>
>>> g++-4.X -v -x c++ -E -P -
>> $ LANG=C g++-4.6 -v -x c++ -E -P -
>>
>> Using built-in specs.
>>
>> COLLECT_GCC=g++-4.6
>>
>> COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6.1/lto-wrapper
>>
>> Target: i686-linux-gnu
>>
>> Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.1-9ubuntu3' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
>>
>> Thread model: posix
>>
>> gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)
>>
>> COLLECT_GCC_OPTIONS='-v' '-E' '-P' '-shared-libgcc' '-mtune=generic' '-march=i686'
>>
>>   /usr/lib/gcc/i686-linux-gnu/4.6.1/cc1plus -E -quiet -v -P -imultilib . -imultiarch i386-linux-gnu -D_GNU_SOURCE - -mtune=generic -march=i686 -fstack-protector
>>
>> ignoring nonexistent directory "/usr/local/include/i386-linux-gnu"
>>
>> ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../../i686-linux-gnu/include"
>>
>> #include "..." search starts here:
>>
>> #include<...>   search starts here:
> Ok, this line is the problem. On my system I get:
>
> #include<...>  search starts here:
>
> I tried to figure out what's going on here but it looks very bizarre.
> I checked the GCC source code, and there the string is "#include<...>".
> I then checked the cc1plus binary from the Ubuntu package that you are
> using, and there the string is also "#include<...>". One thing that
> I noticed in the GCC source code is that these strings are translated
> into various languages and the corresponding translation is loaded at
> runtime using gettext. Perhaps the string gets messed up at that point.
>
> In any case, seeing that this string can be translated, I re-implemented
> the profile path parsing in a more robust way that should also take care
> of your problem. I have patched ODB 1.6.0 source code with the fix and
> prepared a package:
>
> http://www.codesynthesis.com/~boris/tmp/odb/odb-1.6.1.tar.bz2
>
> Can you give it a try and let me know if it works for you? If everything
> works fine then I will make this fix official as ODB 1.6.1.
>
> Boris
Hi Boris,

I tried it.
Everything works fine with g++-4.5 (i386, amd64) and g++-4.6 (i386, amd64).
Thank you very much!



More information about the odb-users mailing list