From 29400bd66093b8c847294d642edbac4d5f8195cf Mon Sep 17 00:00:00 2001 From: David Barksdale Date: Tue, 20 May 2014 07:08:27 -0500 Subject: [build-utils/emscripten] Upgrade to 1.18.0 It would be nice if we could actually use the new fastcomp backend, but it does not support dlopen. https://github.com/kripken/emscripten/issues/2365 --- gnunet-build/.builder/config | 3 +++ .../build-utils/emscripten-fastcomp/Buildrules | 14 ++++++++++++++ .../files/emscripten-fastcomp-1.18.0-ar.patch | 19 +++++++++++++++++++ .../packages/build-utils/emscripten/Buildrules | 4 ++-- gnunet-build/packages/build-utils/llvm/Buildrules | 15 --------------- .../packages/build-utils/llvm/files/llvm-3.2-ar.patch | 19 ------------------- gnunet-build/packages/libs/libgcrypt/Buildrules | 10 +++++++--- gnunet-build/packages/libs/libunistring/Buildrules | 7 ++++--- 8 files changed, 49 insertions(+), 42 deletions(-) create mode 100644 gnunet-build/packages/build-utils/emscripten-fastcomp/Buildrules create mode 100644 gnunet-build/packages/build-utils/emscripten-fastcomp/files/emscripten-fastcomp-1.18.0-ar.patch delete mode 100644 gnunet-build/packages/build-utils/llvm/Buildrules delete mode 100644 gnunet-build/packages/build-utils/llvm/files/llvm-3.2-ar.patch diff --git a/gnunet-build/.builder/config b/gnunet-build/.builder/config index 1d8911b..ebb8742 100644 --- a/gnunet-build/.builder/config +++ b/gnunet-build/.builder/config @@ -9,4 +9,7 @@ export PATH EM_CONFIG="${SYSROOT}/${TOOLDIR}/etc/emscripten" export EM_CONFIG +# Turns out the now default fastcomp does not support dlopen +export EMCC_FAST_COMPILER=0 + # vim: filetype=sh diff --git a/gnunet-build/packages/build-utils/emscripten-fastcomp/Buildrules b/gnunet-build/packages/build-utils/emscripten-fastcomp/Buildrules new file mode 100644 index 0000000..b9f5541 --- /dev/null +++ b/gnunet-build/packages/build-utils/emscripten-fastcomp/Buildrules @@ -0,0 +1,14 @@ +VERSION="1.18.0" +DESCRIPTION="LLVM with the emscripten fastcomp javascript backend." +SOURCE_URI="git://github.com/amatus/${NAME}.git?${VERSION}&archive=${NAME}-${VERSION}.${ARCHIVE_FORMAT}" +PATCHES="ar" +CONFIG_OPTS="--enable-optimized --disable-assertions --enable-targets=host,js" + +pkg_prep() +{ + git clone git://github.com/amatus/emscripten-fastcomp-clang \ + "${S}/tools/clang" + git --git-dir="${S}/tools/clang/.git" checkout "${VERSION}" +} + +# vim: syntax=sh diff --git a/gnunet-build/packages/build-utils/emscripten-fastcomp/files/emscripten-fastcomp-1.18.0-ar.patch b/gnunet-build/packages/build-utils/emscripten-fastcomp/files/emscripten-fastcomp-1.18.0-ar.patch new file mode 100644 index 0000000..b92d504 --- /dev/null +++ b/gnunet-build/packages/build-utils/emscripten-fastcomp/files/emscripten-fastcomp-1.18.0-ar.patch @@ -0,0 +1,19 @@ +--- llvm-3.2.src.orig/tools/llvm-ar/llvm-ar.cpp 2012-10-26 05:49:15.000000000 -0500 ++++ llvm-3.2.src/tools/llvm-ar/llvm-ar.cpp 2013-07-13 21:17:35.047302973 -0500 +@@ -461,11 +461,12 @@ + (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end())) { + + // Make sure the intervening directories are created +- if (I->hasPath()) { +- sys::Path dirs(I->getPath()); +- dirs.eraseComponent(); +- if (dirs.createDirectoryOnDisk(/*create_parents=*/true, ErrMsg)) ++ sys::Path dirs(I->getPath()); ++ dirs.eraseComponent(); ++ if (dirs.isValid()) { ++ if (dirs.createDirectoryOnDisk(/*create_parents=*/true, ErrMsg)) { + return true; ++ } + } + + // Open up a file stream for writing diff --git a/gnunet-build/packages/build-utils/emscripten/Buildrules b/gnunet-build/packages/build-utils/emscripten/Buildrules index bb31b6c..1016126 100644 --- a/gnunet-build/packages/build-utils/emscripten/Buildrules +++ b/gnunet-build/packages/build-utils/emscripten/Buildrules @@ -1,8 +1,8 @@ -VERSION="1.10.2-0amatus1" +VERSION="1.18.0" DESCRIPTION="Emscripten is an LLVM-to-JavaScript compiler." SOURCE_URI="git://github.com/amatus/${NAME}.git?${VERSION}&archive=${NAME}-${VERSION}.${ARCHIVE_FORMAT}" # XXX: these are actually RDEPENDS but that's broken -BDEPENDS="build-utils/llvm build-utils/node" +BDEPENDS="build-utils/emscripten-fastcomp build-utils/node" pkg_compile() { INSTALLDIR="${D}/${TOOLDIR}/opt/emscripten" diff --git a/gnunet-build/packages/build-utils/llvm/Buildrules b/gnunet-build/packages/build-utils/llvm/Buildrules deleted file mode 100644 index dd89a99..0000000 --- a/gnunet-build/packages/build-utils/llvm/Buildrules +++ /dev/null @@ -1,15 +0,0 @@ -VERSION="3.2" -DESCRIPTION="The LLVM Project is a collection of modular and reusable compiler and toolchain technologies." -SOURCE_URI="\ - http://llvm.org/releases/${VERSION}/${NAME}-${VERSION}.src.tar.gz \ - http://llvm.org/releases/${VERSION}/clang-${VERSION}.src.tar.gz" -S="${W}/${NAME}-${VERSION}.src" -PATCHES="ar" -CONFIG_OPTS="--enable-cxx11 --enable-optimized" - -pkg_prep() -{ - mv "${W}/clang-${VERSION}.src" "${S}/tools/clang" -} - -# vim: syntax=sh diff --git a/gnunet-build/packages/build-utils/llvm/files/llvm-3.2-ar.patch b/gnunet-build/packages/build-utils/llvm/files/llvm-3.2-ar.patch deleted file mode 100644 index b92d504..0000000 --- a/gnunet-build/packages/build-utils/llvm/files/llvm-3.2-ar.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- llvm-3.2.src.orig/tools/llvm-ar/llvm-ar.cpp 2012-10-26 05:49:15.000000000 -0500 -+++ llvm-3.2.src/tools/llvm-ar/llvm-ar.cpp 2013-07-13 21:17:35.047302973 -0500 -@@ -461,11 +461,12 @@ - (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end())) { - - // Make sure the intervening directories are created -- if (I->hasPath()) { -- sys::Path dirs(I->getPath()); -- dirs.eraseComponent(); -- if (dirs.createDirectoryOnDisk(/*create_parents=*/true, ErrMsg)) -+ sys::Path dirs(I->getPath()); -+ dirs.eraseComponent(); -+ if (dirs.isValid()) { -+ if (dirs.createDirectoryOnDisk(/*create_parents=*/true, ErrMsg)) { - return true; -+ } - } - - // Open up a file stream for writing diff --git a/gnunet-build/packages/libs/libgcrypt/Buildrules b/gnunet-build/packages/libs/libgcrypt/Buildrules index a330ffb..3fa6bfa 100644 --- a/gnunet-build/packages/libs/libgcrypt/Buildrules +++ b/gnunet-build/packages/libs/libgcrypt/Buildrules @@ -3,8 +3,6 @@ DESCRIPTION="This is a general purpose cryptographic library based on the code f SOURCE_URI="ftp://ftp.gnupg.org/gcrypt/${NAME}/${NAME}-${VERSION}.tar.bz2" BDEPENDS="${BDEPENDS} libs/libgpg-error" PATCHES="no-entropy" -CONFIG_OPTS="\ -" pkg_compile() { export TEMP_DIR="${T}" @@ -24,13 +22,19 @@ pkg_compile() { ac_cv_func_syslog=no \ ac_cv_func_mlock=no \ gnupg_cv_mlock_is_in_sys_mman=no \ + gcry_cv_have_asm=no \ + gcry_cv_have___asm__=no \ CPPFLAGS="-I${SYSROOT}/usr/include" \ LDFLAGS="-L${SYSROOT}/usr/lib" emmake make SUBDIRS="compat mpi cipher random src" \ LDFLAGS="${LDFLAGS} -Wc,--ignore-dynamic-linking" + #emmake make SUBDIRS="tests" + #touch tests/*.o + #EMMAKEN_JUST_CONFIGURE=true EMCONFIGURE_JS=true emmake make check \ + # SUBDIRS="tests" \ + # LDFLAGS="-L${SYSROOT}/usr/lib -Wc,-s,TOTAL_MEMORY=33554432" emmake make SUBDIRS="compat mpi cipher random src" \ DESTDIR="${D}" install } - # vim: syntax=sh diff --git a/gnunet-build/packages/libs/libunistring/Buildrules b/gnunet-build/packages/libs/libunistring/Buildrules index 0116941..1a2943a 100644 --- a/gnunet-build/packages/libs/libunistring/Buildrules +++ b/gnunet-build/packages/libs/libunistring/Buildrules @@ -2,10 +2,11 @@ VERSION="0.9.3" DESCRIPTION="This library provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard." SOURCE_URI="http://ftpmirror.gnu.org/${NAME}/${NAME}-${VERSION}.tar.gz" PATCHES="gnulib" -CONFIG_OPTS="\ - --disable-threads \ - ac_cv_func_uselocale=no \ +CONFIG_OPTS=" + --disable-threads + ac_cv_func_uselocale=no am_cv_func_iconv=no + CFLAGS=-Wno-implicit-function-declaration " # vim: syntax=sh -- cgit v1.2.3-18-g5258