Skip to content

fix compile error on centos in metadata.h for constructors. #2599

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 28, 2017

Conversation

michaelpengcn
Copy link
Contributor

I have already tested the compile process on centos. CLA fixed.

and I have already tested the compile process on centos. CLA fixed.
@grpc-kokoro
Copy link

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

1 similar comment
@grpc-kokoro
Copy link

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

@bazel-io
Copy link

Can one of the admins verify this patch?

@TeBoring
Copy link
Contributor

LGTM

@TeBoring TeBoring merged commit a83ac86 into protocolbuffers:master Jan 28, 2017
@rosspeoples
Copy link

rosspeoples commented Apr 20, 2017

Has this made it into 3.2.1? I just tried that one after trying 3.2.0 and I'm still seeing this issue.

EDIT: Just tried the 3.3.x branch which has this included and I'm still getting an error about InternalMetadataWithArenaBase.

EDIT2:
This is the output from make after ./autogen.sh and ./configure:

./google/protobuf/metadata_lite.h: In constructor ‘google::protobuf::internal::InternalMetadataWithArenaLite::InternalMetadataWithArenaLite(google::protobuf::Arena*)’:
./google/protobuf/metadata_lite.h:170: error: class ‘google::protobuf::internal::InternalMetadataWithArenaLite’ does not have any field named ‘InternalMetadataWithArenaBase’
make[2]: *** [google/protobuf/any.pb.lo] Error 1
make[2]: Leaving directory `/root/protobuf-3.3.x/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/protobuf-3.3.x'
make: *** [all] Error 2

This is for: Red Hat Enterprise Linux Server release 6.8 (Santiago)

@jjpepper
Copy link

jjpepper commented May 1, 2017

+1. I'm having the same issue with RHEL r6.8 (Satniago) and Protobuf 3.3. @deejross do you have a workaround? Note that the fix was to metadata.h but the issue I'm having is with metadata_lite.h:170 which is included from metadata.h:41

@jjpepper
Copy link

jjpepper commented May 1, 2017

@deejross, I have a workaround. In metadata_lite.h:169:

replace:
explicit InternalMetadataWithArenaLite(Arena* arena)
: InternalMetadataWithArenaBase(arena) {}

with:
explicit InternalMetadataWithArenaLite(Arena* arena)
: InternalMetadataWithArenaBase<string,
InternalMetadataWithArenaLite>(arena) {}

@MerleLiuKun
Copy link

I use the @jjpepper method and I hacve success, but I don't understand why this problem show on CentOS6.x?

@kamaaina
Copy link

this fix seems to work for RHEL 6 and protobuf 3.3.x. what about RHEL 6 with 3.2.x? i am unable to compile there with the change above. there is no metadata_lite.h (only a metadata.h) which i tried to apply the same change with no luck. can anyone help?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants