Project

General

Profile

Bug #8258

library/protobuf build requires the symbol SOLARIS_64BIT_ENABLED

Added by Gary Mills over 2 years ago. Updated over 2 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
OI-Userland
Target version:
-
Start date:
2017-05-20
Due date:
% Done:

90%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

This is a known problem that affects only the 64-bit build of the library/protobuf component on SPARC hardware. This error message appears:

cannot convert 'google::protobuf::ProtobufOnceType* {aka long
int*}' to 'const volatile Atomic32* {aka const volatile int*}' for
argument '1' to 'google::protobuf::internal::Atomic32
google::protobuf::internal::Acquire_Load(const volatile Atomic32*)'

This happens because the SOLARIS_64BIT_ENABLED symbol is not defined. Simply defining this symbol during a 64-bit build corrects the problem.

History

#1

Updated by Alexander Pyhalov over 2 years ago

As I see, SOLARIS_64BIT_ENABLED is defined in config.h for both 32/64-bit build on i386. This is controlled by --enable-64bit-solaris configure flag. I'm not sure why it's not defined on SPARC, but defining it manually doesn't seems a good idea. Perhaps, need a bit more investigation.

#2

Updated by Gary Mills over 2 years ago

This protobuf bug has already been investigated. See http://stackoverflow.com/questions/34037295/protobuf-2-6-1-compile-error-on-solaris-10-sparc-64 for details. The workaround for this version is to define the SOLARIS_64BIT_ENABLED symbol.

#3

Updated by Gary Mills over 2 years ago

The protobuf developers have created a patch that solves this problem. The patch works nicely. The symbol SOLARIS_64BIT_ENABLED is no longer needed.

Also available in: Atom PDF