Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Nov 2003 13:44:50 +0300
From:      Sergey Matveychuk <sem@ciam.ru>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/59770: [PATCH] devel/ixlib: fix build on -CURRENT (gcc33)
Message-ID:  <E1APg7F-00094u-Vm@Current.sem-home.ciam.ru>
Resent-Message-ID: <200311282140.hASLeGch013187@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         59770
>Category:       ports
>Synopsis:       [PATCH] devel/ixlib: fix build on -CURRENT (gcc33)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Nov 28 13:40:16 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Sergey Matveychuk
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
>Environment:
System: FreeBSD Current.sem-home.ciam.ru 5.1-CURRENT FreeBSD 5.1-CURRENT #1: Fri Nov 21 07:47:47 MSK 2003
>Description:
[DESCRIBE CHANGES]
* fix build with gcc 3.3.2 (-CURRENT)
* expect CFLAGS
* bump PORTVERSION
* change space with tab

Added file(s):
- files/patch-src::ixlib_base.hh
- files/patch-src::ixlib_javascript.hh
- files/patch-src::ixlib_re.hh
- files/patch-src::ixlib_re_impl.hh
- files/patch-src::js_interpreter.cc
- files/patch-test::javascript.cc

Generated with FreeBSD Port Tools 0.50
>How-To-Repeat:
>Fix:

--- ixlib-0.96.2_3.patch begins here ---
diff -ruN --exclude=CVS /usr/ports/devel/ixlib.orig/Makefile /usr/ports/devel/ixlib/Makefile
--- /usr/ports/devel/ixlib.orig/Makefile	Wed Aug 27 00:25:40 2003
+++ /usr/ports/devel/ixlib/Makefile	Fri Nov 28 13:42:04 2003
@@ -8,7 +8,7 @@
 
 PORTNAME=	ixlib
 PORTVERSION=	0.96.2
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	devel
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
 MASTER_SITE_SUBDIR=	${PORTNAME}
@@ -20,14 +20,8 @@
 
 USE_GMAKE=	yes
 GNU_CONFIGURE=	yes
-CONFIGURE_ENV=	CPPFLAGS="-I${LOCALBASE}/include" \
+CONFIGURE_ENV=	CPPFLAGS="${CFLAGS} -I${LOCALBASE}/include" \
 		LDFLAGS="-L${LOCALBASE}/lib"
