[Buildroot] AVR32 libiberty build failure

Ulf Samuelsson ulf at atmel.com
Tue Sep 18 14:26:36 UTC 2007


tis 2007-09-18 klockan 13:26 +0200 skrev Bernhard Fischer:
> On Tue, Sep 18, 2007 at 02:23:48PM +1200, Robin Gilks wrote:
> > At least I think thats the problem...
> >
> > gcc builds OK and at the next step on a default config build for a atngw100 
> > it fails.
> 

I think it is better to check against 4.1.2,
since there is no later port for AVR32.

The problem occurs in "gcc-*/libstdc++-v3/configure" if 
"gcc_no_link" is "yes".

This is set to "yes", if linking fails in "gcc-*/ltconfig".
For the AVR32 the linker fails because crt1.o is not found
(See log below)

I checked the staging dir, and there is no crt1.o there
when gcc-*-final is built

I searched for crt1.* in the gcc source tree,
only gcc/config/sh/crt1.asm exists.

IIRC, I have seen similar problems with ARM & C++

I build with c++,locale, gettext and libintl



Here is the config.log (after cleaning): 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ltconfig:1487:  $(BR)/$(GCC_FINAL)/./gcc/xgcc 
	-shared-libgcc 
	-B$(BR)/$(GCC_FINAL)/./gcc 
	-nostdinc++ 
	-L$(BR)/$(GCC_FINAL)/avr32-linux-uclibc/libstdc++-v3/src 
	-L$(BR)/$(GCC_FINAL)/avr32-linux-uclibc/libstdc++-v3/src/.libs 
	-B$(BR)/build_avr32/staging_dir/avr32-linux-uclibc/bin/ 
	-B$(BR)/build_avr32/staging_dir/avr32-linux-uclibc/lib/ 
	-isystem $(BR)/build_avr32/staging_dir/avr32-linux-uclibc/include 
	-isystem $(BR)/build_avr32/staging_dir/avr32-linux-uclibc/sys-include 
	-o conftest 
	-g 
	-Os 
	-fno-builtin 
	-fno-rtti 
	-fno-exceptions   
	conftest.cc 
	conftstm.o 
	1>&5
$(BR)/build_avr32/staging_dir/avr32-linux-uclibc/bin/ld: crt1.o: No such
file: No such file or directory
collect2: ld returned 1 exit status
ltconfig: failed program was:
#ifdef __cplusplus
extern "C" {
#endif

extern char nm_test_var;
extern char main;
extern char nm_test_func;
#if defined (__STDC__) && __STDC__
# define lt_ptr_t void *
#else
# define lt_ptr_t char *
# define const
#endif

/* The mapping between symbol names and symbols. */
const struct {
  const char *name;
  lt_ptr_t address;
}
lt_preloaded_symbols[] =
{
  {"nm_test_var", (lt_ptr_t) &nm_test_var},
  {"main", (lt_ptr_t) &main},
  {"nm_test_func", (lt_ptr_t) &nm_test_func},
  {0, (lt_ptr_t) 0}
};

#ifdef __cplusplus
}
#endif
--------------------------------------------------------------------------------------------

> Does this work with the current stable, buildroot gcc, i.e. our 4.2.1 with
> buildroot patches?
> It seems that you are using something like:
> toolchain_build_avr32/gcc-4.1.2-avr32-2.0
> _______________________________________________
> buildroot mailing list
> buildroot at uclibc.org
> http://busybox.net/mailman/listinfo/buildroot




More information about the buildroot mailing list