Compare commits

..

No commits in common. "rawhide" and "f26" have entirely different histories.

7 changed files with 363 additions and 1 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
/13cb576b8538.zip
/a8730ca647f5.zip
/8e08604f8ad3.zip

70
abc-bundlelib.patch Normal file
View file

@ -0,0 +1,70 @@
--- Makefile.orig 2016-09-05 14:54:44.000000000 -0600
+++ Makefile 2016-09-10 02:02:01.380988862 -0600
@@ -18,7 +18,7 @@
src/map/mapper src/map/mio src/map/super src/map/if \
src/map/amap src/map/cov src/map/scl src/map/mpm \
src/misc/extra src/misc/mvc src/misc/st src/misc/util src/misc/nm \
- src/misc/vec src/misc/hash src/misc/tim src/misc/bzlib src/misc/zlib \
+ src/misc/vec src/misc/hash src/misc/tim \
src/misc/mem src/misc/bar src/misc/bbl src/misc/parse \
src/opt/cut src/opt/fxu src/opt/fxch src/opt/rwr src/opt/mfs src/opt/sim \
src/opt/ret src/opt/fret src/opt/res src/opt/lpk src/opt/nwk src/opt/rwt \
@@ -117,7 +117,7 @@
endif
# LIBS := -ldl -lrt
-LIBS += -ldl -lm
+LIBS += -Wl,--as-needed -lbz2 -lz -ldl -lm
ifneq ($(findstring Darwin, $(shell uname)), Darwin)
LIBS += -lrt
endif
--- src/base/io/ioReadAiger.c.orig 2016-02-03 14:56:47.000000000 -0700
+++ src/base/io/ioReadAiger.c 2016-02-04 21:37:07.724515263 -0700
@@ -26,8 +26,8 @@
#include <string.h>
#include <assert.h>
-#include "misc/bzlib/bzlib.h"
-#include "misc/zlib/zlib.h"
+#include <bzlib.h>
+#include <zlib.h>
#include "ioAbc.h"
ABC_NAMESPACE_IMPL_START
--- src/base/io/ioReadBlifMv.c.orig 2016-02-03 14:56:47.000000000 -0700
+++ src/base/io/ioReadBlifMv.c 2016-02-04 21:37:07.726515102 -0700
@@ -18,8 +18,8 @@
***********************************************************************/
-#include "misc/zlib/zlib.h"
-#include "misc/bzlib/bzlib.h"
+#include <zlib.h>
+#include <bzlib.h>
#include "base/abc/abc.h"
#include "misc/vec/vecPtr.h"
#include "ioAbc.h"
--- src/base/io/ioWriteAiger.c.orig 2016-02-03 14:56:47.000000000 -0700
+++ src/base/io/ioWriteAiger.c 2016-02-04 21:37:07.727515021 -0700
@@ -26,8 +26,8 @@
#include <string.h>
#include <assert.h>
-#include "misc/bzlib/bzlib.h"
-#include "misc/zlib/zlib.h"
+#include <bzlib.h>
+#include <zlib.h>
#include "ioAbc.h"
--- src/sat/cnf/cnfMan.c.orig 2016-02-03 14:56:47.000000000 -0700
+++ src/sat/cnf/cnfMan.c 2016-02-04 21:37:07.728514940 -0700
@@ -21,7 +21,7 @@
#include "cnf.h"
#include "sat/bsat/satSolver.h"
#include "sat/bsat/satSolver2.h"
-#include "misc/zlib/zlib.h"
+#include <zlib.h>
ABC_NAMESPACE_IMPL_START

24
abc-sharedlib.patch Normal file
View file

