Hello fellow BlackBerry 10 users and fans! I am pleased to announce a new, custom-built compiler toolchain for BlackBerry 10!
There have been ongoing discussions about the possibility of updating our favourite Operating System. We have all wondered whether an updated set of tools would enable continued use of our devices as Web and Application standards move further away from what the original BB10 apps and APIs can support.
We are very fortunate to have dedicated developers who have continued to support BB10. This toolchain is itself built upon and inspired by the passionate work of our wonderful BlackBerry coders. I hope this shiny new toolkit helps to keep your creative embers glowing.
The toolchain is built upon gcc-9.3.0, enabling C++17 and some C++20 features. I have successfully compiled publicly-available programs that use advanced features from these new standards and the journey from multiple errors to successful builds has made me grow even fonder and amazed by QNX!
Everything works! (tm), with the exception of std::execution (ahem), so the possibilities are... dependent on the continued commitment of our developer heroes. A lot of work still needs to be done before we can upgrade such complex libraries as Qt, or, dare I say, the Web Browser, but a working compiler is one less challenge to face.
Thanks to all the developers, fans, websites... that keep the *Spark blinking. Happy Coding.
Hello fellow BlackBerry 10 users and fans! I am pleased to announce a new, custom-built compiler toolchain for BlackBerry 10!
There have been ongoing discussions about the possibility of updating our favourite Operating System. We have all wondered whether an updated set of tools would enable continued use of our devices as Web and Application standards move further away from what the original BB10 apps and APIs can support.
We are very fortunate to have dedicated developers who have continued to support BB10. This toolchain is itself built upon and inspired by the passionate work of our wonderful BlackBerry coders. I hope this shiny new toolkit helps to keep your creative embers glowing.
The toolchain is built upon gcc-9.3.0, enabling C++17 and some C++20 features. I have successfully compiled publicly-available programs that use advanced features from these new standards and the journey from multiple errors to successful builds has made me grow even fonder and amazed by QNX!
Everything works! (tm), with the exception of std::execution (ahem), so the possibilities are... dependent on the continued commitment of our developer heroes. A lot of work still needs to be done before we can upgrade such complex libraries as Qt, or, dare I say, the Web Browser, but a working compiler is one less challenge to face.
Thanks to all the developers, fans, websites... that keep the *Spark blinking. Happy Coding.
Whoah, nice job man! I did not expected (but hoped) somebody will use my previous work (hi, it's me, extrowerk).
Will try to build the toolchain on Haiku, wish me luck.
Keep up the good job!
Also you could contact BB, they don't yet have GCC9 based toolchain, maybe they can use something from your work, that would be awesome.
Also we should tell them to keep the sign servers up, if it is necessary to deploy the binaries to the phone.
Also somebody should work on the on-device hosted toolchain.
Whoah, nice job man! I did not expected (but hoped) somebody will use my previous work (hi, it's me, extrowerk)....
Thanks! I had little experience before this so I learned a lot about porting GCC/binutils by referring to your work. I would love to hear how things go building the tools on Haiku. I have only tested on OpenSUSE so far so it would be great to make sure it works on all unix systems.
Hello fellow BlackBerry 10 users and fans! I am pleased to announce a new, custom-built compiler toolchain for BlackBerry 10!
There have been ongoing discussions about the possibility of updating our favourite Operating System. We have all wondered whether an updated set of tools would enable continued use of our devices as Web and Application standards move further away from what the original BB10 apps and APIs can support.
We are very fortunate to have dedicated developers who have continued to support BB10. This toolchain is itself built upon and inspired by the passionate work of our wonderful BlackBerry coders. I hope this shiny new toolkit helps to keep your creative embers glowing.
The toolchain is built upon gcc-9.3.0, enabling C++17 and some C++20 features. I have successfully compiled publicly-available programs that use advanced features from these new standards and the journey from multiple errors to successful builds has made me grow even fonder and amazed by QNX!
Everything works! (tm), with the exception of std::execution (ahem), so the possibilities are... dependent on the continued commitment of our developer heroes. A lot of work still needs to be done before we can upgrade such complex libraries as Qt, or, dare I say, the Web Browser, but a working compiler is one less challenge to face.
Thanks to all the developers, fans, websites... that keep the *Spark blinking. Happy Coding.
Even though I have no plans of using git (personal reasons) there's nothing stopping you from putting your changes up on your git, if you think it's worth it. My development speed is not as fast as I would like, so it would be great if others were able to move things along at a faster pace. I'll correct/update my script and I could also add your site as an alternative source in the first post here and on my download page.
Were you able to build on Haiku? Have you been able to build some stuff with the toolchain?
Last edited by DidactiCOde-leo; 03-02-21 at 12:55 PM.
g++ -pipe -pipe -no-pie -fPIC -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -DHAVE_CONFIG_H -DGENERATOR_FILE -fno-PIE -no-pie -o build/gengenrtl \
build/gengenrtl.o build/errors.o ../build-x86_64-haiku/libiberty/libiberty.a
/boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: build/gengenrtl.o: relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: build/errors.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: final link failed: nonrepresentable section on output
I'm putting in the final touches to the scripts so they should be up soon. Is Haiku your main system? If so, that would be impressive. I made a couple of small changes and confirmed that the toolchain builds on Ubuntu. I'll try Haiku, NetBSD and Arch next to see what could be holding you back.
Thanks for testing things out. Hopefully we can compile something interesting that end-users can run, just to show what's possible.
Yep, Haiku is not only my main system, but the only one (except BB10).
I had to lobotomize your build script to get it built but I am not satisfied with the result yet. I will test your fresh one again.
Keep in mind Haiku is still in beta, and different enough from other unix like systems to be able to generate headache if you try to use it like "It is unix, I know this".
You should try 64 bit Haiku to spare your nerves.
I just rebuilt the system provided binutils with qnx added as target, now I don't need to build binutils anymore with your script. Also your script uses unnecessary switches for binutils.
Your script is nice, but needs a heavy cleanup.
We should try to enable fortran and GCCGo in the script. Every phone have to be able to run fortran stuff.
It seems your script adjusts the path so the original bbndk's make gets priority, which is bad for me, as it is a Linux binary, and Haiku obviously can't run those.
I renamed the bin dir in the bbndk as a temporary solution.
For isl I had to "autoreconf -vfi" first because I have too new automake. This can happen on other OS too.