diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 17af48f..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*.zip -/abc-*.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 5de4bf3..0000000 --- a/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# abc - -[ABC](https://people.eecs.berkeley.edu/~alanmi/abc/abc.htm) 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. diff --git a/abc-build.patch b/abc-build.patch deleted file mode 100644 index 7952074..0000000 --- a/abc-build.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- CMakeLists.txt.orig 2019-12-17 15:57:46.000000000 -0700 -+++ CMakeLists.txt 2019-12-18 09:13:25.779458679 -0700 -@@ -53,7 +53,7 @@ execute_process( - make - ${ABC_READLINE_FLAGS} - ${ABC_USE_NAMESPACE_FLAGS} -- ARCHFLAGS_EXE=${CMAKE_CURRENT_BINARY_DIR}/abc_arch_flags_program.exe -+ ABC_USE_STDINT_H=1 - ABC_MAKE_NO_DEPS=1 - CC=${CMAKE_C_COMPILER} - CXX=${CMAKE_CXX_COMPILER} -@@ -94,6 +94,8 @@ list(REMOVE_ITEM ABC_SRC ${ABC_MAIN_SRC} - add_library(libabc EXCLUDE_FROM_ALL ${ABC_SRC}) - abc_properties(libabc PUBLIC) - set_property(TARGET libabc PROPERTY OUTPUT_NAME abc) -+set_property(TARGET libabc PROPERTY VERSION "0.0.0") -+set_property(TARGET libabc PROPERTY SOVERSION 0) - - add_executable(abc ${ABC_MAIN_SRC}) - target_link_libraries(abc PRIVATE libabc) -@@ -103,3 +105,5 @@ add_library(libabc-pic EXCLUDE_FROM_ALL - abc_properties(libabc-pic PUBLIC) - set_property(TARGET libabc-pic PROPERTY POSITION_INDEPENDENT_CODE ON) - set_property(TARGET libabc-pic PROPERTY OUTPUT_NAME abc-pic) -+set_property(TARGET libabc-pic PROPERTY VERSION "0.0.0") -+set_property(TARGET libabc-pic PROPERTY SOVERSION 0) diff --git a/abc-bundlelib.patch b/abc-bundlelib.patch deleted file mode 100644 index cfb044b..0000000 --- a/abc-bundlelib.patch +++ /dev/null @@ -1,124 +0,0 @@ ---- Makefile.orig 2019-05-30 20:27:31.000000000 -0600 -+++ Makefile 2019-06-04 09:40:32.212192338 -0600 -@@ -20,7 +20,7 @@ MODULES := \ - 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 \ -@@ -42,6 +42,7 @@ $(ARCHFLAGS_EXE) : arch_flags.c - $(CC) arch_flags.c -o $(ARCHFLAGS_EXE) - - INCLUDES += -I$(ABCSRC)/src -+LIBS=-lbz2 -lz - - # Use C99 stdint.h header for platform-dependent types - ifdef ABC_USE_STDINT_H ---- src/base/io/ioReadAiger.c.orig 2019-05-30 20:27:31.000000000 -0600 -+++ src/base/io/ioReadAiger.c 2019-06-04 09:40:32.231192003 -0600 -@@ -26,8 +26,8 @@ - #include - #include - --#include "misc/bzlib/bzlib.h" --#include "misc/zlib/zlib.h" -+#include -+#include - #include "ioAbc.h" - - ABC_NAMESPACE_IMPL_START ---- src/base/io/ioReadBlifMv.c.orig 2019-05-30 20:27:31.000000000 -0600 -+++ src/base/io/ioReadBlifMv.c 2019-06-04 09:40:32.232191985 -0600 -@@ -18,8 +18,8 @@ - - ***********************************************************************/ - --#include "misc/zlib/zlib.h" --#include "misc/bzlib/bzlib.h" -+#include -+#include - #include "base/abc/abc.h" - #include "misc/vec/vecPtr.h" - #include "ioAbc.h" ---- src/base/io/ioWriteAiger.c.orig 2019-05-30 20:27:31.000000000 -0600 -+++ src/base/io/ioWriteAiger.c 2019-06-04 09:40:32.233191967 -0600 -@@ -26,8 +26,8 @@ - #include - #include - --#include "misc/bzlib/bzlib.h" --#include "misc/zlib/zlib.h" -+#include -+#include - #include "ioAbc.h" - - ---- src/sat/bsat2/MainSat.cpp.orig 2019-05-30 20:27:31.000000000 -0600 -+++ src/sat/bsat2/MainSat.cpp 2019-06-04 09:40:32.234191950 -0600 -@@ -21,7 +21,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR - #include - - #include --#include "misc/zlib/zlib.h" -+#include - - #include "System.h" - #include "ParseUtils.h" ---- src/sat/bsat2/MainSimp.cpp.orig 2019-05-30 20:27:31.000000000 -0600 -+++ src/sat/bsat2/MainSimp.cpp 2019-06-04 09:40:32.234191950 -0600 -@@ -21,7 +21,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR - #include - - #include --#include "misc/zlib/zlib.h" -+#include - - #ifndef _WIN32 - #include ---- src/sat/bsat2/ParseUtils.h.orig 2019-05-30 20:27:31.000000000 -0600 -+++ src/sat/bsat2/ParseUtils.h 2019-06-04 09:40:32.235191932 -0600 -@@ -24,7 +24,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR - #include - #include - --#include "misc/zlib/zlib.h" -+#include - - namespace Minisat { - ---- src/sat/cnf/cnfMan.c.orig 2019-05-30 20:27:31.000000000 -0600 -+++ src/sat/cnf/cnfMan.c 2019-06-04 09:40:32.235191932 -0600 -@@ -21,7 +21,7 @@ - #include "cnf.h" - #include "sat/bsat/satSolver.h" - #include "sat/bsat/satSolver2.h" --#include "misc/zlib/zlib.h" -+#include - - ABC_NAMESPACE_IMPL_START - ---- src/sat/glucose/ParseUtils.h.orig 2019-05-30 20:27:31.000000000 -0600 -+++ src/sat/glucose/ParseUtils.h 2019-06-04 09:40:32.236191914 -0600 -@@ -25,7 +25,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR - #include - #include - --#include "misc/zlib/zlib.h" -+#include - - ABC_NAMESPACE_CXX_HEADER_START - ---- src/sat/glucose2/ParseUtils.h.orig -+++ src/sat/glucose2/ParseUtils.h -@@ -25,7 +25,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR - #include - #include - --#include "misc/zlib/zlib.h" -+#include - - ABC_NAMESPACE_CXX_HEADER_START - diff --git a/abc-format.patch b/abc-format.patch deleted file mode 100644 index c71498d..0000000 --- a/abc-format.patch +++ /dev/null @@ -1,120 +0,0 @@ ---- src/base/abci/abc.c.orig 2023-07-08 11:18:18.000000000 -0600 -+++ src/base/abci/abc.c 2023-07-14 11:14:10.263628991 -0600 -@@ -23905,7 +23905,7 @@ int Abc_CommandSymFun( Abc_Frame_t * pAb - printf( "%s\n", pTruth ); - // read the truth table to be the current network in ABC - pCommand = ABC_CALLOC( char, strlen(pTruth) + 100 ); -- sprintf( pCommand, "read_truth %s", pTruth ); -+ snprintf( pCommand, strlen(pTruth) + 100, "read_truth %s", pTruth ); - Cmd_CommandExecute( pAbc, pCommand ); - ABC_FREE( pCommand ); - ABC_FREE( pTruth ); -@@ -45189,7 +45189,7 @@ int Abc_CommandAbc9Cone( Abc_Frame_t * p - Gia_ManForEachPo( pAbc->pGia, pObj, i ) - { - Gia_Man_t * pOne = Gia_ManDupDfsCone( pAbc->pGia, pObj ); -- sprintf( Buffer, "%s_%0*d.aig", Extra_FileNameGeneric(pAbc->pGia->pSpec), nDigits, i ); -+ snprintf( Buffer, 1000, "%s_%0*d.aig", Extra_FileNameGeneric(pAbc->pGia->pSpec), nDigits, i ); - Gia_AigerWrite( pOne, Buffer, 0, 0, 0 ); - Gia_ManStop( pOne ); - } ---- src/base/io/ioReadBlifMv.c.orig 2023-07-14 11:12:54.591767465 -0600 -+++ src/base/io/ioReadBlifMv.c 2023-07-14 11:13:13.259486615 -0600 -@@ -1627,7 +1627,7 @@ static int Io_MvParseLineMv( Io_MvMod_t - ***********************************************************************/ - static int Io_MvWriteValues( Abc_Obj_t * pNode, Vec_Str_t * vFunc ) - { -- char Buffer[10]; -+ char Buffer[12]; - Abc_Obj_t * pFanin; - int i; - // add the fanin number of values ---- src/base/wlc/wlcNtk.c.orig 2023-07-08 11:18:18.000000000 -0600 -+++ src/base/wlc/wlcNtk.c 2023-07-14 10:51:19.721294579 -0600 -@@ -1300,7 +1300,7 @@ void Wlc_NtkShortNames( Wlc_Ntk_t * p ) - { - if ( Wlc_ObjIsPo(pObj) ) - continue; -- sprintf( pBuffer, "%s%0*d", "fi", nDigits, i - Wlc_NtkPoNum(p) ); -+ snprintf( pBuffer, 1000, "%s%0*d", "fi", nDigits, i - Wlc_NtkPoNum(p) ); - NameId = Abc_NamStrFindOrAdd( p->pManName, pBuffer, &fFound ); - Wlc_ObjSetNameId( p, Wlc_ObjId(p, pObj), NameId ); - } -@@ -1308,21 +1308,21 @@ void Wlc_NtkShortNames( Wlc_Ntk_t * p ) - { - if ( Wlc_ObjIsPi(pObj) ) - continue; -- sprintf( pBuffer, "%s%0*d", "fo", nDigits, i - Wlc_NtkPiNum(p) ); -+ snprintf( pBuffer, 1000, "%s%0*d", "fo", nDigits, i - Wlc_NtkPiNum(p) ); - NameId = Abc_NamStrFindOrAdd( p->pManName, pBuffer, &fFound ); - Wlc_ObjSetNameId( p, Wlc_ObjId(p, pObj), NameId ); - } - nDigits = Abc_Base10Log( Wlc_NtkPoNum(p) ); - Wlc_NtkForEachPo( p, pObj, i ) - { -- sprintf( pBuffer, "%s%0*d", "po", nDigits, i ); -+ snprintf( pBuffer, 1000, "%s%0*d", "po", nDigits, i ); - NameId = Abc_NamStrFindOrAdd( p->pManName, pBuffer, &fFound ); - Wlc_ObjSetNameId( p, Wlc_ObjId(p, pObj), NameId ); - } - nDigits = Abc_Base10Log( Wlc_NtkPiNum(p) ); - Wlc_NtkForEachPi( p, pObj, i ) - { -- sprintf( pBuffer, "%s%0*d", "pi", nDigits, i ); -+ snprintf( pBuffer, 1000, "%s%0*d", "pi", nDigits, i ); - NameId = Abc_NamStrFindOrAdd( p->pManName, pBuffer, &fFound ); - Wlc_ObjSetNameId( p, Wlc_ObjId(p, pObj), NameId ); - } -@@ -1331,7 +1331,7 @@ void Wlc_NtkShortNames( Wlc_Ntk_t * p ) - { - if ( Wlc_ObjIsCi(pObj) || Wlc_ObjIsCo(pObj) ) - continue; -- sprintf( pBuffer, "%s%0*d", "n", nDigits, i ); -+ snprintf( pBuffer, 1000, "%s%0*d", "n", nDigits, i ); - NameId = Abc_NamStrFindOrAdd( p->pManName, pBuffer, &fFound ); - Wlc_ObjSetNameId( p, Wlc_ObjId(p, pObj), NameId ); - } ---- src/map/mio/mioUtils.c.orig 2023-07-08 11:18:18.000000000 -0600 -+++ src/map/mio/mioUtils.c 2023-07-14 10:47:26.983819441 -0600 -@@ -1716,7 +1716,7 @@ void Mio_LibraryShortNames( Mio_Library_ - Mio_LibraryForEachGate( pLib, pGate ) - { - ABC_FREE( pGate->pName ); -- sprintf( Buffer, "g%0*d", nDigits, ++c ); -+ snprintf( Buffer, 10000, "g%0*d", nDigits, ++c ); - pGate->pName = Abc_UtilStrsav( Buffer ); - // update formula - Mio_LibraryShortFormula( pGate, pGate->pForm, Buffer ); ---- src/map/scl/sclLibUtil.c.orig 2023-07-08 11:18:18.000000000 -0600 -+++ src/map/scl/sclLibUtil.c 2023-07-14 10:47:26.983819441 -0600 -@@ -205,7 +205,7 @@ void Abc_SclShortNames( SC_Lib * p ) - SC_RingForEachCell( pClass, pCell, k ) - { - ABC_FREE( pCell->pName ); -- sprintf( Buffer, "g%0*d_%0*d", nDigits, i, nDigits2, k ); -+ snprintf( Buffer, 10000, "g%0*d_%0*d", nDigits, i, nDigits2, k ); - pCell->pName = Abc_UtilStrsav( Buffer ); - // formula - SC_CellForEachPinOut( pCell, pPin, n ) ---- src/opt/dau/dauMerge.c.orig 2023-07-08 11:18:18.000000000 -0600 -+++ src/opt/dau/dauMerge.c 2023-07-14 10:47:26.983819441 -0600 -@@ -715,7 +715,7 @@ Dau_DsdMergeStorePrintDefs( pS ); - - // create new function - // assert( nVarsTotal <= 6 ); -- sprintf( pS->pOutput, "(%s%s)", pDsd0, pDsd1 ); -+ snprintf( pS->pOutput, DAU_MAX_STR, "(%s%s)", pDsd0, pDsd1 ); - pTruth = Dau_DsdToTruth( pS->pOutput, nVarsTotal ); - Status = Dau_DsdDecompose( pTruth, nVarsTotal, 0, 1, pS->pOutput ); - //printf( "%d ", Status ); ---- src/proof/fra/fraCore.c.orig 2023-07-08 11:18:18.000000000 -0600 -+++ src/proof/fra/fraCore.c 2023-07-14 10:47:26.983819441 -0600 -@@ -163,7 +163,7 @@ static inline void Fra_FraigNodeSpeculat - // create manager with the logic for these two nodes - pTemp = Aig_ManExtractMiter( p->pManFraig, pObjFraig, pObjReprFraig ); - // dump the logic into a file -- sprintf( FileName, "aig\\%03d.blif", ++Counter ); -+ snprintf( FileName, 20U, "aig\\%03d.blif", ++Counter ); - Aig_ManDumpBlif( pTemp, FileName, NULL, NULL ); - printf( "Speculation cone with %d nodes was written into file \"%s\".\n", Aig_ManNodeNum(pTemp), FileName ); - // clean up diff --git a/abc-gia.patch b/abc-gia.patch deleted file mode 100644 index 8e09872..0000000 --- a/abc-gia.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/aig/gia/gia.h.orig 2023-07-14 10:53:06.361679474 -0600 -+++ src/aig/gia/gia.h 2023-07-14 10:54:12.069684316 -0600 -@@ -1142,7 +1142,7 @@ static inline int Gia_ObjCellId( - #define Gia_ManForEachLutReverse( p, i ) \ - for ( i = Gia_ManObjNum(p) - 1; i > 0; i-- ) if ( !Gia_ObjIsLut(p, i) ) {} else - #define Gia_LutForEachFanin( p, i, iFan, k ) \ -- for ( k = 0; k < Gia_ObjLutSize(p,i) && ((iFan = Gia_ObjLutFanins(p,i)[k]),1); k++ ) -+ for ( k = 0; k < Gia_ObjLutSize(p,i) && ((iFan = Gia_ObjLutFanins(p,i)[k]),1); k++ ) if (iFan >= 0) - #define Gia_LutForEachFaninIndex( p, i, iFan, k, Index ) \ - for ( k = 0; k < Gia_ObjLutSize(p,i) && (Index = Vec_IntEntry(p->vMapping, i)+1+k) && ((iFan = Vec_IntEntry(p->vMapping, Index)),1); k++ ) - #define Gia_LutForEachFaninObj( p, i, pFanin, k ) \ diff --git a/abc-header.patch b/abc-header.patch deleted file mode 100644 index aa5ce97..0000000 --- a/abc-header.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- src/sat/glucose/Glucose.cpp.orig 2019-05-30 20:27:31.000000000 -0600 -+++ src/sat/glucose/Glucose.cpp 2019-06-04 09:41:02.469658200 -0600 -@@ -33,6 +33,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR - #include "sat/glucose/Solver.h" - #include "sat/glucose/Constants.h" - #include "sat/glucose/System.h" -+#include "misc/util/abc_global.h" - - ABC_NAMESPACE_IMPL_START - ---- src/sat/glucose2/Glucose2.cpp.orig -+++ src/sat/glucose2/Glucose2.cpp -@@ -34,6 +34,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR - #include "sat/glucose2/Solver.h" - - #include "sat/glucose2/CGlucose.h" -+#include "misc/util/abc_global.h" - - ABC_NAMESPACE_IMPL_START - diff --git a/abc-null-fprintf.patch b/abc-null-fprintf.patch deleted file mode 100644 index 1bfd75d..0000000 --- a/abc-null-fprintf.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/base/exor/exorUtil.c.orig 2022-10-19 06:05:56.000000000 -0600 -+++ src/base/exor/exorUtil.c 2022-11-16 11:40:26.252322689 -0700 -@@ -189,7 +189,7 @@ int WriteResultIntoFile( char * pFileNam - pFile = fopen( pFileName, "w" ); - if ( pFile == NULL ) - { -- fprintf( pFile, "\n\nCannot open the output file\n" ); -+ fprintf( stderr, "\n\nCannot open the output file\n" ); - return 1; - } - diff --git a/abc-sharedlib.patch b/abc-sharedlib.patch deleted file mode 100644 index 92fa915..0000000 --- a/abc-sharedlib.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- Makefile.orig 2019-06-04 09:40:32.212192338 -0600 -+++ Makefile 2019-06-04 09:40:51.291855524 -0600 -@@ -55,7 +55,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 -@@ -221,7 +221,9 @@ lib$(PROG).a: $(LIBOBJ) - - lib$(PROG).so: $(LIBOBJ) - @echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@) -- $(VERBOSE)$(CXX) -shared -o $@ $^ $(LIBS) -+ $(VERBOSE)$(CXX) -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 $@ - - docs: - @echo "$(MSG_PREFIX)\`\` Building documentation." $(notdir $@) diff --git a/abc-weaken-assert.patch b/abc-weaken-assert.patch deleted file mode 100644 index 57ca3e8..0000000 --- a/abc-weaken-assert.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/base/io/ioWritePla.c.orig 2022-10-19 06:05:56.000000000 -0600 -+++ src/base/io/ioWritePla.c 2022-11-21 11:18:23.452898568 -0700 -@@ -174,7 +174,7 @@ int Io_WritePla( Abc_Ntk_t * pNtk, char - FILE * pFile; - - assert( Abc_NtkIsSopNetlist(pNtk) ); -- assert( Abc_NtkLevel(pNtk) == 1 ); -+ assert( Abc_NtkLevel(pNtk) <= 1 ); - - pFile = fopen( pFileName, "w" ); - if ( pFile == NULL ) diff --git a/abc-yosys-segfault.patch b/abc-yosys-segfault.patch deleted file mode 100644 index 602c820..0000000 --- a/abc-yosys-segfault.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 1de4eafb0da0639199bd97f2fa98471e76327a6b Mon Sep 17 00:00:00 2001 -From: Miodrag Milanovic -Date: Tue, 6 Jun 2023 13:59:30 +0200 -Subject: [PATCH] fix segfault - ---- - src/base/io/ioWriteVerilog.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git src/base/io/ioWriteVerilog.c src/base/io/ioWriteVerilog.c -index 48b15b559..3d9f8fa38 100644 ---- src/base/io/ioWriteVerilog.c -+++ src/base/io/ioWriteVerilog.c -@@ -561,7 +561,7 @@ void Io_WriteVerilogObjects( FILE * pFile, Abc_Ntk_t * pNtk, int fOnlyAnds ) - vLevels = Vec_VecAlloc( 10 ); - Abc_NtkForEachNode( pNtk, pObj, i ) - { -- if ( Abc_ObjFaninNum(pObj) == 1 || Abc_ObjIsCo(Abc_ObjFanout0(Abc_ObjFanout0(pObj))) ) -+ if ( Abc_ObjFaninNum(pObj) == 1 && Abc_ObjIsCo(Abc_ObjFanout0(Abc_ObjFanout0(pObj))) ) - { - int iLit = Abc_Var2Lit( Abc_ObjId( Abc_ObjFanin0(Abc_ObjFanin0(pObj)) ), Abc_NodeIsInv(pObj) ); - int iObj = Vec_IntEntry( vMap, iLit ); diff --git a/abc.1 b/abc.1 deleted file mode 100644 index cb64b7f..0000000 --- a/abc.1 +++ /dev/null @@ -1,102 +0,0 @@ -.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\-Q\fP \fICMD\fP -Execute commands \fICMD\fP quietly, 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. diff --git a/abc.spec b/abc.spec deleted file mode 100644 index 1934b6c..0000000 --- a/abc.spec +++ /dev/null @@ -1,307 +0,0 @@ -# Upstream doesn't make releases. We have to check the code out of git. -%global gittag e61194bbed8c2ba8aac1f2720ebe513a571ee664 -%global shorttag %(cut -b -7 <<< %{gittag}) -%global gitdate 20230708 - -# 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-libs-debuginfo-.rpm \ -# --d1 abc-debuginfo-.rpm \ -# --d2 abc-libs-debuginfo-.rpm \ -# --d2 abc-debuginfo-.rpm \ -# --devel1 abc-devel-.rpm \ -# --devel2 abc-devel-.rpm \ -# abc-libs-.rpm abc-libs-.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: 40.git%{gitdate}%{?dist} -Summary: Sequential logic synthesis and formal verification - -# The ABC code itself is MIT-Modern-Variant. -# The bundled CUDD code is BSD-3-Clause. -# The bundled glucose code is MIT. -# The bundled minisat code is MIT. -# The bundled satoko code is BSD-2-Clause -License: MIT-Modern-Variant AND MIT AND BSD-2-Clause AND BSD-3-Clause -URL: https://people.eecs.berkeley.edu/~alanmi/abc/abc.htm -Source0: https://github.com/berkeley-abc/abc/archive/%{gittag}/%{name}-%{shorttag}.tar.gz -# 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 -# Fix a minor header issue -Patch2: %{name}-header.patch -# Set an soname on the library -Patch3: %{name}-build.patch -# Fix sprintf calls that can overflow their buffers -Patch4: %{name}-format.patch -# Fix an out-of-bounds array access in the gia code -# https://github.com/berkeley-abc/abc/pull/89 -Patch5: %{name}-gia.patch -# Do not pass NULL to fprintf -# https://github.com/berkeley-abc/abc/pull/194 -Patch6: %{name}-null-fprintf.patch -# Weaken an overzealous assert -# https://bitbucket.org/alanmi/abc/issue/27/assertion-failure-in-write_pla-command -Patch7: %{name}-weaken-assert.patch -# yosys aiger segfault (yosyshq downstream commit): -Patch8: abc-yosys-segfault.patch - -BuildRequires: cmake -BuildRequires: gcc-c++ -BuildRequires: make -BuildRequires: pkgconfig(bzip2) -BuildRequires: pkgconfig(readline) -BuildRequires: pkgconfig(zlib) - -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 -# ABC includes a bundled and modified version of CUDD 2.4.2. The CUDD package -# is no longer available from Fedora since the disappearance of the upstream -# web site (and the last released version was 3.0.0). -Provides: bundled(cudd) = 2.4.2 -# ABC includes a bundled and modified version of glucose (which version?) -Provides: bundled(glucose) -# ABC includes a bundled and modified version of minisat (which version?). -Provides: bundled(minisat2) -# ABC includes a bundled and modified version of satoko (which version?). -Provides: bundled(satoko) - -%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 -%autosetup -p0 -n %{name}-%{gittag} - -# Do not use the bundled bzip2 or zlib libraries -rm -fr lib src/misc/{bzlib,zlib} - -# Set the version number in the man page -sed 's/@VERSION@/%{version} (%{gitdate})/' %{SOURCE1} > %{name}.1 -touch -r %{SOURCE1} %{name}.1 - -# Do not override Fedora optimization flags -sed -i 's/ -O//' Makefile - -%build -export CFLAGS='%{build_cflags} -DNDEBUG' -export CXXFLAGS='%{build_cxxflags} -DNDEBUG' -%ifarch s390x -CFLAGS="$CFLAGS -DEPD_BIG_ENDIAN" -CXXFLAGS="$CXXFLAGS -DEPD_BIG_ENDIAN" -%endif -export ABC_MAKE_VERBOSE=1 -export ABC_USE_STDINT_H=1 -%cmake -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES -%cmake_build - -%install -# %%cmake_install does not install anything. Install by hand. - -# Install the binary -cd %{_vpath_builddir} -mkdir -p %{buildroot}%{_bindir} -install -p -m 0755 %{name} %{buildroot}%{_bindir} - -# Install the library -mkdir -p %{buildroot}%{_libdir} -cp -pd lib%{name}.so* %{buildroot}%{_libdir} -cd - - -# Install the header files -cd src -mkdir -p %{buildroot}%{_includedir}/%{name} -tar -cf - $(find -O3 . -name \*.h) | \ - (cd %{buildroot}%{_includedir}/%{name}; tar -xf -) -cd - - -# Install the man page -mkdir -p %{buildroot}%{_mandir}/man1 -install -p -m 0644 %{name}.1 %{buildroot}%{_mandir}/man1 - -%files -%doc README.md readmeaig -%{_bindir}/%{name} -%{_mandir}/man1/%{name}* - -%files libs -%license copyright.txt -%{_libdir}/lib%{name}.so.0* - -%files devel -%{_includedir}/%{name}/ -%{_libdir}/lib%{name}.so - -%changelog -* Sun Jul 30 2023 Gabriel Somlo - 1.01-40.git20230708 -- Apply patch from yosyshq to fix yosys FTBFS (#2226521) - -* Wed Jul 19 2023 Fedora Release Engineering - 1.01-39.git20230708 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Fri Jul 14 2023 Jerry James - 1.01-38.git20230708 -- Update to latest git snapshot -- Drop upstreamed patches: overflow, use-after-free - -* Wed Jan 18 2023 Fedora Release Engineering - 1.01-37.git20221229 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Jan 17 2023 Jerry James - 1.01-36.git20221229 -- Update to latest git snapshot -- Add -use-after-free, -null-fprintf, and -weaken-assert patches -- Minor spec file cleanups - -* Mon Aug 1 2022 Jerry James - 1.01-35.git20220731 -- Update to latest git snapshot -- Convert License field to SPDX - -* Wed Jul 20 2022 Fedora Release Engineering - 1.01-34.git20211229 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Wed Jan 19 2022 Fedora Release Engineering - 1.01-33.git20211229 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Mon Jan 17 2022 Jerry James - 1.01-32.git20211229 -- Update to latest git snapshot -- Drop upstreamed -strict-aliasing patch - -* Wed Jul 21 2021 Fedora Release Engineering - 1.01-31.git20210328 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Mar 31 2021 Jerry James - 1.01-30.git20210328 -- Update to latest git snapshot -- Add patches: -strict-aliasing, -overflow -- Avoid bogus rpaths - -* Mon Jan 25 2021 Fedora Release Engineering - 1.01-29.git20201126 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Thu Nov 26 2020 Gabriel Somlo - 1.01-28.git20201126 -- Update to latest git snapshot - -* Mon Jul 27 2020 Jerry James - 1.01-27.git20200720 -- Update to latest git snapshot -- Add -gia patch to fix crash -- Adapt to cmake changes in Rawhide - -* Mon Jul 27 2020 Fedora Release Engineering - 1.01-27.git20200127 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jan 31 2020 Gabriel Somlo - 1.01-26.git20200127 -- Update to latest git snapshot - -* Tue Jan 28 2020 Fedora Release Engineering - 1.01-25.git20191217 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Dec 18 2019 Jerry James - 1.01-24.git20191217 -- Update to latest git snapshot -- Add -giaDeep patch to fix build failure - -* Wed Jul 24 2019 Fedora Release Engineering - 1.01-23.git20190608 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed Jun 12 2019 Jerry James - 1.01-22.git20190608 -- Update to latest git snapshot -- Add -build and -format patches -- Build with cmake -- Enable CUDD support - -* Sun Feb 17 2019 Igor Gnatenko - 1.01-21.git20181121 -- Rebuild for readline 8.0 - -* Thu Jan 31 2019 Fedora Release Engineering - 1.01-20.git20181121 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Nov 26 2018 Jerry James - 1.01-19.git20181121 -- Update to latest git snapshot - -* Thu Jul 12 2018 Fedora Release Engineering - 1.01-18.git20180708 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jul 10 2018 Jerry James - 1.01-17.git20180708 -- Update to latest git snapshot - -* Sat Mar 3 2018 Jerry James - 1.01-16.hg20180228 -- Update to latest mercurial snapshot -- BR gcc-c++ instead of gcc - -* Wed Feb 07 2018 Fedora Release Engineering - 1.01-15.hg20180129 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Fri Feb 2 2018 Jerry James - 1.01-14.hg20180129 -- Update to latest mercurial snapshot - -* Wed Aug 02 2017 Fedora Release Engineering - 1.01-13.hg20160905 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 1.01-12.hg20160905 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Fri Feb 10 2017 Fedora Release Engineering - 1.01-11.hg20160905 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Thu Jan 12 2017 Igor Gnatenko - 1.01-10.hg20160905 -- Rebuild for readline 7.x - -* Sat Sep 10 2016 Eric Smith - 1.01-9.hg20160905 -- Update to latest mercurial snapshot - -* Fri Feb 5 2016 Jerry James - 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 - 1.01-7.hg20150306 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Jun 16 2015 Fedora Release Engineering - 1.01-6.hg20150306 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sat May 02 2015 Kalev Lember - 1.01-5.hg20150306 -- Rebuilt for GCC 5 C++11 ABI change - -* Sat Mar 7 2015 Jerry James - 1.01-4.hg20150306 -- Update to latest mercurial snapshot - -* Thu Jan 1 2015 Jerry James - 1.01-3.hg20150101 -- Update to latest mercurial snapshot -- Fix installation of header files - -* Wed Dec 3 2014 Jerry James - 1.01-2.hg20141130 -- Drop unnecessary jquery Provides -- Fix file permissions - -* Mon Dec 1 2014 Jerry James - 1.01-1.hg20141130 -- Initial RPM diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..581d82a --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Superseded by yosyshq-abc diff --git a/sources b/sources deleted file mode 100644 index d6e0d0c..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (abc-e61194b.tar.gz) = cd8b524b90f543ed1f6ecb6597ebedd78b7a6c0c8e65c078d655b213f1752397fdab111be3eb6828c3a758782127d0abe60cfe2729358d3bef8f97b17bfebe90