From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 63267 invoked by alias); 10 Feb 2016 18:54:23 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 63252 invoked by uid 89); 10 Feb 2016 18:54:22 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:2022, dear X-HELO: mail-vk0-f49.google.com Received: from mail-vk0-f49.google.com (HELO mail-vk0-f49.google.com) (209.85.213.49) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 10 Feb 2016 18:54:21 +0000 Received: by mail-vk0-f49.google.com with SMTP id e6so20268044vkh.2 for ; Wed, 10 Feb 2016 10:54:21 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=oHipsWK/6+t45Vc1fZdwWCK+XAfKJMqTyULJdVdIOTs=; b=Or+TNEsbhiyJh4qTBLfJAn4gCZJvRurilelsc1ybt9LyfdPyFIDyQThvkMJwVZMFUF Zgv+vqOPXtCdmdkiLwXP6Vr8uYtWT5AozI/+WZdEBkG43EMTnMJ061vtztoEcVuUIFAC GslLFNHUxZGQxuPtfS3iP7Udsm+jk6XjrAI3gjlytY+efiup6ZqMjn4I3tRo0OfUsPoo 3Z6W6LzA9Ej4zXd5u5jVnbiK+XvMW5r4iK+vscMum7oUmyG5kmKNr15TYovd5ij97vf8 7vjd+EJ0bH4KTFDBmzxziSJoZy499SVo18xUPQMfypz4Ami3ItOxvbWx2JKucMtxjvOi s5Fg== X-Gm-Message-State: AG10YOQ5OhG72y3puQ7tHQvqeTAJ8cmVCbAWGcwaeIA3+5TO62fmo8WlH4VOEWO2AvscDvqofBg4MVRFYB9ODQ== MIME-Version: 1.0 X-Received: by 10.31.8.133 with SMTP id 127mr31061673vki.140.1455130459498; Wed, 10 Feb 2016 10:54:19 -0800 (PST) Received: by 10.176.67.198 with HTTP; Wed, 10 Feb 2016 10:54:19 -0800 (PST) In-Reply-To: References: Date: Wed, 10 Feb 2016 18:54:00 -0000 Message-ID: Subject: Fwd: Protobuf string serialization bug with statically linked protobuf 2.5.0 From: Tomasz Wiszkowski To: cygwin@cygwin.com Content-Type: text/plain; charset=UTF-8 X-SW-Source: 2016-02/txt/msg00146.txt.bz2 Dear all, I'm having problems with statically linked executables that use protocol buffers. I suspect the problem may be related to incompatibility between std::string implementation used to compile the library vs. current. If that's the case, the problem would likely go away with recompilation of the protocol buffer libraries (protobuf-lite is also exposing the same problem). I have attached a test case as you requested. the example program compiles two variants - one dynamically linked (works fine) and one statically linked that crashes upon first attempt to serialize the protocol buffer. It would be great if someone could take a look and possibly rebuild the static libraries for protocol buffers. Best regards, Tomasz -------- example.proto ------------ syntax = "proto2"; package example; message ExampleMsg { optional int32 argc = 1; optional string argv0 = 2; }; -------- main.cc ------------ #include #include #include "example.pb.h" int main(int argc, char** argv) { example::ExampleMsg message; message.set_argc(argc); message.set_argv0(argv[0]); std::cout << "Serializing protocol buffer." << std::endl; std::string serialized; message.SerializeToString(&serialized); // static variant crashes here. std::cout << "Serialized length: " << serialized.length() << std::endl; message.Clear(); std::cout << "Deserializing protocol buffer." << std::endl; message.ParseFromString(serialized); // static variant also crashes here. std::cout << "Deserialized content: argc=" << message.argc() << ", argv0=" << message.argv0(); return 0; } -------- Makefile ------------ CFLAGS += -Wall CXXFLAGS := $(CFLAGS) CC = g++ LIBS = -lprotobuf.dll all: clean example example-bug example.pb.cc: example.proto protoc --cpp_out=. $^ clean: rm -f *.o *.pb.* *.exe* example: example.pb.o main.o $(CC) $(CFLAGS) $^ -o $@ $(LIBS) example-bug: example.pb.o main.o $(CC) $(CFLAGS) -static $^ -o $@ $(LIBS) -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple