Help!! libstdc++-v3 build for cross compiler target powerpc

Xiaopeng Gong pgong@integralaccess.com
Wed Jan 24 07:53:00 GMT 2001


Hello,
      Help!!!

      The cross compiler build failed to build libstdc++ for powerpc .  Any
help will be greatly appreciated!


	I am trying to build the cross compiler GCC on Red Hat 6.2 target to
powerpc embeded system.

	The source I have downloaded are:
	binutils 2.10.1
	GCC-core 2.95.2
	GCC-g++  2.95.2

	I have successfully build and installed the C compiler and tested the Hello
World program, however, the C++ compiler was built, but the libstdc++ was
unsuccessful, thus I got a C++ compiler can generate object code, but the
link needs to link to the library -- which failed to build.

	I have tried in the GCC directory just build the library ..
	ie:  in the GCC source directory
		GCC/gcc-2.95.2/libstdc++
		GCC/gcc-2.95.2/mklibstdc++

		cd GCC/gcc-2.95.2/mklibstdc++,


../configure --target=powwerpc-unknown-eabi --prefix=/tools --with-gnu-as --
with-gnu-ld
		make

	Now it gives me the error of
In file included from ../../libstdc++/bits/basic_string.h:38,
                 from ../../libstdc++/bits/std_string.h:43,
                 from ../../libstdc++/bits/localefwd.h:39,
                 from ../../libstdc++/bits/std_ios.h:42,
                 from ../../libstdc++/bits/basic_file.h:38,
                 from c++io.cc:34:
../../libstdc++/config/cpu/powerpc/atomicity.h: In function `int
exchange_and_add(volatile uint32_t *, int)':
../../libstdc++/config/cpu/powerpc/atomicity.h:46: unknown register name
`cr0' in `asm'
../../libstdc++/config/cpu/powerpc/atomicity.h: In function `void
atomic_add(volatile uint32_t *, int)':
../../libstdc++/config/cpu/powerpc/atomicity.h:60: unknown register name
`cr0' in `asm'
../../libstdc++/config/cpu/powerpc/atomicity.h: In function `int
compare_and_swap(volatile long int *, long int, long int)':
../../libstdc++/config/cpu/powerpc/atomicity.h:76: unknown register name
`cr0' in `asm'
../../libstdc++/config/cpu/powerpc/atomicity.h: In function `long int
always_swap(volatile long int *, long int)':
../../libstdc++/config/cpu/powerpc/atomicity.h:89: unknown register name
`cr0' in `asm'
../../libstdc++/config/cpu/powerpc/atomicity.h: In function `int
test_and_set(volatile long int *, long int)':
../../libstdc++/config/cpu/powerpc/atomicity.h:105: unknown register name
`cr0' in `asm'
make[2]: *** [c++io.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive-am] Error 2


	I have also downloaded the libstdc++ package and just try to make the
library, however I got about the same problem as
In file included from ../../libstdc++-2.90.8/bits/basic_string.h:38,
                 from ../../libstdc++-2.90.8/bits/std_string.h:43,
                 from ../../libstdc++-2.90.8/bits/localefwd.h:39,
                 from ../../libstdc++-2.90.8/bits/std_ios.h:42,
                 from ../../libstdc++-2.90.8/bits/basic_file.h:38,
                 from c++io.cc:34:
../../libstdc++-2.90.8/config/cpu/powerpc/atomicity.h: In function `int
exchange_and_add(volatile uint32_t *, int)':
../../libstdc++-2.90.8/config/cpu/powerpc/atomicity.h:46: unknown register
name `cr0' in `asm'
../../libstdc++-2.90.8/config/cpu/powerpc/atomicity.h: In function `void
atomic_add(volatile uint32_t *, int)':
../../libstdc++-2.90.8/config/cpu/powerpc/atomicity.h:60: unknown register
name `cr0' in `asm'
../../libstdc++-2.90.8/config/cpu/powerpc/atomicity.h: In function `int
compare_and_swap(volatile long int *, long int, long int)':
../../libstdc++-2.90.8/config/cpu/powerpc/atomicity.h:76: unknown register
name `cr0' in `asm'
../../libstdc++-2.90.8/config/cpu/powerpc/atomicity.h: In function `long int
always_swap(volatile long int *, long int)':
../../libstdc++-2.90.8/config/cpu/powerpc/atomicity.h:89: unknown register
name `cr0' in `asm'
../../libstdc++-2.90.8/config/cpu/powerpc/atomicity.h: In function `int
test_and_set(volatile long int *, long int)':
../../libstdc++-2.90.8/config/cpu/powerpc/atomicity.h:105: unknown register
name `cr0' in `asm'
make[2]: *** [c++io.lo] Error 1
make[2]: Leaving directory `/try3/temp/buildlib/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/try3/temp/buildlib'
make: *** [all-recursive-am] Error 2


Paul



More information about the Libstdc++ mailing list