/!\ /!\ /!\ The information on this page is outdated. glibc is now using the common Sourceware buildbot instance, as explained in this blog post.


glibc has a buildbot that tests each commit on a few platforms. current build status is available.

The buildbot configuration is available from ssh://sourceware.org/git/glibc-buildbot.git.

There is a Bugzilla component buildbot for reporting problems in, or requesting enhancements to, the bot setup.

Known problems include:

Setting up a Build slave

Software requirements:

The following steps are based on the script configure_gce_slave.sh and have been tested on Fedora 22 and should prepare the base setup:

  1. Contact RolandMcGrath or Tuliom to define a name and a password for the new BuildSlave. This step will require that your PGP public key will be available in a public server.

  2. Install the dependencies:
    • sudo dnf install bison gcc gcc-c++ make buildbot-slave git binutils glibc-static texinfo gawk perl sed
  3. Create the BuildSlave files:

    • sudo -u ${buildbot_user} buildslave create-slave ${slave_name} ${master_address} ${slave_name} "${slave_password}"
  4. Set keepalive to 200 and port to 9991:
    • sudo -u ${buildbot_user} sed -i "s/keepalive = [0-9]\+/keepalive = 200/;s/^port = [0-9]\+/port = 9991/" ${slave_name}/buildbot.tac
  5. Update admin information:
    • ${EDITOR} ${slave_name}/info/admin
  6. Update host information:
    • cat /etc/system-release > ${slave_name}/info/host uname -srv >> ${slave_name}/info/host echo >> ${slave_name}/info/host g++ -v 2>&1 | tail -n 1 - | sed 's/gcc version \([^ ]\+\) .*/g++ \1/' \  >> ${slave_name}/info/host objdump -v 2>&1 | head -n 1 - | sed 's/.* version \([^ -]\+\).*/binutils \1/' \  >> ${slave_name}/info/host
  7. Prepare a patch adding your BuildSlave to the master settings. Here is an example that adds an aarch64 slave:

    • diff --git a/master.cfg b/master.cfg index 67f16eb..1d35b52 100644 --- a/master.cfg +++ b/master.cfg @@ -23,6 +23,7 @@ builder_map = {  'glibc-i686-linux': 'glibc-ubuntu-trusty-slave2',  'glibc-power8-linux': 'fedora22-ppc64-1',  'glibc-s390x-linux': 'marist-fedora-s390x', + 'glibc-aarch64-linux': 'reservedbit-xgene-ubuntu-aarch64',  }   builders = sorted(set(builder_map.iterkeys())) diff --git a/scripts/slave/buildbot_selector.py b/scripts/slave/buildbot_selector.py index 12bfbb3..8e6ab42 100755 --- a/scripts/slave/buildbot_selector.py +++ b/scripts/slave/buildbot_selector.py @@ -22,6 +22,9 @@ BOT_ASSIGNMENT = {  '--enable-lock-elision',  ]),  'glibc-s390x-linux': bash('glibc-native.sh'), + 'glibc-aarch64-linux': bash('glibc-native.sh' [ + '--enable-tunables' + ]),  }
  8. Start your BuildSlave:

    • sudo su - ${buildbot_user} cd ${slave_name} buildslave start
  9. Ensure your BuildSlave will start automatically after reboots, e.g. using crontab:

    • @reboot /bin/buildslave start /home/${slave_user}/${slave_name}/

None: Buildbot (last edited 2023-04-17 16:29:52 by SimonChopin)