Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix OSS build #9564

Draft
wants to merge 65 commits into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
1a4d5f5
Add mvfst and usdt dependencies
mszabo-wikia Dec 28, 2024
77b931c
Fix thrift build
mszabo-wikia Dec 28, 2024
2fe326f
IWYU: add missing includes to hphp/util
mszabo-wikia Dec 28, 2024
42161ad
Fix phph/hhbbc/index.cpp compilation
mszabo-wikia Dec 28, 2024
09149fe
IWYU: fix boost include in hphp/compiler/systemlib.cpp
mszabo-wikia Dec 28, 2024
bccf698
Update OCaml stubs
mszabo-wikia Dec 28, 2024
08255e9
Remove nonexistent actions runner label
mszabo-wikia Dec 28, 2024
6399636
Require the ldap package
mszabo-wikia Dec 28, 2024
ca383a0
Remove nonexistent dso_tests reference
mszabo-wikia Dec 28, 2024
dbbb4ee
Provide OCaml env vars for ocamlrep crate
mszabo-wikia Dec 28, 2024
56e004a
IWYU: Add missing cstdint include to hdf.h
mszabo-wikia Dec 28, 2024
91dfcd5
Update folly patches
mszabo-wikia Dec 28, 2024
e7decc8
IWYU: Add missing cstdint include to fcall-args-flags.h
mszabo-wikia Dec 28, 2024
1a0c8a7
Fix hhbc-unit.h generation
mszabo-wikia Dec 28, 2024
71dc336
Use system libraries for xxhash, lz4 and double-conversion
mszabo-wikia Dec 28, 2024
6ee1c26
Use vendored fast_float library for folly
mszabo-wikia Dec 28, 2024
29c8c60
Don't build squangle and mcrouter for OSS for now
mszabo-wikia Dec 28, 2024
5845d94
Add missing extension dependencies
mszabo-wikia Dec 28, 2024
4ba987b
hack: skip building blake3 hash for now
mszabo-wikia Dec 28, 2024
0ebe40d
Fix HPHP::Facts::Clock formatter compat with newer libfmt
mszabo-wikia Dec 28, 2024
7c2fe97
Disable more broken extensions
mszabo-wikia Dec 28, 2024
c59bd02
Allow building with system lz4
mszabo-wikia Dec 28, 2024
759f7e8
Fix spammy -Winconsistent-override in transport.h
mszabo-wikia Dec 28, 2024
0a57f68
Fix TBB clang patch
mszabo-wikia Dec 28, 2024
0a373c9
Attempt to workaround build races
mszabo-wikia Dec 28, 2024
401d559
Install and force libc++ for the OSS build
mszabo-wikia Dec 29, 2024
e8bc3d2
Silence spammy 'non-local-definitions' rust lint
mszabo-wikia Dec 29, 2024
09f9992
Use LLVM 17 to satisfy C++20 requirements
mszabo-wikia Dec 29, 2024
57fb242
Build xed since it's now required
mszabo-wikia Dec 29, 2024
1a64e74
Parallelize the folly build
mszabo-wikia Dec 29, 2024
1435a45
Update Fizz patches
mszabo-wikia Dec 29, 2024
e972e62
Update third-party GitHub actions
mszabo-wikia Dec 30, 2024
028ae83
Switch CI from Focal to Jammy
mszabo-wikia Dec 31, 2024
aba069d
Use single Rust staticlib for FFI
mszabo-wikia Dec 31, 2024
62e1eb1
Use underlying type for formatting HPHP::jit::Opcode to fix debug build
mszabo-wikia Jan 3, 2025
d3c3e14
Ensure Rust commands execute after OPAM setup
mszabo-wikia Jan 3, 2025
659e41a
Generate config headers from configs.specification
mszabo-wikia Dec 28, 2024
becb4f5
Add missing dependencies for gd and lmdb extensions
mszabo-wikia Jan 3, 2025
4242738
Link fizz against liboqs transitively if it was found
mszabo-wikia Jan 3, 2025
d3552db
Exclude Meta-specific code in ext/fb
mszabo-wikia Jan 3, 2025
ffaa3e1
Pass CMAKE_CXX_FLAGS to tbb
mszabo-wikia Jan 3, 2025
31e0e08
Add missing 'long long' rr::serialize() specialization
mszabo-wikia Jan 3, 2025
f464765
Add missing tc-print source file
mszabo-wikia Jan 3, 2025
aea9c8d
support new libdwarfp API
mszabo-wikia Jan 5, 2025
f91b8ef
Fix tc-print link order
mszabo-wikia Jan 5, 2025
ee4de81
Fix compilation error with OpenSSL 3
Atry Nov 2, 2022
b6ade55
Update systemlib generation to support precompiled systemlibs
mszabo-wikia Dec 28, 2024
8cd0a2a
Use an Ubuntu 24.04 CI
mszabo-wikia Jan 5, 2025
559d23e
Fix ocamlrep_marshal dune lock
mszabo-wikia Jan 5, 2025
5890bf2
Use Opensource Team-approved runner label
mszabo-wikia Jan 6, 2025
7d70094
Fix tc-print subdirectory load order
mszabo-wikia Jan 6, 2025
c2347e0
Switch back to RelWithDebInfo builds after stabilizing CI
mszabo-wikia Jan 7, 2025
26959b0
Stabilize ocaml build
mszabo-wikia Feb 1, 2025
d495468
Update mvfst submodule ref
mszabo-wikia Feb 1, 2025
c142bbd
Lowercase fizz reference
mszabo-wikia Feb 2, 2025
923dd5e
Undefine a MySQL constant until the client is updated
mszabo-wikia Feb 10, 2025
322c4a5
Remove outdated Squangle patches
mszabo-wikia Feb 10, 2025
db4eed9
Use C++20 for building Squangle
mszabo-wikia Feb 12, 2025
1f8205b
Forward CMAKE_CXX_STANDARD to fizz, mvfst and wangle
mszabo-wikia Feb 13, 2025
6b6575d
Remove SSE4.2 and AVX2 toggles in favor of march=x86-64-v3
mszabo-wikia Feb 14, 2025
c5f7176
Update OCaml stubs per feedback from Slack
mszabo-wikia Feb 19, 2025
5bfb3c5
Add sandcastle module dependency
mszabo-wikia Mar 13, 2025
2e264e6
Add diagnostics stub
mszabo-wikia Mar 18, 2025
19d3289
Update cargo lockfile
mszabo-wikia Mar 18, 2025
dd4a524
Update mvfst submodule
mszabo-wikia Mar 18, 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
22 changes: 8 additions & 14 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
@@ -26,22 +26,16 @@ env:

