[External] : Re: Where is STRIP set for clang?
Julian Waters
tanksherman27 at gmail.com
Fri Aug 26 10:28:51 UTC 2022
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?
best regards,
Julian
On Tue, Aug 2, 2022 at 1:30 PM Julian Waters <tanksherman27 at gmail.com>
wrote:
> 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?)
>
> best regards,
> Julian
>
> On Tue, Aug 2, 2022 at 1:02 AM <erik.joelsson at oracle.com> wrote:
>
>> On 7/27/22 7:46 PM, Julian Waters wrote:
>>
>> 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.
>>
>> 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.
>>
>> 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.
>>
>> In the case of strip, some toolchains (microsoft) doesn't even use it at
>> all.
>>
>> /Erik
>>
>> best regards,
>> Julian
>>
>> On Wed, Jul 27, 2022 at 1:04 AM <erik.joelsson at oracle.com> wrote:
>>
>>> I'm not very familiar with this, but it looks like clang/llvm does come
>>> with its own strip utility, which would make this comment wrong.
>>>
>>> On Linux, it's likely common to find the gnu binutils strip on the path
>>> even when trying to use clang to compile OpenJDK. Ideally we should
>>> setup STRIPFLAGS based on probing the strip executable that was found.
>>>
>>> /Erik
>>>
>>> On 7/24/22 1:07 AM, Julian Waters wrote:
>>> > Found something interesting in FLAGS_SETUP_STRIPFLAGS recently:
>>> > ## Setup strip.
>>> > # FIXME: should this really be per platform, or should it be per
>>> > toolchain type?
>>> > # strip is not provided by clang; so guessing platform makes most
>>> sense.
>>> >
>>> > STRIPFLAGS is set to -S after this for clang (or more accurately, when
>>> > the OS being compiled for is MacOS), but STRIP for clang (Likely using
>>> > the clang driver itself) doesn't seem to be set anywhere within make.
>>> > The only place I can find it being set is in
>>> > toolchain.m4, UTIL_LOOKUP_TOOLCHAIN_PROGS(STRIP, strip), when the OS
>>> > that's being compiled for != windows. But if the comment that strip
>>> > isn't available for clang is still correct and up to date, this
>>> > doesn't seem right, considering Linux allows for compiling the JDK
>>> > with clang as well, while -S is only set with MacOS, and the !=
>>> > windows check would also not work properly since it would still check
>>> > for the regular strip utility even if the compiler was clang.
>>> >
>>> > best regards,
>>> > Julian
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/build-dev/attachments/20220826/211780d7/attachment.htm>
More information about the build-dev
mailing list