This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] add FreeBSD/StrongARM target


> This patch adds support for FreeBSD/StrongARM.  I had to move the
> placement of "-Acpu=arm -Amachine=arm" from CPP_PREDEFINES so that those
> could be used by the OS.  I feel they fit nicely in CPP_CPU_ARCH_SPEC so
> I hope this will be acceptable.

I'd really like to see a patch that split CPP_PREDEFINES into 
CPP_CPU_PREDEFINES and CPP_OS_PREDEFINES.  But I'm not going to make an 
issue of this at this point.

> 2001-12-10  David O'Brien  <obrien@FreeBSD.org>
> 
> 	* config.gcc (arm-*-freebsd*): Add target.

This bit is Ok.

> 	* config/arm/freebsd.h: New file.

See comments later in this message.

> 	* config/arm/arm.h (CPP_PREDEFINES): Use null definition.
This is unnecessary.  Just remove the definition here entirely.

> 	(CPP_SPEC): #undef before defining.
This *should* also be unnecessary.  No other part of the ARM description 
should ever try to override this.

> 	(CPP_CPU_ARCH_SPEC): Add -Acpu=arm -Amachine=arm.
> 	* arm/conix-elf.h (CPP_PREDEFINES): Remove -Acpu=arm -Amachine=arm.
> 	* config/arm/linux-elf.h: Likewise.
> 	* config/arm/netbsd.h: Likewise.
> 	* config/arm/riscix.h: Likewise.
> 	* config/arm/riscix1-1.h: Likewise.
> 	* config/arm/semiaof.h: Likewise.

This bit is OK.

> --- /dev/null	Sun Dec  9 20:08:16 2001
> +++ config/arm/freebsd.h	Thu Dec  6 13:11:03 2001
> +You should have received a copy of the GNU General Public License
> +along with GNU CC; see the file COPYING.  If not, write to
> +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */

This address out of date.  Please use the latest one (it's in all the 
other copyright messages)

> +/* arm.h gets this wrong for FreeBSD.  We use the GCC defaults instead.  */
> +
> +#undef  DEFAULT_SIGNED_CHAR
> +#define DEFAULT_SIGNED_CHAR	1

Err, I really don't think this should be part of the FreeBSD API.  
Signedness of chars should be a machine-dependent issue; the reason for 
leaving it open is that it can make a huge difference to the performance 
of code, and the ARM is much better at handling unsigned char than it is 
at signed char.

> +#undef  SUBTARGET_CPU_DEFAULT
> +#define SUBTARGET_CPU_DEFAULT	TARGET_CPU_strongarm /*TARGET_CPU_arm710*/
> +

Remove dead comment.

> +#undef  TARGET_VERSION
> +#define TARGET_VERSION fprintf (stderr, " (FreeBSD/StrongARM ELF)");

Err, why StrongARM.  There's nothing particular here that restricts your 
code to that CPU... ARM(v4) would be better (v4== architecture of 
StrongARM).

I'd be interested in knowing your reasoning for selecting v4 as the base 
architecture (not that it is necessarily wrong).  What machines do you 
plan to target?

R.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]