On 12 June 2012 14:23, Felix Fietkau <n...@openwrt.org> wrote:
> uClibc++ current does not build using an ARM EABI toolchain with the
> following build failure:
> eh_alloc.cpp
> In file included from ../include/basic_definitions:21:0,
>                 from ../include/cstdlib:20,
>                 from eh_alloc.cpp:20:
> ../include/system_configuration.h:17:0: warning: "__WARNINGS__" redefined 
> [enabled by default]
> /opt/toolchains/armeabi-uclibc-std-0.9.30.2-gcc-4.6.0-binutils-2.20.1/arm-linux-uclibcgnueabi/sysroot/usr/include/bits/uClibc_config.h:223:0:
>  note: this is the location of the previous definition
> In file included from eh_alloc.cpp:25:0:
> ../include/unwind-cxx.h:176:36: error: ISO C++ forbids casting to an array 
> type '_Unwind_Exception_Class'
> ../include/unwind-cxx.h:177:36: error: ISO C++ forbids casting to an array 
> type '_Unwind_Exception_Class'
> ../include/unwind-cxx.h:178:35: error: ISO C++ forbids casting to an array 
> type '_Unwind_Exception_Class'
> ../include/unwind-cxx.h:179:41: error: ISO C++ forbids casting to an array 
> type '_Unwind_Exception_Class'
> ../include/unwind-cxx.h:180:40: error: ISO C++ forbids casting to an array 
> type '_Unwind_Exception_Class'
> ../include/unwind-cxx.h:181:39: error: ISO C++ forbids casting to an array 
> type '_Unwind_Exception_Class'
> ../include/unwind-cxx.h:182:38: error: ISO C++ forbids casting to an array 
> type '_Unwind_Exception_Class'
> ../include/unwind-cxx.h:183:37: error: ISO C++ forbids casting to an array 
> type '_Unwind_Exception_Class'
> make[1]: *** [eh_alloc.o] Error 1
> make[1]: Leaving directory `/home/florian/dev/uclibcxx/uClibc++/src'
>
> Workaround this by direclty using the string "GNUC++".
>
> Signed-off-by: Felix Fietkau <n...@openwrt.org>
> Signed-off-by: Florian Fainelli <flor...@openwrt.org>
> ---
>  include/unwind-cxx.h |    4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/include/unwind-cxx.h b/include/unwind-cxx.h
> index a5f6440..cd5a58e 100644
> --- a/include/unwind-cxx.h
> +++ b/include/unwind-cxx.h
> @@ -173,6 +173,7 @@ extern std::unexpected_handler __unexpected_handler;
>
>  // This is the exception class we report -- "GNUCC++\0".
>  const _Unwind_Exception_Class __gxx_exception_class
> +#ifndef __ARM_EABI_UNWINDER__
>  = ((((((((_Unwind_Exception_Class) 'G'
>         << 8 | (_Unwind_Exception_Class) 'N')
>        << 8 | (_Unwind_Exception_Class) 'U')
> @@ -181,6 +182,9 @@ const _Unwind_Exception_Class __gxx_exception_class
>      << 8 | (_Unwind_Exception_Class) '+')
>     << 8 | (_Unwind_Exception_Class) '+')
>    << 8 | (_Unwind_Exception_Class) '\0');
> +#else
> += "GNUC++";

IIRC this should be "GNUCC++", no? Seems like nobody needs dependent
exceptions? *phew* :)

I'll push a fixed version of this..
Thanks for the patch!
_______________________________________________
uClibc mailing list
uClibc@uclibc.org
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to