<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>I am doing something similar to what you are doing, see below....<br>
    </p>
    <p>I also needed to create a softlink so that fpc can call
      ppcrossarm, it expects to call ppcarm<br>
    </p>
    <p>By using 'INSTALL_UNITDIR' there is no need to copy files at the
      end.</p>
    <p>You will need to do a little tweak in fpc.cfg, after this it is
      transparent to handle the different subarchs, at least for arm and
      mipsel ;-)</p>
    Now I can use fpc to select matching arch/subarch and Lazarus works
    just fine. <br>
    <p>Michael<br>
    </p>
    <p>fpc-cfg change:<br>
    </p>
    <p># searchpath for units and other system dependent things<br>
      #ifdef embedded<br>
      -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/$fpcsubarch<br>
      -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/$fpcsubarch/*<br>
      -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/$fpcsubarch/rtl<br>
      #else<br>
      -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget<br>
      -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/*<br>
      -Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/rtl<br>
      #endif<br>
    </p>
    <p>--- snip</p>
    <p>Buildscript:<br>
    </p>
    <p>  CROSSOPT="-O1 -gw2 -dDEBUG"<br>
        #CROSSOPT="-O1 -gw2 -dDEBUG -godwarfcpp"<br>
      <br>
        SUBARCH=armv6m<br>
        make clean buildbase CROSSINSTALL=1 OS_TARGET=embedded
      CPU_TARGET=arm SUBARCH=$SUBARCH CROSSOPT="$CROSSOPT"
      BINUTILSPREFIX=arm-none-eabi- || exit 1<br>
        make installbase CROSSINSTALL=1 OS_TARGET=embedded
      CPU_TARGET=arm SUBARCH=$SUBARCH CROSSOPT="$CROSSOPT"
      BINUTILSPREFIX=arm-none-eabi-
      INSTALL_UNITDIR=/usr/local/lib/fpc/3.1.1/units/arm-embedded/$SUBARCH/rtl
      || exit 1<br>
        #mv /usr/local/lib/fpc/3.1.1/ppcrossarm
      /usr/local/lib/fpc/3.1.1/ppcrossarm-$SUBARCH<br>
      <br>
        SUBARCH=armv7m<br>
        make clean buildbase CROSSINSTALL=1 OS_TARGET=embedded
      CPU_TARGET=arm SUBARCH=$SUBARCH CROSSOPT="$CROSSOPT"
      BINUTILSPREFIX=arm-none-eabi- || exit 1<br>
        make installbase CROSSINSTALL=1 OS_TARGET=embedded
      CPU_TARGET=arm SUBARCH=$SUBARCH CROSSOPT="$CROSSOPT"
      BINUTILSPREFIX=arm-none-eabi-
      INSTALL_UNITDIR=/usr/local/lib/fpc/3.1.1/units/arm-embedded/$SUBARCH/rtl
      || exit 1<br>
        #mv /usr/local/lib/fpc/3.1.1/ppcrossarm
      /usr/local/lib/fpc/3.1.1/ppcrossarm-$SUBARCH<br>
      <br>
        SUBARCH=armv7em<br>
        make clean buildbase CROSSINSTALL=1 OS_TARGET=embedded
      CPU_TARGET=arm SUBARCH=$SUBARCH CROSSOPT="$CROSSOPT"
      BINUTILSPREFIX=arm-none-eabi- || exit 1<br>
        make installbase CROSSINSTALL=1 OS_TARGET=embedded
      CPU_TARGET=arm SUBARCH=$SUBARCH CROSSOPT="$CROSSOPT"
      BINUTILSPREFIX=arm-none-eabi-
      INSTALL_UNITDIR=/usr/local/lib/fpc/3.1.1/units/arm-embedded/$SUBARCH/rtl
      || exit 1<br>
        #cp /usr/local/lib/fpc/3.1.1/ppcrossarm
      /usr/local/lib/fpc/3.1.1/ppcrossarm-$SUBARCH<br>
        ln -sf /usr/local/lib/fpc/3.1.1/ppcrossarm /usr/local/bin/ppcarm</p>
    <p><br>
    </p>
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">Am 22.02.18 um 21:35 schrieb Christo:<br>
    </div>
    <blockquote type="cite"
      cite="mid:1519331740.16176.51.camel@gmail.com">
      <pre wrap="">On Mon, 2017-12-04 at 08:22 +0100, Michael Ring wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Hi Florian!

I would like to work on this patch, can you share it with me?

Thank you,

Michael


Am 03.12.17 um 19:05 schrieb Florian Klämpfl:
</pre>
        <blockquote type="cite">
          <pre wrap="">
Am 29.11.2017 um 06:36 schrieb Christo:
</pre>
          <blockquote type="cite">
            <pre wrap="">
On Sun, 2017-11-26 at 17:19 +0100, Michael Ring wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="">
I am looking for an easy way to have all cortex-m compilers available
at the same time to be able to do automated building/testing
</pre>
            </blockquote>
            <pre wrap="">There is a similar problem with the AVR target having several
subarchitectures.  One option I think is to have a subarch defined by
the compiler, then it would be easy to lay out the compiled unit
structure in fpc.cfg according to subarch.  I've made an attempt at
adding a subarch define to my local compiler source for AVR, but
haven't developed the idea further.  I'm not a compiler dev so there
may be better options.
</pre>
          </blockquote>
          <pre wrap="">Subarch directories are imo the best solution, I have a half-backen patch for this, not yet
finished
though.
</pre>
        </blockquote>
      </blockquote>
      <pre wrap="">
I've made a script file (attached) that iterates through the different subarchitectures
available for the AVR compiler, calls make and then moves the compiled units to a subdirectory.
I think the logic of this script should be moved to the existing rtl makefile so that all
subarchitectures for a target gets generated and sorted in one go.  Of course then the default
fpc.cfg ideally needs to be updated to reflect the subarch folder structure for ARM and AVR.

I'm putting this out there hoping that someone familiar with the topic and makefile syntax can
help with a patch for FPC.</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
fpc-pascal maillist  -  <a class="moz-txt-link-abbreviated" href="mailto:fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal</a></pre>
    </blockquote>
    <br>
  </body>
</html>