diff -Naur apparmor.orig/apparmor-2.8.0/debian/changelog apparmor/apparmor-2.8.0/debian/changelog
--- apparmor.orig/apparmor-2.8.0/debian/changelog	2014-07-31 14:28:04.191226173 -0500
+++ apparmor/apparmor-2.8.0/debian/changelog	2014-08-01 15:01:01.007500846 -0500
@@ -1,3 +1,11 @@
+apparmor (2.8.0-5.2) unstable; urgency=low
+
+  * Fix FTBFS with clang
+    - Fixed undefined reference error in
+      parser/parser_interface.c
+
+ -- Arthur Marble <arthur@info9.net>  Fri, 01 Aug 2014 15:01:01 -0500
+
 apparmor (2.8.0-5.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Naur apparmor.orig/apparmor-2.8.0/debian/patches/clang-ftbfs.diff apparmor/apparmor-2.8.0/debian/patches/clang-ftbfs.diff 
--- apparmor.orig/apparmor-2.8.0/debian/patches/clang-ftbfs.diff	1969-12-31 18:00:00.000000000 -0600
+++ apparmor/apparmor-2.8.0/debian/patches/clang-ftbfs.diff	2014-08-01 14:58:42.863498440 -0500
@@ -0,0 +1,139 @@
+--- a/parser/parser_interface.c
++++ b/parser/parser_interface.c
+@@ -255,13 +255,13 @@ static inline void sd_inc(sd_serialize *
+ 	}
+ }
+ 
+-inline long sd_serial_size(sd_serialize *p)
++static inline long sd_serial_size(sd_serialize *p)
+ {
+ 	return (p->pos - p->buffer);
+ }
+ 
+ /* routines for writing data to the serialization buffer */
+-inline int sd_prepare_write(sd_serialize *p, enum sd_code code, size_t size)
++static inline int sd_prepare_write(sd_serialize *p, enum sd_code code, size_t size)
+ {
+ 	int num = (size / BUFFERINC) + 1;
+ 	if (p->pos + SD_CODE_SIZE + size > p->extent) {
+@@ -284,7 +284,7 @@ inline int sd_prepare_write(sd_serialize
+ 	return 1;
+ }
+ 
+-inline int sd_write8(sd_serialize *p, u8 b)
++static inline int sd_write8(sd_serialize *p, u8 b)
+ {
+ 	u8 *c;
+ 	if (!sd_prepare_write(p, SD_U8, sizeof(b)))
+@@ -295,7 +295,7 @@ inline int sd_write8(sd_serialize *p, u8
+ 	return 1;
+ }
+ 
+-inline int sd_write16(sd_serialize *p, u16 b)
++static inline int sd_write16(sd_serialize *p, u16 b)
+ {
+ 	u16 tmp;
+ 	if (!sd_prepare_write(p, SD_U16, sizeof(b)))
+@@ -306,7 +306,7 @@ inline int sd_write16(sd_serialize *p, u
+ 	return 1;
+ }
+ 
+-inline int sd_write32(sd_serialize *p, u32 b)
++static inline int sd_write32(sd_serialize *p, u32 b)
+ {
+ 	u32 tmp;
+ 	if (!sd_prepare_write(p, SD_U32, sizeof(b)))
+@@ -317,7 +317,7 @@ inline int sd_write32(sd_serialize *p, u
+ 	return 1;
+ }
+ 
+-inline int sd_write64(sd_serialize *p, u64 b)
++static inline int sd_write64(sd_serialize *p, u64 b)
+ {
+ 	u64 tmp;
+ 	if (!sd_prepare_write(p, SD_U64, sizeof(b)))
+@@ -328,7 +328,7 @@ inline int sd_write64(sd_serialize *p, u
+ 	return 1;
+ }
+ 
+-inline int sd_write_name(sd_serialize *p, char *name)
++static inline int sd_write_name(sd_serialize *p, char *name)
+ {
+ 	long size = 0;
+ 	PDEBUG("Writing name '%s'\n", name);
+@@ -346,7 +346,7 @@ inline int sd_write_name(sd_serialize *p
+ 	return 1;
+ }
+ 
+-inline int sd_write_blob(sd_serialize *p, void *b, int buf_size, char *name)
++static inline int sd_write_blob(sd_serialize *p, void *b, int buf_size, char *name)
+ {
+ 	u32 tmp;
+ 	if (!sd_write_name(p, name))
+@@ -362,7 +362,7 @@ inline int sd_write_blob(sd_serialize *p
+ }
+ 
+ #define align64(X) (((size_t) (X) + (size_t) 7) & ~((size_t) 7))
+-inline int sd_write_aligned_blob(sd_serialize *p, void *b, int buf_size,
++static inline int sd_write_aligned_blob(sd_serialize *p, void *b, int buf_size,
+ 				 char *name)
+ {
+ 	size_t pad;
+@@ -397,12 +397,12 @@ static int sd_write_strn(sd_serialize *p
+ 	return 1;
+ }
+ 
+-inline int sd_write_string(sd_serialize *p, char *b, char *name)
++static inline int sd_write_string(sd_serialize *p, char *b, char *name)
+ {
+ 	return sd_write_strn(p, b, strlen(b) + 1, name);
+ }
+ 
+-inline int sd_write_struct(sd_serialize *p, char *name)
++static inline int sd_write_struct(sd_serialize *p, char *name)
+ {
+ 	if (!sd_write_name(p, name))
+ 		return 0;
+@@ -411,14 +411,14 @@ inline int sd_write_struct(sd_serialize
+ 	return 1;
+ }
+ 
+-inline int sd_write_structend(sd_serialize *p)
++static inline int sd_write_structend(sd_serialize *p)
+ {
+ 	if (!sd_prepare_write(p, SD_STRUCTEND, 0))
+ 		return 0;
+ 	return 1;
+ }
+ 
+-inline int sd_write_array(sd_serialize *p, char *name, int size)
++static inline int sd_write_array(sd_serialize *p, char *name, int size)
+ {
+ 	u16 tmp;
+ 	if (!sd_write_name(p, name))
+@@ -431,14 +431,14 @@ inline int sd_write_array(sd_serialize *
+ 	return 1;
+ }
+ 
+-inline int sd_write_arrayend(sd_serialize *p)
++static inline int sd_write_arrayend(sd_serialize *p)
+ {
+ 	if (!sd_prepare_write(p, SD_ARRAYEND, 0))
+ 		return 0;
+ 	return 1;
+ }
+ 
+-inline int sd_write_list(sd_serialize *p, char *name)
++static inline int sd_write_list(sd_serialize *p, char *name)
+ {
+ 	if (!sd_write_name(p, name))
+ 		return 0;
+@@ -447,7 +447,7 @@ inline int sd_write_list(sd_serialize *p
+ 	return 1;
+ }
+ 
+-inline int sd_write_listend(sd_serialize *p)
++static inline int sd_write_listend(sd_serialize *p)
+ {
+ 	if (!sd_prepare_write(p, SD_LISTEND, 0))
+ 		return 0;
diff -Naur apparmor.orig/apparmor-2.8.0/debian/patches/series apparmor/apparmor-2.8.0/debian/patches/series 
--- apparmor.orig/apparmor-2.8.0/debian/patches/series	2014-07-31 14:28:04.187226173 -0500
+++ apparmor/apparmor-2.8.0/debian/patches/series	2014-08-01 14:48:10.543487429 -0500
@@ -38,3 +38,4 @@
 0037-easyprof-sdk-pt2.patch
 r2240-find-libs.patch
 r2247-fix-bison3.patch
+clang-ftbfs.diff
