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]

[PATCH] powerpc-eabi board support for Xilinx


I've been somewhat annoyed that when gcc is built with
--target=powerpc-*-eabi, I need to specify a target board with
-m<board> each time I run gcc to create an executable.  This
is not the case with --target=powerpc-eabisim, since this
configuration uses config/rs6000/eabisim.h to overwrite the
target options in config/rs6000/sysv4.h to force sim to be
the default.

The attached patch does two things:  First, it creates a
--with-board=<board> option which will set the default
target board for a build with --target=powerpc-*-eabi.  The
user can still override this with a -m<board> option.  Second,
it creates -mxilinx, which specifies target options for
using various Xilinx PowerPC development boards.

[It's arguable whether any of this should be in sysv4.h,
or whether there should be different build configurations
for the various boards, like is done with powerpc-eabisim.
But this patch maintains compatibility with past builds.]


-- Michael Eager eager@eagercon.com 1960 Park Blvd., Palo Alto, CA 94306 650-325-8077
2008-10-22  Michael Eager <eager@eagercon.com>

	* config/rs6000/sysv4.h: CONCAT3, _CONCAT3: define.
	LINK_START_DEFAULT_SPEC, LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC,
	STARTFILE_DEFAULT_SPEC, LIB_DEFAULT_SPEC, ENDFILE_DEFAULT_SPEC:
	define using TARGET_BOARD_DEFAULT if defined.
	link_start_xilinx, link_os_linux, cpp_os_xilinx, startfile_xilinx,
	lib_xilinx, endfile_xilinx: define Xilinx board support.
	LIBGCC_SPEC, libgcc_default: make libgcc conditional on -m options
	LIBGCC_ADS_SPEC, LIBGCC_YELLOWKNIFE_SPEC, LIBGCC_MVME_SPEC, 
	LIBGCC_SIM_SPEC, LIBGCC_FREEBSD_SPEC, LIBGCC_LINUX_SPEC, 
	LIBGCC_GNU_SPEC, LIBGCC_NETBSD_SPEC, LIBGCC_OPENBSD_SPEC: define.
	LIB_XILINX_SPEC, CPP_OS_XILINX_SPEC, STARTFILE_XILINX_SPEC, 
	ENDFILE_XILINX_SPEC, LINK_START_XILINX_SPEC, LINK_OS_XILINX_SPEC,
	LIBGCC_XILINX_SPEC: define Xilinx board support.
	* config/rs6000/sysv4.opt: add mxilinx board option
	* config.gcc: target_board_default: set by -with-board=.
	Check valid -with-board options.
	* configure: regenerate
	* configure.ac: target_board_default: define
	* doc/install.texi: describe -with-board configure option.
	describe -mxilinx option.
	* Makefile.in (cs-tm.h): TARGET_BOARD_DEFAULT set from 
	target_board_default
	* mkconfig.sh: set TARGET_BOARD_DEFAULT

diff -urNp --exclude '*.swp' --exclude DEV-PHASE --exclude .svn gcc-orig/gcc/config/rs6000/sysv4.h gcc/gcc/config/rs6000/sysv4.h
--- gcc-orig/gcc/config/rs6000/sysv4.h	2008-10-22 10:07:45.000000000 -0700
+++ gcc/gcc/config/rs6000/sysv4.h	2008-10-22 10:09:05.000000000 -0700
@@ -19,6 +19,9 @@
    along with GCC; see the file COPYING3.  If not see
    <http://www.gnu.org/licenses/>.  */
 
+#define CONCAT3(A,B,C)       _CONCAT3(A,B,C)
+#define _CONCAT3(A,B,C)      A##B##C
+
 /* Header files should be C++ aware in general.  */
 #undef  NO_IMPLICIT_EXTERN_C
 #define NO_IMPLICIT_EXTERN_C
@@ -599,6 +602,12 @@ SVR4_ASM_SPEC \
   mcall-gnu             :-mbig;    \
   mcall-i960-old        :-mlittle}"
 
+#ifdef TARGET_BOARD_DEFAULT
+#define	LIBGCC_DEFAULT_SPEC CONCAT3(LIBGCC_,TARGET_BOARD_DEFAULT,_SPEC)
+#else 
+#define LIBGCC_DEFAULT_SPEC "-lgcc"
+#endif
+
 #define	CC1_ENDIAN_BIG_SPEC ""
 
 #define	CC1_ENDIAN_LITTLE_SPEC "\
@@ -663,6 +672,7 @@ SVR4_ASM_SPEC \
   myellowknife : %(link_start_yellowknife) ; \
   mmvme        : %(link_start_mvme)        ; \
   msim         : %(link_start_sim)         ; \
