summaryrefslogtreecommitdiff
path: root/pkgs/simple-scalar/default.nix
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-05-01 12:11:06 -0600
committerAlejandro Soto <alejandro@34project.org>2023-05-01 12:11:06 -0600
commitdc11ba42cbbf757238d34449a61dfcf0ee16c0df (patch)
tree34163f6989ffe8216e86020db1a4905eda92b144 /pkgs/simple-scalar/default.nix
parent8413062d39c4e0344edd229f6a01fb2c46a5d94c (diff)
pkgs/simple-scalar: add wattchg7
Diffstat (limited to '')
-rw-r--r--pkgs/simple-scalar/default.nix121
1 files changed, 4 insertions, 117 deletions
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; };
}