Your browser version is outdated. We recommend that you update your browser to the latest version.

Qt5 Compilation Success!

Posted 3/16/2021

Amazing! BlackBerry, QNX, Qt are simply amazing! I had to make a lot of small modifications pertaining to the ambiguous overloads I mentioned in a previous post, but the compile completed successfully. Unfortunately... nothing appeared on screen the first time around. There were bright signs of life on the console, though, so QtCore is working proof. Most of the Qt5 examples are, understandably, GUI-oriented.

There are no errors indicating a failure in loading the display, which has led me to believe that it was simply a matter of adding 4 lines of code to my previous changes, to make everything that BlackBerry wrote for their newer QNX version, work with BlackBerry 10!.

 

#ifdef Q_OS_BLACKBERRY
#include <bps/bps.h>
bps_initialize() ;
#endif

I made a couple of changes to the QNX platform plugin and disabled some important third-party libraries to achieve my first successful compile, but all-in-all, the experience has confirmed what BlackBerry claims about their OS's portability. I hope I'm right about the BB10 initialization...

Attempting Qt5 compile.

Posted 3/11/2021

Thankfully, BlackBerry already had a QNX plugin written. After some mkspec copy-pasting, I got the new compiler to spurt into life for a short burst. QtBase actually finishes the build, but gets hung up looking for "main()." Back to configuring gcc, I guess. One heartwarming moment occurred during the initial compilation stages: Gcc halted on an "ambiguity" error in the use of a math-related function. Having encountered so many of these while building the compiler, I automatically started looking for errors in the QNX headers. To my surprise, the error was actually in the way QtBase was using the functions! e.g. calling pow(double, double) as pow(int, double). This is ambiguous because there are float, double and long double versions of these math functions! The compiler works! It really works!

libstdc++ std::random_device among other things...

Posted 3/8/2021

I think I have a handle of the math.h issues I was having, but still managed to cut-and-not-paste a chunk of code, with time-wasting results. For some reason, libstdc++ isn't ernabling std::random by default, even though gcc-9.3.0 is C++11 compliant. Right now, it seems like we need to define _GLIBCXX_USE_C99_STDINT_TR1 to get the declaration, but compilation fails at the link stage because gcc could not find std::random_device::_M_getval_pretr1(). I don't like that '_pretr1' tag...

 

Finally got through this. The compiler is beginning to look less hacked together now. I still wonder whether the Raspberry Pi toolchain scripts would have made this endeavour easier.... They looked tailored to Linux when I first looked at them, though.... QNX provides their own libc, so I think it helped to focus on learning that one thing.

Tim Horton's Brier is on!

Posted 3/8/2021

It's another great week of curling ahead. I'll be cheering for Team Howard, but it's a deep field. Good luck to everyone!

Need to make Gcc's <cmath> and QNX's <math.h> cooperate

Posted 3/4/2021

It is causing C++ math definitions to be hidden. At least I seem to have resolved the max_align_t issue I was having. I hope this new one doesn't take too much time to fix.

Scotties Finals

Posted 2/28/2021

The tiebreaker is on at 10:00am, Semi-Final at 2:30pm and Final at 8:30pm. It has been a great week. Thanks to Curling Canada and all the teams for putting together my favourite sporting event. Good luck to all the teams! (especially our Team Homan -_-). https://www.tsn.ca/curling

Confirmed working build.

Posted 2/26/2021

I had to roll back a change to the QNX headers regarding max_align_t. I initally added the typedef because it was declared missing from libstdc++ when I attempted to build Intel's Thread Building Blocks. However, when I rebuilt gcc, the build system complained about it being redefined.... I changed my modifications to enable my typedef only if max_align_t has not been defined already.

Gcc toolchain almost ready for download

Posted 2/25/2021

I need to verify successful build and create patch files.