Date: Tue, 10 Oct 2017 08:22:37 +0200 From: Tarjei Jensen <tarjei99@gmail.com> To: Mark Millard <markmi@dsl-only.net> Cc: FreeBSD Ports <freebsd-ports@freebsd.org> Subject: Re: Cross compiling GCC for aarch64 Message-ID: <CAGxNqfAe4W=T3GQTS8st9FrcFS%2BMM8_WeXpZzC3zaah=9D-nwQ@mail.gmail.com> In-Reply-To: <0E044060-82AF-4CCA-953C-3616E76B33C3@dsl-only.net> References: <0E044060-82AF-4CCA-953C-3616E76B33C3@dsl-only.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 9, 2017 at 11:26 PM, Mark Millard <markmi@dsl-only.net> wrote: > Tarjei Jensen tarjei99 at gmail.com wrote on > Mon Oct 9 17:16:41 UTC 2017 : > > > This does NOT concern making a cross compiler. It is about cross > compiling > > gcc from ports so that it will work on aarch64 FreeBSD 12-CURRENT. > > > > I have managed to create my own ports which allow me to use gcc6 as a > cross > > compiler on x86 Freebsd 11.1 with aarch64 FreeBSD 12-CURRENT being the > > target. It seems to work fine. > > > > The problem is that I want the GNU Ada compiler (gnat). It requires a > > working Ada compiler to compile parts of the compiler. There is a > gcc6-aux > > pkg and port which uses v11 binaries. However it does *not* work on > FreeBSD > > 12. It can compile, but the resulting executables does not work. And the > > gdb skills needed to find out why is simply beyond me. > > > > As I understand, what I am attempting is called a Canadian Cross. > > > > My plan would be to use the ports system to do this. e.g. by doing a > "make > > build". Create a tarball of the result and unpack on the target system > and > > do a "make install". Or make a pkg. Whatever works. > > > > I seem to have found the parameters to use for running the configure > > script, but I would very much like to use the ports way. > > > > Can anybody explain or point to an article which explains how to use the > > Canadian Cross to cross compile gcc? > > > > Suggestions and pointers to documentation are very much appreciated. > > > I had trouble following this. I had to look up > "Canadian Cross", which I found in: > > https://en.wikipedia.org/wiki/Cross_compiler > > Canadian Cross has 3 "machines": A, B, and C. > > (A) is used to bootstrap a compiler/toolchain > to run native on (B). (This can have multiple > stages, including a cross compile stage.) > > (B) is used to bootstrap a cross compiler/toolchain > to run on (B) to produce materials for (C). > > (C) runs the output from (B)'s cross compiler > but normally does not have its own self-hosted > compiler/toolchain or any cross compilers. > > If I read what you wrote correctly you are looking > more for (B) and (C) not being distinct. > > Or am I wrong and you want(?): > > (A) to be a amd64 (i386?) FreeBSD 11.1 context > > (B) to be amd64(?) FreeBSD 12 for > cross compiling to aarch64 FreeBSD 12 > and used to produce an aarch64 compiler > for use on aarch64 FreeBSD 12 > > (C) to be aarch64 FreeBSD 12 having its own > compiler for targeting itself [copied from > (B)]. > > ? > > === > Mark Millard > markmi at dsl-only.net > > >From the first paragraph : It is about cross compiling gcc from ports so that it will work on aarch64 FreeBSD 12-CURRENT. I have a working cross compiler.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGxNqfAe4W=T3GQTS8st9FrcFS%2BMM8_WeXpZzC3zaah=9D-nwQ>