03-22-21 04:15 PM
41 12
tools
  1. DidactiCOde-leo's Avatar
    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 PM
  2. app_Developer's Avatar
    Congrats! That’s a big milestone!
    02-27-21 08:48 PM
  3. Ginowine's Avatar
    Nice one.

    Posted via CB10
    02-28-21 03:25 AM
  4. SteinwayTransitCorp's Avatar
    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
    While still on oxygen that oxygen just got a lot sweeter ! ! !
    Attached Thumbnails [Release] Updated Development Tools for BlackBerry 10-oxygen.jpg  
    DidactiCOde-leo likes this.
    02-28-21 07:13 AM
  5. passportowner's Avatar
    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 AM
  6. brookie229's Avatar
    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 AM
  7. DidactiCOde-leo's Avatar
    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.

    All the best.
    03-01-21 11:57 AM
  8. conite's Avatar
    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 PM
  9. Dunt Dunt Dunt's Avatar
    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.
    Welcome to CrackBerry....
    03-01-21 02:25 PM
  10. passportowner's Avatar
    Please consider to put the build script into git somewhere, I maybe can send some PRs.
    03-02-21 02:48 AM
  11. passportowner's Avatar
    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 AM
  12. passportowner's Avatar
    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 AM
  13. passportowner's Avatar
    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 AM
  14. DidactiCOde-leo's Avatar
    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 PM
  15. passportowner's Avatar
    I was never able to build a Haiku based toolchain, not even wit my scripts
    03-02-21 12:50 PM
  16. DidactiCOde-leo's Avatar
    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 PM
  17. passportowner's Avatar
    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 output
    03-02-21 01:01 PM
  18. passportowner's Avatar
    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 PM
  19. passportowner's Avatar
    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 Haiku
    03-03-21 01:00 AM
  20. DidactiCOde-leo's Avatar
    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 PM
  21. passportowner's Avatar
    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 PM
  22. passportowner's Avatar
    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 PM
  23. DidactiCOde-leo's Avatar
    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 AM
  24. passportowner's Avatar
    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 AM
  25. passportowner's Avatar
    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 2
    03-05-21 04:22 AM
41 12

Similar Threads

  1. Please need help with old Blackberry 8703e (on verizon),
    By rkjohnsjr in forum BlackBerry 87xx Series
    Replies: 11
    Last Post: 02-28-21, 08:16 PM
  2. Sleep Noise: playing colored noise for better sleep
    By Alexey Gurevski in forum BlackBerry 10 Apps
    Replies: 2
    Last Post: 02-28-21, 08:02 AM
LINK TO POST COPIED TO CLIPBOARD