Files
chromebrew/packages/libclc.rb
chromebrew-actions[bot] a145b1b199 AutoBuild: llvm started at 2025-07-15-02UTC. (#12193)
* llvm => 20.1.4

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Adjust llvm build settings.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add built packages for linux/386 to llvm

* adjust build

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Readd CREW_LINKER_FLAGS to llvm build.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add armv7l binaries

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* llvm => 20.1.5

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* wip

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* wip

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* wip

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Remove unneeded deps for llvm build.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add i686 build

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* adjust build

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* revert

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* llvm_build => 20.1.7

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* llvm => 20.1.8

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add built packages for linux/386 to branch llvm.

* adjust compiler-rt build settings.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add built packages for linux/amd64 to branch llvm.

* Add built packages for linux/arm/v7 to branch llvm.

* Update llvm dev and lib

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add built packages for linux/386 to branch llvm.

* Add built packages for linux/amd64 to branch llvm.

* Add built packages for linux/arm/v7 to branch llvm.

* Update libclc, openmp

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Adjust linker options

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add built packages for linux/386 to branch llvm.

* Add built packages for linux/amd64 to branch llvm.

* Add built packages for linux/arm/v7 to branch llvm.

---------

Signed-off-by: Satadru Pramanik <satadru@gmail.com>
Co-authored-by: Satadru Pramanik <satadru@gmail.com>
Co-authored-by: satmandu <satmandu@users.noreply.github.com>
2025-07-15 16:48:54 +00:00

76 lines
3.1 KiB
Ruby

# Adapted from Arch Linux libclc PKGBUILD at:
# https://github.com/archlinux/svntogit-packages/raw/packages/libclc/trunk/PKGBUILD
require 'package'
class Libclc < Package
llvm_build_obj = Package.load_package("#{__dir__}/#{CREW_LLVM_VER}_build.rb")
description 'Library requirements of the OpenCL C programming language'
homepage 'https://libclc.llvm.org/'
version '20.1.8'
# When upgrading llvm*_build, be sure to upgrade llvm_lib*, llvm_dev*, libclc, and openmp in tandem.
puts "#{self} version differs from llvm version #{llvm_build_obj.version}".orange if version != llvm_build_obj.version
license 'Apache-2.0-with-LLVM-exceptions, UoI-NCSA, BSD, public-domain, rc, Apache-2.0 and MIT'
compatibility 'aarch64 armv7l x86_64'
source_url 'https://github.com/llvm/llvm-project.git'
git_hashtag llvm_build_obj.git_hashtag.to_s
binary_compression 'tar.zst'
binary_sha256({
aarch64: '511fbd0f216e90acd5cc0f9aaa9e0687b4f5f4d1b93b773e0d82132f940fcca1',
armv7l: '511fbd0f216e90acd5cc0f9aaa9e0687b4f5f4d1b93b773e0d82132f940fcca1',
x86_64: '6f432715d615ce6ceb0c4b8af45f7fbdc4510ff36e1df1aca622512621c9d35d'
})
depends_on 'llvm_dev' => :build
depends_on 'python3' => :build
depends_on 'spirv_llvm_translator' => :build
no_env_options
def self.patch
# Remove rc suffix on final release.
system "sed -i 's,set(LLVM_VERSION_SUFFIX rc),,' llvm/CMakeLists.txt"
# Patch for LLVM 15+ because of https://github.com/llvm/llvm-project/issues/58851
File.write 'llvm_crew_lib_prefix.patch', <<~LLVM_PATCH_EOF
--- a/clang/lib/Driver/ToolChains/Linux.cpp 2022-11-30 15:50:36.777754608 -0500
+++ b/clang/lib/Driver/ToolChains/Linux.cpp 2022-11-30 15:51:57.004417484 -0500
@@ -314,6 +314,7 @@ Linux::Linux(const Driver &D, const llvm
D.getVFS().exists(D.Dir + "/../lib/libc++.so"))
addPathIfExists(D, D.Dir + "/../lib", Paths);
+ addPathIfExists(D, concat(SysRoot, "#{CREW_LIB_PREFIX}"), Paths);
addPathIfExists(D, concat(SysRoot, "/lib"), Paths);
addPathIfExists(D, concat(SysRoot, "/usr/lib"), Paths);
}
LLVM_PATCH_EOF
system 'patch -Np1 -i llvm_crew_lib_prefix.patch'
end
def self.build
@cmake_options = case ARCH
when 'i686', 'x86_64'
CREW_CMAKE_OPTIONS.gsub('-flto=auto', '').sub('-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE', '')
else
CREW_CMAKE_OPTIONS
end
system "cmake -B builddir -G Ninja libclc \
-DCMAKE_C_COMPILER=$(which clang) \
-DCMAKE_C_COMPILER_TARGET=#{CREW_TARGET} \
-DCMAKE_CXX_COMPILER=$(which clang++) \
-DCMAKE_CXX_COMPILER_AR=$(which llvm-ar) \
-DCMAKE_CXX_COMPILER_RANLIB=$(which llvm-ranlib) \
-DCMAKE_INSTALL_LIBDIR=#{ARCH_LIB} \
-DCMAKE_INSTALL_PREFIX=#{CREW_PREFIX} \
-DCMAKE_LIBRARY_PATH='#{CREW_GLIBC_INTERPRETER.nil? ? CREW_LIB_PREFIX : "#{CREW_GLIBC_PREFIX};#{CREW_LIB_PREFIX}"}' \
-D_CMAKE_TOOLCHAIN_PREFIX=llvm- \
-Wno-dev"
system "#{CREW_NINJA} -C builddir"
end
def self.install
system "DESTDIR=#{CREW_DEST_DIR} #{CREW_NINJA} -C builddir install"
end
end