aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add check for sched_yield in librtWilliam Orr2014-09-191-0/+3
| | | | | In Solaris, sched_yield lives in librt, rather than libc. This patch adds a check which will link in librt if necessary.
* Merge pull request #30 from edmonds/branches/fix_generic_atomicops_memory_modelsxfxyjwf2014-09-191-2/+2
|\ | | | | generic atomicops: promote Acquire_Store() and Release_Load() to use SEQ_CST fence
| * generic atomicops: promote Acquire_Store() and Release_Load() to use SEQ_CST ↵Robert Edmonds2014-09-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fence __atomic_store_n() cannot take a memory model argument of __ATOMIC_ACQUIRE, and __atomic_load_n() cannot take a memory model argument of __ATOMIC_RELEASE, per the GCC documentation: https://gcc.gnu.org/onlinedocs/gcc-4.9.1/gcc/_005f_005fatomic-Builtins.html On Clang this generates a -Watomic-memory-ordering warning. Promote the fences in Acquire_Store() and Release_Load() to the stronger __ATOMIC_SEQ_CST memory model, which ought to be safe. Note that there are no actual uses of Acquire_Store() or Release_Load() in protobuf, though. This follows the TSAN atomicops implementation, which also uses SEQ_CST fences for these functions. (Fixes #25.)
* | Merge pull request #29 from ↵xfxyjwf2014-09-181-0/+2
|\ \ | |/ |/| | | | | edmonds/branches/undef_GOOGLE_PROTOBUF_PLATFORM_ERROR platform_macros.h: #undef GOOGLE_PROTOBUF_PLATFORM_ERROR once it's no longer needed
| * platform_macros.h: #undef GOOGLE_PROTOBUF_PLATFORM_ERROR once it's no longer ↵Robert Edmonds2014-09-181-0/+2
| | | | | | | | needed
* | Merge pull request #27 from edmonds/branches/fix_generic_atomicops_non_clangxfxyjwf2014-09-182-7/+20
|\| | | | | Fix atomicops build failure on non-Clang
| * Fix atomicops build failure on non-ClangRobert Edmonds2014-09-182-7/+20
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We cannot use Clang's __has_extension macro unless we really are compiling on Clang, which means we cannot use this expression: #if (defined(__clang__) && __has_extension(c_atomic))) // ... #endif On GCC, this generates the following errors: In file included from ./google/protobuf/stubs/atomicops.h:59:0, from google/protobuf/stubs/atomicops_internals_x86_gcc.cc:36: ./google/protobuf/stubs/platform_macros.h:67:41: error: missing binary operator before token "(" (defined(__clang__) && __has_extension(c_atomic))) ^ In file included from google/protobuf/stubs/atomicops_internals_x86_gcc.cc:36:0: ./google/protobuf/stubs/atomicops.h:196:40: error: missing binary operator before token "(" (defined(__clang__) && __has_extension(c_atomic)) ^ Instead, we have to protect the __has_extension expression by only executing it when __clang__ is defined: #if defined(__clang__) # if __has_extension(c_atomic) // ... # endif #endif
* Merge pull request #21 from edmonds/branches/clang_generic_atomicsxfxyjwf2014-09-182-2/+4
|\ | | | | Expose generic atomicops on Clang
| * Expose generic atomicops on ClangRobert S. Edmonds2014-09-132-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The generic atomicops implementation is only exposed if GCC >= 4.7 is available, but Clang, where the underlying __atomic built-ins are also available, typically only claims to be GCC 4.2. This causes build failures when compiling protobuf or the output of protoc's C++ code generator on an architecture that needs the generic atomicops implementation with Clang. Clang has a "c_atomic" extension which can be tested for which almost does what we want: C11 atomic operations Use __has_feature(c_atomic) or __has_extension(c_atomic) to determine if support for atomic types using _Atomic is enabled. Clang also provides a set of builtins which can be used to implement the <stdatomic.h> operations on _Atomic types. I'm not sure if this guarantees that the GNU atomic builtins (the ones with the __atomic prefix) are also available, but in practice this should guarantee that Clang is new enough. With this change in place, Clang generates several diagnostics when compiling the generic atomicops implementation. These appear to be bugs in the generic atomicops implementation and are not Clang-specific.
* | Merge pull request #20 from edmonds/branches/no_ppcxfxyjwf2014-09-181-3/+0
|\| | | | | Remove GOOGLE_PROTOBUF_ARCH_PPC
| * Remove GOOGLE_PROTOBUF_ARCH_PPCRobert S. Edmonds2014-09-131-3/+0
|/ | | | | | | | | | | | | | | | | The macro GOOGLE_PROTOBUF_ARCH_PPC is not used anywhere in the protobuf source; there is no Power-specific atomics implementation, etc. Funnily enough, the macro __ppc__ is not actually defined on 32-bit Power on GCC/Linux, according to the following webpage: http://nadeausoftware.com/articles/2012/02/c_c_tip_how_detect_processor_type_using_compiler_predefined_macros#POWER and verified on a 32-bit Debian sid 'powerpc' chroot: (sid_powerpc-dchroot)edmonds@partch:~$ gcc -dM -E - < /dev/null | grep -c __ppc__ 0 (sid_powerpc-dchroot)edmonds@partch:~$ gcc -dM -E - < /dev/null | grep -c __LP64__ 0
* Merge pull request #15 from google/pom_version_fixJisi Liu2014-09-041-1/+1
|\ | | | | Bump version for maven-bundle-plugin
| * Bump version for maven-bundle-pluginJisi Liu2014-09-041-1/+1
|/
* Merge pull request #12 from huahang/patch-2Jisi Liu2014-09-031-1/+1
|\ | | | | remove a const qualifier in a method's return type
| * remove a const qualifier in a method's return typehuahang2014-09-041-1/+1
|/
* Merge pull request #8 from huahang/patch-1Jisi Liu2014-09-031-1/+1
|\ | | | | fix a compile warning
| * fix a compile warninghuahang2014-09-031-1/+1
|/ | | | | This change fixes the following compiler warning: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
* Merge pull request #1 from dhirschfeld/vs2008-fixxfxyjwf2014-09-021-1/+1
|\ | | | | Added const qualifier to iterator to enable compiling with VS2008
| * Added const qualifier to iterator to enable compiling with VS2008David Hirschfeld2014-08-271-1/+1
| |
* | Rename README.txt to README.mdFeng Xiao2014-08-291-1/+1
| |
* | Merge pull request #5 from google/fix_readmexfxyjwf2014-08-291-17/+20
|\ \ | | | | | | Rename README.txt to README.md and use markdown formatting.
| * | Fix the formating of bold text.Feng Xiao2014-08-281-5/+5
| | |
| * | Update README.md to markdown format.Feng Xiao2014-08-281-12/+15
| | |
| * | Rename README.txt to README.mdFeng Xiao2014-08-281-0/+0
|/ /
* | Merge pull request #4 from google/fix_readmeJisi Liu2014-08-281-0/+12
|\ \ | |/ |/| Add instructions on how to generate the configure script.
| * Add instructions on how to generate the configure script.Feng Xiao2014-08-281-0/+12
|/
* Rename COPYING.txt to LICENSE for opensource compliance and update linksFeng Xiao2014-08-263-3/+3
| | | | in README.txt.
* merge 2.6.0 to trunkv2.6.0jieluo@google.com2014-08-252-8/+5
|
* merge tags/2.6.0 into trunkjieluo@google.com2014-08-2515-53/+238
|
* patch Issue 130740043 to trunk for other atomicops patches: [MIPS64] Add ↵jieluo@google.com2014-08-203-3/+134
| | | | support for MIPS64 in protobuf
* make dist complains the file name is too long and refuse to put it to tar. ↵jieluo@google.com2014-08-143-2/+4
| | | | Change the file to a shorter name
* Add deleted tests back for reflection_cpp2_test.py by addtional exception catchjieluo@google.com2014-08-141-0/+47
|
* change python README.txtjieluo@google.com2014-08-131-3/+8
|
* change Makefile.amjieluo@google.com2014-08-131-3/+4
|
* put python cpp tests into pyext/jieluo@google.com2014-08-135-34/+9
|
* add shared_pr.hjieluo@google.com2014-08-123-9/+480
|
* down integrate python opensource to svnjieluo@google.com2014-08-1266-968/+10128
|
* Change java descriptor back to privatejieluo@google.com2014-08-073-25/+5
|
* 1, Add comments for include<algorithm> we added for min/max on VS2013. 2, ↵jieluo@google.com2014-08-073-0/+4
| | | | Add #if/#endif to wrap #undef
* change java compiler to only produce one java filejieluo@google.com2014-08-076-27/+15
|
* use #undef instead of change the name of MemoryBarrierjieluo@google.com2014-08-0611-56/+57
|
* Cygwin doesn't work well if we try to capture stderr and stdout at the same ↵jieluo@google.com2014-08-061-9/+18
| | | | time. Comment one test tempraly for Cygwin. Need to figure out why and add the test back for Cygwin.
* Remove AM_PROG_AR.jieluo@google.com2014-08-051-1/+0
| | | | | | With AM_PROG_AR may report "error: possibly underfined macro: AM_PROG_AR" (mingw, autoreconf-2.68). Without AM_PROG_AR may report warning "archiver requires 'AM_PROG_AR' in 'configure.ac'" (cygwin, automake-1.12). They do not affect the tests and install
* make changes to pass Cygwinjieluo@google.com2014-08-052-6/+11
|
* add #ifdef _MSC_VERjieluo@google.com2014-08-011-2/+2
|
* add one file for VC 2013jieluo@google.com2014-07-311-0/+8
|
* change some files to pass MSVC 2013jieluo@google.com2014-07-317-15/+70
|
* Change MemoryBarrier() to MemoryBarrierInternal(). Resolve name conflict in ↵jieluo@google.com2014-07-3011-56/+56
| | | | mingw gcc 4.8.1
* 1, Remove unkown field support in jave TextFormatjieluo@google.com2014-07-253-118/+19
| | | | 2, Verifies the EnumValueDscriptor for DynamicMessage.Builder#setField
* Increase the allocated_size_ should be after allocation. Otherwise there ↵jieluo@google.com2014-07-241-1/+1
| | | | might have segmentation fault if allocation throws an exception.