ports/163440: [patch] sysutils/uhidd: unbreak build on clang/gcc46
Jan Beich
jbeich at tormail.net
Sun Dec 18 23:20:05 UTC 2011
>Number: 163440
>Category: ports
>Synopsis: [patch] sysutils/uhidd: unbreak build on clang/gcc46
>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 Dec 18 23:20:04 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator: Jan Beich
>Release: FreeBSD 10.0-CURRENT amd64
>Organization:
>Environment:
>Description:
>How-To-Repeat:
$ __MAKE_CONF= make CC=clang
[...]
clang -O2 -pipe -fno-strict-aliasing -I. -I/usr/ports/sysutils/uhidd/work/uhidd-0.2.0/uhidd -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign -c uhidd_hidump.c
uhidd_hidump.c:299:30: error: use of logical '&&' with constant operand [-Werror,-Wconstant-logical-operand]
nibble = (dval >> (i * 4)) && 0x0F;
^ ~~~~
uhidd_hidump.c:299:30: note: use '&' for a bitwise operation
nibble = (dval >> (i * 4)) && 0x0F;
^~
&
uhidd_hidump.c:299:30: note: remove constant to silence this warning
nibble = (dval >> (i * 4)) && 0x0F;
^~~~~~~
1 error generated.
*** [uhidd_hidump.o] Error code 1
[...]
lex -t lex.l > lex.c
clang -O2 -pipe -fno-strict-aliasing -I. -I/usr/ports/sysutils/uhidd/work/uhidd-0.2.0/uhidd -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign -c lex.c
lex.l:486:12: error: function 'input' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration]
static int input(void)
^
1 error generated.
*** [lex.o] Error code 1
$ __MAKE_CONF= make CC=gcc46
[...]
gcc46 -O2 -pipe -fno-strict-aliasing -I. -I/usr/ports/sysutils/uhidd/work/uhidd-0.2.0/uhidd -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign -c uhidd.c
uhidd.c: In function 'open_device':
uhidd.c:316:39: error: variable 'ddesc' set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors
*** [uhidd.o] Error code 1
>Fix:
--- clang.diff begins here ---
Index: sysutils/uhidd/files/patch-hidump.c
===================================================================
RCS file: sysutils/uhidd/files/patch-hidump.c
diff -N sysutils/uhidd/files/patch-hidump.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ sysutils/uhidd/files/patch-hidump.c 29 Jul 2011 21:03:15 -0000
@@ -0,0 +1,11 @@
+--- uhidd/uhidd_hidump.c~
++++ uhidd/uhidd_hidump.c
+@@ -296,7 +296,7 @@ get_unit(int dval, unsigned int sz)
+
+ normal:
+ for (i = 1; (unsigned int)i < sz * 2; i++) {
+- nibble = (dval >> (i * 4)) && 0x0F;
++ nibble = (dval >> (i * 4)) & 0x0F;
+ if (!nibble)
+ continue;
+ if (nibble > 7)
Index: sysutils/uhidd/files/patch-uhidd-lex.l
===================================================================
RCS file: sysutils/uhidd/files/patch-uhidd-lex.l
diff -N sysutils/uhidd/files/patch-uhidd-lex.l
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ sysutils/uhidd/files/patch-uhidd-lex.l 18 Dec 2011 22:51:09 -0000
@@ -0,0 +1,19 @@
+--- uhidd/lex.l~
++++ uhidd/lex.l
+@@ -34,7 +34,6 @@
+
+ #include "y.tab.h"
+
+-#define YY_NO_UNPUT
+ int lineno = 1;
+
+ int yylex(void);
+@@ -42,6 +41,8 @@
+ %}
+
+ %option noyywrap
++%option nounput
++%option noinput
+
+ %%
+
Index: sysutils/uhidd/files/patch-uhidd-uhidd.c
===================================================================
RCS file: sysutils/uhidd/files/patch-uhidd-uhidd.c
diff -N sysutils/uhidd/files/patch-uhidd-uhidd.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ sysutils/uhidd/files/patch-uhidd-uhidd.c 18 Dec 2011 22:49:51 -0000
@@ -0,0 +1,19 @@
+--- uhidd/uhidd.c~
++++ uhidd/uhidd.c
+@@ -313,7 +313,6 @@
+ static int
+ open_device(const char *dev, struct libusb20_device *pdev)
+ {
+- struct LIBUSB20_DEVICE_DESC_DECODED *ddesc;
+ struct libusb20_config *config;
+ struct libusb20_interface *iface;
+ int cndx, e, i;
+@@ -334,8 +333,6 @@ open_device(const char *dev, struct libu
+ return (-1);
+ }
+
+- ddesc = libusb20_dev_get_device_desc(pdev);
+-
+ /*
+ * Iterate each interface.
+ */
--- clang.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list