ports/172300: [patch] multimedia/w_scan fails to build using clang

Miklos Magyari magyarimiki at gmail.com
Wed Oct 3 10:50:09 UTC 2012


>Number:         172300
>Category:       ports
>Synopsis:       [patch] multimedia/w_scan fails to build using clang
>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:   Wed Oct 03 10:50:08 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Miklos Magyari
>Release:        9.0-RELEASE
>Organization:
>Environment:
FreeBSD mira 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 2012     root at farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
multimedia/w_scan fails to build using clang:

[...snip...]

===>  Building for w_scan-20120415
make  all-am
clang -DHAVE_CONFIG_H -I.    -I/usr/local/include -Wall -Wextra -Wno-comment -Wswitch-default -Wno-unused-parameter -O2 -pipe -fno-strict-aliasing -MT atsc_psip_section.o -MD -MP -MF .deps/atsc_psip_section.Tpo -c -o atsc_psip_section.o atsc_psip_section.c
clang -DHAVE_CONFIG_H -I.    -I/usr/local/include -Wall -Wextra -Wno-comment -Wswitch-default -Wno-unused-parameter -O2 -pipe -fno-strict-aliasing -MT countries.o -MD -MP -MF .deps/countries.Tpo -c -o countries.o countries.c
countries.c:561:19: warning: illegal character encoding in string literal [-Winvalid-source-encoding]
mv -f .deps/atsc_psip_section.Tpo .deps/atsc_psip_section.Po
       {"AX", AX, "<C5>LAND ISLANDS"},                                /*ALA, 248},*/
                  ^
countries.c:614:19: warning: illegal character encoding in string literal [-Winvalid-source-encoding]
       {"CI", CI, "C<D4>TE D'IVOIRE"},                                /*CIV, 384},*/
                  ^
countries.c:617:19: warning: illegal character encoding in string literal [-Winvalid-source-encoding]
       {"CW", CW, "CURA<C7>AO"},                                      /*CUW, 531},*/
                  ^
countries.c:740:19: warning: illegal character encoding in string literal [-Winvalid-source-encoding]
       {"RE", RE, "R<C9>UNION"},                                      /*REU, 638},*/
                  ^
countries.c:744:19: warning: illegal character encoding in string literal [-Winvalid-source-encoding]
       {"BL", BL, "SAINT BARTH<C9>LEMY"},                             /*BLM, 652},*/
                  ^
clang -DHAVE_CONFIG_H -I.    -I/usr/local/include -Wall -Wextra -Wno-comment -Wswitch-default -Wno-unused-parameter -O2 -pipe -fno-strict-aliasing -MT descriptors.o -MD -MP -MF .deps/descriptors.Tpo -c -o descriptors.o descriptors.c
descriptors.c:1014:40: error: expected ';' at end of declaration
        uint8_t LeapYear(uint16_t year) {
                                       ^
                                       ;
1 error generated.
*** [descriptors.o] Error code 1
5 warnings generated.
mv -f .deps/countries.Tpo .deps/countries.Po
1 error
*** [all] Error code 2
1 error
*** [do-build] Error code 1

Stop in /usr/ports/multimedia/w_scan.
*** [build] Error code 1

Stop in /usr/ports/multimedia/w_scan.

>How-To-Repeat:
# cd /usr/ports/multimedia/w_scan
# make

>Fix:
The code is using gnu C extensions. The following new patchfile under files/ fixes the issue:

# cat files/patch-descriptors.c
--- descriptors.c.orig  2012-10-03 12:39:42.000000000 +0200
+++ descriptors.c       2012-10-03 12:39:56.000000000 +0200
@@ -1000,6 +1000,16 @@
               }
 }

+__u8 LeapYear(__u16 year) {
+     if ((year % 400) == 0)
+       return 1;
+     else if ((year % 100) == 0)
+       return 0;
+     else if ((year % 4) == 0)
+       return 1;
+     return 0;
+}
+

 /* 300468 v011101 annex C, Conversion between time and date conventions
  * NOTE: These formulas are applicable between the inclusive dates 1900 March 1 to 2100 February 28.
@@ -1011,16 +1021,6 @@
         int _M = (int) (MJD - 14956.1 - (int) (_Y * 365.25)) / 30.6001;
         int K = (_M == 14) ? 1 : (_M == 15) ? 1 : 0;

-        __u8 LeapYear(__u16 year) {
-             if ((year % 400) == 0)
-                return 1;
-             else if ((year % 100) == 0)
-                return 0;
-             else if ((year % 4) == 0)
-                return 1;
-             return 0;
-        }
-
         memset(&utc, 0, sizeof(struct tm));
         utc.tm_mday = MJD - 14956 - (int) (_Y * 365.25) - (int) (_M * 30.6001);
         utc.tm_year = _Y + K;


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



More information about the freebsd-ports-bugs mailing list