diff options
Diffstat (limited to '')
| -rw-r--r-- | pkgs/default.nix | 2 | ||||
| -rw-r--r-- | pkgs/simple-scalar/default.nix | 121 | ||||
| -rw-r--r-- | pkgs/simple-scalar/gcc-sslittle-na-sstrix.nix | 106 | ||||
| -rw-r--r-- | pkgs/simple-scalar/simplesim.nix | 35 |
4 files changed, 146 insertions, 118 deletions
diff --git a/pkgs/default.nix b/pkgs/default.nix index 5557947..2a40577 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -10,8 +10,8 @@ in oregano = callPackage ./oregano { }; rqlite = callPackage ./rqlite.nix { }; rv8 = callPackage ./rv8.nix { }; - simple-scalar = callPackage ./simple-scalar { }; scripts = callPackage ./scripts { }; + simple-scalar = callPackage ./simple-scalar { }; tmux-lift = callPackage ./tmux-lift { }; st = prev.st.override { diff --git a/pkgs/simple-scalar/default.nix b/pkgs/simple-scalar/default.nix index ce64e51..c0774d1 100644 --- a/pkgs/simple-scalar/default.nix +++ b/pkgs/simple-scalar/default.nix @@ -1,118 +1,5 @@ -# https://www.cse.iitd.ac.in/~cs5070217/csl718/assignment1/ss_install_instructions.html -{ bison, fetchurl, flex, multiStdenv, stdenv_32bit, strace }: -let - host = "i686-pc-linux"; - target = "sslittle-na-sstrix"; - - gcc-version = "2.7.2.3"; - makeflags = "LANGUAGES=c CC=\"$CC -m32 $CFLAGS\" prefix=$out"; -in -multiStdenv.mkDerivation { - pname = "SimpleScalar"; - version = "1998-08-11"; # !!! - - nativeBuildInputs = [ flex bison ]; - - sourceRoot = "."; - - srcs = [ - (fetchTarball { - name = "simplesim-3.0"; - - url = "https://www.cse.iitd.ac.in/~cs5070217/csl718/simplesim-3v0d.tgz"; - sha256 = "sha256:022rlniimzl30c1874765hl001dxc716vfwm40ij256h1qk2dwgw"; - }) - - (fetchTarball { - name = "simpleutils-990811"; - - url = "https://www.cse.iitd.ac.in/~cs5070217/csl718/simpleutils-990811.tar.gz"; - sha256 = "sha256:0w952z382s7ghrxwrad7fd058b1kj5ad1abh8idxwwk47va72cdf"; - }) - ]; - - # El código es muy viejo y Nix usa opciones muy estrictas por defecto - CFLAGS = "-O3 -Wno-error=format-security"; - - # Algunas tarballs vienen sin directorio de primer nivel y además requieren arreglos - postUnpack = - let - simpletools = fetchurl { - url = "https://www.cse.iitd.ac.in/~cs5070217/csl718/simpletools-2v0.tgz"; - sha256 = "sha256-FTDTqyQWZCnuNPmTcu3Hcjgp4pHNoUcC0GOGhSJV9Iw="; - }; - - gcc-ss = fetchurl { - url = "https://www.cse.iitd.ac.in/~cs5070217/csl718/gcc-${gcc-version}.ss.tar.gz"; - sha256 = "sha256-3R3wsLmxoN3MkEW4gaxnhIyTBs0CUiSiH7C1/hF2atM="; - }; - - ar-and-ranlib = fetchurl { - url = "https://www.cse.iitd.ac.in/~cs5070217/csl718/ar_and_ranlib.tar.gz"; - sha256 = "sha256-MRTO6cAg3WeXlk3jDy2lVuiSXDRz1+LLa2XDkBDygMU="; - }; - in - '' - tar xf ${simpletools} - rm -r gcc-2.6.3 - - tar xf ${gcc-ss} - - mkdir ar-and-ranlib - tar xf ${ar-and-ranlib} -C ar-and-ranlib - - chmod -R +w gcc-${gcc-version} ar-and-ranlib - ''; - - patches = [ - ./0001-fix-case-of-YY_CURRENT_BUFFER.patch - ./0002-define-sys_nerr.patch - ./0003-fix-obstack.h-post-increment.patch - ./0004-stdarg.h-instead-of-varargs.h.patch - ]; - - postPatch = '' - patchelf \ - --set-interpreter "$(<${stdenv_32bit.cc}/nix-support/dynamic-linker-m32)" \ - ar-and-ranlib/{ar,ranlib} - ''; - - configurePhase = '' - BUILD=$PWD - - cd $BUILD/simplesim-3.0 - make config-pisa - - cd $BUILD/simpleutils-990811 - ./configure --host=${host} --target=${target} --with-gnu-as --with-gnu-ld --prefix=$out - - cd $BUILD/gcc-${gcc-version} - ./configure --host=${host} --target=${target} --with-gnu-as --with-gnu-ld --prefix=$out - ''; - - buildPhase = '' - make -C $BUILD/simplesim-3.0 - make -C $BUILD/simpleutils-990811 - - # GCC necesita binutils para compilar - make -C $BUILD/simpleutils-990811 install - cp $BUILD/ar-and-ranlib/{ar,ranlib} $out/${target}/bin/ - - cd $BUILD/gcc-${gcc-version} - - mkdir -p $out/lib - cp patched/sys/cdefs.h $BUILD/${target}/include/sys/cdefs.h - cp -r $BUILD/${target} $out/ - cp $BUILD/${target}/lib/{libc.a,crt0.o} $out/lib/ - sed -i '130s@-I/usr/include@-I./include@' Makefile - - ! make ${makeflags} - sed -i 's/\(return "FIXME\\n\)/\1\\/g' insn-output.c - PATH="$out/${target}/bin:$PATH" make ${makeflags} - ''; - - installPhase = '' - cp $BUILD/simplesim-3.0/{sim-{outorder,cache,profile,bpred,eio,safe,fast},sysprobe} $out/bin/ - PATH="$out/${target}/bin:$PATH" make -C $BUILD/gcc-${gcc-version} ${makeflags} install - ''; +{ callPackage }: { + gcc-sslittle-na-sstrix = callPackage ./gcc-sslittle-na-sstrix.nix { }; + simplesim = callPackage ./simplesim.nix { }; + wattchg7 = callPackage ./simplesim.nix { isWattch = true; }; } diff --git a/pkgs/simple-scalar/gcc-sslittle-na-sstrix.nix b/pkgs/simple-scalar/gcc-sslittle-na-sstrix.nix new file mode 100644 index 0000000..7ad3cbe --- /dev/null +++ b/pkgs/simple-scalar/gcc-sslittle-na-sstrix.nix @@ -0,0 +1,106 @@ +# https://www.cse.iitd.ac.in/~cs5070217/csl718/assignment1/ss_install_instructions.html +{ bison, fetchurl, flex, multiStdenv, stdenv_32bit }: +let + host = "i686-pc-linux"; + target = "sslittle-na-sstrix"; + + gcc-version = "2.7.2.3"; + makeflags = "LANGUAGES=c CC=\"$CC -m32 $CFLAGS\" prefix=$out"; +in +multiStdenv.mkDerivation { + pname = "gcc-sslittle-na-sstrix"; + version = "1998-08-11"; # !!! + + nativeBuildInputs = [ flex bison ]; + + sourceRoot = "."; + + srcs = [ + (fetchTarball { + name = "simpleutils-990811"; + + url = "https://www.cse.iitd.ac.in/~cs5070217/csl718/simpleutils-990811.tar.gz"; + sha256 = "sha256:0w952z382s7ghrxwrad7fd058b1kj5ad1abh8idxwwk47va72cdf"; + }) + ]; + + # El código es muy viejo y Nix usa opciones muy estrictas por defecto + CFLAGS = "-O3 -Wno-error=format-security"; + + # Algunas tarballs vienen sin directorio de primer nivel y además requieren arreglos + postUnpack = + let + simpletools = fetchurl { + url = "https://www.cse.iitd.ac.in/~cs5070217/csl718/simpletools-2v0.tgz"; + sha256 = "sha256-FTDTqyQWZCnuNPmTcu3Hcjgp4pHNoUcC0GOGhSJV9Iw="; + }; + + gcc-ss = fetchurl { + url = "https://www.cse.iitd.ac.in/~cs5070217/csl718/gcc-${gcc-version}.ss.tar.gz"; + sha256 = "sha256-3R3wsLmxoN3MkEW4gaxnhIyTBs0CUiSiH7C1/hF2atM="; + }; + + ar-and-ranlib = fetchurl { + url = "https://www.cse.iitd.ac.in/~cs5070217/csl718/ar_and_ranlib.tar.gz"; + sha256 = "sha256-MRTO6cAg3WeXlk3jDy2lVuiSXDRz1+LLa2XDkBDygMU="; + }; + in + '' + tar xf ${simpletools} + rm -r gcc-2.6.3 + + tar xf ${gcc-ss} + + mkdir ar-and-ranlib + tar xf ${ar-and-ranlib} -C ar-and-ranlib + + chmod -R +w gcc-${gcc-version} ar-and-ranlib + ''; + + patches = [ + ./0001-fix-case-of-YY_CURRENT_BUFFER.patch + ./0002-define-sys_nerr.patch + ./0003-fix-obstack.h-post-increment.patch + ./0004-stdarg.h-instead-of-varargs.h.patch + ]; + + postPatch = '' + patchelf \ + --set-interpreter "$(<${stdenv_32bit.cc}/nix-support/dynamic-linker-m32)" \ + ar-and-ranlib/{ar,ranlib} + ''; + + configurePhase = '' + BUILD=$PWD + + cd $BUILD/simpleutils-990811 + ./configure --host=${host} --target=${target} --with-gnu-as --with-gnu-ld --prefix=$out + + cd $BUILD/gcc-${gcc-version} + ./configure --host=${host} --target=${target} --with-gnu-as --with-gnu-ld --prefix=$out + ''; + + buildPhase = '' + make -C $BUILD/simpleutils-990811 + + # GCC necesita binutils para compilar + make -C $BUILD/simpleutils-990811 install + cp $BUILD/ar-and-ranlib/{ar,ranlib} $out/${target}/bin/ + + cd $BUILD/gcc-${gcc-version} + + mkdir -p $out/lib + cp patched/sys/cdefs.h $BUILD/${target}/include/sys/cdefs.h + cp -r $BUILD/${target} $out/ + cp $BUILD/${target}/lib/{libc.a,crt0.o} $out/lib/ + sed -i '130s@-I/usr/include@-I./include@' Makefile + + ! make ${makeflags} + sed -i 's/\(return "FIXME\\n\)/\1\\/g' insn-output.c + PATH="$out/${target}/bin:$PATH" make ${makeflags} + ''; + + installPhase = '' + PATH="$out/${target}/bin:$PATH" make -C $BUILD/gcc-${gcc-version} ${makeflags} install + ''; +} diff --git a/pkgs/simple-scalar/simplesim.nix b/pkgs/simple-scalar/simplesim.nix new file mode 100644 index 0000000..3b73267 --- /dev/null +++ b/pkgs/simple-scalar/simplesim.nix @@ -0,0 +1,35 @@ +{ fetchFromGitHub, stdenv, isWattch ? false }: +stdenv.mkDerivation { + pname = if isWattch then "wattchg7" else "SimpleSim"; + version = if isWattch then "master-2014-03-20" else "2003-10-08"; # !!! + + src = + if isWattch + then + fetchFromGitHub + { + repo = "wattchg7"; + owner = "n-sreek"; + + rev = "b1c2c1447584b7e850c6dc0743a2209c9d021a39"; + sha256 = "sha256-JMM2+6dgReSP3MKSC0ZOYt0Pcmef8DRzIkC26e4dk+Y="; + } else + fetchTarball { + name = "simplesim-3.0"; + + url = "https://www.cse.iitd.ac.in/~cs5070217/csl718/simplesim-3v0d.tgz"; + sha256 = "sha256:022rlniimzl30c1874765hl001dxc716vfwm40ij256h1qk2dwgw"; + }; + + configurePhase = '' + make config-pisa + ''; + + installPhase = '' + mkdir -p $out/bin + '' + (if isWattch then '' + cp sim-outorder $out/bin/wattch-outorder + '' else '' + cp {sim-{outorder,cache,profile,bpred,eio,safe,fast},sysprobe} $out/bin/ + ''); +} |
