This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Fri, 29 Aug 2008, Martin Guy wrote: > Yeah, I got this too. > > The trick is to check "EABI" and leave the ABI field blank - it > correctly selects aapcs and aapcs-linux in the various contextx they > are required. I'm rebuilding now with something along these lines. I think this code in arch/arm/functions is wrong: > > case "${CT_ARCH_ABI},${CT_ARCH_ARM_EABI}" in > > *,) ;; > > aapcs,y) > > CT_DoLog DEBUG "'--with-abi=aapcs' is in fact '-mabi=aapcs-linux' when used in CFLAGS." > > CT_ARCH_ABI_CFLAGS="-mabi=aapcs-linux" > > ;; > > ,y) > > CT_DoLog WARN "Forcing ABI to 'aapcs-linux' for use with EABI." > > CT_ARCH_WITH_ABI="--with-abi=aapcs" > > CT_ARCH_ABI_CFLAGS="-mabi=aapcs-linux" > > ;; > > *,y) > > CT_DoLog ERROR "ABI='${CT_ARCH_ABI}' not supported for EABI." > > CT_Abort "If you know you are right, please edit 'arch/arm/functions' in crosstool-NG sources." > > ;; > > esac The simplest solution, I think, would be to add the line CT_ARCH_WITH_ABI="--with-abi=aapcs" to the "aapcs,y)" branch, but it would probably be cleaner to decide whether CT_ARCH_ABI is allowed to be set at all. Eg: if [ "$CT_ARCH_ARM_ABI" = y ]; then case "$CT_ARCH_ABI" in aapcs) ;; ) ;; *) CT_Abort "oh dear" ;; esac CT_ARCH_WITH_ABI="--with-abi=aapcs" CT_ARCH_ABI_CFLAGS="-mabi=aapcs-linux" fi I don't think CT_ARCH_ABI is effectively used anywhere else, in which case it needs to go in the bin altogether, in which case this code becomes a *lot* simpler. The only other place I can see CT_ARCH_ABI being used is in CT_DoBuildTargetTuple (scripts/functions) in the following (elided and reformatted for clarity): unset ... CT_ARCH_ABI ... ... [ "${CT_ARCH_ABI}" ] && { CT_ARCH_ABI_CFLAG="-mabi=${CT_ARCH_ABI}"; CT_ARCH_WITH_ABI="--with-abi=${CT_ARCH_ABI}"; } Very odd. The unset means the following block of code is never executed. Am I missing something, or is there a whole block of code ready for the bin here? n If I'm seeing things right it looks as if we can scrap CT_ARCH_ABI altogether and replace the arch/arm/functions code above with if [ "$CT_ARCH_ARM_ABI" = y ]; then CT_ARCH_WITH_ABI="--with-abi=aapcs" CT_ARCH_ABI_CFLAGS="-mabi=aapcs-linux" fi Hmm. -- For unsubscribe information see http://sourceware.org/lists.html#faq
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |