arm-glibc: initial release.
[crux-arm-cross-compiler.git] / arm-glibc / Pkgfile
diff --git a/arm-glibc/Pkgfile b/arm-glibc/Pkgfile
new file mode 100644 (file)
index 0000000..6b205f7
--- /dev/null
@@ -0,0 +1,72 @@
+# Description: The GNU C library for the ARM cross compiler
+# URL:         http://www.gnu.org/software/libc/
+# Depends on:  arm-gcc-interim
+
+name=arm-glibc
+version=2.10.1
+release=1
+source=(http://ftp.gnu.org/gnu/glibc/glibc-$version.tar.bz2
+        http://ftp.gnu.org/gnu/glibc/glibc-ports-$version.tar.bz2 
+        http://crux.nu/~tilman/arm-kernel-headers-2.6.33.tar.xz)
+
+build() {
+    # install kernel headers
+    mkdir -p $PKG/usr/armv5tel-softfloat-linux-gnueabi
+    cp -r arm-kernel-headers-2.6.33/include \
+        $PKG/usr/armv5tel-softfloat-linux-gnueabi
+    chown root:root $PKG/usr/armv5tel-softfloat-linux-gnueabi
+
+    mv glibc-ports-$version glibc-$version/ports
+
+    sed -e 's/-lgcc_eh//g' -i glibc-$version/Makeconfig
+
+    mkdir build
+    cd build
+
+    cat >config.cache<<EOF
+libc_cv_forced_unwind=yes
+libc_cv_c_cleanup=yes
+libc_cv_gnu89_inline=yes
+EOF
+
+    unset CFLAGS
+    unset CXXFLAGS
+
+    BUILD_CC=gcc CC=armv5tel-softfloat-linux-gnueabi-gcc \
+    AR=armv5tel-softfloat-linux-gnueabi-ar \
+    RANLIB=armv5tel-softfloat-linux-gnueabi-ranlib \
+    ../glibc-$version/configure \
+        --prefix=/usr/armv5tel-softfloat-linux-gnueabi \
+        --libexecdir=/usr/armv5tel-softfloat-linux-gnueabi/lib \
+        --build=i686-cross-linux-gnu \
+        --host=armv5tel-softfloat-linux-gnueabi \
+        --with-headers=$PKG/usr/armv5tel-softfloat-linux-gnueabi/include \
+        --with-tls \
+        --enable-kernel=2.6.33 \
+        --enable-add-ons \
+        --disable-profile \
+        --without-gd \
+        --with-fp=no \
+        --with-__thread \
+        --cache-file=config.cache
+
+    make
+    make install_root=$PKG install
+
+    rm -rf $PKG/usr/armv5tel-softfloat-linux-gnueabi/share/{info,locale}
+
+    # I _think_ these aren't needed :)
+    rm -rf $PKG/usr/armv5tel-softfloat-linux-gnueabi/share/{i18n,zoneinfo}
+    rmdir $PKG/usr/armv5tel-softfloat-linux-gnueabi/share
+    rm -rf $PKG/usr/armv5tel-softfloat-linux-gnueabi/{etc,bin,sbin}
+    rm -rf $PKG/usr/armv5tel-softfloat-linux-gnueabi/lib/gconv
+
+    # Strip libraries. We cannot let pkgmk do this; the system's strip
+    # program cannot handle ARM binaries.
+    armv5tel-softfloat-linux-gnueabi-strip --strip-debug \
+        $PKG/usr/armv5tel-softfloat-linux-gnueabi/lib/*.a
+
+    find $PKG/usr/armv5tel-softfloat-linux-gnueabi/lib \
+        -name "*.so" ! -name libc.so ! -name libpthread.so | xargs \
+             armv5tel-softfloat-linux-gnueabi-strip
+}