diff options
21 files changed, 916 insertions, 113 deletions
diff --git a/.gitignore b/.gitignore index 8d5b7fee4e..cf05a2cb7e 100644 --- a/.gitignore +++ b/.gitignore @@ -61,7 +61,7 @@ out .ycm_extra_conf.py # XCode -build/ +^build/ *.pbxuser !default.pbxuser *.mode1v3 @@ -4197,8 +4197,8 @@ LIBBORINGSSL_SRC = \ LIBBORINGSSL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SRC)))) -$(LIBBORINGSSL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl.a: $(ZLIB_DEP) $(LIBBORINGSSL_OBJS) $(E) "[AR] Creating $@" @@ -4225,8 +4225,8 @@ LIBBORINGSSL_TEST_UTIL_SRC = \ LIBBORINGSSL_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TEST_UTIL_SRC)))) -$(LIBBORINGSSL_TEST_UTIL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_TEST_UTIL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_TEST_UTIL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_TEST_UTIL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4262,8 +4262,8 @@ LIBBORINGSSL_AES_TEST_LIB_SRC = \ LIBBORINGSSL_AES_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AES_TEST_LIB_SRC)))) -$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4299,8 +4299,8 @@ LIBBORINGSSL_BASE64_TEST_LIB_SRC = \ LIBBORINGSSL_BASE64_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BASE64_TEST_LIB_SRC)))) -$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4336,8 +4336,8 @@ LIBBORINGSSL_BIO_TEST_LIB_SRC = \ LIBBORINGSSL_BIO_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BIO_TEST_LIB_SRC)))) -$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4373,8 +4373,8 @@ LIBBORINGSSL_BN_TEST_LIB_SRC = \ LIBBORINGSSL_BN_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BN_TEST_LIB_SRC)))) -$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4410,8 +4410,8 @@ LIBBORINGSSL_BYTESTRING_TEST_LIB_SRC = \ LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BYTESTRING_TEST_LIB_SRC)))) -$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4447,8 +4447,8 @@ LIBBORINGSSL_AEAD_TEST_LIB_SRC = \ LIBBORINGSSL_AEAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AEAD_TEST_LIB_SRC)))) -$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4484,8 +4484,8 @@ LIBBORINGSSL_CIPHER_TEST_LIB_SRC = \ LIBBORINGSSL_CIPHER_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CIPHER_TEST_LIB_SRC)))) -$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4521,8 +4521,8 @@ LIBBORINGSSL_CMAC_TEST_LIB_SRC = \ LIBBORINGSSL_CMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CMAC_TEST_LIB_SRC)))) -$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4558,8 +4558,8 @@ LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC = \ LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC)))) -$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS) $(E) "[AR] Creating $@" @@ -4584,8 +4584,8 @@ LIBBORINGSSL_ED25519_TEST_LIB_SRC = \ LIBBORINGSSL_ED25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ED25519_TEST_LIB_SRC)))) -$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4621,8 +4621,8 @@ LIBBORINGSSL_X25519_TEST_LIB_SRC = \ LIBBORINGSSL_X25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_X25519_TEST_LIB_SRC)))) -$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4658,8 +4658,8 @@ LIBBORINGSSL_DH_TEST_LIB_SRC = \ LIBBORINGSSL_DH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DH_TEST_LIB_SRC)))) -$(LIBBORINGSSL_DH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_DH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_DH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_DH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4695,8 +4695,8 @@ LIBBORINGSSL_DIGEST_TEST_LIB_SRC = \ LIBBORINGSSL_DIGEST_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DIGEST_TEST_LIB_SRC)))) -$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4732,8 +4732,8 @@ LIBBORINGSSL_DSA_TEST_LIB_SRC = \ LIBBORINGSSL_DSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DSA_TEST_LIB_SRC)))) -$(LIBBORINGSSL_DSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_DSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_DSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_DSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_DSA_TEST_LIB_OBJS) $(E) "[AR] Creating $@" @@ -4758,8 +4758,8 @@ LIBBORINGSSL_EC_TEST_LIB_SRC = \ LIBBORINGSSL_EC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EC_TEST_LIB_SRC)))) -$(LIBBORINGSSL_EC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_EC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_EC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_EC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4795,8 +4795,8 @@ LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC = \ LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC)))) -$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS) $(E) "[AR] Creating $@" @@ -4821,8 +4821,8 @@ LIBBORINGSSL_ECDSA_TEST_LIB_SRC = \ LIBBORINGSSL_ECDSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDSA_TEST_LIB_SRC)))) -$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4858,8 +4858,8 @@ LIBBORINGSSL_ERR_TEST_LIB_SRC = \ LIBBORINGSSL_ERR_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ERR_TEST_LIB_SRC)))) -$(LIBBORINGSSL_ERR_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_ERR_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_ERR_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_ERR_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4895,8 +4895,8 @@ LIBBORINGSSL_EVP_EXTRA_TEST_LIB_SRC = \ LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_SRC)))) -$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4932,8 +4932,8 @@ LIBBORINGSSL_EVP_TEST_LIB_SRC = \ LIBBORINGSSL_EVP_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_TEST_LIB_SRC)))) -$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -4969,8 +4969,8 @@ LIBBORINGSSL_PBKDF_TEST_LIB_SRC = \ LIBBORINGSSL_PBKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PBKDF_TEST_LIB_SRC)))) -$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -5006,8 +5006,8 @@ LIBBORINGSSL_HKDF_TEST_LIB_SRC = \ LIBBORINGSSL_HKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HKDF_TEST_LIB_SRC)))) -$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_HKDF_TEST_LIB_OBJS) $(E) "[AR] Creating $@" @@ -5032,8 +5032,8 @@ LIBBORINGSSL_HMAC_TEST_LIB_SRC = \ LIBBORINGSSL_HMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HMAC_TEST_LIB_SRC)))) -$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -5069,8 +5069,8 @@ LIBBORINGSSL_LHASH_TEST_LIB_SRC = \ LIBBORINGSSL_LHASH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_LHASH_TEST_LIB_SRC)))) -$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_LHASH_TEST_LIB_OBJS) $(E) "[AR] Creating $@" @@ -5095,8 +5095,8 @@ LIBBORINGSSL_GCM_TEST_LIB_SRC = \ LIBBORINGSSL_GCM_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_GCM_TEST_LIB_SRC)))) -$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_GCM_TEST_LIB_OBJS) $(E) "[AR] Creating $@" @@ -5121,8 +5121,8 @@ LIBBORINGSSL_PKCS12_TEST_LIB_SRC = \ LIBBORINGSSL_PKCS12_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS12_TEST_LIB_SRC)))) -$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -5158,8 +5158,8 @@ LIBBORINGSSL_PKCS8_TEST_LIB_SRC = \ LIBBORINGSSL_PKCS8_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS8_TEST_LIB_SRC)))) -$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -5195,8 +5195,8 @@ LIBBORINGSSL_POLY1305_TEST_LIB_SRC = \ LIBBORINGSSL_POLY1305_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_POLY1305_TEST_LIB_SRC)))) -$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -5232,8 +5232,8 @@ LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC = \ LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC)))) -$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS) $(E) "[AR] Creating $@" @@ -5258,8 +5258,8 @@ LIBBORINGSSL_RSA_TEST_LIB_SRC = \ LIBBORINGSSL_RSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_RSA_TEST_LIB_SRC)))) -$(LIBBORINGSSL_RSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_RSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_RSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_RSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -5295,8 +5295,8 @@ LIBBORINGSSL_THREAD_TEST_LIB_SRC = \ LIBBORINGSSL_THREAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_THREAD_TEST_LIB_SRC)))) -$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_THREAD_TEST_LIB_OBJS) $(E) "[AR] Creating $@" @@ -5321,8 +5321,8 @@ LIBBORINGSSL_PKCS7_TEST_LIB_SRC = \ LIBBORINGSSL_PKCS7_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS7_TEST_LIB_SRC)))) -$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS) $(E) "[AR] Creating $@" @@ -5347,8 +5347,8 @@ LIBBORINGSSL_TAB_TEST_LIB_SRC = \ LIBBORINGSSL_TAB_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TAB_TEST_LIB_SRC)))) -$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_TAB_TEST_LIB_OBJS) $(E) "[AR] Creating $@" @@ -5373,8 +5373,8 @@ LIBBORINGSSL_V3NAME_TEST_LIB_SRC = \ LIBBORINGSSL_V3NAME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_V3NAME_TEST_LIB_SRC)))) -$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS) $(E) "[AR] Creating $@" @@ -5399,8 +5399,8 @@ LIBBORINGSSL_PQUEUE_TEST_LIB_SRC = \ LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PQUEUE_TEST_LIB_SRC)))) -$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a: $(ZLIB_DEP) $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS) $(E) "[AR] Creating $@" @@ -5425,8 +5425,8 @@ LIBBORINGSSL_SSL_TEST_LIB_SRC = \ LIBBORINGSSL_SSL_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SSL_TEST_LIB_SRC)))) -$(LIBBORINGSSL_SSL_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -$(LIBBORINGSSL_SSL_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value +$(LIBBORINGSSL_SSL_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX +$(LIBBORINGSSL_SSL_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare ifeq ($(NO_PROTOBUF),true) @@ -10,11 +10,18 @@ RuboCop::RakeTask.new(:rubocop) do |task| task.patterns = ['src/ruby/{lib,spec}/**/*.rb'] end +spec = Gem::Specification.load('grpc.gemspec') + +Gem::PackageTask.new(spec) do |pkg| +end + # Add the extension compiler task -Rake::ExtensionTask.new 'grpc' do |ext| +Rake::ExtensionTask.new('grpc_c', spec) do |ext| ext.source_pattern = '**/*.{c,h}' ext.ext_dir = File.join('src', 'ruby', 'ext', 'grpc') ext.lib_dir = File.join('src', 'ruby', 'lib', 'grpc') + ext.cross_compile = true + ext.cross_platform = ['x86-mingw32', 'x64-mingw32'] end # Define the test suites @@ -51,6 +58,24 @@ namespace :suite do end end +desc 'Build the gem file under rake_compiler_dock' +task 'gem:windows' do + require 'digest' + require 'rake_compiler_dock' + + grpc_config = ENV['GRPC_CONFIG'] || 'opt' + V = ENV['V'] || '0' + + version = Digest::SHA1.file('third_party/rake-compiler-dock/Dockerfile').hexdigest + image_name = 'grpc/rake-compiler-dock:' + version + cmd = "docker build -t #{image_name} third_party/rake-compiler-dock" + puts cmd + system cmd + exit 1 unless $? == 0 + ENV['RAKE_COMPILER_DOCK_IMAGE'] = image_name + RakeCompilerDock.sh "bundle && rake cross native gem RUBY_CC_VERSION=2.3.0:2.2.2:2.1.6:2.0.0 GRPC_CONFIG=#{grpc_config} V=#{V}" +end + # Define dependencies between the suites. task 'suite:wrapper' => [:compile, :rubocop] task 'suite:idiomatic' => 'suite:wrapper' diff --git a/build.yaml b/build.yaml index 1b3cb79202..9df5cc8f01 100644 --- a/build.yaml +++ b/build.yaml @@ -2671,9 +2671,10 @@ configs: timeout_multiplier: 1.5 defaults: boringssl: - CFLAGS: -Wno-sign-conversion -Wno-conversion -Wno-unused-value + CFLAGS: -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas + -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare CPPFLAGS: -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM - -D_GNU_SOURCE + -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX global: CPPFLAGS: -g -Wall -Wextra -Werror -Wno-long-long -Wno-unused-parameter LDFLAGS: -g @@ -2721,3 +2722,9 @@ python_dependencies: - gpr - boringssl - z +ruby_gem: + deps: + - grpc + - gpr + - boringssl + - z diff --git a/grpc.gemspec b/grpc.gemspec index 7f11ec778a..b3b3347842 100755 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |s| s.required_ruby_version = '>= 2.0.0' s.requirements << 'libgrpc ~> 0.11.0 needs to be installed' - s.files = %w( Rakefile Makefile ) + s.files = %w( Makefile ) s.files += %w( etc/roots.pem ) s.files += Dir.glob('src/ruby/bin/**/*') s.files += Dir.glob('src/ruby/ext/**/*') @@ -33,16 +33,17 @@ Gem::Specification.new do |s| s.platform = Gem::Platform::RUBY s.add_dependency 'google-protobuf', '~> 3.0.0alpha.1.1' - s.add_dependency 'googleauth', '~> 0.5.1' + s.add_dependency 'googleauth', '~> 0.5.1' - s.add_development_dependency 'bundler', '~> 1.9' - s.add_development_dependency 'logging', '~> 2.0' - s.add_development_dependency 'simplecov', '~> 0.9' - s.add_development_dependency 'rake', '~> 10.4' - s.add_development_dependency 'rake-compiler', '~> 0.9' - s.add_development_dependency 'rspec', '~> 3.2' - s.add_development_dependency 'rubocop', '~> 0.30.0' - s.add_development_dependency 'signet', '~>0.7.0' + s.add_development_dependency 'bundler', '~> 1.9' + s.add_development_dependency 'logging', '~> 2.0' + s.add_development_dependency 'simplecov', '~> 0.9' + s.add_development_dependency 'rake', '~> 10.4' + s.add_development_dependency 'rake-compiler', '~> 0.9' + s.add_development_dependency 'rake-compiler-dock', '~> 0.5' + s.add_development_dependency 'rspec', '~> 3.2' + s.add_development_dependency 'rubocop', '~> 0.30.0' + s.add_development_dependency 'signet', '~> 0.7.0' s.extensions = %w(src/ruby/ext/grpc/extconf.rb) @@ -434,4 +435,431 @@ Gem::Specification.new do |s| s.files += %w( src/core/census/operation.c ) s.files += %w( src/core/census/tag_set.c ) s.files += %w( src/core/census/tracing.c ) + s.files += %w( third_party/boringssl/crypto/aes/internal.h ) + s.files += %w( third_party/boringssl/crypto/asn1/asn1_locl.h ) + s.files += %w( third_party/boringssl/crypto/bio/internal.h ) + s.files += %w( third_party/boringssl/crypto/bn/internal.h ) + s.files += %w( third_party/boringssl/crypto/bn/rsaz_exp.h ) + s.files += %w( third_party/boringssl/crypto/bytestring/internal.h ) + s.files += %w( third_party/boringssl/crypto/cipher/internal.h ) + s.files += %w( third_party/boringssl/crypto/conf/conf_def.h ) + s.files += %w( third_party/boringssl/crypto/conf/internal.h ) + s.files += %w( third_party/boringssl/crypto/des/internal.h ) + s.files += %w( third_party/boringssl/crypto/dh/internal.h ) + s.files += %w( third_party/boringssl/crypto/digest/internal.h ) + s.files += %w( third_party/boringssl/crypto/digest/md32_common.h ) + s.files += %w( third_party/boringssl/crypto/directory.h ) + s.files += %w( third_party/boringssl/crypto/dsa/internal.h ) + s.files += %w( third_party/boringssl/crypto/ec/internal.h ) + s.files += %w( third_party/boringssl/crypto/ec/p256-x86_64-table.h ) + s.files += %w( third_party/boringssl/crypto/evp/internal.h ) + s.files += %w( third_party/boringssl/crypto/internal.h ) + s.files += %w( third_party/boringssl/crypto/modes/internal.h ) + s.files += %w( third_party/boringssl/crypto/obj/obj_dat.h ) + s.files += %w( third_party/boringssl/crypto/obj/obj_xref.h ) + s.files += %w( third_party/boringssl/crypto/pkcs8/internal.h ) + s.files += %w( third_party/boringssl/crypto/rand/internal.h ) + s.files += %w( third_party/boringssl/crypto/rsa/internal.h ) + s.files += %w( third_party/boringssl/crypto/test/scoped_types.h ) + s.files += %w( third_party/boringssl/crypto/test/test_util.h ) + s.files += %w( third_party/boringssl/crypto/x509/charmap.h ) + s.files += %w( third_party/boringssl/crypto/x509/vpm_int.h ) + s.files += %w( third_party/boringssl/crypto/x509v3/ext_dat.h ) + s.files += %w( third_party/boringssl/crypto/x509v3/pcy_int.h ) + s.files += %w( third_party/boringssl/include/openssl/aead.h ) + s.files += %w( third_party/boringssl/include/openssl/aes.h ) + s.files += %w( third_party/boringssl/include/openssl/arm_arch.h ) + s.files += %w( third_party/boringssl/include/openssl/asn1.h ) + s.files += %w( third_party/boringssl/include/openssl/asn1_mac.h ) + s.files += %w( third_party/boringssl/include/openssl/asn1t.h ) + s.files += %w( third_party/boringssl/include/openssl/base.h ) + s.files += %w( third_party/boringssl/include/openssl/base64.h ) + s.files += %w( third_party/boringssl/include/openssl/bio.h ) + s.files += %w( third_party/boringssl/include/openssl/blowfish.h ) + s.files += %w( third_party/boringssl/include/openssl/bn.h ) + s.files += %w( third_party/boringssl/include/openssl/buf.h ) + s.files += %w( third_party/boringssl/include/openssl/buffer.h ) + s.files += %w( third_party/boringssl/include/openssl/bytestring.h ) + s.files += %w( third_party/boringssl/include/openssl/cast.h ) + s.files += %w( third_party/boringssl/include/openssl/chacha.h ) + s.files += %w( third_party/boringssl/include/openssl/cipher.h ) + s.files += %w( third_party/boringssl/include/openssl/cmac.h ) + s.files += %w( third_party/boringssl/include/openssl/conf.h ) + s.files += %w( third_party/boringssl/include/openssl/cpu.h ) + s.files += %w( third_party/boringssl/include/openssl/crypto.h ) + s.files += %w( third_party/boringssl/include/openssl/curve25519.h ) + s.files += %w( third_party/boringssl/include/openssl/des.h ) + s.files += %w( third_party/boringssl/include/openssl/dh.h ) + s.files += %w( third_party/boringssl/include/openssl/digest.h ) + s.files += %w( third_party/boringssl/include/openssl/dsa.h ) + s.files += %w( third_party/boringssl/include/openssl/dtls1.h ) + s.files += %w( third_party/boringssl/include/openssl/ec.h ) + s.files += %w( third_party/boringssl/include/openssl/ec_key.h ) + s.files += %w( third_party/boringssl/include/openssl/ecdh.h ) + s.files += %w( third_party/boringssl/include/openssl/ecdsa.h ) + s.files += %w( third_party/boringssl/include/openssl/engine.h ) + s.files += %w( third_party/boringssl/include/openssl/err.h ) + s.files += %w( third_party/boringssl/include/openssl/evp.h ) + s.files += %w( third_party/boringssl/include/openssl/ex_data.h ) + s.files += %w( third_party/boringssl/include/openssl/hkdf.h ) + s.files += %w( third_party/boringssl/include/openssl/hmac.h ) + s.files += %w( third_party/boringssl/include/openssl/lhash.h ) + s.files += %w( third_party/boringssl/include/openssl/lhash_macros.h ) + s.files += %w( third_party/boringssl/include/openssl/md4.h ) + s.files += %w( third_party/boringssl/include/openssl/md5.h ) + s.files += %w( third_party/boringssl/include/openssl/mem.h ) + s.files += %w( third_party/boringssl/include/openssl/obj.h ) + s.files += %w( third_party/boringssl/include/openssl/obj_mac.h ) + s.files += %w( third_party/boringssl/include/openssl/objects.h ) + s.files += %w( third_party/boringssl/include/openssl/opensslfeatures.h ) + s.files += %w( third_party/boringssl/include/openssl/opensslv.h ) + s.files += %w( third_party/boringssl/include/openssl/ossl_typ.h ) + s.files += %w( third_party/boringssl/include/openssl/pem.h ) + s.files += %w( third_party/boringssl/include/openssl/pkcs12.h ) + s.files += %w( third_party/boringssl/include/openssl/pkcs7.h ) + s.files += %w( third_party/boringssl/include/openssl/pkcs8.h ) + s.files += %w( third_party/boringssl/include/openssl/poly1305.h ) + s.files += %w( third_party/boringssl/include/openssl/pqueue.h ) + s.files += %w( third_party/boringssl/include/openssl/rand.h ) + s.files += %w( third_party/boringssl/include/openssl/rc4.h ) + s.files += %w( third_party/boringssl/include/openssl/rsa.h ) + s.files += %w( third_party/boringssl/include/openssl/safestack.h ) + s.files += %w( third_party/boringssl/include/openssl/sha.h ) + s.files += %w( third_party/boringssl/include/openssl/srtp.h ) + s.files += %w( third_party/boringssl/include/openssl/ssl.h ) + s.files += %w( third_party/boringssl/include/openssl/ssl3.h ) + s.files += %w( third_party/boringssl/include/openssl/stack.h ) + s.files += %w( third_party/boringssl/include/openssl/stack_macros.h ) + s.files += %w( third_party/boringssl/include/openssl/thread.h ) + s.files += %w( third_party/boringssl/include/openssl/time_support.h ) + s.files += %w( third_party/boringssl/include/openssl/tls1.h ) + s.files += %w( third_party/boringssl/include/openssl/type_check.h ) + s.files += %w( third_party/boringssl/include/openssl/x509.h ) + s.files += %w( third_party/boringssl/include/openssl/x509_vfy.h ) + s.files += %w( third_party/boringssl/include/openssl/x509v3.h ) + s.files += %w( third_party/boringssl/ssl/internal.h ) + s.files += %w( third_party/boringssl/ssl/test/async_bio.h ) + s.files += %w( third_party/boringssl/ssl/test/packeted_bio.h ) + s.files += %w( third_party/boringssl/ssl/test/scoped_types.h ) + s.files += %w( third_party/boringssl/ssl/test/test_config.h ) + s.files += %w( src/boringssl/err_data.c ) + s.files += %w( third_party/boringssl/crypto/aes/aes.c ) + s.files += %w( third_party/boringssl/crypto/aes/mode_wrappers.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_bitstr.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_bool.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_bytes.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_d2i_fp.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_dup.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_enum.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_gentm.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_i2d_fp.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_int.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_mbstr.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_object.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_octet.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_print.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_strnid.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_time.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_type.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_utctm.c ) + s.files += %w( third_party/boringssl/crypto/asn1/a_utf8.c ) + s.files += %w( third_party/boringssl/crypto/asn1/asn1_lib.c ) + s.files += %w( third_party/boringssl/crypto/asn1/asn1_par.c ) + s.files += %w( third_party/boringssl/crypto/asn1/asn_pack.c ) + s.files += %w( third_party/boringssl/crypto/asn1/bio_asn1.c ) + s.files += %w( third_party/boringssl/crypto/asn1/bio_ndef.c ) + s.files += %w( third_party/boringssl/crypto/asn1/f_enum.c ) + s.files += %w( third_party/boringssl/crypto/asn1/f_int.c ) + s.files += %w( third_party/boringssl/crypto/asn1/f_string.c ) + s.files += %w( third_party/boringssl/crypto/asn1/t_bitst.c ) + s.files += %w( third_party/boringssl/crypto/asn1/t_pkey.c ) + s.files += %w( third_party/boringssl/crypto/asn1/tasn_dec.c ) + s.files += %w( third_party/boringssl/crypto/asn1/tasn_enc.c ) + s.files += %w( third_party/boringssl/crypto/asn1/tasn_fre.c ) + s.files += %w( third_party/boringssl/crypto/asn1/tasn_new.c ) + s.files += %w( third_party/boringssl/crypto/asn1/tasn_prn.c ) + s.files += %w( third_party/boringssl/crypto/asn1/tasn_typ.c ) + s.files += %w( third_party/boringssl/crypto/asn1/tasn_utl.c ) + s.files += %w( third_party/boringssl/crypto/asn1/x_bignum.c ) + s.files += %w( third_party/boringssl/crypto/asn1/x_long.c ) + s.files += %w( third_party/boringssl/crypto/base64/base64.c ) + s.files += %w( third_party/boringssl/crypto/bio/bio.c ) + s.files += %w( third_party/boringssl/crypto/bio/bio_mem.c ) + s.files += %w( third_party/boringssl/crypto/bio/buffer.c ) + s.files += %w( third_party/boringssl/crypto/bio/connect.c ) + s.files += %w( third_party/boringssl/crypto/bio/fd.c ) + s.files += %w( third_party/boringssl/crypto/bio/file.c ) + s.files += %w( third_party/boringssl/crypto/bio/hexdump.c ) + s.files += %w( third_party/boringssl/crypto/bio/pair.c ) + s.files += %w( third_party/boringssl/crypto/bio/printf.c ) + s.files += %w( third_party/boringssl/crypto/bio/socket.c ) + s.files += %w( third_party/boringssl/crypto/bio/socket_helper.c ) + s.files += %w( third_party/boringssl/crypto/bn/add.c ) + s.files += %w( third_party/boringssl/crypto/bn/asm/x86_64-gcc.c ) + s.files += %w( third_party/boringssl/crypto/bn/bn.c ) + s.files += %w( third_party/boringssl/crypto/bn/bn_asn1.c ) + s.files += %w( third_party/boringssl/crypto/bn/cmp.c ) + s.files += %w( third_party/boringssl/crypto/bn/convert.c ) + s.files += %w( third_party/boringssl/crypto/bn/ctx.c ) + s.files += %w( third_party/boringssl/crypto/bn/div.c ) + s.files += %w( third_party/boringssl/crypto/bn/exponentiation.c ) + s.files += %w( third_party/boringssl/crypto/bn/gcd.c ) + s.files += %w( third_party/boringssl/crypto/bn/generic.c ) + s.files += %w( third_party/boringssl/crypto/bn/kronecker.c ) + s.files += %w( third_party/boringssl/crypto/bn/montgomery.c ) + s.files += %w( third_party/boringssl/crypto/bn/mul.c ) + s.files += %w( third_party/boringssl/crypto/bn/prime.c ) + s.files += %w( third_party/boringssl/crypto/bn/random.c ) + s.files += %w( third_party/boringssl/crypto/bn/rsaz_exp.c ) + s.files += %w( third_party/boringssl/crypto/bn/shift.c ) + s.files += %w( third_party/boringssl/crypto/bn/sqrt.c ) + s.files += %w( third_party/boringssl/crypto/buf/buf.c ) + s.files += %w( third_party/boringssl/crypto/bytestring/ber.c ) + s.files += %w( third_party/boringssl/crypto/bytestring/cbb.c ) + s.files += %w( third_party/boringssl/crypto/bytestring/cbs.c ) + s.files += %w( third_party/boringssl/crypto/chacha/chacha_generic.c ) + s.files += %w( third_party/boringssl/crypto/chacha/chacha_vec.c ) + s.files += %w( third_party/boringssl/crypto/cipher/aead.c ) + s.files += %w( third_party/boringssl/crypto/cipher/cipher.c ) + s.files += %w( third_party/boringssl/crypto/cipher/derive_key.c ) + s.files += %w( third_party/boringssl/crypto/cipher/e_aes.c ) + s.files += %w( third_party/boringssl/crypto/cipher/e_chacha20poly1305.c ) + s.files += %w( third_party/boringssl/crypto/cipher/e_des.c ) + s.files += %w( third_party/boringssl/crypto/cipher/e_null.c ) + s.files += %w( third_party/boringssl/crypto/cipher/e_rc2.c ) + s.files += %w( third_party/boringssl/crypto/cipher/e_rc4.c ) + s.files += %w( third_party/boringssl/crypto/cipher/e_ssl3.c ) + s.files += %w( third_party/boringssl/crypto/cipher/e_tls.c ) + s.files += %w( third_party/boringssl/crypto/cipher/tls_cbc.c ) + s.files += %w( third_party/boringssl/crypto/cmac/cmac.c ) + s.files += %w( third_party/boringssl/crypto/conf/conf.c ) + s.files += %w( third_party/boringssl/crypto/cpu-arm.c ) + s.files += %w( third_party/boringssl/crypto/cpu-intel.c ) + s.files += %w( third_party/boringssl/crypto/crypto.c ) + s.files += %w( third_party/boringssl/crypto/curve25519/curve25519.c ) + s.files += %w( third_party/boringssl/crypto/des/des.c ) + s.files += %w( third_party/boringssl/crypto/dh/check.c ) + s.files += %w( third_party/boringssl/crypto/dh/dh.c ) + s.files += %w( third_party/boringssl/crypto/dh/dh_asn1.c ) + s.files += %w( third_party/boringssl/crypto/dh/params.c ) + s.files += %w( third_party/boringssl/crypto/digest/digest.c ) + s.files += %w( third_party/boringssl/crypto/digest/digests.c ) + s.files += %w( third_party/boringssl/crypto/directory_posix.c ) + s.files += %w( third_party/boringssl/crypto/directory_win.c ) + s.files += %w( third_party/boringssl/crypto/dsa/dsa.c ) + s.files += %w( third_party/boringssl/crypto/dsa/dsa_asn1.c ) + s.files += %w( third_party/boringssl/crypto/ec/ec.c ) + s.files += %w( third_party/boringssl/crypto/ec/ec_asn1.c ) + s.files += %w( third_party/boringssl/crypto/ec/ec_key.c ) + s.files += %w( third_party/boringssl/crypto/ec/ec_montgomery.c ) + s.files += %w( third_party/boringssl/crypto/ec/oct.c ) + s.files += %w( third_party/boringssl/crypto/ec/p224-64.c ) + s.files += %w( third_party/boringssl/crypto/ec/p256-64.c ) + s.files += %w( third_party/boringssl/crypto/ec/p256-x86_64.c ) + s.files += %w( third_party/boringssl/crypto/ec/simple.c ) + s.files += %w( third_party/boringssl/crypto/ec/util-64.c ) + s.files += %w( third_party/boringssl/crypto/ec/wnaf.c ) + s.files += %w( third_party/boringssl/crypto/ecdh/ecdh.c ) + s.files += %w( third_party/boringssl/crypto/ecdsa/ecdsa.c ) + s.files += %w( third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c ) + s.files += %w( third_party/boringssl/crypto/engine/engine.c ) + s.files += %w( third_party/boringssl/crypto/err/err.c ) + s.files += %w( third_party/boringssl/crypto/evp/algorithm.c ) + s.files += %w( third_party/boringssl/crypto/evp/digestsign.c ) + s.files += %w( third_party/boringssl/crypto/evp/evp.c ) + s.files += %w( third_party/boringssl/crypto/evp/evp_asn1.c ) + s.files += %w( third_party/boringssl/crypto/evp/evp_ctx.c ) + s.files += %w( third_party/boringssl/crypto/evp/p_dsa_asn1.c ) + s.files += %w( third_party/boringssl/crypto/evp/p_ec.c ) + s.files += %w( third_party/boringssl/crypto/evp/p_ec_asn1.c ) + s.files += %w( third_party/boringssl/crypto/evp/p_rsa.c ) + s.files += %w( third_party/boringssl/crypto/evp/p_rsa_asn1.c ) + s.files += %w( third_party/boringssl/crypto/evp/pbkdf.c ) + s.files += %w( third_party/boringssl/crypto/evp/sign.c ) + s.files += %w( third_party/boringssl/crypto/ex_data.c ) + s.files += %w( third_party/boringssl/crypto/hkdf/hkdf.c ) + s.files += %w( third_party/boringssl/crypto/hmac/hmac.c ) + s.files += %w( third_party/boringssl/crypto/lhash/lhash.c ) + s.files += %w( third_party/boringssl/crypto/md4/md4.c ) + s.files += %w( third_party/boringssl/crypto/md5/md5.c ) + s.files += %w( third_party/boringssl/crypto/mem.c ) + s.files += %w( third_party/boringssl/crypto/modes/cbc.c ) + s.files += %w( third_party/boringssl/crypto/modes/cfb.c ) + s.files += %w( third_party/boringssl/crypto/modes/ctr.c ) + s.files += %w( third_party/boringssl/crypto/modes/gcm.c ) + s.files += %w( third_party/boringssl/crypto/modes/ofb.c ) + s.files += %w( third_party/boringssl/crypto/obj/obj.c ) + s.files += %w( third_party/boringssl/crypto/obj/obj_xref.c ) + s.files += %w( third_party/boringssl/crypto/pem/pem_all.c ) + s.files += %w( third_party/boringssl/crypto/pem/pem_info.c ) + s.files += %w( third_party/boringssl/crypto/pem/pem_lib.c ) + s.files += %w( third_party/boringssl/crypto/pem/pem_oth.c ) + s.files += %w( third_party/boringssl/crypto/pem/pem_pk8.c ) + s.files += %w( third_party/boringssl/crypto/pem/pem_pkey.c ) + s.files += %w( third_party/boringssl/crypto/pem/pem_x509.c ) + s.files += %w( third_party/boringssl/crypto/pem/pem_xaux.c ) + s.files += %w( third_party/boringssl/crypto/pkcs8/p5_pbe.c ) + s.files += %w( third_party/boringssl/crypto/pkcs8/p5_pbev2.c ) + s.files += %w( third_party/boringssl/crypto/pkcs8/p8_pkey.c ) + s.files += %w( third_party/boringssl/crypto/pkcs8/pkcs8.c ) + s.files += %w( third_party/boringssl/crypto/poly1305/poly1305.c ) + s.files += %w( third_party/boringssl/crypto/poly1305/poly1305_arm.c ) + s.files += %w( third_party/boringssl/crypto/poly1305/poly1305_vec.c ) + s.files += %w( third_party/boringssl/crypto/rand/rand.c ) + s.files += %w( third_party/boringssl/crypto/rand/urandom.c ) + s.files += %w( third_party/boringssl/crypto/rand/windows.c ) + s.files += %w( third_party/boringssl/crypto/rc4/rc4.c ) + s.files += %w( third_party/boringssl/crypto/refcount_c11.c ) + s.files += %w( third_party/boringssl/crypto/refcount_lock.c ) + s.files += %w( third_party/boringssl/crypto/rsa/blinding.c ) + s.files += %w( third_party/boringssl/crypto/rsa/padding.c ) + s.files += %w( third_party/boringssl/crypto/rsa/rsa.c ) + s.files += %w( third_party/boringssl/crypto/rsa/rsa_asn1.c ) + s.files += %w( third_party/boringssl/crypto/rsa/rsa_impl.c ) + s.files += %w( third_party/boringssl/crypto/sha/sha1.c ) + s.files += %w( third_party/boringssl/crypto/sha/sha256.c ) + s.files += %w( third_party/boringssl/crypto/sha/sha512.c ) + s.files += %w( third_party/boringssl/crypto/stack/stack.c ) + s.files += %w( third_party/boringssl/crypto/thread.c ) + s.files += %w( third_party/boringssl/crypto/thread_none.c ) + s.files += %w( third_party/boringssl/crypto/thread_pthread.c ) + s.files += %w( third_party/boringssl/crypto/thread_win.c ) + s.files += %w( third_party/boringssl/crypto/time_support.c ) + s.files += %w( third_party/boringssl/crypto/x509/a_digest.c ) + s.files += %w( third_party/boringssl/crypto/x509/a_sign.c ) + s.files += %w( third_party/boringssl/crypto/x509/a_strex.c ) + s.files += %w( third_party/boringssl/crypto/x509/a_verify.c ) + s.files += %w( third_party/boringssl/crypto/x509/asn1_gen.c ) + s.files += %w( third_party/boringssl/crypto/x509/by_dir.c ) + s.files += %w( third_party/boringssl/crypto/x509/by_file.c ) + s.files += %w( third_party/boringssl/crypto/x509/i2d_pr.c ) + s.files += %w( third_party/boringssl/crypto/x509/pkcs7.c ) + s.files += %w( third_party/boringssl/crypto/x509/t_crl.c ) + s.files += %w( third_party/boringssl/crypto/x509/t_req.c ) + s.files += %w( third_party/boringssl/crypto/x509/t_x509.c ) + s.files += %w( third_party/boringssl/crypto/x509/t_x509a.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_att.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_cmp.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_d2.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_def.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_ext.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_lu.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_obj.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_r2x.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_req.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_set.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_trs.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_txt.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_v3.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_vfy.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509_vpm.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509cset.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509name.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509rset.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509spki.c ) + s.files += %w( third_party/boringssl/crypto/x509/x509type.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_algor.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_all.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_attrib.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_crl.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_exten.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_info.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_name.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_pkey.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_pubkey.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_req.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_sig.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_spki.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_val.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_x509.c ) + s.files += %w( third_party/boringssl/crypto/x509/x_x509a.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/pcy_cache.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/pcy_data.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/pcy_lib.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/pcy_map.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/pcy_node.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/pcy_tree.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_akey.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_akeya.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_alt.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_bcons.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_bitst.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_conf.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_cpols.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_crld.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_enum.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_extku.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_genn.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_ia5.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_info.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_int.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_lib.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_ncons.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_pci.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_pcia.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_pcons.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_pku.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_pmaps.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_prn.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_purp.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_skey.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_sxnet.c ) + s.files += %w( third_party/boringssl/crypto/x509v3/v3_utl.c ) + s.files += %w( third_party/boringssl/ssl/custom_extensions.c ) + s.files += %w( third_party/boringssl/ssl/d1_both.c ) + s.files += %w( third_party/boringssl/ssl/d1_clnt.c ) + s.files += %w( third_party/boringssl/ssl/d1_lib.c ) + s.files += %w( third_party/boringssl/ssl/d1_meth.c ) + s.files += %w( third_party/boringssl/ssl/d1_pkt.c ) + s.files += %w( third_party/boringssl/ssl/d1_srtp.c ) + s.files += %w( third_party/boringssl/ssl/d1_srvr.c ) + s.files += %w( third_party/boringssl/ssl/dtls_record.c ) + s.files += %w( third_party/boringssl/ssl/pqueue/pqueue.c ) + s.files += %w( third_party/boringssl/ssl/s3_both.c ) + s.files += %w( third_party/boringssl/ssl/s3_clnt.c ) + s.files += %w( third_party/boringssl/ssl/s3_enc.c ) + s.files += %w( third_party/boringssl/ssl/s3_lib.c ) + s.files += %w( third_party/boringssl/ssl/s3_meth.c ) + s.files += %w( third_party/boringssl/ssl/s3_pkt.c ) + s.files += %w( third_party/boringssl/ssl/s3_srvr.c ) + s.files += %w( third_party/boringssl/ssl/ssl_aead_ctx.c ) + s.files += %w( third_party/boringssl/ssl/ssl_asn1.c ) + s.files += %w( third_party/boringssl/ssl/ssl_buffer.c ) + s.files += %w( third_party/boringssl/ssl/ssl_cert.c ) + s.files += %w( third_party/boringssl/ssl/ssl_cipher.c ) + s.files += %w( third_party/boringssl/ssl/ssl_file.c ) + s.files += %w( third_party/boringssl/ssl/ssl_lib.c ) + s.files += %w( third_party/boringssl/ssl/ssl_rsa.c ) + s.files += %w( third_party/boringssl/ssl/ssl_session.c ) + s.files += %w( third_party/boringssl/ssl/ssl_stat.c ) + s.files += %w( third_party/boringssl/ssl/t1_enc.c ) + s.files += %w( third_party/boringssl/ssl/t1_lib.c ) + s.files += %w( third_party/boringssl/ssl/tls_record.c ) + s.files += %w( third_party/zlib/crc32.h ) + s.files += %w( third_party/zlib/deflate.h ) + s.files += %w( third_party/zlib/gzguts.h ) + s.files += %w( third_party/zlib/inffast.h ) + s.files += %w( third_party/zlib/inffixed.h ) + s.files += %w( third_party/zlib/inflate.h ) + s.files += %w( third_party/zlib/inftrees.h ) + s.files += %w( third_party/zlib/trees.h ) + s.files += %w( third_party/zlib/zconf.h ) + s.files += %w( third_party/zlib/zlib.h ) + s.files += %w( third_party/zlib/zutil.h ) + s.files += %w( third_party/zlib/adler32.c ) + s.files += %w( third_party/zlib/compress.c ) + s.files += %w( third_party/zlib/crc32.c ) + s.files += %w( third_party/zlib/deflate.c ) + s.files += %w( third_party/zlib/gzclose.c ) + s.files += %w( third_party/zlib/gzlib.c ) + s.files += %w( third_party/zlib/gzread.c ) + s.files += %w( third_party/zlib/gzwrite.c ) + s.files += %w( third_party/zlib/infback.c ) + s.files += %w( third_party/zlib/inffast.c ) + s.files += %w( third_party/zlib/inflate.c ) + s.files += %w( third_party/zlib/inftrees.c ) + s.files += %w( third_party/zlib/trees.c ) + s.files += %w( third_party/zlib/uncompr.c ) + s.files += %w( third_party/zlib/zutil.c ) end diff --git a/src/ruby/ext/grpc/extconf.rb b/src/ruby/ext/grpc/extconf.rb index 018353ce5d..52c512e015 100644 --- a/src/ruby/ext/grpc/extconf.rb +++ b/src/ruby/ext/grpc/extconf.rb @@ -1,4 +1,4 @@ -# Copyright 2015, Google Inc. +# Copyright 2015-2016, Google Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -54,9 +54,6 @@ LIB_DIRS = [ LIBDIR ] -fail 'libdl not found' unless have_library('dl', 'dlopen') -fail 'zlib not found' unless have_library('z', 'inflate') - grpc_root = File.expand_path(File.join(File.dirname(__FILE__), '../../../..')) grpc_config = ENV['GRPC_CONFIG'] || 'opt' @@ -64,12 +61,37 @@ grpc_config = ENV['GRPC_CONFIG'] || 'opt' if ENV.key?('GRPC_LIB_DIR') grpc_lib_dir = File.join(grpc_root, ENV['GRPC_LIB_DIR']) else - grpc_lib_dir = File.join(File.join(grpc_root, 'libs'), grpc_config) + grpc_lib_dir = File.join(grpc_root, 'libs', grpc_config) end unless File.exist?(File.join(grpc_lib_dir, 'libgrpc.a')) - print "Building internal gRPC\n" - system("make -C #{grpc_root} static_c CONFIG=#{grpc_config}") + for var in %w( CC AR ) do + ENV[var] = RbConfig::CONFIG[var] + end + + ENV['LD'] = ENV['CC'] + + if RUBY_PLATFORM =~ /mingw|mswin/ + ENV['SYSTEM'] = 'MINGW32' + end + + ENV['EMBED_OPENSSL'] = 'true' + ENV['EMBED_ZLIB'] = 'true' + + grpc_cppflags = '' + grpc_cppflags << ' -D_WIN32_WINNT=0x600 ' + grpc_cppflags << ' -DUNICODE ' + grpc_cppflags << ' -D_UNICODE ' + + ENV['CPPFLAGS'] = grpc_cppflags + + output_dir = File.expand_path(RbConfig::CONFIG['topdir']) + grpc_lib_dir = File.join(output_dir, 'libs', grpc_config) + ENV['BUILDDIR'] = output_dir + + puts 'Building internal gRPC into ' + grpc_lib_dir + system("make -j -C #{grpc_root} #{grpc_lib_dir}/libgpr.a #{grpc_lib_dir}/libgrpc.a CONFIG=#{grpc_config}") + exit 1 unless $? == 0 end $CFLAGS << ' -I' + File.join(grpc_root, 'include') @@ -85,8 +107,30 @@ $CFLAGS << ' -Wall ' $CFLAGS << ' -Wextra ' $CFLAGS << ' -pedantic ' $CFLAGS << ' -Werror ' +$CFLAGS << ' -Wno-format ' -$LDFLAGS << ' -lssl ' -$LDFLAGS << ' -lcrypto ' +case RUBY_PLATFORM +when /mingw|mswin/ + $LDFLAGS << ' -static ' +end -create_makefile('grpc/grpc') +output = File.join('grpc', 'grpc_c') +puts 'Generating Makefile for ' + output +create_makefile(output) + +strip_tool = RbConfig::CONFIG['STRIP'] + +if grpc_config == 'opt' + File.open('Makefile.new', 'w') do |o| + o.puts 'hijack: all strip' + o.puts + File.foreach('Makefile') do |i| + o.puts i + end + o.puts + o.puts 'strip:' + o.puts "\t$(ECHO) Stripping $(DLLIB)" + o.puts "\t$(Q) #{strip_tool} $(DLLIB)" + end + File.rename('Makefile.new', 'Makefile') +end diff --git a/src/ruby/ext/grpc/rb_grpc.c b/src/ruby/ext/grpc/rb_grpc.c index 265ab58ecb..9514d54c17 100644 --- a/src/ruby/ext/grpc/rb_grpc.c +++ b/src/ruby/ext/grpc/rb_grpc.c @@ -297,7 +297,7 @@ VALUE sym_code = Qundef; VALUE sym_details = Qundef; VALUE sym_metadata = Qundef; -void Init_grpc() { +void Init_grpc_c() { grpc_init(); /* TODO: find alternative to ruby_vm_at_exit that is ok in Ruby 2.0 */ diff --git a/src/ruby/lib/grpc/grpc.rb b/src/ruby/lib/grpc/grpc.rb new file mode 100644 index 0000000000..d8a4947494 --- /dev/null +++ b/src/ruby/lib/grpc/grpc.rb @@ -0,0 +1,34 @@ +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +begin + require "grpc/#{RUBY_VERSION.sub(/\.\d$/, '')}/grpc_c" +rescue LoadError + require 'grpc/grpc_c' +end diff --git a/templates/grpc.gemspec.template b/templates/grpc.gemspec.template index fdf87ee13f..9d034ddba1 100644 --- a/templates/grpc.gemspec.template +++ b/templates/grpc.gemspec.template @@ -18,7 +18,7 @@ s.required_ruby_version = '>= 2.0.0' s.requirements << 'libgrpc ~> 0.11.0 needs to be installed' - s.files = %w( Rakefile Makefile ) + s.files = %w( Makefile ) s.files += %w( etc/roots.pem ) s.files += Dir.glob('src/ruby/bin/**/*') s.files += Dir.glob('src/ruby/ext/**/*') @@ -35,22 +35,23 @@ s.platform = Gem::Platform::RUBY s.add_dependency 'google-protobuf', '~> 3.0.0alpha.1.1' - s.add_dependency 'googleauth', '~> 0.5.1' + s.add_dependency 'googleauth', '~> 0.5.1' - s.add_development_dependency 'bundler', '~> 1.9' - s.add_development_dependency 'logging', '~> 2.0' - s.add_development_dependency 'simplecov', '~> 0.9' - s.add_development_dependency 'rake', '~> 10.4' - s.add_development_dependency 'rake-compiler', '~> 0.9' - s.add_development_dependency 'rspec', '~> 3.2' - s.add_development_dependency 'rubocop', '~> 0.30.0' - s.add_development_dependency 'signet', '~>0.7.0' + s.add_development_dependency 'bundler', '~> 1.9' + s.add_development_dependency 'logging', '~> 2.0' + s.add_development_dependency 'simplecov', '~> 0.9' + s.add_development_dependency 'rake', '~> 10.4' + s.add_development_dependency 'rake-compiler', '~> 0.9' + s.add_development_dependency 'rake-compiler-dock', '~> 0.5' + s.add_development_dependency 'rspec', '~> 3.2' + s.add_development_dependency 'rubocop', '~> 0.30.0' + s.add_development_dependency 'signet', '~> 0.7.0' s.extensions = %w(src/ruby/ext/grpc/extconf.rb) % for lib in libs: - % if lib.name in ('gpr', 'grpc'): - % for file in lib.public_headers + lib.headers + lib.src: + % if lib.name in ruby_gem.get('deps', []): + % for file in lib.get('public_headers', []) + lib.headers + lib.src: s.files += %w( ${file} ) % endfor % endif diff --git a/third_party/rake-compiler-dock/Dockerfile b/third_party/rake-compiler-dock/Dockerfile new file mode 100644 index 0000000000..435a0926dc --- /dev/null +++ b/third_party/rake-compiler-dock/Dockerfile @@ -0,0 +1,112 @@ +FROM ubuntu:14.04 + +RUN apt-get -y update && \ + apt-get install -y curl git-core mingw-w64 xz-utils build-essential wget unzip + +RUN mkdir -p /opt/mingw && \ + curl -SL http://downloads.sourceforge.net/mingw-w64/i686-w64-mingw32-gcc-4.7.2-release-linux64_rubenvb.tar.xz | \ + tar -xJC /opt/mingw && \ + echo "export PATH=\$PATH:/opt/mingw/mingw32/bin" >> /etc/rubybashrc + +RUN mkdir -p /opt/mingw && \ + curl -SL http://downloads.sourceforge.net/mingw-w64/x86_64-w64-mingw32-gcc-4.7.2-release-linux64_rubenvb.tar.xz | \ + tar -xJC /opt/mingw && \ + echo "export PATH=\$PATH:/opt/mingw/mingw64/bin" >> /etc/rubybashrc + +# Add "rvm" as system group, to avoid conflicts with host GIDs typically starting with 1000 +RUN groupadd -r rvm && useradd -r -g rvm -G sudo -p "" --create-home rvm && \ + echo "source /etc/profile.d/rvm.sh" >> /etc/rubybashrc +USER rvm + +# install rvm, RVM 1.26.0+ has signed releases, source rvm for usage outside of package scripts +RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 && \ + (curl -L http://get.rvm.io | sudo bash -s stable) && \ + bash -c " \ + source /etc/rubybashrc && \ + rvmsudo rvm cleanup all " + +# Import patch files for ruby and gems +COPY build/patches /home/rvm/patches/ +ENV BASH_ENV /etc/rubybashrc + +# install rubies and fix permissions on +RUN bash -c " \ + export CFLAGS='-s -O3 -fno-fast-math -fPIC' && \ + for v in 2.3.0 ; do \ + rvm install \$v --patch \$(echo ~/patches/ruby-\$v/* | tr ' ' ','); \ + done && \ + rvm cleanup all && \ + find /usr/local/rvm -type d -print0 | sudo xargs -0 chmod g+sw " + +# Install rake-compiler and typical gems in all Rubies +# do not generate documentation for gems +RUN echo "gem: --no-ri --no-rdoc" >> ~/.gemrc && \ + bash -c " \ + rvm all do gem install bundler rake-compiler hoe mini_portile rubygems-tasks json && \ + rvm 2.3.0 do gem install mini_portile2 && \ + find /usr/local/rvm -type d -print0 | sudo xargs -0 chmod g+sw " + +# Install rake-compiler's cross rubies in global dir instead of /root +RUN sudo mkdir -p /usr/local/rake-compiler && \ + sudo chown rvm.rvm /usr/local/rake-compiler && \ + ln -s /usr/local/rake-compiler ~/.rake-compiler + +# Patch rake-compiler to avoid build of ruby extensions +RUN cd /usr/local/rvm/gems/ruby-2.3.0/gems/rake-compiler-0.9.5 && patch -p1 < /home/rvm/patches/rake-compiler-0.9.5/without-exts.diff ; \ + true + +RUN bash -c "rvm use 2.3.0 --default && \ + export MAKE=\"make -j`nproc`\" CFLAGS='-s -O1 -fno-omit-frame-pointer -fno-fast-math' && \ + rake-compiler cross-ruby VERSION=2.3.0 HOST=i686-w64-mingw32 && \ + rake-compiler cross-ruby VERSION=2.3.0 HOST=x86_64-w64-mingw32 && \ + rake-compiler cross-ruby VERSION=2.2.2 HOST=i686-w64-mingw32 && \ + rake-compiler cross-ruby VERSION=2.2.2 HOST=x86_64-w64-mingw32 && \ + rake-compiler cross-ruby VERSION=2.1.6 HOST=i686-w64-mingw32 && \ + rake-compiler cross-ruby VERSION=2.1.6 HOST=x86_64-w64-mingw32 && \ + rake-compiler cross-ruby VERSION=2.0.0-p645 HOST=i686-w64-mingw32 && \ + rake-compiler cross-ruby VERSION=2.0.0-p645 HOST=x86_64-w64-mingw32 && \ + rm -rf ~/.rake-compiler/builds ~/.rake-compiler/sources && \ + find /usr/local/rvm -type d -print0 | sudo xargs -0 chmod g+sw " + +RUN bash -c " \ + rvm alias create 2.3 2.3.0 " + +USER root + +# Fix paths in rake-compiler/config.yml and add rvm and mingw-tools to the global bashrc +RUN sed -i -- "s:/root/.rake-compiler:/usr/local/rake-compiler:g" /usr/local/rake-compiler/config.yml && \ + echo "source /etc/profile.d/rvm.sh" >> /etc/bash.bashrc && \ + echo "export PATH=\$PATH:/opt/mingw/mingw32/bin" >> /etc/bash.bashrc && \ + echo "export PATH=\$PATH:/opt/mingw/mingw64/bin" >> /etc/bash.bashrc + +# Install wrappers for strip commands as a workaround for "Protocol error" in boot2docker. +COPY build/strip_wrapper /root/ +RUN mv /opt/mingw/mingw32/bin/i686-w64-mingw32-strip /opt/mingw/mingw32/bin/i686-w64-mingw32-strip.bin && \ + mv /opt/mingw/mingw64/bin/x86_64-w64-mingw32-strip /opt/mingw/mingw64/bin/x86_64-w64-mingw32-strip.bin && \ + mv /usr/bin/i686-w64-mingw32-strip /usr/bin/i686-w64-mingw32-strip.bin && \ + mv /usr/bin/x86_64-w64-mingw32-strip /usr/bin/x86_64-w64-mingw32-strip.bin && \ + ln /root/strip_wrapper /opt/mingw/mingw32/bin/i686-w64-mingw32-strip && \ + ln /root/strip_wrapper /opt/mingw/mingw64/bin/x86_64-w64-mingw32-strip && \ + ln /root/strip_wrapper /usr/bin/i686-w64-mingw32-strip && \ + ln /root/strip_wrapper /usr/bin/x86_64-w64-mingw32-strip + +RUN find / -name rbconfig.rb | while read f ; do sed -i 's/0x0501/0x0600/' $f ; done +RUN find / -name win32.h | while read f ; do sed -i 's/gettimeofday/rb_gettimeofday/' $f ; done +RUN sed -i 's/defined.__MINGW64__.$/1/' /usr/local/rake-compiler/ruby/i686-w64-mingw32/ruby-2.0.0-p645/include/ruby-2.0.0/ruby/win32.h +RUN find / -name libwinpthread.dll.a | while read f ; do rm $f ; done +RUN find / -name libwinpthread-1.dll | while read f ; do rm $f ; done +RUN find / -name *msvcrt-ruby*.dll.a | while read f ; do n=`echo $f | sed s/.dll//` ; mv $f $n ; done + +# Install SIGINT forwarder +COPY build/sigfw.c /root/ +RUN gcc $HOME/sigfw.c -o /usr/local/bin/sigfw + +# Install user mapper +COPY build/runas /usr/local/bin/ + +# Install sudoers configuration +COPY build/sudoers /etc/sudoers.d/rake-compiler-dock + +ENV RUBY_CC_VERSION 2.3.0:2.2.2:2.1.6:2.0.0 + +CMD bash diff --git a/third_party/rake-compiler-dock/LICENSE.txt b/third_party/rake-compiler-dock/LICENSE.txt new file mode 100644 index 0000000000..b884ba5396 --- /dev/null +++ b/third_party/rake-compiler-dock/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright (c) 2015 Lars Kanis + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/third_party/rake-compiler-dock/README.md b/third_party/rake-compiler-dock/README.md new file mode 100644 index 0000000000..0a9aa8ba78 --- /dev/null +++ b/third_party/rake-compiler-dock/README.md @@ -0,0 +1 @@ +This is a modified Dockerfile taken from [rake-compiler-dock](https://github.com/rake-compiler/rake-compiler-dock) for the purpose of building gRPC's ruby gem. diff --git a/third_party/rake-compiler-dock/build/patches/rake-compiler-0.9.5/without-exts.diff b/third_party/rake-compiler-dock/build/patches/rake-compiler-0.9.5/without-exts.diff new file mode 100644 index 0000000000..07739d33ec --- /dev/null +++ b/third_party/rake-compiler-dock/build/patches/rake-compiler-0.9.5/without-exts.diff @@ -0,0 +1,14 @@ +diff --git a/tasks/bin/cross-ruby.rake b/tasks/bin/cross-ruby.rake +index 6acc816..6aa2a49 100644 +--- a/tasks/bin/cross-ruby.rake ++++ b/tasks/bin/cross-ruby.rake +@@ -135,8 +135,7 @@ file "#{USER_HOME}/builds/#{MINGW_HOST}/#{RUBY_CC_VERSION}/Makefile" => ["#{USER + "--build=#{RUBY_BUILD}", + '--enable-shared', + '--disable-install-doc', +- '--without-tk', +- '--without-tcl' ++ '--with-ext=' + ] + + # Force Winsock2 for Ruby 1.8, 1.9 defaults to it diff --git a/third_party/rake-compiler-dock/build/patches/ruby-1.8.7-p374/nop.patch b/third_party/rake-compiler-dock/build/patches/ruby-1.8.7-p374/nop.patch new file mode 100644 index 0000000000..fac8525da6 --- /dev/null +++ b/third_party/rake-compiler-dock/build/patches/ruby-1.8.7-p374/nop.patch @@ -0,0 +1,2 @@ +diff --git a/configure b/configure +index 55157af..6630eba 100755 diff --git a/third_party/rake-compiler-dock/build/patches/ruby-1.9.3/no_sendfile.patch b/third_party/rake-compiler-dock/build/patches/ruby-1.9.3/no_sendfile.patch new file mode 100644 index 0000000000..d8f339e814 --- /dev/null +++ b/third_party/rake-compiler-dock/build/patches/ruby-1.9.3/no_sendfile.patch @@ -0,0 +1,13 @@ +diff --git a/configure b/configure +index 898730c..cfe6253 100755 +--- a/configure ++++ b/configure +@@ -14695,7 +14695,7 @@ for ac_func in fmod killpg wait4 waitpid fork spawnv syscall __syscall chroot ge + setsid telldir seekdir fchmod cosh sinh tanh log2 round\ + setuid setgid daemon select_large_fdset setenv unsetenv\ + mktime timegm gmtime_r clock_gettime gettimeofday poll ppoll\ +- pread sendfile shutdown sigaltstack dl_iterate_phdr ++ pread shutdown sigaltstack dl_iterate_phdr + do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` + ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" diff --git a/third_party/rake-compiler-dock/build/patches/ruby-1.9.3/nop.patch b/third_party/rake-compiler-dock/build/patches/ruby-1.9.3/nop.patch new file mode 100644 index 0000000000..fac8525da6 --- /dev/null +++ b/third_party/rake-compiler-dock/build/patches/ruby-1.9.3/nop.patch @@ -0,0 +1,2 @@ +diff --git a/configure b/configure +index 55157af..6630eba 100755 diff --git a/third_party/rake-compiler-dock/build/patches/ruby-2.3.0/no_sendfile.patch b/third_party/rake-compiler-dock/build/patches/ruby-2.3.0/no_sendfile.patch new file mode 100644 index 0000000000..915fc7b790 --- /dev/null +++ b/third_party/rake-compiler-dock/build/patches/ruby-2.3.0/no_sendfile.patch @@ -0,0 +1,12 @@ +diff --git a/configure b/configure +index ebe3d8c..a336b73 100755 +--- a/configure ++++ b/configure +@@ -18943,7 +18943,6 @@ do : + ac_fn_c_check_func "$LINENO" "sendfile" "ac_cv_func_sendfile" + if test "x$ac_cv_func_sendfile" = xyes; then : + cat >>confdefs.h <<_ACEOF +-#define HAVE_SENDFILE 1 + _ACEOF + + fi diff --git a/third_party/rake-compiler-dock/build/runas b/third_party/rake-compiler-dock/build/runas new file mode 100755 index 0000000000..b29ce31fcc --- /dev/null +++ b/third_party/rake-compiler-dock/build/runas @@ -0,0 +1,12 @@ +#!/bin/bash + +groupadd -g "$GID" "$GROUP" +mkdir -p /tmp/home +useradd -g "$GID" -u "$UID" -G rvm,sudo -p "" -b /tmp/home -m "$USER" + +HOME=$(bash <<< "echo ~$USER") +ln -s /usr/local/rake-compiler "$HOME"/.rake-compiler + +sudo -u "$USER" --set-home \ + BASH_ENV=/etc/rubybashrc \ + -- "$@" diff --git a/third_party/rake-compiler-dock/build/sigfw.c b/third_party/rake-compiler-dock/build/sigfw.c new file mode 100644 index 0000000000..291d76cec8 --- /dev/null +++ b/third_party/rake-compiler-dock/build/sigfw.c @@ -0,0 +1,43 @@ +/* + * This program handles SIGINT and forwards it to another process. + * It is intended to be run as PID 1. + * + * Docker starts processes with "docker run" as PID 1. + * On Linux, the default signal handler for PID 1 ignores any signals. + * Therefore Ctrl-C aka SIGINT is ignored per default. + */ + +#include <signal.h> +#include <sys/types.h> +#include <sys/wait.h> + +int pid = 0; + +void +handle_sigint (int signum) +{ + if(pid) + kill(pid, SIGINT); +} + +int main(int argc, char *argv[]){ + struct sigaction new_action; + int status = -1; + + /* Set up the structure to specify the new action. */ + new_action.sa_handler = handle_sigint; + sigemptyset (&new_action.sa_mask); + new_action.sa_flags = 0; + + sigaction (SIGINT, &new_action, (void*)0); + + pid = fork(); + if(pid){ + wait(&status); + return WEXITSTATUS(status); + }else{ + status = execvp(argv[1], &argv[1]); + perror("exec"); + return status; + } +} diff --git a/third_party/rake-compiler-dock/build/strip_wrapper b/third_party/rake-compiler-dock/build/strip_wrapper new file mode 100755 index 0000000000..7f8a1346a1 --- /dev/null +++ b/third_party/rake-compiler-dock/build/strip_wrapper @@ -0,0 +1,30 @@ +#!/usr/bin/env ruby + +# Strip file on local folder instead of a Virtualbox shared folder +# to work around this bug: https://www.virtualbox.org/ticket/8463 + +require 'tempfile' +require 'fileutils' + +strip = "#{File.basename($0)}.bin" + +files = ARGV.reject{|f| f=~/^-/ }.map do |arg| + tmp = Tempfile.new 'strip' + tmp.close + FileUtils.cp arg, tmp.path + [tmp, arg] +end + +options = ARGV.select{|f| f=~/^-/ } + files.map{|t,o| t.path } + +unless system( strip, *options ) + exit 127 +end +code = $?.exitstatus + +files.each do |tmp, orig| + FileUtils.rm orig + FileUtils.cp tmp.path, orig +end + +exit code diff --git a/third_party/rake-compiler-dock/build/sudoers b/third_party/rake-compiler-dock/build/sudoers new file mode 100644 index 0000000000..f9f9b97c95 --- /dev/null +++ b/third_party/rake-compiler-dock/build/sudoers @@ -0,0 +1 @@ +Defaults env_keep += "http_proxy https_proxy ftp_proxy RCD_HOST_RUBY_PLATFORM RCD_HOST_RUBY_VERSION RCD_IMAGE RUBY_CC_VERSION" |