1#!/bin/bash 2 3# This script renames all the functions and the macros defined in 4# absl/base/dynamic_annotations.{h,cc} and absl/base/thread_annotations.h. 5# 6# Chromium's dynamic_annotations live in //base/third_party/dynamic_annotations 7# and its //base contains a copy of thread_annotations.h which conflict with 8# Abseil's versions (ODR violations and macro clashing). 9# In order to avoid problems in Chromium, this copy of Abseil has its own 10# dynamic_annotations and thread_annotations renamed. 11 12# -------------------------- dynamic_annotations ------------------------- 13for w in \ 14 AnnotateBarrierDestroy \ 15 AnnotateBarrierInit \ 16 AnnotateBarrierWaitAfter \ 17 AnnotateBarrierWaitBefore \ 18 AnnotateBenignRace \ 19 AnnotateBenignRaceSized \ 20 AnnotateCondVarSignal \ 21 AnnotateCondVarSignalAll \ 22 AnnotateCondVarWait \ 23 AnnotateEnableRaceDetection \ 24 AnnotateExpectRace \ 25 AnnotateFlushExpectedRaces \ 26 AnnotateFlushState \ 27 AnnotateHappensAfter \ 28 AnnotateHappensBefore \ 29 AnnotateIgnoreReadsBegin \ 30 AnnotateIgnoreReadsEnd \ 31 AnnotateIgnoreSyncBegin \ 32 AnnotateIgnoreSyncEnd \ 33 AnnotateIgnoreWritesBegin \ 34 AnnotateIgnoreWritesEnd \ 35 AnnotateMemoryIsInitialized \ 36 AnnotateMemoryIsUninitialized \ 37 AnnotateMutexIsNotPHB \ 38 AnnotateMutexIsUsedAsCondVar \ 39 AnnotateNewMemory \ 40 AnnotateNoOp \ 41 AnnotatePCQCreate \ 42 AnnotatePCQDestroy \ 43 AnnotatePCQGet \ 44 AnnotatePCQPut \ 45 AnnotatePublishMemoryRange \ 46 AnnotateRWLockAcquired \ 47 AnnotateRWLockCreate \ 48 AnnotateRWLockCreateStatic \ 49 AnnotateRWLockDestroy \ 50 AnnotateRWLockReleased \ 51 AnnotateThreadName \ 52 AnnotateTraceMemory \ 53 AnnotateUnpublishMemoryRange \ 54 GetRunningOnValgrind \ 55 RunningOnValgrind \ 56 StaticAnnotateIgnoreReadsBegin \ 57 StaticAnnotateIgnoreReadsEnd \ 58 StaticAnnotateIgnoreWritesBegin \ 59 StaticAnnotateIgnoreWritesEnd \ 60 ValgrindSlowdown \ 61; do 62 find absl/ -type f -exec sed -i "s/\b$w\b/Absl$w/g" {} \; 63done 64 65for w in \ 66 ADDRESS_SANITIZER_REDZONE \ 67 ANNOTALYSIS_ENABLED \ 68 ANNOTATE_BARRIER_DESTROY \ 69 ANNOTATE_BARRIER_INIT \ 70 ANNOTATE_BARRIER_WAIT_AFTER \ 71 ANNOTATE_BARRIER_WAIT_BEFORE \ 72 ANNOTATE_BENIGN_RACE \ 73 ANNOTATE_BENIGN_RACE_SIZED \ 74 ANNOTATE_BENIGN_RACE_STATIC \ 75 ANNOTATE_CONDVAR_LOCK_WAIT \ 76 ANNOTATE_CONDVAR_SIGNAL \ 77 ANNOTATE_CONDVAR_SIGNAL_ALL \ 78 ANNOTATE_CONDVAR_WAIT \ 79 ANNOTATE_CONTIGUOUS_CONTAINER \ 80 ANNOTATE_ENABLE_RACE_DETECTION \ 81 ANNOTATE_EXPECT_RACE \ 82 ANNOTATE_FLUSH_EXPECTED_RACES \ 83 ANNOTATE_FLUSH_STATE \ 84 ANNOTATE_HAPPENS_AFTER \ 85 ANNOTATE_HAPPENS_BEFORE \ 86 ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN ANNOTATE_IGNORE_READS_AND_WRITES_END \ 87 ANNOTATE_IGNORE_READS_BEGIN \ 88 ANNOTATE_IGNORE_READS_END \ 89 ANNOTATE_IGNORE_SYNC_BEGIN \ 90 ANNOTATE_IGNORE_SYNC_END \ 91 ANNOTATE_IGNORE_WRITES_BEGIN \ 92 ANNOTATE_IGNORE_WRITES_END \ 93 ANNOTATE_MEMORY_IS_INITIALIZED \ 94 ANNOTATE_MEMORY_IS_UNINITIALIZED \ 95 ANNOTATE_MUTEX_IS_USED_AS_CONDVAR \ 96 ANNOTATE_NEW_MEMORY \ 97 ANNOTATE_NOT_HAPPENS_BEFORE_MUTEX \ 98 ANNOTATE_NO_OP \ 99 ANNOTATE_PCQ_CREATE ANNOTATE_PCQ_DESTROY \ 100 ANNOTATE_PCQ_GET ANNOTATE_PCQ_PUT \ 101 ANNOTATE_PUBLISH_MEMORY_RANGE \ 102 ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX \ 103 ANNOTATE_RWLOCK_ACQUIRED \ 104 ANNOTATE_RWLOCK_CREATE \ 105 ANNOTATE_RWLOCK_CREATE_STATIC \ 106 ANNOTATE_RWLOCK_DESTROY \ 107 ANNOTATE_RWLOCK_RELEASED \ 108 ANNOTATE_SWAP_MEMORY_RANGE \ 109 ANNOTATE_THREAD_NAME \ 110 ANNOTATE_TRACE_MEMORY \ 111 ANNOTATE_UNPROTECTED_READ \ 112 ANNOTATE_UNPUBLISH_MEMORY_RANGE \ 113 ANNOTATIONS_ENABLED \ 114 ATTRIBUTE_IGNORE_READS_BEGIN \ 115 ATTRIBUTE_IGNORE_READS_END \ 116 DYNAMIC_ANNOTATIONS_ATTRIBUTE_WEAK \ 117 DYNAMIC_ANNOTATIONS_ENABLED \ 118 DYNAMIC_ANNOTATIONS_EXTERNAL_IMPL \ 119 DYNAMIC_ANNOTATIONS_GLUE \ 120 DYNAMIC_ANNOTATIONS_GLUE0 \ 121 DYNAMIC_ANNOTATIONS_IMPL \ 122 DYNAMIC_ANNOTATIONS_NAME \ 123 DYNAMIC_ANNOTATIONS_PREFIX \ 124 DYNAMIC_ANNOTATIONS_PROVIDE_RUNNING_ON_VALGRIND \ 125 DYNAMIC_ANNOTATIONS_WANT_ATTRIBUTE_WEAK \ 126; do 127 find absl/ -type f -exec sed -i "s/\b$w\b/ABSL_$w/g" {} \; 128done 129 130# -------------------------- thread_annotations ------------------------- 131 132for w in \ 133 ts_unchecked_read \ 134; do 135 find absl/ -type f -exec sed -i "s/\b$w\b/absl_$w/g" {} \; 136done 137 138for w in \ 139 THREAD_ANNOTATION_ATTRIBUTE__ \ 140 GUARDED_BY \ 141 PT_GUARDED_BY \ 142 ACQUIRED_AFTER \ 143 ACQUIRED_BEFORE \ 144 EXCLUSIVE_LOCKS_REQUIRED \ 145 SHARED_LOCKS_REQUIRED \ 146 LOCKS_EXCLUDED \ 147 LOCK_RETURNED \ 148 LOCKABLE \ 149 SCOPED_LOCKABLE \ 150 EXCLUSIVE_LOCK_FUNCTION \ 151 SHARED_LOCK_FUNCTION \ 152 UNLOCK_FUNCTION \ 153 EXCLUSIVE_TRYLOCK_FUNCTION \ 154 SHARED_TRYLOCK_FUNCTION \ 155 ASSERT_EXCLUSIVE_LOCK \ 156 ASSERT_SHARED_LOCK \ 157 NO_THREAD_SAFETY_ANALYSIS \ 158 TS_UNCHECKED \ 159 TS_FIXME \ 160 NO_THREAD_SAFETY_ANALYSIS_FIXME \ 161 GUARDED_BY_FIXME \ 162 TS_UNCHECKED_READ \ 163; do 164 find absl/ -type f -exec sed -i "s/\b$w\b/ABSL_$w/g" {} \; 165done 166