Status: New
Labels: Type-Defect Priority-Medium

New issue 290 by Cannot compile Google Protocol Buffers on z/OS

What steps will reproduce the problem?

1. Build Google Protocol Buffers on a z/OS system as follows:

_CXX_CXXSUFFIX=cpp ./configure --prefix=/tmp/gpb_64


What is the expected output? What do you see instead?

I expect the build to pass successfully so I can run the install phase. Instead I see the following output from a unit test:

libtool: link: c++ -DNDEBUG -o protoc main.o ./.libs/libprotobuf.a ./.libs/libprotoc.a /MVK3/tmp/sstone/protobuf-2.4.1/src/.libs/libprotobuf.a oldpwd=`pwd` && ( cd . && $oldpwd/protoc -I. --cpp_out=$oldpwd google/protobuf/unittest.proto google/protobuf/unittest_empty.proto google/protobuf/unittest_import.proto google/protobuf/unittest_mset.proto google/protobuf/unittest_optimize_for.proto google/protobuf/unittest_embed_optimize_for.proto google/protobuf/unittest_custom_options.proto google/protobuf/unittest_lite.proto google/protobuf/unittest_import_lite.proto google/protobuf/unittest_lite_imports_nonlite.proto google/protobuf/unittest_no_generic_services.proto google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto ) libprotobuf ERROR ./google/protobuf/] Invalid file descriptor data passed to EncodedDescriptorDatabase::Add(). libprotobuf FATAL ./google/protobuf/] CHECK failed: generated_database_->Add(encoded_file_descriptor, size):
CEE5207E The signal SIGABRT was received.
make[2]: *** [unittest_proto_middleman] Error 131
make[2]: Leaving directory `/MVK3/tmp/sstone/protobuf-2.4.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/MVK3/tmp/sstone/protobuf-2.4.1'
make: *** [all] Error 2

What version of the product are you using? On what operating system?

I am using Google Protocol Buffers 2.4.1. I also tried 2.4.0a and 2.1.0. The system is running z/OS V1R11 with the XL C/C++ V1R11 compilers.

Please provide any additional information below.

I suspect the issue may be caused by an expectation that some of the data *somewhere* will be in ASCII, but it is actually in EBCDIC because of the operating system. I have managed to get this working on AIX (POWER), RHEL (x86, 390) and Windows (x86) systems without any issues.

You received this message because you are subscribed to the Google Groups "Protocol 
Buffers" group.
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

Reply via email to