This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]