[Release] Updated Development Tools for BlackBerry 10
- Download: gcc-9.3.0 toolchain builder
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.
Download: gcc-9.3.0 toolchain builder
Also check out Extrowerk's toolchain. Served as a base and might have some improvements.
03-06-2021: <cmath> issues appear fixed and latest libfmt compiles. I wonder what would be a good app/library for a quick visible test...
03-05-2021: There is a problem with <cmath> so please use <math.h> for now.
03-04-2021: Custom build scripts for your own project now available.
03-01-2021: I made a few changes to the script to improve shell compatibility.Last edited by DidactiCOde-leo; 03-06-21 at 11:48 AM.
02-27-21 03:58 PMLike 12 -
- Download: gcc-9.3.0 toolchain builder
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.
Download: gcc-9.3.0 toolchain builderDidactiCOde-leo likes this.02-28-21 07:13 AMLike 1 - 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.berradicted_fr likes this.03-01-21 09:51 AMLike 1 - Congrats on the achievement. Tools are great if there is a mechanic around. If not, well...............sorry to be a Donnie Downer.03-01-21 09:54 AMLike 0
-
All the best.03-01-21 11:57 AMLike 0 - So what happens now? Will we be getting a surge in development until the signing servers and the BBID infrastructure shut down at the end of the year?
Has the likelihood increased since similar rumblings started a couple of years ago?03-01-21 12:03 PMLike 0 - Download: gcc-9.3.0 toolchain builder
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.
Download: gcc-9.3.0 toolchain builder
03-01-2021: I made a few changes to the script to improve shell compatibility.03-01-21 02:25 PMLike 0 - 03-02-21 02:48 AMLike 0
- Please consider to clean up your qnx patch, it is unnecesarily big (it seems) and doesn't applies cleanly, idk why.03-02-21 10:37 AMLike 0
- Maybe it is some bug in the character handling or filesystem, or my tar implementation or I don't know.03-02-21 10:38 AMLike 0
- Here is the cleaned up qnx patch: http://0x0.st/-Kh1.patch
Generated with git. It is a drop-in replacement for yours, but it is 620kB instead of 30 MB.app_Developer likes this.03-02-21 10:56 AMLike 1 - Whoa, thanks! I don't know what happened there.
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.
03-02-21 12:25 PMLike 0 -
- I've re-diffed the folder and it's 41KB now. Thanks for catching that. I'll try and post the Makefiles I've been using by midnight.03-02-21 12:58 PMLike 0
- It always fails here:
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 output03-02-21 01:01 PMLike 0 - It seems I solved this problem, let's see if it completes the build now. I am optimistic.app_Developer likes this.03-02-21 02:40 PMLike 1
- I got this far:
/Singularity/BB10-tools> /Singularity/qnx800/bin/arm-blackberry-qnx8eabi-g++ -v
Using built-in specs.
COLLECT_GCC=/Singularity/qnx800/bin/arm-blackberry-qnx8eabi-g++
COLLECT_LTO_WRAPPER=/Singularity/qnx800/x86_64-haiku/arm-blackberry-qnx8eabi/lib/gcc/arm-blackberry-qnx8eabi/9.3.0/lto-wrapper
Target: arm-blackberry-qnx8eabi
Configured with: ../gcc-9.3.0/configure --srcdir=../gcc-9.3.0 --build=x86_64-haiku --target=arm-blackberry-qnx8eabi --prefix=/Singularity/qnx800 --libdir=/Singularity/qnx800/x86_64-haiku/arm-blackberry-qnx8eabi/lib --libexecdir=/Singularity/qnx800/x86_64-haiku/arm-blackberry-qnx8eabi/lib --enable-version-specific-runtime-libs --with-local-prefix=/Singularity --with-build-sysroot=/Singularity --enable-libstdcxx-pch --enable-languages=c,c++ --with-gxx-include-dir=/Singularity/qnx800/include/libstdc++/9.3.0 --with-default-libstdcxx-abi=gcc4-compatible --enable-initfini-array --enable-threads=posix --enable-shared --with-arch=armv7-a --with-float=softfp --with-fpu=neon-vfpv3 --with-mode=thumb --with-endian=little --enable-default-pie --enable-__cxa_atexit --enable-stack-protector --disable-werror --disable-nls --disable-tls --disable-libssp --with-bugurl=didacticode.ca/contact --enable-lto --disable-bootstrap --with-newlib CFLAGS='-pipe -pipe' CXXFLAGS='-pipe -pipe' LDFLAGS=' -L/boot/system/lib -L/boot/system/develop/lib -L/boot/system/lib -L/boot/system/develop/lib'
Thread model: posix
gcc version 9.3.0 (GCC)
/Singularity/BB10-tools> uname -a
Haiku Flatty 1 hrev54963+1 Feb 26 2021 10:48:1 x86_64 x86_64 Haiku03-03-21 01:00 AMLike 0 - 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.03-03-21 12:59 PMLike 0 - 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.03-03-21 01:58 PMLike 0 - Btw I already tested Fortran with GCC5, it works. I did some tests with GCCGo with GCC8, should also work, afair.03-03-21 02:00 PMLike 0
- I have added scripts that should make building your own projects easier. I hope there aren't any shell compatibility issues. Enjoy.03-04-21 11:55 AMLike 0
- 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.03-05-21 04:03 AMLike 0 - There is something wrong with the LD_FLAGS:
runtime_loader: /Singularity/qnx800/x86_64-haiku/arm-blackberry-qnx8eabi/lib/gcc/arm-blackberry-qnx8eabi/9.3.0/libstdc++.so.6: Incorrect ELF header
Makefile:987: recipe for target 'libgcc_s.so' failed
make[2]: *** [libgcc_s.so] Error 1
make[2]: Leaving directory '/Singularity/BB10-tools/src/build-gcc-9.3.0/arm-blackberry-qnx8eabi/libgcc'
Makefile:13171: recipe for target 'all-target-libgcc' failed
make[1]: *** [all-target-libgcc] Error 2
make[1]: Leaving directory '/Singularity/BB10-tools/src/build-gcc-9.3.0'
Makefile:956: recipe for target 'all' failed
make: *** [all] Error 203-05-21 04:22 AMLike 0
- Forum
- BlackBerry 10 Phones & OS
- BlackBerry 10 OS
[Release] Updated Development Tools for BlackBerry 10
Similar Threads
-
Please need help with old Blackberry 8703e (on verizon),
By rkjohnsjr in forum BlackBerry 87xx SeriesReplies: 11Last Post: 02-28-21, 08:16 PM -
Sleep Noise: playing colored noise for better sleep
By Alexey Gurevski in forum BlackBerry 10 AppsReplies: 2Last Post: 02-28-21, 08:02 AM
LINK TO POST COPIED TO CLIPBOARD