bfin c++ problem

Waldemar Brodkorb
Thu Jul 21 16:47:00 GMT 2016

Hi Oliver,
Oliver Kullmann wrote,

> On Thu, Jul 21, 2016 at 12:40:43PM +0100, Jonathan Wakely wrote:
> > On 21 July 2016 at 12:12, Oliver Kullmann wrote:
> > > On Thu, Jul 21, 2016 at 11:26:42AM +0100, Jonathan Wakely wrote:
> > >> On 21 July 2016 at 04:05, Oliver Kullmann wrote:
> > >> > Hello,
> > >> >
> > >> > a C++ compiler is not required to recognise "main(void)":
> > >>
> > >> That's incorrect.

Thanks for any advice about correct usage of C++, but I am afraid
it does not help in any way to fix my original problem.
Please open up a new thread to discuss this. Thanks.

Anyway, even a simple C application does compile with gcc, but not
with g++:

./output/host/usr/bin/bfin-buildroot-linux-uclibc-g++ -o t test.c
t: hidden symbol `___gtdf2' in
is referenced by DSO
final link failed: Bad value
collect2: error: ld returned 1 exit status
$ cat test.c
int main() {

$ ./output/host/usr/bin/bfin-buildroot-linux-uclibc-gcc -o t test.c
$ file t
t: ELF 32-bit LSB executable, Analog Devices Blackfin, version 1
(SYSV), dynamically linked (uses shared libs), not stripped

Any advice? Why does the hidden symbols in libgcc.a from the
first-stage gcc, doesn't make it into libstdc++ shared library?

Buildroot first compiles gcc with --disable-shared and have then a
libgcc.a. Afterwards the C library (uClibc-ng) is build. In the next
step a full --enable-shared gcc including libstdc++ is build.
This one is then somehow mislinked and then g++ can not compile 
a simple application.

It must be some architecture specific problem, because we are not
seeing this kind of issues on any other architecture at the moment.

Thanks in advance

More information about the Gcc-help mailing list