Giter VIP home page Giter VIP logo

libquic's Introduction

QUIC, a multiplexed stream transport over UDP

QUIC is an experimental protocol aimed at reducing web latency over that of TCP. On the surface, QUIC is very similar to TCP+TLS+SPDY implemented on UDP. Because TCP is implemented in operating system kernels, and middlebox firmware, making significant changes to TCP is next to impossible. However, since QUIC is built on top of UDP, it suffers from no such limitations.

Key features of QUIC over existing TCP+TLS+SPDY include

  • Dramatically reduced connection establishment time
  • Improved congestion control
  • Multiplexing without head of line blocking
  • Forward error correction
  • Connection migration

See Chromium QUIC Page for detailed information.

libquic

This repository is sources and dependencies extracted from Chromium's QUIC Implementation with a few modifications and patches to minimize dependencies needed to build QUIC library.

Notable and only dependency is BoringSSL. The BoringSSL sources is already embedded in this repository and linked with CMake build file. You don't need any kind of dependency installs.

Language Bindings

This library is intended as an essential reference point for other language bindings and possibly for integration with other C/C++ codebase such as HTTP servers like Apache or nginx.

Currently there is only one experimental language binding:

Getting Started

How to build

Building with CMake and Ninja (Recommended):

$ mkdir build/
$ cd build/
$ cmake -GNinja ..
$ ninja

Building with CMake and Make:

$ mkdir build/
$ cd build/
$ cmake ..
$ make -j 4

make -j limits the number of simultaneously executed Recepies. Adapt this number to the capabilities of your build machine.

libquic.a library file will be generated. libssl.a, libcrypto.a will be located in build/boringssl directory.

To do release builds run $ cmake -GNinja -DCMAKE_BUILD_TYPE=Release .. instead of $ cmake -GNinja ...

How to integrate

In order to integrate libquic to your code, your best source of documentation is official Chromium QUIC toy client and server. Golang binding will help too.

Syncing from Upstream

Great effort has been made to make syncing from upstream Chromium sources as effortless as possible. See DEPS file for all the dependencies. See manage.py script for actual syncing.

