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