1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-01-22 14:45:27 +00:00

tinycc: updating it to 0.9.26

I simplified the expression a bit. And I renamed it to 'tcc'.
I think everyone calls it tcc.
This commit is contained in:
Lluís Batlle i Rossell 2013-04-01 12:50:15 +02:00
parent a83f32b335
commit b10ab7a19a
3 changed files with 47 additions and 80 deletions

View file

@ -2,59 +2,26 @@
assert stdenv ? glibc;
let version = "0.9.25"; in
stdenv.mkDerivation {
name = "tinycc-${version}";
stdenv.mkDerivation rec {
name = "tcc-0.9.26";
src = fetchurl {
url = "mirror://savannah/tinycc/tcc-${version}.tar.bz2";
sha256 = "0dfycf80x73dz67c97j1ry29wrv35393ai5ry46i1x1fzfq6rv8v";
url = "mirror://savannah/tinycc/${name}.tar.bz2";
sha256 = "0wbdbdq6090ayw8bxnbikiv989kykff3m5rzbia05hrnwhd707jj";
};
nativeBuildInputs = [ perl texinfo ];
patches =
[ (fetchurl {
# Add support for `alloca' on x86-64.
url = "http://repo.or.cz/w/tinycc.git/patch/8ea8305199496ba29b6d0da2de07aea4441844aa";
sha256 = "0dz1cm9zihk533hszqql4gxpzbp8c4g9dnvkkh9vs4js6fnz1fl2";
name = "x86-64-alloca.patch";
})
(fetchurl {
# Fix alignment of the return value of `alloca'.
url = "http://repo.or.cz/w/tinycc.git/patch/dca2b15df42c1341794dd412917708416da25594";
sha256 = "0617a69gnfdmv8pr6dj3szv97v3zh57439dsbklxrnipx2jv6pq7";
name = "x86-64-alloca-align.patch";
})
];
postPatch = ''
substituteInPlace "texi2pod.pl" \
--replace "/usr/bin/perl" "${perl}/bin/perl"
'';
# To produce executables, `tcc' needs to know where `crt*.o' are.
sed -i "tcc.h" \
-e's|define CONFIG_TCC_CRT_PREFIX.*$|define CONFIG_TCC_CRT_PREFIX "${stdenv.glibc}/lib"|g'
sed -i "libtcc.c" \
-e's|tcc_add_library_path(s, CONFIG_SYSROOT "/lib");|tcc_add_library_path(s, "${stdenv.glibc}/lib");|g;
s|tcc_add_sysinclude_path(s, CONFIG_SYSROOT "/usr/include");|tcc_add_library_path(s, "${stdenv.glibc}/include");|g ;
s|tcc_add_sysinclude_path(s, buf);|tcc_add_sysinclude_path(s, buf); tcc_add_sysinclude_path(s, "${stdenv.glibc}/include");|g'
# Tell it about the loader's location.
sed -i "tccelf.c" \
-e's|".*/ld-linux\([^"]\+\)"|"${stdenv.glibc}/lib/ld-linux\1"|g'
''; # "
postInstall = ''
makeinfo --force tcc-doc.texi || true
mkdir -p "$out/share/info"
mv tcc-doc.info* "$out/share/info"
echo 'int main () { printf ("it works!\n"); exit(0); }' | \
"$out/bin/tcc" -run -
preConfigure = ''
configureFlagsArray+=("--elfinterp=$(cat $NIX_GCC/nix-support/dynamic-linker)")
configureFlagsArray+=("--crtprefix=${stdenv.glibc}/lib")
configureFlagsArray+=("--sysincludepaths=${stdenv.glibc}/include:{B}/include")
configureFlagsArray+=("--libpaths=${stdenv.glibc}/lib")
'';
doCheck = true;
@ -93,4 +60,4 @@ let version = "0.9.25"; in
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.ludo ];
};
}
}

View file

@ -177,7 +177,7 @@ with (import ./release-lib.nix);
texLiveExtra = linux;
texinfo = all;
time = linux;
tinycc = ["i686-linux"];
tinycc = linux;
udev = linux;
unrar = linux;
unzip = all;

View file

@ -304,7 +304,7 @@ let
texinfo = all;
tightvnc = linux;
time = linux;
tinycc = ["i686-linux"];
tinycc = linux;
uae = linux;
udev = linux;
unrar = linux;