Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
6b785a6
Add mvfst and usdt dependencies
mszabo-wikia Dec 28, 2024
eee13b6
Fix thrift build
mszabo-wikia Dec 28, 2024
6f1088d
Fix phph/hhbbc/index.cpp compilation
mszabo-wikia Dec 28, 2024
d228e48
IWYU: fix boost include in hphp/compiler/systemlib.cpp
mszabo-wikia Dec 28, 2024
32b06be
Update OCaml stubs
mszabo-wikia Dec 28, 2024
53aa4cb
Remove nonexistent actions runner label
mszabo-wikia Dec 28, 2024
006a6e0
Require the ldap package
mszabo-wikia Dec 28, 2024
48333f1
Provide OCaml env vars for ocamlrep crate
mszabo-wikia Dec 28, 2024
bc0d3c7
Update folly patches
mszabo-wikia Dec 28, 2024
266676e
Fix hhbc-unit.h generation
mszabo-wikia Apr 14, 2025
4beeb7d
Use system libraries for xxhash, lz4 and double-conversion
mszabo-wikia Dec 28, 2024
3e83123
Use vendored fast_float library for folly
mszabo-wikia Dec 28, 2024
6eecfdf
Don't build squangle and mcrouter for OSS for now
mszabo-wikia Dec 28, 2024
17e267b
Add missing extension dependencies
mszabo-wikia Dec 28, 2024
719fa95
hack: skip building blake3 hash for now
mszabo-wikia Dec 28, 2024
2582959
Disable more broken extensions
mszabo-wikia Dec 28, 2024
ad83f90
Allow building with system lz4
mszabo-wikia Dec 28, 2024
095872a
Fix spammy -Winconsistent-override in transport.h
mszabo-wikia Dec 28, 2024
8b417a4
Fix TBB clang patch
mszabo-wikia Dec 28, 2024
61b0b1c
Attempt to workaround build races
mszabo-wikia Dec 28, 2024
ecd3209
Install and force libc++ for the OSS build
mszabo-wikia Dec 29, 2024
c537188
Silence spammy 'non-local-definitions' rust lint
mszabo-wikia Dec 29, 2024
15e2300
Use LLVM 17 to satisfy C++20 requirements
mszabo-wikia Dec 29, 2024
089ec10
Build xed since it's now required
mszabo-wikia Dec 29, 2024
ccc7102
Parallelize the folly build
mszabo-wikia Dec 29, 2024
bd176e4
Update Fizz patches
mszabo-wikia Dec 29, 2024
0e73bd5
Update third-party GitHub actions
mszabo-wikia Dec 30, 2024
fb963c5
Switch CI from Focal to Jammy
mszabo-wikia Dec 31, 2024
f46797b
Use single Rust staticlib for FFI
mszabo-wikia Dec 31, 2024
c8cbda2
Use underlying type for formatting HPHP::jit::Opcode to fix debug build
mszabo-wikia Jan 3, 2025
63eb43c
Ensure Rust commands execute after OPAM setup
mszabo-wikia Jan 3, 2025
8f3cd28
Generate config headers from configs.specification
mszabo-wikia Dec 28, 2024
909ea32
Add missing dependencies for gd and lmdb extensions
mszabo-wikia Jan 3, 2025
3f24b06
Link fizz against liboqs transitively if it was found
mszabo-wikia Jan 3, 2025
7f0d1b3
Pass CMAKE_CXX_FLAGS to tbb
mszabo-wikia Jan 3, 2025
f05e861
Add missing 'long long' rr::serialize() specialization
mszabo-wikia Jan 3, 2025
535521d
support new libdwarfp API
mszabo-wikia Jan 5, 2025
07eaa4c
Fix tc-print link order
mszabo-wikia Jan 5, 2025
6f6f2ff
Fix compilation error with OpenSSL 3
Atry Nov 2, 2022
8832266
Update systemlib generation to support precompiled systemlibs
mszabo-wikia Dec 28, 2024
fbacde8
Use an Ubuntu 24.04 CI
mszabo-wikia Jan 5, 2025
7f05bcc
Fix ocamlrep_marshal dune lock
mszabo-wikia Jan 5, 2025
49f6df7
Use Opensource Team-approved runner label
mszabo-wikia Jan 6, 2025
a7c7389
Fix tc-print subdirectory load order
mszabo-wikia Jan 6, 2025
be93ce6
Switch back to RelWithDebInfo builds after stabilizing CI
mszabo-wikia Jan 7, 2025
64509a5
Stabilize ocaml build
mszabo-wikia Feb 1, 2025
31dba4e
Lowercase fizz reference
mszabo-wikia Feb 2, 2025
8c511af
Undefine a MySQL constant until the client is updated
mszabo-wikia Feb 10, 2025
a4a25cc
Remove outdated Squangle patches
mszabo-wikia Feb 10, 2025
2b1b1c5
Use C++20 for building Squangle
mszabo-wikia Feb 12, 2025
abf44f0
Forward CMAKE_CXX_STANDARD to fizz, mvfst and wangle
mszabo-wikia Feb 13, 2025
abe8821
Remove SSE4.2 and AVX2 toggles in favor of march=x86-64-v3
mszabo-wikia Feb 14, 2025
eabb229
Add sandcastle module dependency
mszabo-wikia Mar 13, 2025
9312231
Add diagnostics stub
mszabo-wikia Mar 18, 2025
f21df69
Update mvfst submodule ref
mszabo-wikia Feb 1, 2025
0434897
Update to Rust 1.87
mszabo-wikia Apr 14, 2025
3a4878b
Stub DeclarationsRewriter.rename_decls
mszabo-wikia Apr 14, 2025
13ed6bd
Include cxxabi and libunwind headers in unique-stubs.cpp
mszabo-wikia Apr 15, 2025
b5579c6
Drop unused headers
mszabo-wikia May 13, 2025
ab67afe
Fix OCaml stubs
mszabo-wikia May 15, 2025
60317bb
Add libbpf dependency
mszabo-wikia May 16, 2025
f562c9f
Silence noisy nontrivial-memcall diagnostic on clang 20
mszabo-wikia May 16, 2025
63186ca
Try to include the MySQL extension
hershel-theodore-layton Jun 1, 2025
06b51e9
Only containerize the actual package build
mszabo-wikia Jun 5, 2025
62e4a1b
Use separate build directories for Rust libraries in dune
mszabo-wikia Jun 6, 2025
96df5f5
Remove use of deprecated boost/filesystem/string_file
mszabo-wikia Jun 6, 2025
ed86253
Build the mcrouter extension
mszabo-wikia Jun 6, 2025
7de1540
Consistently check connection validity in AsyncMysqlConnection
mszabo-wikia Jun 25, 2025
44c81c2
Disable push builds for now
mszabo-wikia Jun 25, 2025
3f2f657
Update OPAM deps with too old versions
mszabo-wikia Jun 25, 2025
55ac70f
dpkg-buildpackage: error: unknown option or argument --no-lintian
hershel-theodore-layton May 31, 2025
7514d73
Raise required CMake version to 3.18
mszabo-wikia Jul 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 24 additions & 48 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
name: Ubuntu CI