-INSTALLS_SHLIB= yes
+INSTALLS_SHLIB=	yes
 
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} >= 500113
-BROKEN=         "Does not compile (bad C++ code)"
-.endif
-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff -ruN --exclude=CVS /usr/ports/devel/ixlib.orig/files/patch-src::ixlib_base.hh /usr/ports/devel/ixlib/files/patch-src::ixlib_base.hh
--- /usr/ports/devel/ixlib.orig/files/patch-src::ixlib_base.hh	Thu Jan  1 03:00:00 1970
+++ /usr/ports/devel/ixlib/files/patch-src::ixlib_base.hh	Fri Nov 28 13:42:04 2003
@@ -0,0 +1,19 @@
+--- src/ixlib_base.hh.orig	Fri Nov 28 11:48:47 2003
++++ src/ixlib_base.hh	Fri Nov 28 12:45:22 2003
+@@ -44,11 +44,15 @@
+ 
+ /* STL Helper macro -----------------------------------------------------------
+ */
++#define FOREACH_T(VAR,LIST,LISTTYPE) \
++  for (typename LISTTYPE::iterator VAR = (LIST).begin(),last = (LIST).end();VAR != last;VAR++) 
++#define FOREACH_CONST_T(VAR,LIST,LISTTYPE) \
++  for (typename LISTTYPE::const_iterator VAR = (LIST).begin(),last = (LIST).end();VAR != last;VAR++) 
++
+ #define FOREACH(VAR,LIST,LISTTYPE) \
+   for (LISTTYPE::iterator VAR = (LIST).begin(),last = (LIST).end();VAR != last;VAR++) 
+ #define FOREACH_CONST(VAR,LIST,LISTTYPE) \
+   for (LISTTYPE::const_iterator VAR = (LIST).begin(),last = (LIST).end();VAR != last;VAR++) 
+-
+ 
+ 
+ 
diff -ruN --exclude=CVS /usr/ports/devel/ixlib.orig/files/patch-src::ixlib_javascript.hh /usr/ports/devel/ixlib/files/patch-src::ixlib_javascript.hh
--- /usr/ports/devel/ixlib.orig/files/patch-src::ixlib_javascript.hh	Thu Jan  1 03:00:00 1970
+++ /usr/ports/devel/ixlib/files/patch-src::ixlib_javascript.hh	Fri Nov 28 13:42:04 2003
@@ -0,0 +1,14 @@
+--- src/ixlib_javascript.hh.orig	Fri Nov 28 12:01:06 2003
++++ src/ixlib_javascript.hh	Fri Nov 28 12:41:42 2003
+@@ -266,7 +266,11 @@
+     // (=unite with) other scopes and keeps a list of registered members
+     class list_scope : public value {
+       protected:
++#if __GNUC__ < 3
+         typedef std::hash_map<std::string,ref<value>,string_hash> member_map;
++#else
++        typedef __gnu_cxx::hash_map<std::string,ref<value>,string_hash> member_map;
++#endif
+         typedef std::vector<ref<value> >			swallowed_list;
+         
+         member_map	MemberMap;
diff -ruN --exclude=CVS /usr/ports/devel/ixlib.orig/files/patch-src::ixlib_re.hh /usr/ports/devel/ixlib/files/patch-src::ixlib_re.hh
--- /usr/ports/devel/ixlib.orig/files/patch-src::ixlib_re.hh	Thu Jan  1 03:00:00 1970
+++ /usr/ports/devel/ixlib/files/patch-src::ixlib_re.hh	Fri Nov 28 13:42:04 2003
@@ -0,0 +1,11 @@
+--- src/ixlib_re.hh.orig	Fri Nov 28 11:46:14 2003
++++ src/ixlib_re.hh	Fri Nov 28 11:53:24 2003
+@@ -163,7 +163,7 @@
+     
+         struct backtrack_stack_entry {
+           TIndex                          Index;
+-          backref_stack::rewind_info      RewindInfo;
++          typename backref_stack::rewind_info      RewindInfo;
+           };
+   
+         public:
diff -ruN --exclude=CVS /usr/ports/devel/ixlib.orig/files/patch-src::ixlib_re_impl.hh /usr/ports/devel/ixlib/files/patch-src::ixlib_re_impl.hh
--- /usr/ports/devel/ixlib.orig/files/patch-src::ixlib_re_impl.hh	Thu Jan  1 03:00:00 1970
+++ /usr/ports/devel/ixlib/files/patch-src::ixlib_re_impl.hh	Fri Nov 28 13:42:04 2003
@@ -0,0 +1,164 @@
+--- src/ixlib_re_impl.hh.orig	Fri Nov 28 11:43:40 2003
++++ src/ixlib_re_impl.hh	Fri Nov 28 12:55:23 2003
+@@ -38,7 +38,7 @@
+ 
+ 
+ template<class T>
+-ixion::regex<T>::backref_stack::rewind_info 
++typename ixion::regex<T>::backref_stack::rewind_info 
+ ixion::regex<T>::backref_stack::getRewindInfo() const {
+   return Stack.size();
+   }
+@@ -65,7 +65,7 @@
+ template<class T>
+ ixion::TSize ixion::regex<T>::backref_stack::size() {
+   TSize result = 0;
+-  FOREACH_CONST(first,Stack,internal_stack)
++  FOREACH_CONST_T(first,Stack,internal_stack)
+     if (first->Type == backref_entry::OPEN) result++;
+   return result;
+   }
+@@ -79,7 +79,7 @@
+   TIndex start;
+   TIndex startlevel;
+   
+-  internal_stack::const_iterator first = Stack.begin(),last = Stack.end();
++  typename internal_stack::const_iterator first = Stack.begin(),last = Stack.end();
+   while (first != last) {
+     if (first->Type == backref_entry::OPEN) {
+       if (number == next_index) {
+@@ -201,7 +201,7 @@
+ 
+ 
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::quantifier::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::quantifier::duplicate() const {
+   quantifier *dupe = new quantifier();
+   dupe->copy(this);
+   return dupe;
+@@ -328,7 +328,7 @@
+ 
+ 
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::sequence_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::sequence_matcher::duplicate() const {
+   sequence_matcher *dupe = new sequence_matcher(MatchStr);
+   dupe->copy(this);
+   return dupe;
+@@ -349,7 +349,7 @@
+ 
+ // regex::any_matcher ---------------------------------------------------------
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::any_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::any_matcher::duplicate() const {
+   any_matcher *dupe = new any_matcher();
+   dupe->copy(this);
+   return dupe;
+@@ -360,7 +360,7 @@
+ 
+ // regex::start_matcher ---------------------------------------------------------
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::start_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::start_matcher::duplicate() const {
+   start_matcher *dupe = new start_matcher();
+   dupe->copy(this);
+   return dupe;
+@@ -379,7 +379,7 @@
+ 
+ // regex::end_matcher ---------------------------------------------------------
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::end_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::end_matcher::duplicate() const {
+   end_matcher *dupe = new end_matcher();
+   dupe->copy(this);
+   return dupe;
+@@ -398,7 +398,7 @@
+ 
+ // regex::backref_open_matcher ------------------------------------------------
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::backref_open_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::backref_open_matcher::duplicate() const {
+   backref_open_matcher *dupe = new backref_open_matcher();
+   dupe->copy(this);
+   return dupe;
+@@ -409,7 +409,7 @@
+ 
+ template<class T>
+ bool ixion::regex<T>::backref_open_matcher::match(backref_stack &brstack,T const &candidate,TIndex at) {
+-  backref_stack::rewind_info ri = brstack.getRewindInfo();
++  typename backref_stack::rewind_info ri = brstack.getRewindInfo();
+   brstack.open(at);
+   
+   bool result = matchNext(brstack,candidate,at);
+@@ -424,7 +424,7 @@
+ 
+ // regex::backref_close_matcher -----------------------------------------------
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::backref_close_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::backref_close_matcher::duplicate() const {
+   backref_close_matcher *dupe = new backref_close_matcher();
+   dupe->copy(this);
+   return dupe;
+@@ -435,7 +435,7 @@
+ 
+ template<class T>
+ bool ixion::regex<T>::backref_close_matcher::match(backref_stack &brstack,T const &candidate,TIndex at) {
+-  backref_stack::rewind_info ri = brstack.getRewindInfo();
++  typename backref_stack::rewind_info ri = brstack.getRewindInfo();
+   brstack.close(at);
+   
+   bool result = matchNext(brstack,candidate,at);
+@@ -470,7 +470,7 @@
+ 
+ 
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::alternative_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::alternative_matcher::duplicate() const {
+   alternative_matcher *dupe = new alternative_matcher();
+   dupe->copy(this);
+   return dupe;
+@@ -484,7 +484,7 @@
+   TSize result = 0;
+   bool is_first = true;
+   
+-  FOREACH_CONST(first,AltList,alt_list)
++  FOREACH_CONST_T(first,AltList,alt_list)
+     if (is_first) {
+       result = (*first)->minimumMatchLength();
+       is_first = true;
+@@ -500,7 +500,7 @@
+ 
+ 
+ template<class T>
+-void ixion::regex<T>::alternative_matcher::setNext(matcher *next,bool ownnext = true) {
++void ixion::regex<T>::alternative_matcher::setNext(matcher *next,bool ownnext) {
+   matcher::setNext(next);
+   Connector.setNext(next,false);
+   }
+@@ -524,7 +524,7 @@
+ 
+ template<class T>
+ bool ixion::regex<T>::alternative_matcher::match(backref_stack &brstack,T const &candidate,TIndex at) {
+-  std::vector<matcher *>::iterator first = AltList.begin(),last = AltList.end();
++  typename std::vector<matcher *>::iterator first = AltList.begin(),last = AltList.end();
+   while (first != last) {
+     if ((*first)->match(brstack,candidate,at)) {
+       MatchLength = 0;
+@@ -548,7 +548,7 @@
+   super::copy(src);
+   Connector.setNext(Next,false);
+   
+-  FOREACH_CONST(first,src->AltList,alt_list)
++  FOREACH_CONST_T(first,src->AltList,alt_list)
+     addAlternative((*first)->duplicate());
+   }
+ 
+@@ -565,7 +565,7 @@
+ 
+ 
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::backref_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::backref_matcher::duplicate() const {
+   backref_matcher *dupe = new backref_matcher(Backref);
+   dupe->copy(this);
+   return dupe;
diff -ruN --exclude=CVS /usr/ports/devel/ixlib.orig/files/patch-src::js_interpreter.cc /usr/ports/devel/ixlib/files/patch-src::js_interpreter.cc
--- /usr/ports/devel/ixlib.orig/files/patch-src::js_interpreter.cc	Thu Jan  1 03:00:00 1970
+++ /usr/ports/devel/ixlib/files/patch-src::js_interpreter.cc	Fri Nov 28 13:42:04 2003
@@ -0,0 +1,12 @@
+--- src/js_interpreter.cc.orig	Fri Nov 28 12:56:09 2003
++++ src/js_interpreter.cc	Fri Nov 28 12:56:47 2003
+@@ -89,8 +89,7 @@
+ 
+ 
+ // javascript_exception -------------------------------------------------------
+-javascript_exception::javascript_exception(TErrorCode error,code_location const &loc,char const *info,char *module = NULL,
+-  TIndex line = 0)
++javascript_exception::javascript_exception(TErrorCode error,code_location const &loc,char const *info,char *module, TIndex line)
+ : base_exception(error, NULL, module, line, "JS") {
+   HasInfo = true;
+   try {
diff -ruN --exclude=CVS /usr/ports/devel/ixlib.orig/files/patch-test::javascript.cc /usr/ports/devel/ixlib/files/patch-test::javascript.cc
--- /usr/ports/devel/ixlib.orig/files/patch-test::javascript.cc	Thu Jan  1 03:00:00 1970
+++ /usr/ports/devel/ixlib/files/patch-test::javascript.cc	Fri Nov 28 13:42:04 2003
@@ -0,0 +1,20 @@
+--- test/javascript.cc.orig	Fri Nov 28 12:57:33 2003
++++ test/javascript.cc	Fri Nov 28 13:15:30 2003
+@@ -64,7 +64,7 @@
+ 
+ 
+ // simple call-in example -----------------------------------------------------
+-IXLIB_JS_DECLARE_FUNCTION(write) {
++IXLIB_JS_DECLARE_FUNCTION(write_) {
+   FOREACH_CONST(first,parameters,parameter_list)
+     cout << (*first)->toString();
+   return makeNull();
+@@ -99,7 +99,7 @@
+     // end complex call-in example --------------------------------------------
+     
+     // simple call-in example -------------------------------------------------
+-    ev = new write;
++    ev = new write_;
+     ip.RootScope->addMember("write",ev);
+     // end simple call-in example ---------------------------------------------
+ 
--- ixlib-0.96.2_3.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1APg7F-00094u-Vm>