@ -0,0 +1,24 @@
--- Makefile.orig 2016-02-05 14:41:31.862198725 -0700
+++ Makefile 2016-02-04 21:46:14.618379630 -0700
@@ -46,7 +46,7 @@ ARCHFLAGS := $(ARCHFLAGS)
OPTFLAGS ?= -g -O
-CFLAGS += -Wall -Wno-unused-function -Wno-write-strings -Wno-sign-compare $(ARCHFLAGS)
+CFLAGS += -Wno-unused-function $(OPTFLAGS) $(ARCHFLAGS) -Isrc
ifneq ($(findstring arm,$(shell uname -m)),)
CFLAGS += -DABC_MEMALIGN=4
endif
@@ -186,6 +186,12 @@ $(PROG): $(OBJ)
@echo "$(MSG_PREFIX)\`\` Building binary:" $(notdir $@)
$(VERBOSE)$(LD) -o $@ $^ $(LIBS)
+lib$(PROG).so: $(OBJ)
+ @echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@)
+ $(VERBOSE)$(LD) -shared -Wl,-h,lib$(PROG).so.0 -o lib$(PROG).so.0.0.0 $^ $(LIBS)
+ $(VERBOSE)ln -s lib$(PROG).so.0.0.0 lib$(PROG).so.0
+ $(VERBOSE)ln -s lib$(PROG).so.0 $@
+
lib$(PROG).a: $(OBJ)
@echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@)
$(VERBOSE)ar rv $@ $?

99
abc.1 Normal file
View file

@ -0,0 +1,99 @@
.TH "ABC" "1" "@VERSION@" "ABC" "User Commands"
.SH "NAME"
abc \- sequential logic synthesis and formal verification
.SH "SYNOPSIS"
.B abc
[\fIOPTIONS\fP] \fIFILE\fP
.SH "DESCRIPTION"
.PP
ABC is a growing software system for synthesis and verification of binary
sequential logic circuits appearing in synchronous hardware designs. ABC
combines scalable logic optimization based on And-Inverter Graphs (AIGs),
optimal-delay DAG-based technology mapping for look-up tables and standard
cells, and innovative algorithms for sequential synthesis and verification.
.PP
ABC provides an experimental implementation of these algorithms and a
programming environment for building similar applications. Future development
will focus on improving the algorithms and making most of the packages
stand-alone. This will allow the user to customize ABC for their needs as if
it were a toolbox rather than a complete tool.
.SH "OPTIONS"
.TP
\fB\-c\fP \fICMD\fP
Execute commands \fICMD\fP.
.TP
\fB\-q\fP \fICMD\fP
Execute commands \fICMD\fP quietly.
.TP
\fB\-C\fP \fICMD\fP
Execute commands \fICMD\fP, then continue in interactive mode.
.TP
\fB\-F\fP \fISCRIPT\fP
Execute commands from script file \fISCRIPT\fP and echo commands.
.TP
\fB\-f\fP \fISCRIPT\fP
Execute commands from script file \fISCRIPT\fP.
.TP
\fB\-h\fP
Print command usage.
.TP
\fB\-o\fP \fIFILE\fP
Store the result in \fIFILE\fP.
.TP
\fB\-s\fP
Do not read any initialization file.
.TP
\fB\-t\fP \fITYPE\fP
Specify the input type, one of \fIblif_mv\fP, \fIblif_mvs\fP, \fIblif\fP, or
\fInone\fP. The default is \fIblif_mv\fP.
.TP
\fB\-T\fP \fITYPE\fP
Specify the output type, one of \fIblif_mv\fP, \fIblif_mvs\fP, \fIblif\fP, or
\fInone\fP. The default is \fIblif_mv\fP.
.TP
\fB\-x\fP
Equivalent to \fI-t none -T none\fP.
.TP
\fB\-b\fP
Run in bridge mode.
.SH "INTRODUCTION"
.PP
Data structures and algorithms at the heart of a software system determine its
capabilities in processing data and its efficiency as a programming
environment for building new applications. Extensive experience of developing
and using SIS, VIS, and MVSIS, makes it clear that these systems do not
provide a flexible programming environment to implement recent innovations,
such as integration of technology mapping and retiming. Specifically, the SIS
environment is outdated and rather inefficient when handling large circuits.
VIS, designed as a formal verification tool for multi-valued specifications,
does not provide enough flexibility for binary synthesis. MVSIS was developed
and extensively used by us in the recent years for implementing new synthesis
algorithms for both multi-valued and binary networks. Finally, we became
convinced that (a) the basic data structures and algorithms of MVSIS can be
made considerably simpler and easier to use by assuming binary networks, and
(b) a central place in the new system should be given to a new data structure,
AIGs (multi-level logic networks composed of two-input ANDs and inverters),
which promises improvements in quality and runtime of synthesis and
verification.
.PP
This understanding motivates us to redevelop the core packages of MVSIS
resulting in a new programming environment named ABC. As the name suggests,
the primary goal is to keep data structures simple and flexible for a wide
range of applications. The “philosophy of ABC” has several basic premises.
One of them is allowing for a variety of functional representations, such as
BDDs and SOPs, to solve specialized tasks, while defaulting to AIGs for the
mainstream network manipulation. Representing logic using AIGs leads to a
remarkable uniformity in computation and efficient interfacing with CNF-based
SAT solvers for handing Boolean reasoning problems. Another fundamental
premise of ABC is the synergy between synthesis and verification using
efficient SAT-based Boolean reasoning on the AIG for combinational and
sequential equivalence checking.
.PP
The goal of the ABC project is to provide a public-domain implementation of
the state-of-the-art combinational and sequential synthesis algorithms and, at
the same time, create an open-source environment, in which such applications
can be developed and compared. The current version of ABC can
optimize/map/retime industrial gate-level designs with 100K gates and 10K
sequential elements for optimal delay and heuristically minimized area in
about one minute of CPU time on a modern computer. The runtime of the
combinational synthesis, mapping, and verification is typically faster.

