GCC Compile Farm Project

How to Get Involved ?

If you are working on a piece of free software (GCC or any other) and need ssh access to the farm for compilation, debug and test on various architectures, please send:

  1. your ssh protocol 2 public key ($HOME/.ssh/id_dsa.pub) in attachment and not inline in the email

  2. AND your prefered UNIX login (see below User Accounts for already taken logins)

  3. AND at least one free software project you are a contributor of.

  4. AND the email Subject should start with "[CFARM-REQUEST]"

to laurent at guerby dot net.

After approval and account creation the compile farm machines should be used only for free software development, see this free software license list.

Architectures currently available:

We're looking for more powerful machines, especially for mips, arm, powerpc64 and sparc64, if you know of potential vendors or donators please contact laurent at guerby dot net.

Usage

Warning: compile farm machines disks are not RAID and not backed up so please use SVN or rsync to put your scripts and crontab somewhere safe.

Information and tips on using the farm are given below.

Mailing list, SVN for scripts and ticket system are hosted on gna.org, please use "Support" requests rather than the mailing list:

https://gna.org/projects/gcc-cfarm/

Compile Farm user projects should have an entry below.

Graphics about the farm load are available here:

http://gcc12.fsffrance.org/munin/

Use the command ulimit to reduce the risk of a DOS attack by your script/program. Example: ulimit -S -t 3600 -v 2000000 -u 1200

gcc30, gcc31 and gcc50 have limited RAM and CPU, so please do not set up crontab on those machine without discussing it on the mailing list first.

For automatic jobs on N-core please launch no more than N/2 runnable processes (total) and if you see that your cron is running at the same time as another user one please coordinate a time shift.

User Accounts

  1. guerby
  2. ian
  3. fxcoudert
  4. olly
  5. spop
  6. manu
  7. mstein
  8. bagnara
  9. hp
  10. jerryd
  11. manuel
  12. geoffk
  13. amylaar
  14. david
  15. rask
  16. pinskia
  17. revitale
  18. tschwinge
  19. segher
  20. baldrick
  21. ebotcazou
  22. henryn
  23. tromey
  24. ghazi
  25. guilt
  26. bozo
  27. joel
  28. younes
  29. kuba
  30. nightstrike
  31. apop
  32. rpeckhoff
  33. ktietz
  34. sam
  35. rwild
  36. zimmerma
  37. vmakarov
  38. roma
  39. abel
  40. aoliva
  41. jh
  42. acs
  43. peko
  44. arthur
  45. paolo
  46. tycho
  47. ludo
  48. grosser
  49. jwakely
  50. msnyder
  51. lauras
  52. phase1geo
  53. tkoenig
  54. aesok
  55. ajcurtis
  56. dannyb
  57. aldyh
  58. meissner
  59. sds
  60. asl
  61. victork
  62. pmuldoon
  63. gingold
  64. dodji
  65. andrea
  66. edwin
  67. hroptatyr
  68. monoid
  69. jas
  70. jamborm
  71. gscrivano
  72. meyering
  73. pixelbeat
  74. hesa
  75. uros
  76. polesapart
  77. lvv
  78. clyon
  79. ramana
  80. jspence
  81. mega
  82. nandy
  83. muller
  84. weidai
  85. tege
  86. martin
  87. schwab
  88. pierre
  89. thevenyp
  90. thome
  91. jason
  92. glenker
  93. eggert
  94. miguel
  95. li
  96. gerald
  97. zenitram
  98. wbhart
  99. bettini
  100. sol
  101. fita2006
  102. nikodemus
  103. prabatuty
  104. bernds
  105. cyd
  106. dez
  107. endymion
  108. dnovillo
  109. blp
  110. hloeung
  111. bdeblier
  112. chen
  113. karen
  114. rparlett
  115. konrad
  116. tilmann
  117. ineiev
  118. schmorp
  119. lloyd
  120. sigflup
  121. lajjr
  122. bauermann
  123. hleather
  124. redbrain
  125. crq
  126. ericb
  127. rafaelo
  128. ryan52
  129. hrickards
  130. rafl
  131. skimo
  132. lnostdal
  133. simple
  134. zik
  135. boegel
  136. israiri

Hardware Wishlist

Projects Ideas

Currently Running

Port GCC to Intel's 16-bit architecture.

