diff options
-rw-r--r-- | sci-electronics/freehdl/Manifest | 1 | ||||
-rw-r--r-- | sci-electronics/freehdl/files/freehdl-0.0.8-fix-c++14.patch | 507 | ||||
-rw-r--r-- | sci-electronics/freehdl/files/freehdl-0.0.8-qa.patch | 279 | ||||
-rw-r--r-- | sci-electronics/freehdl/freehdl-0.0.8.ebuild | 33 |
4 files changed, 820 insertions, 0 deletions
diff --git a/sci-electronics/freehdl/Manifest b/sci-electronics/freehdl/Manifest index c07d576ddbbf..bd71078be7a9 100644 --- a/sci-electronics/freehdl/Manifest +++ b/sci-electronics/freehdl/Manifest @@ -1 +1,2 @@ DIST freehdl-0.0.7.tar.gz 1394351 SHA256 b12f2066d856d03e8abc0d93d6ba566b9c55b18e60d47614106c64030324d2de SHA512 3e2ca8fe4c6ba4d112d716ae48856e6ecfecf6eceac7a4bf0665c9a99d9fca880c4af095a6db093a9d7005d2b7cc753c287a3af850d05738c64c78b3c0dad566 WHIRLPOOL f86afdc4a5069ef141d2ba338648e621586724bf96c4d83da1549012ee2d2f6bbcda24e3d197267e41c631791e5737cd069241e563b0eebf016c857915c10c21 +DIST freehdl-0.0.8.tar.gz 1389888 SHA256 7f0978f8252329450de43e98c04c15fdd8a3f2bdc5ca91f75f8f5dd280c6ed84 SHA512 731fde1a940a762e570107819a89ac2884029e5c4f5d51e5df0032a4381fd04c7da948b5f2de6b1ce60801f6ce3a0a9123a4902e75e216a1182b25b2134f44ee WHIRLPOOL b9f496f0fdfcd8b4d3b2c4b731c2d6884760417604023c20e5c0d2f451a6883da86da8e8f935c2491d3b9d451927ce1791447303c67df05d4338795b63261a14 diff --git a/sci-electronics/freehdl/files/freehdl-0.0.8-fix-c++14.patch b/sci-electronics/freehdl/files/freehdl-0.0.8-fix-c++14.patch new file mode 100644 index 000000000000..6da5bb1b27a1 --- /dev/null +++ b/sci-electronics/freehdl/files/freehdl-0.0.8-fix-c++14.patch @@ -0,0 +1,507 @@ +C++11 has added new types (std::hash), which get dropped into the namespace due to +awful 'using namespace std;' declarations everywhere, causing name collisions. +Instead, only drop a minimal set of declarations into the global :: namespace. +See also: https://bugs.gentoo.org/show_bug.cgi?id=594706 + +--- a/fire/test-fire.cc ++++ b/fire/test-fire.cc +@@ -2,7 +2,7 @@ + #include <stdio.h> + #include <freehdl/fire.h> + +-using namespace std; ++using std::cout; + + extern tree_chunk_info fire_chunk_info; + +--- a/freehdl/cdfggen-chunk.h ++++ b/freehdl/cdfggen-chunk.h +@@ -7,7 +7,9 @@ + #include <string> + #include <vector> + typedef enum {to, downto} cdfgg_direction; +-using namespace std; ++using std::string; ++using std::vector; ++using std::pair; + + extern tree_chunk_info cdfggen_chunk_info; + extern tree_ctype_info int_ctype_info; +--- a/freehdl/cdfggen-chunk.t ++++ b/freehdl/cdfggen-chunk.t +@@ -13,8 +13,7 @@ + (header-add "#include <freehdl/tree-supp.h>" + "#include <string>" + "#include <vector>" +- "typedef enum {to, downto} cdfgg_direction;" +- "using namespace std;") ++ "typedef enum {to, downto} cdfgg_direction;") + + (impl-add "#include <freehdl/cdfggen-chunk.h>") + +--- a/freehdl/kernel-attributes.hh ++++ b/freehdl/kernel-attributes.hh +@@ -1,6 +1,8 @@ + #ifndef FREEHDL_KERNEL_ATTRIBUTES_H + #define FREEHDL_KERNEL_ATTRIBUTES_H + ++using std::max; ++ + /* ************************************************************* + * Function kind attributes for signals + * ************************************************************* */ +--- a/freehdl/kernel-db.hh ++++ b/freehdl/kernel-db.hh +@@ -3,6 +3,8 @@ + + #include <assert.h> + ++#include <string> ++using std::string; + + /* This header file includes the definitions that are required to + * setup a kernel database. This database will be used by the kernel +@@ -254,7 +256,7 @@ + + // A hash function template used tp generate a hash number from + // d +-class db_basic_key_hash : public hash<unsigned long> { ++class db_basic_key_hash : public __gnu_cxx::hash<unsigned long> { + public: + size_t operator()(const db_basic_key& x) const { + return (*(hash<unsigned long> *)this)(((unsigned long)x.value)>>2); +--- a/freehdl/kernel-dump.hh ++++ b/freehdl/kernel-dump.hh +@@ -13,9 +13,9 @@ + #include <string> + #include <fstream> + +-using namespace std; ++using std::fstream; + +-typedef map<string, char*, less<string> > Tmap; ++typedef map<string, const char*, less<string> > Tmap; + extern Tmap mapping_translation_table; + + // For each signal which is dumped an virtual process is created. This +--- a/freehdl/kernel-fhdl-stream.hh ++++ b/freehdl/kernel-fhdl-stream.hh +@@ -9,7 +9,9 @@ + #include <string> + #include <iostream> + +-using namespace std; ++using std::istream; ++using std::ostream; ++using std::string; + + struct fhdl_ostream_t { + union { +--- a/freehdl/kernel-map-list.hh ++++ b/freehdl/kernel-map-list.hh +@@ -7,7 +7,6 @@ + #include <freehdl/kernel-acl.hh> + #include <freehdl/kernel-sig-info.hh> + +-using namespace std; + //using namespace __gnu_cxx; + + // A signal_link instance describes the connection +--- a/freehdl/kernel-name-stack.hh ++++ b/freehdl/kernel-name-stack.hh +@@ -3,7 +3,7 @@ + + #include <string> + +-using namespace std; ++using std::string; + + #define NAME_STACK_INCREMENT 10 + +--- a/freehdl/kernel-signal-source-list-array.hh ++++ b/freehdl/kernel-signal-source-list-array.hh +@@ -13,7 +13,6 @@ + #include <freehdl/kernel-util.hh> + #include <freehdl/kernel-source-descriptor.hh> + +-using namespace std; + //using namespace __gnu_cxx; + + // signal_source stores information about a source of a signal. Note +--- a/freehdl/kernel-util.hh ++++ b/freehdl/kernel-util.hh +@@ -15,7 +15,8 @@ + #include <hash_map> + #endif + +-using namespace std; ++using std::stringstream; ++using std::string; + + #if !defined __GNUC__ || __GNUC__ != 2 + using namespace __gnu_cxx; +@@ -24,7 +25,7 @@ + // A hash function template used tp generate a hash number from + // pointer values. + template<class T> +-class pointer_hash : public hash<unsigned long> { ++class pointer_hash : public __gnu_cxx::hash<unsigned long> { + public: + size_t operator()(const T& x) const { + return (*(hash<unsigned long> *)this)(((unsigned long)x)>>2); +--- a/freehdl/std.h ++++ b/freehdl/std.h +@@ -1,7 +1,6 @@ + #ifndef FREEHDL_STD_H + #define FREEHDL_STD_H + +-using namespace std; + + #include <freehdl/std-standard.hh> + #include <freehdl/std-vhdl-types.hh> +--- a/freehdl/std-vhdl-types.hh ++++ b/freehdl/std-vhdl-types.hh +@@ -6,13 +6,24 @@ + #include <float.h> + #include <math.h> + #include <iostream> ++#include <map> ++#include <list> ++#include <functional> + #include <string.h> + + #include <freehdl/std-memory.hh> + #include <freehdl/kernel-error.hh> + #include <freehdl/kernel-acl.hh> + +-using namespace std; ++using std::string; ++using std::istream; ++using std::ostream; ++using std::min; ++using std::map; ++using std::stringstream; ++using std::list; ++using std::less; ++using std::iostream; + + typedef long long int lint; + const int BUFFER_STREAM_SIZE_INCREMENT = 1024; +--- a/freehdl/vaul-lexer.h ++++ b/freehdl/vaul-lexer.h +@@ -32,7 +32,6 @@ + #include <stdarg.h> + #include <string.h> + +-using namespace std; + + #undef yyFlexLexer + #define yyFlexLexer vaul_FlexLexer +--- a/ieee/numeric_std.cc ++++ b/ieee/numeric_std.cc +@@ -2,6 +2,7 @@ + #include <freehdl/std.h> + + ++using std::max; + + /* package :ieee:numeric_std */ + /* External declarations */ +--- a/kernel/attributes.cc ++++ b/kernel/attributes.cc +@@ -5,6 +5,7 @@ + #include <freehdl/kernel-kernel-class.hh> + #include <freehdl/kernel-reader-info.hh> + #include <freehdl/kernel-driver-info.hh> ++using std::max; + #include <freehdl/kernel-attributes.hh> + + +--- a/kernel/db.cc ++++ b/kernel/db.cc +@@ -1,6 +1,5 @@ + #define KERNEL // Include internal kernel definitions + +-using namespace std; + #include <freehdl/kernel-db.hh> + + +--- a/kernel/fhdl_stream.cc ++++ b/kernel/fhdl_stream.cc +@@ -7,6 +7,9 @@ + #include <freehdl/kernel-error.hh> + #include <freehdl/kernel-fhdl-stream.hh> + ++using std::cin; ++using std::cout; ++using std::stringstream; + + // Error stream to output error messages generated by the kernel, + // e.g. to print error messages due to invalid simulator commands +--- a/kernel/kernel_class.cc ++++ b/kernel/kernel_class.cc +@@ -16,6 +16,10 @@ + #include <freehdl/kernel-resolver-descriptor.hh> + #include <freehdl/kernel-fhdl-stream.hh> + ++using std::cerr; ++using std::pair; ++using std::binary_function; ++ + // Arguments that are passed in form the command line + int main_argc; + char **main_argv; +--- a/kernel/main.cc ++++ b/kernel/main.cc +@@ -34,6 +34,15 @@ + #include <freehdl/kernel-error.hh> + #include <freehdl/kernel-fhdl-stream.hh> + ++using std::ios; ++using std::ifstream; ++using std::ofstream; ++using std::ostringstream; ++using std::cin; ++using std::cerr; ++using std::cout; ++using std::endl; ++ + #ifdef PERFMON_STATISTICS + #include "pcounter.hh" + #endif +--- a/kernel/map_list.cc ++++ b/kernel/map_list.cc +@@ -4,6 +4,8 @@ + #include <freehdl/kernel-sig-info.hh> + #include <freehdl/kernel-resolver-descriptor.hh> + ++using std::max; ++ + // Stores the father signal(s) of port signals + port_signal_link_map_t port_signal_link_map; + +--- a/kernel/name_stack.cc ++++ b/kernel/name_stack.cc +@@ -1,8 +1,10 @@ + #include <stdlib.h> + #include <stdio.h> ++#include <stack> + #include <freehdl/kernel-error.hh> + #include <freehdl/kernel-name-stack.hh> + ++using std::stack; + + name_stack instance_name; + +--- a/kernel/persistent_cdfg_dump.cc ++++ b/kernel/persistent_cdfg_dump.cc +@@ -3,6 +3,7 @@ + #include <freehdl/kernel-persistent-cdfg-dump.hh> + #include <freehdl/kernel-persistent-dump.hh> + ++using std::endl; + + buffer_stream register_cdfg_tmp_buffer; + +--- a/kernel/sig_info.cc ++++ b/kernel/sig_info.cc +@@ -1,6 +1,5 @@ + #define KERNEL // Include internal kernel definitions + +-using namespace std; + #include <freehdl/kernel-error.hh> + #include <freehdl/kernel-db.hh> + #include <freehdl/kernel-sig-info.hh> +--- a/std/internal_textio.cc ++++ b/std/internal_textio.cc +@@ -10,6 +10,10 @@ + #include <freehdl/kernel-name-stack.hh> + #include <freehdl/kernel-register.hh> + ++using std::ios; ++using std::cin; ++using std::cout; ++ + /* package :std:textio */ + + /* Definitions for access type :std:textio:line */ +--- a/std/vhdl_types.cc ++++ b/std/vhdl_types.cc +@@ -12,6 +12,9 @@ + #include <freehdl/kernel-register.hh> + + ++using std::ios; ++using std::ifstream; ++using std::ofstream; + + /* ************************************************************* + * Some global functions +--- a/v2cc/mapping.cc ++++ b/v2cc/mapping.cc +@@ -34,7 +34,12 @@ + #include <iostream> + #include <stdlib.h> + +-using namespace std; ++using std::string; ++using std::list; ++using std::map; ++using std::istream; ++using std::ifstream; ++using std::cerr; + + v2cc_mapper::v2cc_mapper () + { +--- a/v2cc/v2cc.cc ++++ b/v2cc/v2cc.cc +@@ -35,7 +35,6 @@ + + */ + +-using namespace std; + + #if HAVE_MALLOC_H + #include <malloc.h> +--- a/v2cc/v2cc-const-fold.cc ++++ b/v2cc/v2cc-const-fold.cc +@@ -16,6 +16,9 @@ + #include "v2cc-util.h" + + ++using std::cerr; ++using std::max; ++using std::min; + + // Used to generate error messages + extern vaul_error_printer codegen_error; +--- a/v2cc/v2cc-decl.cc ++++ b/v2cc/v2cc-decl.cc +@@ -13,6 +13,9 @@ + #include "mapping.h" + #include "v2cc-util.h" + ++using std::endl; ++using std::min; ++using std::max; + + void test (RegionStack &rstack) + { +--- a/v2cc/v2cc-explore.cc ++++ b/v2cc/v2cc-explore.cc +@@ -15,7 +15,6 @@ + #include "mapping.h" + #include "v2cc-util.h" + +-using namespace std; + + // Used to generate error messages + extern vaul_error_printer codegen_error; +--- a/v2cc/v2cc.h ++++ b/v2cc/v2cc.h +@@ -1,7 +1,17 @@ + #ifndef V2CC_HEADER + #define V2CC_HEADER + +-using namespace std; ++using std::vector; ++using std::list; ++using std::string; ++using std::pair; ++using std::string; ++using std::set; ++using std::less; ++using std::deque; ++using std::binary_function; ++using std::map; ++using std::binary_function; + + #include <freehdl/vaul.h> + #include "mapping.h" +--- a/v2cc/v2cc-qid.cc ++++ b/v2cc/v2cc-qid.cc +@@ -4,6 +4,7 @@ + #include "v2cc-util.h" + + ++using std::endl; + + // ****************************************************************************************** + // Name: m_qid , generic function +--- a/v2cc/v2cc-util.cc ++++ b/v2cc/v2cc-util.cc +@@ -9,6 +9,9 @@ + + #include "v2cc-util.h" + ++using std::endl; ++using std::hex; ++using std::dec; + + // ****************************************************************************************** + // Some global variables +--- a/v2cc/v2cc-util.h ++++ b/v2cc/v2cc-util.h +@@ -2,13 +2,18 @@ + #ifndef V2CC_UTIL_H + #define V2CC_UTIL_H + +-using namespace std; + + #include <sstream> + #include <iomanip> + #include <freehdl/vaul.h> + #include "v2cc-chunk.h" + ++using std::stringstream; ++using std::setprecision; ++using std::showpoint; ++using std::ofstream; ++using std::cout; ++ + // ****************************************************************************************** + // Some global variables + // ****************************************************************************************** +--- a/vaul/bison-parser.cc ++++ b/vaul/bison-parser.cc +@@ -86,7 +86,6 @@ + #include <malloc.h> + #endif + +-using namespace std; + + #define YYINITDEPTH 10000 + #define YYMAXDEPTH 100000 +--- a/vaul/bison-parser.yy ++++ b/vaul/bison-parser.yy +@@ -49,7 +49,6 @@ + #include <malloc.h> + #endif + +-using namespace std; + + #define YYINITDEPTH 10000 + #define YYMAXDEPTH 100000 +--- a/vaul/printer.cc ++++ b/vaul/printer.cc +@@ -27,7 +27,8 @@ + #include <string.h> + #include <sstream> + +-using namespace std; ++using std::ostringstream; ++using std::ostream; + + void vaul_printer::printf (const char *fmt, ...) + { +--- a/vaul/tree.cc ++++ b/vaul/tree.cc +@@ -31,7 +31,7 @@ + #include <assert.h> + #include <stdlib.h> + +-using namespace std; ++using std::ostream; + + vaul_id_set::vaul_id_set(int dummy) + { diff --git a/sci-electronics/freehdl/files/freehdl-0.0.8-qa.patch b/sci-electronics/freehdl/files/freehdl-0.0.8-qa.patch new file mode 100644 index 000000000000..d35af9f69a69 --- /dev/null +++ b/sci-electronics/freehdl/files/freehdl-0.0.8-qa.patch @@ -0,0 +1,279 @@ +Fix various QA issues: +* Use correct printf format specifiers for 'size_t' +* Fix const correctness ('char*' -> 'const char*') for C-string literals +* Correctly forward declare inline functions + +--- a/fire/test-fire.cc ++++ b/fire/test-fire.cc +@@ -24,7 +24,7 @@ + if (k->size < (size_t) N) + sizes[k->size]++; + if (k->size % 4 !=0) +- printf ("odd size: %d\n", k->size); ++ printf ("odd size: %zu\n", k->size); + } + printf ("min = %d, max = %d\n", min, max); + for (int i = min; i <= max && i < N; i+=4) +--- a/fire/tree-supp.cc ++++ b/fire/tree-supp.cc +@@ -485,7 +485,7 @@ + if (size < (size_t) N) + sizes[size]++; + if (size % 4 !=0) +- printf ("odd size: %d\n", size); ++ printf ("odd size: %zu\n", size); + } + + void +--- a/freehdl/kernel-dump.hh ++++ b/freehdl/kernel-dump.hh +@@ -42,9 +42,9 @@ + short wait_id; + // This function will return an appropriate table entry (if + // available) +- char *find_table(type_info_interface* type); ++ const char *find_table(type_info_interface* type); + //this variable is used by the read_type function +- char* translation_table; ++ const char* translation_table; + // This method is executed each time the signal value changes + bool execute(); + // Continue dumping the signal. +@@ -77,7 +77,7 @@ + extern list<signal_dump*> signal_dump_process_list; + + // Used to store the user_defined translation table types +-extern map<string, char*, less<string> > mapping_translation_table; ++extern map<string, const char*, less<string> > mapping_translation_table; + + + /****************************************************** +--- a/freehdl/kernel-fhdl-stream.hh ++++ b/freehdl/kernel-fhdl-stream.hh +@@ -29,7 +31,7 @@ + str->flush(); + } + +- fhdl_ostream_t &operator<<(char *p); ++ fhdl_ostream_t &operator<<(const char *p); + fhdl_ostream_t &operator<<(const string &a); + fhdl_ostream_t &operator<<(const int i); + fhdl_ostream_t &operator<<(const unsigned int i); +--- a/freehdl/std-vhdl-types.hh ++++ b/freehdl/std-vhdl-types.hh +@@ -607,7 +618,7 @@ + // which caused the failure or NULL otherwise. + virtual const char *read(void *dest, const char *str) = 0; + // Prints the content of src into an string stream in VCD format +- virtual void vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure) = 0; ++ virtual void vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure) = 0; + // Prints value into binary stream. Note that only the raw data but + // no type info objects are written! The method returns the number + // of bytes written to the stream. +@@ -785,7 +796,7 @@ + bool assign(void *dest, const void *src); + void remove(void *src); + void print(buffer_stream &str, const void *src, int mode); +- void vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure); ++ void vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure); + const char *read(void *dest, const char *str); + + integer check(integer value) { +@@ -821,7 +832,7 @@ + bool assign(void *dest, const void *src); + void remove(void *src); + void print(buffer_stream &str, const void *src, int mode); +- void vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure) {}; ++ void vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure) {}; + const char *read(void *dest, const char *str); + }; + +@@ -849,7 +860,7 @@ + bool assign(void *dest, const void *src); + void remove(void *src); + void print(buffer_stream &str, const void *src, int mode) {}; +- void vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure) {}; ++ void vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure) {}; + const char *read(void *dest, const char *str); + }; + +@@ -879,7 +890,7 @@ + bool assign(void *dest, const void *src); + void remove(void *src); + void print(buffer_stream &str, const void *src, int mode); +- void vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure); ++ void vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure); + const char *read(void *dest, const char *str); + + floatingpoint check(floatingpoint value) { +@@ -914,7 +925,7 @@ + bool assign(void *dest, const void *src); + void remove(void *src); + void print(buffer_stream &str, const void *src, int mode); +- void vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure); ++ void vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure); + const char *read(void *dest, const char *str); + + enumeration check(integer value) { +@@ -954,7 +965,7 @@ + bool assign(void *dest, const void *src); + void remove(void *src); + void print(buffer_stream &str, const void *src, int mode); +- void vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure) ; ++ void vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure) ; + const char *read(void *dest, const char *str); + + physical check(physical value) { +@@ -1087,7 +1098,7 @@ + bool assign(void *dest, const void *src) { return false; }; + void remove(void *src); + void print(buffer_stream &str, const void *src, int mode); +- void vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure) ; ++ void vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure) ; + const char *read(void *dest, const char *str); + }; + +@@ -1230,7 +1241,7 @@ + bool assign(void *dest, const void *src) { return false; }; + void remove(void *src); + void print(buffer_stream &str, const void *src, int mode); +- void vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure); ++ void vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure); + const char *read(void *dest, const char *str); + }; + +--- a/freehdl/vaul-lexer.h ++++ b/freehdl/vaul-lexer.h +@@ -115,7 +114,7 @@ + IR_String expand_bitstring(const char *, int len); + + int LexerInput(char *buf, int max_size); +- void LexerError(char *msg); ++ void LexerError(const char *msg); + void message(char *fmt, va_list ap); + void message(vaul_yyltype &loc, char *fmt, va_list ap); + +--- a/kernel/driver_info.cc ++++ b/kernel/driver_info.cc +@@ -270,6 +270,7 @@ + + + // Creates transaction composite signals. Returns number of assigned scalars. ++inline int do_record_transport_assignment(driver_info &, const record_base &, int, const vtime &); + inline int + do_array_transport_assignment(driver_info &driver, const array_base &value, int first, const vtime &tr_time) + { +@@ -311,7 +312,6 @@ + assigned_scalars += do_array_transport_assignment(driver, (array_base&)value.data[j], i, tr_time); + break; + case RECORD: +- inline int do_record_transport_assignment(driver_info &, const record_base &, int, const vtime &); + assigned_scalars += do_record_transport_assignment(driver, (record_base&)value.data[j], i, tr_time); + break; + } +@@ -339,6 +339,7 @@ + + + // Creates transaction for composite signals. Returns number of assigned scalars. ++inline int do_record_inertial_assignment(driver_info &, const record_base &, int, const vtime &, const vtime &); + inline int + do_array_inertial_assignment(driver_info &driver, + const array_base &value, int first, +@@ -381,8 +382,6 @@ + assigned_scalars += do_array_inertial_assignment(driver, (array_base&)value.data[j], i, tr_time, rm_time); + break; + case RECORD: +- inline int do_record_inertial_assignment(driver_info &, const record_base &, int, +- const vtime &, const vtime &); + assigned_scalars += do_record_inertial_assignment(driver, (record_base&)value.data[j], i, tr_time, rm_time); + break; + } +--- a/kernel/dump.cc ++++ b/kernel/dump.cc +@@ -90,7 +90,7 @@ + + + // find_translation table +-char * ++const char * + signal_dump::find_table(type_info_interface* type) + { + switch(type->id) +--- a/kernel/fhdl_stream.cc ++++ b/kernel/fhdl_stream.cc +@@ -60,7 +63,7 @@ + } + + fhdl_ostream_t & +-fhdl_ostream_t::operator<<(char *p) ++fhdl_ostream_t::operator<<(const char *p) + { + if (!socket_connection) + *str << p; +--- a/std/vhdl_types.cc ++++ b/std/vhdl_types.cc +@@ -1013,7 +1016,7 @@ + } + + void +-integer_info_base::vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure) ++integer_info_base::vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure) + { + integer op =*((integer*)src); + static char result[INTEGER_SIZE_LD + 1]; +@@ -1306,7 +1309,7 @@ + } + + void +-float_info_base::vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure) { ++float_info_base::vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure) { + // should be definitly enough characters to hold a string + // representation of a double + static char rbuffer[8*sizeof(double)]; +@@ -1432,7 +1435,7 @@ + + + void +-enum_info_base::vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure) ++enum_info_base::vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure) + { + if (translation_table != NULL) { + const char output = translation_table[*((enumeration*)src)]; +@@ -1583,7 +1586,7 @@ + } + + void +-physical_info_base::vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure) { ++physical_info_base::vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure) { + str << *((physical*)src) << " " << units[0]; + } + +@@ -1778,7 +1781,7 @@ + } + + // Temporary VCD_Print function +-void array_info::vcd_print(buffer_stream &str, const void *src,char* translation_table, bool pure) ++void array_info::vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure) + { + //str.clean(); + int length = ((array_base*)src)->info->length; +@@ -2090,7 +2093,7 @@ + + + // Temporary VCD_Print function +-void record_info::vcd_print(buffer_stream &str, const void *src, char* translation_table, bool pure) ++void record_info::vcd_print(buffer_stream &str, const void *src, const char* translation_table, bool pure) + { + record_base &record = *(record_base*)src; + record_info &rinfo = *record.info; +--- a/vaul/lexer.cc ++++ b/vaul/lexer.cc +@@ -2075,7 +2075,7 @@ + } + + void +-vaul_lexer::LexerError (char *m) ++vaul_lexer::LexerError (const char *m) + { + if (prt) + prt->fprintf (log, "%?%s %C\n", this, m, this); diff --git a/sci-electronics/freehdl/freehdl-0.0.8.ebuild b/sci-electronics/freehdl/freehdl-0.0.8.ebuild new file mode 100644 index 000000000000..c11e4d948e94 --- /dev/null +++ b/sci-electronics/freehdl/freehdl-0.0.8.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +DESCRIPTION="A free VHDL simulator" +SRC_URI="mirror://sourceforge/qucs/${P}.tar.gz" +HOMEPAGE="http://freehdl.seul.org/" +LICENSE="GPL-2" + +SLOT="0" +IUSE="" +KEYWORDS="~amd64 ~ppc ~x86" + +RDEPEND=">=dev-scheme/guile-2.0:*" +DEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}/${PN}-0.0.8-fix-c++14.patch" + "${FILESDIR}/${PN}-0.0.8-qa.patch" +) + +src_configure() { + econf --disable-static +} + +src_install() { + default + + # package provides .pc files + find "${D}" -name '*.la' -delete || die +} |