Package: libselinux
Severity: serious
Justification: no longer builds from source


This may be the fault of linux-kernel-headers more than libselinux, but as of
linux-kernel-headers 2.6.17-6-1, I can't build libselinux due to undefined
symbol errors concerning the use of PAGE_SIZE in a number of places.  The
sources are #including <asm/page.h>, which on i386/amd64 actually define
something, but on powerpc contain nothing at all unless __KERNEL__ is defined.

Using getpagesize() (e.g. with the attached patch) seems to work just fine.


-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable')
Architecture: powerpc (ppc)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17.6
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
--- libselinux-1.30.orig/src/canonicalize_context.c
+++ libselinux-1.30/src/canonicalize_context.c
@@ -5,7 +5,6 @@
 #include <stdio.h>
 #include <errno.h>
 #include <string.h>
-#include <asm/page.h>
 #include "selinux_internal.h"
 #include "policy.h"
 #include <limits.h>
@@ -23,7 +22,7 @@
 	if (fd < 0)
 		return -1;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf) {
 		ret = -1;
--- libselinux-1.30.orig/src/compute_av.c
+++ libselinux-1.30/src/compute_av.c
@@ -5,7 +5,6 @@
 #include <stdio.h>
 #include <errno.h>
 #include <string.h>
-#include <asm/page.h>
 #include "selinux_internal.h"
 #include "policy.h"
 #include <limits.h>
@@ -26,7 +25,7 @@
 	if (fd < 0) 
 		return -1;
 
-	len = PAGE_SIZE;
+	len = getpagesize();
 	buf = malloc(len);
 	if (!buf) {
 		ret = -1;
--- libselinux-1.30.orig/src/compute_create.c
+++ libselinux-1.30/src/compute_create.c
@@ -5,7 +5,6 @@
 #include <stdio.h>
 #include <errno.h>
 #include <string.h>
-#include <asm/page.h>
 #include "selinux_internal.h"
 #include "policy.h"
 #include <limits.h>
@@ -25,7 +24,7 @@
 	if (fd < 0)
 		return -1;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf) {
 		ret = -1;
--- libselinux-1.30.orig/src/compute_member.c
+++ libselinux-1.30/src/compute_member.c
@@ -5,7 +5,6 @@
 #include <stdio.h>
 #include <errno.h>
 #include <string.h>
-#include <asm/page.h>
 #include "selinux_internal.h"
 #include "policy.h"
 #include <limits.h>
@@ -25,7 +24,7 @@
 	if (fd < 0)
 		return -1;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf) {
 		ret = -1;
--- libselinux-1.30.orig/src/compute_relabel.c
+++ libselinux-1.30/src/compute_relabel.c
@@ -5,7 +5,6 @@
 #include <stdio.h>
 #include <errno.h>
 #include <string.h>
-#include <asm/page.h>
 #include "selinux_internal.h"
 #include "policy.h"
 #include <limits.h>
@@ -25,7 +24,7 @@
 	if (fd < 0)
 		return -1;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf) {
 		ret = -1;
--- libselinux-1.30.orig/src/compute_user.c
+++ libselinux-1.30/src/compute_user.c
@@ -5,7 +5,6 @@
 #include <stdio.h>
 #include <errno.h>
 #include <string.h>
-#include <asm/page.h>
 #include "selinux_internal.h"
 #include "policy.h"
 #include <limits.h>
@@ -26,7 +25,7 @@
 	if (fd < 0)
 		return -1;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf) {
 		ret = -1;
--- libselinux-1.30.orig/src/enabled.c
+++ libselinux-1.30/src/enabled.c
@@ -5,7 +5,6 @@
 #include <stdlib.h>
 #include <errno.h>
 #include <limits.h>
-#include <asm/page.h>
 #include <stdio.h>
 #include "policy.h"
 
@@ -22,7 +21,7 @@
 	if (fd < 0)
 		return -1;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf) {
 		enabled = -1;
--- libselinux-1.30.orig/src/getcon.c
+++ libselinux-1.30/src/getcon.c
@@ -4,7 +4,6 @@
 #include "selinux_internal.h"
 #include <stdlib.h>
 #include <errno.h>
-#include <asm/page.h>
 #include "policy.h"
 
 int getcon_raw(security_context_t *context)
@@ -18,7 +17,7 @@
 	if (fd < 0)
 		return -1;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf) {
 		ret = -1;
--- libselinux-1.30.orig/src/getexeccon.c
+++ libselinux-1.30/src/getexeccon.c
@@ -3,7 +3,6 @@
 #include <string.h>
 #include <stdlib.h>
 #include <errno.h>
-#include <asm/page.h>
 #include "selinux_internal.h"
 #include "policy.h"
 
@@ -18,7 +17,7 @@
 	if (fd < 0)
 		return -1;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf) {
 		ret = -1;
--- libselinux-1.30.orig/src/getfscreatecon.c
+++ libselinux-1.30/src/getfscreatecon.c
@@ -3,7 +3,6 @@
 #include <string.h>
 #include <stdlib.h>
 #include <errno.h>
-#include <asm/page.h>
 #include "selinux_internal.h"
 #include "policy.h"
 
@@ -18,7 +17,7 @@
 	if (fd < 0)
 		return -1;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf) {
 		ret = -1;
--- libselinux-1.30.orig/src/getpidcon.c
+++ libselinux-1.30/src/getpidcon.c
@@ -4,7 +4,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <errno.h>
-#include <asm/page.h>
 #include "selinux_internal.h"
 #include "policy.h"
 
@@ -22,7 +21,7 @@
 	if (fd < 0)
 		return -1;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf) {
 		ret = -1;
--- libselinux-1.30.orig/src/getprevcon.c
+++ libselinux-1.30/src/getprevcon.c
@@ -4,7 +4,6 @@
 #include "selinux_internal.h"
 #include <stdlib.h>
 #include <errno.h>
-#include <asm/page.h>
 #include "policy.h"
 
 int getprevcon_raw(security_context_t *context)
@@ -18,7 +17,7 @@
 	if (fd < 0)
 		return -1;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf) {
 		ret = -1;
--- libselinux-1.30.orig/src/init.c
+++ libselinux-1.30/src/init.c
@@ -4,7 +4,6 @@
 #include <stdlib.h>
 #include <errno.h>
 #include <ctype.h>
-#include <asm/page.h>
 #include <stdio.h>
 #include <dlfcn.h>
 
@@ -27,7 +26,7 @@
 	if (!fp)
 		return;
 
-	size = PAGE_SIZE;
+	size = getpagesize();
 	buf = malloc(size);
 	if (!buf)
 		goto out;

Reply via email to