This is the mail archive of the
crossgcc@sourceware.org
mailing list for the crossgcc project.
See the CrossGCC FAQ for lots
more information.
Opinions requested
- From: Harold Grovesteen <h dot grovsteen at tx dot rr dot com>
- To: crossgcc at sourceware dot org
- Date: Sun, 22 Aug 2010 08:53:17 -0500
- Subject: Opinions requested
The toolchain build process has always been a black art to me.
crosstool-NG has brought this to the average developer such as myself.
Most my development is on the Hercules mainframe emulator, hence the
s390 contributions. One of the other developers has been working on
enabling ELF executable support in one of the legacy mainframe operating
systems. He has shared with me his build process. It is amazingly
simple and I used it myself to build a toolchain.
A few up front comments to provide some context. Yes, the toolchain is
statically built. A separate C-library has been provided with a few
functions where needed. The actual OS interface will be that provided
by the legacy operating system, also separately created, and compiled
and linked with the executable. This is not a standard POSIX
interface. Plans for shared libraries in this environment are unclear.
What I am seeking here is an assessment from those much more
knowledgable about the process, the pros and cons, and is it worth
integrating into crosstool-NG. For that I would be willing to do the
work. I realize this might be a special case with very limited
applicability, but it is so simple and easily created I thought I would
bring it up here. I have never seen a crosstool build this simple. If
it is, maybe it should be documented somewhere. What's the gotcha?
My suspicion is that glibc and Linux bring the complexity to the build
process. Once those two elements are removed from the process (as this
does), it becomes straight forward. And those two elements missing from
this process might also be what relegates it to a niche application.
Build binutils:
../../src/binutils-2.20/configure
--prefix=/home/xxxx/hercules/c4vm/cross/run --target=s390-linux \
--enable-install-libbfd
make -j
make -j install
Build gmp:
../../src/gmp-5.0.1/configure
--prefix=/home/xxxx/hercules/c4vm/cross/sup --disable-shared
make -j install
Build mpfr:
../../src/mpfr-3.0.0/configure --prefix=/home/xxxx/hercules/c4vm/cross/sup \
--with-gmp=/home/xxxx/hercules/c4vm/cross/sup --disable-shared
make -j install
Build mpc:
../../src/mpc-0.8.2/configure --prefix=/home/ivan/hercules/c4vm/cross/sup \
--with-mpfr=/home/xxxx/hercules/c4vm/cross/sup \
--with-gmp=/home/xxxx/hercules/c4vm/cross/sup \
--disable-shared
make -j install
Build gcc:
../../src/gcc-4.5.1/configure \
--prefix=/home/xxxx/hercules/c4vm/cross/run \
--target=s390-linux \
--enable-languages="c" \
--with-newlib \
--disable-threads \
--without-headers \
--disable-shared \
--with-gmp-include=/home/xxxx/hercules/c4vm/cross/sup/include \
--with-gmp-lib=/home/xxxx/hercules/c4vm/cross/sup/lib \
--with-mpfr-include=/home/xxxx/hercules/c4vm/cross/sup/include \
--with-mpfr-lib=/home/xxxx/hercules/c4vm/cross/sup/lib \
--with-mpc-include=/home/xxxx/hercules/c4vm/cross/sup/include \
--with-mpc-lib=/home/xxxx/hercules/c4vm/cross/sup/lib
make -j all-gcc
make -j install-gcc
--
For unsubscribe information see http://sourceware.org/lists.html#faq