Index: .gitignore
===================================================================
--- .gitignore	(revision c038214d585eeb6d997917053fa0fff6eefcfe3d)
+++ .gitignore	(revision 807ce84f225be4233a74a86eb9f23d721f903d71)
@@ -31,5 +31,4 @@
 
 src/prelude/builtins.cf
-src/prelude/builtins.c
 src/prelude/gcc-builtins.cf
 src/prelude/gcc-builtins.c
Index: src/main.cc
===================================================================
--- src/main.cc	(revision c038214d585eeb6d997917053fa0fff6eefcfe3d)
+++ src/main.cc	(revision 807ce84f225be4233a74a86eb9f23d721f903d71)
@@ -186,4 +186,10 @@
 		if ( ! nopreludep ) {							// include gcc builtins
 			// -l is for initial build ONLY and builtins.cf is not in the lib directory so access it here.
+			// Read to cfa builtins, if not generating the cfa library
+			FILE * builtins = fopen( libcfap | treep ? "../prelude/builtins.cf" : CFA_LIBDIR "/builtins.cf", "r" );
+			assertf( builtins, "cannot open builtins.cf\n" );
+			parse( builtins, LinkageSpec::Compiler );
+
+			// Read to gcc builtins, if not generating the cfa library
 			FILE * gcc_builtins = fopen( libcfap | treep ? "../prelude/gcc-builtins.cf" : CFA_LIBDIR "/gcc-builtins.cf", "r" );
 			assertf( gcc_builtins, "cannot open gcc-builtins.cf\n" );
Index: src/prelude/Makefile.am
===================================================================
--- src/prelude/Makefile.am	(revision c038214d585eeb6d997917053fa0fff6eefcfe3d)
+++ src/prelude/Makefile.am	(revision 807ce84f225be4233a74a86eb9f23d721f903d71)
@@ -20,5 +20,5 @@
 # put into lib for now
 cfalibdir = ${CFA_LIBDIR}
-cfalib_DATA = gcc-builtins.cf extras.cf prelude.cf bootloader.c
+cfalib_DATA = gcc-builtins.cf builtins.cf extras.cf prelude.cf bootloader.c
 noinst_DATA = ../libcfa/libcfa-prelude.c
 
@@ -38,9 +38,13 @@
 prototypes.awk :
 
-../libcfa/libcfa-prelude.c : prelude.cf extras.cf gcc-builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
+# create forward declarations for cfa builtins
+builtins.cf : builtins.c
+	${AM_V_GEN}@BACKEND_CC@ -E -P ${<} -o ${@}
+
+../libcfa/libcfa-prelude.c : prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
 	${AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -l prelude.cf $@  # use src/cfa-cpp as not in lib until after install
 
-bootloader.c : bootloader.cf prelude.cf extras.cf gcc-builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
+bootloader.c : bootloader.cf prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
 	${AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -tpmL bootloader.cf $@  # use src/cfa-cpp as not in lib until after install
 
-MAINTAINERCLEANFILES = gcc-builtins.c gcc-builtins.cf extras.cf bootloader.c ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}}
+MAINTAINERCLEANFILES = gcc-builtins.c gcc-builtins.cf builtins.cf extras.cf bootloader.c ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}}
Index: src/prelude/Makefile.in
===================================================================
--- src/prelude/Makefile.in	(revision c038214d585eeb6d997917053fa0fff6eefcfe3d)
+++ src/prelude/Makefile.in	(revision 807ce84f225be4233a74a86eb9f23d721f903d71)
@@ -211,7 +211,7 @@
 # put into lib for now
 cfalibdir = ${CFA_LIBDIR}
-cfalib_DATA = gcc-builtins.cf extras.cf prelude.cf bootloader.c
+cfalib_DATA = gcc-builtins.cf builtins.cf extras.cf prelude.cf bootloader.c
 noinst_DATA = ../libcfa/libcfa-prelude.c
-MAINTAINERCLEANFILES = gcc-builtins.c gcc-builtins.cf extras.cf bootloader.c ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}}
+MAINTAINERCLEANFILES = gcc-builtins.c gcc-builtins.cf builtins.cf extras.cf bootloader.c ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}}
 all: all-am
 
@@ -435,8 +435,12 @@
 prototypes.awk :
 
-../libcfa/libcfa-prelude.c : prelude.cf extras.cf gcc-builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
+# create forward declarations for cfa builtins
+builtins.cf : builtins.c
+	${AM_V_GEN}@BACKEND_CC@ -E -P ${<} -o ${@}
+
+../libcfa/libcfa-prelude.c : prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
 	${AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -l prelude.cf $@  # use src/cfa-cpp as not in lib until after install
 
-bootloader.c : bootloader.cf prelude.cf extras.cf gcc-builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
+bootloader.c : bootloader.cf prelude.cf extras.cf gcc-builtins.cf builtins.cf ${abs_top_srcdir}/src/driver/cfa-cpp
 	${AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -tpmL bootloader.cf $@  # use src/cfa-cpp as not in lib until after install
 
Index: src/prelude/builtins.c
===================================================================
--- src/prelude/builtins.c	(revision 807ce84f225be4233a74a86eb9f23d721f903d71)
+++ src/prelude/builtins.c	(revision 807ce84f225be4233a74a86eb9f23d721f903d71)
@@ -0,0 +1,1 @@
+typedef unsigned long long __cfaabi_exception_type_t;