RaskIngemannLambertsen is trying to port GCC to the Intel 8086 CPU family. Nodes gcc01, gcc03, gcc04, gcc07, gcc08 and gcc09 are used for testing patches that could affect existing targets. Tests are run at low priority and use of the nodes is sporadic. The Intel 8086 CPU has both 8-bit registers and 16-bit registers. The work on getting GCC to fully support such CPUs includes:

  1. Fixing the assumption in subreg_get_info() (rtlanal.c) that if a value is stored in multiple hard register, then those hard register all have the same size. To fix that, subreg_get_info() will be rewritten. The targets that are the trickiest to get right are i?86-*-* with -m128bit-long-double and powerpc-unknown-eabispe. Note: This part has been postponed because the new lower-subreg pass reduces the problem and I've worked around the cases that subreg_get_info() can't currently handle.
  2. In reload.c, fixing find_valid_class() and callers having the same problem as subreg_get_info().
  3. Fixing unspecified reload bugs as they turn up.

General bug fixes and enhancements are also tested from time to time.

Maintaining the GNU/Hurd tool chain

ThomasSchwinge is using node gcc12 for working on maintaining the GNU/Hurd tool chain. This means building cross binutils, cross GCC, cross-compiling glibc and suchlike. Working with various versions of the involved programs means using a lot of disk space, however feel free to request a clean up if you need space on the machine's storage.

Automatic bootstrap and regression testing

One can use the script from gcc sources contrib/patch_tester.sh for setting up an automatic tester on a machine. The patch should contain several markers that instruct the tester where to send the results by email, what branch and revision of GCC to use, and the configure and make flags. One can use the prepare_patch.sh script for filling up all this information, and for selecting the defaults for each case.

An example of a patch header for the HEAD version of autovect-branch, configuring only c, c++, and fortran, using vectorization during bootstrap, and only checking the vectorization specific tests:

email:foo@bar.com
branch:autovect-branch
revision:HEAD
configure:--enable-languages=c,c++,fortran
make:CFLAGS="-g" BOOT_CFLAGS="-O2 -g -msse2 -ftree-vectorize"
check:RUNTESTFLAGS=vect.exp

Autobuilds for coLinux

HenryNe is using node gcc11 for building coLinux from source. It uses cross target mingw32 and runs ons per day with low priority.

CGNU Project

rpeckhoff is documenting the operation of the current gcc build system on nodes gcc11-gcc14. He is using graphviz, Doxygen, and his own scripts to help discover and document source interdependencies. His project's progress is at http://cgnu.rpeckhoff.org/.

Testing

LaurentGuerby is running (nice -n 20 on one core only on most machines) bootstrap and check in loop with languages c,ada on various branches and report to gcc-testresult:

host  arch      branch loop time
gcc01 i686      trunk  4h00 (-j 2)
gcc02 i686      4.4    3h30 (-j 2)
gcc13 x86_64    trunk  3h30
gcc15 x86_64    4.4    6h30 (-j 2)
gcc40 powerpc64 trunk  6h00
gcc41 ia64      4.4   26h00
gcc50 armv5tel  trunk 37h00 (c,c++,fortran, install in /n/50/guerby/install-trunk-REV/bin visible on gcc55)
gcc52 mipsel    trunk 21h00
gcc53 powerpc   trunk  7h30
gcc54 sparc     trunk 22h00
gcc60 ia64      trunk  8h30
gcc61 hppa      trunk 22h00
gcc62 sparc64   trunk 26h00

Developing the Win64 port of GCC

http://mingw-w64.sf.net/ is committed to creating a viable platform for using gcc on Windows natively. We run build and testsuites constantly, and foster development and porting of mainstream applications such as Firefox (http://www.mozilla.org) and VLC (http://www.videolan.org) to the Win64 platform.

Cross compile testing

MikeStein is running cross compile tests at a low priority and report the results to gcc-testresult. He tests various branches, patches, and targets.

RTEMS Project

