Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 May 2013 17:57:32 GMT
From:      Norikatsu Shigemura <nork@FreeBSD.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/178350: [ports/net/pchar] Fix compile error by avoid sizeof(bool) test, and Reduce compiler warning.
Message-ID:  <201305051757.r45HvWxf022048@oldred.FreeBSD.org>
Resent-Message-ID: <201305051800.r45I00xu018542@freefall.freebsd.org>

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

>Number:         178350
>Category:       ports
>Synopsis:       [ports/net/pchar] Fix compile error by avoid sizeof(bool) test, and Reduce compiler warning.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun May 05 18:00:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Norikatsu Shigemura
>Release:        FreeBSD/amd64 10.0-CURRENT
>Organization:
Personal
>Environment:
FreeBSD pelsia.ninth-nine.com 10.0-CURRENT FreeBSD 10.0-CURRENT #147 r250254M: Sun May  5 21:15:09 JST 2013     nork@pelsia.ninth-nine.com:/usr/obj/usr/src/sys/PELSIA  amd64
>Description:
pchar's configure did test noncompliance sizeof(bool) on C++ compiler.
To avoid this issue, I submit to set 'ac_cv_sizeof_bool=1' on CONFIGURE_ENV.

And I fixed some simple and blatant compiler warnings.
>How-To-Repeat:
cd /usr/ports/net/pchar
env CXX=clang++ make
 :
checking size of bool... 0
 :
===>  Building for pchar-1.5
clang++ -O2 -pipe -march=core2 -fno-strict-aliasing -I. -DSIZEOF_BOOL=0 -DHAVE_SOCKLEN_T=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SOCKADDR_SA_LEN=1 -DHAVE_HERROR=1 -DHAVE_SNPRINTF=1 -DHAVE_LIBM=1 -DHAVE_IPV6=1 -DHAVE_PCAP=1 -DHAVE_LIBPCAP=1 -DHAVE_BPF=1 -c main.cc -o main.o
In file included from main.cc:48:
./pc.h:28:15: error: expected '}'
typedef enum {false, true} bool;
              ^
./pc.h:28:14: note: to match this '{'
typedef enum {false, true} bool;
             ^
./pc.h:28:28: error: redeclaration of C++ built-in type 'bool'
typedef enum {false, true} bool;
                           ^
2 errors generated.
*** [main.o] Error code 1
>Fix:
Please apply my attached patch file.

Patch attached with submission follows:

Index: Makefile
===================================================================
--- Makefile	(revision 317421)
+++ Makefile	(working copy)
@@ -17,6 +17,7 @@
 .include <bsd.port.pre.mk>
 
 CONFIGURE_ARGS= --with-pcap
+CONFIGURE_ENV+=	ac_cv_sizeof_bool=1
 
 .if !defined(NOPORTDOCS)
 post-install:
Index: files/patch-Pctest.h
===================================================================
--- files/patch-Pctest.h	(revision 0)
+++ files/patch-Pctest.h	(working copy)
@@ -0,0 +1,11 @@
+--- Pctest.h.orig	2005-02-13 05:32:18.000000000 +0900
++++ Pctest.h	2013-05-06 00:39:43.413338781 +0900
+@@ -86,7 +86,7 @@
+     virtual char *GetPrintableAddress() = 0;
+     virtual char *GetPrintableAddress(void *a) = 0;
+     virtual char *GetName(void *a) = 0;
+-    virtual char *GetAddressFamilyString() = 0;
++    virtual const char *GetAddressFamilyString() = 0;
+     virtual int GetAddressFamily() = 0;
+ 
+     // Get input and output sockets needed
Index: files/patch-PctestIpv4.h
===================================================================
--- files/patch-PctestIpv4.h	(revision 0)
+++ files/patch-PctestIpv4.h	(working copy)
@@ -0,0 +1,11 @@
+--- PctestIpv4.h.orig	2005-02-13 05:32:18.000000000 +0900
++++ PctestIpv4.h	2013-05-06 00:36:17.432762986 +0900
+@@ -77,7 +77,7 @@
+     virtual char *GetPrintableAddress();
+     virtual char *GetPrintableAddress(void *a);
+     virtual char *GetName(void *a);
+-    virtual char *GetAddressFamilyString() { return "AF_INET"; };
++    virtual const char *GetAddressFamilyString() { return "AF_INET"; };
+     virtual int GetAddressFamily() { return (AF_INET); };
+     
+   protected:
Index: files/patch-PctestIpv6.h
===================================================================
--- files/patch-PctestIpv6.h	(revision 0)
+++ files/patch-PctestIpv6.h	(working copy)
@@ -0,0 +1,11 @@
+--- PctestIpv6.h.orig	2005-02-13 05:32:18.000000000 +0900
++++ PctestIpv6.h	2013-05-06 00:36:41.683117194 +0900
+@@ -82,7 +82,7 @@
+     virtual char *GetPrintableAddress();
+     virtual char *GetPrintableAddress(void *a);
+     virtual char *GetName(void *a);
+-    virtual char *GetAddressFamilyString() { return "AF_INET6"; }
++    virtual const char *GetAddressFamilyString() { return "AF_INET6"; }
+     virtual int GetAddressFamily() { return (AF_INET6); }
+     
+   protected:
Index: files/patch-main.cc
===================================================================
--- files/patch-main.cc	(revision 0)
+++ files/patch-main.cc	(working copy)
@@ -0,0 +1,20 @@
+--- main.cc.orig	2005-02-13 05:32:18.000000000 +0900
++++ main.cc	2013-05-06 00:41:42.842653383 +0900
+@@ -292,7 +292,7 @@
+ //
+ // Output:  ASCII representation of network protocol name.
+ //
+-char *GetPrintableNetworkProtocol(NetworkProtocolType np)
++const char *GetPrintableNetworkProtocol(NetworkProtocolType np)
+ {
+     switch (np) {
+     case (NetworkProtocolIpv4Udp): 
+@@ -371,7 +371,7 @@
+ 	case 'b': {
+ 	    Burst = atoi(optarg);
+ 	    if (Burst < 1) {
+-		fprintf(stderr, "Warning: burst size %d too small; resetting to 1\n");
++		fprintf(stderr, "Warning: burst size %u too small; resetting to 1\n", Burst);
+ 		Burst = 1;
+ 	    }
+ 	    break;


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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305051757.r45HvWxf022048>