If you want to apply upstream changes,

  1. Clone & Checkout chromium upstream.
  2. Build QUIC server: cd out/Debug; ninja quic_server
  3. Update "chromium_revision" var at DEPS to your chromium source code revision.
  4. Do ./sync.py <CHROMIUM_GIT_ROOT> All necessary files will be updated to new ones without patches applied.
  5. Temporarily commit here.
  6. Do ./sync.py <CHROMIUM_GIT_ROOT>--patch All the patches will be applied. Some patches will be rejected.
  7. If there is any patch collision, manually apply the rejected patches. Open the *.rej files and carefully apply the rejected hunks manually.
  8. Try build, and you'll find that you may need to add additional modifications to make build successful. There may be added or deleted source files. Update CMakeLists.txt accordingly.
  9. If the build is successful, make a patch by: git diff src/ > patch/basepatch.patch (Make sure you don't include custom/ directory sources to the patch)
  10. Add patch file to DEPS or update existing patch files. Amend previous commit.
  11. Commit DEPS, new patch, and source changes

libquic's People

Contributors

girishramnani avatar hodduc avatar kuss avatar parkayun avatar raeesiqbal avatar romedius avatar serialx avatar vkovtash avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libquic's Issues

requiring go?

Hi,

I would like to try out libquic for some experiments but I have no interest in using go, can we make the build process not require it?

Faild to build libquic in ubuntu-64bit

I try to build the project on Ubuntu 64bit, but every time when make reach 89%, the machine will reboot. Did you see this happend? (32bit is OK and I do my work in VMware Workstation)

OSS Hygiene: AUTHORS file should include Google et al.

Hey Guys,

Fantastic work. ❤️ Cant wait to use libquic (and goquic) in IPFS.

This is a bit silly, but one of those important-to-do-eventually things. Your AUTHORS file only lists you guys. It would be good to either include all the authors of QUIC itself in it-- or include chromium's AUTHORS file inside src/ (along with the other LICENSE), and reference it from your AUTHORS file.

again, thank you so much for making this.

Is there any API of the three *.a file generated by building libquic?

libquic.a, libssl.a, libcrypto.a are generated after building libquic.
I know .a file is static library,and I have also seen goquic and gospdyquic.These project use the libquic as a base,and there are the .a files in goquic's lib file.
But how to use these .a files? Is there any API which introduce the provided function detailedly?

lib documentation

So basically, if i'm some programmer who wants to screw around with making an existing c++ server application use quic, Where do i start?

What I see here are some random files with no documentation on usage inside some c++ application.

Am I missing something?

Windows Support

Is there any plan to support windows 64bit? I want to use goquic, but it will fail as missing libquic.

Some version number

Could you please tag repository with some version number. After that there will be stable link on releases page to download source tag ball.

Compile failed on master branch

[weizili@build15v ~/opensource/libquic]$ git st
# On branch master
nothing to commit (working directory clean)
[weizili@build15v ~/opensource/libquic]$ git log -1
commit 614a63053e599a8d657baad5746d059c474f93d8
Author: Brian Hong 
Date:   Wed May 13 15:56:17 2015 +0900

    Revert CMakeLists for OpenSSL
[weizili@build15v ~/opensource/libquic]$ make
mkdir -p obj build
mkdir -p obj/base/
g++ -Wall -Isrc -Isrc/third_party/modp_b64 -DUSE_OPENSSL=1 -Iboringssl/include -g -gdwarf-4 --std=gnu++11 -c -o obj/base/at_exit.o src/base/at_exit.cc
mkdir -p obj/base/
g++ -Wall -Isrc -Isrc/third_party/modp_b64 -DUSE_OPENSSL=1 -Iboringssl/include -g -gdwarf-4 --std=gnu++11 -c -o obj/base/atomicops_internals_x86_gcc.o src/base/atomicops_internals_x86_gcc.cc
mkdir -p obj/base/
g++ -Wall -Isrc -Isrc/third_party/modp_b64 -DUSE_OPENSSL=1 -Iboringssl/include -g -gdwarf-4 --std=gnu++11 -c -o obj/base/base64.o src/base/base64.cc
mkdir -p obj/base/
g++ -Wall -Isrc -Isrc/third_party/modp_b64 -DUSE_OPENSSL=1 -Iboringssl/include -g -gdwarf-4 --std=gnu++11 -c -o obj/base/base_paths.o src/base/base_paths.cc
In file included from src/base/base_paths.cc:8:0:
src/base/files/file_util.h:28:29: fatal error: base/files/file.h: No such file or directory
 #include "base/files/file.h"
                             ^
compilation terminated.
make: *** [obj/base/base_paths.o] Error 1

android ndk build support

thank you for your effort.

I want to use libquic in android.

Does it currently support android ndk build?
if not, Is there any plan to support android ndk build ?

Unable to parse the header

Hello,

I am using QUIC reverse proxy and would like to check its performance by using quicbench. I tried to request a 2K text file but I got following error:

./quicbench -u https://myserver/text/2K.txt -k=true -c 1 -r 1
Dispatching 1 clients
Waiting for results...
[0818/102023:WARNING:quic_framer.cc(1938)] DecryptPacket failed for packet_number:4
[0818/102023:ERROR:spdy_utils.cc(158)] Parsed content length 2048 is inconsistent with previously detected content length 5808101
[0818/102023:ERROR:go_quic_spdy_client_stream.cc(82)] Failed to parse header list: { :version=HTTP/1.1, :status=200, date=Thu, 18 Aug 2016 03:20:06 GMT, content-type=text/plain, last-modified=Tue, 16 Aug 2016 06:50:31 GMT, etag="57b2b7b7-800", server=nginx/1.10.0 (Ubuntu), content-length=2048, accept-ranges=bytes, }

After looking into libquic source code, I see that the error was thrown from this. The new_value value was correct (2048) while the *content_length value (5808101) was wrong.

I am not sure if this is problem with libquic itself or not. Can someone give me a suggestion?

FYI: My request header with curl

curl -I https://myserver/text/2K.txt
HTTP/1.1 200 OK
Accept-Ranges: bytes
Alt-Svc: quic=":443"; ma=86400; v="34,33,32,31,30"
Alternate-Protocol: 443:quic
Content-Length: 2048
Content-Type: text/plain
Date: Thu, 18 Aug 2016 03:29:08 GMT
Etag: "57b2b7b7-800"
Last-Modified: Tue, 16 Aug 2016 06:50:31 GMT
Server: nginx/1.10.0 (Ubuntu)

Regards,

iOS Support

I want to use libquic in my iOS APP. Is there any plan to support iOS ?

Thanks,

Conan package for libquic

Hello,
Do you know about Conan?
Conan is modern dependency manager for C++. And will be great if your library will be available via package manager for other developers.

Here you can find example, how you can create package for the library.

If you have any questions, just ask :-)

Example on how to easily decode QUIC SNI field

Hi there,

my use case is the following:

  • I get the packet bytes from the network or PCAP file
  • I would like to extract SNI field related to that specific session that the packet belongs to
  • session management is done by my side

Is it possible? How would the example look like?

Thanks and regards

Patch to compile on FreeBSD

diff --git a/boringssl/ssl/test/CMakeLists.txt b/boringssl/ssl/test/CMakeLists.txt
index 9992360..464e551 100644
--- a/boringssl/ssl/test/CMakeLists.txt
+++ b/boringssl/ssl/test/CMakeLists.txt
@@ -11,6 +11,6 @@ add_executable(
 )

 target_link_libraries(bssl_shim ssl crypto)
-if (NOT APPLE AND NOT WIN32)
+if (NOT APPLE AND NOT WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
   target_link_libraries(bssl_shim dl)
 endif()

How to solve it. About error with gcc-11/c++

gcc-11 glibc-2.36

error message
boringssl/crypto/test/malloc.cc:121:7: error: declaration of ‘void* malloc(size_t)’ has a different exception specifier

this is configure:

PATH=$PATH:/srv/sys_x64/usr/bin cmake -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_C_FLAGS="-I$PREIFX/include -fPIC -Wl,-rpath-link=$PREFIX/lib:$PREFIX/lib/x86_64-linux-gnu -std=c11" -DCMAKE_CXX_FLAGS="-I$PREIFX/include -fPIC -Wl,-rpath-link=$PREFIX/lib:$PREFIX/lib/x86_64-linux-gnu -std=c++14" -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 -GNinja ..

compile the newest version error!!

libcrypto.a(err.c.o): In function ERR_reason_error_string': /root/yangyazhou/libquic-syngit/libquic/boringssl/crypto/err/err.c:547: undefined reference to kOpenSSLReasonValuesLen'
/root/yangyazhou/libquic-syngit/libquic/boringssl/crypto/err/err.c:547: undefined reference to kOpenSSLReasonStringData' /root/yangyazhou/libquic-syngit/libquic/boringssl/crypto/err/err.c:547: undefined reference to kOpenSSLReasonValues'
collect2: error: ld returned 1 exit status
make[2]: *** [boringssl/crypto/constant_time_test] Error 1
make[1]: *** [boringssl/crypto/CMakeFiles/constant_time_test.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

error:Could not find Go

When I input cmake -GNinja in the shell, it shows an error as follows:
2015-06-16 22 10 06

2015-06-16 23 57 28

I am not skillful and strong, what should i do to solve this problem?
Looking forward to your help sincerely, thanks very much!

make failed

[ 11%] Building ASM object boringssl/crypto/chacha/CMakeFiles/chacha.dir/chacha-x86_64.S.o
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S: Assembler messages:
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1002: Error: no such instruction: vbroadcasti128 .Lsigma(%rip),%ymm11' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1003: Error: no such instruction: vbroadcasti128 (%rcx),%ymm3'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1004: Error: no such instruction: vbroadcasti128 16(%rcx),%ymm15' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1005: Error: no such instruction: vbroadcasti128 (%r8),%ymm7'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1011: Error: suffix or operands invalid for vpshufd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1012: Error: suffix or operands invalid for vpshufd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1014: Error: suffix or operands invalid for vpshufd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1016: Error: suffix or operands invalid for vpshufd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1020: Error: suffix or operands invalid for vpshufd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1021: Error: suffix or operands invalid for vpshufd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1023: Error: suffix or operands invalid for vpshufd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1025: Error: suffix or operands invalid for vpshufd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1029: Error: suffix or operands invalid for vpshufd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1030: Error: suffix or operands invalid for vpshufd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1032: Error: suffix or operands invalid for vpshufd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1034: Error: suffix or operands invalid for vpshufd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1038: Error: suffix or operands invalid for vpshufd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1039: Error: suffix or operands invalid for vpshufd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1040: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1041: Error: suffix or operands invalid for vpshufd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1043: Error: suffix or operands invalid for vpshufd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1067: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1072: Error: no such instruction: vbroadcasti128 (%r10),%ymm15' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1079: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1080: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1081: Error: suffix or operands invalid for vpshufb'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1082: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1083: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1084: Error: suffix or operands invalid for vpshufb' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1085: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1086: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1087: Error: suffix or operands invalid for vpslld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1088: Error: suffix or operands invalid for vpsrld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1089: Error: suffix or operands invalid for vpor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1090: Error: no such instruction: vbroadcasti128 (%r11),%ymm14' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1091: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1092: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1093: Error: suffix or operands invalid for vpslld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1094: Error: suffix or operands invalid for vpsrld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1095: Error: suffix or operands invalid for vpor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1096: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1097: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1098: Error: suffix or operands invalid for vpshufb' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1099: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1100: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1101: Error: suffix or operands invalid for vpshufb'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1102: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1103: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1104: Error: suffix or operands invalid for vpslld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1105: Error: suffix or operands invalid for vpsrld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1106: Error: suffix or operands invalid for vpor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1107: Error: no such instruction: vbroadcasti128 (%r10),%ymm15'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1108: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1109: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1110: Error: suffix or operands invalid for vpslld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1111: Error: suffix or operands invalid for vpsrld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1112: Error: suffix or operands invalid for vpor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1117: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1118: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1119: Error: suffix or operands invalid for vpshufb'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1120: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1121: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1122: Error: suffix or operands invalid for vpshufb' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1123: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1124: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1125: Error: suffix or operands invalid for vpslld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1126: Error: suffix or operands invalid for vpsrld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1127: Error: suffix or operands invalid for vpor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1128: Error: no such instruction: vbroadcasti128 (%r11),%ymm14' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1129: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1130: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1131: Error: suffix or operands invalid for vpslld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1132: Error: suffix or operands invalid for vpsrld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1133: Error: suffix or operands invalid for vpor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1134: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1135: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1136: Error: suffix or operands invalid for vpshufb' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1137: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1138: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1139: Error: suffix or operands invalid for vpshufb'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1140: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1141: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1142: Error: suffix or operands invalid for vpslld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1143: Error: suffix or operands invalid for vpsrld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1144: Error: suffix or operands invalid for vpor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1145: Error: no such instruction: vbroadcasti128 (%r10),%ymm15'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1146: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1147: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1148: Error: suffix or operands invalid for vpslld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1149: Error: suffix or operands invalid for vpsrld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1150: Error: suffix or operands invalid for vpor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1151: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1152: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1153: Error: suffix or operands invalid for vpshufb'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1154: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1155: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1156: Error: suffix or operands invalid for vpshufb' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1157: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1158: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1159: Error: suffix or operands invalid for vpslld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1160: Error: suffix or operands invalid for vpsrld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1161: Error: suffix or operands invalid for vpor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1162: Error: no such instruction: vbroadcasti128 (%r11),%ymm14' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1163: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1164: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1165: Error: suffix or operands invalid for vpslld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1166: Error: suffix or operands invalid for vpsrld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1167: Error: suffix or operands invalid for vpor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1168: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1169: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1170: Error: suffix or operands invalid for vpshufb' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1171: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1172: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1173: Error: suffix or operands invalid for vpshufb'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1174: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1175: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1176: Error: suffix or operands invalid for vpslld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1177: Error: suffix or operands invalid for vpsrld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1178: Error: suffix or operands invalid for vpor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1179: Error: no such instruction: vbroadcasti128 (%r10),%ymm15'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1180: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1181: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1182: Error: suffix or operands invalid for vpslld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1183: Error: suffix or operands invalid for vpsrld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1184: Error: suffix or operands invalid for vpor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1189: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1190: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1191: Error: suffix or operands invalid for vpshufb'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1192: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1193: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1194: Error: suffix or operands invalid for vpshufb' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1195: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1196: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1197: Error: suffix or operands invalid for vpslld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1198: Error: suffix or operands invalid for vpsrld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1199: Error: suffix or operands invalid for vpor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1200: Error: no such instruction: vbroadcasti128 (%r11),%ymm14' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1201: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1202: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1203: Error: suffix or operands invalid for vpslld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1204: Error: suffix or operands invalid for vpsrld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1205: Error: suffix or operands invalid for vpor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1206: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1207: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1208: Error: suffix or operands invalid for vpshufb' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1209: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1210: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1211: Error: suffix or operands invalid for vpshufb'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1212: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1213: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1214: Error: suffix or operands invalid for vpslld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1215: Error: suffix or operands invalid for vpsrld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1216: Error: suffix or operands invalid for vpor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1217: Error: no such instruction: vbroadcasti128 (%r10),%ymm15'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1218: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1219: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1220: Error: suffix or operands invalid for vpslld' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1221: Error: suffix or operands invalid for vpsrld'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1222: Error: suffix or operands invalid for vpor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1227: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1228: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1229: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1230: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1232: Error: suffix or operands invalid for vpunpckldq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1233: Error: suffix or operands invalid for vpunpckldq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1234: Error: suffix or operands invalid for vpunpckhdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1235: Error: suffix or operands invalid for vpunpckhdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1236: Error: suffix or operands invalid for vpunpcklqdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1237: Error: suffix or operands invalid for vpunpckhqdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1238: Error: suffix or operands invalid for vpunpcklqdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1239: Error: suffix or operands invalid for vpunpckhqdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1240: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1241: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1242: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1243: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1245: Error: suffix or operands invalid for vpunpckldq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1246: Error: suffix or operands invalid for vpunpckldq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1247: Error: suffix or operands invalid for vpunpckhdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1248: Error: suffix or operands invalid for vpunpckhdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1249: Error: suffix or operands invalid for vpunpcklqdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1250: Error: suffix or operands invalid for vpunpckhqdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1251: Error: suffix or operands invalid for vpunpcklqdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1252: Error: suffix or operands invalid for vpunpckhqdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1253: Error: no such instruction: vperm2i128 $0x20,%ymm1,%ymm9,%ymm15'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1254: Error: no such instruction: vperm2i128 $0x31,%ymm1,%ymm9,%ymm1' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1255: Error: no such instruction: vperm2i128 $0x20,%ymm10,%ymm14,%ymm9'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1256: Error: no such instruction: vperm2i128 $0x31,%ymm10,%ymm14,%ymm10' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1257: Error: no such instruction: vperm2i128 $0x20,%ymm3,%ymm11,%ymm14'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1258: Error: no such instruction: vperm2i128 $0x31,%ymm3,%ymm11,%ymm3' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1259: Error: no such instruction: vperm2i128 $0x20,%ymm0,%ymm8,%ymm11'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1260: Error: no such instruction: vperm2i128 $0x31,%ymm0,%ymm8,%ymm0' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1266: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1267: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1268: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1269: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1271: Error: suffix or operands invalid for vpunpckldq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1272: Error: suffix or operands invalid for vpunpckldq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1273: Error: suffix or operands invalid for vpunpckhdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1274: Error: suffix or operands invalid for vpunpckhdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1275: Error: suffix or operands invalid for vpunpcklqdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1276: Error: suffix or operands invalid for vpunpckhqdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1277: Error: suffix or operands invalid for vpunpcklqdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1278: Error: suffix or operands invalid for vpunpckhqdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1279: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1280: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1281: Error: suffix or operands invalid for vpaddd'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1282: Error: suffix or operands invalid for vpaddd' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1284: Error: suffix or operands invalid for vpunpckldq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1285: Error: suffix or operands invalid for vpunpckldq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1286: Error: suffix or operands invalid for vpunpckhdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1287: Error: suffix or operands invalid for vpunpckhdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1288: Error: suffix or operands invalid for vpunpcklqdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1289: Error: suffix or operands invalid for vpunpckhqdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1290: Error: suffix or operands invalid for vpunpcklqdq'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1291: Error: suffix or operands invalid for vpunpckhqdq' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1292: Error: no such instruction: vperm2i128 $0x20,%ymm5,%ymm13,%ymm8'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1293: Error: no such instruction: vperm2i128 $0x31,%ymm5,%ymm13,%ymm5' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1294: Error: no such instruction: vperm2i128 $0x20,%ymm15,%ymm2,%ymm13'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1295: Error: no such instruction: vperm2i128 $0x31,%ymm15,%ymm2,%ymm15' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1296: Error: no such instruction: vperm2i128 $0x20,%ymm7,%ymm9,%ymm2'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1297: Error: no such instruction: vperm2i128 $0x31,%ymm7,%ymm9,%ymm7' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1298: Error: no such instruction: vperm2i128 $0x20,%ymm4,%ymm12,%ymm9'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1299: Error: no such instruction: vperm2i128 $0x31,%ymm4,%ymm12,%ymm4' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1306: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1307: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1308: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1309: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1317: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1318: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1319: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1320: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1328: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1329: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1330: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1331: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1339: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1340: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1341: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1342: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1378: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1379: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1394: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1395: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1396: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1397: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1414: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1415: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1416: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1417: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1418: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1419: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1438: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1439: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1440: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1441: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1442: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1443: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1444: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1445: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1466: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1467: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1468: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1469: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1470: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1471: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1472: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1473: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1474: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1475: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1498: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1499: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1500: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1501: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1502: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1503: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1504: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1505: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1506: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1507: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1508: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1509: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1534: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1535: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1536: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1537: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1538: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1539: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1540: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1541: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1542: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1543: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1544: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1545: Error: suffix or operands invalid for vpxor' /home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1546: Error: suffix or operands invalid for vpxor'
/home/yazhou.yang/libquic/build/boringssl/crypto/chacha/chacha-x86_64.S:1547: Error: suffix or operands invalid for `vpxor'
make[2]: *** [boringssl/crypto/chacha/CMakeFiles/chacha.dir/chacha-x86_64.S.o] Error 1
make[1]: *** [boringssl/crypto/chacha/CMakeFiles/chacha.dir/all] Error 2

@hodduc @serialx

Can you help me, thanks.

cmake got "Could not found Go" error

here's the log:

~/source/libquic/build$ cmake ..
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting build type to 'Debug' as none was specified.
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found Protobuf: /usr/local/lib/libprotobuf.so (Required is at least version "3")
-- Found Perl: /usr/bin/perl (found version "5.22.1")
CMake Error at boringssl/CMakeLists.txt:26 (message):
Could not find Go

-- Configuring incomplete, errors occurred!
See also "/home/liuyafei/source/libquic/build/CMakeFiles/CMakeOutput.log".
See also "/home/liuyafei/source/libquic/build/CMakeFiles/CMakeError.log".

‘INT64_C’ was not declared in this scope

Hi,all:
When i run make as specified in the readme.md, some error occurred. The error is mainly due to the lack of declaration of INT64_C and UINT64_C.
I find the reported missing declaration existed in the included file stdint.h. Can anyone tell me why the error occurred and how to fix it?
My Os is Ubuntu 12.04.3 LTS。

Compilation error on MAC inside BoringSSL

[ 50%] Building CXX object boringssl/crypto/aes/CMakeFiles/aes_test.dir/aes_test.cc.o
/Users/bogdan/tools/libquic/boringssl/crypto/aes/aes_test.cc:97:5: error: bool literal returned from
      'main' [-Werror,-Wmain]
    return false;
    ^      ~~~~~
1 error generated

It seems aes_test.cc has a warning, and because of -Werror, compilation fails.

OS: Mac 10.14.5
CMake: 3.14.4
Compiler: Apple LLVM version 10.0.1 (clang-1001.0.46.4)

readdir_r is deprecated

GNU libc 2.24 (published 2016-08-04) deprecated readdir_r, see the announcement email:

  • The readdir_r and readdir64_r functions have been deprecated. It is
    recommended to use readdir and readdir64 instead.

This causes the build to fail:

[566/727] Building C object boringssl/decrepit/ssl/CMakeFiles/ssl_decrepit.dir/ssl_decrepit.c.o
FAILED: boringssl/decrepit/ssl/CMakeFiles/ssl_decrepit.dir/ssl_decrepit.c.o 
/usr/bin/cc  -DBORINGSSL_IMPLEMENTATION -DUSE_OPENSSL -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I../src -I../src/third_party/modp_b64 -I../boringssl/include -I../src/third_party/protobuf/src -I/src -I../boringssl/decrepit/ssl/../../include -Wall -fpic -gdwarf-4 -Wall -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -ggdb -fvisibility=hidden -Wmissing-prototypes -Wshadow -std=c11 -D_XOPEN_SOURCE=700 -g -MD -MT boringssl/decrepit/ssl/CMakeFiles/ssl_decrepit.dir/ssl_decrepit.c.o -MF boringssl/decrepit/ssl/CMakeFiles/ssl_decrepit.dir/ssl_decrepit.c.o.d -o boringssl/decrepit/ssl/CMakeFiles/ssl_decrepit.dir/ssl_decrepit.c.o   -c ../boringssl/decrepit/ssl/ssl_decrepit.c
../boringssl/decrepit/ssl/ssl_decrepit.c: In function ‘OPENSSL_DIR_read’:
../boringssl/decrepit/ssl/ssl_decrepit.c:157:3: error: ‘readdir_r’ is deprecated [-Werror=deprecated-declarations]
   if (readdir_r((*ctx)->dir, &(*ctx)->dirent, &dirent) != 0 ||
   ^~
In file included from ../boringssl/decrepit/ssl/ssl_decrepit.c:115:0:
/usr/include/dirent.h:183:12: note: declared here
 extern int readdir_r (DIR *__restrict __dirp,
            ^~~~~~~~~
cc1: all warnings being treated as errors
[…]
ninja: build stopped: subcommand failed.

Rust bindings

I'm trying to create some rust bindings for libquic but I'm having trouble finding which .h file to generate against. The tool I'm using is called rust-bindgen: https://github.com/crabtw/rust-bindgen. If you wouldn't mind taking a quick peek at this I'd very much appreciate it :).

libquic vs MsQuic?

Has anyone compared the differences between the two? Does libquic fully implements rfc9000, 9001, 9002?

Warnings as errors causing gcc 10 to fail to compile.

Line 30 in CMakelists.txt:

set(C_CXX_FLAGS "-Wall -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -ggdb -fvisibility=hidden")

is causing the library to fail to compile on a recent kernel and gcc version.

Setting to:

set(C_CXX_FLAGS "-Wall -Wformat=2 -Wsign-compare -Wmissing-field-initializers -ggdb -fvisibility=hidden")

i.e. removing -Werror allows for compilation to proceed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.