development/hhvm: Updated for version 4.104.1

This commit is contained in:
Eugen Wissner 2021-05-03 22:21:41 +02:00 committed by Robby Workman
parent 1d9ced8bab
commit c1704fe2c8
3 changed files with 95 additions and 71 deletions

View File

@ -1,25 +1,24 @@
From 58528a9e983ae8ba53e4e5c10f0565ac0b12c2b3 Mon Sep 17 00:00:00 2001
From: Eugen Wissner <belka@caraus.de>
Date: Sun, 25 Oct 2020 10:18:08 +0100
Subject: [PATCH] Link static libiberty
---
hphp/hhvm/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hphp/hhvm/CMakeLists.txt b/hphp/hhvm/CMakeLists.txt
index f70bd1f542..ab41ec1e5d 100644
--- a/hphp/hhvm/CMakeLists.txt
+++ b/hphp/hhvm/CMakeLists.txt
@@ -28,7 +28,7 @@ endif()
get_object_libraries_objects(additionalObjects ${HHVM_WHOLE_ARCHIVE_LIBRARIES})
add_executable(hhvm ${CXX_SOURCES} ${additionalObjects})
-target_link_libraries(hhvm ${HHVM_LINK_LIBRARIES} ${EZC_LINK_LIBRARIES} ${HRE_LINK_LIBRARIES})
+target_link_libraries(hhvm /usr/lib64/libiberty.a ${HHVM_LINK_LIBRARIES} ${EZC_LINK_LIBRARIES} ${HRE_LINK_LIBRARIES})
link_object_libraries(hhvm ${HHVM_WHOLE_ARCHIVE_LIBRARIES})
if (GOLD_FOUND AND ENABLE_LD_GOLD)
if (CMAKE_CONFIGURATION_TYPES)
--
2.17.5
libiberty is part of GCC and is provided only statically on Slackware. We
patch CMake to use it.
Patches CMake to avoid downloading during the build since we use prefetched
sources.
--- a/third-party/folly/CMakeLists.txt 2021-04-22 08:09:46.000000000 +0200
+++ b/third-party/folly/CMakeLists.txt 2021-05-03 07:43:23.777873092 +0200
@@ -298,3 +298,6 @@
# Just assume we have sched.h
target_compile_definitions(folly PUBLIC "FOLLY_HAVE_SCHED_H=1")
endif()
+
+target_link_libraries(folly /usr/lib64/libiberty.a)
+target_include_directories(folly PUBLIC /usr/include/libiberty)
--- a/third-party/brotli/CMakeLists.txt 2021-04-22 08:09:46.000000000 +0200
+++ b/third-party/brotli/CMakeLists.txt 2021-05-03 06:21:46.202704488 +0200
@@ -6,8 +6,6 @@
# version.
ExternalProject_Add(
bundled_brotli
- GIT_REPOSITORY https://github.com/google/brotli
- GIT_TAG 4b5771bee7995d3d606221caa455c044d80434df
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_INSTALL_INCLUDEDIR=include

View File

@ -2,7 +2,7 @@
# Slackware build script for HHVM
# Copyright 2015-2020 Eugene Wissner, Dachau, Germany
# Copyright 2015-2021 Eugene Wissner, Dachau, Germany
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@ -23,12 +23,12 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=hhvm
VERSION=${VERSION:-4.56.1}
VERSION=${VERSION:-4.104.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
OPAM_STAMP="6ef290f5"
CARGO_STAMP="1ecc6299db9ec823"
OPAM_STAMP="221708b"
CARGO_BUILD="1"
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@ -60,9 +60,44 @@ rm -rf $PRGNAM-$VERSION
tar Jxvf $CWD/$PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
mkdir -p hphp/hack/_build/opam hphp/hack/facebook
mkdir -p hphp/hack/facebook third-party/brotli/bundled_brotli-prefix/src
mkdir -p hphp/hack/_build/opam
tar Jxvf $CWD/hack-switch-$OPAM_STAMP.tar.xz -C hphp/hack/_build/opam
tar Jxvf $CWD/cargo-home-$CARGO_STAMP.tar.xz -C hphp/hack
# hhvm prepares an opam switch (an isolated envrionment with a specific OCaml
# compiler version) during the build, it downloads and builds all dependencies.
# To avoid doing this at runtime, I provide a prebuilt switch. Unfortunately
# it contains references to absolute paths it has been built in. Therefore if
# the user doesn't build in the standard directory, we put a link there, so
# that opam can find binaries.
if [ "$TMP" != '/tmp/SBo' ]
then
rm -rf /tmp/SBo/hhvm-$VERSION/hphp/hack/_build/opam
mkdir -p /tmp/SBo/hhvm-$VERSION/hphp/hack/_build/opam
ln -s $TMP/$PRGNAM-$VERSION/hphp/hack/_build/opam/hack-switch \
/tmp/SBo/hhvm-$VERSION/hphp/hack/_build/opam/hack-switch
fi
tar Jxvf $CWD/cargo-home-$CARGO_BUILD.tar.xz -C hphp/hack
tar Jxvf $CWD/brotli-4b5771be.tar.xz -C third-party/brotli/bundled_brotli-prefix/src
install -m 0755 -D $CWD/opam-2.0.7-x86_64-linux \
third-party/opam/opamDownload-prefix/src/opam-2.0.7-x86_64-linux
install -m 0644 -D $CWD/rust-1.43.0-x86_64-unknown-linux-gnu.tar.gz \
third-party/rustc/bundled_rust-prefix/src/rust-1.43.0-x86_64-unknown-linux-gnu.tar.gz
install -m 0644 -D $CWD/fmt-6.1.2.zip third-party/fmt/fmt-prefix/src/fmt-6.1.2.zip
install -m 0644 -D $CWD/fb-prod8-202010.tar.gz \
third-party/fb-mysql/bundled_fbmysqlclient-prefix/src/fb-prod8-202010.tar.gz
# The working directory is hphp/hack.
cat << EOF > hphp/hack/facebook/fetch_opam2_repo_hack.sh
#!/bin/sh
cp $CWD/index-$OPAM_STAMP.tar.gz facebook/
echo facebook/index-$OPAM_STAMP
EOF
chmod 0755 hphp/hack/facebook/fetch_opam2_repo_hack.sh
patch -p1 --verbose -i $CWD/0001-Link-static-libiberty.patch
chown -R root:root .
find -L . \
@ -71,34 +106,22 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
cp $CWD/opam-full-2.0.3.tar.gz third-party/ocaml/
install -m 0644 -D $CWD/rust-1.43.0-x86_64-unknown-linux-gnu.tar.gz \
third-party/rustc/rust-prefix/src/rust-1.43.0-x86_64-unknown-linux-gnu.tar.gz
install -m 0644 -D $CWD/fmt-6.1.2.zip third-party/fmt/fmt-prefix/src/fmt-6.1.2.zip
install -m 0644 -D $CWD/libzip-1.6.1.tar.gz third-party/libzip/libzipBuild-prefix/src/libzip-1.6.1.tar.gz
cat << EOF > hphp/hack/facebook/fetch_opam2_repo_hack.sh
#!/bin/sh
echo $CWD/index-$OPAM_STAMP
EOF
chmod 0755 hphp/hack/facebook/fetch_opam2_repo_hack.sh
patch -p1 -i $CWD/0001-Link-static-libiberty.patch
export CMAKE_PREFIX_PATH=`pwd`
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -lncursesw -I/usr/kerberos/include -I/usr/include/libiberty" \
-DCMAKE_CXX_STANDARD=14 \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} \
-DENABLE_MCROUTER=false \
-DNON_DISTRIBUTABLE_BUILD=true \
-DENABLE_LD_GOLD=true \
-DUSE_JEMALLOC=false \
-DMYSQL_UNIX_SOCK_ADDR=/var/run/mysqld/mysqld.sock \
-DCMAKE_BUILD_TYPE=Release .
make
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} \
-DENABLE_MCROUTER=false \
-DENABLE_EXTENSION_IMAGICK=false \
-DNON_DISTRIBUTABLE_BUILD=true \
-DENABLE_LD_GOLD=true \
-DUSE_JEMALLOC=true \
-DFORCE_BUNDLED_LZ4=OFF \
-DMYSQL_UNIX_SOCK_ADDR=/var/run/mysqld/mysqld.sock \
-DCMAKE_BUILD_TYPE=Release .
make || make -j1
make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \

View File

@ -1,24 +1,26 @@
PRGNAM="hhvm"
VERSION="4.56.1"
VERSION="4.104.1"
HOMEPAGE="https://hhvm.com/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
DOWNLOAD_x86_64="https://download.dlackware.com/hosted-sources/hhvm/hhvm-4.56.1.tar.xz \
DOWNLOAD_x86_64="https://download.dlackware.com/hosted-sources/hhvm/hhvm-4.104.1.tar.xz \
https://static.rust-lang.org/dist/rust-1.43.0-x86_64-unknown-linux-gnu.tar.gz \
https://download.dlackware.com/hosted-sources/hhvm/opam-full-2.0.3.tar.gz \
https://download.dlackware.com/hosted-sources/hhvm/libzip-1.6.1.tar.gz \
https://download.dlackware.com/hosted-sources/hhvm/opam-2.0.7-x86_64-linux \
https://download.dlackware.com/hosted-sources/hhvm/brotli-4b5771be.tar.xz \
https://download.dlackware.com/hosted-sources/hhvm/fmt-6.1.2.zip \
https://download.dlackware.com/hosted-sources/hhvm/cargo-home-1ecc6299db9ec823.tar.xz \
https://download.dlackware.com/hosted-sources/hhvm/index-6ef290f5.tar.gz \
https://download.dlackware.com/hosted-sources/hhvm/hack-switch-6ef290f5.tar.xz"
MD5SUM_x86_64="edc4cf258e49b2311418f3cc651e6782 \
https://download.dlackware.com/hosted-sources/hhvm/cargo-home-1.tar.xz \
https://download.dlackware.com/hosted-sources/hhvm/index-221708b.tar.gz \
https://download.dlackware.com/hosted-sources/hhvm/hack-switch-221708b.tar.xz \
https://download.dlackware.com/hosted-sources/hhvm/fb-prod8-202010.tar.gz"
MD5SUM_x86_64="0bddb92bbf45f8a7d2ef84256293ef63 \
c1cb2b3d0c9edb4b61b01ba6b090d01b \
d685758ad289672ee43caa4baa20b849 \
43883accb207d977462aed9fed40b30b \
b4398cb8403252321510fadd87a4a265 \
7553d4e66d8d5d78af3e53b1083f17b4 \
5ec643b082a34254ad07136e7cbd4220 \
990b311a2863c88e372051291a9f7f02 \
1f67209970361d31d2b60812af78b540 \
ddff31c5f0baa6b0ebc3b04e67d04306"
REQUIRES="tbb glog libdwarf libmemcached"
38b0384806e3415c0a7c42e4a0facf5b \
c1c35bc5a0198f25be9c13cb88c7df2f \
95ef57a2272d3405257dff3395220847 \
f5f484685fe2a7cdaa1d3f3c107bb23b"
REQUIRES="tbb glog libdwarf libmemcached double-conversion"
MAINTAINER="Eugene Wissner"
EMAIL="belka@caraus.de"