[LLVMdev] Anyone seen this before?
sabre at nondot.org
Fri Mar 11 07:49:46 PST 2005
On Fri, 11 Mar 2005, Markus F.X.J. Oberhumer wrote:
> Chris Lattner wrote:
>> On Thu, 10 Mar 2005, Andrew Lenharth wrote:
>>> yes, so this happens on anything that uses a struct for va_list (like
>>> alpha). I am currently working on fixing this. if you look at the last
>>> patch to the alpha portion of llvm-gcc, you can see a quick hack to work
>>> around that (aka, get it to compile), but the resultant compiler will
>>> have issues with varargs.
>> While Andrew is working on the real fix, here's the patch that hacked
>> around it for X86-64 (which went in after 1.4):
> Please note that this is not a hack but actually the correct solution to
> handle varargs for the llvm CFE.
I'm sorry, I did not mean to denigrate your patch. I don't think it's the
right long-term solution, because it makes the code generated by llvm-gcc
not match the target ABI (i.e. you can't pass a va_list from a piece of
code compiled by llvm to a piece of code compiled by GCC) on targets like
X86-64 and Alpha. This is what Andrew is working on fixing.
> And we will have to duplicate the complex gcc code for the AMD64 varargs
> calling convention if we ever decide to add support for native code
> generation (currently only -Wl,-native-cbe is supported).
>>> On Thu, 2005-03-10 at 19:25 -0700, Al Stone wrote:
>>>> So, I'm trying to build everything from source for the Debian
>>>> package for LLVM, including the C/C++ front end. I'm running
>>>> this build on LLVM 1.4 source (the released tarball), using
>>>> Debian unstable (gcc 3.3.5, on a 2.6.8 kernel, on an x86_64
>>>> box, dual CPU). Before I get _too_ deep into it, I thought I
>>>> would ask if the following compilation failure on the CFE
>>>> looks the least bit familiar to anyone:
>>>> -isystem /usr/lib/llvm/cfrontend/x86_64-unknown-linux-gnu/include
>>>> -isystem /usr/lib/llvm/cfrontend/x86_64-unknown-linux-gnu/sys-include -c
>>>> -DHAVE_CONFIG_H -O2 -O2 -I. -I../../../src/libiberty/../include -W
>>>> -Wall -Wtraditional -pedantic ../../../src/libiberty/concat.c -o
>>>> gccas: /tmp/ccl9eZIl.s:569: Can't load from pointer of non-first-class
>>>> make: *** [concat.o] Error 1
>>>> make: Leaving directory
>>>> make: *** [all-target-libiberty] Error 2
>>>> make: Leaving directory `/home/ahs3/llvm/llvm-1.4/cfrontend/build'
>>>> make: *** [stamp/build-stamp] Error 20
>>>> make: Leaving directory `/home/ahs3/llvm/llvm-1.4'
>>>> make: *** [install-arch] Error 2
>>>> If this isn't familiar, that's fine. That'll give me something to do
>>>> tomorrow :). Have I perhaps just built gccas incorrectly, or something
>>>> like that?
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev