RPi4 64bit migration

Created on December 6, 2021

Repo Setup:

Build Instructions:

  • MACHINE=raspberrypi4-64-rdk-hybrid source meta-cmf-raspberrypi/setup-environment
  • bitbake  rdk-generic-hybrid-wpe-image

Prerequisites:

Changes needed to be done till the meta layers.

Meta LayerRecipeChange
1meta-cmf-video-restricted/meta-cmf-video-restricted/recipes-extended/websocket-ipplayer2/websocket-ipplayer2-utils_git.bb— a/recipes-extended/websocket-ipplayer2/websocket-ipplayer2-utils_git.bb
+++ b/recipes-extended/websocket-ipplayer2/websocket-ipplayer2-utils_git.bb
@@ -34,7 +34,7 @@ SRCREV = “${AUTOREV}”
 SRC_URI =”${CMF_GIT_ROOT}/components/generic/websocket-ipplayer2-utils;name=websocket-ipplayer2-utils;protocol=${RDK_GIT_PROTOCOL};branch=${CMF_GIT_MASTER_BRANCH}”
 
 S = “${WORKDIR}/git/”

+LDFLAGS_append_aarch64 = ” -lrdkloggers”
 FILES_${PN} = “”
 FILES_${PN}-dev = “${datadir}/cmake/Modules/websocket-ipplayer2-utils/*.cmake”
 FILES_${PN}-dev += “${includedir}/ipp2/*.h”
2meta-cmf-video-restricted/recipes-extended/websocket-ipplayer2/websocket-ipplayer2_git.bb— a/recipes-extended/websocket-ipplayer2/websocket-ipplayer2_git.bb
+++ b/recipes-extended/websocket-ipplayer2/websocket-ipplayer2_git.bb
@@ -25,7 +25,7 @@ SUMMARY = “MPEG Dash Client”
 LICENSE = “RDK”
 LIC_FILES_CHKSUM = “file://LICENSES.TXT;md5=9b6e7bbf5a50244b71ec3d67bd3a552d
 
-DEPENDS = “gstreamer1.0 libsoup-2.4 gstreamer-cxx websocketpp websocket-ipplayer2-utils-dev boost libtinyxml2”
+DEPENDS = “gstreamer1.0 libsoup-2.4 gstreamer-cxx websocketpp websocket-ipplayer2-utils-dev boost libtinyxml2 rdk-logger”
 RDEPENDS_${PN} += “gstreamer1.0 libtinyxml2 boost-system boost-thread”
 
 SRCREV = “${AUTOREV}”
@@ -42,6 +42,7 @@ S = “${WORKDIR}/git/”
 
 inherit pkgconfig cmake systemd coverity
 
+LDFLAGS_append_aarch64 = ” -lrdkloggers”
 PACKAGECONFIG ?= “”
 
 PACKAGECONFIG[rpi] = “-DBUILD_RDK_REFERENCE_RPI=ON, -DBUILD_RDK_REFERENCE_RPI=OFF,”
3meta-cmf-raspberrypi/conf/layer.conf

— a/conf/layer.conf

+++ b/conf/layer.conf

@@ -23,7 +23,7 @@ LAYERDEPENDS_cmf-raspberrypi_append = ” raspberrypi”

 require conf/distro/include/rdk-rpi.inc

 require conf/include/rdk-external-src-platform.inc

-include include/rdk-bbmasks-##RDK_FLAVOR##-platform.inc

+include include/rdk-bbmasks-rdkv-platform.inc

 # RDK RPI builds include gstreamer ugly plugins

 LICENSE_FLAGS_WHITELIST += “commercial_gstreamer1.0-plugins-ugly”

4recipes-common/telemetry/telemetry_git.bbappend

— a/recipes-common/telemetry/telemetry_git.bbappend

+++ b/recipes-common/telemetry/telemetry_git.bbappend

@@ -1 +1 @@

-CFLAGS_remove_aarch64_broadband = ” -Werror”

+CFLAGS_remove_aarch64 = ” -Werror”

5recipes-connectivity/bluetooth/bluetooth-mgr_git.bbappend

— a/recipes-connectivity/bluetooth/bluetooth-mgr_git.bbappend

+++ b/recipes-connectivity/bluetooth/bluetooth-mgr_git.bbappend

@@ -1 +1,3 @@

 EXTRA_OECONF += ” –enable-pi-build “

+

+CFLAGS += ” -Wno-error”

6recipes-core/images/rdk-generic-hybrid-wpe-image.bbappend

— a/recipes-core/images/rdk-generic-hybrid-wpe-image.bbappend

+++ b/recipes-core/images/rdk-generic-hybrid-wpe-image.bbappend

@@ -10,6 +10,9 @@ IMAGE_INSTALL_append = ”

 IMAGE_INSTALL_remove = ”

     westeros-init

     wpe-webkit-init

+    libcobalt

7recipes-support/rdkx_logger/rdkx-logger_1.0.bbappend-o

do_configure_aarch64_hybrid () {

        sed -i “/struct rdkx_logger_module_s *rdkx_logger_module_str_to_index/d” ${S}/src/rdkx_logger_private.h

        sed -i “/struct rdkx_logger_level_s * rdkx_logger_level_str_to_num/d” ${S}/src/rdkx_logger_private.h

}

8meta-cmf-videorecipes-support/rdkx_logger/rdkx-logger_1.0.bbappend

— a/recipes-support/rdkx_logger/rdkx-logger_1.0.bbappend

+++ b/recipes-support/rdkx_logger/rdkx-logger_1.0.bbappend

@@ -1 +1,2 @@

 EXTRA_OECONF_append = ” –enable-rdkv “

+CFLAGS_remove_aarch64 += ” -Werror “

9meta-cmf-raspberrypi-restrictedrecipes-extended/websocket-ipplayer2/websocket-ipplayer2_git.bbappend— a/meta-cmf-video-restricted/recipes-extended/websocket-ipplayer2/websocket-ipplayer2_git.bbappend
+++ b/meta-cmf-video-restricted/recipes-extended/websocket-ipplayer2/websocket-ipplayer2_git.bbappend
@@ -25,6 +25,7 @@ FILESEXTRAPATHS_prepend := “${THISDIR}/files:”
 
 SRC_URI += “file://websocket-ipplayer.service
 
+LDFLAGS_append_aarch64 = ” -lrdkloggers “
 PACKAGECONFIG += “rpi”
 
 do_install_append() {
10meta-rdk-restrictedrecipes-extended/fog/fog_git.bb— a/recipes-extended/fog/fog_git.bb
+++ b/recipes-extended/fog/fog_git.bb
@@ -34,8 +34,8 @@ CFLAGS += “${@bb.utils.contains(‘DISTRO_FEATURES’, ‘systemd’, ‘-DUSE_SYSTEMD_JOU
 CFLAGS += “-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE”
 CXXFLAGS += “${@bb.utils.contains(‘DISTRO_FEATURES’, ‘systemd’, ‘-DUSE_SYSTEMD_JOURNAL_PRINT -DSD_JOURNAL_SUPPRESS_LOCATION’, ‘ ‘, d)}”
 CXXFLAGS += “-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE”
-CFLAGS += ” -DYAJL2_V2″
-CXXFLAGS += ” -DYAJL_V2″
+CFLAGS += ” -DYAJL2_V2 -Wno-error”
+CXXFLAGS += ” -DYAJL_V2 -Wno-error”
11meta-rdk-videorecipes-extended/ctrlm/ctrlm-main.bb— a/recipes-extended/ctrlm/ctrlm-main.bb
+++ b/recipes-extended/ctrlm/ctrlm-main.bb
@@ -63,7 +63,7 @@ INCLUDE_DIRS = ”
     “
 
 CXXFLAGS_append = ” -std=c++11 -fPIC -D_REENTRANT -rdynamic -Wall -Werror ${INCLUDE_DIRS}”

+CXXFLAGS_remove_aarch64 = ” -Werror”
 CXXFLAGS_append = “${@bb.utils.contains(‘DISTRO_FEATURES_RDK’, ‘comcast-gperftools-heapcheck-wp’, ‘ -DFDC_ENABLED’, ”, d)}”
 
 CXXFLAGS_append = ” -DSYSTEMD_NOTIFY”

Errors and Fixes:


Source FileError/ WarningFix
1git/src/rtRemoteValueWriter.cpperror: cast from ‘voidPtr’ {aka ‘void*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision to.AddMember(“value”, (uintptr_t)(from.toVoidPtr()), doc.GetAllocator()); – rtRemoteValueWriter.cpp – line no : 144
2git/src/rdkx_logger_level.hasherror: conflicting types for ‘rdkx_logger_level_str_to_num’Added rdkx-logger*.bbappend in meta-cmf-raspberryp
3git/src/rdkx_logger_private.h

note: previous declaration of ‘rdkx_logger_level_str_to_num’ was here

|    25 | struct rdkx_logger_level_s * rdkx_logger_level_str_to_num(const char *str, unsigned int len);

Added rdkx-logger*.bbappend in meta-cmf-raspberryp
4dsVideoPort.c

In function ‘dsError_t dsGetVideoPort(dsVideoPortType_t, int, int*)’

cast from ‘VOPHandle_t*’ {aka ‘_VOPHandle_t*’} to ‘int’ loses precision

Change int -> intptr_t
5dsDisplay.c

137:48: error: cast from ‘VDISPHandle_t*’ {aka ‘_VDISPHandle_t*’} to ‘int’ loses precision [-fpermissive]

|   137 |         *handle = (int)&_handles[m_vType][index];

Change int -> intptr_t
6dsAudio.c

cast from ‘AOPHandle_t*’ {aka ‘_AOPHandle_t*’} to ‘int’ loses precision [-fpermissive]

|   162 |                 *handle = (int)&_handles[type][index];

62:36: error: cast from ‘AOPHandle_t*’ {aka ‘_AOPHandle_t*’} to ‘int’ loses precision [-fpermissive]

|    62 |         if ((int)&_handles[index][0] == uHandle) {

Change int -> intptr_t
7git/src/ctrlm_xraudio_hal.c

130:6: error: conflicting types for ‘xraudio_hal_available_devices_get’

|   130 | bool xraudio_hal_available_devices_get(xraudio_devices_input_t *inputs, uint32_t input_qty_max, xraudio_devices_output_t *outputs, size_t output_qty_max) {

|       |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

./ctrlm_xraudio_hal.c:130:bool xraudio_hal_available_devices_get(xraudio_devices_input_t *inputs, uint32_t input_qty_max, xraudio_devices_output_t *outputs, uint32_t_t output_qty_max)
8git/src/bt-ifce/btrCore_dbus_bluez5.cgit/include/logger/btrCore_logger.h:23:25: error: format ‘%d’ expects argument of type ‘int’, but argument 6 has type ‘size_t’ {aka ‘long unsigned int’} [-Werror=format=]Added bbappend in meta-cmf-rasp
9git/source/ccspinterface/rbusInterface.c142:13: error: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t’ {aka ‘long unsigned int’} [-Werror=format=]Added bbappend in meta-cmf-rasp – telemetry
10git/src/xrsv_ws_nextgen/xrsv_ws_nextgen_private.h

../../git/src/xrsv_ws_nextgen/xrsv_ws_nextgen_msgtype.hash:61:1: error: conflicting types for ‘xrsv_ws_nextgen_msgtype_handler_get’

| In file included from ../../git/src/xrsv_ws_nextgen/xrsv_ws_nextgen_msgtype.hash:6:

| ../../git/src/xrsv_ws_nextgen/xrsv_ws_nextgen_private.h:78:44: note: previous declaration of ‘xrsv_ws_nextgen_msgtype_handler_get’ was here

|    78 | struct xrsv_ws_nextgen_msgtype_handler_s * xrsv_ws_nextgen_msgtype_handler_get(const char *str, unsigned int len);

../../git/src/xrsv_ws_nextgen/xrsv_ws_nextgen_tv_control.hash:61:1: error: conflicting types for ‘xrsv_ws_nextgen_tv_control_handler_get’

| In file included from ../../git/src/xrsv_ws_nextgen/xrsv_ws_nextgen_tv_control.hash:6:

| ../../git/src/xrsv_ws_nextgen/xrsv_ws_nextgen_private.h:79:47: note: previous declaration of ‘xrsv_ws_nextgen_tv_control_handler_get’ was here

./xrsv_ws_nextgen/xrsv_ws_nextgen_private.h – commented last 2 lines
11git/src/xrsv_ws/xrsv_ws_private.h

 ../../git/src/xrsv_ws/xrsv_ws_action_phone.hash:61:1: error: conflicting types for ‘xrsv_ws_action_phone_handler_get’

| In file included from ../../git/src/xrsv_ws/xrsv_ws_action_phone.hash:6:

| ../../git/src/xrsv_ws/xrsv_ws_private.h:85:36: note: previous declaration of ‘xrsv_ws_action_phone_handler_get’ was here


xrsv_ws/xrsv_ws_private.h  – commented last 3 lines
12git/v4l2/westeros-sink/westeros-sink-soc.c

4508:79: error: invalid conversion from ‘long long int*’ to ‘gint64*’ {aka ‘long int*’} [-fpermissive]

|  4508 |          if ( gst_element_query_position( avsctx->audioSink, GST_FORMAT_TIME, &avTime ) )

long long avTime= 0 – > long int avTime= 0
13qtbase-opensource-src-5.1.1/src/gui/opengl/qopengl.h

./../../../include/QtGui/../../../qtbase-opensource-src-5.1.1/src/gui/opengl/qopengl.h:97:17: error: conflicting declaration ‘typedef GLfloat GLdouble’

   97 | typedef GLfloat GLdouble;

      |                 ^~~~~~~~

In file included from /home/kpandu549/keerthana/oct27-v/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/qtbase/5.1.1-r0/qtbase-opensource-src-5.1.1/src/plugins/platforms/kms/qkmsscreen.h:59,

                 from /home/kpandu549/keerthana/oct27-v/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/qtbase/5.1.1-r0/qtbase-opensource-src-5.1.1/src/plugins/platforms/kms/qkmsintegration.cpp:44:

/home/kpandu549/keerthana/oct27-v/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/qtbase/5.1.1-r0/recipe-sysroot/usr/include/GLES2/gl2ext.h:3092:16: note: previous declaration as ‘typedef double GLdouble’

 3092 | typedef double GLdouble;

commented typedef GLfloat GLdouble this line in qopengl.h
14cobalt module

imizing-move -frtti -fno-exceptions  -c ../../cobalt/configuration/configuration.cc -o obj/cobalt/configuration/configuration.configuration.o
| In file included from ../../base/memory/singleton.h:33,
|                  from ../../cobalt/configuration/configuration.cc:18:
| ../../base/lazy_instance_helpers.h: In instantiation of ‘Type* base::subtle::GetOrCreateLazyPointer(base::subtle::AtomicWord*, Type* (*)(void*), void*, void (*)(void*), void*) [with Type = cobalt::configuration::Configuration; base::subtle::AtomicWord = int]’:
| ../../base/memory/singleton.h:236:42:   required from ‘static Type* base::Singleton<Type, Traits, DifferentiatingType>::get() [with Type = cobalt::configuration::Configuration; Traits = base::LeakySingletonTraits<cobalt::configuration::Configuration>; DifferentiatingType = cobalt::configuration::Configuration]’
| ../../cobalt/configuration/configuration.cc:29:70:   required from here
| ../../base/lazy_instance_helpers.h:83:11: error: cast from ‘cobalt::configuration::Configuration*’ to ‘base::subtle::AtomicWord’ {aka ‘int’} loses precision [-fpermissive]
|    83 |           reinterpret_cast<subtle::AtomicWord>((*creator_func)(creator_arg));
|       |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 error: unrecognized command line option ‘-mfpu=neon’
  aarch64-rdk-linux-g++: error: unrecognized command line option ‘-mfpu=vfpv3’
| aarch64-rdk-linux-g++: error: unrecognized command line option ‘-mfloat-abi=softfp’
| aarch64-rdk-linux-g++: error: unrecognized command line option ‘-marm’
| ninja: build stopped: subcommand failed.
 ../../third_party/protobuf/src/google/protobuf/arena.cc:158:113: error: cast from ‘google::protobuf::Arena::Block*’ to ‘google::protobuf::internal::AtomicWord’ {aka ‘int’} loses precision [-fpermissive]

removed cobalt module
15src/rmf_sectionfilter.cpp

../../../../git/qamsource/simgr/inband/./src/rmf_sectionfilter.cpp:641:37: error: cast from ‘rmf_sf_SectionRequest_t*’ {aka ‘rmf_sf_SectionRequest_s*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]

|   641 |     ReleaseFilterRequest((uint32_t) pRequest);

|       |                                     ^~~~~~~~

| ../../../../git/qamsource/simgr/inband/./src/rmf_sectionfilter.cpp: In member function ‘rmf_Error rmf_SectionFilter::ReleaseFilter(uint32_t)’:

| ../../../../git/qamsource/simgr/inband/./src/rmf_sectionfilter.cpp:708:37: error: cast from ‘rmf_sf_SectionRequest_t*’ {aka ‘rmf_sf_SectionRequest_s*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]

|   708 |     ReleaseFilterRequest ((uint32_t)pFilter_Request);

(rmf_SiServiceHandle)new_si_entry -> (uintptr_t)new_si_entry
16./src/rmf_oobsicache.cpp

../../../../git/qamsource/simgr/oob/./src/rmf_oobsicache.cpp:8980:42: error: cast from ‘rmf_SiTableEntry*’ to ‘rmf_SiServiceHandle’ {aka ‘unsigned int’} loses precision [-fpermissive]
|  8980 |         SetSourceId((rmf_SiServiceHandle)new_si_entry, input_si_entry->source_id);
|       |                                          ^~~~~~~~~~~~
| ../../../../git/qamsource/simgr/oob/./src/rmf_oobsicache.cpp:8983:41: error: cast from ‘rmf_SiTableEntry*’ to ‘rmf_SiServiceHandle’ {aka ‘unsigned int’} loses precision [-fpermissive]
|  8983 |         SetAppType((rmf_SiServiceHandle)new_si_entry, input_si_entry->isAppType);
|       |                                         ^~~~~~~~~~~~
| ../../../../git/qamsource/simgr/oob/./src/rmf_oobsicache.cpp:8984:39: error: cast from ‘rmf_SiTableEntry*’ to ‘rmf_SiServiceHandle’ {aka ‘unsigned int’} loses precision [-fpermissive]
|  8984 |         SetAppId((rmf_SiServiceHandle)new_si_entry, input_si_entry->app_id);
|       |                                       ^~~~~~~~~~~~
| ../../../../git/qamsource/simgr/oob/./src/rmf_oobsicache.cpp:8985:49: error: cast from ‘rmf_SiTableEntry*’ to ‘rmf_SiServiceHandle’ {aka ‘unsigned int’} loses precision [-fpermissive]
|  8985 |         SetActivationTime ((rmf_SiServiceHandle)new_si_entry, input_si_entry->activation_time);
|       |                                                 ^~~~~~~~~~~~
| ../../../../git/qamsource/simgr/oob/./src/rmf_oobsicache.cpp:8986:47: error: cast from ‘rmf_SiTableEntry*’ to ‘rmf_SiServiceHandle’ {aka ‘unsigned int’} loses precision [-fpermissive]
|  8986 |         SetChannelNumber((rmf_SiServiceHandle)new_si_entry, input_si_entry->virtual_channel_number, RMF_SI_DEFAULT_CHANNEL_NUMBER);

../../../../git/qamsource/simgr/oob/./src/rmf_oobsicache.cpp:5852:71: error: cast from ‘rmf_SiTableEntry*’ to ‘rmf_SiServiceHandle’ {aka ‘unsigned int’} loses precision [-fpermissive]
|  5852 |                         pgm->services->push_back((rmf_SiServiceHandle)new_si_entry);
|       |                                                                       ^~~~~~~~~~~~
| ../../../../git/qamsource/simgr/oob/./src/rmf_oobsicache.cpp:5856:70: error: cast from ‘rmf_SiTableEntry*’ to ‘rmf_SiServiceHandle’ {aka ‘unsigned int’} loses precision [-fpermissive]
|  5856 |                         ts->services->push_back((rmf_SiServiceHandle)new_si_entry);
|       |                                                                      ^~~~~~~~~~~~
| ../../../../git/qamsource/simgr/oob/./src/rmf_oobsicache.cpp:5890:73: error: cast from ‘rmf_SiTransportStreamEntry*’ to ‘rmf_SiTransportStreamHandle’ {aka ‘unsigned int’} loses precision [-fpermissive]
|  5890 |                 new_si_entry->ts_handle = (rmf_SiTransportStreamHandle) ts;
|       |                                                                         ^~
| ../../../../git/qamsource/simgr/oob/./src/rmf_oobsicache.cpp:5891:62: error: cast from ‘rmf_SiProgramInfo*’ to ‘rmf_SiProgramHandle’ {aka ‘unsigned int’} loses precision [-fpermissive]
|  5891 |                 new_si_entry->program = (rmf_SiProgramHandle)pgm;
|       |                                                              ^~~

change the datatype

int -> intptr_t

17/usr/src/debug/websocket-ipplayer2-utils/git-r0/git/src/ipp2/RdkLogProvider.cpp/usr/src/debug/websocket-ipplayer2-utils/git-r0/git/src/ipp2/RdkLogProvider.cpp:34: undefined reference to `rdk_logger_init

Add   -lrdkloggers  in cmake in *utils source code

build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/websocket-ipplayer2-utils/git-r0/git/src/ipp2/ CMakeLists.txt

18git/src/audioCap/btrMgr_audioCap.c

 In file included from ../../../git/src/audioCap/btrMgr_audioCap.c:58:

| ../../../git/src/audioCap/btrMgr_audioCap.c: In function ‘btrMgr_AC_rmfStatusChangeCb’:

| ../../../git/include/logger/btrMgr_logger.h:23:25: error: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘size_t’ {aka ‘long unsigned int’} [-Werror=format=]

|    23 | #define PREFIX(format)  “%dt: %s – ” format

| ../../../git/include/logger/btrMgr_logger.h:39:22: note: in definition of macro ‘LOG_WARN’

|    39 |     fprintf (stderr, format, __VA_ARGS__);

| ../../../git/include/logger/btrMgr_logger.h:68:53: note: in expansion of macro ‘PREFIX’

|    68 | #define BTRMGRLOG_WARN(format,  …)       LOG_WARN(PREFIX(format),  __LINE__, __FUNCTION__, ##__VA_ARGS__)

| ../../../git/src/audioCap/btrMgr_audioCap.c:1270:13: note: in expansion of macro ‘BTRMGRLOG_WARN’

|  1270 |             BTRMGRLOG_WARN(“Status Changed – Fifo Depth = %dn”, lstBtrMgrRmfAcStatus.fifoDepth);

| ../../../git/src/audioCap/btrMgr_audioCap.c:1270:60: note: format string is defined here

| cc1: all warnings being treated as errors

Add CFLAGS in bbappend in meta-cmf-rasp
19git/src/tcjson.cpp

../git/src/tcjson.cpp:175:20: error: invalid conversion from ‘int (*)(void*, const char*, unsigned int)’ to ‘int (*)(void*, const char*, size_t)’ {aka ‘int (*)(void*, const char*, long unsigned int)’} [-fpermissive]

|   175 |     ParserContext::parse_number,

|       |     ~~~~~~~~~~~~~~~^~~~~~~~~~~~

|       |                    int (*)(void*, const char*, unsigned int)

| ../git/src/tcjson.cpp:176:20: error: invalid conversion from ‘int (*)(void*, const unsigned char*, unsigned int)’ to ‘int (*)(void*, const unsigned char*, size_t)’ {aka ‘int (*)(void*, const unsigned char*, long unsigned int)’} [-fpermissive]

|   176 |     ParserContext::parse_string,

|       |     ~~~~~~~~~~~~~~~^~~~~~~~~~~~

|       |                    int (*)(void*, const unsigned char*, unsigned int)

| ../git/src/tcjson.cpp:178:20: error: invalid conversion from ‘int (*)(void*, const unsigned char*, unsigned int)’ to ‘int (*)(void*, const unsigned char*, size_t)’ {aka ‘int (*)(void*, const unsigned char*, long unsigned int)’} [-fpermissive]

|   178 |     ParserContext::parse_map_key,

|       |     ~~~~~~~~~~~~~~~^~~~~~~~~~~~~

|       |                    int (*)(void*, const unsigned char*, unsigned int)

| ../git/src/tcjson.cpp: In member function ‘std::string TcJson::toString(bool) const’:

| ../git/src/tcjson.cpp:700:31: error: cannot convert ‘unsigned int*’ to ‘size_t*’ {aka ‘long unsigned int*’}

|   700 |     yajl_gen_get_buf(g, &buf, &len);

|       |                               ^~~~

|       |                               unsigned int*

Modified error lines in tcjson.cpp in fog comp

change the datatype accordingly

20RDKShell.cpperror: cannot bind non-const lvalue reference of type ‘uint32_t&’ {aka ‘unsigned int&’} to an rvalue of type ‘uint32_t’ {aka ‘unsigned int’}CompositorController::screenShot(data, (unsigned int&)size) – RDKShell.cpp – rdkservice comp
21git/Source/WebCore/platform/ttsclient/PlatformSpeechSynthesizerTTSClient.cpp

git/Source/WebCore/platform/ttsclient/PlatformSpeechSynthesizerTTSClient.cpp:185:40: error: cast from ‘WebCore::PlatformSpeechSynthesisUtterance*’ to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
  185 |     sdata.id = (uint32_t)utterance.get();

git/Source/WebCore/platform/ttsclient/PlatformSpeechSynthesizerTTSClient.cpp:223:77: error: cast from ‘WebCore::PlatformSpeechSynthesisUtterance*’ to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]

uint32_t -> uintptr_t
22git/src/ctrlm_database.cpp

./../git/src/ctrlm_database.cpp:1433:88: error: invalid conversion from ‘guint64*’ {aka ‘long unsigned int*’} to ‘sqlite_uint64*’ {aka ‘long long unsigned int*’} [-fpermissive]

 1433 |    ctrlm_db_read_uint64(CTRLM_DB_TABLE_CTRLMGR, CTRLM_DB_DEVICE_UPDATE_KEY_SESSION_ID, &device_update_session_id);

      |                                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~

      |                                                                                        guint64* {aka long unsigned int*}

../../git/src/ctrlm_database.cpp:732:78: note:   initializing argument 3 of ‘int ctrlm_db_read_uint64(const char*, const char*, sqlite_uint64*)’

  732 | int  ctrlm_db_read_uint64(const char *table, const char *key, sqlite_uint64 *value) {

      |                                                               ~~~~~~~~~~~~~~~^~~~~

../../git/src/ctrlm_database.cpp: In function ‘void ctrlm_db_rf4ce_read_polling_methods(ctrlm_network_id_t, ctrlm_controller_id_t, guint8*)’:

../../git/src/ctrlm_database.cpp:2306:51: error: invalid conversion from ‘guint64*’ {aka ‘long unsigned int*’} to ‘sqlite_uint64*’ {aka ‘long long unsigned int*’} [-fpermissive]

 2306 |    ctrlm_db_read_uint64(table, “polling_methods”, &temp_polling_methods);

      |                                                   ^~~~~~~~~~~~~~~~~~~~~

guint64 -> long long unsigned int(ctrlm_database.cpp) & remove -Werror form cxxflags
23git/src/hostif/handlers/src/hostIf_dsClient_ReqHandler.cpp

../../../../git/src/hostif/handlers/src/hostIf_dsClient_ReqHandler.cpp: In static member function ‘static void DSClientReqHandler::checkForUpdates()’:

| ../../../../git/src/hostif/handlers/src/hostIf_dsClient_ReqHandler.cpp:452:87: error: cast from ‘gpointer’ {aka ‘void*’} to ‘int’ loses precision [-fpermissive]

|   452 |         hostIf_STBServiceHDMI *pIface = hostIf_STBServiceHDMI::getInstance((int)elem->data);

|       |                                                                                       ^~~~

| ../../../../git/src/hostif/handlers/src/hostIf_dsClient_ReqHandler.cpp:464:101: error: cast from ‘gpointer’ {aka ‘void*’} to ‘int’ loses precision [-fpermissive]

|   464 |         hostIf_STBServiceVideoOutput *pIface = hostIf_STBServiceVideoOutput::getInstance((int)elem->data);

|       |                                                                                                     ^~~~

| ../../../../git/src/hostif/handlers/src/hostIf_dsClient_ReqHandler.cpp:476:103: error: cast from ‘gpointer’ {aka ‘void*’} to ‘int’ loses precision [-fpermissive]

|   476 |         hostIf_STBServiceVideoDecoder *pIface = hostIf_STBServiceVideoDecoder::getInstance((int)elem->data);

|       |                                                                                                       ^~~~

| ../../../../git/src/hostif/handlers/src/hostIf_dsClient_ReqHandler.cpp:489:112: error: cast from ‘gpointer’ {aka ‘void*’} to ‘int’ loses precision [-fpermissive]

|   489 |         hostIf_STBServiceAudioInterface *pIfaceAudio = hostIf_STBServiceAudioInterface::getInstance((int)elem->data);

|       |                                                                                                                ^~~~

| ../../../../git/src/hostif/handlers/src/hostIf_dsClient_ReqHandler.cpp:502:94: error: cast from ‘gpointer’ {aka ‘void*’} to ‘int’ loses precision [-fpermissive]

|   502 |         hostIf_STBServiceSPDIF *pIfaceSPDIF = hostIf_STBServiceSPDIF::getInstance((int)elem->data);

|       |                                                                                              ^~~~

Update hostIf_dsClient_ReqHandler.cpp  change the datatype accordingly
24git/src/hostif/handlers/src/hostIf_jsonReqHandlerThread.cpp

| ../../../../git/src/hostif/handlers/src/hostIf_jsonReqHandlerThread.cpp:154:5: error: invalid conversion from ‘int (*)(void*, const char*, unsigned int)’ to ‘int (*)(void*, const char*, size_t)’ {aka ‘int (*)(void*, const char*, long unsigned int)’} [-fpermissive]

|   154 |     process_number,

|       |     ^~~~~~~~~~~~~~

|       |     int (*)(void*, const char*, unsigned int)

| ../../../../git/src/hostif/handlers/src/hostIf_jsonReqHandlerThread.cpp:155:5: error: invalid conversion from ‘int (*)(void*, const unsigned char*, unsigned int)’ to ‘int (*)(void*, const unsigned char*, size_t)’ {aka ‘int (*)(void*, const unsigned char*, long unsigned int)’} [-fpermissive]

|   155 |     process_string,

|       |     ^~~~~~~~~~~~~~

|       |     int (*)(void*, const unsigned char*, unsigned int)

| ../../../../git/src/hostif/handlers/src/hostIf_jsonReqHandlerThread.cpp:157:5: error: invalid conversion from ‘int (*)(void*, const unsigned char*, unsigned int)’ to ‘int (*)(void*, const unsigned char*, size_t)’ {aka ‘int (*)(void*, const unsigned char*, long unsigned int)’} [-fpermissive]

|   157 |     process_map_key,

|       |     ^~~~~~~~~~~~~~~

Update hostIf_jsonReqHandlerThread.cpp
25/tmp/work/aarch64-rdk-linux/sessionmgr/git-r0/git/src/SessionMgr.cpp

/home/kpandu549/keerthana/oct27-v/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/sessionmgr/git-r0/git/src/SessionMgr.cpp:17719:67: error: invalid conversion from ‘int64_t*’ {aka ‘long int*’} to ‘long long int*’ [-fpermissive]

| 17719 |               if (sessionmgr_GetLongIntFromJson(item, “interval”, &uid_interval)) {

|       |                                                                   ^~~~~~~~~~~~~

|       |                                                                   int64_t* {aka long int*}

| In file included from /home/kpandu549/keerthana/oct27-v/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/sessionmgr/git-r0/git/src/SessionMgr.cpp:122:

| /home/kpandu549/keerthana/oct27-v/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/sessionmgr/git-r0/git/src/SessionMgrJsonHelper.h:39:90: note:   initializing argument 3 of ‘bool sessionmgr_GetLongIntFromJson(json_t*, const char*, long long int*)’

|    39 | bool          sessionmgr_GetLongIntFromJson(json_t *object, const char* name, long long *val);

|       |                                                                               ~~~~~~~~~~~^~~

| /home/kpandu549/keerthana/oct27-v/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/sessionmgr/git-r0/git/src/SessionMgr.cpp:17728:67: error: invalid conversion from ‘int64_t*’ {aka ‘long int*’} to ‘long long int*’ [-fpermissive]

| 17728 |       if (sessionmgr_GetLongIntFromJson(uidParamsObject, “count”, &uid_count)) {

|       |                                                                   ^~~~~~~~~~

|       |                                                                   int64_t* {aka long int*}

| In file included from /home/kpandu549/keerthana/oct27-v/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/sessionmgr/git-r0/git/src/SessionMgr.cpp:122:

| /home/kpandu549/keerthana/oct27-v/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/sessionmgr/git-r0/git/src/SessionMgrJsonHelper.h:39:90: note:   initializing argument 3 of ‘bool sessionmgr_GetLongIntFromJson(json_t*, const char*, long long int*)’

|    39 | bool          sessionmgr_GetLongIntFromJson(json_t *object, const char* name, long long *val);

|       |                                                                               ~~~~~~~~~~~^~~

| /home/kpandu549/keerthana/oct27-v/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/sessionmgr/git-r0/git/src/SessionMgr.cpp:17730:74: error: invalid conversion from ‘int64_t*’ {aka ‘long int*’} to ‘long long int*’ [-fpermissive]

| 17730 |           if (sessionmgr_GetLongIntFromJson(uidParamsObject, “interval”, &uid_interval)) {

|       |                                                                          ^~~~~~~~~~~~~

 /home/kpandu549/keerthana/oct27-v/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/sessionmgr/git-r0/git/src/SessionMgr.cpp:14531:84: error: call of overloaded ‘addNum(const char*&, const char [5], int64_t)’ is ambiguous

| 14531 |             response.addNum(property, “%lld”, session->source->getTimeshiftBuffer());

Update SessionMgr.cpp datatypes according to the error
26recorder.cpp

 rmfstreamer – undefined reference to `RMFiPPVSrc::purchasePPVEvent(unsigned int&)’

added stub for RMFiPPVSrc::purchasePPVEvent(unsigned int&) in recorder.cpp
27git/daemon/source/utils/logging.cpp

| /home/pjames993/64bit_dunfell_17nov/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/asbluetoothrcu/1.99-r0/recipe-sysroot/usr/include/qt5/QtCore/qbasicatomic.h: In instantiation of ‘T QBasicAtomicInteger<T>::fetchAndAndOrdered(T) [with T = int]’:

| /home/pjames993/64bit_dunfell_17nov/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/asbluetoothrcu/1.99-r0/recipe-sysroot/usr/include/qt5/QtCore/qbasicatomic.h:254:14:   required from ‘T QBasicAtomicInteger<T>::operator&=(T) [with T = int]’

| /home/pjames993/64bit_dunfell_17nov/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/asbluetoothrcu/1.99-r0/git/daemon/source/utils/logging.cpp:630:36:   required from here

| /home/pjames993/64bit_dunfell_17nov/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/asbluetoothrcu/1.99-r0/recipe-sysroot/usr/include/qt5/QtCore/qbasicatomic.h:220:37: error: ‘fetchAndAndOrdered’ is not a member of ‘QBasicAtomicInteger<int>::Ops’ {aka ‘QAtomicOps<int>’}

|   220 |     { return Ops::fetchAndAndOrdered(_q_value, valueToAdd); }

|       |              ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~

g_logTargets &= ~LoggingTarget::EthanLog;

change the  expression to   

g_logTargets = (g_logTargets & ~LoggingTarget::EthanLog);

              


28servicemanager module| /home/pjames993/64bit_dunfell_17nov/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/servicemanager/1.99-r0/recipe-sysroot-native/usr/bin/aarch64-rdk-linux/../../libexec/aarch64-rdk-linux/gcc/aarch64-rdk-linux/9.3.0/ld: ../servicemanager/libservicemanager.so: undefined reference to `QAbstractScrollArea::viewport() const’
| collect2: error: ld returned 1 exit status
| Makefile:125: recipe for target ‘servicemanagerapp’ failed
| make[1]: *** [servicemanagerapp] Error 1

add the below changes in servicemanagerapp.pro

QT += widgets

QT += opengl

Path : servicemanager/1.99-r0/git/build/servicemanagerapp/servicemanagerapp.pro


29git/src/helpers/jsonwriter.cpp

| ../../git/src/helpers/jsonwriter.cpp: In member function ‘QString JSONWriter::write(const QVariantHash&)’:

| ../../git/src/helpers/jsonwriter.cpp:71:49: error: cannot convert ‘unsigned int*’ to ‘size_t*’ {aka ‘long unsigned int*’}

|    71 |     yajl_gen_get_buf((yajl_gen) m_handle, &buf, &len);

|       |                                                 ^~~~

|       |                                                 unsigned int*

| ../../git/src/helpers/jsonwriter.cpp: In member function ‘QString JSONWriter::write(const QVariantMap&)’:

| ../../git/src/helpers/jsonwriter.cpp:89:49: error: cannot convert ‘unsigned int*’ to ‘size_t*’ {aka ‘long unsigned int*’}

|    89 |     yajl_gen_get_buf((yajl_gen) m_handle, &buf, &len);

|       |                                                 ^~~~

|       |                                                 unsigned int*

| /home/pjames993/64bit_dunfell_17nov/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/servicemanager/1.99-r0/recipe-sysroot/usr/include/yajl/yajl_gen.h:146:56: note:   initializing argument 3 of ‘yajl_gen_status yajl_gen_get_buf(yajl_gen, const unsigned char**, size_t*)’

|   146 |                                               size_t * len);

|       |                                               ~~~~~~~~~^~~

| ../../git/src/helpers/jsonwriter.cpp: In member function ‘QString JSONWriter::write(QVariantList&)’:

| ../../git/src/helpers/jsonwriter.cpp:108:49: error: cannot convert ‘unsigned int*’ to ‘size_t*’ {aka ‘long unsigned int*’}

unsigned int len→ long unsigned int len
30servicemanager module| /home/pjames993/64bit_dunfell_17nov/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/servicemanager/1.99-r0/recipe-sysroot-native/usr/bin/aarch64-rdk-linux/../../libexec/aarch64-rdk-linux/gcc/aarch64-rdk-linux/9.3.0/ld: ../servicemanager/libservicemanager.so: undefined reference to `ServiceManager::HTTPNetworkAccessManager::HTTPNetworkAccessManager(QObject*)’

comment out the below conditions in build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/servicemanager/1.99-r0/git/build/servicemanager/servicemanager.pro file

#contains(DEFINES, SCREEN_CAPTURE) {

   # !contains(DEFINES, DISABLE_SCREEN_CAPTURE) {

.

.

      #.}

#}


Known Issues:

  • Accelerator Home UI (UI on TV) is not coming up consistently.
  • Resolution Issues seen. Display on TV is not full screen.
  • Cobalt plugin is not available in Controller UI.
  • Every 50 mins reboot is observed due to Control Manager Service.

Note:

  • This is page is work in progress one with change-sets will be pushed in phases of sprint.

Leave a Reply

Your email address will not be published.

Go To Top