+  mxilinx      : %(link_start_xilinx)      ; \
   mcall-freebsd: %(link_start_freebsd)     ; \
   mcall-linux  : %(link_start_linux)       ; \
   mcall-gnu    : %(link_start_gnu)         ; \
@@ -670,7 +680,11 @@ SVR4_ASM_SPEC \
   mcall-openbsd: %(link_start_openbsd)     ; \
                : %(link_start_default)     }"
 
+#ifdef TARGET_BOARD_DEFAULT
+#define	LINK_START_DEFAULT_SPEC CONCAT3(LINK_START_,TARGET_BOARD_DEFAULT,_SPEC)
+#else
 #define LINK_START_DEFAULT_SPEC ""
+#endif
 
 /* Override svr4.h definition.  */
 #undef	LINK_SPEC
@@ -720,6 +734,7 @@ SVR4_ASM_SPEC \
   myellowknife : %(link_os_yellowknife) ; \
   mmvme        : %(link_os_mvme)        ; \
   msim         : %(link_os_sim)         ; \
+  mxilinx      : %(link_os_xilinx)      ; \
   mcall-freebsd: %(link_os_freebsd)     ; \
   mcall-linux  : %(link_os_linux)       ; \
   mcall-gnu    : %(link_os_gnu)         ; \
@@ -727,7 +742,11 @@ SVR4_ASM_SPEC \
   mcall-openbsd: %(link_os_openbsd)     ; \
                : %(link_os_default)     }"
 
+#ifdef TARGET_BOARD_DEFAULT
+#define	LINK_OS_DEFAULT_SPEC CONCAT3(LINK_OS_,TARGET_BOARD_DEFAULT,_SPEC)
+#else
 #define LINK_OS_DEFAULT_SPEC ""
+#endif
 
 #define DRIVER_SELF_SPECS "%{mfpu=none: %<mfpu=* \
  	%<msingle-float %<mdouble-float}"
@@ -739,6 +758,7 @@ SVR4_ASM_SPEC \
   myellowknife : %(cpp_os_yellowknife) ; \
   mmvme        : %(cpp_os_mvme)        ; \
   msim         : %(cpp_os_sim)         ; \
+  mxilinx      : %(cpp_os_xilinx)      ; \
   mcall-freebsd: %(cpp_os_freebsd)     ; \
   mcall-linux  : %(cpp_os_linux)       ; \
   mcall-gnu    : %(cpp_os_gnu)         ; \
@@ -746,7 +766,11 @@ SVR4_ASM_SPEC \
   mcall-openbsd: %(cpp_os_openbsd)     ; \
                : %(cpp_os_default)     }"
 
+#ifdef TARGET_BOARD_DEFAULT
+#define	CPP_OS_DEFAULT_SPEC CONCAT3(CPP_OS_,TARGET_BOARD_DEFAULT,_SPEC)
+#else
 #define	CPP_OS_DEFAULT_SPEC ""
+#endif
 
 /* Override svr4.h definition.  */
 #undef	STARTFILE_SPEC
@@ -755,6 +779,7 @@ SVR4_ASM_SPEC \
   myellowknife : %(startfile_yellowknife) ; \
   mmvme        : %(startfile_mvme)        ; \
   msim         : %(startfile_sim)         ; \
+  mxilinx      : %(startfile_xilinx)      ; \
   mcall-freebsd: %(startfile_freebsd)     ; \
   mcall-linux  : %(startfile_linux)       ; \
   mcall-gnu    : %(startfile_gnu)         ; \
@@ -762,7 +787,11 @@ SVR4_ASM_SPEC \
   mcall-openbsd: %(startfile_openbsd)     ; \
                : %(startfile_default)     }"
 
+#ifdef TARGET_BOARD_DEFAULT
+#define	STARTFILE_DEFAULT_SPEC CONCAT3(STARTFILE_,TARGET_BOARD_DEFAULT,_SPEC)
+#else
 #define	STARTFILE_DEFAULT_SPEC "ecrti.o%s crtbegin.o%s"
+#endif
 
 /* Override svr4.h definition.  */
 #undef	LIB_SPEC
@@ -771,6 +800,7 @@ SVR4_ASM_SPEC \
   myellowknife : %(lib_yellowknife) ; \
   mmvme        : %(lib_mvme)        ; \
   msim         : %(lib_sim)         ; \
+  mxilinx      : %(lib_xilinx)      ; \
   mcall-freebsd: %(lib_freebsd)     ; \
   mcall-linux  : %(lib_linux)       ; \
   mcall-gnu    : %(lib_gnu)         ; \
