Tanya Lattner
2008-Mar-31 07:02 UTC
[LLVMdev] Compiling llvm-gcc on amd64 with 32 bits: assembler still carps
On Mar 30, 2008, at 11:22 PM, Joachim Durchholz wrote:> > Am Sonntag, den 30.03.2008, 15:45 -0700 schrieb Tanya Lattner: >> On Mar 30, 2008, at 12:39 PM, Joachim Durchholz wrote: >> >>> >>> Am Sonntag, den 30.03.2008, 10:28 -0700 schrieb Tanya Lattner: >>>> On Mar 30, 2008, at 10:07 AM, Joachim Durchholz wrote: >>>>> Look at how $LLVM_CONFIGURE is built, the final value is >>>>> >>>>> --prefix=/home/jo --enable-optimized --build=i686-pc-linux-gnu >>>>> --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu" >>>>> >>>> >>>> This looks likes its missing some stuff. Make sure the configure >>>> line >>>> is exactly as what is in README.LLVM. >>> >>> OK, I now have >>> >>> LLVM_VERSION_INFO=kurier-bootstrap /home/jo/llvm-gcc-src/configure >>> --prefix=/home/jo --enable-optimized --build=i686-pc-linux-gnu >>> --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu >>> --enable-llvm=/home/jo --enable-languages=c,c++ >>> >> >> Where have you built llvm? The enable-llvm dir should point to where >> you built llvm. > > The --prefix for LLVM and LLVM-GCC is the same, /home/jo. > IOW the LLVM binaries are in /home/jo/bin. > I'll try with --enable-llvm=/home/jo/bin today. >No, not where the binaries are, but I think it should point to where the libraries are. I don't usually do an install, so maybe someone else can comment on this. -Tanya>>> The --enable-llvm directory is the same as --prefix, I hope that's >>> right >>> (the actual binaries are in the 'bin' subdirectory). >>> >>> I don't think --enable-checking should be necessary, I had >>> llvm ./configure'd with --enable-optimized (I hope that's the same >>> as >>> specifying ENABLE_OPTIMIZED=1 during the 'make' run for LLVM >>> proper). >>> >> >> You have to build both a release build of LLVM and llvm-gcc or both >> debug. You can't mix. So if you did --enable-checking that Debug. SVN >> by default is debug. > > Yup, I'm aware of that. > I use the SVN sources, but apply --enable-optimized for both builds, > so > this should be OK. > > Regards, > Jo > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Joachim Durchholz
2008-Mar-31 08:54 UTC
[LLVMdev] Compiling llvm-gcc on amd64 with 32 bits: assembler still carps
Am Montag, den 31.03.2008, 00:02 -0700 schrieb Tanya Lattner:> On Mar 30, 2008, at 11:22 PM, Joachim Durchholz wrote: > > > Am Sonntag, den 30.03.2008, 15:45 -0700 schrieb Tanya Lattner: > >> On Mar 30, 2008, at 12:39 PM, Joachim Durchholz wrote: > >> > >>> OK, I now have > >>> > >>> LLVM_VERSION_INFO=kurier-bootstrap /home/jo/llvm-gcc-src/configure > >>> --prefix=/home/jo --enable-optimized --build=i686-pc-linux-gnu > >>> --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu > >>> --enable-llvm=/home/jo --enable-languages=c,c++ > >> > >> Where have you built llvm? The enable-llvm dir should point to where > >> you built llvm. > > > > The --prefix for LLVM and LLVM-GCC is the same, /home/jo. > > IOW the LLVM binaries are in /home/jo/bin. > > I'll try with --enable-llvm=/home/jo/bin today.> No, not where the binaries are, but I think it should point to where > the libraries are. I don't usually do an install, so maybe someone > else can comment on this.Saying --enable-llvm=/home/jo/lib or --enable-llvm=/home/jo/bin gives me ... checking for valgrind.h... (cached) no checking for dsymutil... no dsymutil is not available checking for dsymutil... no dsymutil is not available configure: error: You must specify valid path to your LLVM tree with --enable-llvm=DIR quite early in 'make'. --enable-llvm=/home/jo does a lot more work before it finally hits the assembler problems. So I conclude that --enable-llvm should point to wherever --prefix pointed when LLVM was built, and the assembler problem have some other source. Regards, Jo
Joachim Durchholz
2008-Apr-01 08:06 UTC
[LLVMdev] Compiling llvm-gcc on amd64 with 32 bits: assembler still carps
*bump* Anybody got a clue? I can post a full transcript of a shell session that reproduces the error if that helps. To reiterate the original problem: I'm trying to compile LLVM-GCC on an Ubuntu 64-bit box, with a 32-bit target (to avoid potential problems with PIC and such). I get errors like Error: suffix or operands invalid for `push' as soon as the make process tries to assemble anything; the surface cause of the problem is that it's calling the preinstalled GNU assembler but not telling it to emit 32-bit code. (The root cause may be that the --build, --host and --target options are mishandled somewhere. This hypothesis is supported by the fact that you need to specify all three even though normally, specifying just --build should be enough, but unfortunately, I don't know enough about the automake machinery to verify or falsify it.) Regards, Jo -- snip -- Am Montag, den 31.03.2008, 00:02 -0700 schrieb Tanya Lattner:> On Mar 30, 2008, at 11:22 PM, Joachim Durchholz wrote: > > > Am Sonntag, den 30.03.2008, 15:45 -0700 schrieb Tanya Lattner: > >> On Mar 30, 2008, at 12:39 PM, Joachim Durchholz wrote: > >> > >>> OK, I now have > >>> > >>> LLVM_VERSION_INFO=kurier-bootstrap /home/jo/llvm-gcc-src/configure > >>> --prefix=/home/jo --enable-optimized --build=i686-pc-linux-gnu > >>> --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu > >>> --enable-llvm=/home/jo --enable-languages=c,c++ > >> > >> Where have you built llvm? The enable-llvm dir should point to where > >> you built llvm. > > > > The --prefix for LLVM and LLVM-GCC is the same, /home/jo. > > IOW the LLVM binaries are in /home/jo/bin. > > I'll try with --enable-llvm=/home/jo/bin today. > > No, not where the binaries are, but I think it should point to where > the libraries are. I don't usually do an install, so maybe someone > else can comment on this.Saying --enable-llvm=/home/jo/lib or --enable-llvm=/home/jo/bin gives me ... checking for valgrind.h... (cached) no checking for dsymutil... no dsymutil is not available checking for dsymutil... no dsymutil is not available configure: error: You must specify valid path to your LLVM tree with --enable-llvm=DIR quite early in 'make'. --enable-llvm=/home/jo does a lot more work before it finally hits the assembler problems. So I conclude that --enable-llvm should point to wherever --prefix pointed when LLVM was built, and the assembler problem have some other source. Regards, Jo
Apparently Analagous Threads
- [LLVMdev] Compiling llvm-gcc on amd64 with 32 bits: assembler still carps
- [LLVMdev] Compiling llvm-gcc on amd64 with 32 bits: assembler still carps
- [LLVMdev] Compiling llvm-gcc on amd64 with 32 bits: assembler still carps
- [LLVMdev] Compiling llvm-gcc on amd64 with 32 bits: assembler still carps
- [LLVMdev] Compiling llvm-gcc on amd64 with 32 bits: assembler still carps