1{ runCommand, glibc, glibc32
2}:
3
4let
5 nameVersion = builtins.parseDrvName glibc.name;
6 glibc64 = glibc;
7in
8runCommand "${nameVersion.name}-multi-${nameVersion.version}"
9 { outputs = [ "bin" "dev" "out"]; } # TODO: no static version here (yet)
10 ''
11 mkdir -p "$out/lib"
12 ln -s '${glibc64.out}'/lib/* "$out/lib"
13 ln -s '${glibc32.out}/lib' "$out/lib/32"
14 ln -s lib "$out/lib64"
15
16 # fixing ldd RLTDLIST
17 mkdir -p "$bin/bin"
18 cp -s '${glibc64.bin}'/bin/* "$bin/bin/"
19 rm "$bin/bin/ldd"
20 sed -e "s|^RTLDLIST=.*$|RTLDLIST=\"$out/lib/ld-linux-x86-64.so.2 $out/lib/32/ld-linux.so.2\"|g" \
21 '${glibc64.bin}/bin/ldd' > "$bin/bin/ldd"
22 chmod +x "$bin/bin/ldd"
23
24 mkdir "$dev"
25 cp -rs '${glibc32.dev}'/include "$dev/"
26 chmod +w -R "$dev"
27 cp -rsf '${glibc64.dev}'/include "$dev/"
28 ''