@@ -778,7 +808,11 @@ SVR4_ASM_SPEC \
   mcall-openbsd: %(lib_openbsd)     ; \
                : %(lib_default)     }"
 
+#ifdef TARGET_BOARD_DEFAULT
+#define	LIB_DEFAULT_SPEC CONCAT3(LIB_,TARGET_BOARD_DEFAULT,_SPEC)
+#else
 #define LIB_DEFAULT_SPEC "-lc"
+#endif
 
 /* Override svr4.h definition.  */
 #undef	ENDFILE_SPEC
@@ -787,6 +821,7 @@ SVR4_ASM_SPEC \
   myellowknife : %(endfile_yellowknife) ; \
   mmvme        : %(endfile_mvme)        ; \
   msim         : %(endfile_sim)         ; \
+  mxilinx      : %(endfile_xilinx)      ; \
   mcall-freebsd: %(endfile_freebsd)     ; \
   mcall-linux  : %(endfile_linux)       ; \
   mcall-gnu    : %(endfile_gnu)         ; \
@@ -796,7 +831,27 @@ SVR4_ASM_SPEC \
 
 #define CRTSAVRES_DEFAULT_SPEC ""
 
-#define	ENDFILE_DEFAULT_SPEC "crtend.o%s ecrtn.o%s"
+#ifdef TARGET_BOARD_DEFAULT
+#define ENDFILE_DEFAULT_SPEC CONCAT3(ENDFILE_,TARGET_BOARD_DEFAULT,_SPEC)
+#else
+#define ENDFILE_DEFAULT_SPEC "crtend.o%s ecrtn.o%s"
+#endif
+
+/* Override definition.  */
+#undef	LIBGCC_SPEC
+#define	LIBGCC_SPEC "\
+%{mads         : -lgcc		    ; \
+  myellowknife : -lgcc		    ; \
+  mmvme        : -lgcc		    ; \
+  msim         : -lgcc		    ; \
+  mwindiss     : -lgcc		    ; \
+  mxilinx      : %(libgcc_xilinx)   ; \
+  mcall-freebsd: -lgcc		    ; \
+  mcall-linux  : -lgcc		    ; \
+  mcall-gnu    : -lgcc		    ; \
+  mcall-netbsd : -lgcc		    ; \
+  mcall-openbsd: -lgcc		    ; \
+               : %(libgcc_default)  }"
 
 /* Motorola ADS support.  */
 #define LIB_ADS_SPEC "--start-group -lads -lc --end-group"
@@ -811,6 +866,8 @@ SVR4_ASM_SPEC \
 
 #define CPP_OS_ADS_SPEC ""
 
+#define LIBGCC_ADS_SPEC "-lgcc"
+
 /* Motorola Yellowknife support.  */
 #define LIB_YELLOWKNIFE_SPEC "--start-group -lyk -lc --end-group"
 
@@ -824,6 +881,8 @@ SVR4_ASM_SPEC \
 
 #define CPP_OS_YELLOWKNIFE_SPEC ""
 
+#define LIBGCC_YELLOWKNIFE_SPEC "-lgcc"
+
 /* Motorola MVME support.  */
 #define LIB_MVME_SPEC "--start-group -lmvme -lc --end-group"
 
@@ -837,6 +896,8 @@ SVR4_ASM_SPEC \
 
 #define CPP_OS_MVME_SPEC ""
 
+#define LIBGCC_MVME_SPEC "-lgcc"
+
 /* PowerPC simulator based on netbsd system calls support.  */
 #define LIB_SIM_SPEC "--start-group -lsim -lc --end-group"
 
@@ -850,8 +911,9 @@ SVR4_ASM_SPEC \
 
 #define CPP_OS_SIM_SPEC ""
 
-/* FreeBSD support.  */
+#define LIBGCC_SIM_SPEC "-lgcc"
 
+/* FreeBSD support.  */
 #define CPP_OS_FREEBSD_SPEC	"\
   -D__PPC__ -D__ppc__ -D__PowerPC__ -D__powerpc__ \
   -Acpu=powerpc -Amachine=powerpc"
@@ -873,6 +935,8 @@ SVR4_ASM_SPEC \
     %{static:-Bstatic}} \
   %{symbolic:-Bsymbolic}"
 
