Skip to content

master - CC/CXX is not getting set to clang #1112

@jwinarske

Description

@jwinarske

Describe the bug
Not able to set CC/CXX to clang/clang++ with target/native based recipe.

To Reproduce
Steps to reproduce the behavior:

  1. Attempt to build filament-vk recipe
  2. cat run.do_configure
  3. see variables CC/CXX are still set to gcc
  4. See error

Expected behavior
variables get set to use Clang. Works fine on scarthgap, and kirkstone. Something different about master which I haven't figured out yet.

Desktop (please complete the following information):

  • OS: Fedora 42
  • Version meta-clang master

Additional context

export AR="ar"
export AS="as "
export BUILD_AR="ar"
export BUILD_AS="as "
export BUILD_CC="gcc "
export BUILD_CCLD="gcc "
export BUILD_CFLAGS="-isystem/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/include -O2 -pipe "
export BUILD_CPP="gcc  -E"
export BUILD_CPPFLAGS="-isystem/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/include"
export BUILD_CXX="g++ "
export BUILD_CXXFLAGS="-isystem/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/include -O2 -pipe  "
export BUILD_FC="gfortran "
export BUILD_LD="ld "
export BUILD_LDFLAGS="-L/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/lib                         -L/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/lib                         -Wl,--enable-new-dtags                         -Wl,-rpath-link,/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/lib                         -Wl,-rpath-link,/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/lib                         -Wl,-rpath,/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/lib                         -Wl,-rpath,/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/lib                         -Wl,-O1 -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=/__w/meta-flutter/master-linux-dummy/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 -pthread"
export BUILD_NM="nm"
export BUILD_RANLIB="ranlib -D"
export BUILD_STRIP="strip"
export CC="gcc "
export CCLD="gcc "
export CFLAGS="-isystem/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/include -O2 -pipe "
export CONFIG_SITE="/__w/meta-flutter/master-linux-dummy/poky/meta/site/native"
export CPP="gcc  -E"
export CPPFLAGS="-isystem/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/include"
export CXX="g++ "
export CXXFLAGS="-isystem/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/include -O2 -pipe   -fvisibility-inlines-hidden -stdlib=libc++"
export FC="gfortran "
export GIT_CEILING_DIRECTORIES="/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3"
export HOME="/github/home"
export LC_ALL="en_US.UTF-8"
export LD="ld "
export LDFLAGS="-L/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/lib                         -L/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/lib                         -Wl,--enable-new-dtags                         -Wl,-rpath-link,/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/lib                         -Wl,-rpath-link,/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/lib                         -Wl,-rpath,/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/usr/lib                         -Wl,-rpath,/__w/meta-flutter/master-linux-dummy/build/tmp/work/x86_64-linux/filament-vk-native/1.54.3/recipe-sysroot-native/lib                         -Wl,-O1 -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=/__w/meta-flutter/master-linux-dummy/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 -pthread  -stdlib=libc++"
export MAKE="make"
export NM="nm"
export OBJCOPY="objcopy"
export OBJDUMP="objdump"
export OMP_NUM_THREADS="32"

https://github.com/jwinarske/meta-vulkan/blob/master/dynamic-layers/clang-layer/recipes-graphics/filament/filament-vk_1.54.3.bb

SUMMARY = "Lightweight 3D Render Engine"
DESCRIPTION = "Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2"
AUTHOR = "Filament Authors"
HOMEPAGE = "https://github.com/google/filament"
BUGTRACKER = "https://github.com/google/filament/issues"
SECTION = "graphics"

LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4a8c8edce973aab6aaecb609fbab16bd"

DEPENDS += "\
    compiler-rt \
    libcxx \
    unzip-native \
    zip-native \
    "

DEPENDS:class-target += "\
    filament-vk-native \
    vulkan-loader \
    "

REQUIRED_DISTRO_FEATURES:class-target = "vulkan"


TOOLCHAIN:class-native = "clang"
TC_CXX_RUNTIME:class-native = "llvm"
PREFERRED_PROVIDER_llvm:class-native = "clang"
PREFERRED_PROVIDER_llvm-native:class-native = "clang-native"
PREFERRED_PROVIDER_libgcc:class-native = "compiler-rt"
LIBCPLUSPLUS:class-native = "-stdlib=libc++"

TOOLCHAIN:class-target = "clang"
TC_CXX_RUNTIME:class-target = "llvm"
PREFERRED_PROVIDER_llvm:class-target = "clang"
PREFERRED_PROVIDER_llvm-native:class-target = "clang-native"
PREFERRED_PROVIDER_libgcc:class-target = "compiler-rt"
LIBCPLUSPLUS:class-target = "-stdlib=libc++"


SRCREV = "3e556588fc7b0e901c3a0af96f1bd279891883cf"

SRC_URI = "\
    git://github.com/google/filament.git;protocol=https;branch=release \
    file://0001-error-ignoring-return-value-of-function-declared-wit.patch \
    file://0002-disable-backend-tests.patch \
    file://0003-install-required-files.patch \
    file://0004-move-include-contents-to-include-filament.patch \
    file://0005-move-libraries-so-they-install.patch \
    file://0006-return-shader-type-mobile-for-linux-vulkan.patch \
    file://ImportExecutables-Release.cmake \
"

PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11 vulkan', d)}"

