Other Parts Discussed in Thread: SYSBIOS
Tool/software: TI C/C++ Compiler
Project uses Cmake build system and needs assembly implementation of memcpy for cortex-a15 to improve performance.
I'm using ARM toolchain that comes with CCS [gcc-arm-none-eabi-4.7].I'm getting a strange build issue when including the assembly function in the project.
Build is failing when give a "clean build" with errors
c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib\libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text.exit+0x2c): undefined reference to `_exit'
c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/crt0.o: In function `start':
(.text+0xec): undefined reference to `main'
collect2.exe: error: ld returned 1 exit status
jom: C:\mFAS_Code\dev_branch\development_branch\scratch\del\1_build\application_lvds_tda2xx_ti_a15_r\a15\CMakeFiles\a15_tda2xx_ti_a15_r.dir\build.make [a15\CMakeFiles\a15_tda2xx_ti_a15_r.dir\source\arch\tda2xx_ti_a15\memcpy_nw.s.obj] Error 1
jom: C:\mFAS_Code\dev_branch\development_branch\scratch\del\1_build\application_lvds_tda2xx_ti_a15_r\CMakeFiles\Makefile2 [a15\CMakeFiles\a15_tda2xx_ti_a15_r.dir\all] Error 2
jom: C:\mFAS_Code\dev_branch\development_branch\scratch\del\1_build\application_lvds_tda2xx_ti_a15_r\Makefile [all] Error 2
Second build on the same directory is success. I've already checked the "--specs" option in my linker flags,set to "rdimon.specs"
Below are the linker & cflags used,
C_FLAGS = "-c -Wall -mcpu=cortex-a15 -mfpu=neon-vfpv4 -mtune=cortex-a15 -marm -mfloat-abi=hard -fno-exceptions -specs=rdimon.specs"
LINKER_FLAGS = "-mfloat-abi=hard -fno-exceptions -g -Wall -v -nostartfiles -Wl,--gc-sections -lgcc -lc -lm -lrdimon"
ASM_FLAGS = "-c -x assembler-with-cpp -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -mfpu=neon -fno-exceptions "
and also tried with start_group and end_group options as below.
LINKER_FLAGS = "-mfloat-abi=hard -fno-exceptions -g -Wall -v -nostartfiles -Wl,--gc-sections -Wl,--start-group -lgcc -lc -lm -lrdimon -Wl,--end-group"
but same error is observed on "clean build" only.
Attached the ARM assembly code used and compiler error log.
Let me know any other Linker/ASM flags required.
=============================================================================== CMake toolchain from source: C:\mFAS_Code\dev_branch\development_branch\scratch\del\application_lvds At: C:\mFAS_Code\dev_branch\development_branch\scratch\del\1_build\application_lvds_tda2xx_ti_a15_r =============================================================================== Folder: application_lvds Folder: common_packages Module: astl Module: camera Module: camera_types Folder: common Module: cpu Module: dbg Module: dlog Module: dma Module: fnt Module: hwtmr Module: img Module: mem Module: memmgr Module: mon Module: mtd Module: osw Module: sys Module: typs Module: utf Module: vtg Module: icamera_dal Module: lalgebra Module: mathlib_wrapper Module: nanopb_valeo Folder: fw_lvds Folder: video_lvds Module: lbr Folder: satcam_lvds Module: camm Folder: fw_common Folder: algorithm Module: algc Folder: basic Module: cmd Module: dbm Module: dsi Module: ipg Module: lpc Module: lwt Module: pin Module: stat Module: utl Folder: video Module: bmp Module: camera_dal Module: lut Module: p2_ovl Module: vip Module: vop Module: vpm Module: vfs Module: iwdgt Module: vsrv Module: ivsrv Module: ivclnt Module: rtp Folder: fw_application Folder: algorithm_p1 Folder: algorithm_app Module: algcfglistener Module: algfactory Module: demoalg Folder: basic_p1 Module: app_params Module: conr Module: dlogmon Module: p1cmd Folder: video_p1 Module: p1_ovl Module: wdgt Folder: nvm_p1 Module: nfsh Module: Eep_38_24LC64 Module: Ea Module: fshm Module: fshmw Module: nvm Module: nvm_dal Folder: hostcom_p1 Module: hgw Module: ipcmfas Module: app_vspimfas Folder: wdg_p1 Module: iwdg Module: wdgclient Module: wdgmonitor Module: wdgserver Module: wdgrptr Folder: errrptr_p1 Module: ierrrptr Module: errrptr Module: a15 -- Configuring done -- Generating done -- Build files have been written to: C:/mFAS_Code/dev_branch/development_branch/scratch/del/1_build/application_lvds_tda2xx_ti_a15_r =============================================================================== Building: C:\mFAS_Code\dev_branch\development_branch\scratch\del\1_build\application_lvds_tda2xx_ti_a15_r =============================================================================== jom 1.0.14 - empower your cores [ 2%] Built target astl_tda2xx_ti_a15_r [ 3%] Built target camera_tda2xx_ti_a15_r [ 3%] Built target camera_types_extrinsics [ 4%] Built target camera_types_intrinsics [ 5%] Built target cpu_tda2xx_ti_a15_r [ 5%] Built target dbg_tda2xx_ti_a15_r [ 5%] Built target dlog_tda2xx_ti_a15_r [ 7%] Built target dma_tda2xx_ti_a15_r [ 7%] Built target fnt_tda2xx_ti_a15_r [ 8%] Built target hwtmr_tda2xx_ti_a15_r [ 10%] Built target img_tda2xx_ti_a15_r [ 11%] Built target mem_tda2xx_ti_a15_r [ 12%] Built target memmgr_tda2xx_ti_a15_r [ 14%] Built target mon_tda2xx_ti_a15_r [ 16%] Built target mtd_tda2xx_ti_a15_r [ 27%] Built target osw_tda2xx_ti_a15_r [ 28%] Built target sys_tda2xx_ti_a15_r [ 28%] Built target typs_tda2xx_ti_a15_r [ 28%] Built target utf_tda2xx_ti_a15_r [ 34%] Built target vtg_tda2xx_ti_a15_r [ 34%] Built target icamera_dal_tda2xx_ti_a15_r [ 35%] Built target lalgebra_tda2xx_ti_a15_r [ 35%] Built target mathlib_wrapper_tda2xx_ti_a15_r [ 36%] Built target nanopb_valeo_tda2xx_ti_a15_r [ 38%] Built target lbr_tda2xx_ti_a15_r [ 38%] Built target camm_tda2xx_ti_a15_r [ 39%] Built target algc_tda2xx_ti_a15_r [ 40%] Built target cmd_tda2xx_ti_a15_r [ 41%] Built target dbm_tda2xx_ti_a15_r [ 41%] Built target dsi_tda2xx_ti_a15_r [ 41%] Built target ipg_tda2xx_ti_a15_r [ 44%] Built target lpc_tda2xx_ti_a15_r [ 46%] Built target lwt_tda2xx_ti_a15_r [ 46%] Built target pin_tda2xx_ti_a15_r [ 47%] Built target stat_tda2xx_ti_a15_r [ 49%] Built target utl_tda2xx_ti_a15_r [ 49%] Built target bmp_tda2xx_ti_a15_r [ 50%] Built target camera_dal_tda2xx_ti_a15_r [ 51%] Built target lut_tda2xx_ti_a15_r [ 52%] Built target p2_ovl_tda2xx_ti_a15_r [ 52%] Built target vip_tda2xx_ti_a15_r [ 53%] Built target vop_tda2xx_ti_a15_r [ 53%] Built target vpm_tda2xx_ti_a15_r [ 54%] Built target vfs_tda2xx_ti_a15_r Scanning dependencies of target iwdgt_tda2xx_ti_a15_r [ 54%] Building CXX object fw_common/video/iwdgt/CMakeFiles/iwdgt_tda2xx_ti_a15_r.dir/CMakeFiles/CMakeTmp/iwdgt_temp.obj [ 54%] Built target iwdgt_tda2xx_ti_a15_r [ 54%] Built target vsrv_tda2xx_ti_a15_r Scanning dependencies of target ivsrv_tda2xx_ti_a15_r [ 54%] Building CXX object fw_common/video/ivsrv/CMakeFiles/ivsrv_tda2xx_ti_a15_r.dir/CMakeFiles/CMakeTmp/ivsrv_temp.obj [ 54%] Built target ivsrv_tda2xx_ti_a15_r Scanning dependencies of target ivclnt_tda2xx_ti_a15_r [ 55%] Building CXX object fw_common/video/ivclnt/CMakeFiles/ivclnt_tda2xx_ti_a15_r.dir/CMakeFiles/CMakeTmp/ivclnt_temp.obj [ 55%] Built target ivclnt_tda2xx_ti_a15_r [ 56%] Built target rtp_tda2xx_ti_a15_r [ 57%] Built target algcfglistener_tda2xx_ti_a15_r [ 57%] Built target algfactory_tda2xx_ti_a15_r [ 58%] Built target demoalg_tda2xx_ti_a15_r [ 60%] Built target app_params_tda2xx_ti_a15_r [ 60%] Built target conr_tda2xx_ti_a15_r [ 60%] Built target dlogmon_tda2xx_ti_a15_r [ 60%] Built target p1cmd_tda2xx_ti_a15_r [ 66%] Built target p1_ovl_tda2xx_ti_a15_r [ 67%] Built target wdgt_tda2xx_ti_a15_r [ 71%] Built target nfsh_tda2xx_ti_a15_r [ 72%] Built target Eep_38_24LC64_tda2xx_ti_a15_r [ 72%] Built target Ea_tda2xx_ti_a15_r [ 75%] Built target fshm_tda2xx_ti_a15_r [ 75%] Built target fshmw_tda2xx_ti_a15_r [ 76%] Built target nvm_tda2xx_ti_a15_r [ 78%] Built target nvm_dal_tda2xx_ti_a15_r [ 78%] Built target hgw_tda2xx_ti_a15_r [ 90%] Built target ipcmfas_tda2xx_ti_a15_r [ 90%] Built target app_vspimfas_tda2xx_ti_a15_r [ 91%] Built target iwdg_tda2xx_ti_a15_r [ 92%] Built target wdgclient_tda2xx_ti_a15_r [ 92%] Built target wdgmonitor_tda2xx_ti_a15_r [ 92%] Built target wdgserver_tda2xx_ti_a15_r [ 93%] Built target wdgrptr_tda2xx_ti_a15_r [ 93%] Built target ierrrptr_tda2xx_ti_a15_r [ 94%] Built target errrptr_tda2xx_ti_a15_r [ 94%] Built target a15_rtsc_platform_copy [ 94%] Built target camera_types_tda2xx_ti_a15_r [ 94%] Built target a15_rtsc_memorymap [ 95%] Built target a15_rtsc_platform [ 96%] Built target a15_xdc_config [ 96%] Linking CXX executable C:\mFAS_Code\dev_branch\development_branch\scratch\del\2_install\images\a15_tda2xx_ti_a15_r.out Using built-in specs. COLLECT_GCC=C:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/arm-none-eabi-gcc.exe COLLECT_LTO_WRAPPER=c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/lto-wrapper.exe Target: arm-none-eabi Configured with: /home/build/work/GCC-4-7-build/src/gcc/configure --build=i686-linux-gnu --host=i586-mingw32 --target=arm-none-eabi --prefix=/home/build/work/GCC-4-7-build/install-mingw --libexecdir=/home/build/work/GCC-4-7-build/install-mingw/lib --infodir=/home/build/work/GCC-4-7-build/install-mingw/share/doc/gcc-arm-none-eabi/info --mandir=/home/build/work/GCC-4-7-build/install-mingw/share/doc/gcc-arm-none-eabi/man --htmldir=/home/build/work/GCC-4-7-build/install-mingw/share/doc/gcc-arm-none-eabi/html --pdfdir=/home/build/work/GCC-4-7-build/install-mingw/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-headers=yes --with-newlib --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/home/build/work/GCC-4-7-build/install-mingw/arm-none-eabi --with-libiconv-prefix=/home/build/work/GCC-4-7-build/build-mingw/host-libs/usr --with-gmp=/home/build/work/GCC-4-7-build/build-mingw/host-libs/usr --with-mpfr=/home/build/work/GCC-4-7-build/build-mingw/host-libs/usr --with-mpc=/home/build/work/GCC-4-7-build/build-mingw/host-libs/usr --with-ppl=/home/build/work/GCC-4-7-build/build-mingw/host-libs/usr --with-cloog=/home/build/work/GCC-4-7-build/build-mingw/host-libs/usr --with-libelf=/home/build/work/GCC-4-7-build/build-mingw/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for ARM Embedded Processors' --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r Thread model: single gcc version 4.7.4 20130913 (release) [ARM/embedded-4_7-branch revision 202601] (GNU Tools for ARM Embedded Processors) COMPILER_PATH=c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/;c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/;c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/bin/ LIBRARY_PATH=c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/fpu/;c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/fpu/;c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../arm-none-eabi/lib/fpu/;c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/;c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/;c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/;c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../arm-none-eabi/lib/ COLLECT_GCC_OPTIONS='-mfloat-abi=hard' '-fno-exceptions' '-g' '-Wall' '-v' '-nostartfiles' '-LC:\ti\xdctools_3_30_06_67_core\packages\gnu\targets\arm\libs\install-native\arm-none-eabi\lib\fpu' '-o' 'C:\mFAS_Code\dev_branch\development_branch\scratch\del\2_install\images\a15_tda2xx_ti_a15_r.out' c:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/collect2.exe --sysroot=c:\ti\ccsv5\tools\compiler\gcc-arm-none-eabi-4_7-2013q3\bin\../arm-none-eabi -X -o C:\mFAS_Code\dev_branch\development_branch\scratch\del\2_install\images\a15_tda2xx_ti_a15_r.out -LC:\ti\xdctools_3_30_06_67_core\packages\gnu\targets\arm\libs\install-native\arm-none-eabi\lib\fpu -Lc:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/fpu -Lc:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib/fpu -Lc:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../arm-none-eabi/lib/fpu -Lc:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4 -Lc:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc -Lc:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/lib -Lc:/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/../arm-none-eabi/lib @C:\Users\spichuma\AppData\Local\Temp\cc7nGEdX --start-group -lgcc -lg -lc --end-group =============================================================================== = = Generating binary for a15_tda2xx_ti_a15_r = =============================================================================== Parsing the input object file, C:\mFAS_Code\dev_branch\development_branch\scratch\del\2_install\application_lvds_tda2xx_ti_a15_r/../images/a15_tda2xx_ti_a15_r.out. RPRC conversion complete! INI File Parsed Successfully compression complete! Conversion is successfull and bin file created [100%] Built target a15_tda2xx_ti_a15_r =============================================================================== Build OK: -s application_lvds -t a15 -r =============================================================================== =============================================================================== build.py report: Start time: 2017-02-27 19:51:41.250000 End time: 2017-02-27 19:52:02.444000 Total time: 0:00:21.194000 Build OK: -s application_lvds -t a15 -r Start time: 2017-02-27 19:51:41.276000 End time: 2017-02-27 19:52:02.444000 Total time: 0:00:21.168000 ===============================================================================