🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Bruce Robertson Tue, 07 Apr 1992 07:27
gcc 2.1 configuration for 680x0 cross development
#214
Author: Bruce Robertson
Date: Tue, 07 Apr 1992 07:27
237 lines
8858 bytes
Below is a tm.h file to set up gcc 2.1 for 680x0 cross development.
See the comments at the beginning of m68k-hac.h for details of exactly
what's changed.  Also included are some diffs to the configure script
so that you can configure gcc for this stuff with something like this:

	configure -target m68k-hac-embedded sparc-sun-sunos4

Whoever ends up integrating this stuff into the gcc distribution:  if
you don't like my choice of "-embedded", or "hac" for Hundred Acre
Consulting, feel free to change it.  Just let me know what you do, so
I can make the same changes here.

Support for these and other configurations is available; contact
bruce@pooh.com for details.

--
Bruce Robertson			bruce@pooh.com		Phone: +1-702-329-9333
Hundred Acre Consulting		1280 Terminal Way #26	Reno, NV 89502-3243



#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  DIFFS m68k-hac.h
# Wrapped by bruce@heather on Tue Apr  7 00:22:32 1992
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'DIFFS' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'DIFFS'\"
else
echo shar: Extracting \"'DIFFS'\" \(1030 characters\)
sed "s/^X//" >'DIFFS' <<'END_OF_FILE'
X*** ORIG/config.sub	Wed Mar 25 18:34:03 1992
X--- config.sub	Mon Mar 30 23:53:35 1992
X***************
X*** 434,440 ****
X  	      | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos* | -hpux* \
X  	      | -unos* | -osf* | -luna* | -dgux* | -solari* | -sym* | -amix* \
X  	      | -amigados* | -msdos* | -unicos* | -aos* \
X! 	      | -nindy* | -vxworks* | -ebmon* | -hds* | -m88kbcs*)
X  		;;
X  	-newsos*)
X  		os=-bsd
X--- 434,440 ----
X  	      | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos* | -hpux* \
X  	      | -unos* | -osf* | -luna* | -dgux* | -solari* | -sym* | -amix* \
X  	      | -amigados* | -msdos* | -unicos* | -aos* \
X! 	      | -nindy* | -vxworks* | -ebmon* | -hds* | -m88kbcs* | -embedded*)
X  		;;
X  	-newsos*)
X  		os=-bsd
X*** ORIG/configure	Wed Mar 25 18:34:04 1992
X--- configure	Mon Mar 30 23:50:48 1992
X***************
X*** 412,417 ****
X--- 412,420 ----
X  		tm_file=tower-as.h
X  		xm_file=xm-tower.h
X  		;;
X+ 	m68k-hac-embedded)
X+ 		tm_file=m68k-hac.h
X+ 		;;
X  	m68000-sun-sunos3*)
X  		cpu_type=m68k
X  		tm_file=sun2.h
END_OF_FILE
if test 1030 -ne `wc -c <'DIFFS'`; then
    echo shar: \"'DIFFS'\" unpacked with wrong size!
