This is the mail archive of the crossgcc@sources.redhat.com 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]

crosstool-0.28-rc5: better doc, distccd startup script cleanup


crosstool is a build-and-test script for cross-toolchains based on
binutils, gcc, and glibc.  It supports all 32 bit CPUs supported by glibc,
and a couple 64 bit ones.

The stable version of crosstool is 0.27, and is available at
  http://kegel.com/crosstool

The release candidate for the next version is 0.28-rc5, and is available at
  http://kegel.com/crosstool/crosstool-0.28-rc5.tar.gz

Relative to 0.28-rc4, 0.28-rc5 has a rewritten doc/crosstool-howto.html
which finally documents how to use distcc with crosstool.
The distccd startup scripts are there for Mac OS X and cygwin,
but haven't been tested since the last change, so caveat emptor.
I'm mostly just putting this out for comments on the new crosstool-howto.html.

Note: I can't build gcc-3.4.0 on cygwin at the moment.
I ran into a strange problem; see http://gcc.gnu.org/ml/gcc/2004-04/msg00823.html

Changelog:
0.28-rc5:
     * Revamped doc/crosstool-howto.html to describe distcc integration

     * finally renamed mkcommon.sh to be mkdistcc.sh, and
       moved tcl and expect builds into mkdejagnu.sh

