Dear llvmdev,
I am new to LLVM , but have a task on writing a LLVM backend to generate some architecture specific assembly file.
Here is my cygwin build setting: GCC 3.4.4 , BIN UTILITY 2.15 ,and all other packages of the right version listed on the LLVM Getting Started doc.
I have successfully built Release 1.6 LLVM. All the tools has been installed there /usr/local/bin .
But I have problem with building LLVM-Cfrontend that comes with this Release.
CFrontend build stopped after these lines
I don't really know anything about the cygwin port, but can you try LLVM 1.7? 1.6 is quite old by now...
-Chris
Chris Lattner <sabre <at> nondot.org> writes:
> Deeply confused now. Anyone coming for help?
I don't really know anything about the cygwin port, but can you try LLVM
1.7? 1.6 is quite old by now...-Chris
I tried 1.7 version llvm, but the result is even worse, I cannot build llvm
now.
Hello, Chuck.
You wrote Tuesday, May 16, 2006, 6:03:14 PM:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: BFD
2.16.91
20050610 assertion fail
/netrel/src/binutils-20050610-1/bfd/cofflink.c:1926
make[2]: ***
This is a bug in binutils also seen in mingw32 build.
I've sent bug report to binutils bugzilla this weekend.
Hope, this will be fixed sometimes.
As for me, CVS checkout of 8 of May was compiled without
any problems (latest CVS snapshot triggers an assertion).
Hello, Chuck.
You wrote Tuesday, May 16, 2006, 6:03:14 PM:
/netrel/src/binutils-20050610-1/bfd/cofflink.c:1926
make[2]: ***
I've tracked this assertion some more deep. The problem is in
LLVMSelectionDAG.o file.
If I run the next lines, I've got and assertion:
ld -r -o LLVMSelectionDAG.o ScheduleDAGList.o ScheduleDAGRRList.o
ld -o llc LLVMSelectionDAG.o
If I remove one of the SheduleDAG* files from the full list of objects,
LLVMSelectionDAG.o is built from, the assertion is not longer
triggered.
Any ideas, why? I think, there is duplicate symbols somewhere, but I'm
not sure.
What does the assertion say?
Hello, Reid.
You wrote Tuesday, May 16, 2006, 11:13:19 PM:
What does the assertion say?
The same text, as in the original e-mail:
<=cut=>
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld:
BFD 2.16.91 20050610 assertion fail /netrel/src/binutils-20050610-1/bfd/cofflink.c:1926
<=cut=>
This assertions is in big function named:
bfd_boolean
_bfd_coff_link_input_bfd (struct coff_final_link_info *finfo, bfd *input_bfd)
The text around assertion:
h = NULL;
if (*indexp < 0)
{
h = *sym_hash;
/* The m68k-motorola-sysv assembler will sometimes
generate two symbols with the same name, but only one
will have aux entries. */
BFD_ASSERT (isymp->n_numaux == 0
>> h->numaux == isymp->n_numaux);
}
Hello, Chuck.
You wrote Tuesday, May 16, 2006, 6:03:14 PM:
I shall skip llc and have another try.
The cheap workaround is to use .a files instead of relinked .o. If you
want, I can send patch.