jobs:
build_ubuntu_focal_nightly:
runs-on: 16-core
runs-on: 8-core-ubuntu
container:
image: ubuntu:focal
image: ubuntu:noble
env:
DISTRO: ubuntu-20.04-focal
DISTRO: ubuntu-24.04-noble
IS_NIGHTLY: 1
CLANG_VERSION: 12
CLANG_VERSION: 18
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}
run: apt update -y && apt install -y git wget lsb-release software-properties-common gpg clang clang-${CLANG_VERSION} libc++-${CLANG_VERSION}-dev libc++abi-${CLANG_VERSION}-dev
- name: Making LLVM the default compiler
run: |
if [ -f /etc/alternatives/cc ]
@@ -53,19 +47,19 @@ jobs:
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
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Installing HHVM deps and building HHVM
run: ci/bin/make-debianish-package
- name: Uploading artifacts
uses: actions/upload-artifact@v3
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
@@ -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
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -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
67 changes: 52 additions & 15 deletions CMake/FindLibDwarf.cmake
Original file line number Diff line number Diff line change
@@ -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(PREPEND 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
@@ -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
@@ -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)
@@ -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)
27 changes: 2 additions & 25 deletions CMake/HPHPCompiler.cmake
Original file line number Diff line number Diff line change
@@ -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
@@ -285,13 +274,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")
@@ -349,11 +331,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!")
62 changes: 24 additions & 38 deletions CMake/HPHPFindLibs.cmake
Original file line number Diff line number Diff line change
@@ -83,6 +83,9 @@ if (FASTLZ_INCLUDE_DIR)
include_directories(${FASTLZ_INCLUDE_DIR})
endif()

# ldap
find_package(Ldap)

# ICU
find_package(ICU REQUIRED)
if (ICU_FOUND)
@@ -235,6 +238,10 @@ if (NOT WINDOWS)
add_definitions("-DLIBDWARF_USE_INIT_C")
endif()

if (LIBDWARF_USE_NEW_PRODUCER_API)
add_definitions("-DLIBDWARF_USE_NEW_PRODUCER_API")
endif()

find_package(LibElf REQUIRED)
include_directories(${LIBELF_INCLUDE_DIRS})
if (ELF_GETSHDRSTRNDX)
@@ -271,6 +278,10 @@ if (APPLE)
find_library(KERBEROS_LIB NAMES gssapi_krb5)
endif()

if (LINUX)
find_package(LibUnwind REQUIRED)
endif()

# This is required by Homebrew's libc. See
# https://github.com/facebook/hhvm/pull/5728#issuecomment-124290712
# for more info.
@@ -332,6 +343,10 @@ macro(hphp_link target)
target_link_libraries(${target} ${VISIBILITY} ${CURL_LIBRARIES})
target_link_libraries(${target} ${VISIBILITY} glog)

if (LINUX)
target_link_libraries(${target} ${VISIBILITY} ${LIBUNWIND_LIBRARIES})
endif()

if (LIBINOTIFY_LIBRARY)
target_link_libraries(${target} ${VISIBILITY} ${LIBINOTIFY_LIBRARY})
endif()
@@ -408,11 +423,7 @@ macro(hphp_link target)
target_link_libraries(${target} ${VISIBILITY} fizz)
target_link_libraries(${target} ${VISIBILITY} brotli)
target_link_libraries(${target} ${VISIBILITY} hhbc_ast_header)
target_link_libraries(${target} ${VISIBILITY} compiler_ffi)
target_link_libraries(${target} ${VISIBILITY} package_ffi)
target_link_libraries(${target} ${VISIBILITY} parser_ffi)
target_link_libraries(${target} ${VISIBILITY} hhvm_types_ffi)
target_link_libraries(${target} ${VISIBILITY} hhvm_hhbc_defs_ffi)
target_link_libraries(${target} ${VISIBILITY} hack_rust_ffi_bridge)

target_link_libraries(${target} ${VISIBILITY} tbb)

@@ -431,39 +442,14 @@ macro(hphp_link target)
target_link_libraries(${target} ${VISIBILITY} dbghelp.lib dnsapi.lib)
endif()

# Check whether atomic operations require -latomic or not
# See https://github.com/facebook/hhvm/issues/5217
include(CheckCXXSourceCompiles)
set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
set(CMAKE_REQUIRED_FLAGS "-std=c++1y")
CHECK_CXX_SOURCE_COMPILES("
#include <atomic>
#include <iostream>
#include <stdint.h>
int main() {
struct Test { int64_t val1; int64_t val2; };
std::atomic<Test> s;
// Do this to stop modern compilers from optimizing away the libatomic
// calls in release builds, making this test always pass in release builds,
// and incorrectly think that HHVM doesn't need linking against libatomic.
bool (std::atomic<Test>::* volatile x)(void) const =
&std::atomic<Test>::is_lock_free;
std::cout << (s.*x)() << std::endl;
}
" NOT_REQUIRE_ATOMIC_LINKER_FLAG)

if(NOT "${NOT_REQUIRE_ATOMIC_LINKER_FLAG}")
message(STATUS "-latomic is required to link hhvm")
find_library(ATOMIC_LIBRARY NAMES atomic libatomic.so.1)
if (ATOMIC_LIBRARY STREQUAL "ATOMIC_LIBRARY-NOTFOUND")
# -latomic should be available for gcc even when libatomic.so.1 is not
# in the library search path
target_link_libraries(${target} ${VISIBILITY} atomic)
else()
target_link_libraries(${target} ${VISIBILITY} ${ATOMIC_LIBRARY})
endif()
endif()
set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
find_library(ATOMIC_LIBRARY NAMES atomic libatomic.so.1)
if (ATOMIC_LIBRARY STREQUAL "ATOMIC_LIBRARY-NOTFOUND")
# -latomic should be available for gcc even when libatomic.so.1 is not
# in the library search path
target_link_libraries(${target} ${VISIBILITY} atomic)
else()
target_link_libraries(${target} ${VISIBILITY} ${ATOMIC_LIBRARY})
endif()

if (ENABLE_XED)
if (LibXed_FOUND)
Loading