[uClibc-cvs] CVS update of uClibc (ldso/include/ldso.h ldso/ldso/frv/dl-syscalls.h libc/misc/internals/__uClibc_main.c libc/stdlib/malloc/malloc.h libc/sysdeps/linux/alpha/bits/uClibc_page.h libc/sysdeps/linux/alpha/sys/user.h libc/sysdeps/linux/common/bits/uClibc_page.h libc/sysdeps/linux/i386/sys/user.h libc/sysdeps/linux/mips/bits/uClibc_page.h libc/sysdeps/linux/mips/sys/user.h libpthread/linuxthreads/internals.h)

Erik Andersen andersen at codepoet.org
Fri Aug 13 23:39:46 UTC 2004


    Date: Friday, August 13, 2004 @ 17:39:46
  Author: andersen
    Path: /var/cvs/uClibc

   Added: libc/sysdeps/linux/alpha/bits/uClibc_page.h (1.1)
          libc/sysdeps/linux/common/bits/uClibc_page.h (1.1)
          libc/sysdeps/linux/mips/bits/uClibc_page.h (1.1)
Modified: ldso/include/ldso.h (1.13 -> 1.14) ldso/ldso/frv/dl-syscalls.h
          (1.3 -> 1.4) libc/misc/internals/__uClibc_main.c (1.37 -> 1.38)
          libc/stdlib/malloc/malloc.h (1.19 -> 1.20)
          libc/sysdeps/linux/alpha/sys/user.h (1.1 -> 1.2)
          libc/sysdeps/linux/i386/sys/user.h (1.1 -> 1.2)
          libc/sysdeps/linux/mips/sys/user.h (1.2 -> 1.3)
          libpthread/linuxthreads/internals.h (1.8 -> 1.9)

Fixup PAGE_SIZE problems
 -Erik


Index: uClibc/ldso/include/ldso.h
diff -u uClibc/ldso/include/ldso.h:1.13 uClibc/ldso/include/ldso.h:1.14
--- uClibc/ldso/include/ldso.h:1.13	Thu Jul 29 21:32:40 2004
+++ uClibc/ldso/include/ldso.h	Fri Aug 13 17:39:40 2004
@@ -26,11 +26,7 @@
 #include <dl-syscall.h>
 #include <dl-string.h>
 /* Pull in the arch specific page size */
-#include <asm/page.h>
-#ifndef PAGE_SIZE
-#  define PAGE_SHIFT		12
-#  define PAGE_SIZE		(1UL << PAGE_SHIFT)
-#endif
+#include <bits/uClibc_page.h>
 /* Now the ldso specific headers */
 #include <dl-elf.h>
 #include <dl-hash.h>
Index: uClibc/ldso/ldso/frv/dl-syscalls.h
diff -u uClibc/ldso/ldso/frv/dl-syscalls.h:1.3 uClibc/ldso/ldso/frv/dl-syscalls.h:1.4
--- uClibc/ldso/ldso/frv/dl-syscalls.h:1.3	Fri May 14 04:59:09 2004
+++ uClibc/ldso/ldso/frv/dl-syscalls.h	Fri Aug 13 17:39:41 2004
@@ -42,7 +42,7 @@
 #  define MMAP2_PAGE_SHIFT 12
 # endif
 
-#include <asm/page.h> /* for PAGE_SIZE */
+#include <bits/uClibc_page.h> /* for PAGE_SIZE */
 inline static void *_dl_memset(void*,int,size_t);
 inline static ssize_t _dl_pread(int fd, void *buf, size_t count, off_t offset);
 
Index: uClibc/libc/misc/internals/__uClibc_main.c
diff -u uClibc/libc/misc/internals/__uClibc_main.c:1.37 uClibc/libc/misc/internals/__uClibc_main.c:1.38
--- uClibc/libc/misc/internals/__uClibc_main.c:1.37	Wed Aug  4 11:34:07 2004
+++ uClibc/libc/misc/internals/__uClibc_main.c	Fri Aug 13 17:39:42 2004
@@ -17,7 +17,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <elf.h>
-#include <sys/user.h>
+#include <bits/uClibc_page.h>
 #ifdef __UCLIBC_PROPOLICE__
 extern void __guard_setup(void);
 #endif