on:
push:
branches-ignore:
# Exclude the push event for exported diffs, because the CI for export
# should have been covered by GitHub Actions triggered by pull requests.
- 'export-D+'
pull_request:

concurrency:
Expand All @@ -25,47 +20,28 @@ env:
DEBIAN_FRONTEND: "noninteractive"

jobs:
build_ubuntu_focal_nightly:
runs-on: 16-core
container:
image: ubuntu:focal
env:
DISTRO: ubuntu-20.04-focal
IS_NIGHTLY: 1
CLANG_VERSION: 12
build_ubuntu_noble_nightly:
runs-on: ubuntu-latest
steps:
- name: Installing dependencies to bootstrap env
run: apt update -y && apt install -y git wget lsb-release software-properties-common gpg
- name: Installing llvm
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
# Note: Keep this version in sync with the one in the Debian control file.
./llvm.sh ${CLANG_VERSION}
- name: Making LLVM the default compiler
run: |
if [ -f /etc/alternatives/cc ]
then
update-alternatives --remove-all cc
fi

if [ -f /etc/alternatives/c++ ]
then
update-alternatives --remove-all c++
fi

update-alternatives --install /usr/bin/cc cc /usr/bin/clang++-${CLANG_VERSION} 500
update-alternatives --set cc /usr/bin/clang++-${CLANG_VERSION}
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-${CLANG_VERSION} 500
update-alternatives --set c++ /usr/bin/clang++-${CLANG_VERSION}
- name: Fetching HHVM and its submodules
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Installing HHVM deps and building HHVM
run: ci/bin/make-debianish-package
- name: Uploading artifacts
uses: actions/upload-artifact@v3
with:
name: out-directory
path: ${{ env.OUT }}
# The HHVM build requires more disk space than what is available
# on a default Actions runner, so remove some cruft.
- name: Free up disk space
uses: jlumbroso/[email protected]
- name: Fetching HHVM and its submodules
uses: actions/checkout@v4
with:
submodules: "recursive"
- name: Installing HHVM deps and building HHVM
uses: docker://ubuntu:noble
env:
DISTRO: ubuntu-24.04-noble
IS_NIGHTLY: 1
CLANG_VERSION: 18
with:
entrypoint: /bin/bash
args: ci/bin/make-debianish-package
- name: Uploading artifacts
uses: actions/upload-artifact@v4
with:
name: out-directory
path: ${{ env.OUT }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@ install_manifest.txt
/hphp/hack/test/.mypy_cache
/hphp/util/generated-hhjs-babel-transform.txt

# Generated core systemlib
/hphp/runtime/ext/core/ext_core.php

# CPack
CPackConfig.cmake
CPackSourceConfig.cmake
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@
[submodule "xed-xed"]
path = third-party/xed/xed
url = https://github.com/intelxed/xed.git
[submodule "third-party/mvfst/src"]
path = third-party/mvfst/src
url = https://github.com/facebook/mvfst.git
15 changes: 15 additions & 0 deletions CMake/FindBpf.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
find_path(BPF_INCLUDE_DIR bpf/bpf.h)
find_library(BPF_LIBRARY NAMES bpf)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(BPF DEFAULT_MSG BPF_LIBRARY BPF_INCLUDE_DIR)

if(BPF_FOUND)
set(BPF_LIBRARIES ${BPF_LIBRARY})
set(BPF_INCLUDE_DIRS ${BPF_INCLUDE_DIR})
else()
set(BPF_LIBRARIES)
set(BPF_INCLUDE_DIRS)
endif()

mark_as_advanced(BPF_LIBRARIES BPF_INCLUDE_DIRS)
69 changes: 53 additions & 16 deletions CMake/FindLibDwarf.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -25,36 +25,72 @@ endif (LIBDWARF_LIBRARIES AND LIBDWARF_INCLUDE_DIRS)
find_package(PkgConfig)
pkg_check_modules(PkgConfig_LibDwarf QUIET libdwarf)

set(
LIBDWARF_INCLUDE_PATHS
${PkgConfig_LibDwarf_INCLUDE_DIRS}
/usr/include
/usr/include/libdwarf
/usr/local/include
/usr/local/include/libdwarf
/opt/local/include
/sw/include
)

find_path (DWARF_INCLUDE_DIR
NAMES
libdwarf.h dwarf.h
PATHS
${PkgConfig_LibDwarf_INCLUDE_DIRS}
/usr/include
/usr/include/libdwarf
/usr/local/include
/usr/local/include/libdwarf
/opt/local/include
/sw/include
${LIBDWARF_INCLUDE_PATHS}
ENV CPATH) # PATH and INCLUDE will also work

if (DWARF_INCLUDE_DIR)
set (LIBDWARF_INCLUDE_DIRS ${DWARF_INCLUDE_DIR})
endif ()

set(LIBDWARF_LIBRARY_NAMES dwarf libdwarf)

find_path (LIBDWARF_PRODUCER_PATHS
NAMES
libdwarfp.h
PATHS
${LIBDWARF_INCLUDE_PATHS}
ENV CPATH
)

set(
LIBDWARF_LIBRARY_PATHS
/usr/lib
/usr/local/lib
/opt/local/lib
/sw/lib
${PkgConfig_LibDwarf_LIBRARY_DIRS}
ENV LIBRARY_PATH # PATH and LIB will also work
ENV LD_LIBRARY_PATH
)

if (LIBDWARF_PRODUCER_PATHS)
set(LIBDWARF_USE_NEW_PRODUCER_API 1)
else()
set(LIBDWARF_USE_NEW_PRODUCER_API 0)
endif()

find_library (LIBDWARF_LIBRARIES
NAMES
dwarf libdwarf
PATHS
/usr/lib
/usr/local/lib
/opt/local/lib
/sw/lib
${PkgConfig_LibDwarf_LIBRARY_DIRS}
ENV LIBRARY_PATH # PATH and LIB will also work
ENV LD_LIBRARY_PATH)
include (FindPackageHandleStandardArgs)
${LIBDWARF_LIBRARY_PATHS})

