问题跟踪表-C-SKY.md 4.9 KB

问题一

1、问题描述

libffi_3.3.bb配置错误:

 configure: error: "libffi has not been ported to csky-oe-linux-gnu."
   WARNING: /home/lqg/al_yocto/temp/riscv_yocto/thead-build/ice-base/tmp-glibc/work/csky32-oe-linux/libffi/3.3-r0/temp/run.do_configure.25572:301 exit 1 from 'exit 1

2、解决方法

原因:libffi源码没有C-SKY平台处理代码

修改内容:

1)使用buildroot版本的libffi对应的代码

2)修改configure.host文件,添加C-SKY的架构

meta-csky/recipes-support/libffi/libffi_3.3.bbappend内容如下:

  FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
  
  SRC_URI_append_csky = "file://csky/ffi.c \
                         file://csky/ffitarget.h  \
                         file://csky/sysv.S \
                         file://configure.host \
                         "
  
  do_configure_prepend_csky() {
        echo "THISDIR= ${THISDIR}/${PN}"
        echo "PN=${PN}"
        echo "PV=${PV}"
        if [ -d "${WORKDIR}/csky" -a -d "${WORKDIR}/${PN}-${PV}/src" ]; then
            cp -rf ${WORKDIR}/csky ${WORKDIR}/${PN}-${PV}/src
        fi
        if [ -f "${WORKDIR}/configure.host" -a -d "${WORKDIR}/${PN}-${PV}" ]; then
            cp -rf ${WORKDIR}/configure.host ${WORKDIR}/${PN}-${PV}
        fi
 }

问题二

1、问题描述

libgcc-external.bb编译错误,信息如下:

ERROR: libgcc-external-6.3.0-r0 do_package: Error executing a python function in exec_python_func() autogenerated:
Exception: FileExistsError: [Errno 17] File exists: './../../lib/gcc/csky-linux-gnuabiv2/6.3.0/crtn.o' -> 
'/home/lqg/al_yocto/temp/riscv_yocto/thead-build/ice-base/tmp-glibc/work/csky32-oe-linux/libgcc-external/6.3.0-r0/packages-split/libgcc-external-dev/
./../../lib/gcc/csky-linux-gnuabiv2/6.3.0/crtn.o'

2、解决方法

修改代码仓:

openembedded-core

提交commit ID:

2ec67c069fe5f5b953456aa938bc5244d98ee0d6

问题三

1、问题描述 dpkg配置错误:

| checking dpkg architecture name... configure: error: cannot determine host dpkg architecture

2、解决方法

原因:dpkg_1.20.5针对C-SKY的架构没有对应。

解决方法:

修改git/data/cputable文件,追加C-SKY平台对应表,修改文件 meta-csky/recipes-devtools/dpkg/dpkg_1.20.5.bbappend

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_append_csky = "file://data/cputable \           "
S = "${WORKDIR}/git"
do_configure_prepend_csky() {
    if [ -d "${WORKDIR}/data" -a -d "${S}" ]; then
        cp -rf ${WORKDIR}/data ${S}/
    fi
}

问题四

1、问题描述

xorgproto编译错误,信息如下:

    ERROR: Unknown CPU family csky, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.
    | WARNING: /home/lqg/al_yocto/temp/riscv_yocto/thead-build/ice-base/tmp-glibc/work/csky32-oe-linux/xorgproto/2020.1-r0/temp/run.do_configure.19148:173 exit 1 from 'exit 1'

2、解决方法

原因: meson中缺少对C-SKY平台支持。 解决方法: 修改envconfig.py文件,适配C-SKY平台,修改文件meta-csky/recipes-devtools/meson/meson_0.55.1.bbappend:

HOMEPAGE = "http://mesonbuild.com"
SUMMARY = "A high performance build system"

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"

SRC_URI_append = "file://envconfig.py \
                 "
do_configure() {
    if [ -f "${WORKDIR}/envconfig.py" -a -d "${WORKDIR}/meson-${PV}/mesonbuild" ]; then
        cp -rf ${WORKDIR}/envconfig.py ${WORKDIR}/meson-${PV}/mesonbuild
    fi
}

问题五

1、问题描述

glibc-external.bb执行do_package_qa错误如下:

ERROR: glibc-external-2.28.9000-r0 do_package_qa: QA Issue: /usr/bin/ldd contained in package ldd requires /tools/csky/csky-test/systools/CentOS-4.9-x86_64/bin/sh, but no providers found in RDEPENDS_ldd? [file-rdeps]
ERROR: glibc-external-2.28.9000-r0 do_package_qa: QA Issue: /usr/bin/tzselect contained in package tzcode requires /tools/csky/csky-test/systools/CentOS-4.9-x86_64/bin/sh, but no providers found in RDEPENDS_tzcode? [file-rdeps]

2、解决方法

原因:工具链制作问题,/tools/csky/csky-test/systools/CentOS-4.9-x86_64/bin/sh解释器路径在工具链中固定配置,正确的是:/bin/sh 修改方法:批量修改工具链相关文件,修改如下:

grep -rni "systools" ~/.thead/csky-linux
sed -i "s|/tools/csky/csky-test/systools/CentOS-4.9-x86_64||g" `grep -rni "systools" ~/.thead/csky-linux | cut -d':' -f1` 

问题六

1、问题描述

openocd构建错误:COMPATIBLE_HOST不支持C-SKY平台。

2、解决方法

修改dynamic-layers/openembedded-layer/recipes-devtools/openocd/openocd_csky.bb如下:

COMPATIBLE_HOST = "(x86_64.*|i.86.*|csky).*-linux"