Index: uClibc/libc/stdlib/malloc/malloc.h
diff -u uClibc/libc/stdlib/malloc/malloc.h:1.19 uClibc/libc/stdlib/malloc/malloc.h:1.20
--- uClibc/libc/stdlib/malloc/malloc.h:1.19	Fri Jan 16 06:43:05 2004
+++ uClibc/libc/stdlib/malloc/malloc.h	Fri Aug 13 17:39:42 2004
@@ -14,9 +14,8 @@
 /* The alignment we guarantee for malloc return values.  */
 #define MALLOC_ALIGNMENT	(sizeof (double))
 
-/* The system pagesize we assume; we really ought to get it with
-   getpagesize, but gee, how annoying.  */
-#define MALLOC_PAGE_SIZE	4096
+/* The system pagesize... */
+#define MALLOC_PAGE_SIZE	_dl_pagesize
 
 /* The minimum size of block we request from the the system to extend the
    heap for small allocations (we may request a bigger block if necessary to
Index: uClibc/libc/sysdeps/linux/alpha/bits/uClibc_page.h
diff -u /dev/null uClibc/libc/sysdeps/linux/alpha/bits/uClibc_page.h:1.1
--- /dev/null	Fri Aug 13 17:39:46 2004
+++ uClibc/libc/sysdeps/linux/alpha/bits/uClibc_page.h	Fri Aug 13 17:39:43 2004
@@ -0,0 +1,28 @@
+/*  Copyright (C) 2004     Erik Andersen
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, write to the Free
+ *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* Supply an architecture specific value for PAGE_SIZE and friends.  */
+
+#ifndef _UCLIBC_PAGE_H
+#define _UCLIBC_PAGE_H
+
+/* PAGE_SHIFT determines the page size -- in this case 8192 */
+#define PAGE_SHIFT	13
+#define PAGE_SIZE	(1UL << PAGE_SHIFT)
+#define PAGE_MASK	(~(PAGE_SIZE-1))
+
+#endif /* _UCLIBC_PAGE_H */
Index: uClibc/libc/sysdeps/linux/alpha/sys/user.h
diff -u uClibc/libc/sysdeps/linux/alpha/sys/user.h:1.1 uClibc/libc/sysdeps/linux/alpha/sys/user.h:1.2
--- uClibc/libc/sysdeps/linux/alpha/sys/user.h:1.1	Fri May 10 02:28:15 2002
+++ uClibc/libc/sysdeps/linux/alpha/sys/user.h	Fri Aug 13 17:39:43 2004
@@ -23,7 +23,7 @@
    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 <bits/uClibc_page.h>
 #include <asm/reg.h>
 
 struct user
Index: uClibc/libc/sysdeps/linux/common/bits/uClibc_page.h
diff -u /dev/null uClibc/libc/sysdeps/linux/common/bits/uClibc_page.h:1.1
--- /dev/null	Fri Aug 13 17:39:46 2004
+++ uClibc/libc/sysdeps/linux/common/bits/uClibc_page.h	Fri Aug 13 17:39:44 2004
@@ -0,0 +1,28 @@
+/*  Copyright (C) 2004     Erik Andersen
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, write to the Free
+ *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* Supply an architecture specific value for PAGE_SIZE and friends.  */
+
+#ifndef _UCLIBC_PAGE_H
+#define _UCLIBC_PAGE_H
+
+/* PAGE_SHIFT determines the page size -- in this case 4096 */
+#define PAGE_SHIFT	12
+#define PAGE_SIZE	(1UL << PAGE_SHIFT)
+#define PAGE_MASK	(~(PAGE_SIZE-1))
+
+#endif /* _UCLIBC_PAGE_H */
Index: uClibc/libc/sysdeps/linux/i386/sys/user.h
diff -u uClibc/libc/sysdeps/linux/i386/sys/user.h:1.1 uClibc/libc/sysdeps/linux/i386/sys/user.h:1.2
--- uClibc/libc/sysdeps/linux/i386/sys/user.h:1.1	Fri Mar  1 13:46:11 2002
+++ uClibc/libc/sysdeps/linux/i386/sys/user.h	Fri Aug 13 17:39:44 2004
@@ -92,9 +92,7 @@
   int				u_debugreg [8];
 };
 
-#define PAGE_SHIFT		12
-#define PAGE_SIZE		(1UL << PAGE_SHIFT)
-#define PAGE_MASK		(~(PAGE_SIZE-1))
+#include <bits/uClibc_page.h>
 #define NBPG			PAGE_SIZE
 #define UPAGES			1
 #define HOST_TEXT_START_ADDR	(u.start_code)
