bfin c++ problem

Oliver Kullmann o.kullmann@swansea.ac.uk
Thu Jul 21 03:05:00 GMT 2016


Hello,

a C++ compiler is not required to recognise "main(void)":
the correct C++ is

#include <iostream>
int main() { std::cout << "hello, world\n"; }

Oliver

On Thu, Jul 21, 2016 at 02:04:03AM +0200, Waldemar Brodkorb wrote:
> Hi,
> 
> recently Thomas Petazzoni reported an issue for the internal
> toolchain support in Buildroot targeting Blackfin to me.
> 
> It seem a simple c++ hello world program can't be compiled:
> cat t.c
> #include <iostream>
> int main(void) { std::cout << "hello, world\n"; }
> 
> ./output/host/usr/bin/bfin-buildroot-linux-uclibc-g++ -o t t.c                                                                                                         
> /home/wbx/buildroot/output/host/usr/lib/gcc/bfin-buildroot-linux-uclibc/6.1.0/../../../../bfin-buildroot-linux-uclibc/bin/ld:
> t: hidden symbol `___gtdf2' in
> /home/wbx/buildroot/output/host/usr/lib/gcc/bfin-buildroot-linux-uclibc/6.1.0/libgcc.a(_gt_df.o)
> is referenced by DSO
> /home/wbx/buildroot/output/host/usr/lib/gcc/bfin-buildroot-linux-uclibc/6.1.0/../../../../bfin-buildroot-linux-uclibc/bin/ld:
> final link failed: Bad value
> collect2: error: ld returned 1 exit status
> 
> It seems not specific to ___gtdf2, I have seen other symbols in
> other buildsystems.
> 
> ./output/host/usr/bin/bfin-buildroot-linux-uclibc-g++ -v                                                                                                               
> Using built-in specs.
> COLLECT_GCC=/home/wbx/buildroot/output/host/usr/bin/bfin-buildroot-linux-uclibc-g++.br_real
> COLLECT_LTO_WRAPPER=/home/wbx/buildroot/output/host/usr/libexec/gcc/bfin-buildroot-linux-uclibc/6.1.0/lto-wrapper
> Target: bfin-buildroot-linux-uclibc
> Configured with: ./configure
> --prefix=/home/wbx/buildroot/output/host/usr
> --sysconfdir=/home/wbx/buildroot/output/host/etc --enable-static
> --target=bfin-buildroot-linux-uclibc
> --with-sysroot=/home/wbx/buildroot/output/host/usr/bfin-buildroot-linux-uclibc/sysroot
> --disable-__cxa_atexit --with-gnu-ld --disable-libssp
> --disable-multilib --with-gmp=/home/wbx/buildroot/output/host/usr
> --with-mpfr=/home/wbx/buildroot/output/host/usr
> --with-pkgversion='Buildroot 2016.08-git-01367-gdf60d48'
> --with-bugurl=http://bugs.buildroot.net/ --disable-libquadmath
> --disable-libsanitizer --disable-tls --disable-libmudflap
> --enable-threads --with-mpc=/home/wbx/buildroot/output/host/usr
> --without-isl --without-cloog --disable-decimal-float
> --enable-languages=c,c++
> --with-build-time-tools=/home/wbx/buildroot/output/host/usr/bfin-buildroot-linux-uclibc/bin
> --enable-shared --disable-libgomp
> Thread model: posix
> gcc version 6.1.0 (Buildroot 2016.08-git-01367-gdf60d48) 
> 
> binutils 2.26.1, gcc 6.1.0 is used.
> 
> At least two patches are applied on top of gcc 6.1.0,
> one for Bug 68468 and one for Bug 71721.
> 
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68468
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71721
> 
> ADI GNU Toolchain 2014R1 can compile the test program.
> 
> Does anyone have an idea?
> 
> best regards
>  Waldemar



More information about the Gcc-help mailing list