64bit migration for R-Pi4 Target

Created on January 12, 2022

Repo Setup:

Build Instructions:

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

Note :

  • For Cobalt plugin to work : Refer the Table: Known Issues – Section 2

Machine Configuration and Meta layer changes:


Meta LayerRecipeChangeCode ReviewStatus
1meta-cmf-raspberrypiconf/machine/raspberrypi4-64-rdk-hybrid.conf

New machine configuration added.

#@DESCRIPTION: Machine configuration for running a RDK media server (hybrid) on 64bit Raspberry Pi4

#@RDK_FLAVOR: rdkv

require conf/machine/raspberrypi4-64.conf

MACHINEOVERRIDES .= “:raspberrypi4-64:rpi:hybrid:wpe”

# required for image creation

MACHINE_IMAGE_NAME = “rdk-generic-hybrid-wpe-image”

https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/67332Closed
2meta-cmf-raspberrypi-restricted


https://code.rdkcentral.com/r/c/components/generic/rdk-oe/meta-cmf-raspberrypi-restricted/+/65911
meta-rdk-restricted/recipes-qt/servicemanager/servicemanager_git.bbappenddiff –git a/meta-rdk-restricted/recipes-qt/servicemanager/servicemanager_git.bbappend b/meta-rdk-restricted/recipes-qt/servicemanager/servicemanager_git.bbappend
index 42bc222..decd69b 100644
— a/meta-rdk-restricted/recipes-qt/servicemanager/servicemanager_git.bbappend
+++ b/meta-rdk-restricted/recipes-qt/servicemanager/servicemanager_git.bbappend
@@ -15,3 +15,4 @@ CXXFLAGS += ” -I${QT_INC_BASE_DIR}/QtWidgets”
 CXXFLAGS += ” -I${QT_INC_BASE_DIR}/QtCore”
 
 LDFLAGS += ” -lQt5OpenGL”
+EXTRA_QMAKEVARS_PRE_append_aarch64 += “DEFINES+=ENABLE_RPI_64BIT”
Closed
meta-rdk-restricted/recipes-extended/recorder/recorder_git.bbappenddiff –git a/meta-rdk-restricted/recipes-extended/recorder/recorder_git.bbappend b/meta-rdk-restricted/recipes-extended/recorder/recorder_git.bbappend
index 71aa115..2f1884f 100644
— a/meta-rdk-restricted/recipes-extended/recorder/recorder_git.bbappend
+++ b/meta-rdk-restricted/recipes-extended/recorder/recorder_git.bbappend
@@ -1 +1,2 @@
 CXXFLAGS += “-DTRH_DISABLE”
+PACKAGECONFIG_remove_aarch64 = “ippvclient”
Closed



Errors and Fixes:


Source FileError/ WarningFixCode Review Status
1dsVideoPort.c

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

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

Change int -> intptr_thttps://code.rdkcentral.com/r/c/rdk/devices/raspberrypi/devicesettings/+/65451Closed
2dsDisplay.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_thttps://code.rdkcentral.com/r/c/rdk/devices/raspberrypi/devicesettings/+/65451Closed
3dsAudio.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_thttps://code.rdkcentral.com/r/c/rdk/devices/raspberrypi/devicesettings/+/65451Closed
4git/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)https://code.rdkcentral.com/r/c/rdk/components/generic/xraudio-hal_ctrlm/+/67186Closed
5git/src/bt-ifce/btrCore_dbus_bluez5.c| In file included from ../../git/src/bt-ifce/btrCore_dbus_bluez5.c:36:
| ../../git/src/bt-ifce/btrCore_dbus_bluez5.c: In function ‘btrCore_BTHandleDusError’:
| ../../git/include/logger/btrCore_logger.h:23:25: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘int’ [-Werror=format=]
 BTRCORELOG_DEBUG(“Received data is %s with length %dn”, propertyValue, (int)strlen(propertyValue));https://code.rdkcentral.com/r/c/rdk/components/generic/bluetooth/+/67187Closed
7cobalt 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

Taken as a sub task. Yet to address


It is removed and merged in the branch and will be reverting in the future and working on it.

REFPLTV-1225Getting issue details… STATUS

8src/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_entryhttps://code.rdkcentral.com/r/c/components/generic/mediaframework/+/65588Closed
9./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

https://code.rdkcentral.com/r/c/components/generic/mediaframework/+/65588Closed
10/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

https://code.rdkcentral.com/r/c/components/generic/websocket-ipplayer2/+/69895Closed
11git/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-rasphttps://code.rdkcentral.com/r/c/rdk/components/generic/bluetooth_mgr/+/65913Closed
12git/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

https://code.rdkcentral.com/r/c/components/generic/fog/+/67287Closed
13

rdkservices/3.0+gitAUTOINC+1323f96851-r1/git/RDKShell/RDKShell.cpp

error: 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 comphttps://github.com/rdkcentral/rdkservices/pull/2674Merged and Closed
14git/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)https://code.rdkcentral.com/r/c/rdk/components/generic/control/+/69726Closed
15git/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 accordinglyhttps://code.rdkcentral.com/r/c/rdk/components/generic/tr69hostif/+/65721Closed
16git/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.cpphttps://code.rdkcentral.com/r/c/rdk/components/generic/tr69hostif/+/69735Closed
17/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 errorhttps://code.rdkcentral.com/r/c/components/generic/sessionmgr/+/72400Closed
18

recorder/1.99+gitAUTOINC+1ced954c99-r0/git/Recording.cpp

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

added stub for RMFiPPVSrc::purchasePPVEvent(unsigned int&) in recording.cpp
Closed
19git/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);

              


https://code.rdkcentral.com/r/c/rdk/components/generic/blercudaemon/+/67318Closed
20servicemanager 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


https://code.rdkcentral.com/r/c/rdk/components/generic/servicemanager/+/66389Closed
21git/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 lenhttps://code.rdkcentral.com/r/c/rdk/components/generic/servicemanager/+/66389Closed
22servicemanager 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) {

.

.

      #.}

#}


https://code.rdkcentral.com/r/c/rdk/components/generic/servicemanager/+/66389Closed

Regressions Occured


Source / ModuleError/WarningChangesCode Review / Jira Ticket
1

Module : rtRemote

src/rtRemoteValueWriter.cpp

| [21/45] /home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0/recipe-sysroot-native/usr/bin/aarch64-rdk-linux/aarch64-rdk-linux-g++  -DRAPIDJSON_HAS_STDSTRING -DRT_PLATFORM_LINUX -DRT_REMOTE_LOOPBACK_ONLY -Drtremote_shared_EXPORTS -I/home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0/git/include -I/home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0/git/external -I/home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0/git/src -I. -I/home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0/recipe-sysroot/usr/include/pxcore -mcpu=cortex-a72+crc+crypto   –sysroot=/home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0/recipe-sysroot   -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0=/usr/src/debug/rtremote/2.x+gitAUTOINC+9c5eeba065-r0                      -fdebug-prefix-map=/home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0=/usr/src/debug/rtremote/2.x+gitAUTOINC+9c5eeba065-r0                      -fdebug-prefix-map=/home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0/recipe-sysroot=                      -fdebug-prefix-map=/home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0/recipe-sysroot-native=   -O3 -Wno-deprecated-declarations -Wno-maybe-uninitialized -Wno-address  -fno-delete-null-pointer-checks   -fno-delete-null-pointer-checks   -Wl,–warn-unresolved-symbols  -fvisibility-inlines-hidden  -mcpu=cortex-a72+crc+crypto   –sysroot=/home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0/recipe-sysroot -std=c++0x -O2 -fPIC   -std=gnu++11 -MD -MT CMakeFiles/rtremote_shared.dir/src/rtRemoteServer.cpp.o -MF CMakeFiles/rtremote_shared.dir/src/rtRemoteServer.cpp.o.d -o CMakeFiles/rtremote_shared.dir/src/rtRemoteServer.cpp.o -c /home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0/git/src/rtRemoteServer.cpp
| ninja: build stopped: subcommand failed.
| WARNING: exit code 1 from a shell command.
| ERROR: Execution of ‘/home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rtremote/2.x+gitAUTOINC+9c5eeba065-r0/temp/run.do_compile.2058993’ failed with exit code 1
ERROR: Task (/home/pjames993/64bit_rpi4_apr18/meta-rdk/recipes-common/rtremote/rtremote_git.bb:do_compile) failed with exit code ‘1’
5c6de480ebf4472c1f688cbb8f34387a2c1885c7
Please refer the review linkhttps://github.com/pxscene/rtRemote/pull/4Merged and closed
2

Module : rdkservices

git/RDKShell/RDKShell.cpp

| /home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/rdkservices/3.0+gitAUTOINC+2f0616e469-r1/git/RDKShell/RDKShell.cpp:1099:62: error: cannot bind non-const lvalue reference of type ‘uint32_t&’ {aka ‘unsigned int&’} to an rvalue of type ‘uint32_t’ {aka ‘unsigned int’}

|  1099 |                       CompositorController::screenShot(data, size);

|       |                                                              ^~~~

@@ -1067,7 +1094,7 @@ namespace WPEFramework {

                   if (needsScreenshot)

                   {

                       uint8_t* data = nullptr;

–                      size_t size;

+                      uint32_t size;

                       string screenshotBase64;

                       CompositorController::screenShot(data, size);

                       size_t encodedImageSize = b64_get_encoded_buffer_size(size);

https://github.com/rdkcentral/rdkservices/pull/2674Merged to STABLE2
3Module : rdkx-logger

git/src/rdkx_logger_private.h

../../git/src/rdkx_logger_level.hash:61:1: error: conflicting types for ‘rdkx_logger_level_str_to_num’

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

| ../../git/src/rdkx_logger_private.h:25:30: 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);

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


diff –git a/src/rdkx_logger_private.h b/src/rdkx_logger_private.h

index 49224e5..a475514 100644

— a/src/rdkx_logger_private.h

+++ b/src/rdkx_logger_private.h

@@ -18,8 +18,10 @@

 # limitations under the License.

 ############################################

 */

+

+#include <stddef.h>

 typedef struct rdkx_logger_module_s { char *name; unsigned char id; } rdkx_logger_module_t;

 typedef struct rdkx_logger_level_s  { char *name; unsigned char level; } rdkx_logger_level_t;


-struct rdkx_logger_module_s *rdkx_logger_module_str_to_index(const char *str, unsigned int len);

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

+struct rdkx_logger_module_s *rdkx_logger_module_str_to_index(const char *str, size_t len);

+struct rdkx_logger_level_s * rdkx_logger_level_str_to_num(const char *str, size_t len);

https://gerrit.teamccp.com/#/c/649640/
https://ccp.sys.comcast.net/browse/DELIA-56629
Issue is resolved. Code merged  by David Wolaver
4

Module : xr-speech-vrex

src/xrsv_ws/xrsv_ws_private.h

xrsv_ws_nextgen/xrsv_ws_nextgen_private.h

| ../../git/src/xrsv_ws/xrsv_ws_request.hash:61:1: error: conflicting types for ‘xrsv_ws_request_handler_get’

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

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

|    83 | struct xrsv_ws_request_handler_s * xrsv_ws_request_handler_get(const char *str, unsigned int len);

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

| Makefile:542: recipe for target ‘xrsv_ws/xrsv_ws_request.lo’ failed

| make[3]: *** [xrsv_ws/xrsv_ws_request.lo] Error 1

*********************************************

| ../../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

|    85 | struct xrsv_ws_action_handler_s *  xrsv_ws_action_phone_handler_get(const char *str, unsigned int len);

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

| Makefile:542: recipe for target ‘xrsv_ws/xrsv_ws_action_phone.lo’ failed

| make[3]: *** [xrsv_ws/xrsv_ws_action_phone.lo] Error 1

| ../../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

|    79 | struct xrsv_ws_nextgen_tv_control_handler_s * xrsv_ws_nextgen_tv_control_handler_get(const char *str, unsigned int len);

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

| ../../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/xrsv_ws_action.hash:61:1: error: conflicting types for ‘xrsv_ws_action_handler_get’

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

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

|    84 | struct xrsv_ws_action_handler_s *  xrsv_ws_action_handler_get(const char *str, unsigned int len);

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

| Makefile:542: recipe for target ‘xrsv_ws/xrsv_ws_action.lo’ failed

| make[3]: *** [xrsv_ws/xrsv_ws_action.lo] Error 1

diff –git a/src/xrsv_ws/xrsv_ws_private.h b/src/xrsv_ws/xrsv_ws_private.h

index eecd6fb..6765591 100644

— a/src/xrsv_ws/xrsv_ws_private.h

+++ b/src/xrsv_ws/xrsv_ws_private.h

@@ -78,8 +78,8 @@ typedef bool (*xrsv_ws_handler_bool_t)(xrsv_ws_obj_t *obj, json_t *obj_json);

 typedef struct xrsv_ws_request_handler_s { char *name; xrsv_ws_handler_bool_t func; } xrsv_ws_request_handler_t;

 typedef struct xrsv_ws_action_handler_s  { char *name; xrsv_ws_handler_void_t func; } xrsv_ws_action_handler_t;


-struct xrsv_ws_request_handler_s * xrsv_ws_request_handler_get(const char *str, unsigned int len);

-struct xrsv_ws_action_handler_s *  xrsv_ws_action_handler_get(const char *str, unsigned int len);

-struct xrsv_ws_action_handler_s *  xrsv_ws_action_phone_handler_get(const char *str, unsigned int len);

+struct xrsv_ws_request_handler_s * xrsv_ws_request_handler_get(const char *str, size_t len);

+struct xrsv_ws_action_handler_s *  xrsv_ws_action_handler_get(const char *str, size_t len);

+struct xrsv_ws_action_handler_s *  xrsv_ws_action_phone_handler_get(const char *str, size_t len);


 #endif

diff –git a/src/xrsv_ws_nextgen/xrsv_ws_nextgen_private.h b/src/xrsv_ws_nextgen/xrsv_ws_nextgen_private.h

index 8daee81..e6bb2a6 100644

— a/src/xrsv_ws_nextgen/xrsv_ws_nextgen_private.h

+++ b/src/xrsv_ws_nextgen/xrsv_ws_nextgen_private.h

@@ -73,7 +73,7 @@ typedef void (*xrsv_ws_nextgen_handler_void_t)(xrsv_ws_nextgen_obj_t *obj, json_

 typedef struct xrsv_ws_nextgen_msgtype_handler_s { char *name; xrsv_ws_nextgen_handler_bool_t func; } xrsv_ws_nextgen_msgtype_handler_t;

 typedef struct xrsv_ws_nextgen_tv_control_handler_s { char *name; xrsv_ws_nextgen_handler_void_t func; } xrsv_ws_nextgen_tv_control_handler_t;


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

-struct xrsv_ws_nextgen_tv_control_handler_s * xrsv_ws_nextgen_tv_control_handler_get(const char *str, unsigned int len);

+struct xrsv_ws_nextgen_msgtype_handler_s * xrsv_ws_nextgen_msgtype_handler_get(const char *str, size_t len);

+struct xrsv_ws_nextgen_tv_control_handler_s * xrsv_ws_nextgen_tv_control_handler_get(const char *str, size_t len);

https://gerrit.teamccp.com/#/c/649640/
https://ccp.sys.comcast.net/browse/DELIA-56629
Issue is resolved. Code merged  by David Wolaver
5

Module : mediaframework

qamsource/simgr/oob/include/rmf_sicache.h

| ../../../../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;

|       |                                                              ^~~

soln : uint32_t -> uintptr_thttps://code.rdkcentral.com/r/c/rdk/components/generic/mediaframework/+/70409CODE MERGED
6

Module : wpe-webkit

git/Source/WebCore/platform/ttsclient/PlatformSpeechSynthesizerTTSClient.cpp

| /home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/wpe-webkit/2.22.4+gitAUTOINC+ed39c92e59-r0/git/Source/WebCore/platform/ttsclient/PlatformSpeechSynthesizerTTSClient.cpp:185:40: error: cast from ‘WebCore::PlatformSpeechSynthesisUtterance*’ to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]

| /home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/wpe-webkit/2.22.4+gitAUTOINC+ed39c92e59-r0/git/Source/WebCore/platform/ttsclient/PlatformSpeechSynthesizerTTSClient.cpp:234:78: error: cast from ‘WebCore::PlatformSpeechSynthesisUtterance*’ to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
|   234 |         m_ttsClient->resume(m_ttsSessionId, (uint32_t)m_currentUtterance.get());
|       |                                                                              ^

| /home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/wpe-webkit/2.22.4+gitAUTOINC+ed39c92e59-r0/git/Source/WebCore/platform/ttsclient/PlatformSpeechSynthesizerTTSClient.cpp:273:59: error: cast from ‘WebCore::PlatformSpeechSynthesisUtterance*’ to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
|   273 |         speakingFinished((uint32_t)m_currentUtterance.get(), SpeechErrorInterrupted);
|       |                                                           ^

Need to do implemenataion as per the comments.
Comments will be followed up by Jira Ticket : REFPLTV-1341Getting issue details… STATUS


https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-rdk-ext/+/71000

This change will not impact any of the basic functionalities.

STATUS : MERGED


7

Module : qtbase


../../../../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;


https://code.rdkcentral.com/r/plugins/gitiles/components/generic/rdk-oe/meta-cmf-qt5/+/refs/heads/rdk-next/recipes-qt/qt5/qtbase_5.1.1.bbappend

SRC_URI_append_arm = ”
    file://0003-GLdouble-conflict-declaration-fix.patch

https://code.rdkcentral.com/r/plugins/gitiles/components/generic/rdk-oe/meta-cmf-qt5/+/refs/heads/rdk-next/recipes-qt/qt5/qtbase-5.1.1/0003-GLdouble-conflict-declaration-fix.patch

diff –git a/src/gui/opengl/qopengl.h b/src/gui/opengl/qopengl.h

index 6e8be668..524e1860 100644

— a/src/gui/opengl/qopengl.h

+++ b/src/gui/opengl/qopengl.h

@@ -94,7 +94,7 @@ typedef char GLchar;

 #   define GL_DOUBLE GL_FLOAT

 #  endif

 #  ifndef GLdouble

-typedef GLfloat GLdouble;

+typedef double GLdouble;

 #  endif

 # endif // Q_OS_MAC

https://code.rdkcentral.com/r/c/components/generic/rdk-oe/meta-cmf-qt5/+/72202

Issue is resolved and uploaded for review.

Current Status : Code Merged

8Module : sessionmgr

| /home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/sessionmgr/git-r0/git/src/SessionMgr.cpp: In function ‘session_err_t sessionmgr_GetSessionProperty(session_t*, const char*, SimpleJsonEnc&)’:

| /home/pjames993/64bit_rpi4_apr18/build-raspberrypi4-64-rdk-hybrid/tmp/work/aarch64-rdk-linux/sessionmgr/git-r0/git/src/SessionMgr.cpp:14850:88: error: call of overloaded ‘addNum(const char*&, const char [4], int64_t)’ is ambiguous

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

|       |                                                                                        ^

Initial Solution:

response.addNum(property, “%” PRId64, (long long)session->source->getTimeshiftBuffer())

https://code.rdkcentral.com/r/c/components/generic/sessionmgr/+/72400Resolution is identified and added for code review.
Status :  Code Merged
9Module : rmfgeneric / mediaframework

In file included from ../../git/anycas/demoCas/demoCas.cpp:22:

../../git/anycas/demoCas/demoCas.h: In member function ‘virtual void DemoCasHelper::processData(std::shared_ptr<anycas::CASHelperContext>, bool, const std::vector<unsigned char>&)’:
../../git/anycas/demoCas/demoCas.h:295:43: error: cast from ‘char*’ to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
  295 |                 uint32_t addr = (uint32_t)pvtData;
      |                                           ^~~~~~~


Intial Solution :

    uint32_t addr = (uintptr_t)pvtData;

https://code.rdkcentral.com/r/c/rdk/components/generic/mediaframework/+/72460

STATUS : MERGED

10Module : rdkmediaplayer

../git/rdkmediaplayer.cpp: In member function ‘rtError RDKMediaPlayer::open(rtString, rtString)’:
../git/rdkmediaplayer.cpp:764:42: error: cast from ‘RDKMediaPlayerImpl*’ to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
  764 |         resp = (std::to_string((uint32_t)m_pImpl)).c_str();
      |                                          ^~~~~~~
../git/rdkmediaplayer.cpp:785:51: error: cast from ‘RDKMediaPlayerImpl*’ to ‘uint32_t’ {aka ‘unsigned int’} loses precision [-fpermissive]
  785 |                 resp = (std::to_string((uint32_t)*it)).c_str();
      |                                                   ^~

Solution :

— a/rdkmediaplayer.cpp

+++ b/rdkmediaplayer.cpp

@@ -761,7 +761,7 @@ rtError RDKMediaPlayer::open(rtString openData, rtString resp)

         {

             LOG_INFO(“CAS Managment session is already avialable”);

         }

–        resp = (std::to_string((uint32_t)m_pImpl)).c_str();

+        resp = (std::to_string((uintptr_t)m_pImpl)).c_str();

         LOG_INFO(“resp = %x”, resp.cString());

     }

     // For Live Playback Session

@@ -782,7 +782,7 @@ rtError RDKMediaPlayer::open(rtString openData, rtString resp)

             if( !((*it)->isManagementSession()) && (*it)->doCanPlayURL(m_currentURL) )

             {

                 LOG_INFO(“Reusing cached player”);

–                resp = (std::to_string((uint32_t)*it)).c_str();

+                resp = (std::to_string((uintptr_t)*it)).c_str();

                 LOG_INFO(“resp = %x”, resp.cString());

             }


https://code.rdkcentral.com/r/c/rdk/components/generic/rdkmediaplayer/+/71632/Status : MERGED

Logs after 64bit migration:

WPEFramework Logs
Jul 18 10:37:46.325860 /usr/bin/WPEFramework[1229]: [Mon, 18 Jul 2022 10:37:46 ]:[Config.h:788]: Startup: Accessor: http://192.168.0.105:9998/Service
Jul 18 10:37:46.326046 /usr/bin/WPEFramework[1229]: [Mon, 18 Jul 2022 10:37:46 ]:[Config.h:789]: Startup: Interface IP: 192.168.0.105
Jul 18 10:37:46.330725 /usr/bin/WPEFramework[1229]: [Mon, 18 Jul 2022 10:37:46 ]:[SystemInfo.h:354]: Startup: EVENT: Identifier: OE5F8BDkx0
Jul 18 10:37:46.330774 /usr/bin/WPEFramework[1229]: [Mon, 18 Jul 2022 10:37:46 ]:[SystemInfo.h:355]: Startup: EVENT: Architecture: aarch64
Jul 18 10:37:46.330806 /usr/bin/WPEFramework[1229]: [Mon, 18 Jul 2022 10:37:46 ]:[SystemInfo.h:356]: Startup: EVENT: Chipset: BCM2835
Jul 18 10:37:46.330838 /usr/bin/WPEFramework[1229]: [Mon, 18 Jul 2022 10:37:46 ]:[SystemInfo.h:357]: Startup: EVENT: FirmwareVersion: 5.10.52-v8
Command Line Logs

root@raspberrypi4-64-rdk-hybrid:~# uname -a

Linux raspberrypi4-64-rdk-hybrid 5.10.52-v8 #1 SMP PREEMPT Sun Jul 17 09:34:53 UTC 2022 aarch64 GNU/Linux

root@raspberrypi4-64-rdk-hybrid:~# uname -m

aarch64

Compilation Logs

Build Configuration:

BB_VERSION           = “1.46.0”

BUILD_SYS            = “x86_64-linux”

NATIVELSBSTRING      = “ubuntu-18.04”

TARGET_SYS           = “aarch64-rdk-linux”

MACHINE              = “raspberrypi4-64-rdk-hybrid”

DISTRO               = “rdk”

DISTRO_VERSION       = “2.0”

TUNE_FEATURES        = “aarch64 cortexa72 crc crypto”

Console Logs
root@raspberrypi4-64-rdk-hybrid:~# file /usr/bin/rdkbrowser2
/usr/bin/rdkbrowser2: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=21e3fa1be1046192d65c7a1ffe1c7dd3b795f82d, for GNU/Linux 3.14.0, stripped
root@raspberrypi4-64-rdk-hybrid:~# file /usr/bin/WPEFramework-1.0.0
/usr/bin/WPEFramework-1.0.0: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=f27ec6ba8270af029fce09e0eb3deea24b7ac0c6, for GNU/Linux 3.14.0, stripped

Validated functionalities:

Status: ✓ – Working  x – Not Working   O – Partially Working
Sl. NoTestedAppsTest ResultsRemarks
1Basic Testsssh connection

SSH is working through LAN connection.
2Default UI

UI is coming up consistently. Checked rebooting 10 times, every time UI is loading
3Time

x

Current time is not updated in TV UI
4Featured ContentYouTube

Playback is working fine for selected content.
Xumo

x

1.AV decoding is not smooth.
2.Audio decoding is also not proper. Looks like rewind audio.


5Lightning AppsCNN

x

1.AV decoding is not smooth.
2.AV sync is not proper




Vimeo

AV Playback is working.
6Featured Video on DemandFantasy-Island

AV Playback is working.

7Playbackgst-launch


AV playback is working.
Tested URL:
> gst-launch-1.0 playbin uri=aamp://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8 video-sink=westerossink
> gst-launch-1.0 playbin uri=aamp://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8 video-sink=westerossink

8aamp-cli

AV playback is working
Tested Commands:

aamp-cli http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8
aamp-cli http://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8
aamp-cli http://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8


9SettingsBT

x

1.Bluetooth pairing instability issue.
2.Paring is successful very randomly.


10Wi-Fi

1.Connecton is working.
2.Able to take ssh with Wi-Fi IP
3.Able to launch controller UI with Wi-Fi IP


11PluginsHTMLApp

Tested the custom URL: https://www.google.com/
12LightningApp



13Search And DiscoveryApp



14Webkitbrowser

Tested the custom URL: https://www.google.com
15Cobalt

YouTube application launched properly

Known Issues:

Sl No.IssueJiraStatusResolutionCode Review
1Resolution Issues seen. Display on TV is not full screen

UI Display on TV is not coming full screen on RPi4 Image
REFPLTV-1247Getting issue details… STATUS

MERGED and CLOSED

Explanation : boot/config.txt has only one HDMI port (HDMI0) configured properly (which was only need of the day until RPi3 was used.) . This needs configured for the second HDMI port (HDMI1) also.

Fix: Add the below lines in boot/config.txt file once RPi4 is booted up.

    1. hdmi_group
      [HDMI:0]
      hdmi_group=1
      [HDMI:1]
      hdmi_group=1
    1. hdmi_mode
      #hdmi_mode=4
      [HDMI:0]
      hdmi_mode=4
      [HDMI:1]
      hdmi_mode=4
https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/72060
2

Cobalt plugin is not available in Controller UI.

Cobalt Configuration for RPi4-64bit build

REFPLTV-1225Getting issue details… STATUS

RESOLUTION IDENTIFIED

Cobalt Issue Resolution :
Files:
1)git/src/third_party/starboard/rdk/rpi/gyp_configuration.py -> https://code.rdkcentral.com/r/plugins/gitiles/rdk/components/generic/cobalt/+/refs/heads/master/src/third_party/starboard/rdk/rpi/gyp_configuration.py?autodive=0%2F%2F%2F%2F
change1 -> self.sabi_json_path = ‘starboard/sabi/arm64/sabi-v13.json’