PACKAGECONFIG[opengl] = "-DFILAMENT_SUPPORTS_OPENGL=ON -DFILAMENT_SUPPORTS_EGL_ON_LINUX=ON,-DFILAMENT_SUPPORTS_OPENGL=OFF -DFILAMENT_SUPPORTS_EGL_ON_LINUX=OFF,virtual/egl virtual/libgles2"
PACKAGECONFIG[vulkan] = "-DFILAMENT_SUPPORTS_VULKAN=ON,-DFILAMENT_SUPPORTS_VULKAN=OFF,vulkan-loader"
PACKAGECONFIG[wayland] = "-DFILAMENT_SUPPORTS_WAYLAND=ON,-DFILAMENT_SUPPORTS_WAYLAND=OFF,wayland"
PACKAGECONFIG[x11] = "-DFILAMENT_SUPPORTS_X11=ON -DFILAMENT_SUPPORTS_XCB=ON,-DFILAMENT_SUPPORTS_X11=OFF -DFILAMENT_SUPPORTS_XCB=OFF,libxcb libx11 libxrandr"

inherit cmake pkgconfig features_check

EXTRA_OECMAKE:class-native += " \
    -D CMAKE_BUILD_TYPE=Release \
    -D FILAMENT_BUILD_FILAMAT=ON \
    -D FILAMENT_SKIP_SAMPLES=ON \
    -D FILAMENT_SKIP_SDL2=ON \
    "

EXTRA_OECMAKE:class-target += " \
    -D BUILD_SHARED_LIBS=OFF \
    -D CMAKE_BUILD_TYPE=Release \
    -D FILAMENT_LINUX_IS_MOBILE=ON \
    -D FILAMENT_BUILD_FILAMAT=ON \
    -D FILAMENT_SKIP_SAMPLES=ON \
    -D FILAMENT_SKIP_SDL2=ON \
    -D FILAMENT_ENABLE_LTO=OFF \
    -D DIST_ARCH=${BUILD_ARCH} \
    -D IMPORT_EXECUTABLES_DIR=. \
    -D FILAMENT_HOST_TOOLS_ROOT=${UNPACKDIR}/host_tools/bin \
    "

do_configure:prepend:class-target () {
    # extract host_tools.zip
    rm -rf ${UNPACKDIR}/host_tools | true
    unzip ${STAGING_DATADIR_NATIVE}/filament/host_tools.zip -d ${UNPACKDIR}

    # overwrite auto generated version
    cp ${UNPACKDIR}/ImportExecutables-Release.cmake ${S}/ImportExecutables-Release.cmake
}

do_install:append:class-native () {
    rm -rf ${D}${includedir}
    rm -rf ${D}${libdir}

    #
    # Create host_tools.zip
    #

    install -d ${B}/host_tools
    mv ${D}${STAGING_DIR_NATIVE}/usr/LICENSE ${B}/host_tools/
    mv ${D}${STAGING_DIR_NATIVE}/usr/README.md ${B}/host_tools/

    install -d ${B}/host_tools/bin
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/basisu ${B}/host_tools/bin/
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/cmgen ${B}/host_tools/bin/
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/filamesh ${B}/host_tools/bin/
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/glslminifier ${B}/host_tools/bin/
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/matc ${B}/host_tools/bin/
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/matinfo ${B}/host_tools/bin/
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/mipgen ${B}/host_tools/bin/
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/normal-blending ${B}/host_tools/bin/
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/resgen ${B}/host_tools/bin/
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/roughness-prefilter ${B}/host_tools/bin/
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/specular-color ${B}/host_tools/bin/
    mv ${D}${STAGING_DIR_NATIVE}/usr/bin/uberz ${B}/host_tools/bin/

    install -d ${B}/host_tools/docs
    mv ${D}${STAGING_DIR_NATIVE}/usr/docs/filamesh.md ${B}/host_tools/docs/
    mv ${D}${STAGING_DIR_NATIVE}/usr/docs/matinfo.md ${B}/host_tools/docs/
    mv ${D}${STAGING_DIR_NATIVE}/usr/docs/mipgen.md ${B}/host_tools/docs/
    mv ${D}${STAGING_DIR_NATIVE}/usr/docs/normal-blending.md ${B}/host_tools/docs/
    mv ${D}${STAGING_DIR_NATIVE}/usr/docs/roughness-prefilter.md ${B}/host_tools/docs/
    mv ${D}${STAGING_DIR_NATIVE}/usr/docs/specular-color.md ${B}/host_tools/docs/

    rm -rf ${D}${STAGING_DIR_NATIVE}

    cd ${B}
    zip -r host_tools.zip host_tools
    install -D host_tools.zip ${D}${datadir}/filament/host_tools.zip
    rm -rf host_tools
}

do_install:append:class-target () {
    install -D ${STAGING_DATADIR_NATIVE}/filament/host_tools.zip ${D}${datadir}/filament/host_tools.zip

    rm ${D}/usr/LICENSE
    rm ${D}/usr/README.md

    # dependent recipe sets FILAMENT_HOST_TOOLS_ROOT to use
    install -Dm 644 ${UNPACKDIR}/ImportExecutables-Release.cmake \
        ${D}${includedir}/cmake/filament/ImportExecutables-Release.cmake

    install -d ${D}${libdir}/filament
    mv ${D}${libdir}/*/*.a ${D}${libdir}/filament
    rm -rf ${D}${libdir}/${BUILD_ARCH}
}

PACKAGES =+ "${PN}-host-tools"


INHIBIT_PACKAGE_DEBUG_SPLIT:class-target = "1"

FILES:${PN}-staticdev += "${libdir}"
INSANE_SKIP:${PN}-staticdev = "buildpaths"

FILES:${PN}-dev += "${includedir}"

FILES:${PN}-host-tools = "${datadir}"

BBCLASSEXTEND += "native nativesdk"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions