chiark / gitweb /
[PATCH] klibc v0.199
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>
Thu, 24 Feb 2005 18:54:47 +0000 (19:54 +0100)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 06:36:14 +0000 (23:36 -0700)
23 files changed:
klibc/MCONFIG
klibc/include/arch/parisc/klibc/archsetjmp.h [new file with mode: 0644]
klibc/klibc.spec
klibc/klibc/arch/alpha/MCONFIG
klibc/klibc/arch/arm/MCONFIG
klibc/klibc/arch/ia64/MCONFIG
klibc/klibc/arch/ia64/setjmp.S
klibc/klibc/arch/ia64/vfork.S
klibc/klibc/arch/m32r/MCONFIG
klibc/klibc/arch/mips/MCONFIG
klibc/klibc/arch/mips64/MCONFIG
klibc/klibc/arch/parisc/setjmp.S
klibc/klibc/arch/parisc/sysstub.ph
klibc/klibc/arch/ppc/MCONFIG
klibc/klibc/arch/ppc64/MCONFIG
klibc/klibc/arch/s390/MCONFIG
klibc/klibc/arch/s390x/MCONFIG
klibc/klibc/arch/sparc/MCONFIG
klibc/klibc/arch/sparc64/MCONFIG
klibc/klibc/arch/sparc64/crt0.S
klibc/klibc/memmem.c
klibc/klibc/strncat.c
klibc/version

index 7da150d..3fae289 100644 (file)
@@ -62,5 +62,10 @@ ERRLIST = 1
 #
 include $(KLIBSRC)/arch/$(ARCH)/MCONFIG
 
+ifeq ($(DEBUG),y)
+STRIP     = /bin/true -Since_we_are_debugging
+OPTFLAGS += -O1 -g
+endif
+
 # How to tell the linker main() is the entrypoint
 EMAIN ?= -e main
diff --git a/klibc/include/arch/parisc/klibc/archsetjmp.h b/klibc/include/arch/parisc/klibc/archsetjmp.h
new file mode 100644 (file)
index 0000000..e744498
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * arch/parisc/include/klibc/archsetjmp.h
+ */
+
+#ifndef _KLIBC_ARCHSETJMP_H
+#define _KLIBC_ARCHSETJMP_H
+
+struct __jmp_buf {
+  double regs[21];
+};
+
+typedef struct __jmp_buf jmp_buf[1];
+
+#endif /* _SETJMP_H */
index 02131c7..de0a14c 100644 (file)
@@ -1,6 +1,6 @@
 Summary: A minimal libc subset for use with initramfs.
 Name: klibc
-Version: 0.198
+Version: 0.199
 Release: 1
 License: BSD/GPL
 Group: Development/Libraries
index 5987ed5..d7ab6c0 100644 (file)
@@ -5,7 +5,7 @@
 # Build configuration for this architecture
 #
 
-OPTFLAGS = -Os -fomit-frame-pointer
+OPTFLAGS = -Os
 BITSIZE  = 64
 
 # Extra linkflags when building the shared version of the library
index 6fbea32..fe26b99 100644 (file)
@@ -11,7 +11,7 @@ THUMB    = n
 CPU_ARCH := armv4
 CPU_TUNE := strongarm
 
-OPTFLAGS = -Os -fomit-frame-pointer -march=$(CPU_ARCH) -mtune=$(CPU_TUNE)
+OPTFLAGS = -Os -march=$(CPU_ARCH) -mtune=$(CPU_TUNE)
 BITSIZE  = 32
 
 ifeq ($(THUMB),y)
index 631a478..36b30ff 100644 (file)
@@ -7,5 +7,5 @@
 # accordingly.
 #
 
-OPTFLAGS = -Os -fomit-frame-pointer
+OPTFLAGS = -Os
 BITSIZE  = 64
index 50f91dc..7859ba4 100644 (file)
@@ -61,6 +61,7 @@
 //
        .align 32
        .global setjmp
+       .proc setjmp
 setjmp:
     //
     //  Make sure buffer is aligned at 16byte boundary
@@ -190,6 +191,7 @@ setjmp:
        
        .align 32
        .global longjmp
+       .proc longjmp
 longjmp:
     //
     //  Make sure buffer is aligned at 16byte boundary
index efcd03f..f79bdc8 100644 (file)
@@ -19,6 +19,7 @@
 /* pid_t vfork(void) */
 /* Implemented as clone(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */
 
+       .align 32
        .proc vfork
        .global vfork
 vfork: 
@@ -38,4 +39,4 @@ vfork:
        ;; 
 (p7)   mov     r8=-1
        br.ret.sptk.many b0
-       .endp
+       .endp vfork
index 6706d9d..2673090 100644 (file)
@@ -7,7 +7,7 @@
 # accordingly.
 #
 
-OPTFLAGS = -Os -fomit-frame-pointer
+OPTFLAGS = -Os
 BITSIZE  = 32
 
 # Extra linkflags when building the shared version of the library
index a248973..0a98918 100644 (file)
@@ -8,7 +8,7 @@
 #
 
 ARCHREQFLAGS = -fno-pic -mno-abicalls -G 0
-OPTFLAGS     = -Os -fomit-frame-pointer
+OPTFLAGS     = -Os
 BITSIZE      = 32
 
 # Extra linkflags when building the shared version of the library
index 6a817e5..66405e4 100644 (file)
@@ -7,5 +7,5 @@
 # accordingly.
 #
 
-OPTFLAGS = -Os -fomit-frame-pointer
+OPTFLAGS = -Os
 BITSIZE  = 64
index 51b2b1a..aebe03a 100644 (file)
@@ -27,7 +27,7 @@ setjmp:
         stw     %r17,60(%r26)
         stw     %r18,64(%r26)
         stw     %r19,68(%r26)
-        stw     %dp,72(%r26)
+        stw     %r27,72(%r26)
         stw     %r30,76(%r26)
         stw     %rp,80(%r26)
         ldo     88(%r26),%r19
index eb6b5dd..63b5e17 100644 (file)
@@ -16,7 +16,6 @@ sub make_sysstub($$$$@) {
     print OUT "\t.import __syscall_common, code\n";
     print OUT "\t.global ${fname}\n";
     print OUT "\t.export ${fname}, code\n";
-    print OUT "\t.type   ${fname}, @function\n";
     print OUT "\t.proc\n";
     print OUT "\.callinfo\n";
     print OUT "${fname}:\n";
index ff7c44d..82c7107 100644 (file)
@@ -7,7 +7,7 @@
 # accordingly.
 #
 
-OPTFLAGS = -Os -fomit-frame-pointer
+OPTFLAGS = -Os
 BITSIZE  = 32
 
 # Extra linkflags when building the shared version of the library
index 09881b8..9aba2dd 100644 (file)
@@ -8,7 +8,7 @@
 #
 
 ARCHREQFLAGS = -m64 -mcall-aixdesc
-OPTFLAGS     = -Os -fomit-frame-pointer
+OPTFLAGS     = -Os
 BITSIZE      = 64
 LDFLAGS      = -m elf64ppc
 
index e32c33f..640b395 100644 (file)
@@ -7,7 +7,7 @@
 # accordingly.
 #
 
-OPTFLAGS = -Os -fomit-frame-pointer
+OPTFLAGS = -Os
 BITSIZE  = 32
 
 SHAREDFLAGS    = -Ttext 0x40000200
index 1c8232b..081a0bb 100644 (file)
@@ -7,7 +7,7 @@
 # accordingly.
 #
 
-OPTFLAGS = -Os -fomit-frame-pointer
+OPTFLAGS = -Os
 BITSIZE  = 64
 
 SHAREDFLAGS    = -Ttext 0x40000200
index cb94f46..55f8b19 100644 (file)
@@ -7,7 +7,7 @@
 # accordingly.
 #
 
-OPTFLAGS = -Os -fomit-frame-pointer
+OPTFLAGS = -Os
 BITSIZE  = 32
 
 # Extra linkflags when building the shared version of the library
index d490c63..a8a7424 100644 (file)
@@ -8,7 +8,7 @@
 #
 
 ARCHREQFLAGS = -m64 -mptr64
-OPTFLAGS     = -Os -fomit-frame-pointer
+OPTFLAGS     = -Os
 BITSIZE      = 64
 
 LDFLAGS      = -m elf64_sparc
index 23af82e..5faee7c 100644 (file)
@@ -1,2 +1,2 @@
 #define TARGET_PTR_SIZE 64
-#include "arch/sparc/crt0i.S"
+#include "../sparc/crt0i.S"
index 0f59938..8b5faa0 100644 (file)
 
 void *memmem(const void *haystack, size_t n, const void *needle, size_t m)
 {
-  const unsigned char *y = (const unsigned char *)haystack;
-  const unsigned char *x = (const unsigned char *)needle;
+       const unsigned char *y = (const unsigned char *)haystack;
+       const unsigned char *x = (const unsigned char *)needle;
 
-  size_t j, k, l;
+       size_t j, k, l;
 
-  if ( m > n )
-    return NULL;
+       if (m > n || !m || !n)
+               return NULL;
 
-  if ( x[0] == x[1] ) {
-    k = 2;
-    l = 1;
-  } else {
-    k = 1;
-    l = 2;
-  }
+       if (1 != m) {
+               if (x[0] == x[1]) {
+                       k = 2;
+                       l = 1;
+               } else {
+                       k = 1;
+                       l = 2;
+               }
 
-  j = 0;
-  while ( j <= n-m ) {
-    if (x[1] != y[j+1]) {
-      j += k;
-    } else {
-      if ( !memcmp(x+2, y+j+2, m-2) && x[0] == y[j] )
-       return (void *)&y[j];
-      j += l;
-    }
-  }
+               j = 0;
+               while (j <= n - m) {
+                       if (x[1] != y[j + 1]) {
+                               j += k;
+                       } else {
+                               if (!memcmp(x + 2, y + j + 2, m - 2)
+                                   && x[0] == y[j])
+                                       return (void *)&y[j];
+                               j += l;
+                       }
+               }
+       } else
+               do {
+                       if (*y == *x)
+                               return (void *)y;
+                       y++;
+               } while (--n);
 
-  return NULL;
+       return NULL;
 }
index 4d8458d..7822315 100644 (file)
@@ -10,7 +10,6 @@ char *strncat(char *dst, const char *src, size_t n)
   char *q = strchr(dst, '\0');
   const char *p = src;
   char ch;
-  size_t nn = q-dst;
 
   while (n--) {
     *q++ = ch = *p++;
index 129efcc..b4d2b30 100644 (file)
@@ -1 +1 @@
-0.198
+0.199