1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Dismiss Notice

Beta ptitSeb's Beta Lair

Discussion in 'Software Releases' started by ptitSeb, May 13, 2016.

Tags:
  1. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    7,539
    Location:
    France, near Lyon
    CLang is 2 days of build, at least, on the Pandora. And weight several hundreds of megabytes. So, not sure I'll do it for now (but it should be a straight forward compile using latest codeblocks beta, at least for the LLVM part, as it's part of Rust for example).
     
  2. levi

    levi Still fresh, damnit!

    Joined:
    Oct 6, 2008
    Messages:
    7,527
    Location:
    Somewhere off the coast of the EU
    Mingw is a suite of tools ported to windows, including GCC, so building using mingw usually means building using gnu make and gcc. So any problems they had may well be transferable.

    Also, the Pi's probably run hardfp versions of code. Compiling for other variants can introduce problems some times I would suspect (though I can't think of any legitimate reasons why it would fail).
     
  3. Magic Sam

    Magic Sam Forever Homebrew

    Joined:
    Aug 10, 2007
    Messages:
    1,825
    Location:
    Ankh-Morpork
    Hi all :)

    @ptitSeb and @levi : I received some replies from the multicians community:

    Vince Scarafino (who ported the Multics simulator to the Raspberry Pi):
    and Charles Anthony (who actually wrote the simulator):
    Opinions ? Any secret trick up GCC's sleeves to solve this issue ? What about ARM intrinsics ?

    Cheers, Magic Sam
     
  4. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    7,539
    Location:
    France, near Lyon
    Use boost multiprecision maybe?
    http://www.boost.org/doc/libs/1_57_...ml/boost_multiprecision/tut/ints/cpp_int.html

    With cpp magic of overloaded operator, it might even be plug'n play?
     
  5. levi

    levi Still fresh, damnit!

    Joined:
    Oct 6, 2008
    Messages:
    7,527
    Location:
    Somewhere off the coast of the EU
    Yes, I recall some issue with the way GCC defines longs and so on on ARM causing problems. I forget if NEON on the OMAP3 has 128-bit registers, but that might be worth investigating. Using NEON is pretty much the antithesis of a 'straight port' though, so I could understand if you'd prefer something that can be done with writing a C++ class to wrap up a 128-bit type using 32-bit variables.

    Edit: Or using Boost's implementation, as Ptitseb ninja'd me with!
     
  6. Magic Sam

    Magic Sam Forever Homebrew

    Joined:
    Aug 10, 2007
    Messages:
    1,825
    Location:
    Ankh-Morpork
    Last edited: Jul 11, 2017
  7. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    7,539
    Location:
    France, near Lyon
    Well, GMP is what GCC use. It's certainly stable and precise, but for ease of use, I guess C++ with it's overloaded operator cannot be beaten (you just write stuff naturaly, like "int128_t a = b * 2;", and boost/c++ will apply the correct operators. with GMP, you will have to rewrite every mathematical operation using gmp functions.
     
  8. levi

    levi Still fresh, damnit!

    Joined:
    Oct 6, 2008
    Messages:
    7,527
    Location:
    Somewhere off the coast of the EU
    As far as I know there's nothing stopping you linking things built from C++ against things written in C. Though I've never tried it.
     
  9. Magic Sam

    Magic Sam Forever Homebrew

    Joined:
    Aug 10, 2007
    Messages:
    1,825
    Location:
    Ankh-Morpork
    Hi all :)

    @ptitSeb : I tried to compile (with cmake) clang 3.4 this afternoon, but failed miserably...

    I set CLANG_PATH_TO_LLVM_BUILD to /mnt/utmp/codeblocks/usr, but cmake complained that "include could not find load file: AddLLVM". Same error message for "TableGen".

    What did I do wrong ?

    @levi : I told the author about the boost multiprecision library, and he seemed concerned about it being C++, while his simulator is written in C...

    Cheers, Magic Sam

    P.S: on a side note, I compiled the simulator on my Debian 8 x86_64 box, installed the latest Multics release, booted the system then logged in from my Pandora over telnet ! That was really fun :)
     
  10. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    7,539
    Location:
    France, near Lyon
    You need to compile LLVM too. the minimum is llvm+clang. There is no proper llvm build in codeblocks (the llvm part in rust are static libs already linked to rust, so not useable).
    It would be better to not use libcxx, and try to use standard libstdc++ from the GNU suite if possible.
     
  11. Magic Sam

    Magic Sam Forever Homebrew

    Joined:
    Aug 10, 2007
    Messages:
    1,825
    Location:
    Ankh-Morpork
    Hi @ptitSeb :)

    OK, I thought LLVM was already part of Code::Blocks, sorry.

    I'll give it a new try ASAP !

    Cheers, Magic Sam
     

Share This Page

Loading...