[libunwind] __ELF__ macro for arm-none-eabi

Hi,

I'm building libunwind for ARM baremetal using clang.
I notice that __ELF__ is used in libunwind and the macro is only defined for Linux target on ARM.
Should we also predefine that for arm-none-eabi target?
I have the patch in draft but not sure if this is the right way to do.

Thanks,
Weiming

Do you mean in Clang's ARMTargetInfo::getTargetDefines() ?

I think so. I'm actually surprised it doesn't.

Copying Bradley and Silviu, as they were working on ACLE pre-processor
logic recently.

cheers,
--renato

This doesn't look like something ACLE specific (I can't find it in the ACLE doc).

This seems to be a generic macro. I think it would make sense to define it
if we know we're emitting ELF.

Cheers,
Silviu

This doesn't look like something ACLE specific (I can't find it in the ACLE doc).

Sorry, I didn't mean it was ACLE, only that you guys were fiddling
with macros. :slight_smile:

This seems to be a generic macro. I think it would make sense to define it
if we know we're emitting ELF.

Since the EABI only mentions ELF format, and we even have an ELF EABI,
wouldn't it make sense to assume the format is ELF when we select
EABI? I mean, we emit ELF on EABI anyway...

GCC does the same, if that's any argument. :slight_smile:

cheers,
--renato

From: Renato Golin [mailto:renato.golin@linaro.org]
Sent: 18 April 2016 16:23
To: Silviu Baranga
Cc: Zhao, Weiming; cfe-dev@lists.llvm.org Developers; LLVM Dev; Bradley
Smith
Subject: Re: [cfe-dev] [libunwind] __ELF__ macro for arm-none-eabi

> This doesn't look like something ACLE specific (I can't find it in the ACLE
doc).

Sorry, I didn't mean it was ACLE, only that you guys were fiddling with
macros. :slight_smile:

Sure :slight_smile:

> This seems to be a generic macro. I think it would make sense to
> define it if we know we're emitting ELF.

Since the EABI only mentions ELF format, and we even have an ELF EABI,
wouldn't it make sense to assume the format is ELF when we select EABI? I
mean, we emit ELF on EABI anyway...

GCC does the same, if that's any argument. :slight_smile:

Doing a grep "eabi" * -R | grep darwin in llvm I found the test divmod-eabi.ll
which uses the triple armv7-apple-darwin-eabi. What format does that have?

We can find an thumbv7-apple-darwin-eabi target in compiler-rt as well (not in the tests).

Cheers,
Silviu

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

Certainly not ELF. :slight_smile:

But I didn't mean "has eabi on triple", but "is in none-eabi mode",
which may have to check a few more Triple properties.

For all the others (Linux, BSD), the __ELF__ is already being correctly emitted.

cheers,
--renato

From: Renato Golin [mailto:renato.golin@linaro.org]
Sent: 18 April 2016 16:53
To: Silviu Baranga
Cc: Zhao, Weiming; cfe-dev@lists.llvm.org Developers; LLVM Dev; Bradley
Smith; Saleem Abdulrasool; David Chisnall
Subject: Re: [cfe-dev] [libunwind] __ELF__ macro for arm-none-eabi

> Doing a grep "eabi" * -R | grep darwin in llvm I found the test
> divmod-eabi.ll which uses the triple armv7-apple-darwin-eabi. What format
does that have?

Certainly not ELF. :slight_smile:

But I didn't mean "has eabi on triple", but "is in none-eabi mode", which may
have to check a few more Triple properties.

For all the others (Linux, BSD), the __ELF__ is already being correctly
emitted.

Ok, that makes sense.

Cheers,
Silviu

cheers,
--renato

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

Is checking if OS is unknown and ABI is EABI sufficient?
I did that in http://reviews.llvm.org/D19225
Please help to review.

Thanks,
Weiming

That's what I was thinking about, yes...

--renato