From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1206 invoked by alias); 10 Jun 2009 17:39:08 -0000 Received: (qmail 1188 invoked by uid 22791); 10 Jun 2009 17:39:06 -0000 X-SWARE-Spam-Status: No, hits=2.1 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from kuber.nabble.com (HELO kuber.nabble.com) (216.139.236.158) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 10 Jun 2009 17:38:59 +0000 Received: from isper.nabble.com ([192.168.236.156]) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1MERlI-0004i2-VW for java@gcc.gnu.org; Wed, 10 Jun 2009 10:38:56 -0700 Message-ID: <23967391.post@talk.nabble.com> Date: Wed, 10 Jun 2009 17:39:00 -0000 From: Eduardo Costa To: java@gcc.gnu.org Subject: Crosscompile of ecjx fails MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org X-SW-Source: 2009-06/txt/msg00037.txt.bz2 I'm doing a canadian cross with build=x86_64-linux, host=mingw32, target=arm-eabi. Everything is fine, except gcj. For some reason, when I compile ecjx, it uses "target" to compile ecjx.o and "host" to compile ecjx: $ make ecjx depbase=`echo ecjx.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; \ if arm-eabi-c++ -DHAVE_CONFIG_H -I. -I../../../../gcc-4.4.0/libjava -I./include -I./gcj -I../../../../gcc-4.4.0/libjava -Iinclude -I../../../../gcc-4.4.0/libjava/include -I../../../../gcc-4.4.0/libjava/classpath/include -Iclasspath/include -I../../../../gcc-4.4.0/libjava/classpath/native/fdlibm -I../../../../gcc-4.4.0/libjava/../boehm-gc/include -I../boehm-gc/include -I../../../../gcc-4.4.0/libjava/.././libjava/../gcc -I../../../../gcc-4.4.0/libjava/../zlib -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers -Wswitch-enum -D_FILE_OFFSET_BITS=64 -Wextra -Wall -D_GNU_SOURCE -DPREFIX="\"/home/ecosta/devkitpro/devkitARM\"" -DTOOLEXECLIBDIR="\"/home/ecosta/devkitpro/devkitARM/arm-eabi/lib\"" -DJAVA_HOME="\"/home/ecosta/devkitpro/devkitARM\"" -DBOOT_CLASS_PATH="\"/home/ecosta/devkitpro/devkitARM/share/java/libgcj-4.4.0.jar\"" -DJAVA_EXT_DIRS="\"/home/ecosta/devkitpro/devkitARM/share/java/ext\"" -DGCJ_ENDORSED_DIRS="\"/home/ecosta/devkitpro/devkitARM/share/java/gcj-endorsed\"" -DGCJ_VERSIONED_LIBDIR="\"/home/ecosta/devkitpro/devkitARM/lib/gcj-4.4.0-10\"" -DPATH_SEPARATOR="\":\"" -DECJ_JAR_FILE="\"/home/ecosta/devkitpro/devkitARM/libexec/ecj-4.3.jar\"" -DLIBGCJ_DEFAULT_DATABASE="\"/home/ecosta/devkitpro/devkitARM/lib/gcj-4.4.0-10/classmap.db\"" -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"gcj-4.4.0-10/classmap.db\"" -g -O2 -MT ecjx.o -MD -MP -MF "$depbase.Tpo" -c -o ecjx.o ../../../../gcc-4.4.0/libjava/ecjx.cc; \ then mv -f "$depbase.Tpo" "$depbase.Po"; else rm -f "$depbase.Tpo"; exit 1; fi mingw32-gcj -o ecjx -findirect-dispatch --main=org.eclipse.jdt.internal.compiler.batch.GCCMain ecjx.o /home/ecosta/cross/lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld: unknown architecture of input file `ecjx.o' is incompatible with i386 output collect2: ld returned 1 exit status make: *** [ecjx] Error 1 Shouldn't it use "mingw32-c++" and "mingw32-gcj"? Why it uses "arm-eabi-c++" instead? BTW, when I crosscompiled the mingw32 toolchain, I got the same problem (it uses "native-g++" to compile ecjx.o and "mingw32-gcj" to compile ecjx). This I solved by not compiling java... :) An ugly workaround is compile it with: make CXX=mingw-c++ ecjx It generates a windows executable (without the .exe extension) - nasty, but works... Configured with: CFLAGS_FOR_TARGET="-O2" ../gcc-*/configure \ --build=x86_64-redhat-linux --host=mingw32 --target=arm-eabi \ --prefix=/home/ecosta/cross --disable-nls \ --enable-languages=c,c++,objc,java \ --with-cpu=arm7tdmi\ --enable-interwork --disable-multilib \ --with-gcc --with-gnu-ld --with-gnu-as \ --disable-shared --disable-threads --disable-win32-registry --disable-nls --disable-debug \ --disable-libmudflap --disable-libssp --disable-libgomp \ --disable-libstdcxx-pch \ --enable-libgcj --disable-getenv-properties --disable-hash-synchronization --disable-interpreter --disable-java-net --disable-jvmpi --enable-reduced-reflection --without-libffi --without-x \ --with-ecj-jar=/home/ecosta/cross/libexec/ecj-4.3.jar \ --with-newlib \ --without-headers \ -- View this message in context: http://www.nabble.com/Crosscompile-of-ecjx-fails-tp23967391p23967391.html Sent from the gcc - java mailing list archive at Nabble.com.