If you won't link your binary statically, your problem would be shared libraries:
gcc usually links C programs with:
glibc
-- implementation for C runtime library. RHEL 6 and 7 have different versions of that library. glibc
uses symbol tagging, i.e.:
myaut@panther:/tmp> readelf -s /lib64/libc.so.6 | grep ' open@'
1679: 00000000000d8a70 90 FUNC WEAK DEFAULT 12 open@@GLIBC_2.2.5
So if your program with link with function which has newer tag that is present in RHEL6, you won't be able to run your program.
libgcc_s
is a GCC runtime that mostly contains functions that are not available on hardware platform (i.e. 32-bit binaries doesn't support 64-bit long long
arithmetic, so they require library to do that), put it seem to be optional.
Finally, GCC 4.4 and 4.7 have compatible ABIs, so you shouldn't run into trouble due to different compilers.