* added support for gcc-3.4-20040414, gcc-3.4.0-20040416

     crosstool.sh, mkjail.sh, demo-*.sh:
     * add support for other languages, e.g. Java.
       To enable this, set the GCC_LANGUAGES variable, e.g.
         export GCC_LANGUAGES="c,c++,java,f77"
       before running.  (Inspired by http://ometer.com/desktop-language.html)

     gcc-3.4.0:
     * getandpatch.sh:
       - added support for downloading gcc-3.4.0 prereleases
     * glibc:
       - added following patches to allow compiling with gcc-3.4.0 prereleases:
         patches/glibc-2.3.2/fixup.patch
         patches/glibc-2.2.5/glibc-2.2.5-fixup.patch
         patches/glibc-linuxthreads-2.2.5/glibc-2.2.5-allow-gcc-3.4-td.patch

     * mkcommon.sh avoids wget if distcc tarball already present,
       to avoid unneccessary failure when network connectivity poor

0.28-rc4:
     * common/bin/install-distccd.sh tested on Red Hat Linux, seems to work
       Not yet tested on cygwin or Mac

* mkcommon.sh and mkdistcclinks.sh now set permission 755 on directories

     * mkcommon.sh now installs startup script templates
       crosstool-distccd-{linux,mac,cygwin}.sh.in to common/etc

mkdistcclinks.sh now creates common/bin/install-distccd.sh

       The user then runs common/bin/install-distccd.sh
       which expands the appropriate startup script template,
       installs it whereever the OS wants it, and registers
       the service so it'll automatically start on future system boots

* added StartupParameters.plist, used by mkdistcclinks.sh on Mac OS X

0.28-rc3:
     getandpatch.sh:
     * don't set +e anymore, that was a kludge that's no longer needed
     * fix error message from wrong cd when patching glibc addon

     mkcommon.sh, mkdistcclinks.sh:
     * create common/bin/install-distccd.sh for all operating systems we can,
       not just cygwin-install-distccd.sh

0.28-rc2:
     Doc:
     * split off crosstest-howto.html from crosstool-howto.html

     powerpc64:
     * added powerpc970.dat and demo-ppc970.sh (thanks Rafael Ávila de Espíndola)

     crosstool.sh:
     * abort if PREFIX is set to / or /usr or user running as root

0.28-rc1:
     Executive summary:
     * can now build on Mac OS X and Cygwin (though it still only targets Linux)
     * can now build on x86_64 Linux systems
     * supports hetrogenous distcc build clusters out-of-the-box
     * supports building programs to run on Red Hat 6.2 with gcc-2.95.3
       or gcc-3.3.3
     * no longer requires internet connection if you already have the tarballs
     * supports new target sparc64

     distcc:
     * To create a build cluster:
       - make a shared directory all computers can see on network, say /shared
       - edit demo-cluster.sh to select the toolchains and targets you want,
         and set RESULT_TOP to /shared/`config.guess`
       - run demo-cluster.sh on one machine of each type
       - run $RESULT_TOP/common/bin/run-distccd.sh on each machine
       Voila!  You now have a compile cluster!
       To use it, set CC in your program's Makefile to
       $RESULT_TOP/$target/$toolcombo/distributed/bin/$TARGET-gcc
       You may want to invoke config.guess in your Makefile when setting
       CC, so the same Makefile can run on multiple architectures.
       The distcc that comes with this release contains the following patch:
         patches/distcc-2.13/distcc-stringmap.patch
       which is needed to support hetrogenous distccd clusters with
       multiple targets and toolchains.

     crosstool.sh:
     * uses right --build argument on binutils and glibc; fixes x86_64 build
     * remove bogus --enable-clocale=gnu from glibc configure
     * use own copy of config.guess instead of relying on gcc's
     * On exit, say *where* the result was stored
     * Verify that LD_LIBRARY_PATH is not set, since glibc complains if set
     * handle 2.6 kernel better
     * obey PARALLELMFLAGS when building binutils and gcc (glibc already did)

     mkdist.sh:
     * renamed to clean.sh

     gcc/glibc versions:
     * support gcc-3.3.3
     * added gcc-2.95.3-glibc-2.1.3.dat to target Red Hat 6.2 boxes
     * Added patches/glibc-2.1.3/glibc-2.1.3-allow-gcc3-*.patch
       to allow compiling glibc-2.1.3 with gcc-3.x

     getandpatch.sh (thanks to Alan Luse for the first three):
     * use BASENAME in test for previously extracted source trees
     * don't cd to nonexistent patch directories
     * Handle linux tarballs which extract to directory 'kernel'
     * Added a QUIET_EXTRACTIONS option to do non-verbose extractions
     * offline operation.  Important so you can still build if
       ftp.gnu.org is unreachable and you already have the tarballs.


demo.sh: * updated to use gcc-3.3.3 where possible * created demo-$CPU.sh scripts for more processors * demo.sh now just calls all the demo-$CPU.sh scripts * demo.sh now runs through all cpu types even if one fails, and makes separate log files for each * added mkcommon.sh to compile distcc, tcl, expect, dejagnu

     demo-runtest.sh:
     * added as example of how to run a single regression test

     newlib:
     * added contrib/newlib2, files from Harry Kaes, who successfully built
       gcc-3.3.2/newlib for mips

     arm:
     * Revert to binutils-2.14.90.0.5 because arm has trouble with plain 2.14
     * copied gcc-3.3.2-arm-softfloat.patch to patches/gcc-3.3.3,
       but probably still need contrib/glibc-vfp.patch
       Added more notes to demo-arm-softfloat.sh
     * Added arm-iwmmxt

     sparc64: thanks to Martin Van Leeuwen for the following changes:
     * backported glibc-2.3.2 fixes from cvs:
       - patches/glibc-2.3.2/glibc-2.3.2-sparc64-pause.patch
       - patches/glibc-2.3.2/glibc-2.3.2-sparc64-pwrite64.patch
       - patches/glibc-linuxthreads-2.3.2/glibc-2.3.2-sparc64-sigproc.patch
     * tell the assembler to use CPU v9a, -mcpu=ultrasparc3 isn't enough


portability: * use -g0 when invoking patch to keep it from checking CVS or Perforce * update glibc-2.1.3's config.sub to avoid warnings on newer systems * copied patches/linux-2.4.24/linux-2.4-bsd-expr.patch to patches/linux-2.4.21/linux-2.4-bsd-expr.patch for Mac OS X's benefit * update gcc-2.95.3's config.sub so we can build on newer systems * patches/{gcc-2.95.3,binutils-2.11.2}/gcc-pr3106.patch fixes compile failure on Mac OS X * patches/gcc-2.95.3/backport-config.gcc-{1.4,1.92}.patch fix compile failures on Mac OS X and x86_64 * avoid using $PWD, since that's a bash feature, not part of POSIX

     cygwin compatibility:
     * patch glibc's configure to not depend on case sensitivity:
       patches/glibc-linuxthreads-2.3.2/glibc-linuxthreads-2.3.2-cygwin.patch
       patches/glibc-2.3.2/glibc-2.3.2-cygwin.patch
       patches/glibc-2.2.5/glibc-2.2.5-cygwin.patch
       patches/glibc-2.1.3/glibc-2.1.3-cygwin.patch
     * demo*.sh: don't use ~, as ash doesn't expand it
     * getandpatch.sh: don't use set -e when calling functions that return 1
     * don't let gcc-2.95.3 put .exe on end of Linux executables
       (only ok because we are targeting Linux, not VMS, Windows, or Cygwin)
       patches/gcc-2.95.3/gcc-2.95.3-cygwin-020611.patch

     Mac OS X compatibility
     * Note: you need to install gawk, gnu sed, and wget using fink before
       you can build crosstool.  If wget or any other fink program segfaults,
       try 'sudo /sw/var/lib/fink/prebound/update-package-prebinding.pl -f'
       once to get around a hiccup in fink's incremental prelinking of apps.
     * Two patches from Martin Schaffner:
       - patches/linux-2.4.24/linux-2.4-bsd-expr.patch
       - patches/glibc-2.3.2/glibc-configure-apple-as.patch
     * use 'true' and 'false' rather than '/bin/true' and '/bin/false'
     * crosstool.sh: override LD and RANLIB when building glibc; fixes
         ld: .../c_stubs/gconv_stubs.o bad magic number (not a Mach-O file)
         make[2]: *** [.../build-glibc/c_stubs/libc_stubs.a] Error 1
       which probably only happens when building redhat's glibc-2.1.3



--
My technical stuff: http://kegel.com
My politics: see http://www.misleader.org for examples of why I'm for regime change


------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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