Skip to contentSkip to conversation

buildroot still compiles C++ code when C++ compiler is unavailable

Buildroot Adam Nielsen 2 participants 3 messages Apr 25, 2013

lore
Share & tools
lore
#0 lore raw

Hi all,

After a successful build and changing some settings, I'm struggling to get a second successful build. I had to select a newer version of GCC to avoid some segfaults, but now when compiling I get these errors:

checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `buildroot/build/gettext-0.18.2.1/gettext-runtime/libasprintf':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check See `config.log' for more details
configure: error: ./configure failed for libasprintf
configure: error: ./configure failed for gettext-runtime

According to Google it's because I don't have a C++ compiler installed, which is correct, I had originally compiled it, but then I deselected it in the buildroot config as the library was too big to fit in my device's flash memory.

I was assuming buildroot would now omit those packages that require C++, but it looks like I am wrong. Is there an easy way to find out which packages depend on C++ and tell buildroot not to build them, now I have deselected C++ support?

Thanks,
Adam.

#1 lore raw

Dear Adam Nielsen,

Quoted 20 lines · Adam Nielsen

After a successful build and changing some settings, I'm struggling to get a second successful build. I had to select a newer version of GCC to avoid some segfaults, but now when compiling I get these errors:

checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `buildroot/build/gettext-0.18.2.1/gettext-runtime/libasprintf':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check See `config.log' for more details
configure: error: ./configure failed for libasprintf
configure: error: ./configure failed for gettext-runtime

According to Google it's because I don't have a C++ compiler installed, which is correct, I had originally compiled it, but then I deselected it in the buildroot config as the library was too big to fit in my device's flash memory.

Quoted 4 lines

I was assuming buildroot would now omit those packages that require C++, but it looks like I am wrong. Is there an easy way to find out which packages depend on C++ and tell buildroot not to build them, now I have deselected C++ support?

All packages that depend on C++ have the 'depends on BR2_INSTALL_LIBSTDCPP' dependency, so they are not selectable when C++ is not available.

However, did you do a complete 'make clean; make' cycle after disabling C++ support? Buildroot doesn't track the configuration changes you're making, so when you make a change as big in consequences as disabling C++, you should do a complete rebuild.

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#2 lore raw

Hi Thomas,

Many thanks for your reply!

Quoted 10 lines
Quoted 9 lines

checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `buildroot/build/gettext-0.18.2.1/gettext-runtime/libasprintf':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check See `config.log' for more details
configure: error: ./configure failed for libasprintf
configure: error: ./configure failed for gettext-runtime

Quoted 4 lines

However, did you do a complete 'make clean; make' cycle after disabling C++ support? Buildroot doesn't track the configuration changes you're making, so when you make a change as big in consequences as disabling C++, you should do a complete rebuild.

Ahh ok, well that makes more sense, but yes, I did do a 'make clean' as part of trying to solve the problem. I have just done it again to make absolutely sure, and I'm still getting the same error.

I've uploaded my .config here if it will help:

http://www.shikadi.net/files/buildroot/2013-04-26.gettext_cpp_fails.config

Let me know if you can figure out what I have done wrong!

Thanks again,
Adam.