Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Sep 2012 10:32:40 GMT
From:      arrowdodger <6yearold@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/171341: multimedia/vlc: Doesn't build with clang
Message-ID:  <201209051032.q85AWeua045857@red.freebsd.org>
Resent-Message-ID: <201209051040.q85Ae5fO058073@freefall.freebsd.org>

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

>Number:         171341
>Category:       ports
>Synopsis:       multimedia/vlc: Doesn't build with 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 Sep 05 10:40:04 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     arrowdodger
>Release:        9-STABLE
>Organization:
>Environment:
>Description:
I have WITH_CLANG_IS_CC=1 in /etc/src.conf, so /usr/bin/cc is clang and /usr/bin/c++ is clang++.

clang++ -v:

FreeBSD clang version 3.1 (branches/release_31 156863) 20120523

My /etc/make.conf:

CC=clang
CXX=clang++
CXXFLAGS=-stdlib=libc++ -std=c++11 -Wno-c++11-narrowing

When running portmaster vlc- i get:

  CXX    libspatializer_plugin_la-spatializer.lo
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:653:24: error: C++ requires a type specifier for all declarations
static inline uint16_t bswap16 (uint16_t x)
                       ^~~~~~~~~~~~~~~~~~~~
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:16: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
                      ^~~~~~~~~~~~~~~~~~~~
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:653:24: error: expected ')'
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:41: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
                                               ^
./../include/vlc_common.h:653:24: note: to match this '('
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:15: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
                     ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:655:13: error: use of undeclared identifier 'x'
    return (x << 8) | (x >> 8);
            ^
./../include/vlc_common.h:655:24: error: use of undeclared identifier 'x'
    return (x << 8) | (x >> 8);
                       ^
./../include/vlc_common.h:660:24: error: expected ')'
static inline uint32_t bswap32 (uint32_t x)
                       ^
/usr/include/sys/endian.h:60:20: note: expanded from macro 'bswap32'
#define bswap32(x)      __bswap32(x)
                        ^
