dietlibc: update to version 0.32
authorHenning Heinold <heinold@inf.fu-berlin.de>
Fri, 2 Oct 2009 22:57:03 +0000 (00:57 +0200)
committerHenning Heinold <heinold@inf.fu-berlin.de>
Sun, 4 Oct 2009 20:12:52 +0000 (22:12 +0200)
* switch to .inc and PR_INC

classes/dietlibc.bbclass
conf/checksums.ini
recipes/dietlibc/dietlibc-0.32/ccache.patch [new file with mode: 0644]
recipes/dietlibc/dietlibc-0.32/diethome.patch [new file with mode: 0644]
recipes/dietlibc/dietlibc.inc [new file with mode: 0644]
recipes/dietlibc/dietlibc_0.31.bb
recipes/dietlibc/dietlibc_0.32.bb [new file with mode: 0644]

index 7c7b5fe..e0a6578 100644 (file)
@@ -4,8 +4,8 @@ def dietlibc_after_parse(d):
     import bb
     # Remove the NLS
     cfg = oe_filter_out('--(dis|en)able-nls', bb.data.getVar('EXTRA_OECONF', d, 1) or "", d)
-    # Remove shared and static and set it right
-    cfg += " --disable-nls --disbale-shared --enable-static"
+    # Remove shared enable static only
+    cfg += " --disable-nls --disable-shared --enable-static"
     bb.data.setVar('EXTRA_OECONF', cfg, d)
     cfg = bb.data.getVar('EXTRA_OEMAKE', d, 1) or ""
     cfg = oe_filter_out("\'CC=", bb.data.getVar('EXTRA_OEMAKE', d, 1) or "", d)
index bb61d09..67d3ea2 100644 (file)
@@ -5050,6 +5050,10 @@ sha256=dcc1809e8477b95317a7ff503cdd8b6d3f85b8d83a3245252ff47cf631523620
 md5=acb98d469ee932d902fdf6de07802b7c
 sha256=99613d6a67f747f52e4184c613f7cba5cbb76af237c9acd04742e3ca24cf56cd
 
+[http://kernel.org/pub/linux/libs/dietlibc/dietlibc-0.32.tar.bz2]
+md5=0098761c17924c15e21d25acdda4a8b5
+sha256=6613a2cae3b39e340779735d7500d284f5a691c5ed67e59a6057e0888726e458
+
 [ftp://source.mvista.com/pub/xscale/pxa/diff-2.4.18-rmk7-pxa3.gz]
 md5=249c7a63a506d302c96be26517a70298
 sha256=ca569dfa1e5cfd2f4134f3f61f667bcfab5e15c7d43c8a6e835d384ac5b31a07
diff --git a/recipes/dietlibc/dietlibc-0.32/ccache.patch b/recipes/dietlibc/dietlibc-0.32/ccache.patch
new file mode 100644 (file)
index 0000000..fb067f0
--- /dev/null
@@ -0,0 +1,74 @@
+Index: dietlibc-0.32/diet.c
+===================================================================
+--- dietlibc-0.32.orig/diet.c  2009-03-17 00:17:58.000000000 +0100
++++ dietlibc-0.32/diet.c       2009-10-02 14:12:14.306929201 +0200
+@@ -132,7 +132,12 @@
+     }
+   }
+   {
+-    char *cc=argv[1];
++    char *cc;
++    if (!strcmp(argv[1],"ccache")) {
++      cc=argv[2];
++    } else {
++      cc=argv[1];
++    }
+     char *tmp=strchr(cc,0)-2;
+     char *tmp2,*tmp3;
+     if (tmp<cc) goto donttouch;
+@@ -144,7 +149,7 @@
+       if (tmp3<tmp2) tmp2=tmp3;
+       if (tmp2-cc>90) error("platform name too long!\n");
+       shortplatform=platform+len;
+-      memmove(shortplatform,argv[1],(size_t)(tmp2-cc));
++      memmove(shortplatform,cc,(size_t)(tmp2-cc));
+       platform[tmp2-cc+len]=0;
+       if (shortplatform[0]=='i' && shortplatform[2]=='8' && shortplatform[3]=='6') shortplatform[1]='3';
+     } else {
+@@ -291,6 +296,9 @@
+       dest=newargv;
+       *dest++=argv[1];
++      if (strcmp(argv[1],"ccache") == 0) {
++       *dest++=argv[2];
++      }
+       if (argv[2]) {
+       if (!strcmp(argv[2],"-V")) {
+         *dest++=argv[2];
+@@ -300,9 +308,9 @@
+       } else if (!memcmp(argv[2],"-V",2)) {
+         *dest++=argv[2];
+         ++argv;
+-        --argc;
+       }
+       }
++
+ #ifndef __DYN_LIB
+       if (_link) { *dest++=(char*)nostdlib; *dest++=dashstatic; *dest++=dashL; }
+ #else
+@@ -320,7 +328,15 @@
+ #ifdef WANT_DYNAMIC
+       if (_link) { *dest++=d; }
+ #endif
+-      for (i=2; i<argc; ++i) {
++      if (strcmp(argv[1],"ccache") == 0) {
++          i=3;
++      } else {
++          i=2;
++      }
++      for (i; i<argc; ++i) {
++        if (strstr(argv[i],"isystem") != NULL)
++          continue;
++
+       if (!strcmp(argv[i],"-pthread")) {
+         *dest++="-D_REENTRANT";
+         if (_link) *dest++="-lpthread";
+@@ -333,6 +349,8 @@
+             continue;
+         }
+       *dest++=argv[i];
++      *dest--;
++      *dest++;
+       }
+ #ifndef __DYN_LIB
+       if (compile || _link) {
diff --git a/recipes/dietlibc/dietlibc-0.32/diethome.patch b/recipes/dietlibc/dietlibc-0.32/diethome.patch
new file mode 100644 (file)
index 0000000..ee05b23
--- /dev/null
@@ -0,0 +1,24 @@
+Index: dietlibc-0.32/Makefile
+===================================================================
+--- dietlibc-0.32.orig/Makefile        2008-05-09 06:36:56.000000000 +0200
++++ dietlibc-0.32/Makefile     2009-10-02 14:39:58.059248076 +0200
+@@ -295,16 +295,16 @@
+ $(SYSCALLOBJ): syscalls.h
+ $(OBJDIR)/elftrunc: $(OBJDIR)/diet contrib/elftrunc.c
+-      bin-$(MYARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/elftrunc.c
++      DIETHOME=$(PWD) bin-$(MYARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/elftrunc.c
+ $(OBJDIR)/dnsd: $(OBJDIR)/diet contrib/dnsd.c
+-      bin-$(MYARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/dnsd.c
++      DIETHOME=$(PWD) bin-$(MYARCH)/diet $(CROSS)$(CC) $(CFLAGS) -o $@ contrib/dnsd.c
+ VERSION=dietlibc-$(shell head -n 1 CHANGES|sed 's/://')
+ CURNAME=$(notdir $(shell pwd))
+ $(OBJDIR)/diet: $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o diet.c $(OBJDIR)/dietlibc.a $(OBJDIR)/dyn_stop.o
+-      $(CROSS)$(CC) -isystem include $(CFLAGS) -nostdlib -o $@ $^ -DDIETHOME=\"$(HOME)\" -DVERSION=\"$(VERSION)\" -lgcc
++      $(CROSS)$(CC) -isystem include $(CFLAGS) -nostdlib -o $@ $^ -DDIETHOME=\"$(prefix)\" -DVERSION=\"$(VERSION)\" -lgcc
+       $(CROSS)strip -R .comment -R .note $@
+ $(OBJDIR)/diet-i: $(OBJDIR)/start.o $(OBJDIR)/dyn_start.o diet.c $(OBJDIR)/dietlibc.a $(OBJDIR)/dyn_stop.o
diff --git a/recipes/dietlibc/dietlibc.inc b/recipes/dietlibc/dietlibc.inc
new file mode 100644 (file)
index 0000000..7884188
--- /dev/null
@@ -0,0 +1,45 @@
+SECTION = "libs"
+DESCRIPTION = "The diet libc is a libc that is optimized for small size. \
+It can be used to create small statically linked binaries"
+LICENSE = "GPLv2"
+
+INC_PR = "r1"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/dietlibc/dietlibc-${PV}.tar.bz2" 
+
+#otherwise the whole run scripts got broken
+do_configure () {
+:
+}
+
+do_compile () {
+       oe_runmake all CC="${BUILD_CC}" CFLAGS="${BUILD_CFLAGS}" prefix=${STAGING_DIR_TARGET}/lib/dietlibc
+       oe_runmake all ARCH="${TARGET_ARCH}" CROSS=" " prefix=${STAGING_DIR_TARGET}/lib/dietlibc
+}
+
+#no packages needed, all binaries will be compiled with -static
+PACKAGES = " "
+
+#otherwise the whole run scripts got broken
+do_install () {
+:
+}
+
+do_stage () {
+       DIETLIBC_BUILD_ARCH=`echo ${BUILD_ARCH} | sed -e s'/.86/386/'`
+       DIETLIBC_TARGET_ARCH=`echo ${TARGET_ARCH} | sed -e s'/.86/386/'`
+       rm -rf ${STAGING_DIR_TARGET}/lib/dietlibc || true
+       rm ${CROSS_DIR}/bin/diet || true
+       install -d ${STAGING_DIR_TARGET}/lib/dietlibc/lib-${DIETLIBC_TARGET_ARCH}
+       install -d ${STAGING_DIR_TARGET}/lib/dietlibc/include
+        for i in `find include -name \*.h`; do install -m 644 -D $i ${STAGING_DIR_TARGET}/lib/dietlibc/$i; done
+
+        install -m755 bin-${DIETLIBC_BUILD_ARCH}/diet-i ${CROSS_DIR}/bin/diet
+       
+       cd bin-${DIETLIBC_TARGET_ARCH}
+       install -m 644 start.o libm.a libpthread.a librpc.a \
+                       liblatin1.a libcompat.a libcrypt.a \
+                      ${STAGING_DIR_TARGET}/lib/dietlibc/lib-${DIETLIBC_TARGET_ARCH}
+        install -m 644 dietlibc.a ${STAGING_DIR_TARGET}/lib/dietlibc/lib-${DIETLIBC_TARGET_ARCH}/libc.a
+}
+
index 7720588..70b813b 100644 (file)
@@ -1,47 +1,8 @@
-SECTION = "libs"
-DESCRIPTION = "The diet libc is a libc that is optimized for small size. \
-It can be used to create small statically linked binaries"
-LICENSE = "GPLv2"
+require dietlibc.inc
 
-SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/dietlibc/dietlibc-${PV}.tar.bz2 \
-           file://ccache.patch;patch=1 \
-           file://ceil.patch;patch=1 \
-          file://ai_addrconfig.patch;patch=1 \
-         "
-
-#otherwise the whole run scripts got broken
-do_configure () {
-       echo "moo" > /dev/null 2>&1
-}
-
-do_compile () {
-       oe_runmake all CC="${BUILD_CC}" CFLAGS="${BUILD_CFLAGS}" prefix=${STAGING_DIR_TARGET}/lib/dietlibc
-       oe_runmake all ARCH="${TARGET_ARCH}" CROSS=" " prefix=${STAGING_DIR_TARGET}/lib/dietlibc
-}
-
-#no packages needed, all binaries will be compiled with -static
-PACKAGES = " "
-
-#otherwise the whole run scripts got broken
-do_install () {
-       echo "moo" > /dev/null 2>&1
-}
-
-do_stage () {
-       DIETLIBC_BUILD_ARCH=`echo ${BUILD_ARCH} | sed -e s'/.86/386/'`
-       DIETLIBC_TARGET_ARCH=`echo ${TARGET_ARCH} | sed -e s'/.86/386/'`
-       rm -rf ${STAGING_DIR_TARGET}/lib/dietlibc || true
-       rm ${CROSS_DIR}/bin/diet || true
-       install -d ${STAGING_DIR_TARGET}/lib/dietlibc/lib-${DIETLIBC_TARGET_ARCH}
-       install -d ${STAGING_DIR_TARGET}/lib/dietlibc/include
-        for i in `find include -name \*.h`; do install -m 644 -D $i ${STAGING_DIR_TARGET}/lib/dietlibc/$i; done
-
-        install -m755 bin-${DIETLIBC_BUILD_ARCH}/diet-i ${CROSS_DIR}/bin/diet
-       
-       cd bin-${DIETLIBC_TARGET_ARCH}
-       install -m 644 start.o libm.a libpthread.a librpc.a \
-                       liblatin1.a libcompat.a libcrypt.a \
-                      ${STAGING_DIR_TARGET}/lib/dietlibc/lib-${DIETLIBC_TARGET_ARCH}
-        install -m 644 dietlibc.a ${STAGING_DIR_TARGET}/lib/dietlibc/lib-${DIETLIBC_TARGET_ARCH}/libc.a
-}
+PR = "${INC_PR}.1"
 
+SRC_URI += "file://ccache.patch;patch=1 \
+            file://ceil.patch;patch=1 \
+            file://ai_addrconfig.patch;patch=1 \
+           "
diff --git a/recipes/dietlibc/dietlibc_0.32.bb b/recipes/dietlibc/dietlibc_0.32.bb
new file mode 100644 (file)
index 0000000..5e644fa
--- /dev/null
@@ -0,0 +1,9 @@
+require dietlibc.inc
+
+PR = "${INC_PR}.1"
+
+SRC_URI += "file://ccache.patch;patch=1 \
+            file://ceil.patch;patch=1 \
+            file://diethome.patch;patch=1 \
+           " 
+