Einar Már Björgvinsson
2013-Feb-26 00:10 UTC
[LLVMdev] Cross compile LLVM using gcc (powerpc and x86)
Hi there,
I hope this is the right list.
I have been trying to cross compile the LLVM 3.2 for our x86 target by using
i586 cross compiler provided by Oselas toolchain
(http://www.pengutronix.de/oselas/toolchain/index_de.html).
I have cross-compiled multitudes of 3rd party projects before and usually I can
apply similar methods to compile the most of them.
I have however not been able to figure out exactly what is going on with this
one.
My settings:
----------------------------
./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include
--mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc
--localstatedir=/var --libexecdir=${prefix}/lib/llvm --disable-maintainer-mode
--disable-dependency-tracking --host=i586-unknown-linux-gnu
--target=i586-unknown-linux-gnu
--with-gcc-toolchain=/opt/pluto-targets/i386-rootfs//usr/bin
--with-default-sysroot --with-gnu-ld=i586-unknown-linux-gnu-ld
--with-gnu-as=i586-unknown-linux-gnu-as --with-gnu-ar=i586-unknown-linux-gnu-ar
--disable-bootstrap -disable-optimized --disable-multilib --enable-checking
--disable-shared --enable-languages=c,c++
XPATH=/opt/pluto-targets/i386-rootfs/
CROSS=i586-unknown-linux-gnu
export LDFLAGS := --sysroot=$(XPATH) -L$(XPATH)/lib -L$(XPATH)/usr/lib
-L$(XPATH)/usr/local/lib -L/lib -L/usr/lib
export CFLAGS := --sysroot=$(XPATH) -I=/include -I=/usr/include
-I=/usr/local/include
export CPPFLAGS := $(CFLAGS)
export CXXFLAGS := $(CFLAGS)
#export LDFLAGS := -L$(XPATH)/lib -L$(XPATH)/usr/lib -L$(XPATH)/usr/local/lib
#export CFLAGS := -I=$(XPATH)/include -I=$(XPATH)/usr/include
-I=$(XPATH)/usr/local/include
export CC := $(CROSS)-gcc
export CXX := $(CROSS)-g++
export LIBTOOL := $(CROSS)-libtool
----------------------------
I haven't manage to get passed the configure stage since on of the conftests
keeps failing like:
----------------------------
configure:4836: i686-linux-gnu-gcc -o conftest
--sysroot=/opt/pluto-targets/i386-rootfs/ -I=/include -I=/usr/include
-I=/usr/local/include --sysroot=/opt/pluto-targets/i386-rootfs/ -I=/include
-I=/usr/include -I=/usr/local/include --sysroot=/opt/pluto-targets/i386-rootfs/
-L/opt/pluto-targets/i386-rootfs//lib -L/opt/pluto-targets/i386-rootfs//usr/lib
-L/opt/pluto-targets/i386-rootfs//usr/local/lib -L/lib -L/usr/lib conftest.c
1>&5
/usr/bin/ld: cannot find /lib/libc.so.6 inside
/usr/bin/ld: cannot find /usr/lib/libc_nonshared.a inside
collect2: ld returned 1 exit status
configure:4839: $? = 1
configure:4848: error: installation or configuration problem: compiler cannot
create executables.
----------------------------
I can clearly see that it is looking for libc in /lib but should be in /usr/lib
and I haven't managed to control that.
I just wanted to send an email here before I start to hack it to much, hoping
for some replies on this.
Kind regards
Einar M. Bjorgvinsson
Embedded Software Engineer
Marel ehf
Iceland
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20130226/16477ad9/attachment.html>
Óscar Fuentes
2013-Feb-26 09:14 UTC
[LLVMdev] Cross compile LLVM using gcc (powerpc and x86)
Einar Már Björgvinsson <Einar.Bjorgvinsson at marel.com> writes: [snip]> I just wanted to send an email here before I start to hack it to much, > hoping for some replies on this.You can give a try to the CMake method: http://llvm.org/docs/CMake.html#cross-compiling