+#define LIBGCC_FREEBSD_SPEC "-lgcc"
+
 /* GNU/Linux support.  */
 #define LIB_LINUX_SPEC "%{mnewlib: --start-group -llinux -lc --end-group } \
 %{!mnewlib: %{pthread:-lpthread} %{shared:-lc} \
@@ -921,6 +985,8 @@ SVR4_ASM_SPEC \
     %{std=gnu*:-Dunix -D__unix -Dlinux -D__linux}}}		  \
 -Asystem=linux -Asystem=unix -Asystem=posix %{pthread:-D_REENTRANT}"
 
+#define LIBGCC_LINUX_SPEC "-lgcc"
+
 /* GNU/Hurd support.  */
 #define LIB_GNU_SPEC "%{mnewlib: --start-group -lgnu -lc --end-group } \
 %{!mnewlib: %{shared:-lc} %{!shared: %{pthread:-lpthread } \
@@ -946,6 +1012,8 @@ SVR4_ASM_SPEC \
   %{!ansi: -Dunix -D__unix}}			                \
 -Asystem=gnu -Asystem=unix -Asystem=posix %{pthread:-D_REENTRANT}"
 
+#define LIBGCC_GNU_SPEC "-lgcc"
+
 /* NetBSD support.  */
 #define LIB_NETBSD_SPEC "\
 %{profile:-lgmon -lc_p} %{!profile:-lc}"
@@ -969,6 +1037,8 @@ ncrtn.o%s"
 #define CPP_OS_NETBSD_SPEC "\
 -D__powerpc__ -D__NetBSD__ -D__KPRINTF_ATTRIBUTE__"
 
+#define LIBGCC_NETBSD_SPEC "-lgcc"
+
 /* OpenBSD support.  */
 #ifndef	LIB_OPENBSD_SPEC
 #define LIB_OPENBSD_SPEC "%{!shared:%{pthread:-lpthread%{p:_p}%{!p:%{pg:_p}}}} %{!shared:-lc%{p:_p}%{!p:%{pg:_p}}}"
@@ -997,6 +1067,37 @@ ncrtn.o%s"
 #define CPP_OS_OPENBSD_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}"
 #endif
 
+#define LIBGCC_OPENBSD_SPEC "-lgcc"
+
+/* Xilinx board support.  */
+
+#define LIB_XILINX_SPEC "                              \
+%{!nostdlib: --start-group -lxil -lc -lm --end-group   \
+%{mppcperflib: %{mfpu=*: -lppcstr405 -lgcc}            \
+%{!mfpu=*: -lppcstr405 -lppcfp -lgcc}}                 \
+%{!mppcperflib: -lgcc}}"
+
+#define CPP_OS_XILINX_SPEC "\
+%{mfpu=sp_lite: -DHAVE_XFPU_SP_LITE}           \
+%{mfpu=sp_full: -DHAVE_XFPU_SP_FULL}           \
+%{mfpu=dp_lite: -DHAVE_XFPU_DP_LITE}           \
+%{mfpu=dp_full: -DHAVE_XFPU_DP_FULL}           \
+%{mfpu=*:   -DHAVE_XFPU}"
+
+#define STARTFILE_XILINX_SPEC "                        \
+ecrti.o%s %{pg: %{!mno-clearbss: xil-pgcrt0.o%s} \
+%{mno-clearbss: xil-sim-pgcrt0.o%s}}            \
+%{!pg: %{!mno-clearbss: xil-crt0.o%s}           \
+%{mno-clearbss: xil-sim-crt0.o%s}} crtbegin.o%s"
+
+#define ENDFILE_XILINX_SPEC "crtend.o%s ecrtn.o%s"
+
+#define LINK_START_XILINX_SPEC "-T xilinx.ld%s"
+
+#define LINK_OS_XILINX_SPEC ""
+
+#define LIBGCC_XILINX_SPEC "-lgcc"
+
 /* Define any extra SPECS that the compiler needs to generate.  */
 /* Override rs6000.h definition.  */
 #undef	SUBTARGET_EXTRA_SPECS
@@ -1011,6 +1112,7 @@ ncrtn.o%s"
   { "lib_linux",		LIB_LINUX_SPEC },			\
   { "lib_netbsd",		LIB_NETBSD_SPEC },			\
   { "lib_openbsd",		LIB_OPENBSD_SPEC },			\
+  { "lib_xilinx",		LIB_XILINX_SPEC },			\
   { "lib_default",		LIB_DEFAULT_SPEC },			\
   { "startfile_ads",		STARTFILE_ADS_SPEC },			\
   { "startfile_yellowknife",	STARTFILE_YELLOWKNIFE_SPEC },		\
@@ -1021,6 +1123,7 @@ ncrtn.o%s"
   { "startfile_linux",		STARTFILE_LINUX_SPEC },			\
   { "startfile_netbsd",		STARTFILE_NETBSD_SPEC },		\
   { "startfile_openbsd",	STARTFILE_OPENBSD_SPEC },		\
+  { "startfile_xilinx",		STARTFILE_XILINX_SPEC },		\
   { "startfile_default",	STARTFILE_DEFAULT_SPEC },		\
   { "endfile_ads",		ENDFILE_ADS_SPEC },			\
   { "endfile_yellowknife",	ENDFILE_YELLOWKNIFE_SPEC },		\
@@ -1031,6 +1134,7 @@ ncrtn.o%s"
   { "endfile_linux",		ENDFILE_LINUX_SPEC },			\
   { "endfile_netbsd",		ENDFILE_NETBSD_SPEC },			\
   { "endfile_openbsd",		ENDFILE_OPENBSD_SPEC },			\
+  { "endfile_xilinx",		ENDFILE_XILINX_SPEC },			\
   { "endfile_default",		ENDFILE_DEFAULT_SPEC },			\
   { "link_path",		LINK_PATH_SPEC },			\
   { "link_shlib",		LINK_SHLIB_SPEC },			\
@@ -1045,6 +1149,7 @@ ncrtn.o%s"
   { "link_start_linux",		LINK_START_LINUX_SPEC },		\
   { "link_start_netbsd",	LINK_START_NETBSD_SPEC },		\
   { "link_start_openbsd",	LINK_START_OPENBSD_SPEC },		\
+  { "link_start_xilinx",	LINK_START_XILINX_SPEC },		\
   { "link_start_default",	LINK_START_DEFAULT_SPEC },		\
   { "link_os",			LINK_OS_SPEC },				\
   { "link_os_ads",		LINK_OS_ADS_SPEC },			\
@@ -1056,6 +1161,7 @@ ncrtn.o%s"
   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
+  { "link_os_xilinx",		LINK_OS_XILINX_SPEC },			\
   { "link_os_default",		LINK_OS_DEFAULT_SPEC },			\
   { "cc1_endian_big",		CC1_ENDIAN_BIG_SPEC },			\
   { "cc1_endian_little",	CC1_ENDIAN_LITTLE_SPEC },		\
@@ -1070,8 +1176,11 @@ ncrtn.o%s"
   { "cpp_os_linux",		CPP_OS_LINUX_SPEC },			\
   { "cpp_os_netbsd",		CPP_OS_NETBSD_SPEC },			\
   { "cpp_os_openbsd",		CPP_OS_OPENBSD_SPEC },			\
+  { "cpp_os_xilinx",		CPP_OS_XILINX_SPEC },			\
   { "cpp_os_default",		CPP_OS_DEFAULT_SPEC },			\
   { "fbsd_dynamic_linker",	FBSD_DYNAMIC_LINKER },			\
+  { "libgcc_xilinx",		LIBGCC_XILINX_SPEC },			\
+  { "libgcc_default",		LIBGCC_DEFAULT_SPEC },			\
   SUBSUBTARGET_EXTRA_SPECS
 
 #define	SUBSUBTARGET_EXTRA_SPECS
diff -urNp --exclude '*.swp' --exclude DEV-PHASE --exclude .svn gcc-orig/gcc/config/rs6000/sysv4.opt gcc/gcc/config/rs6000/sysv4.opt
--- gcc-orig/gcc/config/rs6000/sysv4.opt	2008-10-22 10:07:45.000000000 -0700
+++ gcc/gcc/config/rs6000/sysv4.opt	2008-10-22 10:09:05.000000000 -0700
@@ -142,3 +142,8 @@ Generate code to use a non-exec PLT and 
 mbss-plt
 Target Report RejectNegative Var(secure_plt, 0)
 Generate code for old exec BSS PLT
+
+mxilinx
+Target RejectNegative
+Build for Xilinx target
+
diff -urNp --exclude '*.swp' --exclude DEV-PHASE --exclude .svn gcc-orig/gcc/config.gcc gcc/gcc/config.gcc
--- gcc-orig/gcc/config.gcc	2008-10-22 10:07:47.000000000 -0700
+++ gcc/gcc/config.gcc	2008-10-22 10:09:05.000000000 -0700
@@ -136,6 +136,8 @@
 #
 #  target_cpu_default	Set to override the default target model.
 #
+#  target_board_default	Set to override the default target board.
+#
 #  gdb_needs_out_file_path
 #			Set to yes if gdb needs a dir command with
 #			`dirname $out_file`.
@@ -183,6 +185,8 @@ xm_defines=
 use_collect2=
 # Set this to override the default target model.
 target_cpu_default=
+# Set this to override the default target board.
+target_board_default=
 # Set this if gdb needs a dir command with `dirname $out_file`
 gdb_needs_out_file_path=
 # Set this to control which thread package will be used.
@@ -3153,3 +3157,15 @@ then
 		target_cpu_default=$target_cpu_default2
 	fi
 fi
+
+if [ "x$with_board" != "x" ]; then 
+	target_board_default=`echo $with_board|tr a-z A-Z`
+        case ${target_board_default} in
+	        YELLOWKNIFE | ADS | MVME | SIM | XILINX )
+                	;;
+          	*)
+                	echo "-with-board=$with_board is not valid"
+                	exit 1
+			;;
+	esac
+fi
diff -urNp --exclude '*.swp' --exclude DEV-PHASE --exclude .svn gcc-orig/gcc/configure gcc/gcc/configure
--- gcc-orig/gcc/configure	2008-10-22 10:07:45.000000000 -0700
+++ gcc/gcc/configure	2008-10-22 10:09:05.000000000 -0700
@@ -458,7 +458,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical build_libsubdir build_subdir host_subdir target_subdir GENINSRC CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE NO_MINUS_C_MINUS_O OUTPUT_OPTION CPP EGREP loose_warn strict_warn warn_cflags nocommon_flag TREEBROWSER valgrind_path valgrind_path_defines valgrind_command coverage_flags enable_multilib enable_decimal_float enable_fixed_point enable_shared TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE CROSS_SYSTEM_HEADER_DIR onestep PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI datarootdir docdir htmldir SET_MAKE AWK LN_S LN RANLIB ac_ct_RANLIB ranlib_flags INSTALL INSTALL_PROGRAM INSTALL_DATA make_compare_target have_mktemp_command MAKEINFO BUILD_INFO GENERATED_MANPAGES FLEX BISON NM AR COLLECT2_LIBS GNAT_LIBEXC LDEXP_LIB TARGET_GETGROUPS_T LIBICONV LTLIBICONV LIBICONV_DEP manext objext gthread_flags extra_modes_file extra_opt_files USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT CROSS ALL SYSTEM_HEADER_DIR inhibit_libc CC_FOR_BUILD BUILD_CFLAGS BUILD_LDFLAGS STMP_FIXINC STMP_FIXPROTO collect2 LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN OBJDUMP ac_ct_OBJDUMP ac_ct_AR STRIP ac_ct_STRIP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 objdir enable_fast_install gcc_cv_as ORIGINAL_AS_FOR_TARGET gcc_cv_ld ORIGINAL_LD_FOR_TARGET gcc_cv_nm ORIGINAL_NM_FOR_TARGET gcc_cv_objdump libgcc_visibility GGC zlibdir zlibinc MAINT gcc_tooldir dollar slibdir subdirs srcdir all_compilers all_gtfiles all_lang_makefrags all_lang_makefiles all_languages all_selected_languages build_exeext build_install_headers_dir build_xm_file_list build_xm_include_list build_xm_defines build_file_translate check_languages cpp_install_dir xmake_file tmake_file extra_gcc_objs extra_headers_list extra_objs extra_parts extra_passes extra_programs float_h_file gcc_config_arguments gcc_gxx_include_dir host_exeext host_xm_file_list host_xm_include_list host_xm_defines out_host_hook_obj install lang_opt_files lang_specs_files lang_tree_files local_prefix md_file objc_boehm_gc out_file out_object_file thread_file tm_file_list tm_include_list tm_defines tm_p_file_list tm_p_include_list xm_file_list xm_include_list xm_defines c_target_objs cxx_target_objs fortran_target_objs target_cpu_default GMPLIBS GMPINC PPLLIBS PPLINC CLOOGLIBS CLOOGINC LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical build_libsubdir build_subdir host_subdir target_subdir GENINSRC CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE NO_MINUS_C_MINUS_O OUTPUT_OPTION CPP EGREP loose_warn strict_warn warn_cflags nocommon_flag TREEBROWSER valgrind_path valgrind_path_defines valgrind_command coverage_flags enable_multilib enable_decimal_float enable_fixed_point enable_shared TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE CROSS_SYSTEM_HEADER_DIR onestep PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI datarootdir docdir htmldir SET_MAKE AWK LN_S LN RANLIB ac_ct_RANLIB ranlib_flags INSTALL INSTALL_PROGRAM INSTALL_DATA make_compare_target have_mktemp_command MAKEINFO BUILD_INFO GENERATED_MANPAGES FLEX BISON NM AR COLLECT2_LIBS GNAT_LIBEXC LDEXP_LIB TARGET_GETGROUPS_T LIBICONV LTLIBICONV LIBICONV_DEP manext objext gthread_flags extra_modes_file extra_opt_files USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT CROSS ALL SYSTEM_HEADER_DIR inhibit_libc CC_FOR_BUILD BUILD_CFLAGS BUILD_LDFLAGS STMP_FIXINC STMP_FIXPROTO collect2 LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN OBJDUMP ac_ct_OBJDUMP ac_ct_AR STRIP ac_ct_STRIP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 objdir enable_fast_install gcc_cv_as ORIGINAL_AS_FOR_TARGET gcc_cv_ld ORIGINAL_LD_FOR_TARGET gcc_cv_nm ORIGINAL_NM_FOR_TARGET gcc_cv_objdump libgcc_visibility GGC zlibdir zlibinc MAINT gcc_tooldir dollar slibdir subdirs srcdir all_compilers all_gtfiles all_lang_makefrags all_lang_makefiles all_languages all_selected_languages build_exeext build_install_headers_dir build_xm_file_list build_xm_include_list build_xm_defines build_file_translate check_languages cpp_install_dir xmake_file tmake_file extra_gcc_objs extra_headers_list extra_objs extra_parts extra_passes extra_programs float_h_file gcc_config_arguments gcc_gxx_include_dir host_exeext host_xm_file_list host_xm_include_list host_xm_defines out_host_hook_obj install lang_opt_files lang_specs_files lang_tree_files local_prefix md_file objc_boehm_gc out_file out_object_file thread_file tm_file_list tm_include_list tm_defines tm_p_file_list tm_p_include_list xm_file_list xm_include_list xm_defines c_target_objs cxx_target_objs fortran_target_objs target_cpu_default target_board_default GMPLIBS GMPINC PPLLIBS PPLINC CLOOGLIBS CLOOGINC LIBOBJS LTLIBOBJS'
 ac_subst_files='language_hooks'
 ac_pwd=`pwd`
 
@@ -24718,6 +24718,7 @@ fi;
 
 
 
+
 # Echo link setup.
 if test x${build} = x${host} ; then
   if test x${host} = x${target} ; then
@@ -25590,6 +25591,7 @@ s,@c_target_objs@,$c_target_objs,;t t
 s,@cxx_target_objs@,$cxx_target_objs,;t t
 s,@fortran_target_objs@,$fortran_target_objs,;t t
 s,@target_cpu_default@,$target_cpu_default,;t t
+s,@target_board_default@,$target_board_default,;t t
 s,@GMPLIBS@,$GMPLIBS,;t t
 s,@GMPINC@,$GMPINC,;t t
 s,@PPLLIBS@,$PPLLIBS,;t t
diff -urNp --exclude '*.swp' --exclude DEV-PHASE --exclude .svn gcc-orig/gcc/configure.ac gcc/gcc/configure.ac
--- gcc-orig/gcc/configure.ac	2008-10-22 10:07:41.000000000 -0700
+++ gcc/gcc/configure.ac	2008-10-22 10:09:05.000000000 -0700
@@ -3876,6 +3876,7 @@ AC_SUBST(c_target_objs)
 AC_SUBST(cxx_target_objs)
 AC_SUBST(fortran_target_objs)
 AC_SUBST(target_cpu_default)
