Files
RedBear-OS/local/recipes/dev/libclc/source/clc/lib/generic/SOURCES
T
vasilito f26371ae30 recipes: add libclc as a local Red Bear OS project (Cat 1)
libclc was vendored at recipes/dev/llvm21/source/libclc/ as a
build artifact of the llvm21 fork. This promoted it from an
implicit Mesa dependency (the CLC bitcode Mesa consumes) to a
first-class local project, mirroring how tlc, redbear-*, cub, etc.
are organized per local/AGENTS.md.

Local layout follows the existing in-house pattern:
  recipes/dev/libclc          -> ../../local/recipes/dev/libclc
  local/recipes/dev/libclc/recipe.toml
  local/recipes/dev/libclc/source/   (vendored from llvm-project)

The recipe builds libclc as a host-side CMake project using the
cookbook-sysroot clang21 binary (not the cross-compiler) to compile
OpenCL kernels to .bc bitcode. Output targets are amdgcn, amdgcn-amdhsa,
r600, generic, and spirv — the union that Mesa's clc tool consumes
for the iris/radeonsi/llvmpipe drivers. ptx-nvidiacl and clspv are
excluded because they don't map onto any Mesa hardware driver.

The recipe also wires the cookbook's native-cmake generation with
an override that points CMAKE_C_COMPILER etc. at the cookbook
sysroot's clang-21 binary. This is needed because libclc must
run on the build host (output is bitcode, not a Redox binary),
and the cookbook's default cross-toolchain would link the build
against relibc instead of host glibc.

libclc.pc is installed at usr/lib/pkgconfig/, satisfying Mesa's
dependency('libclc') lookup. The .bc files are installed under
usr/share/clc/, which is what the libclc.pc libexecdir pointer
(libexecdir=<prefix>/share/clc) expects.

This is the prerequisite for re-enabling iris, radeonsi, and the
Intel Vulkan driver in the Mesa recipe (Phase 4-6 of
local/docs/3D-DRIVER-PLAN.md). With libclc available in the
cross-sysroot, mesa's meson '-Dwith_clc -> dependency(libclc)'
resolves and the gallium drivers compile.
2026-07-25 14:29:34 +09:00

159 lines
3.3 KiB
Plaintext

async/clc_prefetch.cl
common/clc_degrees.cl
common/clc_radians.cl
common/clc_sign.cl
common/clc_smoothstep.cl
common/clc_step.cl
geometric/clc_cross.cl
geometric/clc_distance.cl
geometric/clc_dot.cl
geometric/clc_fast_distance.cl
geometric/clc_fast_length.cl
geometric/clc_fast_normalize.cl
geometric/clc_length.cl
geometric/clc_normalize.cl
integer/clc_abs.cl
integer/clc_abs_diff.cl
integer/clc_add_sat.cl
integer/clc_clz.cl
integer/clc_ctz.cl
integer/clc_hadd.cl
integer/clc_mad24.cl
integer/clc_mad_sat.cl
integer/clc_mul24.cl
integer/clc_mul_hi.cl
integer/clc_popcount.cl
integer/clc_rhadd.cl
integer/clc_rotate.cl
integer/clc_sub_sat.cl
integer/clc_upsample.cl
math/clc_acos.cl
math/clc_acosh.cl
math/clc_acospi.cl
math/clc_asin.cl
math/clc_asinh.cl
math/clc_asinpi.cl
math/clc_atan.cl
math/clc_atan2.cl
math/clc_atan2pi.cl
math/clc_atanh.cl
math/clc_atanpi.cl
math/clc_cbrt.cl
math/clc_ceil.cl
math/clc_copysign.cl
math/clc_cos.cl
math/clc_cosh.cl
math/clc_cospi.cl
math/clc_ep_log.cl
math/clc_erf.cl
math/clc_erfc.cl
math/clc_exp.cl
math/clc_exp10.cl
math/clc_exp2.cl
math/clc_expm1.cl
math/clc_exp_helper.cl
math/clc_fabs.cl
math/clc_fdim.cl
math/clc_fma.cl
math/clc_fmax.cl
math/clc_fmin.cl
math/clc_floor.cl
math/clc_fmod.cl
math/clc_fract.cl
math/clc_frexp.cl
math/clc_half_cos.cl
math/clc_half_divide.cl
math/clc_half_exp.cl
math/clc_half_exp10.cl
math/clc_half_exp2.cl
math/clc_half_log.cl
math/clc_half_log10.cl
math/clc_half_log2.cl
math/clc_half_powr.cl
math/clc_half_rsqrt.cl
math/clc_half_recip.cl
math/clc_half_sin.cl
math/clc_half_sqrt.cl
math/clc_half_tan.cl
math/clc_hypot.cl
math/clc_ilogb.cl
math/clc_ldexp.cl
math/clc_lgamma.cl
math/clc_lgamma_r.cl
math/clc_log.cl
math/clc_log10.cl
math/clc_log1p.cl
math/clc_log2.cl
math/clc_logb.cl
math/clc_mad.cl
math/clc_maxmag.cl
math/clc_minmag.cl
math/clc_modf.cl
math/clc_nan.cl
math/clc_native_cos.cl
math/clc_native_divide.cl
math/clc_native_exp.cl
math/clc_native_exp10.cl
math/clc_native_exp2.cl
math/clc_native_log.cl
math/clc_native_log10.cl
math/clc_native_log2.cl
math/clc_native_powr.cl
math/clc_native_rsqrt.cl
math/clc_native_recip.cl
math/clc_native_sin.cl
math/clc_native_sqrt.cl
math/clc_native_tan.cl
math/clc_nextafter.cl
math/clc_pow.cl
math/clc_pown.cl
math/clc_powr.cl
math/clc_remainder.cl
math/clc_remquo.cl
math/clc_rint.cl
math/clc_rootn.cl
math/clc_round.cl
math/clc_rsqrt.cl
math/clc_sin.cl
math/clc_sincos.cl
math/clc_sincos_helpers.cl
math/clc_sinh.cl
math/clc_sinpi.cl
math/clc_sqrt.cl
math/clc_sw_fma.cl
math/clc_tables.cl
math/clc_tan.cl
math/clc_tanh.cl
math/clc_tanpi.cl
math/clc_tgamma.cl
math/clc_trunc.cl
misc/clc_shuffle.cl
misc/clc_shuffle2.cl
relational/clc_all.cl
relational/clc_any.cl
relational/clc_bitselect.cl
relational/clc_isequal.cl
relational/clc_isfinite.cl
relational/clc_isgreater.cl
relational/clc_isgreaterequal.cl
relational/clc_isinf.cl
relational/clc_isless.cl
relational/clc_islessequal.cl
relational/clc_islessgreater.cl
relational/clc_isnan.cl
relational/clc_isnormal.cl
relational/clc_isnotequal.cl
relational/clc_isordered.cl
relational/clc_isunordered.cl
relational/clc_select.cl
relational/clc_signbit.cl
shared/clc_clamp.cl
shared/clc_max.cl
shared/clc_min.cl
shared/clc_vload.cl
shared/clc_vstore.cl
workitem/clc_get_local_linear_id.cl
workitem/clc_get_num_sub_groups.cl
workitem/clc_get_sub_group_id.cl
workitem/clc_get_sub_group_size.cl