This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Building cross-toolchain for microblaze
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Fri, 4 Nov 2016 10:12:31 -0200
- Subject: Re: Building cross-toolchain for microblaze
- Authentication-results: sourceware.org; auth=none
- References: <alpine.DEB.2.20.1611040240470.20687@digraph.polyomino.org.uk>
On 04/11/2016 00:48, Joseph Myers wrote:
> Continuing the issues shown up by writing a script to build glibc for all
> ABIs, I find that MicroBlaze glibc does not build using the final compiler
> because MicroBlaze GCC always uses SJLJ exceptions (see
> gcc/common/config/microblaze/microblaze-common.c defining
> TARGET_EXCEPT_UNWIND_INFO to sjlj_except_unwind_info), which is not
> supported in glibc, resulting in undefined references to _Unwind_SjLj_*
> (glibc deliberately links with libgcc.a and *not* libgcc_eh.a and gets EH
> functionality via loading libgcc_s as needed, which is not implemented for
> the SJLJ case; in the static-only case there isn't a separate libgcc_eh so
> a build with the initial static-only compiler works accidentally).
>
> How is building MicroBlaze glibc meant to work? Is there some GCC patch
> missing upstream to use DWARF2 exceptions?
>
I could build a workable toolchain, at least for glibc building, by
configuring GCC with both '--disable-sjlj-exceptions' and
'--disable-shared'. I did not dig into the issue, but it was already
reported on maillist this same issue.