[odb-users] Can't run odb.

Boris Kolpackov boris at codesynthesis.com
Tue Oct 18 12:14:02 EDT 2011


Hi Andrey,

In the future please keep your replies CC'ed to the odb-users mailing
list as discussed in the posting guidelines:

http://www.codesynthesis.com/support/posting-guidelines.xhtml

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


[The rest of the original email follows for context.]

>
>  /usr/include/c++/4.6
>
>  /usr/include/c++/4.6/i686-linux-gnu/.
>
>  /usr/include/c++/4.6/backward
>
>  /usr/lib/gcc/i686-linux-gnu/4.6.1/include
>
>  /usr/local/include
>
>  /usr/lib/gcc/i686-linux-gnu/4.6.1/include-fixed
>
>  /usr/include/i386-linux-gnu
>
>  /usr/include
>
> End of search list.
>
> COMPILER_PATH=/usr/lib/gcc/i686-linux-gnu/4.6.1/:/usr/lib/gcc/i686-linux-gnu/4.6.1/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6.1/:/usr/lib/gcc/i686-linux-gnu/
>
> LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.6.1/:/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../../lib/:/lib/i386-linux-gnu/:/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../:/lib/:/usr/lib/
>
> COLLECT_GCC_OPTIONS='-v' '-E' '-P' '-shared-libgcc' '-mtune=generic' '-march=i686'
>
> $ LANG=C g++-4.5 -v -x c++ -E -P -
>
> Using built-in specs.
>
> COLLECT_GCC=g++-4.5
>
> COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.5.4/lto-wrapper
>
> Target: i686-linux-gnu
>
> Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.5.3-9ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.5 --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.5 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default --with-plugin-ld=ld.gold --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.5.4 (Ubuntu/Linaro 4.5.3-9ubuntu1)
>
> COLLECT_GCC_OPTIONS='-v' '-E' '-P' '-shared-libgcc' '-mtune=generic' '-march=i686'
>
>  /usr/lib/gcc/i686-linux-gnu/4.5.4/cc1plus -E -quiet -v -P -imultilib . -imultiarch i386-linux-gnu -D_GNU_SOURCE - -D_FORTIFY_SOURCE=2 -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.5.4/../../../../i686-linux-gnu/include"
>
> #include "..." search starts here:
>
> #include<...>  search starts here:
>
>  /usr/include/c++/4.5
>
>  /usr/include/c++/4.5/i686-linux-gnu/.
>
>  /usr/include/c++/4.5/backward
>
>  /usr/local/include
>
>  /usr/lib/gcc/i686-linux-gnu/4.5.4/include
>
>  /usr/lib/gcc/i686-linux-gnu/4.5.4/include-fixed
>
>  /usr/include/i386-linux-gnu
>
>  /usr/include
>
> End of search list.
>
> COMPILER_PATH=/usr/lib/gcc/i686-linux-gnu/4.5.4/:/usr/lib/gcc/i686-linux-gnu/4.5.4/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.5.4/:/usr/lib/gcc/i686-linux-gnu/
>
> LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.5.4/:/usr/lib/gcc/i686-linux-gnu/4.5.4/../../../i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.5.4/../../../../lib/:/lib/i386-linux-gnu/:/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/i686-linux-gnu/4.5.4/../../../:/lib/:/usr/lib/
>
> COLLECT_GCC_OPTIONS='-v' '-E' '-P' '-shared-libgcc' '-mtune=generic' '-march=i686'



More information about the odb-users mailing list