Index: uClibc/libc/sysdeps/linux/mips/bits/uClibc_page.h
diff -u /dev/null uClibc/libc/sysdeps/linux/mips/bits/uClibc_page.h:1.1
--- /dev/null	Fri Aug 13 17:39:46 2004
+++ uClibc/libc/sysdeps/linux/mips/bits/uClibc_page.h	Fri Aug 13 17:39:44 2004
@@ -0,0 +1,35 @@
+/*  Copyright (C) 2004     Erik Andersen
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, write to the Free
+ *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* Supply an architecture specific value for PAGE_SIZE and friends.  */
+
+#ifndef _UCLIBC_PAGE_H
+#define _UCLIBC_PAGE_H
+
+/* PAGE_SIZE of mips is sortof wierd, and depends on how the kernel
+ * happens to have been configured.  It might use 4KB, 16K or 64K
+ * pages.  To avoid using the current kernel configuration settings,
+ * uClibc will simply use 4KB on mips and call it good. */
+#if 0
+#define PAGE_SHIFT	16
+#define PAGE_SHIFT	14
+#endif
+#define PAGE_SHIFT	12
+#define PAGE_SIZE	(1UL << PAGE_SHIFT)
+#define PAGE_MASK	(~(PAGE_SIZE-1))
+
+#endif /* _UCLIBC_PAGE_H */
Index: uClibc/libc/sysdeps/linux/mips/sys/user.h
diff -u uClibc/libc/sysdeps/linux/mips/sys/user.h:1.2 uClibc/libc/sysdeps/linux/mips/sys/user.h:1.3
--- uClibc/libc/sysdeps/linux/mips/sys/user.h:1.2	Fri Apr 23 15:39:34 2004
+++ uClibc/libc/sysdeps/linux/mips/sys/user.h	Fri Aug 13 17:39:45 2004
@@ -205,9 +205,7 @@
 
 #endif
 
-#define PAGE_SHIFT		12
-#define PAGE_SIZE		(1UL << PAGE_SHIFT)
-#define PAGE_MASK		(~(PAGE_SIZE-1))
+#include <bits/uClibc_page.h>
 #define NBPG			PAGE_SIZE
 #define UPAGES			1
 #define HOST_TEXT_START_ADDR	(u.start_code)
Index: uClibc/libpthread/linuxthreads/internals.h
diff -u uClibc/libpthread/linuxthreads/internals.h:1.8 uClibc/libpthread/linuxthreads/internals.h:1.9
--- uClibc/libpthread/linuxthreads/internals.h:1.8	Thu Jul 15 02:22:48 2004
+++ uClibc/libpthread/linuxthreads/internals.h	Fri Aug 13 17:39:45 2004
@@ -316,6 +316,8 @@
 
 /* The page size we can get from the system.  This should likely not be
    changed by the machine file but, you never know.  */
+extern size_t _dl_pagesize;
+#include <bits/uClibc_page.h>
 #ifndef PAGE_SIZE
 #define PAGE_SIZE  (sysconf (_SC_PAGESIZE))
 #endif
@@ -327,19 +329,19 @@
 #ifdef __ARCH_HAS_MMU__
 #define STACK_SIZE  (2 * 1024 * 1024)
 #else
-#define STACK_SIZE  (4 * PAGE_SIZE)
+#define STACK_SIZE  (4 * _dl_pagesize)
 #endif
 #endif
 
 /* The initial size of the thread stack.  Must be a multiple of PAGE_SIZE.  */
 #ifndef INITIAL_STACK_SIZE
-#define INITIAL_STACK_SIZE  (4 * PAGE_SIZE)
+#define INITIAL_STACK_SIZE  (4 * _dl_pagesize)
 #endif
 
 /* Size of the thread manager stack. The "- 32" avoids wasting space
    with some malloc() implementations. */
 #ifndef THREAD_MANAGER_STACK_SIZE
-#define THREAD_MANAGER_STACK_SIZE  (2 * PAGE_SIZE - 32)
+#define THREAD_MANAGER_STACK_SIZE  (2 * _dl_pagesize - 32)
 #endif
 
 /* The base of the "array" of thread stacks.  The array will grow down from



More information about the uClibc-cvs mailing list