if (LIBDWARF_USE_NEW_PRODUCER_API)
find_library (LIBDWARFP_LIBRARIES
NAMES
dwarfp libdwarfp
PATHS
${LIBDWARF_LIBRARY_PATHS})

list(APPEND LIBDWARF_LIBRARIES ${LIBDWARFP_LIBRARIES})
endif()

include (FindPackageHandleStandardArgs)

# handle the QUIETLY and REQUIRED arguments and set LIBDWARF_FOUND to TRUE
# if all listed variables are TRUE
Expand Down Expand Up @@ -106,7 +142,7 @@ if (LIBDWARF_LIBRARIES AND LIBDWARF_INCLUDE_DIRS)

# Order is important, last one is used.
CHECK_LIBDWARF_INIT("dwarf_producer_init"
"0, dwarfCallback, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr" 0)
"0, dwarfCallback, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr" 0)
CHECK_LIBDWARF_INIT("dwarf_producer_init_c" "0, dwarfCallback, nullptr, nullptr, nullptr, nullptr" 1)

set(CMAKE_REQUIRED_INCLUDES)
Expand All @@ -127,3 +163,4 @@ endif()
mark_as_advanced(LIBDW_INCLUDE_DIR DWARF_INCLUDE_DIR)
mark_as_advanced(LIBDWARF_INCLUDE_DIRS LIBDWARF_LIBRARIES)
mark_as_advanced(LIBDWARF_CONST_NAME LIBDWARF_USE_INIT_C)
mark_as_advanced(LIBDWARF_USE_NEW_PRODUCER_API)
23 changes: 23 additions & 0 deletions CMake/FindLibheif.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
if(LIBHEIF_FOUND)
set(LIBHEIF_FIND_QUIETLY TRUE)
endif()