166
abc.spec Normal file
View file

@ -0,0 +1,166 @@
# Upstream doesn't make releases. We have to check the code out of Mercurial.
%global owner alanmi
%global commit 8e08604f8ad3
%global hgdate 20160905
# WARNING: When updating to a newer snapshot, because upstream doesn't do
# shared library versioning, run abipkgdiff (from libabigail) against the
# old and new binary and debuginfo packages to detect abi changes that would
# require bumping the shared library version, e.g.,
# abipkgdiff --d1 abc-debuginfo-<old>.rpm --d2 abc-debuginfo-<new>.rpm \
# abc-<old>.rpm abc-<new>.rpm
# If the shared library version is bumped, remember to rebuild dependent
# packages, finding them using e.g.
# repoquery --whatrequires abc-libs
# This should be done for each branch in which abc-libs will be updated.
Name: abc
Version: 1.01
Release: 11.hg%{hgdate}%{?dist}
Summary: Sequential logic synthesis and formal verification
License: MIT
URL: http://www.eecs.berkeley.edu/~alanmi/abc/abc.htm
Source0: https://bitbucket.org/%{owner}/%{name}/get/%{commit}.zip
# Man page created by Jerry James using upstream text; hence, it is covered by
# the same copyright and license as the code.
Source1: %{name}.1
# Fedora-specific patch: do not use the bundled libraries
Patch0: %{name}-bundlelib.patch
# Fedora-specific patch: build a shared library instead of a static library
Patch1: %{name}-sharedlib.patch
BuildRequires: bzip2-devel
BuildRequires: gcc
BuildRequires: readline-devel
BuildRequires: zlib-devel
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description
ABC is a growing software system for synthesis and verification of
binary sequential logic circuits appearing in synchronous hardware
designs. ABC combines scalable logic optimization based on And-Inverter
Graphs (AIGs), optimal-delay DAG-based technology mapping for look-up
tables and standard cells, and innovative algorithms for sequential
synthesis and verification.
ABC provides an experimental implementation of these algorithms and a
programming environment for building similar applications. Future
development will focus on improving the algorithms and making most of
the packages stand-alone. This will allow the user to customize ABC for
their needs as if it were a toolbox rather than a complete tool.
%package libs
Summary: Library for sequential synthesis and verification
%description libs
This package contains the core functionality of ABC as a shared library.
%package devel
Summary: Headers and libraries for developing with ABC
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description devel
Headers and libraries for developing applications that use ABC.
%prep
%setup -q -n %{owner}-%{name}-%{commit}
%patch0
%patch1
# Do not use the bundled libraries
rm -fr lib src/misc/{bzlib,zlib} src/sat/bsat2
# Fix end of line encodings
for fil in readme.md readmeaig; do
sed -i.orig 's/\r//' ${fil}
touch -r ${fil}.orig ${fil}
rm -f ${fil}.orig
done
# Set the version number in the man page
sed 's/@VERSION@/%{version} (%{hgdate})/' %{SOURCE1} > %{name}.1
touch -r %{SOURCE1} %{name}.1
%build
# Build the library and binary
make %{?_smp_mflags} libabc.so OPTFLAGS="%{optflags} -fPIC -DNDEBUG" \
LD="g++ $RPM_LD_FLAGS" ABC_MAKE_VERBOSE=1
g++ src/base/main/main.o -o %{name} $RPM_LD_FLAGS -L. -labc
%install
# Install the library
mkdir -p %{buildroot}%{_libdir}
install -p -m 0755 lib%{name}.so.0.0.0 %{buildroot}%{_libdir}
ln -s lib%{name}.so.0.0.0 %{buildroot}%{_libdir}/lib%{name}.so.0
ln -s lib%{name}.so.0 %{buildroot}%{_libdir}/lib%{name}.so
# Install the header files
pushd src
mkdir -p %{buildroot}%{_includedir}/%{name}
tar -cBf - $(find -O3 . -name \*.h) | \
(cd %{buildroot}%{_includedir}/%{name}; tar -xBf -)
popd
# Install the binary
mkdir -p %{buildroot}%{_bindir}
install -p -m 0755 %{name} %{buildroot}%{_bindir}
# Install the man page
mkdir -p %{buildroot}%{_mandir}/man1
install -p -m 0644 %{name}.1 %{buildroot}%{_mandir}/man1
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%files
%doc readme.md readmeaig
%{_bindir}/%{name}
%{_mandir}/man1/%{name}*
%files libs
%license copyright.txt
%{_libdir}/lib%{name}.so.*
%files devel
%{_includedir}/%{name}/
%{_libdir}/lib%{name}.so
%changelog
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.01-11.hg20160905
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Jan 12 2017 Igor Gnatenko <ignatenko@redhat.com> - 1.01-10.hg20160905
- Rebuild for readline 7.x
* Sat Sep 10 2016 Eric Smith <brouhaha@fedoraproject.org> - 1.01-9.hg20160905
- Update to latest mercurial snapshot
* Fri Feb 5 2016 Jerry James <loganjerry@gmail.com> - 1.01-8.hg20160203
- Update to latest mercurial snapshot
- Drop the python2 subpackage; upstream moved support to a separate project
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.01-7.hg20150306
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.01-6.hg20150306
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 1.01-5.hg20150306
- Rebuilt for GCC 5 C++11 ABI change
* Sat Mar 7 2015 Jerry James <loganjerry@gmail.com> - 1.01-4.hg20150306
- Update to latest mercurial snapshot
* Thu Jan 1 2015 Jerry James <loganjerry@gmail.com> - 1.01-3.hg20150101
- Update to latest mercurial snapshot
- Fix installation of header files
* Wed Dec 3 2014 Jerry James <loganjerry@gmail.com> - 1.01-2.hg20141130
- Drop unnecessary jquery Provides
- Fix file permissions
* Mon Dec 1 2014 Jerry James <loganjerry@gmail.com> - 1.01-1.hg20141130
- Initial RPM

View file

@ -1 +0,0 @@
Superseded by yosyshq-abc

1
sources Normal file
View file

@ -0,0 +1 @@
02a4c8cb9dcf0d2c9d35837b13be8422 8e08604f8ad3.zip