This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] alpha: Fix up NBPG in <sys/user.h>
- From: "Maciej W. Rozycki" <macro at linux-mips dot org>
- To: libc-alpha at sources dot redhat dot com
- Cc: binutils at sourceware dot org
- Date: Mon, 1 Oct 2007 14:54:02 +0100 (BST)
- Subject: [PATCH] alpha: Fix up NBPG in <sys/user.h>
Hello,
Linux headers stopped providing PAGE_SHIFT at some point, over a year
ago, and <asm/page.h>, at least for the Alpha, is now solely for the
kernel use only, wrapped by an #ifdef __KERNEL__ protection, so there is
no point in including it at all.
Here is a patch that provides the necessary definition in a way similar
to what the i386 port does. Without this change programs that make use of
NBPG do not build for the Alpha, e.g. (taken from a build of BFD):
alpha-linux-gcc -DHAVE_CONFIG_H -I. -DTRAD_CORE -I. -I. -I./../include -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -mcpu=ev4 -pipe -O2 -fomit-frame-pointer -c trad-core.c -fPIC -DPIC -o .libs/trad-core.o
trad-core.c: In function 'trad_unix_core_file_p':
trad-core.c:122: error: 'PAGE_SIZE' undeclared (first use in this function)
trad-core.c:122: error: (Each undeclared identifier is reported only once
trad-core.c:122: error: for each function it appears in.)
2007-10-01 Maciej W. Rozycki <macro@linux-mips.org>
* sysdeps/unix/sysv/linux/alpha/sys/user.h: Do not include
<asm/page.h>.
(PAGE_SHIFT, PAGE_SIZE, PAGE_MASK): Define.
Taken against 2.4, but applies to HEAD. Please apply.
Maciej
glibc-2.4-alpha-user-page.patch
diff -up --recursive --new-file glibc-2.4.macro/sysdeps/unix/sysv/linux/alpha/sys/user.h glibc-2.4/sysdeps/unix/sysv/linux/alpha/sys/user.h
--- glibc-2.4.macro/sysdeps/unix/sysv/linux/alpha/sys/user.h 2001-07-06 04:56:13.000000000 +0000
+++ glibc-2.4/sysdeps/unix/sysv/linux/alpha/sys/user.h 2007-09-28 21:03:52.000000000 +0000
@@ -23,7 +23,6 @@
only. Don't read too much into it. Don't use it for anything other
than gdb/strace unless you know what you are doing. */
-#include <asm/page.h>
#include <asm/reg.h>
struct user
@@ -41,6 +40,9 @@ struct user
char u_comm[32]; /* user command name */
};
+#define PAGE_SHIFT 13
+#define PAGE_SIZE (1UL << PAGE_SHIFT)
+#define PAGE_MASK (~(PAGE_SIZE-1))
#define NBPG PAGE_SIZE
#define UPAGES 1
#define HOST_TEXT_START_ADDR (u.start_code)