This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: duplicate -mdisable-got with gcc-3.0
- To: Adrian von Bidder <avbidder at acter dot ch>
- Subject: Re: duplicate -mdisable-got with gcc-3.0
- From: Richard Earnshaw <rearnsha at arm dot com>
- Date: Thu, 01 Nov 2001 16:30:04 +0000
- cc: gcc at gcc dot gnu dot org, Richard dot Earnshaw at arm dot com
- Organization: ARM Ltd.
- Reply-To: Richard dot Earnshaw at arm dot com
Just a few comments:
> diff -rudN gcc-3.0.2.orig/gcc/config/arm/linux-gas.h
> gcc-3.0.2/gcc/config/arm/linux-gas.h
> --- gcc-3.0.2.orig/gcc/config/arm/linux-gas.h Tue Jan 2 14:38:41 2001
> +++ gcc-3.0.2/gcc/config/arm/linux-gas.h Tue Oct 30 15:34:49 2001
> @@ -74,6 +74,7 @@
>
> /* Clear the instruction cache from `beg' to `end'. This makes an
> inline system call to SYS_cacheflush. */
> +#ifndef __THUMBEL__
Why __THUMBEL__ and not __THUMB__?
> + __asm __volatile ( \
> + "adr %1, 0f\n" \
> +" bx %1\n" \
There's a missing alignment statement here.
> +" .code 32\n" \
> +"0: swi 0x9f0002 @ sys_cacheflush\n" \
Does Arm-Linux not have a generic SWI call -- NetBSD has a "SWI 0" call
where the real swi number is in r0 (and all the arguments are pushed up by
one register)
> +" adr %1, 0b + 13\n" \
> +" bx %1\n" \
I think it would be best to make this a libcall of some form, then
returning to thumb mode afterwards would be a simple "bx lr".
> diff -rudN gcc-3.0.2.orig/gcc/config/arm/t-arm-elf
> gcc-3.0.2/gcc/config/arm/t-arm-elf
> --- gcc-3.0.2.orig/gcc/config/arm/t-arm-elf Thu Sep 21 19:36:19 2000
> +++ gcc-3.0.2/gcc/config/arm/t-arm-elf Tue Oct 30 15:37:32 2001
> @@ -37,9 +37,9 @@
> # MULTILIB_OPTIONS += mapcs-32/mapcs-26
> # MULTILIB_DIRNAMES += 32bit 26bit
> #
> -# MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
> -# MULTILIB_DIRNAMES += normal interwork
> -# MULTILIB_EXCEPTIONS += *mapcs-26/*mthumb-interwork*
> +MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
> +MULTILIB_DIRNAMES += normal interwork
> +MULTILIB_EXCEPTIONS += *mapcs-26/*mthumb-interwork*
I don't think these changes should be made to t-arm-elf, which is used for
a lot of configurations.
> #
> # MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore
> # MULTILIB_DIRNAMES += elf under
> @@ -69,6 +69,9 @@
> # MULTILIB_MATCHES += mcpu?arm7=mcpu?arm620
>
> EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o
> +
> +# for uclinux:
> +MULTILIB_EXTRA_OPTS = fpic msingle-pic-base mpic-register=r9
These options are completely out of the question for this file, if you
must define them, then you need to create a new target file that only
uclinux uses.
R.