|
|
|
|
@ -1,87 +1,17 @@
|
|
|
|
|
# Universal build flags
|
|
|
|
|
%bcond longtests 0
|
|
|
|
|
|
|
|
|
|
# Only enable extended warnings on supported platforms
|
|
|
|
|
%ifarch x86_64 aarch64
|
|
|
|
|
%bcond ccwarn 1
|
|
|
|
|
%else
|
|
|
|
|
%bcond ccwarn 0
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# tcmalloc and z3 are not available on EL
|
|
|
|
|
%if 0%{?rhel}%{?centos}
|
|
|
|
|
%bcond tcmalloc 0
|
|
|
|
|
%bcond z3 0
|
|
|
|
|
%else
|
|
|
|
|
%bcond tcmalloc 1
|
|
|
|
|
%bcond z3 1
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# These are offered by the build, but there's no real demand to include them.
|
|
|
|
|
%bcond ccache 0
|
|
|
|
|
%bcond mold 0
|
|
|
|
|
|
|
|
|
|
Name: verilator
|
|
|
|
|
Version: 5.040
|
|
|
|
|
Release: %autorelease
|
|
|
|
|
Version: 3.874
|
|
|
|
|
Release: 1%{?dist}
|
|
|
|
|
Summary: A fast simulator for synthesizable Verilog
|
|
|
|
|
License: LGPL-3.0-only OR Artistic-2.0
|
|
|
|
|
URL: https://veripool.org/verilator/
|
|
|
|
|
Source: https://github.com/verilator/verilator/archive/refs/tags/v%{version}/%{name}-%{version}.tar.gz
|
|
|
|
|
|
|
|
|
|
# See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
|
|
|
|
|
ExcludeArch: %{ix86}
|
|
|
|
|
|
|
|
|
|
BuildRequires: autoconf
|
|
|
|
|
BuildRequires: bison
|
|
|
|
|
BuildRequires: coreutils
|
|
|
|
|
BuildRequires: cmake
|
|
|
|
|
BuildRequires: findutils
|
|
|
|
|
BuildRequires: flex
|
|
|
|
|
BuildRequires: gcc
|
|
|
|
|
BuildRequires: gcc-c++
|
|
|
|
|
BuildRequires: help2man
|
|
|
|
|
BuildRequires: make
|
|
|
|
|
BuildRequires: perl-generators
|
|
|
|
|
BuildRequires: perl-interpreter
|
|
|
|
|
BuildRequires: perl-lib
|
|
|
|
|
BuildRequires: perl-version
|
|
|
|
|
BuildRequires: perl(Data::Dumper)
|
|
|
|
|
BuildRequires: perl(Digest::MD5)
|
|
|
|
|
BuildRequires: perl(FindBin)
|
|
|
|
|
BuildRequires: perl(Getopt::Long)
|
|
|
|
|
BuildRequires: perl(IO::File)
|
|
|
|
|
BuildRequires: perl(Pod::Usage)
|
|
|
|
|
BuildRequires: perl(strict)
|
|
|
|
|
BuildRequires: perl(Time::HiRes)
|
|
|
|
|
BuildRequires: perl(vars)
|
|
|
|
|
BuildRequires: python3-devel
|
|
|
|
|
BuildRequires: python3-distro
|
|
|
|
|
BuildRequires: sed
|
|
|
|
|
%if %{with tcmalloc}
|
|
|
|
|
BuildRequires: gperftools-libs
|
|
|
|
|
BuildRequires: gperftools-devel
|
|
|
|
|
%endif
|
|
|
|
|
%if %{with mold}
|
|
|
|
|
Requires: mold
|
|
|
|
|
BuildRequires: mold
|
|
|
|
|
%endif
|
|
|
|
|
%if %{with ccache}
|
|
|
|
|
Requires: ccache
|
|
|
|
|
BuildRequires: ccache
|
|
|
|
|
%endif
|
|
|
|
|
%if %{with z3}
|
|
|
|
|
Requires: z3
|
|
|
|
|
BuildRequires: z3
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# required for further tests
|
|
|
|
|
BuildRequires: gdb
|
|
|
|
|
|
|
|
|
|
# devel is required to run verilator at all
|
|
|
|
|
Requires: %{name}-devel = %{version}-%{release}
|
|
|
|
|
License: GPLv2
|
|
|
|
|
Group: Applications/Engineering
|
|
|
|
|
URL: http://www.veripool.com/verilator.html
|
|
|
|
|
Source0: http://www.veripool.org/ftp/%{name}-%{version}.tgz
|
|
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
|
|
|
BuildRequires: perl, flex, bison, perl-SystemPerl-devel
|
|
|
|
|
Requires: perl-SystemPerl-devel >= 1.320
|
|
|
|
|
|
|
|
|
|
%description
|
|
|
|
|
|
|
|
|
|
Verilator is the fastest free Verilog HDL simulator. It compiles
|
|
|
|
|
synthesizable Verilog, plus some PSL, SystemVerilog and Synthesis
|
|
|
|
|
assertions into C++ or SystemC code. It is designed for large projects
|
|
|
|
|
@ -89,106 +19,144 @@ where fast simulation performance is of primary concern, and is
|
|
|
|
|
especially well suited to create executable models of CPUs for
|
|
|
|
|
embedded software design teams.
|
|
|
|
|
|
|
|
|
|
%package devel
|
|
|
|
|
Summary: Libraries and header files for %{name}
|
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description devel
|
|
|
|
|
This package contains library and header files needed to develop
|
|
|
|
|
applications based on %{name}.
|
|
|
|
|
|
|
|
|
|
%package doc
|
|
|
|
|
Summary: Documentation for %{name}
|
|
|
|
|
BuildArch: noarch
|
|
|
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
%description doc
|
|
|
|
|
This package contains the documentation for %{name}.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%prep
|
|
|
|
|
%autosetup -p1
|
|
|
|
|
find . -name .gitignore -delete
|
|
|
|
|
%setup -q
|
|
|
|
|
|
|
|
|
|
find . -name .gitignore -exec rm {} \;
|
|
|
|
|
export VERILATOR_ROOT=%{_datadir}
|
|
|
|
|
autoconf
|
|
|
|
|
%configure \
|
|
|
|
|
--disable-partial-static \
|
|
|
|
|
--disable-defenv \
|
|
|
|
|
%if %{with ccwarn}
|
|
|
|
|
--enable-ccwarn \
|
|
|
|
|
%else
|
|
|
|
|
--disable-ccwarn \
|
|
|
|
|
%endif
|
|
|
|
|
%if %{with longtests}
|
|
|
|
|
--enable-longtests
|
|
|
|
|
%else
|
|
|
|
|
--disable-longtests
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# We cannot run autoreconf because upstream uses unqualified stdlib identifiers
|
|
|
|
|
# that are included by autoconf-generated header files.
|
|
|
|
|
find -name Makefile_obj -exec sed -i \
|
|
|
|
|
-e 's|^\(COPT = .*\)|\1 %{optflags}|' \
|
|
|
|
|
-e 's|^#LDFLAGS += .*|LDFLAGS += %{__global_ldflags}|' \
|
|
|
|
|
{} \;
|
|
|
|
|
|
|
|
|
|
# Fix /usr/bin/env <bin> ("env-script-interpreter")
|
|
|
|
|
sed -i 's#/usr/bin/env python3#/usr/bin/python3#g' docs/bin/*
|
|
|
|
|
%{configure} --enable-envdef --prefix=%{_prefix} --mandir=%{_mandir}
|
|
|
|
|
%{__sed} -i "s|CPPFLAGSNOWALL +=|CPPFLAGSNOWALL +=%{optflags}|" \
|
|
|
|
|
{src,test_c,test_regress,test_sc,test_verilated}/Makefile_obj
|
|
|
|
|
|
|
|
|
|
%build
|
|
|
|
|
%if 0%{?rhel}%{?centos}
|
|
|
|
|
export VERILATOR_SRC_VERSION=epel-%{version}
|
|
|
|
|
%else
|
|
|
|
|
export VERILATOR_SRC_VERSION=fedora-%{version}
|
|
|
|
|
%endif
|
|
|
|
|
SYSTEMPERL_INCLUDE=%{_includedir}/perl-SystemPerl %{__make} %{?_smp_mflags}
|
|
|
|
|
|
|
|
|
|
%make_build
|
|
|
|
|
|
|
|
|
|
%install
|
|
|
|
|
%make_install
|
|
|
|
|
%{__rm} -rf %{buildroot}
|
|
|
|
|
%{__make} DESTDIR=$RPM_BUILD_ROOT install
|
|
|
|
|
|
|
|
|
|
# move the examples out of the datadir so that we can later include
|
|
|
|
|
# them in the doc dir
|
|
|
|
|
%{__mv} %{buildroot}%{_datadir}/verilator/examples examples
|
|
|
|
|
|
|
|
|
|
# remove not needed build directory and bin directory
|
|
|
|
|
%{__rm} -rf %{buildroot}%{_datadir}/verilator/src
|
|
|
|
|
%{__rm} -rf %{buildroot}%{_bindir}/verilator_includer
|
|
|
|
|
|
|
|
|
|
# verilator installs verilator.pc under ${datadir}
|
|
|
|
|
# but for consistency we want it under ${libdir}
|
|
|
|
|
mkdir -p %{buildroot}%{_libdir}/pkgconfig
|
|
|
|
|
mv %{buildroot}%{_datadir}/pkgconfig/verilator.pc %{buildroot}%{_libdir}/pkgconfig
|
|
|
|
|
|
|
|
|
|
# some tests and examples are CC0 and cannot be packaged into Fedora
|
|
|
|
|
rm -rf %{buildroot}%{_datadir}/verilator/examples
|
|
|
|
|
rm -rf %{buildroot}%{_datadir}/verilator/tests
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# The "tests" are all integration tests.
|
|
|
|
|
# They also define their own build flags,
|
|
|
|
|
# and fail if they are set to anything else.
|
|
|
|
|
%undefine _auto_set_build_flags
|
|
|
|
|
|
|
|
|
|
%check
|
|
|
|
|
make test
|
|
|
|
|
|
|
|
|
|
%clean
|
|
|
|
|
%{__rm} -rf %{buildroot}
|
|
|
|
|
|
|
|
|
|
%files
|
|
|
|
|
%license Artistic LICENSE
|
|
|
|
|
%{_mandir}/man1/*.1.gz
|
|
|
|
|
|
|
|
|
|
%defattr(-, root, root, -)
|
|
|
|
|
%doc README
|
|
|
|
|
%doc COPYING Changes TODO Artistic
|
|
|
|
|
%doc verilator.pdf verilator.html
|
|
|
|
|
%doc examples/
|
|
|
|
|
|
|
|
|
|
%attr(644,-,-) %{_mandir}/man1/verilator.1.gz
|
|
|
|
|
%{_mandir}/man1/verilator_coverage.1.gz
|
|
|
|
|
%{_mandir}/man1/verilator_profcfunc.1.gz
|
|
|
|
|
|
|
|
|
|
%{_datadir}/verilator
|
|
|
|
|
|
|
|
|
|
%{_bindir}/verilator
|
|
|
|
|
%{_bindir}/verilator_bin
|
|
|
|
|
%{_bindir}/verilator_bin_dbg
|
|
|
|
|
%{_bindir}/verilator_profcfunc
|
|
|
|
|
%{_bindir}/verilator_coverage
|
|
|
|
|
%{_bindir}/verilator_coverage_bin_dbg
|
|
|
|
|
%{_bindir}/verilator_gantt
|
|
|
|
|
%{_bindir}/verilator_profcfunc
|
|
|
|
|
%{_datadir}/verilator/bin
|
|
|
|
|
|
|
|
|
|
%files devel
|
|
|
|
|
%license Artistic LICENSE
|
|
|
|
|
%{_datadir}/verilator/include
|
|
|
|
|
%{_libdir}/pkgconfig/verilator.pc
|
|
|
|
|
%{_datadir}/verilator/verilator-config*.cmake
|
|
|
|
|
|
|
|
|
|
%files doc
|
|
|
|
|
%license Artistic LICENSE docs/guide/copyright.rst
|
|
|
|
|
%doc Changes README*
|
|
|
|
|
%doc docs
|
|
|
|
|
|
|
|
|
|
%changelog
|
|
|
|
|
%autochangelog
|
|
|
|
|
* Sun Jun 07 2015 Scott Tsai <scottt.tw@gmail.com> - 3.874-1
|
|
|
|
|
- Upstream 3.874
|
|
|
|
|
|
|
|
|
|
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 3.864-2
|
|
|
|
|
- Rebuilt for GCC 5 C++11 ABI change
|
|
|
|
|
|
|
|
|
|
* Mon Sep 22 2014 Scott Tsai <scottt.tw@gmail.com> 3.864-1
|
|
|
|
|
- Upstream 3.864
|
|
|
|
|
|
|
|
|
|
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.862-2
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Fri Jun 13 2014 Scott Tsai <scottt.tw@gmail.com> 3.862-1
|
|
|
|
|
- Upstream 3.862
|
|
|
|
|
|
|
|
|
|
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.845-3
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.845-2
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Sat Feb 16 2013 Chitlesh Goorah <chitlesh [AT] fedoraproject DOT org> - 3.845-1
|
|
|
|
|
- updated to 3.845
|
|
|
|
|
|
|
|
|
|
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.805-6
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.805-5
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.805-4
|
|
|
|
|
- Rebuilt for c++ ABI breakage
|
|
|
|
|
|
|
|
|
|
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.805-3
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.805-2
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
|
|
|
|
|
|
|
|
|
* Sun Nov 07 2010 Chitlesh Goorah <chitlesh [AT] fedoraproject DOT org> - 3.805-1
|
|
|
|
|
- updated to 3.805
|
|
|
|
|
|
|
|
|
|
* Sat Sep 25 2010 Chitlesh Goorah <chitlesh [AT] fedoraproject DOT org> - 3.804-1
|
|
|
|
|
- updated to 3.804
|
|
|
|
|
|
|
|
|
|
* Sun Jul 11 2010 Chitlesh Goorah <chitlesh [AT] fedoraproject DOT org> - 3.803-1
|
|
|
|
|
- updated to 3.803
|
|
|
|
|
|
|
|
|
|
* Fri Jul 24 2009 Lane Brooks <dirjud [AT] gmail DOT com> - 3.712-1
|
|
|
|
|
- Updated to verilator 3.712
|
|
|
|
|
|
|
|
|
|
* Fri Jun 26 2009 Lane Brooks <dirjud [AT] gmail DOT com> - 3.711-1
|
|
|
|
|
- Updated to verilator 3.711
|
|
|
|
|
- Added Artistic file
|
|
|
|
|
- Fixed permissions on man file
|
|
|
|
|
|
|
|
|
|
* Tue Jun 9 2009 Lane Brooks <dirjud [AT] gmail DOT com> - 3.710-1
|
|
|
|
|
- Updated to verilator 3.710
|
|
|
|
|
- Removed GCC 4.3 patch (no longer necessary)
|
|
|
|
|
- Added SYSTEMPERL_INCLUDE to point to perl-SystemPerl rpm install location
|
|
|
|
|
|
|
|
|
|
* Fri Jan 9 2009 Lane Brooks <dirjud [AT] gmail DOT com> - 3.700-1
|
|
|
|
|
- Updated dependancy to newly packaged perl-SystemPerl and removed patch
|
|
|
|
|
- Updated to verilator 3.700
|
|
|
|
|
- Added GCC 4.3 patch
|
|
|
|
|
|
|
|
|
|
* Fri Jan 2 2009 Lane Brooks <dirjud [AT] gmail DOT com> - 3.681-2
|
|
|
|
|
- Moved examples from data dir to doc dir
|
|
|
|
|
|
|
|
|
|
* Thu Jan 1 2009 Lane Brooks <dirjud [AT] gmail DOT com> - 3.681-1
|
|
|
|
|
- Updated verilator 3.681
|
|
|
|
|
- Removed gcc 4.3 patch as verilator 3.681 incorporates this fix
|
|
|
|
|
- Removed shared object patch as it is possible to do this from Makefile
|
|
|
|
|
using environment variables
|
|
|
|
|
- Further updates to the spec file per Chitlesh's feedback
|
|
|
|
|
|
|
|
|
|
* Sun Oct 26 2008 Lane Brooks <dirjud [AT] gmail DOT com> - 3.680-3
|
|
|
|
|
- Improved spec file for Fedora integration based on initial feedback
|
|
|
|
|
|
|
|
|
|
* Thu Oct 23 2008 Lane Brooks <dirjud [AT] gmail DOT com> - 3.680-2
|
|
|
|
|
- Added shared object generation patch
|
|
|
|
|
|
|
|
|
|
* Thu Oct 16 2008 Lane Brooks <dirjud [AT] gmail DOT com> - 3.680-1
|
|
|
|
|
- Initial package based on SUSE packages from Guenter Dannoritzer <dannoritzer{%}web{*}de>
|
|
|
|
|
|