Skip to content

Commit ba0c100

Browse files
committed
Change the last linux 64-bit snapshot
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
1 parent 1f5ee97 commit ba0c100

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/snapshots.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
S 2014-09-10 6faa4f3
22
winnt-x86_64 939eb546469cb936441cff3b6f2478f562f77c46
33
winnt-i386 cfe4f8b519bb9d62588f9310a8f94bc919d5423b
4-
linux-x86_64 72c92895fa9a1dba7880073f2b2b5d0e3e1a2ab6
4+
linux-x86_64 40e2ab1b67d0a2859f7da15e13bfd2748b50f0c7
55
linux-i386 6f5464c9ab191d93bfea0894ca7c6f90c3506f2b
66
freebsd-x86_64 648f35800ba98f1121d418b6d0c13c63b7a8951b
77
macos-i386 545fc45a0071142714639c6be377e6d308c3a4e1

0 commit comments

Comments
 (0)