Troubleshooting DSPLink build issues
- 1 Overview
- 2 Trouble-shooting guide
- 2.1 Problem: I see two tar balls. Which tar ball should I pick up for my use case?
- 2.2 Problem: Build error "No rule to make target"
- 2.3 Problem: Build error "The system cannot find the path specified."
- 2.4 Problem: Build error "Path not found"
- 2.5 Problem: Build error "The syntax of the command is incorrect."
- 2.6 Problem: GPP-side build error in dpc.c
- 2.7 Problem: GPP-side build error showing Linux header files
- 2.8 Problem: DSP-side build error in std.h
- 2.9 Problem: DSP-side sample build error in ti.bios.tconf
- 2.10 Problem: DSP-side sample build error in "Cannot set property "TIMER5BASE" of undefined to 1224966144"
- 2.11 Problem: Build fails. Paths are set correctly
- 2.12 Problem: Build fails on Windows and paths look like c:perl etc.
- 2.13 Problem: Build fails on Windows with error that file *.o does not exist in DEPEND build folder
- 2.14 Problem: DSPLink builds fine, but linking executable fails to find _DSPLINKDATA_init symbol.
- 2.15 DSPLink DSP-side builds fine, but linking executable fails to find _DDR2 symbol.
DSPLink is provided with full source code and an associated build system. This page gives a trouble-shooting guide for resolving common build issues seen with DSPLink, by identifying the causes for various common failure scenarios, and providing possible solutions.
Problem: I see two tar balls. Which tar ball should I pick up for my use case?
Symptom: I have installed the DSPLINK release. I see two tar balls. Which tar ball should I pick up for my use case?
Possible cause: DSPLink ships two tar balls with different naming conventions for different use case.
- BSD licensed package dsplink_1_xx.tar.gz, suitable for usage with non-Linux OSes, and for porting to a different OS. Pick up this tar ball if you are a WinCE, PrOS customer or trying to port to a different OS/platform.
- Linux package dsplink_linux_1_xx.tar.gz with GPL v2 licensed GPP kernel-side, with other code BSD licensed, for usage with Linux on GPP. This is the package to be picked up for a Linux build. Please note the embedded _linux in the package name.
Problem: Build error "No rule to make target"
Symptom: I have installed the DSPLINK release. My build is failing with the following error.
Makefile:44: /make/start.mk: No such file or directory gmake: *** No rule to make target `/make/start.mk'. Stop.
Possible cause: Ensure that you have set the
DSPLINK environment variable. If you have set it, ensure that it points to the correct folder: Path of the dsplink base folder, in which the other directories such as gpp, dsp, make etc. are present.
Problem: Build error "The system cannot find the path specified."
Symptom: My build is failing with an error like:
Compiling failure.c... The system cannot find the path specified. gmake: *** [failure.c.deb] Error 1
Possible cause: After running the configuration script, you must edit both GPP and DSP distribution makefiles (description in build sequence) to ensure that these files point to the correct path for OS, compiler tools and other dependencies.
Problem: Build error "Path not found"
Symptom: My build is failing with the following error:
process_begin: CreateProcess((null), D:\perl\bin\perl L:\dsplink\make\bin\banner.pl 1 SRC DIRS INCLUDE, ...) failed. make (e=3): The system cannot find the path specified. gmake: *** [b_dirinc] Error 3
Possible cause: After running the configuration, you must edit
$(DSPLINK)/make/[OS]/systools.mk to give the correct perl installation path.
For example, for DSP-side build, look at
$(DSPLINK)/make/DspBios/systools.mk and for Linux-side build, look at
Problem: Build error "The syntax of the command is incorrect."
Symptom: My build is failing with the following error:
The syntax of the command is incorrect. gmake: *** [/home/user/dsplink/dsp\\export\\INCLUDE] Error 256
Possible cause: An incorrect configuration option was selected when running the
dsplinkcfg.pl configuration script.
For example, the above error will occur if, for DSP-side build, Linux-based option was chosen:
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: DSP/BIOS(TM) LINK Configuration Tool :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Choose the DSP/BIOS distribution for the DSP 1. Version 5.xx [C64XXP] [OS: LINUX ] 2. Version 5.xx [C64XXP] [OS: WINDOWS] :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: YOUR CHOICE : 1
But the actual build is being done on Windows-based machine, and choice 2 should have been selected.
Problem: GPP-side build error in dpc.c
Symptom: While building GPP side, build failed in file dpc.c
Possible cause: Compiling
dpc.c is the first in the dsplink build that references the kernel headers. Ensure that the correct Linux paths have been given in the distribution makefile.
Problem: GPP-side build error showing Linux header files
Symptom: While building GPP side, build failed with errors showing Linux headers. For example:
/opt/montavista/pro/devkit/arm/v5t_le/bin/../target/usr/include/asm/timex.h:15:28: error: asm/arch/timex.h: No such file or directory In file included from /root/workdir/LSP/montavista/pro/devkit/lsp/ti-davinci/linux-2.6.18_pro500/include/linux/sched.h:49, from /root/workdir/LSP/montavista/pro/devkit/lsp/ti-davinci/linux-2.6.18_pro500/include/linux/module.h:9, from DA8XXGEM/shmem/Linux/da8xxgem_phy_shmem.c:34: /root/workdir/LSP/montavista/pro/devkit/lsp/ti-davinci/linux-2.6.18_pro500/include/linux/jiffies.h:33:3: error: #error You lose.
Possible cause: The LSP for the specific device may not have been built before building DSPLink. Since DSPLink is a kernel module, it needs some kernel headers for its build, many of which are device specific.
Unless an LSP build is done prior to building DSPLink, some of the required symbolic links for the device-specific header files and folders will not exist. This will cause problems in DSPLink build.
Problem: DSP-side build error in std.h
Symptom: While building DSP side, build failed. Says cannot find file
std.h is a DSP/BIOS header file. Ensure that the correct DSP/BIOS path has been given in the distribution makefile.
Problem: DSP-side sample build error in ti.bios.tconf
Symptom: While building DSP side samples, build failed. Says cannot find file
js: line 62: xdc.services.global.XDCException: xdc.PACKAGE_NOT_FOUND: can't locate the package 'ti.bios.tconf' along the path: '/toolchains/xdc/xdctools_3_15_00_50/packages;..;'. Ensure that the package path is set correctly.
XDCPATH environment variable must be set.
Problem: DSP-side sample build error in "Cannot set property "TIMER5BASE" of undefined to 1224966144"
Symptom: While building the DSP side sample I see
Environment variable 'config.programName'="<...>" contains the character '.', which is not allowed in a program name. Please, select a program name without '.' in its path. See SDOCM00050016 for more information.
Possible cause: DSPLink has been installed in a path which has a '.' in it. Re-install the DSPLink code base in a path without a '.' in it. For e.g. Change the installation from /users/home/my.dsplink to /users/home/my_dsplink
Problem: Build fails. Paths are set correctly
Symptom: I am still facing a build error, but I have checked and my paths are correct in the distribution files. What could be wrong?
Advice: Try building with VERBOSE=1. This gives all prints in the build sequence, making it easier to see exactly which command failed, and most often, will point you straight to where the issue lies.
$ make debug VERBOSE=1
Possible cause: Is there a spurious space at the end of the paths? If a spurious space is present at the end of the path specified in the disribution file, the path concatenation within DSPLink make system will fail and cause issues.
Possible cause: The build machine could have a different configuration than the the one expected. For example, trying to compile a release configured for Linux 2.6 on Linux 2.4 build machine.
Possible cause: Is there a version mismatch in the build tools specified in the Release Notes and your development version? Ensure that you refer to the DSPLink Release Notes to get the exact dependencies required by a specific release of DSPLink.
Possible cause: Are there any permissions set for the files? For example, installing as root but building as user. If the directories are read-only, DSPLink make system will not be able to copy the generated files, and will result in failures.
Possible cause: The installation of the dependent utilities like DSP/Bios, code generation tools etc could have a space in the path. This is a common problem if the utilities installed as part of a CCS installation are used for build. DSPLink build system cannot handle a build path with a space in them as the underlying code generation tools do not support it. For e.g. A DSP/Bios installed in c:\Program Files\CCSv4\bios will cause a build failure.
Problem: Build fails on Windows and paths look like c:perl etc.
Symptom: I am building DSP side on Windows. The build fails. I have updated all paths are correct. I see strange paths in the log such as
c:perl instead of
c:\perl. What could be the problem?
Possible cause: Have you installed the any UNIX utility like
ls etc. on Windows or
CygWIN or QNX operation system utilities? Is it in your path? This messes up the directory separator variable in the paths used within the DSPLink make system. The solution is to remove the UNIX utilities from the path on MSDOS shell before using the DSPLink build system.
Problem: Build fails on Windows with error that file *.o does not exist in DEPEND build folder
Symptom: I am building GPP side on Windows PC. The build fails with log as shown below (note that some intermediate log prints have been stripped to show shorter log)
P:\software\packages\ti\dsplink_1_51\dsplink\gpp\src>C:\CCStudio_v3.3\bios_5_32_03\xdctools\gmake -s debug [SRC ] ======= DIRS ================== INCLUDE ============ [GEN ] ------- DIRS ------------------ INCLUDE ------------ <-------Stripped log prints---------> Compiling gen_utils.c... <-------Stripped log prints---------> Compiling drv_api.c... Compiling _sync_usr.c... Compiling _mem_usr.c... Compiling _mpcs_os.c... Compiling notify.c... Compiling _notify.c... [SRC ] ======= TARGETS =============== DEBUG ============== [GEN ] ------- TARGET ---------------- DEBUG -------------- Generating GEN.LIB... ARGS_ARCH_DEB L:\dsplink_1_51\dsplink\gpp\\BUILD\\GEN\\OBJ\\DEBUG... 1 file(s) copied. [OSAL ] ------- TARGET ---------------- DEBUG -------------- Generating OSAL.LIB... ARGS_ARCH_DEB L:\dsplink_1_51\dsplink\gpp\\BUILD\\OSAL\\OBJ\\DEBUG... 1 file(s) copied. [LDRV ] ------- TARGET ---------------- DEBUG -------------- Generating LDRV.LIB... ARGS_ARCH_DEB L:\dsplink_1_51\dsplink\gpp\\BUILD\\LDRV\\OBJ\\DEBUG... 1 file(s) copied. [PMGR ] ------- TARGET ---------------- DEBUG -------------- Generating PMGR.LIB... ARGS_ARCH_DEB L:\dsplink_1_51\dsplink\gpp\\BUILD\\PMGR\\OBJ\\DEBUG... 1 file(s) copied. [API ] ------- TARGET ---------------- DEBUG -------------- Exploding L:\dsplink_1_51\dsplink\gpp\\BUILD\\EXPORT\\DEBUG\\PMGR.LIB... Exploding L:\dsplink_1_51\dsplink\gpp\\BUILD\\EXPORT\\DEBUG\\LDRV.LIB... Exploding L:\dsplink_1_51\dsplink\gpp\\BUILD\\EXPORT\\DEBUG\\OSAL.LIB... Exploding L:\dsplink_1_51\dsplink\gpp\\BUILD\\EXPORT\\DEBUG\\GEN.LIB... Generating DSPLINK.LIB... ARGS_ARCH_DEB L:\dsplink_1_51\dsplink\gpp\\BUILD\\API\\OBJ\\DEBUG L:\dsplink_1_51\dsplink\gpp\\BUILD\\API\\OBJ\\DEBUG\\DEPEND... Error: L6833E: File 'L:\dsplink_1_51\dsplink\gpp\BUILD\API\OBJ\DEBUG\DEPEND\*.o' does not exist gmake: *** [DSPLINK.LIB.deb] Error 1 gmake: *** [trgdeb] Error 2 C:\CCStudio_v3.3\bios_5_32_03\xdctools\gmake: *** [api.trgdeb] Error 2
Possible cause: This problem is seen if the DSPLINK environment variable points to a different location and the build is being done from different location. For example, in this case, the DSPLINK code is at:
P:\software\packages\ti\dsplink_1_51 is subst'ed to L:
The DSPLINK env variable points to
But build is done from
To solve the problem, change your shell directory to be in
L:\dsplink and do the build from there.
This is because CHNL is enabled in your perl config script, but the CHNL library isn't being linked in. If you're using an XDC-based configuration, the necessary CHNL libraries may not have been added to the link line if you forgot to prepare the DSPLink packages.
Symptom: While building DSP side samples, build failed. Says
undefined symbol _DDR2 first referenced in file $home/dsplink/dsp/export/BIN/DspBios/DAVINCI/DM6446GEM_0/RELEASE/dsplink.lib
error: symbol referencing errors - 'sample.x64P' not build
DDR2 symbol is hard coded in DSPLink code and must be defined by the application's linker command file.
Advice: Update application linker command file to add:
_DDR2 = DDR; Under the OBJECT ALIASES section. This assumes DDR is defined.