/usr/include/machine/endian.h:118:28: note: expanded from macro '__bswap32'
        (__builtin_constant_p(_x) ?                     \
                                  ^
./../include/vlc_common.h:660:24: note: to match this '('
static inline uint32_t bswap32 (uint32_t x)
                       ^
/usr/include/sys/endian.h:60:20: note: expanded from macro 'bswap32'
#define bswap32(x)      __bswap32(x)
                        ^
/usr/include/machine/endian.h:118:2: note: expanded from macro '__bswap32'
        (__builtin_constant_p(_x) ?                     \
        ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:660:24: error: static declaration of '__builtin_constant_p' follows non-static declaration
static inline uint32_t bswap32 (uint32_t x)
                       ^
/usr/include/sys/endian.h:60:20: note: expanded from macro 'bswap32'
#define bswap32(x)      __bswap32(x)
                        ^
/usr/include/machine/endian.h:118:3: note: expanded from macro '__bswap32'
        (__builtin_constant_p(_x) ?                     \
         ^
./../include/vlc_common.h:653:24: note: previous implicit declaration is here
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:16: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
                      ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:660:24: error: definition of builtin function '__builtin_constant_p'
static inline uint32_t bswap32 (uint32_t x)
                       ^
/usr/include/sys/endian.h:60:20: note: expanded from macro 'bswap32'
#define bswap32(x)      __bswap32(x)
                        ^
/usr/include/machine/endian.h:118:3: note: expanded from macro '__bswap32'
        (__builtin_constant_p(_x) ?                     \
         ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:674:24: error: expected ')'
static inline uint64_t bswap64 (uint64_t x)
                       ^
/usr/include/sys/endian.h:61:20: note: expanded from macro 'bswap64'
#define bswap64(x)      __bswap64(x)
                        ^
/usr/include/machine/endian.h:114:28: note: expanded from macro '__bswap64'
        (__builtin_constant_p(_x) ?                     \
                                  ^
./../include/vlc_common.h:674:24: note: to match this '('
static inline uint64_t bswap64 (uint64_t x)
                       ^
/usr/include/sys/endian.h:61:20: note: expanded from macro 'bswap64'
#define bswap64(x)      __bswap64(x)
                        ^
/usr/include/machine/endian.h:114:2: note: expanded from macro '__bswap64'
        (__builtin_constant_p(_x) ?                     \
        ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:674:24: error: static declaration of '__builtin_constant_p' follows non-static declaration
static inline uint64_t bswap64 (uint64_t x)
                       ^
/usr/include/sys/endian.h:61:20: note: expanded from macro 'bswap64'
#define bswap64(x)      __bswap64(x)
                        ^
/usr/include/machine/endian.h:114:3: note: expanded from macro '__bswap64'
        (__builtin_constant_p(_x) ?                     \
         ^
./../include/vlc_common.h:653:24: note: previous implicit declaration is here
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
  CC     libheadphone_channel_mixer_plugin_la-headphone.lo
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:16: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
                      ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:674:24: error: definition of builtin function '__builtin_constant_p'
static inline uint64_t bswap64 (uint64_t x)
                       ^
/usr/include/sys/endian.h:61:20: note: expanded from macro 'bswap64'
#define bswap64(x)      __bswap64(x)
                        ^
/usr/include/machine/endian.h:114:3: note: expanded from macro '__bswap64'
        (__builtin_constant_p(_x) ?                     \
         ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:732:12: error: reference to '__uint16_t' is ambiguous
    return ntoh16 (x);
           ^
./../include/vlc_common.h:721:19: note: expanded from macro 'ntoh16'
#define ntoh16(i) hton16(i)
                  ^
./../include/vlc_common.h:717:20: note: expanded from macro 'hton16'
# define hton16(i) bswap16(i)
                   ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:4: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
          ^
./../include/vlc_common.h:653:24: note: candidate found by name lookup is '__uint16_t'
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:4: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
          ^
/usr/include/machine/_types.h:54:25: note: candidate found by name lookup is '__uint16_t'
typedef unsigned short          __uint16_t;
                                ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:732:12: error: reference to '__uint16_t' is ambiguous
    return ntoh16 (x);
           ^
./../include/vlc_common.h:721:19: note: expanded from macro 'ntoh16'
#define ntoh16(i) hton16(i)
                  ^
./../include/vlc_common.h:717:20: note: expanded from macro 'hton16'
# define hton16(i) bswap16(i)
                   ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:123:6: note: expanded from macro '__bswap16'
            __bswap16_const((__uint16_t)(_x)) : __bswap16_var(_x)))
            ^
/usr/include/machine/endian.h:88:30: note: expanded from macro '__bswap16_const'
#define __bswap16_const(_x)     (__uint16_t)((_x) << 8 | (_x) >> 8)
                                 ^
./../include/vlc_common.h:653:24: note: candidate found by name lookup is '__uint16_t'
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:4: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
          ^
/usr/include/machine/_types.h:54:25: note: candidate found by name lookup is '__uint16_t'
typedef unsigned short          __uint16_t;
                                ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:732:12: error: reference to '__uint16_t' is ambiguous
    return ntoh16 (x);
           ^
./../include/vlc_common.h:721:19: note: expanded from macro 'ntoh16'
#define ntoh16(i) hton16(i)
                  ^
./../include/vlc_common.h:717:20: note: expanded from macro 'hton16'
# define hton16(i) bswap16(i)
                   ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:123:23: note: expanded from macro '__bswap16'
            __bswap16_const((__uint16_t)(_x)) : __bswap16_var(_x)))
                             ^
/usr/include/machine/endian.h:88:43: note: expanded from macro '__bswap16_const'
#define __bswap16_const(_x)     (__uint16_t)((_x) << 8 | (_x) >> 8)
                                              ^
./../include/vlc_common.h:653:24: note: candidate found by name lookup is '__uint16_t'
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:4: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
          ^
/usr/include/machine/_types.h:54:25: note: candidate found by name lookup is '__uint16_t'
typedef unsigned short          __uint16_t;
                                ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:732:12: error: reference to '__uint16_t' is ambiguous
    return ntoh16 (x);
           ^
./../include/vlc_common.h:721:19: note: expanded from macro 'ntoh16'
#define ntoh16(i) hton16(i)
                  ^
./../include/vlc_common.h:717:20: note: expanded from macro 'hton16'
# define hton16(i) bswap16(i)
                   ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:123:23: note: expanded from macro '__bswap16'
            __bswap16_const((__uint16_t)(_x)) : __bswap16_var(_x)))
                             ^
/usr/include/machine/endian.h:88:55: note: expanded from macro '__bswap16_const'
#define __bswap16_const(_x)     (__uint16_t)((_x) << 8 | (_x) >> 8)
                                                          ^
./../include/vlc_common.h:653:24: note: candidate found by name lookup is '__uint16_t'
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:4: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
          ^
/usr/include/machine/_types.h:54:25: note: candidate found by name lookup is '__uint16_t'
typedef unsigned short          __uint16_t;
                                ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:801:9: error: reference to '__uint16_t' is ambiguous
    w = hton16 (w);
        ^
./../include/vlc_common.h:717:20: note: expanded from macro 'hton16'
# define hton16(i) bswap16(i)
                   ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:4: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
          ^
./../include/vlc_common.h:653:24: note: candidate found by name lookup is '__uint16_t'
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:4: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
          ^
/usr/include/machine/_types.h:54:25: note: candidate found by name lookup is '__uint16_t'
typedef unsigned short          __uint16_t;
                                ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:801:9: error: reference to '__uint16_t' is ambiguous
    w = hton16 (w);
        ^
./../include/vlc_common.h:717:20: note: expanded from macro 'hton16'
# define hton16(i) bswap16(i)
                   ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:123:6: note: expanded from macro '__bswap16'
            __bswap16_const((__uint16_t)(_x)) : __bswap16_var(_x)))
            ^
/usr/include/machine/endian.h:88:30: note: expanded from macro '__bswap16_const'
#define __bswap16_const(_x)     (__uint16_t)((_x) << 8 | (_x) >> 8)
                                 ^
./../include/vlc_common.h:653:24: note: candidate found by name lookup is '__uint16_t'
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:4: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
          ^
/usr/include/machine/_types.h:54:25: note: candidate found by name lookup is '__uint16_t'
typedef unsigned short          __uint16_t;
                                ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:801:9: error: reference to '__uint16_t' is ambiguous
    w = hton16 (w);
        ^
./../include/vlc_common.h:717:20: note: expanded from macro 'hton16'
# define hton16(i) bswap16(i)
                   ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:123:23: note: expanded from macro '__bswap16'
            __bswap16_const((__uint16_t)(_x)) : __bswap16_var(_x)))
                             ^
/usr/include/machine/endian.h:88:43: note: expanded from macro '__bswap16_const'
#define __bswap16_const(_x)     (__uint16_t)((_x) << 8 | (_x) >> 8)
                                              ^
./../include/vlc_common.h:653:24: note: candidate found by name lookup is '__uint16_t'
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:4: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
          ^
/usr/include/machine/_types.h:54:25: note: candidate found by name lookup is '__uint16_t'
typedef unsigned short          __uint16_t;
                                ^
In file included from spatializer/spatializer.cpp:40:
./../include/vlc_common.h:801:9: error: reference to '__uint16_t' is ambiguous
    w = hton16 (w);
        ^
./../include/vlc_common.h:717:20: note: expanded from macro 'hton16'
# define hton16(i) bswap16(i)
                   ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:123:23: note: expanded from macro '__bswap16'
            __bswap16_const((__uint16_t)(_x)) : __bswap16_var(_x)))
                             ^
/usr/include/machine/endian.h:88:55: note: expanded from macro '__bswap16_const'
#define __bswap16_const(_x)     (__uint16_t)((_x) << 8 | (_x) >> 8)
                                                          ^
./../include/vlc_common.h:653:24: note: candidate found by name lookup is '__uint16_t'
static inline uint16_t bswap16 (uint16_t x)
                       ^
/usr/include/sys/endian.h:59:20: note: expanded from macro 'bswap16'
#define bswap16(x)      __bswap16(x)
                        ^
/usr/include/machine/endian.h:122:4: note: expanded from macro '__bswap16'
        ((__uint16_t)(__builtin_constant_p(_x) ?        \
          ^
/usr/include/machine/_types.h:54:25: note: candidate found by name lookup is '__uint16_t'
typedef unsigned short          __uint16_t;
                                ^
18 errors generated.
gmake[4]: *** [libspatializer_plugin_la-spatializer.lo] Error 1
gmake[4]: *** Waiting for unfinished jobs....
gmake[4]: Leaving directory `/usr/ports/multimedia/vlc/work/vlc-2.0.3/modules/audio_filter'
gmake[3]: *** [all] Error 2

>How-To-Repeat:
Build port with CC=clang and CXX=clang++
>Fix:


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



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