+AC_SUBST(target_board_default)
 
 AC_SUBST_FILE(language_hooks)
 
diff -urNp --exclude '*.swp' --exclude DEV-PHASE --exclude .svn gcc-orig/gcc/doc/install.texi gcc/gcc/doc/install.texi
--- gcc-orig/gcc/doc/install.texi	2008-10-22 10:07:44.000000000 -0700
+++ gcc/gcc/doc/install.texi	2008-10-22 10:09:05.000000000 -0700
@@ -1501,6 +1501,11 @@ When you use this option, you should ens
 @command{ranlib} and @command{strip} if necessary, and possibly
 @command{objdump}.  Otherwise, GCC may use an inconsistent set of
 tools.
+
+@item --with-board
+@itemx --with-board=``@var{board}''
+Specifies the default target board.  Equivalent to specifying -m@var{board}
+on the gcc command line. 
 @end table
 
 @subheading Java-Specific Options
diff -urNp --exclude '*.swp' --exclude DEV-PHASE --exclude .svn gcc-orig/gcc/doc/invoke.texi gcc/gcc/doc/invoke.texi
--- gcc-orig/gcc/doc/invoke.texi	2008-10-22 10:07:44.000000000 -0700
+++ gcc/gcc/doc/invoke.texi	2008-10-22 10:09:05.000000000 -0700
@@ -741,7 +741,7 @@ See RS/6000 and PowerPC Options.
 -mdlmzb -mno-dlmzb @gol
 -mfloat-gprs=yes  -mfloat-gprs=no -mfloat-gprs=single -mfloat-gprs=double @gol
 -mprototype  -mno-prototype @gol
