]> git.lizzy.rs Git - rust.git/commitdiff
Change the last linux 64-bit snapshot
authorAlex Crichton <alex@alexcrichton.com>
Mon, 15 Sep 2014 18:17:00 +0000 (11:17 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Tue, 16 Sep 2014 01:14:26 +0000 (18:14 -0700)
I'm rotating in some CentOS 5.10 bots so we *actually* build on Linux 2.6.18
like we advertise doing so. Currently the snapshots are incompatible with CentOS
5.10 due to snapshots requiring glibc 2.6 and CentOS 5.10 having glibc 2.5.

It turns out that rustc only requires *one* symbol from glibc 2.6, which is
`futimens`. The rust distribution itself does not use this symbol, but LLVM
conditionally detects it and then uses it. This symbol isn't even called as part
of the compilation process, so we don't even need it!

The new snapshot was generated following these instructions [1]:

1. Download the current x86_64 linux snapshot and unpack it.
2. Open the rustc binary in a hex editor.
3. Change the linkage against glibc 2.6 from strong to *weak*
4. Write changes and re-run src/etc/make-snapshot.py
5. Upload new tarball to S3

On CentOS 5.10 a warning is printed each time the snapshot runs that the symbol
cannot be found (anyone with glibc 2.6+ does not have this warning printed). The
key part is that we can *bootstrap* on CentOS 5.10 at this point. The next
snapshot will be naturally compatible with glibc 2.3 (even older!) and will not
need to be manually edited.

[1]: http://jamesbond3142.no-ip.org/wiki/wiki.cgi/NewAppsOnOldGlibc

src/snapshots.txt

index 300a9f9eb4906e894eeea19703532cea1e945715..d2a1fd11597cca1852cbaaae0cb8925357371ac3 100644 (file)
@@ -1,7 +1,7 @@
 S 2014-09-10 6faa4f3
   winnt-x86_64 939eb546469cb936441cff3b6f2478f562f77c46
   winnt-i386 cfe4f8b519bb9d62588f9310a8f94bc919d5423b
-  linux-x86_64 72c92895fa9a1dba7880073f2b2b5d0e3e1a2ab6
+  linux-x86_64 40e2ab1b67d0a2859f7da15e13bfd2748b50f0c7
   linux-i386 6f5464c9ab191d93bfea0894ca7c6f90c3506f2b
   freebsd-x86_64 648f35800ba98f1121d418b6d0c13c63b7a8951b
   macos-i386 545fc45a0071142714639c6be377e6d308c3a4e1