llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
29.03k stars 11.97k forks source link

Weak aliases are not supported on MacOS X #11488

Open llvmbot opened 13 years ago

llvmbot commented 13 years ago
Bugzilla Link 11116
Version trunk
OS MacOS X
Reporter LLVM Bugzilla Contributor
CC @efriedma-quic,@kopinions

Extended Description

When compiling the following (simplified) code fragment:

int get_value(int value) { return value; }

int get_value_alias(int *high) attribute ((weak, alias ("get_value")));

for MacOS X, clang reports the following error:

% clang -ccc-host-triple i386-apple-darwin -c -o bug.o bug.c bug.c:6:54: error: only weak aliases are supported on darwin int get_value_alias(int *high) attribute ((weak, alias ("get_value")));

It would appear that clang does not support weak aliases on MacOS X (I asked on the cfe-dev list, but nobody suggested a solution). If it is not possible to support weak aliases for this target, I suggest changing the error message to indicate this fact.

efriedma-quic commented 13 years ago

I'm pretty sure what the error in question is trying to say is that we support weakref, but not any other kind of alias, due to limitations of MachO. It might be worth clarifying the error a bit.

CodingMarkus commented 1 year ago

Wow, this issue existed for over a decade. The compiler still claims that weak aliases aren't supported but when you use #pragma to define your weak aliases, it works and behaves as expected. See #71001