From owner-freebsd-arm@FreeBSD.ORG Thu Jun 18 03:05:54 2009 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AA8A61065670 for ; Thu, 18 Jun 2009 03:05:54 +0000 (UTC) (envelope-from tinguely@casselton.net) Received: from casselton.net (casselton.net [63.165.140.2]) by mx1.freebsd.org (Postfix) with ESMTP id 3B3358FC14 for ; Thu, 18 Jun 2009 03:05:54 +0000 (UTC) (envelope-from tinguely@casselton.net) Received: from casselton.net (localhost [127.0.0.1]) by casselton.net (8.14.3/8.14.3) with ESMTP id n5I35rXh045137; Wed, 17 Jun 2009 22:05:53 -0500 (CDT) (envelope-from tinguely@casselton.net) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=casselton.net; s=ccnMail; t=1245294353; bh=9WFrnshv1s3J+STejwCCEZxCFtxwDUvBddGZElUjq/Q=; h=Date:From:Message-Id:To:Subject:In-Reply-To; b=nnaxBN3rlYn+XrpzKQ/FlsG4+5zfH6Gar9qV+JksqBFF1x2tAxKfxsbyvLatfPw7F 5Mhp7RmCcJ/Zud/Aw1uyTqFiu6FxB5yoByoAOpR58NhlXRxcztHB0s76ocbylvcrb6 mncTr1UUiUmu5UTjFhzNBQ4i9nbM33fTMrkoIsuA= Received: (from tinguely@localhost) by casselton.net (8.14.3/8.14.2/Submit) id n5I35qci045136; Wed, 17 Jun 2009 22:05:52 -0500 (CDT) (envelope-from tinguely) Date: Wed, 17 Jun 2009 22:05:52 -0500 (CDT) From: Mark Tinguely Message-Id: <200906180305.n5I35qci045136@casselton.net> To: freebsd-arm@freebsd.org, tinguely@casselton.net, vassilis.laganakos@yahoo.com In-Reply-To: <523661.6738.qm@web59407.mail.ac4.yahoo.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.3.2 (casselton.net [127.0.0.1]); Wed, 17 Jun 2009 22:05:53 -0500 (CDT) Cc: Subject: Re: ARMv7 - EABI - Cross Compiler X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Jun 2009 03:05:54 -0000 > I don't know what are the changes from previous versions of GCC with the trunk. > Maybe the release notes have more info on this.... FreeBSD compiler has a variable defined into it that the kernel sources expect to find, it has extended format commands, and it modifies gcc/gcc.c to look for the support programs in normal places. > > I made changes to the gcc-4.5-20090528 directory and the build directory. > > I will look at the libraries too. > > > Cool! I am still using modified GNU make file. Static libraries can cross compile an application to ARM but I gave up on configure/gmake on libmudflap. My library compile process became a hacking in the configure files. I was just walking around the problems as they popped up. Had I read and understood all the configure options, maybe it would have gone smoother. The "-Werror" complaints and "xgcc -E" as a pre-processor command are the two biggest problem in the library compilation process. Once we have a cross compiler that can make a kernel, it seems a waste of time to keep going with the configure/gmake route. Your idea of moving the sources over to the head/contrib/gcc and editing the BSD make files in head/gnu/usr.bin/cc is the way to go because making the compiler from sources is part of the cross build world. I diff-ed the sources from the GNU original (4.2.1 if memory serves me right) sources and filled in the missing pieces into the GCC 4.5 files. Some things have already been put into GCC 4.5, some areas seemed re-written. I was mostly interested in getting the FreeBSD extensions in. I can give you diff of my sources against GCC 4.5 original code or tar up both the source and build directory. The changes would be simular for GCC 4.4. There is nothing special about GCC 4.5, I just took the most recent source that is available. Also, I just blindly copied the freebsd* header files from head source into GCC 4.5. The real way of doing this is to edit up the existing GCC 4.5 header files and add the new items. I did that with a couple that are used in the ARM build. The sources in the gcc support library files are not changed; it would just take some BSD make file editing to get them to compile under the head directory. --Mark.