[
https://issues.apache.org/jira/browse/TS-1586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Igor Galić updated TS-1586:
---------------------------
Attachment: swap_restrict.patch
Moving restrict to where where it belongs, gets us a little bit further in the
plan, and leads us to a different set of failures!
{noformat}
CXX logging.lo
CXX message.lo
In file included from lib/spdy/message.cc:19:
In file included from lib/spdy/spdy.h:24:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/stdexcept:39:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/string:41:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/char_traits.h:40:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/stl_algobase.h:67:
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/stl_iterator_base_funcs.h:174:49:
error: no type named 'difference_type' in
'std::iterator_traits<const unsigned char *restrict>'
typename iterator_traits<_InputIterator>::difference_type __d = __n;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
lib/spdy/message.cc:75:10: note: in instantiation of function template
specialization 'std::advance<const unsigned char *restrict, unsigned long>'
requested here
std::advance(ptr, sizeof(val));
^
lib/spdy/message.cc:93:18: note: in instantiation of function template
specialization 'extract<unsigned int>' requested here
return ntohl(extract<uint32_t>(ptr)) & 0x7fffffffu;
^
/usr/include/netinet/in.h:391:33: note: expanded from macro 'ntohl'
# define ntohl(x) __bswap_32 (x)
^
/usr/include/x86_64-linux-gnu/bits/byteswap.h:71:44: note: expanded from macro
'__bswap_32'
({ register unsigned int __v, __x = (x); \
^
In file included from lib/spdy/message.cc:19:
In file included from lib/spdy/spdy.h:24:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/stdexcept:39:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/string:41:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/char_traits.h:40:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/stl_algobase.h:67:
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/stl_iterator_base_funcs.h:174:49:
error: no type named 'difference_type' in 'std::iterator_traits<unsigned char
*restrict>'
typename iterator_traits<_InputIterator>::difference_type __d = __n;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
lib/spdy/message.cc:87:10: note: in instantiation of function template
specialization 'std::advance<unsigned char *restrict, unsigned long>' requested
here
std::advance(ptr, sizeof(val));
^
lib/spdy/message.cc:99:5: note: in instantiation of function template
specialization 'insert<unsigned int>' requested here
insert<uint32_t>(htonl(stream_id & 0x7fffffffu), ptr);
^
In file included from lib/spdy/message.cc:19:
In file included from lib/spdy/spdy.h:24:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/stdexcept:39:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/string:41:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/char_traits.h:40:
In file included from
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/stl_algobase.h:67:
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/stl_iterator_base_funcs.h:174:49:
error: no type named 'difference_type' in
'std::iterator_traits<const unsigned char *restrict>'
typename iterator_traits<_InputIterator>::difference_type __d = __n;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
lib/spdy/message.cc:387:14: note: in instantiation of function template
specialization 'std::advance<const unsigned char *restrict, int>' requested here
std::advance(ptr, nbytes);
^
3 errors generated.
make: *** [message.lo] Error 1
{noformat}
unless I'm mistaken this means that we're instantiating the templates not
correct (enough)
> spdy plugin doesn't build under latest trunk
> --------------------------------------------
>
> Key: TS-1586
> URL: https://issues.apache.org/jira/browse/TS-1586
> Project: Traffic Server
> Issue Type: Bug
> Components: Build, Plugins
> Affects Versions: 3.3.1
> Environment: llvm/clang from trunk (on Linux, haven't tested on other
> platforms yet)
> Reporter: Igor Galić
> Assignee: Igor Galić
> Fix For: 3.3.2
>
> Attachments: restrict.patch, swap_restrict.patch
>
>
> {noformat}
> Making all in spdy
> gmake[3]: Entering directory
> `/home/igalic/src/asf/trafficserver/CLANG/plugins/experimental/spdy'
> /bin/sh ../../../libtool --tag=CXX --mode=compile clang++ -DHAVE_CONFIG_H
> -I. -I../../../../plugins/experimental/spdy -I../../../lib/ts
> -I../../../../plugins/experimental/spdy/lib -I../../../proxy/api
> -D__STDC_FORMAT_MACROS=1 -D_LARGEFILE64_SOURCE=1 -D_COMPILE64BIT_SOURCE=1
> -D_GNU_SOURCE -D_REENTRANT -Dlinux -DDEBUG -D_DEBUG -std=c++11 -ggdb3
> -Werror -Qunused-arguments -Wno-invalid-offsetof -MT message.lo -MD -MP -MF
> .deps/message.Tpo -c -o message.lo `test -f 'lib/spdy/message.cc' || echo
> '../../../../plugins/experimental/spdy/'`lib/spdy/message.cc
> libtool: compile: clang++ -DHAVE_CONFIG_H -I.
> -I../../../../plugins/experimental/spdy -I../../../lib/ts
> -I../../../../plugins/experimental/spdy/lib -I../../../proxy/api
> -D__STDC_FORMAT_MACROS=1 -D_LARGEFILE64_SOURCE=1 -D_COMPILE64BIT_SOURCE=1
> -D_GNU_SOURCE -D_REENTRANT -Dlinux -DDEBUG -D_DEBUG -std=c++11 -ggdb3 -Werror
> -Qunused-arguments -Wno-invalid-offsetof -MT message.lo -MD -MP -MF
> .deps/message.Tpo -c
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc -fPIC -DPIC -o
> .libs/message.o
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:72:23: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> extract(const uint8_t __restrict * &ptr) {
> ~~~~~~~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:80:32: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> extract<uint8_t>(const uint8_t __restrict * &ptr) {
> ~~~~~~~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:85:30: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> insert(const T& val, uint8_t __restrict * &ptr) {
> ~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:91:33: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> extract_stream_id(const uint8_t __restrict * &ptr)
> ~~~~~~~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:97:46: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> insert_stream_id(uint32_t stream_id, uint8_t __restrict * &ptr)
> ~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:104:23: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> const uint8_t __restrict * ptr, size_t len)
> ~~~~~~~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:133:44: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> const message_header& msg, uint8_t __restrict * ptr, size_t len)
> ~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:153:23: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> const uint8_t __restrict * ptr, size_t len)
> ~~~~~~~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:170:23: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> const uint8_t __restrict * ptr, size_t len)
> ~~~~~~~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:185:23: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> const uint8_t __restrict * ptr, size_t len)
> ~~~~~~~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:200:48: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> const rst_stream_message& msg, uint8_t __restrict * ptr, size_t len)
> ~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:356:23: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> const uint8_t __restrict * ptr, size_t len)
> ~~~~~~~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:359:19: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> const uint8_t __restrict * end = ptr + len;
> ~~~~~~~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:422:23: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> const uint8_t __restrict * ptr,
> ~~~~~~~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:511:23: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> const uint8_t __restrict * ptr, size_t len)
> ~~~~~~~~~~~~~~^~~~~~~~~~
> ../../../../plugins/experimental/spdy/lib/spdy/message.cc:525:42: error:
> restrict requires a pointer or reference ('uint8_t' (aka 'unsigned char') is
> invalid)
> const ping_message& msg, uint8_t __restrict * ptr, size_t len)
> ~~~~~~~~^~~~~~~~~~
> 16 errors generated.
> gmake[3]: *** [message.lo] Error 1
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira