This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: 3.4 build problem on sh4: warning: "ASM_PREFERRED_EH_DATA_FORMAT"redefined
- From: kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- To: dank at kegel dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 15 Aug 2003 23:41:00 +0900
- Subject: Re: 3.4 build problem on sh4: warning: "ASM_PREFERRED_EH_DATA_FORMAT"redefined
- References: <3F3CE5AD.2040706@kegel.com>
Dan Kegel <dank@kegel.com> wrote:
> Compiling a gcc-3.4 snapshot for the first time, I got the following warning:
>
> /xx/sh4-unknown-linux-gnu/gcc-3.4-20030813-glibc-2.3.2/gcc-3.4-20030813/gcc/config/sh/linux.h:44:1: warning: "ASM_PREFERRED_EH_DATA_FORMAT" redefined
> In file included from tm.h:6,
> from /xx/sh4-unknown-linux-gnu/gcc-3.4-20030813-glibc-2.3.2/gcc-3.4-20030813/gcc/gengenrtl.c:26:
> /xx/sh4-unknown-linux-gnu/gcc-3.4-20030813-glibc-2.3.2/gcc-3.4-20030813/gcc/config/sh/sh.h:3484:1: warning: this is the location of the previous definition
>
> The two definitions are different:
> config/sh/linux.h:
> 44 #define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
> 45 (flag_pic \
> 46 ? ((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4 \
> 47 : DW_EH_PE_absptr)
>
> config/sh/sh.h:
> 3482 /* We have to distinguish between code and data, so that we apply
> 3483 datalabel where and only where appropriate. Use textrel for code. */
> 3484 #define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
> 3485 ((flag_pic && (GLOBAL) ? DW_EH_PE_indirect : 0) \
> 3486 | ((CODE) ? DW_EH_PE_textrel : flag_pic ? DW_EH_PE_pcrel : DW_EH_PE_absptr))
>
> which makes me wonder if the right one is being used.
Yep. Unfortunately, the definition in sh/sh.h causes the linker
problem for sh-linux, though I want to use this and remove
the one in sh/linux.h. You see the on-going problem :-(
Regards,
kaz