<div dir="ltr">On an even closer inspection, the strip used currently on MacOS is actually XCode strip and not the one that comes with LLVM, do we already have an XCode check that can be piggybacked off at the moment?<div><br></div><div>best regards,</div><div>Julian</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 2, 2022 at 1:30 PM Julian Waters <<a href="mailto:tanksherman27@gmail.com">tanksherman27@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">After a quick reference through documentation, it appears that LLVM strip uses the exact same flags that gcc's strip uses, at least for the only 2 strip modes we use (--strip-debug, or shortened to just -g, and --strip-unneeded), meaning we can fortunately fold both into the same branch (The current -S option passed to LLVM is an alias for -g). Looks like the comment is also somewhat out of date too. Interestingly clang's --strip-unneeded could also be used in the Minimal configuration too, since right now the build system only supports it for Linux (Presumably since it assumes only gcc has a working strip that supports this option - On an unrelated note, I wonder if adding a configure option to run --strip-unneeded on all gcc and clang compiled JDKs outside of a Minimal build would be of any use?)<div><br></div><div>best regards,</div><div>Julian</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 2, 2022 at 1:02 AM <<a href="mailto:erik.joelsson@oracle.com" target="_blank">erik.joelsson@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

  
  <div>
    <div>On 7/27/22 7:46 PM, Julian Waters
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">What would be a good way to test for the strip
        executable? The easiest solution off the top of my head is to
        assume a particular compiler uses a particular strip, but that
        sounds a little too inflexible.
        <div><br>
        </div>
      </div>
    </blockquote>
    <p>Maybe assuming based on toolchain is good enough, it depends on
      how big the differences are between different tool variants. Maybe
      strip from llvm and gnu are similar enough that it doesn't matter?
      I haven't investigated so I don't know.</p>
    <p>To really probe, see examples of how we probe for compiler flags
      in flags.m4 FLAGS_C_COMPILER_CHECK_ARGUMENTS. We would need
      something similar for strip in that case. But as said, it might be
      overkill.</p>
    <p>In the case of strip, some toolchains (microsoft) doesn't even
      use it at all.</p>
    <p>/Erik<br>
    </p>
    <blockquote type="cite">
      <div dir="ltr">
        <div>best regards,</div>
        <div>Julian</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Wed, Jul 27, 2022 at 1:04
          AM <<a href="mailto:erik.joelsson@oracle.com" target="_blank">erik.joelsson@oracle.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I'm
          not very familiar with this, but it looks like clang/llvm does
          come <br>
          with its own strip utility, which would make this comment
          wrong.<br>
          <br>
          On Linux, it's likely common to find the gnu binutils strip on
          the path <br>
          even when trying to use clang to compile OpenJDK. Ideally we
          should <br>
          setup STRIPFLAGS based on probing the strip executable that
          was found.<br>
          <br>
          /Erik<br>
          <br>
          On 7/24/22 1:07 AM, Julian Waters wrote:<br>
          > Found something interesting in FLAGS_SETUP_STRIPFLAGS
          recently:<br>
          > ## Setup strip.<br>
          > # FIXME: should this really be per platform, or should it
          be per <br>
          > toolchain type?<br>
          > # strip is not provided by clang; so guessing platform
          makes most sense.<br>
          ><br>
          > STRIPFLAGS is set to -S after this for clang (or more
          accurately, when <br>
          > the OS being compiled for is MacOS), but STRIP for clang
          (Likely using <br>
          > the clang driver itself) doesn't seem to be set anywhere
          within make. <br>
          > The only place I can find it being set is in <br>
          > toolchain.m4, UTIL_LOOKUP_TOOLCHAIN_PROGS(STRIP, strip),
          when the OS <br>
          > that's being compiled for != windows. But if the comment
          that strip <br>
          > isn't available for clang is still correct and up to
          date, this <br>
          > doesn't seem right, considering Linux allows for
          compiling the JDK <br>
          > with clang as well, while -S is only set with MacOS, and
          the != <br>
          > windows check would also not work properly since it would
          still check <br>
          > for the regular strip utility even if the compiler was
          clang.<br>
          ><br>
          > best regards,<br>
          > Julian<br>
        </blockquote>
      </div>
    </blockquote>
  </div>

</blockquote></div>
</blockquote></div>