JoelSherrill is periodically running cross compile tests of various RTEMS (http://www.rtems.org) targets and reporting the results to gcc-testresults. The current focus is on the GCC SVN trunk with the binutils, gdb, and newlib CVS heads. C, C++, and Ada languages are tested where possible. The targets currently tested are listed below along with the RTEMS Board Support Package (BSP) and simulator used.

The bfin and m68k (Coldfire) will be added once Skyeye (http://www.skyeye.org) addresses some missing instructions that GCC 4.3 and newer generate which are currently supported by Skyeye.

There are some test infrastructure issues which negatively impact the results on all RTEMS targets.

RTEMS testing is normally done on gcc12. It is not currently run automatically and may move to another machine when it is done automatically.

BTG Project

BTG is a BitTorrent p2p client with daemonized backend. Daily builds/packaging/regression testing.

GNU Guile daily builds

Ludovic Courtès builds and runs the test suite of GNU Guile on gcc11 (x86-64), gcc30 (alphaev56) and gcc31 (sparc64) using Autobuild. Build results are available here.

GNU SASL, Libidn, Shishi, GSS, GnuTLS, etc daily builds

Simon Josefsson builds and runs the test suite of several projects. Build results are available here.

ClamAV daily builds

Clam AntiVirus is an open source (GPL) anti-virus toolkit for UNIX. Török Edwin builds and runs its test suite on gcc14, gcc30, gcc40, gcc51, gcc53, gcc54, gcc55, gcc60, gcc61 at 21:03 EET at low priority.

SBCL testing

GaborMelis and NikodemusSiivola build and test SBCL on x86-64, sparc, alpha and ppc.

CSQL Main Memory Database Testing

prabatuty build and test CSQL main memory database on gcc14(x86_64), sparc and ppc.

C++0x library testing

JonathanWakely uses compile farm machines to build and test changes for C++0x support in libstdc++.

lvv::array

(C++) STL compatible container x86_64 specialized, vector operation capable

LOPTI

mathematical optimization library (derivative-free, unconstrained solvers)

MPLW

Charting library Matplotlib AsciiDoc filter

GIT-Prompt

git status replacement

Botan

Botan is a BSD licensed crypto library. JackLloyd uses the compile farm to test builds and develop CPU-specific optimizations, mostly on the non-x86/x86_64 machines.

YAPET

YAPET is a GPL licensed text based password manager. RafaelOstertag uses the compile farm to test and assure interoperability of the binary file structure between different architectures.

lnostdal

(..don't have a project name yet; this a mix of projects really .. reach me at larsnostdal@gmail.com ..)

FIM : Fbi IMproved

GNU CLISP

Your Project here

your description here

Machine Detailed List

As of 20090409, on all CFARM machines:

Machines without public IP are accessed through a specific port, listed in the machine description table below, on gcc13.fsffrance.org or gcc12.fsffrance.org. For example to access gcc54, first look up its port, here 9084, and then do one of:

ssh -p 9084 LOGIN@gcc13.fsffrance.org
ssh -p 9084 LOGIN@gcc12.fsffrance.org

Alternatively you can add to your client machine $HOME/.ssh/config the following:

Host gcc54
  User LOGIN
  Hostname gcc13.fsffrance.org
  Port 9084
  HostKeyAlias gcc54
  CheckHostIP no

Then "ssh gcc54" should just work.

Note: this access setup is implemented with iptables and openvpn.

Dataceter http://www.fsffrance.org/ Rennes , static public IP, 100 Mbit/s up/down

name   disk  CPU         Notes
gcc11  580G  2x2x2.0 GHz Opteron 2212 / 4GB RAM / Dell SC1345
gcc12  580G  2x2x2.0 GHz Opteron 2212 / 4GB RAM / Dell SC1345

Datacenter http://www.skyrock.com/ , static public IP, 1000 Mbit/s up/down

name   disk  CPU         Notes
gcc13  580G  2x2x2.0 GHz Opteron 2212 / 4GB RAM / Dell SC1345
gcc14  750G  2x4x3.0 GHz Xeon X5450 / 16GB RAM / Dell Poweredge 1950

Datacenter http://www.inria.fr/saclay/ , static public IP , ssh only

name   disk  CPU         Notes
gcc15  160G  1x2x2.8 GHz Xeon dual core "paxville" / 1 GB RAM / Dell SC1425
gcc16  580G  2x4x2.2 GHz Opteron 8354 "Barcelona B3" / 16 GB RAM
gcc17  580G  2x4x2.2 GHz Opteron 8354 "Barcelona B3" / 16 GB RAM

Datacenter http://www.fsffrance.org/ Paris , DSL static IP, 10 Mbit/s down, 1 Mbit/s up

name   port disk  CPU      Notes
gcc40  9090 160G  1.8   GHz  PowerPC 970 G5 / 512 MB RAM / PowerMac G5
gcc50  9080 250G     0.6  Ghz ARM XScale-80219 / 512 MB RAM / Thecus N2100 NAS
gcc53  9083  80G   2x1.25 GHz PowerPC 7455 G4  / 1.5 GB RAM / PowerMac G4 dual processor
gcc54  9084  36G     0.5  GHz TI UltraSparc IIe (Hummingbird) / 1.5 GB RAM / Sun Netra T1 200

Datacenter http://www.guerby.org/ , DSL dynamic IP, 10 Mbit/s down, 1 MBit/s up

name   port disk   CPU        Notes
gcc51  9081  60G     0.8  GHz MIPS Loongson 2F /   1 GB RAM / Lemote YeeLoong 8089 notebook
gcc55  9085 250G     1.2  GHz ARM Feroceon 88FR131 (kirkwood) / 512 MB RAM / Marvell SheevaPlug

Datacenter http://www.pateam.org/ http://www.esiee.fr/ , 10 MBit/s

name   port disk   CPU        Notes
gcc60  9200  36G   2x1.3 GHz  Madison / 6 GB RAM / HP zx6000
gcc61  9201  36G   2x0.55 GHz PA8600 / 3.5 GB RAM / HP 9000/785/J6000
gcc62  9202  36G   6x0.4GHz   TI UltraSparc II (BlackBird) / 5 GB RAM / Sun Enterprise 4500

Datacenter http://jexiste.fr/ , static public IP, 100 Mbit/s up/down

Currently empty.

Datacenter http://www.macaq.org/ , DSL dynamic IP, 10 Mbit/s down, 1 MBit/s up, ubuntu breezy 5.10

Currently empty.

Datacenter http://www.mekensleep.com/ , DSL dynamic IP, 10 Mbit/s down, 1 MBit/s up

Currently empty

Offline

name   port disk  CPU        Notes
gcc01  9061 16G   2x1.00 Ghz Pentium 3 / 1 GB RAM / Dell Poweredge 1550 + additional 32 GB disk
gcc02  9062 16G   2x1.00 Ghz Pentium 3 / 1 GB RAM / Dell Poweredge 1550
gcc03  9063 16G   2x1.26 Ghz Pentium 3 / 1 GB RAM / Dell Poweredge 1550
gcc05  9065 16G   2x1.00 Ghz Pentium 3 / 1 GB RAM / Dell Poweredge 1550
gcc06  9066 16G   2x1.00 Ghz Pentium 3 / 1 GB RAM / Dell Poweredge 1550
gcc07  9067 32G   2X1.26 Ghz Pentium 3 / 1 GB RAM / Dell Poweredge 1550
gcc09  9068 32G   2x0.93 Ghz Pentium 3 / 1 GB RAM / Dell Poweredge 1550
gcc08       32G   2x1.26 Ghz Pentium 3 / 1 GB RAM / Dell Poweredge 1550
gcc30       17G     400 MHz Alpha EV56 / 2GB RAM / AlphaServer 1200 5/400 => offline, to relocate
gcc31       51G   2x400 Mhz TI UltraSparc II (BlackBird) / 2 GB RAM / Sun Enterprise 250 => offline, to relocate
gcc41  9091 18G  0.733 GHz  Itanium Merced / 1GB RAM / HP workstation i2000 => too old please use gcc60
gcc52  9082 500G     0.8  GHz MIPS Loongson 2F / 512 MB RAM / Gdium Liberty 1000 notebook, 32 bits userspace only => hardware broken

News

History and Sponsors

In August 2005 FSF France received in donation from BNP Paribas 9 Dell poweredge 1550 bi processor 1U machines with one SCSI disk and 1GB RAM, processors total 19.5 GHz distributed as follows:

The machines are about four years old, so of course there may be hardware problems in the coming years, but we might also be able to get cheap parts on the used market (or from other donations).

Hosting for those 9 1U machines is donated by the http://jexiste.org/ staff in a Paris datacenter (provided we maintain low use of external bandwidth).

In June 2007 FSF France purchased 3 Dell SC1345 to replace older Dells that were taken offline in http://jexiste.org datacenter.

In January 2008 http://www.macaq.org/ donated hosting for the older Dells which were brought back online.

In February 2008 http://www.skyrock.com/ donated hosting and gcc13 was moved in the new datacenter.

In March 2008

The GCC Compile Farm wants to thank all the sponsors that make this project to help free software a reality.

In May 2008 the GCC Compile Farm gained two bi-quad core machines gcc16 and gcc17 donated by AMD in hosting donated by INRIA Saclay, many thanks to:

In May 2008 the GCC Compile Farm gained access to an alphaev56 machine at LRI: http://www.lri.fr/

In July 2008 the GCC Compile Farm gained access to a sparc machine at LRI: http://www.lri.fr/

In December 2008 the GCC Compile Farm gained access to an ARM machine.

In January 2009 the GCC Compile Farm gained access to MIPS and powerpc32 machine.

In February 2009 the GCC Compile Farm gained access to powerpc64 provided by a private donor and an ia64 machine donated by LORIA http://www.loria.fr/ who got it from HP http://www.hp.com/

In March 2009 the GCC Compile Farm gained access to a dual ia64 Madison machine and a dual PA8500 machine both hosted and donated by Thibaut VARENE from http://www.pateam.org/ , hosting provided by ESIEE Paris http://www.esiee.fr/

In March 2009 the GCC Compile Farm gained access to a machine with ARM Feroceon 88FR131 at 1.2 GHz, a "SheevaPlug" prototype donated by Marvell http://www.marvell.com

In May 2009 the GCC Compile Farm gained access to a Sun Enterprise 4500 with 6 cpus, machine donated by William Bonnet http://www.wbonnet.net/ , installed by Thibaut VARENE from http://www.pateam.org/ , hosting provided by ESIEE Paris http://www.esiee.fr/

History of this page before 20081219

None: CompileFarm (last edited 2009-11-17 19:35:01 by LaurentGuerby)