change2 -> 
  def GetEnvironmentVariables(self):
    env_variables = {}
    env_variables.update({
        ‘CC’: os.environ[‘CC’],
        ‘CXX’: os.environ[‘CXX’],
        ‘LD’: os.environ[‘CXX’],
        ‘CC_host’: ‘gcc ‘,
        ‘CXX_host’: ‘g++ ‘,
    })

2)git/src/starboard/shared/linux/cpu_features_get.cc -> https://cobalt.googlesource.com/cobalt/+/refs/heads/master/starboard/shared/linux/cpu_features_get.cc
change -> 
#if SB_IS(32_BIT)
~~~~~~~~~~~~~~~~~
// Construct hwcap bitmask by the feature flags in /proc/cpuinfo
uint32_t ConstructHwcapFromCPUInfo(ProcCpuInfo* cpu_info,
                                   int16_t architecture_generation,
                                   uint32_t hwcap_type)
  if (hwcap_type == AT_HWCAP && architecture_generation >= 8) {



  return hwcap_value;
}
#endif //SB_IS(32_BIT)
~~~~~~~~~~~~~~~~~~~~~

3)git/src/third_party/starboard/rdk/shared/rdkservices.cc -> https://code.rdkcentral.com/r/plugins/gitiles/rdk/components/generic/cobalt/+/refs/heads/master/src/third_party/starboard/rdk/shared/rdkservices.cc?autodive=0%2F%2F%2F%2F

change -> uint32_t inputLen = std::min(kMaxBufferSize, (uint32_t)payload.length());
                            ~~~~~~~~~

Code Review for source code yet to added


Internediate Code Review added : https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/73110

https://code.rdkcentral.com/r/c/rdk/components/generic/rdk-oe/meta-cmf-raspberrypi/+/74129

3.

Outline/box for Password field is not available on WiFi network screen.





2 responses to “64bit migration for R-Pi4 Target”

  1. Mohammad Imran says:

    Hi,

    Is there pre build final rdk images already available for RPI -4B model. Which can be flashed to RPI and tested for AV and Telemetry.

Leave a Reply

Your email address will not be published.

Go To Top