Standard S32DS C++ Linker

The Standard S32DS C++ Linker page allows you to configure C++ linker options for your project.

The following table describes the options available on the Standard S32DS C++ Linker page.
Table 1. Tool Settings - Standard S32DS C++ Linker
Option Description
Command

Command that will be used to run the linker.

Default: ${cross_prefix}${cross_cpp}${cross_suffix}
All options

Expanded command line options the linker will be called with.

Shows actual values of variables and options according to Command line pattern.

Default: -L"<VSDK_dir>/3rdparty/ocv/linux-arm64/lib"

-L"<VSDK_dir>/3rdparty/ffmpeg/linux-arm64/lib"

-L"<VSDK_dir>/libs/utils/common/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/io/frame_io/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/utils/oal/user/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/io/dcu/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/utils/umat/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/utils/sumat/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/utils/communications/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/"

-L"<VSDK_dir>/libs/utils/log/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/apex/drivers/user/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/apex/acf/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/apex/icp/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/io/sdi/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/io/gdi/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/isp/cam_generic/user/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/isp/csi/user/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/isp/fdma/user/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/isp/h264dec/user/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/isp/h264enc/user/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/isp/jpegdec/user/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/isp/sequencer/user/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/isp/viu/user/build-v234ce-gnu-linux-d"

-L"<VSDK_dir>/libs/io/semihost/build-v234ce-gnu-linux-d"

-Wl,--start-group -Wl,-Map,"<project_name>.map" -mcpu=cortex-a53

Command line patterns

Command line to call the linker.

Default: ${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}

General

The General page allows you to configure C++ general settings of the linker.

The following table describes the options available on the General page.

Table 2. Tool Settings - Standard S32DS C++ Linker - General
Option Description
Do not use standard start files

(-nostartfiles)

This option does not allow the use of the standard system startup files when linking. The standard system libraries are used normally, unless -nostdlib or -nodefaultlibs is used.

By default, this check box is not selected.

Do not use default libraries

(-nodefaultlibs)

This option does not allow the use of the default system libraries when linking. Only the libraries you specify are passed to the linker, and options specifying linkage of the system libraries, such as -static-libgcc or -shared-libgcc, are ignored.

By default, this check box is not selected.

No startup or default libs

(-nostdlib)

This option does not allow the use of startup system files or libraries when linking. No startup files and only the libraries you specify are passed to the linker, and options specifying linkage of the system libraries, such as -static-libgcc or -shared-libgcc, are ignored.

By default, this check box is not selected.

Omit all symbols information

(-s)

This option omits all symbol information and removes all symbol table and relocation information from the executable file.

By default, this check box is not selected.

Libraries

The Libraries page allows you to specify locations where the linker should look for custom libraries, or specify exact libraries to be used during compilation.

The following table describes the options available on the Libraries page.

Table 3. Tool Settings - Standard S32DS C++ Linker - Libraries
Option Description
Libraries (-l)

A list of libraries to be used during the linking process.

Use this option to specify the libraries and the order in which the linker processes them.

Default: c stdc++ gcc :libopencv_calib3d.so :libopencv_core.so

:libopencv_features2d.so :libopencv_flann.so

:libopencv_highgui.so :libopencv_imgcodecs.so

:libopencv_imgproc.so :libopencv_ml.so

:libopencv_objdetect.so :libopencv_photo.so

:libopencv_shape.so :libopencv_stitching.so

:libopencv_superres.so :libopencv_video.so

:libopencv_videoio.so :libopencv_videostab.so :libavcodec.so

:libavdevice.so :libavfilter.so :libavformat.so :libavutil.so

:libswresample.so :libswscale.so :libcommon.a :libframe_io.a

:liboal.a :libdcu.a :libumat.a :libsumat.a

:lib_communications.a :libpthread.so :libm.a :liblog.a

:libapexdrv.a :libacf.a :libicp.a :libsdi.a :libgdi.a

:libcamdrv.a :libcsidrv.a :libfdmadrv.a :libh264decdrv.a

:libh264encdrv.a :libjpegdecdrv.a :libseqdrv.a :libviudrv.a

:libSemihost.a

Library search path

(-L)

A list of locations where to look for the libraries.

Use this option to specify paths to locations where the linker should search for libraries and the order in which the linker processes the locations.

Default: "${OPENCV_A53_LINUX_1.3.0_PATH}/ocv/linux-arm64/lib"

"${OPENCV_A53_LINUX_1.3.0_PATH}/ffmpeg/linux-arm64/lib"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/utils/common/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/io/frame_io/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/utils/oal/user/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/io/dcu/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/utils/umat/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/utils/sumat/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/utils/communications/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/utils/log/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/apex/drivers/user/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/apex/acf/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/apex/icp/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/io/sdi/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/io/gdi/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/isp/cam_generic/user/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/isp/csi/user/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/isp/fdma/user/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/isp/h264dec/user/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/isp/h264enc/user/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/isp/jpegdec/user/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/isp/sequencer/user/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/isp/viu/user/build-v234ce-gnu-linux-d"

"${VSDK_A53_LINUX_1.3.0_PATH}/libs/io/semihost/build-v234ce-gnu-linux-d"

Miscellaneous

The Miscellaneous page allows you to specify various linker configuration options.

The following table describes the options available on the Miscellaneous page.

Table 4. Tool Settings - Standard S32DS C++ Linker - Miscellaneous
Option Description
Linker flags

Specify additional command line options for the linker.

Default: -Wl,--start-group

Other options

(-Xlinker [option])

Specify additional command line options that will be passed to the linker. You can use this to supply system-specific linker options that GCC does not recognize.

By default, this list is empty.

Other objects

Use this list to specify object files that you want to use during the linking process. This option lists paths that the linker searches for objects. The linker searches the paths in the order shown in this list.

By default, this list is empty.

Generate map

Define the name to be given to the linker MAP file. By default, the map file name matches the project name.

Leave this field blank, if you do not want the MAP file to be generated. Resource information will be sent to the console.

Default: "${BuildArtifactFileBaseName}.map"

Cross reference

(-Xlinker --cref)

Select this check box to enable the linker to output the list of all global symbols in your project to the MAP File. This table shows the object files where the symbols are defined and indicates locations where the symbols are used.

By default, this check box is not selected.

Print link map

(-Xlinker --printf-map)

Select this check box to enable the linker to output the resource map to the console. This map shows the object files where the symbols are defined and indicates locations where the symbols are used.

By default, this check box is not selected.

Remove unused sections

(-Xlinker --gc-sections)

Select this check box to enable the linker to not include sections that are not called from the binary artifact in the output that goes to the MAP file.

By default, this check box is not selected.

Print removed sections

(-Xlinker --print-gc-sections)

Select to print the unused sections that were removed by garbage collection to the standard error output.

By default, this check box is not selected.

Shared Library Settings

The Shared Library Settings page allows you to enable support of shared libraries and to configure some options.

The shared libraries are supported only for the S32V234 Cortex-A53 Linux (Shared Library) Library project type. If you want to create the shared libraries from other types of projects, you can go to the Build Artifact tab and change Artifact Type to ARM64 Linux Shared Library, but it is highly recommended to use specific type of project.

The following table describes the options available on the Shared Library Settings page.
Table 5. Shared Library Settings
Option Description
Shared

(-shared)

Select to create a shared library.

Default for the Executable artifact type: this check box is not selected and all other options are inactive.
Default for the Shared Library artifact type: this check box is selected.
Note: If Artifact Type was changed from the Shared Library type to Executable, manually deselect this check box.
Shared object name

(-Wl,-soname=)

Specify the name for the internal DT_SONAME field. When an executable is linked with a shared object which has a DT_SONAME field, then when the executable is run the dynamic linker will attempt to load the shared object specified by the DT_SONAME field rather than the using the file name given to the linker.

By default, this field is empty.
Import Library name

(-Wl,--out-implib=)

Select this option for the linker to create a file with the specified name which will contain an import library corresponding to the DLL the linker is generating. This import library may be used to link clients against the generated executable; this behaviour makes it possible to skip a separate import library creation step.

By default, this field is empty.
DEF file name

(-Wl,--output-def=)

The linker will create the file with specified name which will contain a DEF file corresponding to the DLL the linker is generating. This DEF file (which should be called *.def) may be used to create an import library with dlltool or may be used as a reference to automatically or implicitly exported symbols.

By default, this field is empty.

Link Order

The Link Order page allows you to specify the order in which you want the linker to process files.

The following table describes the options available on the Link Order page.
Table 6. Link Order
Option Description
Customize linker input order Enables editing of the Link Order list.

By default, this check box is not selected.

Link Order List of files (sources and libraries) in the linking order.

Default: A53_gen/src/acf_host.cpp

A53_gen/src/sequencer_srec.c

A53_src/main.cpp