Menu

#502 MetaMake doesnt build things in the same order.

general
closed-wont-fix
None
5
2017-04-20
2016-02-08
Kalamatee
No

MetaMake doesnt create dependancies consistantly across systems, due to the fact it parses mmakefile.src's in the order the filesystem provides them. This results in some targets being ordered differently if the directory the mmakefile.src resides in is newer than directories before it - and in some cases prevents AROS building due to headers not yet being created/copied.

For consistancy, MetaMake should try to always parse directories in the same order on all platforms.

Related

Bugs: #502

Discussion

  • Staf Verhaegen

    Staf Verhaegen - 2016-02-08

    I disagree, if something has to be build before something else there should be an explicit dependency. I'd rather make a randomize switch to mmake that shuffles independent metatargets before building and enable that for nightly builds.

     

    Last edit: Staf Verhaegen 2016-02-08
    • Nick Andrews

      Nick Andrews - 2016-02-08

      On 8 February 2016 at 19:20, Staf Verhaegen verhaegs@users.sf.net wrote:

      I disagree, if something has to be build before something else there
      should be an explicit dependency. I'd rather make a randomize switch to
      mmake that shuffles independent targets before building and enable that for
      nightly builds.

      Because? What benefit do you see having random behaviour between systems?
      And what about all the people who have problems they cant understand
      because of the wrong behaviour? don't get me wrong - I agree things need to
      have the correct rules, but having insistencies between builds on systems
      is not a benefit imho.

      P.s. - saying "i want to do it different" for no good reason, or with no
      reasoning isn't a valid objection imho.

       
  • Staf Verhaegen

    Staf Verhaegen - 2016-02-08

    Call it the enforcer option for metamake; like Enforcer brought forward wrong page accesses hidden on non-MMU machines this option will bring forward incomplete dependencies.
    Basically depending on implicit order will break when we make metamake itself multithreaded like problems that had to be fixed when we started calling make from metamake with multithreading enabled.
    Second reason is that I (if I eventually work on AROS again) want to modularize the source code tree so people can only check out the parts they are working on and then the parsing will also differ from machine to machine by definition.
    I do agree there is big room for improvement of visualizing and debugging the metamake dependencies, but this is another feature request.

     

    Last edit: Staf Verhaegen 2016-02-08
    • Nick Andrews

      Nick Andrews - 2016-02-09

      On Monday, 8 February 2016, Staf Verhaegen verhaegs@users.sf.net wrote:

      Call it the enforcer option for metamake; like Enforcer brought forward
      wrong page accesses hidden on non-MMU machines this option will bring
      forward incomplete dependencies.

      The problem is it doesn't/won't. The failures are random and generally for
      people who have no idea why AROS fails to build/no knowledge on how to
      diagnose or fix it. IMHO ideas such as this are counter productive and
      serve to put people off AROS (I'm aware of many people who cannot build
      AROS because of this and haven't been able to for years, and because no one
      is able to replicate it it is never fixed)

      Basically depending on implicit order will break when we make metamake
      itself multithreaded like problems that had to be fixed when we started
      calling make from metamake with multithreading enabled.

      Well when you do that you can fix all the breakages. I personally see no
      real benefit to this, especially since it would only benefit the initial
      directory scanning (and therefore have a negligible impact on the overall
      build cycle)

      I do agree there is big room for improvement of visualizing and debugging
      the metamake dependencies, but this is another feature request.

      Indeed that is something completely seperate.


      Status: open
      Group: general
      Created: Mon Feb 08, 2016 02:03 PM UTC by Kalamatee
      Last Updated: Mon Feb 08, 2016 07:20 PM UTC
      Owner: nobody

      MetaMake doesnt create dependancies consistantly across systems, due to
      the fact it parses mmakefile.src's in the order the filesystem provides
      them. This results in some targets being ordered differently if the
      directory the mmakefile.src resides in is newer than directories before it
      - and in some cases prevents AROS building due to headers not yet being
      created/copied.

      For consistancy, MetaMake should try to always parse directories in the
      same order on all platforms.


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/aros/bugs/502/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       

      Related

      Bugs: #502

  • Kalamatee

    Kalamatee - 2017-04-20
    • status: open --> closed-wont-fix
    • assigned_to: Nick Andrews
     

Log in to post a comment.

MongoDB Logo MongoDB