On Tue, Jul 20, 2010 at 8:49 AM, Rafael Espindola <espindola at google.com>wrote:> > export PATH="$LLVMPREFIX/bin:$LLVMGCCPREFIX/bin:$PATH" > > export CC="llvm-gcc -use-gold-plugin -Wl,-plugin-opt=also-emit-llvm" > > export CXX="llvm-g++ -use-gold-plugin -Wl,-plugin-opt=also-emit-llvm" > > export RANLIB=/bin/true > > export CFLAGS="-O4 -g" > > > > then configure, make, and then hit the error. > > > > The error only happens if the CFLAGS has -g in it. > > Can you reduce the testcase a bit? It would be a lot easier to > reproduce with the ld invocation and the .o files given to it. > > All the .o files are in the tarball. You can download it here (too large tosend through the list): http://pages.cs.wisc.edu/~aliang/goldAndDebugTest.tar.gz The command is: llvm-gcc -use-gold-plugin -Wl,-plugin-opt=also-emit- llvm -g -O4 -o flex ccl.o dfa.o ecs.o scanflags.o gen.o main.o misc.o nfa.o parse.o scan.o skel.o sym.o tblcmp.o yylex.o options.o scanopt.o buf.o tables.o tables_shared.o filter.o regex.o -lm Then I got: $ llvm-gcc -use-gold-plugin -Wl,-plugin-opt=also-emit-llvm -g -O4 -o flex ccl.o dfa.o ecs.o scanflags.o gen.o main.o misc.o nfa.o parse.o scan.o skel.o sym.o tblcmp.o yylex.o options.o scanopt.o buf.o tables.o tables_shared.o filter.o regex.o -lm collect2: ld terminated with signal 6 [Aborted] /local.toadette/aliang/packages/llvm-2.7/llvm-gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/bin/ld: error: buf.o:1:1: invalid character Unknown constant! UNREACHABLE executed at /local.toadette/aliang/fixing/llvm-2.7/llvm-2.7/lib/Bitcode/Writer/BitcodeWriter.cpp:895! I do not know how to get the ld invocation you need. If this command is not what you need, please tell me how to get the ld invocation. Thanks, Guoliang -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100720/7ae4949b/attachment.html>
On 7/20/2010 12:48 PM, Jin Guoliang wrote:> > > On Tue, Jul 20, 2010 at 8:49 AM, Rafael Espindola > <espindola at google.com <mailto:espindola at google.com>> wrote: > > > export PATH="$LLVMPREFIX/bin:$LLVMGCCPREFIX/bin:$PATH" > > export CC="llvm-gcc -use-gold-plugin -Wl,-plugin-opt=also-emit-llvm" > > export CXX="llvm-g++ -use-gold-plugin > -Wl,-plugin-opt=also-emit-llvm" > > export RANLIB=/bin/true > > export CFLAGS="-O4 -g" > > > > then configure, make, and then hit the error. > > > > The error only happens if the CFLAGS has -g in it. > > Can you reduce the testcase a bit? It would be a lot easier to > reproduce with the ld invocation and the .o files given to it. > > All the .o files are in the tarball. You can download it here (too > large to send through the list): > http://pages.cs.wisc.edu/~aliang/goldAndDebugTest.tar.gz > <http://pages.cs.wisc.edu/%7Ealiang/goldAndDebugTest.tar.gz> > > The command is: > llvm-gcc -use-gold-plugin -Wl,-plugin-opt=also-emit- > llvm -g -O4 -o flex ccl.o dfa.o ecs.o scanflags.o gen.o main.o > misc.o nfa.o parse.o scan.o skel.o sym.o tblcmp.o yylex.o options.o > scanopt.o buf.o tables.o tables_shared.o filter.o regex.o -lm > Then I got: > $ llvm-gcc -use-gold-plugin -Wl,-plugin-opt=also-emit-llvm -g -O4 > -o flex ccl.o dfa.o ecs.o scanflags.o gen.o main.o misc.o nfa.o > parse.o scan.o skel.o sym.o tblcmp.o yylex.o options.o scanopt.o buf.o > tables.o tables_shared.o filter.o regex.o -lm > collect2: ld terminated with signal 6 [Aborted] > /local.toadette/aliang/packages/llvm-2.7/llvm-gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/bin/ld: > error: buf.o:1:1: invalid character > > Unknown constant! > UNREACHABLE executed at > /local.toadette/aliang/fixing/llvm-2.7/llvm-2.7/lib/Bitcode/Writer/BitcodeWriter.cpp:895! > > I do not know how to get the ld invocation you need. If this command > is not what you need, please tell me how to get the ld invocation. >Do you need something else from me to reproduce this? Thanks, Guoliang -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100721/529db42e/attachment.html>
> All the .o files are in the tarball. You can download it here (too large to > send through the list): > http://pages.cs.wisc.edu/~aliang/goldAndDebugTest.tar.gzThere is also something strange with these files, buf.o is actually a .tar.gz file :-)> > Thanks, > Guoliang >Cheers, -- Rafael Ávila de Espíndola
On 7/21/2010 1:59 PM, Rafael Espindola wrote:>> I do not know how to get the ld invocation you need. If this command is not >> what you need, please tell me how to get the ld invocation. > Add -Wl,-debug to the llvm-gcc call. That should print the ld command > line in the end./local.toadette/aliang/packages/llvm-2.7/llvm-gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/bin/ld -plugin /local.toadette/aliang/packages/llvm-2.7/llvm-gcc/libexec/gcc/i686-pc-linux-gnu/4.2.1/libLLVMgold.so -plugin-opt=as=/local.toadette/aliang/packages/llvm-2.7/llvm-gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/bin/as --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o flex /usr/lib/crt1.o /usr/lib/crti.o /local.toadette/aliang/packages/llvm-2.7/llvm-gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/crtbegin.o -L/local.toadette/aliang/packages/llvm-2.7/llvm-gcc/lib/gcc/i686-pc-linux-gnu/4.2.1 -L/local.toadette/aliang/packages/llvm-2.7/llvm-gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/../../.. -plugin-opt=also-emit-llvm ccl.o dfa.o ecs.o scanflags.o gen.o main.o misc.o nfa.o parse.o scan.o skel.o sym.o tblcmp.o yylex.o options.o scanopt.o buf.o tables.o tables_shared.o filter.o regex.o -lm -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /local.toadette/aliang/packages/llvm-2.7/llvm-gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/crtend.o /usr/lib/crtn.o>> http://pages.cs.wisc.edu/~aliang/goldAndDebugTest.tar.gz > There is also something strange with these files, buf.o is actually a > .tar.gz file :-)Updated. Sorry about that. Thanks, Guoliang