Mksys smartBoat.sdef issue - undefined reference to `pa_uartMode_Set'


#1

Hi,

when I execute mksys for smartBoatBoat in legato system, it stops at build subcommand. Please suggest. Thank you!

command that I execute at $MANGO_ROOT/sample/Demo:

mksys -t wp85
-i “$LEGATO_ROOT/interfaces/supervisor”
-i “$LEGATO_ROOT/interfaces/positioning”
-i “$LEGATO_ROOT/interfaces/airVantage”
-i “$LEGATO_ROOT/interfaces/modemServices”
-i “$LEGATO_ROOT/interfaces”
-i “$LEGATO_ROOT/interfaces/atServices”
-i “$LEGATO_ROOT/interfaces/wifi”
-i “$LEGATO_ROOT/interfaces/secureStorage”
-i “$LEGATO_ROOT/interfaces/logDaemon”
-s “$LEGATO_ROOT/modules/WiFi/service”
-s “$LEGATO_ROOT/components”
-s “$LEGATO_ROOT/modules/WiFi/apps/tools/wifi”
-s “$LEGATO_ROOT/apps/platformServices/airVantage”
-s “$LEGATO_ROOT/apps/platformServices”
-s “$LEGATO_ROOT/apps/tools”
-s “$MANGOH_ROOT/apps/GpioExpander/gpioExpanderService”
smartBoat.sdef

Error

[135/816] Linking C executable
FAILED: /opt/swi/y17-ext/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc --sysroot=/opt/swi/y17-ext/sysroots/armv7a-vfp-neon-poky-linux-gnueabi -o _build_smartBoat/wp85/app/tools/staging/read-only/bin/uartMode _build_smartBoat/wp85/app/tools/obj/uartMode/_main.c.o -rdynamic -Wl,–enable-new-dtags,-rpath="$ORIGIN/…/lib" -L “-L_build_smartBoat/wp85/component/adf008801ef27230968ee4adcd7a1cb6/obj” -lComponent_uartMode “-L_build_smartBoat/wp85/component/adf008801ef27230968ee4adcd7a1cb6/obj” -lComponent_uartMode “-L$LEGATO_BUILD/framework/lib” -llegato -lpthread -lrt -ldl -lm
_build_smartBoat/wp85/component/adf008801ef27230968ee4adcd7a1cb6/obj/libComponent_uartMode.so: undefined reference to pa_uartMode_Set' _build_smartBoat/wp85/component/adf008801ef27230968ee4adcd7a1cb6/obj/libComponent_uartMode.so: undefined reference topa_uartMode_Get’
collect2: error: ld returned 1 exit status
[135/816] Generating IPC interface code
ninja: build stopped: subcommand failed.


#2

Hi YK,

What version of Legato are you building and what version of the toolchain are you using. I think that your toolchain might be too old.


#3

Hi David,
Thanks for your reply. Here is the my system info.
root@yk-mangoh:~# legato version
16.10.2_f458c9fff3bcf7150b3c42a6793cd089_modified
root@yk-mangoh:~#
root@yk-mangoh:~#
root@yk-mangoh:~# cm info
Device: WP8548
Firmware: SWI9X15Y_07.11.22.00 r33729 CARMD-EV-FRMWR1 2017/01/11 18:04:06
Bootloader: SWI9X15Y_07.11.22.00 r33729 CARMD-EV-FRMWR1 2017/01/11 18:04:06

However, I found a way to bypass the error message and successfully build the sys. by running this MakeFile:

using this command:

make --include-dir=$LEGATO_ROOT wp85


#4

Hi YK,

You can achieve this with mksys command too.

I got the same issue as mentioned above with smartBoard.adef

210@userblrmiespc1210-OptiPlex-7010:~/legato-16.10.1/apps/platformServices$ mksys -t wp85 smartBoat.sdef
[108/531] Linking C executable
FAILED: /opt/swi/y17-ext/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc --sysroot=/opt/swi/y17-ext/sysroots/armv7a-vfp-neon-poky-linux-gnueabi -o _build_smartBoat/wp85/app/tools/staging/read-only/bin/uartMode _build_smartBoat/wp85/app/tools/obj/uartMode/_main.c.o -rdynamic -Wl,–enable-new-dtags,-rpath="$ORIGIN/…/lib" -L “-L_build_smartBoat/wp85/component/06694913897717d1e81d3037ca4e008b/obj” -lComponent_uartMode “-L_build_smartBoat/wp85/component/06694913897717d1e81d3037ca4e008b/obj” -lComponent_uartMode “-L$LEGATO_BUILD/framework/lib” -llegato -lpthread -lrt -ldl -lm
_build_smartBoat/wp85/component/06694913897717d1e81d3037ca4e008b/obj/libComponent_uartMode.so: undefined reference to pa_uartMode_Set' _build_smartBoat/wp85/component/06694913897717d1e81d3037ca4e008b/obj/libComponent_uartMode.so: undefined reference topa_uartMode_Get’
collect2: error: ld returned 1 exit status
[108/531] Compiling C source
ninja: build stopped: subcommand failed.

There seems issue in path included for executables.

At the end of smartBoat.sdef file
you can see $LEGATO_ROOT/apps/tools/tools being added which is prompting error

apps:
{

// Command-line tools.
$LEGATO_ROOT/apps/tools/tools
}

go to path “cd LEGATO_ROOT/apps/tools/tools”

and make following changes in tools.adef

executables:
{
cm = (cm)
fwupdate = (fwupdate)
secstore = (secstore)
pmtool = (pmtool)
gnss = (gnss)
uartMode = (uartMode
$LEGATO_ROOT/components/uartMode/platformAdaptor/default/le_pa_uartMode_default
)
}

This solves the issue and you get your package ready.

Thanks
Ankita


#5

Hi @Ankita @dfrey
I have yhe same issue :
When i want to build my system to distribute for installation on my target (wp85), wiith mksys tool and via default.sdef file , like that :

mksys -t wp85 default.sdef

This DOES NOT work - the build explodes with long lists of undefined symbols which appear to be from missing libraries (they look like libraries from the platform adapter code) :

mangoh@mangoh-virtualbox:~/legato_framework/legato_16.10.1.m3/legato$ mksys -t wp85 default.sdef
[87/412] Linking C executable
FAILED: /opt/swi/y17-ext/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc --sysroot=/opt/swi/y17-ext/sysroots/armv7a-vfp-neon-poky-linux-gnueabi -o _build_default/wp85/app/audioService/staging/read-only/bin/audioDaemon _build_default/wp85/app/audioService/obj/audioDaemon/_main.c.o -rdynamic -Wl,–enable-new-dtags,-rpath="$ORIGIN/…/lib" -L “-L_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj” -lComponent_audio “-L_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj” -lComponent_audio “-L$LEGATO_BUILD/framework/lib” -llegato -lpthread -lrt -ldl -lm
_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference to pa_audio_GetProfile' _build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference topa_amr_StartEncoder’
_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference to pa_audio_GetPcmSamplingRate' _build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference topa_audio_PlaySignallingDtmf’
_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference to pa_audio_GetNoiseSuppressorStatus' _build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference topa_amr_StopEncoder’
_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference to pa_pcm_InitCapture' _build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference topa_audio_SetPlatformSpecificGain’
_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference to pa_pcm_InitPlayback' _build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference topa_audio_GetPcmSamplingResolution’
_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference to pa_amr_StartDecoder' _build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference topa_audio_GetPcmCompanding’
_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference to `pa_pcm_GetPeriodSize’
.
.
.
.

_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference to pa_audio_StopDtmfDecoder' _build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference topa_audio_GetDefaultI2sMode’
_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference to pa_audio_SetDspAudioPath' _build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference topa_audio_SetI2sChannelMode’
_build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference to pa_audio_RemoveDtmfStreamEventHandler' _build_default/wp85/component/57ee7e82b90d24ba02e247bba7cf74da/obj/libComponent_audio.so: undefined reference topa_pcm_Play’
collect2: error: ld returned 1 exit status
[87/412] Compiling C source
ninja: build stopped: subcommand failed.