aboutsummaryrefslogtreecommitdiff
path: root/cad/freehdl
diff options
context:
space:
mode:
authorWilliam Grzybowski <wg@FreeBSD.org>2013-09-06 15:39:44 +0000
committerWilliam Grzybowski <wg@FreeBSD.org>2013-09-06 15:39:44 +0000
commita72306e9e60d34ca64e24afddca574f98762e796 (patch)
treea7812a3ce5b79352ce00ac1c1b59d30babc279f4 /cad/freehdl
parent440556de07bc6fcf196024958ef314ddd5296cbe (diff)
downloadports-a72306e9e60d34ca64e24afddca574f98762e796.tar.gz
ports-a72306e9e60d34ca64e24afddca574f98762e796.zip
cad/freehdl: fix build with clang
- Fix build with clang PR: ports/181830 Obtained from: NetBSD
Notes
Notes: svn path=/head/; revision=326515
Diffstat (limited to 'cad/freehdl')
-rw-r--r--cad/freehdl/Makefile2
-rw-r--r--cad/freehdl/files/patch-freehdl_kernel-db.hh15
-rw-r--r--cad/freehdl/files/patch-freehdl_kernel-sig-info.hh13
-rw-r--r--cad/freehdl/files/patch-freehdl_kernel-util.hh15
-rw-r--r--cad/freehdl/files/patch-freehdl_std-vhdl-types.hh11
-rw-r--r--cad/freehdl/files/patch-kernel_driver__info.cc37
6 files changed, 92 insertions, 1 deletions
diff --git a/cad/freehdl/Makefile b/cad/freehdl/Makefile
index 231b22188d5b..5c5ff1904c08 100644
--- a/cad/freehdl/Makefile
+++ b/cad/freehdl/Makefile
@@ -7,7 +7,7 @@ CATEGORIES= cad
MASTER_SITES= http://freehdl.seul.org/~enaroska/
MAINTAINER= kamikaze@bsdforen.de
-COMMENT= A free VHDL simulator
+COMMENT= Free VHDL simulator
USE_LDCONFIG= yes
USES= gmake perl5 pkgconfig
diff --git a/cad/freehdl/files/patch-freehdl_kernel-db.hh b/cad/freehdl/files/patch-freehdl_kernel-db.hh
new file mode 100644
index 000000000000..effb1d35d4f2
--- /dev/null
+++ b/cad/freehdl/files/patch-freehdl_kernel-db.hh
@@ -0,0 +1,15 @@
+--- freehdl/kernel-db.hh.orig 2013-04-30 20:25:10.000000000 +0000
++++ freehdl/kernel-db.hh
+@@ -254,10 +254,10 @@ public:
+
+ // 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);
++ return (*(__gnu_cxx::hash<unsigned long> *)this)(((unsigned long)x.value)>>2);
+ }
+ };
+
diff --git a/cad/freehdl/files/patch-freehdl_kernel-sig-info.hh b/cad/freehdl/files/patch-freehdl_kernel-sig-info.hh
new file mode 100644
index 000000000000..2c178a3c3cf3
--- /dev/null
+++ b/cad/freehdl/files/patch-freehdl_kernel-sig-info.hh
@@ -0,0 +1,13 @@
+--- freehdl/kernel-sig-info.hh.orig 2013-02-25 17:49:33.000000000 +0000
++++ freehdl/kernel-sig-info.hh
+@@ -164,10 +164,6 @@ template<class T>class sig_info : public
+ type_info_interface *type, char attr, sig_info_base *base_sig,
+ acl *aclp, vtime delay, void *sr) :
+ sig_info_base(iname, n, sln, type, attr, base_sig, aclp, delay, sr) {};
+- /* Constructor to instantiate a guard signal */
+- sig_info(name_stack &iname, const char *n, const char *sln,
+- void *reader, void *sr) :
+- sig_info_base(iname, n, sln, reader, sr) {};
+ /* Constructor to instantiate an alias signal */
+ sig_info(name_stack &iname, const char *n, const char *sln,
+ type_info_interface *ty, sig_info_base *aliased_sig,
diff --git a/cad/freehdl/files/patch-freehdl_kernel-util.hh b/cad/freehdl/files/patch-freehdl_kernel-util.hh
new file mode 100644
index 000000000000..e6a583c8994a
--- /dev/null
+++ b/cad/freehdl/files/patch-freehdl_kernel-util.hh
@@ -0,0 +1,15 @@
+--- freehdl/kernel-util.hh.orig 2013-04-30 20:24:07.000000000 +0000
++++ freehdl/kernel-util.hh
+@@ -24,10 +24,10 @@ using namespace __gnu_cxx;
+ // 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);
++ return (*(__gnu_cxx::hash<unsigned long> *)this)(((unsigned long)x)>>2);
+ }
+ };
+
diff --git a/cad/freehdl/files/patch-freehdl_std-vhdl-types.hh b/cad/freehdl/files/patch-freehdl_std-vhdl-types.hh
new file mode 100644
index 000000000000..86c821983761
--- /dev/null
+++ b/cad/freehdl/files/patch-freehdl_std-vhdl-types.hh
@@ -0,0 +1,11 @@
+--- freehdl/std-vhdl-types.hh.orig 2013-02-25 17:33:20.000000000 +0000
++++ freehdl/std-vhdl-types.hh
+@@ -1483,7 +1483,7 @@ A concat(array_info *ainfo, const A &a1,
+ new_array.info->add_ref();
+
+ /* Allocate memory for the data */
+- const int mem_size = length * ainfo->element_type->size();
++ const int mem_size = length * ainfo->element_type->size;
+ new_array.data = (char*)internal_dynamic_alloc(mem_size);
+
+ /* Note, scalar(...) can be evaluated at compile time. */
diff --git a/cad/freehdl/files/patch-kernel_driver__info.cc b/cad/freehdl/files/patch-kernel_driver__info.cc
new file mode 100644
index 000000000000..8ef5a57e5276
--- /dev/null
+++ b/cad/freehdl/files/patch-kernel_driver__info.cc
@@ -0,0 +1,37 @@
+--- kernel/driver_info.cc.orig 2013-02-25 17:38:05.000000000 +0000
++++ kernel/driver_info.cc
+@@ -268,6 +268,7 @@ do_scalar_inertial_assignment(driver_inf
+ *************************************************************************
+ *************************************************************************/
+
++inline int do_record_transport_assignment(driver_info &, const record_base &, int, const vtime &);
+
+ // Creates transaction composite signals. Returns number of assigned scalars.
+ inline int
+@@ -311,7 +312,6 @@ do_array_transport_assignment(driver_inf
+ 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;
+ }
+@@ -338,6 +338,9 @@ driver_info::transport_assign(const arra
+ }
+
+
++inline int do_record_inertial_assignment(driver_info &, const record_base &, int,
++ const vtime &, const vtime &);
++
+ // Creates transaction for composite signals. Returns number of assigned scalars.
+ inline int
+ do_array_inertial_assignment(driver_info &driver,
+@@ -381,8 +384,6 @@ do_array_inertial_assignment(driver_info
+ 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;
+ }