[LLVMdev] How do I disable --version-script when cross compiling clang/LLVM on a Mac?
Alp Toker
alp at nuanti.com
Sat Dec 21 20:37:32 PST 2013
On 22/12/2013 01:33, Richard Pennington wrote:
> On 12/21/2013 05:21 PM, Alp Toker wrote:
>>
>> On 21/12/2013 22:51, Richard Pennington wrote:
>>> Hi,
>>>
>>> I asked this question a few days ago and didn't get any responses. I
>>> thought I'd try again with a little more detail.
>>>
>>> I am trying to cross compile my clang/LLVM based ELLCC cross
>>> development tools project (http://ellcc.org)
>>
>> Hi Richard,
>>
>> Nobody replied because your question lacks immediate relevance to
>> this mailing list.
>>
>> You may have more luck if you pose your question in a way that
>> relates to, and can be tried using stock LLVM/clang.
>>
>> If you think there's a bug, you can also file a bug report at
>> http://llvm.org/bugs/ including the steps needed to reproduce the issue.
>>
>> Feel free to CC me in, hope we can set you in the right direction.
>>
>> Alp.
>>
> Hi Alp,
>
> I hope you don't think I was whining about the lack of response, I
> wasn't. This list has always been extremely helpful. I understand that
> my use case is a bit out the norm.
>
> I was just hoping that someone more familiar with the clang/LLVM cross
> build rules might be able to shed a little insight. I suspect that
> there aren't too many people using clang/LLVM to cross build for Linux
> on a Mac. The normal cross build on a Linux box for another Linux
> target works just fine.
That last bit gave a better idea of what you're aiming for. I think I
wasn't the only one confused by the original mail as it takes a stretch
of the imagination for those not using your toolchain(!)
You'll have to test this yourself, but assuming you're on the Makefile
build system and already set up correctly for a cross-compile, this
might be the cause:
The variable HAVE_LINK_VERSION_SCRIPT determines how the linker is
called, and is detected at configure time by autoconf/m4/link_options.m4.
Some of the Makefile.rules files have an additional ifeq
($(HOST_OS),Darwin) check surrounding use of that flag.
That check may be confusing the host and target platforms when building
up linker flags, and if so you've found a corner-case bug in the build
system. I'd suggest hard-coding values in a few of those places to see
if you can get the right flags passed depending on whether a host or
target binary is getting built.
Alp.
--
http://www.nuanti.com
the browser experts
More information about the llvm-dev
mailing list