--msim  -mmvme  -mads  -myellowknife  -memb  -msdata @gol
+-msim  -mmvme  -mads  -myellowknife  -mxilinx  memb  -msdata @gol
 -msdata=@var{opt}  -mvxworks  -G @var{num}  -pthread}
 
 @emph{S/390 and zSeries Options}
@@ -13968,9 +13968,16 @@ On embedded PowerPC systems, assume that
 @item -myellowknife
 @opindex myellowknife
 On embedded PowerPC systems, assume that the startup module is called
-@file{crt0.o} and the standard C libraries are @file{libyk.a} and
+@file{crt0.o} and the standard C libraries are @file{libxil.a} and
 @file{libc.a}.
 
+@item -mxilinx
+@opindex mxilinx
+On embedded PowerPC systems, assume that the startup module is called
+@file{xil-crt0.o} and the standard C libraries are @file{libyk.a} and
+@file{libc.a}.  Also set appropriate options to support Xilinx 
+target boards.
+
 @item -mvxworks
 @opindex mvxworks
 On System V.4 and embedded PowerPC systems, specify that you are
diff -urNp --exclude '*.swp' --exclude DEV-PHASE --exclude .svn gcc-orig/gcc/Makefile.in gcc/gcc/Makefile.in
--- gcc-orig/gcc/Makefile.in	2008-10-22 10:07:41.000000000 -0700
+++ gcc/gcc/Makefile.in	2008-10-22 10:09:05.000000000 -0700
@@ -436,6 +436,7 @@ lang_opt_files=@lang_opt_files@ $(srcdir
 lang_specs_files=@lang_specs_files@
 lang_tree_files=@lang_tree_files@
 target_cpu_default=@target_cpu_default@
+target_board_default=@target_board_default@
 GCC_THREAD_FILE=@thread_file@
 OBJC_BOEHM_GC=@objc_boehm_gc@
 GTHREAD_FLAGS=@gthread_flags@
@@ -1510,6 +1511,7 @@ cs-tconfig.h: Makefile
 
 cs-tm.h: Makefile
 	TARGET_CPU_DEFAULT="$(target_cpu_default)" \
+	TARGET_BOARD_DEFAULT=$(target_board_default) \
 	HEADERS="$(tm_include_list)" DEFINES="$(tm_defines)" \
 	$(SHELL) $(srcdir)/mkconfig.sh tm.h
 
diff -urNp --exclude '*.swp' --exclude DEV-PHASE --exclude .svn gcc-orig/gcc/mkconfig.sh gcc/gcc/mkconfig.sh
--- gcc-orig/gcc/mkconfig.sh	2008-10-22 10:07:45.000000000 -0700
+++ gcc/gcc/mkconfig.sh	2008-10-22 10:09:05.000000000 -0700
@@ -21,11 +21,13 @@
 # Generate gcc's various configuration headers:
 # config.h, tconfig.h, bconfig.h, tm.h, and tm_p.h.
 # $1 is the file to generate.  DEFINES, HEADERS, and possibly
-# TARGET_CPU_DEFAULT are expected to be set in the environment.
+# TARGET_CPU_DEFAULT and TARGET_BOARD_DEFAULT are expected to be 
+# set in the environment.
 
 if [ -z "$1" ]; then
     echo "Usage: DEFINES='list' HEADERS='list' \\" >&2
     echo "  [TARGET_CPU_DEFAULT='default'] mkconfig.sh FILE" >&2
+    echo "  [TARGET_BOARD_DEFAULT='default'] mkconfig.sh FILE" >&2
     exit 1
 fi
 
@@ -54,6 +56,12 @@ if [ "$TARGET_CPU_DEFAULT" != "" ]; then
     echo "#define TARGET_CPU_DEFAULT ($TARGET_CPU_DEFAULT)" >> ${output}T
 fi
 
+# Define TARGET_BOARD_DEFAULT if the system wants one.
+# This substitutes for lots of *.h files.
+if [ "$TARGET_BOARD_DEFAULT" != "" ]; then
+    echo "#define TARGET_BOARD_DEFAULT $TARGET_BOARD_DEFAULT" >> ${output}T
+fi
+
 # Provide defines for other macros set in config.gcc for this file.
 for def in $DEFINES; do
     echo "#ifndef $def" | sed 's/=.*//' >> ${output}T

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