It seems that gcc is being used for compilation of object files and g++ for linking. This results in the C++ runtime library being linked in. You can verify this buy doing a build on Linux with gcc toolchain and run the ldd program on a compiled binary.
$ ldd build/install/mainExecutable/lib/main
linux-vdso.so.1 => (0x00007fff389c4000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa938f53000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa938cd1000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa938aba000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa938730000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa93926d000)
$
In the GCC universe, it is not normal to link the C++ runtime library (normally libstdc++) into a C program! The correct output would be more like this:
$ gcc -o main build/objectFiles/mainExecutable/mainC/hello_gradle.o
$ ldd main
linux-vdso.so.1 => (0x00007ffffe3ff000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f84af516000)
/lib64/ld-linux-x86-64.so.2 (0x00007f84af8b3000)
$
I’ve found this both in a simple example C project and in more complex C projects.
Note: This is all using Gradle 1.11 on Debian stable (amd64) and stock gcc (4.7.2).