find_path(LIBHEIF_INCLUDE_DIR
NAMES heif.h
PATH_SUFFIXES libheif
PATHS /usr/include /usr/local/include /usr/pkg/include
)

find_library(LIBHEIF_LIBRARY
NAMES heif
PATHS /lib /usr/lib /usr/local/lib /usr/pkg/lib
)

if(LIBHEIF_INCLUDE_DIR AND LIBHEIF_LIBRARY)
set(LIBHEIF_FOUND TRUE)
endif()

mark_as_advanced(
LIBHEIF_INCLUDE_DIR
LIBHEIF_LIBRARY
)
17 changes: 17 additions & 0 deletions CMake/FindLmdb.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
if(LMDB_FOUND)
set(LMDB_FIND_QUIETLY TRUE)
endif()

find_path(LMDB_INCLUDE_DIR
NAMES lmdb.h
PATHS /usr/include /usr/local/include /usr/pkg/include
)

find_library(LMDB_LIBRARY
NAMES lmdb
PATHS /lib /usr/lib /usr/local/lib /usr/pkg/lib
)

if(LMDB_INCLUDE_DIR AND LMDB_LIBRARY)
set(LMDB_FOUND TRUE)
endif()
22 changes: 22 additions & 0 deletions CMake/HHVMExtensionConfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,17 @@ function (HHVM_EXTENSION_INTERNAL_HANDLE_LIBRARY_DEPENDENCY extensionID dependen
HHVM_EXTENSION_INTERNAL_ADD_LINK_LIBRARIES(${GMP_LIBRARY})
HHVM_EXTENSION_INTERNAL_ADD_DEFINES("-DHAVE_LIBGMP")
endif()
elseif (${libraryName} STREQUAL "heif")
find_package(Libheif ${requiredVersion} REQUIRED)
if (NOT LIBHEIF_INCLUDE_DIR OR NOT LIBHEIF_LIBRARY)
HHVM_EXTENSION_INTERNAL_SET_FAILED_DEPENDENCY(${extensionID} ${dependencyName})
return()
endif()

if (${addPaths})
HHVM_EXTENSION_INTERNAL_ADD_INCLUDE_DIRS(${LIBHEIF_INCLUDE_DIR})
HHVM_EXTENSION_INTERNAL_ADD_LINK_LIBRARIES(${LIBHEIF_LIBRARY})
endif()
elseif (${libraryName} STREQUAL "iconv")
find_package(Libiconv ${requiredVersion})
if (NOT LIBICONV_INCLUDE_DIR)
Expand Down Expand Up @@ -863,6 +874,17 @@ function (HHVM_EXTENSION_INTERNAL_HANDLE_LIBRARY_DEPENDENCY extensionID dependen
HHVM_EXTENSION_INTERNAL_ADD_LINK_LIBRARIES(${LDAP_LIBRARIES})
HHVM_EXTENSION_INTERNAL_ADD_DEFINES("-DHAVE_LIBLDAP")
endif()
elseif (${libraryName} STREQUAL "lmdb")
find_package(Lmdb ${requiredVersion} REQUIRED)
if (NOT LMDB_INCLUDE_DIR OR NOT LMDB_LIBRARY)
HHVM_EXTENSION_INTERNAL_SET_FAILED_DEPENDENCY(${extensionID} ${dependencyName})
return()
endif()

if (${addPaths})
HHVM_EXTENSION_INTERNAL_ADD_INCLUDE_DIRS(${LMDB_INCLUDE_DIR})
HHVM_EXTENSION_INTERNAL_ADD_LINK_LIBRARIES(${LMDB_LIBRARY})
endif()
elseif (${libraryName} STREQUAL "magickwand")
find_package(LibMagickWand ${requiredVersion})
if (NOT LIBMAGICKWAND_INCLUDE_DIRS OR NOT LIBMAGICKWAND_LIBRARIES OR NOT LIBMAGICKCORE_LIBRARIES)
Expand Down
31 changes: 6 additions & 25 deletions CMake/HPHPCompiler.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -93,19 +93,8 @@ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQU
endif()

if (IS_X64)
# For unclear reasons, our detection for what crc32 intrinsics you have
# will cause Apple clang to ICE. Specifying a baseline here works around
# the issue. (SSE4.2 has been available on processors for quite some time now.)
if(ENABLE_SSE4_2 OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang")
list(APPEND GENERAL_CXX_OPTIONS
# SSE4.2 has been available on processors for quite some time now. This
# allows enabling CRC hash function code
"msse4.2"
)
# Also pass the right option to ASM files to avoid inconsistencies
# in CRC hash function handling
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -msse4.2")
endif()
list(APPEND GENERAL_CXX_OPTIONS "march=x86-64-v3")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -march=x86-64-v3")
endif()

if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang") # using Clang
Expand Down Expand Up @@ -134,6 +123,10 @@ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQU
if(CLANG_FORCE_LIBCPP)
list(APPEND GENERAL_CXX_OPTIONS "stdlib=libc++")
endif()

if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 20)
list(APPEND GENERAL_OPTIONS "Wno-nontrivial-memcall")
endif()
else() # using GCC
list(APPEND DISABLED_NAMED_WARNINGS
"deprecated-declarations"
Expand Down Expand Up @@ -285,13 +278,6 @@ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQU
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -${opt}")
endforeach()

# The ASM part of this makes it more effort than it's worth
# to add these to the general flags system.
if(ENABLE_AVX2)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx2 -march=core-avx2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2 -march=core-avx2")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -mavx2 -march=core-avx2")
endif()
# using Intel C++
elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -no-ipo -fp-model precise -wd584 -wd1418 -wd1918 -wd383 -wd869 -wd981 -wd424 -wd1419 -wd444 -wd271 -wd2259 -wd1572 -wd1599 -wd82 -wd177 -wd593 -w")
Expand Down Expand Up @@ -349,11 +335,6 @@ elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC")
list(APPEND MSVC_GENERAL_OPTIONS "MP")
endif()

# Enable AVX2 codegen if available and requested.
if (ENABLE_AVX2)
list(APPEND MSVC_GENERAL_OPTIONS "arch:AVX2")
endif()

# Validate, and then add the favored architecture.
if (NOT MSVC_FAVORED_ARCHITECTURE STREQUAL "blend" AND NOT MSVC_FAVORED_ARCHITECTURE STREQUAL "AMD64" AND NOT MSVC_FAVORED_ARCHITECTURE STREQUAL "INTEL64" AND NOT MSVC_FAVORED_ARCHITECTURE STREQUAL "ATOM")
message(FATAL_ERROR "MSVC_FAVORED_ARCHITECTURE must be set to one of exactly, 'blend', 'AMD64', 'INTEL64', or 'ATOM'! Got '${MSVC_FAVORED_ARCHITECTURE}' instead!")
Expand Down
Loading