starfive-tech / VisionFive2

445 stars 79 forks source link

ispsdk build fails due to broken linker script #3

Closed kth5 closed 1 year ago

kth5 commented 1 year ago

I'm trying to build HEAD (at 532608cb8da347f60baf88830b702ddbefac1fee) and am failing in the ispsdk step.

make -C /home/kth5/code/riscv/VisionFive2/buildroot RISCV=/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/host O=/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs
make[1]: Entering directory '/home/kth5/code/riscv/VisionFive2/buildroot'
>>> ispsdk 2.0.0 Building
PATH="/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/host/bin:/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/host/sbin:/home/kth5/.bin:/home/kth5/code/archpower-tools/helpers:/home/kth5/.bin:/home/kth5/code/archpower-tools/helpers:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/lib/jvm/default/bin"  /usr/bin/make -j33  -C /home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0//buildroot-build
make[2]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[3]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
[  0%] Built target Mantis_RegistersDefinitions
make[4]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
[  9%] Built target SensorApi
make[4]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
[ 10%] Linking C executable stf_isp_ctrl
[ 12%] Linking C executable stf_isp_test
make[4]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
[ 13%] Linking C executable StarFiveServer
/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/host/lib/gcc/riscv64-buildroot-linux-gnu/10.3.0/../../../../riscv64-buildroot-linux-gnu/bin/ld:/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/libispsdk/libStfIncludes.a: file format not recognized; treating as linker script
/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/host/lib/gcc/riscv64-buildroot-linux-gnu/10.3.0/../../../../riscv64-buildroot-linux-gnu/bin/ld:/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/libispsdk/libStfIncludes.a:1: syntax error
collect2: error: ld returned 1 exit status
make[4]: *** [test_apps/stf_isp_ctrl/CMakeFiles/stf_isp_ctrl.dir/build.make:105: test_apps/stf_isp_ctrl/stf_isp_ctrl] Error 1
make[4]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[3]: *** [CMakeFiles/Makefile2:359: test_apps/stf_isp_ctrl/CMakeFiles/stf_isp_ctrl.dir/all] Error 2
make[3]: *** Waiting for unfinished jobs....
/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/host/lib/gcc/riscv64-buildroot-linux-gnu/10.3.0/../../../../riscv64-buildroot-linux-gnu/bin/ld:/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/libispsdk/libStfIncludes.a: file format not recognized; treating as linker script
/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/host/lib/gcc/riscv64-buildroot-linux-gnu/10.3.0/../../../../riscv64-buildroot-linux-gnu/bin/ld:/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/libispsdk/libStfIncludes.a:1: syntax error
collect2: error: ld returned 1 exit status
make[4]: *** [test_apps/stf_isp_test/CMakeFiles/stf_isp_test.dir/build.make:216: test_apps/stf_isp_test/stf_isp_test] Error 1
make[4]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[3]: *** [CMakeFiles/Makefile2:385: test_apps/stf_isp_test/CMakeFiles/stf_isp_test.dir/all] Error 2
/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/host/lib/gcc/riscv64-buildroot-linux-gnu/10.3.0/../../../../riscv64-buildroot-linux-gnu/bin/ld:/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/libispsdk/libStfIncludes.a: file format not recognized; treating as linker script
/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/host/lib/gcc/riscv64-buildroot-linux-gnu/10.3.0/../../../../riscv64-buildroot-linux-gnu/bin/ld:/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/libispsdk/libStfIncludes.a:1: syntax error
collect2: error: ld returned 1 exit status
make[4]: Entering directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[4]: *** [startfive_apps/StarFiveServer/CMakeFiles/StarFiveServer.dir/build.make:281: startfive_apps/StarFiveServer/StarFiveServer] Error 1
make[4]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[3]: *** [CMakeFiles/Makefile2:411: startfive_apps/StarFiveServer/CMakeFiles/StarFiveServer.dir/all] Error 2
[ 15%] Linking C executable ISP_test
/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/host/lib/gcc/riscv64-buildroot-linux-gnu/10.3.0/../../../../riscv64-buildroot-linux-gnu/bin/ld:/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/libispsdk/libStfIncludes.a: file format not recognized; treating as linker script
/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/host/lib/gcc/riscv64-buildroot-linux-gnu/10.3.0/../../../../riscv64-buildroot-linux-gnu/bin/ld:/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/libispsdk/libStfIncludes.a:1: syntax error
collect2: error: ld returned 1 exit status
make[4]: *** [test_apps/ISP_test/CMakeFiles/ISP_test.dir/build.make:649: test_apps/ISP_test/ISP_test] Error 1
make[4]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[3]: *** [CMakeFiles/Makefile2:333: test_apps/ISP_test/CMakeFiles/ISP_test.dir/all] Error 2
make[3]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[2]: *** [Makefile:146: all] Error 2
make[2]: Leaving directory '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/buildroot-build'
make[1]: *** [package/pkg-generic.mk:295: /home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/build/ispsdk-2.0.0/.stamp_built] Error 2
make[1]: Leaving directory '/home/kth5/code/riscv/VisionFive2/buildroot'
make: *** No rule to make target '/home/kth5/code/riscv/VisionFive2/work/buildroot_initramfs/images/rootfs.tar', needed by '/home/kth5/code/riscv/VisionFive2/work/.buildroot_initramfs_sysroot'.  Stop.

The contents of libStfIncludes.a are:

version https://git-lfs.github.com/spec/v1
oid sha256:52ea68d85a53c83430536a66b3d159f6610bd8cd44f26f4679519e29e576ca85
size 14854

This is building on Arch POWER on ppc64le btw.

andyhu-stf commented 1 year ago

hi kth5, these binary *.a files were uploaded through git lfs, so you must need to install git lfs first, you can find below in the README.md:

$ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash $ sudo apt-get install git-lfs

After install git-lfs, run it on your local repo:

git lfs fetch git lfs checkout or git lfs pull

If you newly git clone the whole repo, then not need to run the above, just use the common git clone command.

kth5 commented 1 year ago

Ok, this got me further. It was somewhat lacking in the docs other than mentioning to install it. Which btw I had to do on Arch using git lfs install first.

Thank you!