Index: .gitignore
===================================================================
--- .gitignore	(revision f7b9faf66a30f3f2c7b8fe556bdce67182aea11c)
+++ .gitignore	(revision 6385d628550f1cf373b19b4d703caee2a3e27fd7)
@@ -31,5 +31,6 @@
 
 src/prelude/builtins.cf
-src/prelude/builtins.c
+src/prelude/gcc-builtins.cf
+src/prelude/gcc-builtins.c
 src/prelude/extras.cf
 src/prelude/bootloader.c
Index: src/libcfa/Makefile.am
===================================================================
--- src/libcfa/Makefile.am	(revision f7b9faf66a30f3f2c7b8fe556bdce67182aea11c)
+++ src/libcfa/Makefile.am	(revision 6385d628550f1cf373b19b4d703caee2a3e27fd7)
@@ -72,5 +72,5 @@
 libcfa_a_CFLAGS = -nodebug -O2
 libcfa_d_a_SOURCES = ${libsrc}
-libcfa_d_a_CFLAGS = -debug -O0
+libcfa_d_a_CFLAGS = -debug -O0 #No need for __CFA_DEBUG__ since we pass -debug
 
 stdhdr = ${shell echo stdhdr/*}
Index: src/libcfa/Makefile.in
===================================================================
--- src/libcfa/Makefile.in	(revision f7b9faf66a30f3f2c7b8fe556bdce67182aea11c)
+++ src/libcfa/Makefile.in	(revision 6385d628550f1cf373b19b4d703caee2a3e27fd7)
@@ -332,5 +332,5 @@
 libcfa_a_CFLAGS = -nodebug -O2
 libcfa_d_a_SOURCES = ${libsrc}
-libcfa_d_a_CFLAGS = -debug -O0
+libcfa_d_a_CFLAGS = -debug -O0 #No need for __CFA_DEBUG__ since we pass -debug
 stdhdr = ${shell echo stdhdr/*}
 cfa_includedir = $(CFA_INCDIR)
Index: src/main.cc
===================================================================
--- src/main.cc	(revision f7b9faf66a30f3f2c7b8fe556bdce67182aea11c)
+++ src/main.cc	(revision 6385d628550f1cf373b19b4d703caee2a3e27fd7)
@@ -186,7 +186,13 @@
 		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" );
+			parse( gcc_builtins, LinkageSpec::Compiler );
 
 			// read the extra prelude in, if not generating the cfa library
Index: src/prelude/Makefile.am
===================================================================
--- src/prelude/Makefile.am	(revision f7b9faf66a30f3f2c7b8fe556bdce67182aea11c)
+++ src/prelude/Makefile.am	(revision 6385d628550f1cf373b19b4d703caee2a3e27fd7)
@@ -20,5 +20,5 @@
 # put into lib for now
 cfalibdir = ${CFA_LIBDIR}
-cfalib_DATA = 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
 
@@ -28,8 +28,8 @@
 
 # create forward declarations for gcc builtins
-builtins.cf : builtins.c prototypes.sed
+gcc-builtins.cf : gcc-builtins.c prototypes.sed
 	${AM_V_GEN}@BACKEND_CC@ -E -P $< | sed -f prototypes.sed > $@
 
-builtins.c : builtins.def prototypes.awk
+gcc-builtins.c : builtins.def prototypes.awk
 	${AM_V_GEN}@BACKEND_CC@ -E prototypes.c | awk -f prototypes.awk > $@
 
@@ -38,9 +38,13 @@
 prototypes.awk :
 
-../libcfa/libcfa-prelude.c : prelude.cf extras.cf 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 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 = builtins.c 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 f7b9faf66a30f3f2c7b8fe556bdce67182aea11c)
+++ src/prelude/Makefile.in	(revision 6385d628550f1cf373b19b4d703caee2a3e27fd7)
@@ -211,7 +211,7 @@
 # put into lib for now
 cfalibdir = ${CFA_LIBDIR}
-cfalib_DATA = 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 = builtins.c 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
 
@@ -425,8 +425,8 @@
 
 # create forward declarations for gcc builtins
-builtins.cf : builtins.c prototypes.sed
+gcc-builtins.cf : gcc-builtins.c prototypes.sed
 	${AM_V_GEN}@BACKEND_CC@ -E -P $< | sed -f prototypes.sed > $@
 
-builtins.c : builtins.def prototypes.awk
+gcc-builtins.c : builtins.def prototypes.awk
 	${AM_V_GEN}@BACKEND_CC@ -E prototypes.c | awk -f prototypes.awk > $@
 
@@ -435,8 +435,12 @@
 prototypes.awk :
 
-../libcfa/libcfa-prelude.c : prelude.cf extras.cf 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 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 6385d628550f1cf373b19b4d703caee2a3e27fd7)
+++ src/prelude/builtins.c	(revision 6385d628550f1cf373b19b4d703caee2a3e27fd7)
@@ -0,0 +1,1 @@
+typedef unsigned long long __cfaabi_exception_type_t;
