zachjs / sv2v

SystemVerilog to Verilog conversion
BSD 3-Clause "New" or "Revised" License
540 stars 52 forks source link

Error with make in sv2v-0.0.5 #187

Closed Merok closed 2 years ago

Merok commented 2 years ago

Hi,

For some reason, I need to install sv2v-0.0.5. I work on "Rocky Linux "8.4 (Green Obsidian) and I am using stack Version 2.7.3, (Git revision 7927a3aec32e2b2e5e4fb5be76d0d50eddcc197f x86_64 hpack-0.34.4.)

I downloaded the (.zip) code from the 0.0.5 release page. When running "make" this is the error I get:

mkdir -p bin stack install --install-ghc --local-bin-path bin Building all executables for `sv2v' once. After a successful build of all of them, only specified executables will be rebuilt. sv2v> configure (exe) Configuring sv2v-0.0.5... sv2v> build (exe) Preprocessing executable 'sv2v' for sv2v-0.0.5.. Building executable 'sv2v' for sv2v-0.0.5.. [66 of 68] Compiling Job

XX/sv2v-0.0.5/src/Job.hs:52:39: error:

-- While building package sv2v-0.0.5 (scroll up to its section to see the error) using: /users/xx/.stack/setup-exe-cache/x86_64-linux-tinfo6/Cabal-simple_mPHDZzAJ_2.4.0.1_ghc-8.6.5 --builddir=.stack-work/dist/x86_64-linux-tinfo6/Cabal-2.4.0.1 build exe:sv2v --ghc-options " -fdiagnostics-color=always" Process exited with code: ExitFailure 1 make: *** [Makefile:7: sv2v] Error 1

Do you have an idea how I could fix this ? (The error persists with other versions up to version 0.0.8. But I have to use version 0.0.5 unfortunately).

Thanks for the help.

zachjs commented 2 years ago

For some reason, I need to install sv2v-0.0.5.

I would love to better understand the need to use this outdated version. This version is over a year old, with over 300 commits since then. If there is anything I can do to help make using newer versions feasible for you, please let me know!

When running "make" this is the error I get: ... Do you have an idea how I could fix this ?

Yes! Prior to dc19b5f9442931ea9e6df4d4d5f25b7b387e2cef, sv2v would not build correctly without a git repo being present. To work around this, you have a few options:

1) Clone the repo and checkout the desired version:

    git clone https://github.com/zachjs/sv2v.git
    cd sv2v
    git checkout v0.0.5
    make # git repo is present, so this build will work

2) If, for some reason, you don't want the .git repo around, you could assemble a patched version and remove the repo, and save that version somewhere:

    git clone https://github.com/zachjs/sv2v.git
    cd sv2v
    git checkout v0.0.5
    git cherry-pick dc19b5f9442931ea9e6df4d4d5f25b7b387e2cef
    rm -r .git
    make # git repo fallback logic has been cherry-picked, so this build will work

3) Of course, using a newer version would also fix this.

Merok commented 2 years ago

Hi,

Thanks for the fast and helpful answer. I managed to install the version 0.0.5.

I would love to better understand the need to use this outdated version.

Sure, the reason why I have to use this outdated version is because I am using sv2v to work with yosis synthesis for the Ibex core. Unfortunately, the script provided in the github does not work with higher versions of sv2v. You can read more info on this on my issue there: https://github.com/lowRISC/ibex/issues/1440. Using the version 0.0.5 everything works.

Thanks again for the help.