fi
# end of 'DIFFS'
fi
if test -f 'm68k-hac.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'m68k-hac.h'\"
else
echo shar: Extracting \"'m68k-hac.h'\" \(6655 characters\)
sed "s/^X//" >'m68k-hac.h' <<'END_OF_FILE'
X/*
X * 680x0 definitions for cross development, for use with GAS.
X * Donated by:	Bruce Robertson
X *		Hundred Acre Consulting
X *		bruce@pooh.com
X *
X * This set of macros sets things up for cross development of embedded
X * 680x0 systems.
X *
X * Features:
X *
X *	-mregparams is implemented correctly.  The first two long words of
X *	the arguments to a function are passed in register D0 and D1.  This
X *	feature is turned off for varargs functions, and therefore you MUST
X *	declare such functions with the "..." construct.  Another restriction
X *	with this feature is that arguments are not passed partially in
X *	registers.  If an argument won't fit entirely into D0 and D1, it is
X *	passed on the stack.
X *
X *	PCC_BITFIELD_TYPE_MATTERS is defined (see discussion below).  This
X *	being undefined in the other m68k configurations is a bug.
X *
X *	A -mlong-align option is added, to force data to be allocated with
X *	long word alignment, rather than the default short word alignment.
X *	If you're wondering if this sets things up for the Motorola/AT&T ABI
X *	specification, it doesn't, quite.
X *
X *	STRICT_ALIGNMENT is turned off if -m68020 is specified, since
X *	non-aligned moves on the 68020 and above work, and are actually
X *	quite fast on processors with a data cache.  Does anyone know if
X *	this will break anything?
X *
X *	STRUCTURE_SIZE_BOUNDARY is set to 8, just because I prefer it that
X *	way for embedded development.
X *
X * To generate code for the 68340, invoke with the -nobitfields option.
X */
X
X
X#include "m68k.h"
X
X/*
X * Add a parameter for regparams.  Unfortunately, this means completely
X * redefining the TARGET_SWITCHES macro.
X */
X#undef TARGET_SWITCHES
X#define TARGET_SWITCHES  \
X  { { "68020", 5},				\
X    { "c68020", 5},				\
X    { "68881", 2},				\
X    { "bitfield", 4},				\
X    { "68000", -5},				\
X    { "c68000", -5},				\
X    { "soft-float", -0102},			\
X    { "nobitfield", -4},			\
X    { "rtd", 8},				\
X    { "nortd", -8},				\
X    { "short", 040},				\
X    { "noshort", -040},				\
X    { "fpa", 0100},				\
X    { "nofpa", -0100},				\
X    { "sky", 0200},				\
X    { "nosky", -0200},				\
X    { "68040", 0407},				\
X    { "68030", -01400},				\
X    { "68030", 7},				\
X    { "68040-only", 01000},			\
X    { "regparams", 020},			\
X    { "noregparams", -020},			\
X    { "long-align", 02000},			\
X    { "nolong-align", -02000},			\
X    { "", TARGET_DEFAULT}}
X
X/* Force the strictest alignment to be long.  This is good for processors
X   with 32-bit busses, such as the 68020/30/40.  */
X#define	TARGET_LONG_ALIGN (target_flags & 02000)
X
X/* Redefine this to prevent -mregparams and -mshort at once.  */
X#undef OVERRIDE_OPTIONS
X#define OVERRIDE_OPTIONS		\
X{					\
X  if (! TARGET_68020 && flag_pic == 2)	\
X    error("-fPIC is not currently supported on the 68000 or 68010\n");	\
X  if (TARGET_REGPARM && TARGET_SHORT)	\
X    error("-mregparams and -mshort don't work together\n"); \
X}
X
X/* See tm-m68k.h.  5 means 68020 with software floating point.  */
X
X#ifndef TARGET_DEFAULT
X#define TARGET_DEFAULT 5
X#endif
X
X
X
X/* Define __HAVE_FPA__ or __HAVE_68881__ in preprocessor,
X   according to the -m flags.
X   This will control the use of inline 68881 insns in certain macros.
X   Also inform the program which CPU this is for.  */
X
X/* -msoft-float is the default */
X#define CPP_SPEC \
X"%{m68881:-D__HAVE_68881__ }%{mfpa:-D__HAVE_FPA__ }\
X%{m68000:-D__mc68010__}%{mc68000:-D__mc68010__}%{!mc68000:%{!m68000:-D__mc68020__}} \
X%{!ansi:%{m68000:-Dmc68010}%{mc68000:-Dmc68010}%{!mc68000:%{!m68000:-Dmc68020}}}"
X
X/* Prevent error on `-sun3' and `-target sun3' options.  */
X
X#define CC1_SPEC "%{sun3:} %{target:}"
X
X/* These compiler options take an argument.  We ignore -target for now.  */
X
X#define WORD_SWITCH_TAKES_ARG(STR)				\
X (!strcmp (STR, "Tdata") || !strcmp (STR, "include")		\
X  || !strcmp (STR, "imacros") || !strcmp (STR, "target")	\
X  || !strcmp (STR, "assert") || !strcmp (STR, "aux-info"))
X
X/* -m68000 requires special flags to the assembler.  */
X
X#define ASM_SPEC \
X "%{m68000:-mc68010}%{mc68000:-mc68010}%{!mc68000:%{!m68000:-mc68020}}"
X
X/* Names to predefine in the preprocessor for this target machine.  */
X
X#define CPP_PREDEFINES "-Dmc68000 -Dunix"
X
X/* This is BSD, so it wants DBX format.  */
X
X#define DBX_DEBUGGING_INFO
X
X/* Allow folding division by zero.  */
X#define REAL_INFINITY
X
X/* Generate calls to memcpy, memcmp and memset.  */
X#define TARGET_MEM_FUNCTIONS
X
X
X/* Redefine alignment constants to support the -mlong-align option.  */
X#undef STACK_BOUNDARY
X#undef FUNCTION_BOUNDARY
X#undef EMPTY_FIELD_BOUNDARY
X#undef BIGGEST_ALIGNMENT
X#undef ASM_OUTPUT_ALIGN
X#define STACK_BOUNDARY		(TARGET_LONG_ALIGN ? 32 : 16)
X#define FUNCTION_BOUNDARY	(TARGET_LONG_ALIGN ? 32 : 16)
X#define EMPTY_FIELD_BOUNDARY	(TARGET_LONG_ALIGN ? 32 : 16)
X#define BIGGEST_ALIGNMENT	(TARGET_LONG_ALIGN ? 32 : 16)
X#define ASM_OUTPUT_ALIGN(FILE,LOG)      \
X  fprintf (FILE, "\t.align %d\n", (LOG))
X
X/* On 68020 and above, nonaligned move instructions work.  */
X#undef STRICT_ALIGNMENT
X#define STRICT_ALIGNMENT	TARGET_68020
X
X/* Set the structure size boundary to 8 bits, to make arrays and such
X   smaller.  */
X#define S
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads