diff --git a/cipd_manifest.txt b/cipd_manifest.txt
index 80cb184..b16fe7a 100644
--- a/cipd_manifest.txt
+++ b/cipd_manifest.txt
@@ -13,9 +13,9 @@
 # https://chrome-infra-packages.appspot.com/
 
 # go
-infra/3pp/tools/go/${platform} version:1.14.2
+infra/3pp/tools/go/${platform} version:1.14.3
 
 # protoc
 # If the version you want is missing, please follow the instruction in:
 # https://chromium.googlesource.com/infra/infra/+/refs/heads/master/bootstrap/cipd/doc/infra/tools/protoc/
-infra/tools/protoc/${platform} protobuf_version:v3.11.4
+infra/tools/protoc/${platform} protobuf_version:v3.12.0
diff --git a/cipd_manifest.versions b/cipd_manifest.versions
index 9f37e63..bc09a28 100644
--- a/cipd_manifest.versions
+++ b/cipd_manifest.versions
@@ -2,9 +2,9 @@
 # Do not modify manually. All changes will be overwritten.
 
 infra/3pp/tools/go/linux-amd64
-	version:1.14.2
-	5X-axvSwNlp7JmgM6ca1mAeXKYVeQOgTkO4HyvchxxsC
+	version:1.14.3
+	H90a2JKY07JCBcm7-RfUzxvKXWyeY8THfo2aDOe_q5EC
 
 infra/tools/protoc/linux-amd64
-	protobuf_version:v3.11.4
-	FcNzodTkFHz7Nrvv_hvhE32oOiZpJFCbCuyr4pWLetUC
+	protobuf_version:v3.12.0
+	R8on5znMbwEMRePJB1oLQw-xU1_sad_ET81UPr4v-XQC
diff --git a/go.mod b/go.mod
index c08e2c4..87e1f1f 100644
--- a/go.mod
+++ b/go.mod
@@ -3,15 +3,15 @@
 go 1.12
 
 require (
-	cloud.google.com/go v0.56.0
+	cloud.google.com/go v0.57.0
 	cloud.google.com/go/pubsub v1.3.1
-	cloud.google.com/go/storage v1.6.0
+	cloud.google.com/go/storage v1.8.0
 	contrib.go.opencensus.io/exporter/stackdriver v0.13.1
 	github.com/bazelbuild/remote-apis v0.0.0-20191104140458-e77c4eb2ca48
 	github.com/bazelbuild/remote-apis-sdks v0.0.0-20200117155253-d02017f96d3b
 	github.com/fsnotify/fsnotify v1.4.7
 	github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e
-	github.com/golang/protobuf v1.4.0
+	github.com/golang/protobuf v1.4.2
 	github.com/gomodule/redigo v2.0.0+incompatible
 	github.com/google/go-cmp v0.4.0
 	github.com/google/uuid v1.1.1
@@ -21,11 +21,11 @@
 	go.opencensus.io v0.22.3
 	go.uber.org/zap v1.10.0
 	golang.org/x/build v0.0.0-20191031202223-0706ea4fce0c
-	golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
+	golang.org/x/net v0.0.0-20200506145744-7e3656a0809f
 	golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
 	golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a
-	google.golang.org/api v0.22.0
-	google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940
+	google.golang.org/api v0.25.0
+	google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380
 	google.golang.org/grpc v1.29.1
-	google.golang.org/protobuf v1.21.0
+	google.golang.org/protobuf v1.23.0
 )
diff --git a/go.sum b/go.sum
index 1101ddd..c9ca6c8 100644
--- a/go.sum
+++ b/go.sum
@@ -20,6 +20,8 @@
 cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
 cloud.google.com/go v0.56.0 h1:WRz29PgAsVEyPSDHyk+0fpEkwEFyfhHn+JbksT6gIL4=
 cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
+cloud.google.com/go v0.57.0 h1:EpMNVUorLiZIELdMZbCYX/ByTFCdoYopYAGxaGVz9ms=
+cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
 cloud.google.com/go/bigquery v1.0.1 h1:hL+ycaJpVE9M7nLoiXb/Pn10ENE2u+oddxbD8uu0ZVU=
 cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
 cloud.google.com/go/bigquery v1.3.0 h1:sAbMqjY1PEQKZBWfbu6Y6bsupJ9c4QdHnzg/VvYTLcE=
@@ -28,6 +30,8 @@
 cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
 cloud.google.com/go/bigquery v1.5.0 h1:K2NyuHRuv15ku6eUpe0DQk5ZykPMnSOnvuVf6IHcjaE=
 cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
+cloud.google.com/go/bigquery v1.7.0 h1:a/O/bK/vWrYGOTFtH8di4rBxMZnmkjy+Y5LxpDwo+dA=
+cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
 cloud.google.com/go/datastore v1.0.0 h1:Kt+gOPPp2LEPWp8CSfxhsM8ik9CcyE/gYu+0r+RnZvM=
 cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
 cloud.google.com/go/datastore v1.1.0 h1:/May9ojXjRkPBNVrq+oWLqmWCkr4OU5uRY29bu0mRyQ=
@@ -46,6 +50,8 @@
 cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
 cloud.google.com/go/storage v1.6.0 h1:UDpwYIwla4jHGzZJaEJYx1tOejbgSoNqsAfHAUYe2r8=
 cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
+cloud.google.com/go/storage v1.8.0 h1:86K1Gel7BQ9/WmNWn7dTKMvTLFzwtBe5FNqYbi9X35g=
+cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
 contrib.go.opencensus.io/exporter/stackdriver v0.13.1 h1:RX9W6FelAqTVnBi/bRXJLXr9n18v4QkQwZYIdnNS51I=
 contrib.go.opencensus.io/exporter/stackdriver v0.13.1/go.mod h1:z2tyTZtPmQ2HvWH4cOmVDgtY+1lomfKdbLnkJvZdc8c=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
@@ -147,6 +153,10 @@
 github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
 github.com/golang/protobuf v1.4.0 h1:oOuy+ugB+P/kBdUnG5QaMXSIyJ1q38wWSojYCb3z5VQ=
 github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.1 h1:ZFgWrT+bLgsYPirOnRfKLYJLvssAegOj/hgyMFdJZe0=
+github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
+github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
+github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
 github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
@@ -182,6 +192,8 @@
 github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
 github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3 h1:SRgJV+IoxM5MKyFdlSUeNy6/ycRUF2yBAKdAQswoHUk=
 github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d h1:iaAPcMIY2f+gpk8tKf0BMW5sLrlhaASiYAnFmvVG5e0=
+github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
@@ -257,6 +269,7 @@
 github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
 github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=
 github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 go.opencensus.io v0.21.0 h1:mU6zScU4U1YAFPHEHYk+3JC4SY7JxgkqS10ZOSyksNg=
 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
 go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4=
@@ -355,6 +368,10 @@
 golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k=
 golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5 h1:WQ8q63x+f/zpC8Ac1s9wLElVoHhm32p6tudrU72n1QA=
+golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200506145744-7e3656a0809f h1:QBjCr1Fz5kw158VqdE9JfI9cJnl/ymnJWAdMuinqL7Y=
+golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421 h1:Wo7BWFiOk0QRFMLYMqJGFMd9CgUAcGx7V+qEg/h5IBI=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -409,6 +426,10 @@
 golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200331124033-c3d80250170d h1:nc5K6ox/4lTFbMVSL9WRR81ixkcwXThoiF6yf+R9scA=
 golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200501052902-10377860bb8e h1:hq86ru83GdWTlfQFZGO4nZJTU4Bs2wfHl8oFHRaXsfc=
+golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25 h1:OKbAoGs4fGM5cPLlVQLZGYkFC8OnOfgo6tt0Smf9XhM=
+golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2 h1:z99zHgr7hKfrUcX/KsoJk5FJfjTceCKIp96+biqP4To=
@@ -465,6 +486,10 @@
 golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
 golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4 h1:kDtqNkeBrZb8B+atrj50B5XLHpzXXqcCdZPP/ApQ5NY=
 golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
+golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d h1:lzLdP95xJmMpwQ6LUHwrc5V7js93hTiY7gkznu0BgmY=
+golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88 h1:4j84u0sokprDu3IdSYHJMmou+YSLflMz8p7yAx/QI4g=
+golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
@@ -488,8 +513,11 @@
 google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
 google.golang.org/api v0.20.0 h1:jz2KixHX7EcCPiQrySzPdnYT7DbINAypCqKZ1Z7GM40=
 google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
-google.golang.org/api v0.22.0 h1:J1Pl9P2lnmYFSJvgs70DKELqHNh8CNWXPbud4njEE2s=
 google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.24.0 h1:cG03eaksBzhfSIk7JRGctfp3lanklcOM/mTGvow7BbQ=
+google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
+google.golang.org/api v0.25.0 h1:LodzhlzZEUfhXzNUMIfVlf9Gr6Ua5MMtoFWh7+f47qA=
+google.golang.org/api v0.25.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
 google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -500,6 +528,8 @@
 google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
 google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM=
 google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc=
+google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
 google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19 h1:Lj2SnHtxkRGJDqnGaSjo+CCdIieEnwVazbOXILwQemk=
 google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
@@ -537,6 +567,10 @@
 google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
 google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940 h1:MRHtG0U6SnaUb+s+LhNE1qt1FQ1wlhqr5E4usBKC0uA=
 google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84 h1:pSLkPbrjnPyLDYUO2VM9mDLqo2V6CFBY84lFSZAfoi4=
+google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380 h1:xriR1EgvKfkKxIoU2uUvrMVl+H26359loFFUleSMXFo=
+google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
 google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1 h1:Hz2g2wirWK7H0qIIhGIqRGTuMwTE8HEKFnDZZ7lm9NU=
@@ -563,6 +597,10 @@
 google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
 google.golang.org/protobuf v1.21.0 h1:qdOKuR/EIArgaWNjetjgTzgVTAZ+S/WXVrq9HW9zimw=
 google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.22.0 h1:cJv5/xdbk1NnMPR1VP9+HU6gupuG9MLBoH1r6RHZ2MY=
+google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
+google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/proto/api/goma_data.pb.go b/proto/api/goma_data.pb.go
index 40d8037..00f1681 100644
--- a/proto/api/goma_data.pb.go
+++ b/proto/api/goma_data.pb.go
@@ -6,8 +6,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: api/goma_data.proto
 
 package api
diff --git a/proto/api/goma_log.pb.go b/proto/api/goma_log.pb.go
index fefda94..5ff7946 100644
--- a/proto/api/goma_log.pb.go
+++ b/proto/api/goma_log.pb.go
@@ -7,8 +7,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: api/goma_log.proto
 
 package api
diff --git a/proto/auth/acl.pb.go b/proto/auth/acl.pb.go
index 529e266..514674e 100644
--- a/proto/auth/acl.pb.go
+++ b/proto/auth/acl.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: auth/acl.proto
 
 package auth
diff --git a/proto/auth/auth.pb.go b/proto/auth/auth.pb.go
index 3cb202d..697fca8 100644
--- a/proto/auth/auth.pb.go
+++ b/proto/auth/auth.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: auth/auth.proto
 
 package auth
diff --git a/proto/auth/auth_service.pb.go b/proto/auth/auth_service.pb.go
index f739710..5adbec0 100644
--- a/proto/auth/auth_service.pb.go
+++ b/proto/auth/auth_service.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: auth/auth_service.proto
 
 package auth
diff --git a/proto/auth/authdb.pb.go b/proto/auth/authdb.pb.go
index 2d4b49c..a944c26 100644
--- a/proto/auth/authdb.pb.go
+++ b/proto/auth/authdb.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: auth/authdb.proto
 
 package auth
diff --git a/proto/auth/authdb_service.pb.go b/proto/auth/authdb_service.pb.go
index 55c571e..04aaa1d 100644
--- a/proto/auth/authdb_service.pb.go
+++ b/proto/auth/authdb_service.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: auth/authdb_service.proto
 
 package auth
diff --git a/proto/backend/backend.pb.go b/proto/backend/backend.pb.go
index 534d98b..eaf47d4 100644
--- a/proto/backend/backend.pb.go
+++ b/proto/backend/backend.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: backend/backend.proto
 
 package backend
diff --git a/proto/cache/cache.pb.go b/proto/cache/cache.pb.go
index c73c1eb..8dd8fc7 100644
--- a/proto/cache/cache.pb.go
+++ b/proto/cache/cache.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: cache/cache.proto
 
 package cache
diff --git a/proto/cache/cache_service.pb.go b/proto/cache/cache_service.pb.go
index f5123eb..b0cfd50 100644
--- a/proto/cache/cache_service.pb.go
+++ b/proto/cache/cache_service.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: cache/cache_service.proto
 
 package cache
diff --git a/proto/command/command.pb.go b/proto/command/command.pb.go
index 9d61bc7..65a6506 100644
--- a/proto/command/command.pb.go
+++ b/proto/command/command.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: command/command.proto
 
 package command
diff --git a/proto/command/command_service.pb.go b/proto/command/command_service.pb.go
index 45a4d34..277cf52 100644
--- a/proto/command/command_service.pb.go
+++ b/proto/command/command_service.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: command/command_service.proto
 
 package command
diff --git a/proto/command/package_opts.pb.go b/proto/command/package_opts.pb.go
index 2b814bf..855f42f 100644
--- a/proto/command/package_opts.pb.go
+++ b/proto/command/package_opts.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: command/package_opts.proto
 
 package command
diff --git a/proto/command/setup.pb.go b/proto/command/setup.pb.go
index d173110..2f18ccf 100644
--- a/proto/command/setup.pb.go
+++ b/proto/command/setup.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: command/setup.proto
 
 package command
diff --git a/proto/exec/exec_service.pb.go b/proto/exec/exec_service.pb.go
index 98c7b34..99fad3b 100644
--- a/proto/exec/exec_service.pb.go
+++ b/proto/exec/exec_service.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: exec/exec_service.proto
 
 package exec
diff --git a/proto/execlog/log_service.pb.go b/proto/execlog/log_service.pb.go
index 598e864..e102f3e 100644
--- a/proto/execlog/log_service.pb.go
+++ b/proto/execlog/log_service.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: execlog/log_service.proto
 
 package execlog
diff --git a/proto/file/file_service.pb.go b/proto/file/file_service.pb.go
index 793c603..eb0e05f 100644
--- a/proto/file/file_service.pb.go
+++ b/proto/file/file_service.pb.go
@@ -7,8 +7,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: file/file_service.proto
 
 package file
diff --git a/proto/nsjail/config.pb.go b/proto/nsjail/config.pb.go
index 3eafd87..d75718f 100644
--- a/proto/nsjail/config.pb.go
+++ b/proto/nsjail/config.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: nsjail/config.proto
 
 package nsjail
diff --git a/proto/settings/settings.pb.go b/proto/settings/settings.pb.go
index ef95a4d..6a37431 100644
--- a/proto/settings/settings.pb.go
+++ b/proto/settings/settings.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: settings/settings.proto
 
 package settings
diff --git a/proto/settings/settings_service.pb.go b/proto/settings/settings_service.pb.go
index 6a3785f..7c1ee6e 100644
--- a/proto/settings/settings_service.pb.go
+++ b/proto/settings/settings_service.pb.go
@@ -4,8 +4,8 @@
 
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.21.0
-// 	protoc        v3.11.4
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.12.1
 // source: settings/settings_service.proto
 
 package settings
diff --git a/remoteexec/adapter.go b/remoteexec/adapter.go
index 13280f9..27ce268 100644
--- a/remoteexec/adapter.go
+++ b/remoteexec/adapter.go
@@ -197,6 +197,11 @@
 
 func (f *Adapter) newRequest(ctx context.Context, gomaReq *gomapb.ExecReq) *request {
 	logger := log.FromContext(ctx)
+	userGroup := "unknown-group"
+	endUser, ok := enduser.FromContext(ctx)
+	if ok {
+		userGroup = endUser.Group
+	}
 	gs := digest.NewStore()
 	timeout := f.ExecTimeout
 	if timeout == 0 {
@@ -204,8 +209,9 @@
 	}
 	client := f.client(ctx)
 	r := &request{
-		f:      f,
-		client: client,
+		f:         f,
+		userGroup: userGroup,
+		client:    client,
 		cas: &cas.CAS{
 			Client:            client,
 			Store:             gs,
@@ -223,7 +229,7 @@
 			DoNotCache: doNotCache(gomaReq),
 		},
 	}
-	logger.Infof("%s: new request", r.ID())
+	logger.Infof("%s: new request group:%q", r.ID(), userGroup)
 	return r
 }
 
diff --git a/remoteexec/clang-cl.go b/remoteexec/clang-cl.go
index 5e4ac29..91ea5f0 100644
--- a/remoteexec/clang-cl.go
+++ b/remoteexec/clang-cl.go
@@ -5,19 +5,286 @@
 package remoteexec
 
 import (
-	"errors"
+	"fmt"
+	"strconv"
+	"strings"
 )
 
 // TODO: share exec/clangcl.go ?
 
+var clangClPathFlags = []string{
+	"--sysroot=",
+	"-B",
+	"-I",
+	"-fcrash-diagnostics-dir=",
+	"-fprofile-instr-use=",
+	"-fprofile-sample-use=",
+	"-fsanitize-blacklist=",
+	"-include=",
+	"-isystem",
+	"-o",
+	"-resource-dir=",
+	"-imsvc",
+	"/FA",
+	"/Fa",
+	"/Fd",
+	"/Fe",
+	"/Fl",
+	"/Fm",
+	"/Fo",
+	"/Fp",
+	"/FR",
+	"/Fr",
+	"/FU",
+	"/Fx",
+}
+
+func isClangclWarningFlag(arg string) bool {
+	if len(arg) < 2 || (arg[:2] != "/W" && arg[0:2] != "/w") {
+		return false
+	}
+
+	basicFlags := []string{
+		"/w",                              // Suppress all warnings
+		"/W0", "/W1", "/W2", "/W3", "/W4", // Warning levels 0-4
+		"/Wall", // Display all warnings
+		"/WX",   // Treats warnings as errors
+		"/Wv",   // Display only warnings added in current compiler version
+	}
+	for _, flag := range basicFlags {
+		if arg == flag {
+			return true
+		}
+	}
+	// Display warnings added in given compiler version
+	if strings.HasPrefix(arg, "/Wv:") {
+		return true
+	}
+
+	// All remaining possible warnings have the format /wXnnnn
+	if len(arg) != 7 {
+		return false
+	}
+
+	switch arg[2:3] {
+	case "1", "2", "3", "4": // Set warning level for numbered warning
+		fallthrough
+	case "d": // Suppress numbered warning
+		fallthrough
+	case "e": // Treat numbered warning as error
+		fallthrough
+	case "o": // Report numbered warning only once
+		// Possible warning values: 4000-5999:
+		// https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/c-cpp-build-errors
+		warning, err := strconv.Atoi(arg[3:])
+		if err != nil {
+			return false
+		}
+		return warning >= 4000 && warning < 6000
+	}
+
+	return false
+}
+
+func isClangclOptimizationFlag(arg string) bool {
+	optFlags := []string{
+		"/O1",                          // Optimize for size
+		"/O2",                          // Optimize for speed
+		"/Ob0", "/Ob1", "/Ob2", "/Ob3", // Inline function expansino
+		"/Od",         // Turn off optimization
+		"/Og",         // Global optimization
+		"/Oi", "/Oi-", // Intrinsic functions
+		"/Os", "/Ot", // Favor small/fast code
+		"/Ox",         // Enable most speed optimizations
+		"/Oy", "/Oy-", // Frame pointer omission
+	}
+	for _, flag := range optFlags {
+		if arg == flag {
+			return true
+		}
+	}
+	return false
+}
+
 // clangclRelocatableReq checks if the request (args, envs) uses relative
 // paths only and doesn't use flags that generates output including cwd,
 // so will generate cwd-agnostic outputs
 // (files/stdout/stderr will not include cwd dependent paths).
-//
-// TODO: implement it.
-func clangclRelocatableReq(args, envs []string) error {
-	return errors.New("no relocatable check for clang-cl")
+// TODO: Combine some of this code with gccRelocatableReq.
+func clangclRelocatableReq(filepath clientFilePath, args, envs []string) error {
+	var debugFlags []string
+	subArgs := map[string][]string{}
+	var subCmd string
+	pathFlag := false
+Loop:
+	for _, arg := range args {
+		if pathFlag {
+			if filepath.IsAbs(arg) {
+				return fmt.Errorf("abs path: %s", arg)
+			}
+			pathFlag = false
+			continue
+		}
+		for _, fp := range clangClPathFlags {
+			if arg != fp && strings.HasPrefix(arg, fp) {
+				if filepath.IsAbs(arg[len(fp):]) {
+					return fmt.Errorf("abs path: %s", arg)
+				}
+				continue Loop
+			}
+		}
+		switch {
+		case subCmd != "":
+			subArgs[subCmd] = append(subArgs[subCmd], arg)
+			subCmd = ""
+
+		case strings.HasPrefix(arg, "-g"):
+			if arg == "-g0" {
+				debugFlags = nil
+				continue
+			}
+			debugFlags = append(debugFlags, arg)
+
+		case strings.HasPrefix(arg, "-Wa,"): // assembler arg
+			subArgs["as"] = append(subArgs["as"], strings.Split(arg[len("-Wa,"):], ",")...)
+		case strings.HasPrefix(arg, "-Wl,"): // linker arg
+			subArgs["ld"] = append(subArgs["ld"], strings.Split(arg[len("-Wl,"):], ",")...)
+		case strings.HasPrefix(arg, "-Wp,"): // preproc arg
+			subArgs["cpp"] = append(subArgs["cpp"], strings.Split(arg[len("-Wp,"):], ",")...)
+		case arg == "-Xclang":
+			subCmd = "clang"
+
+		case strings.HasPrefix(arg, "-w"): // inhibit all warnings
+		case strings.HasPrefix(arg, "-W"): // warning
+		case strings.HasPrefix(arg, "-D"): // define
+		case strings.HasPrefix(arg, "-U"): // undefine
+		case strings.HasPrefix(arg, "-O"): // optimize
+		case strings.HasPrefix(arg, "-f"): // feature
+		case strings.HasPrefix(arg, "-m"):
+			// -m64, -march=x86-64
+		case arg == "-arch":
+		case strings.HasPrefix(arg, "--target="):
+
+		case strings.HasPrefix(arg, "-no"):
+			// -no-canonical-prefixes, -nostdinc++
+		case arg == "-integrated-as":
+		case arg == "-pedantic":
+		case arg == "-pipe":
+		case arg == "-pthread":
+		case arg == "-c":
+		case strings.HasPrefix(arg, "-std"):
+		case strings.HasPrefix(arg, "--param="):
+		case arg == "-MMD" || arg == "-MD" || arg == "-M":
+		case arg == "-Qunused-arguments":
+			continue
+
+		case arg == "-o":
+			pathFlag = true
+		case arg == "-I" || arg == "-B" || arg == "-isystem" || arg == "-include":
+			pathFlag = true
+		case arg == "-MF":
+			pathFlag = true
+		case arg == "-isysroot":
+			pathFlag = true
+
+		// MSVC/clang-cl options are based on:
+		// https://docs.microsoft.com/en-us/cpp/build/reference/compiler-options-listed-alphabetically?view=vs-2019
+		// https://clang.llvm.org/docs/UsersManual.html#id9
+		case arg == "/nologo":
+		case arg == "/Brepro", arg == "/Brepro-": // Emit an object file which can/cannot be reproduced over time
+		case arg == "/FS": // Forces serialization of all writes to the program database (PDB) file through MSPDBSRV.EXE
+		case arg == "/Gy", arg == "/Gy-": // Function-level linking
+		case arg == "/bigobj": // Support more sections in obj file
+		case arg == "/utf-8": // Set source and execution character set as UTF-8
+		case arg == "/X": // Ignore standard include paths
+		case arg == "/Z7", arg == "/Zi", arg == "/ZI": // Set debug format
+		case arg == "/MD", arg == "/MT", arg == "/LD": // Use normal runtime library
+		case arg == "/MDd", arg == "/MTd", arg == "/LDd": // Use debug runtime library
+		case arg == "/Tc", arg == "/Tp", arg == "/TC", arg == "/TP": // Source file type
+		case arg == "/Gd", arg == "/Gr", arg == "/Gv", arg == "/Gz": // Calling convention
+		case arg == "/GR", arg == "/GR-": // Specify RTTI
+		case arg == "/GS", arg == "/GS-": // Buffer security check
+		case arg == "/Gr", arg == "/Gr-": // Use __fastcall calling convention
+		case arg == "/Gw", arg == "/Gw-": // Optimize global data
+		case arg == "/GF": // Enables string pooling
+		case arg == "/c": // Compile without linking
+		case strings.HasPrefix(arg, "/D"): // Preprocessor
+		case strings.HasPrefix(arg, "/EH"): // Specify error handling
+		case strings.HasPrefix(arg, "/Zc:"): // Specify compiler behavior
+		case strings.HasPrefix(arg, "/arch:"): // Specify CPU architecture
+		case strings.HasPrefix(arg, "/clang:"): // Clang-specific option
+		case strings.HasPrefix(arg, "/guard:cf"): // Control flow guard security checks
+		case strings.HasPrefix(arg, "/showIncludes:"): // List include files
+		case strings.HasPrefix(arg, "/std:c++"): // Specify C++ standard
+		case isClangclWarningFlag(arg): // Flags to handle warnings
+		case isClangclOptimizationFlag(arg): // Flags to handle optimization
+			continue
+
+		case strings.HasPrefix(arg, "-"), strings.HasPrefix(arg, "/"): // unknown flag?
+			return fmt.Errorf("unknown flag: %s", arg)
+
+		default: // input file?
+			if filepath.IsAbs(arg) {
+				return fmt.Errorf("abs path: %s", arg)
+			}
+		}
+	}
+
+	if len(subArgs) > 0 {
+		for cmd, args := range subArgs {
+			switch cmd {
+			case "clang":
+				err := clangclArgRelocatable(filepath, args)
+				if err != nil {
+					return err
+				}
+			default:
+				return fmt.Errorf("unsupported subcommand args %s: %s", cmd, args)
+			}
+		}
+	}
+
+	for _, env := range envs {
+		e := strings.SplitN(env, "=", 2)
+		if len(e) != 2 {
+			return fmt.Errorf("bad environment variable: %s", env)
+		}
+		if e[0] == "PWD" {
+			continue
+		}
+		if filepath.IsAbs(e[1]) {
+			return fmt.Errorf("abs path in env %s=%s", e[0], e[1])
+		}
+	}
+	return nil
+}
+
+func clangclArgRelocatable(filepath clientFilePath, args []string) error {
+	pathFlag := false
+	skipFlag := false
+	for _, arg := range args {
+		switch {
+		case pathFlag:
+			if filepath.IsAbs(arg) {
+				return fmt.Errorf("clang-cl abs path: %s", arg)
+			}
+			pathFlag = false
+		case skipFlag:
+			skipFlag = false
+
+		case arg == "-fdebug-compilation-dir":
+			pathFlag = true
+		case strings.HasPrefix(arg, "-debug-info-kind"):
+			continue
+		case arg == "-add-plugin", arg == "-mllvm", arg == "-plugin-arg-blink-gc-plugin":
+			// TODO: pass llvmArgRelocatable for -mllvm?
+			skipFlag = true
+			continue
+		default:
+			return fmt.Errorf("clang-cl unknown arg: %s", arg)
+		}
+	}
+	return nil
 }
 
 // clangclOutputs returns output files from clang-cl command line.
diff --git a/remoteexec/clang-cl_test.go b/remoteexec/clang-cl_test.go
index 498f28f..f381ee7 100644
--- a/remoteexec/clang-cl_test.go
+++ b/remoteexec/clang-cl_test.go
@@ -6,9 +6,218 @@
 
 import (
 	"reflect"
+	"strings"
 	"testing"
+
+	"go.chromium.org/goma/server/command/descriptor/winpath"
 )
 
+func TestIsClangclWarningFlag(t *testing.T) {
+	for _, tc := range []struct {
+		desc  string
+		flags []string
+		want  bool
+	}{
+		{
+			desc: "basic",
+			flags: []string{
+				"/w", "/W0", "/W1", "/W2", "/W3", "/W4", "/Wall", "/WX", "/Wv",
+			},
+			want: true,
+		},
+		{
+			desc: "version",
+			flags: []string{
+				"/Wv:foo", "/Wv:bar",
+			},
+			want: true,
+		},
+		{
+			desc: "numbered warning level",
+			flags: []string{
+				"/w14000", "/w24001", "/wd4999", "/we5000", "/wo5001",
+			},
+			want: true,
+		},
+		{
+			desc: "not warning flag",
+			flags: []string{
+				"/foo", "/bar", "/", "",
+			},
+			want: false,
+		},
+		{
+			desc: "invalid numbered warning",
+			flags: []string{
+				"/wd300", "/we1000", "/wo6000", "/w1nnnn",
+			},
+			want: false,
+		},
+	} {
+		t.Run(tc.desc, func(t *testing.T) {
+			for _, flag := range tc.flags {
+				if got := isClangclWarningFlag(flag); got != tc.want {
+					t.Errorf("isClangclWarningFlag(%q)=%t; want %t", flag, got, tc.want)
+				}
+			}
+		})
+	}
+}
+
+func TestClangclRelocatableReq(t *testing.T) {
+
+	baseReleaseArgs := []string{
+		// Taken from actual Chromium Windows build args.
+		"..\\..\\third_party\\llvm-build\\Release+Asserts\\bin\\clang-cl.exe",
+		"/nologo",
+		"/showIncludes:user",
+		"-imsvc..\\..\\third_party\\depot_tools\\win_toolchain\\vs_files",
+		"-DUSE_AURA=1",
+		"-I../..",
+		"-fcolor-diagnostics",
+		"-fmerge-all-constants",
+		// POSIX-style paths are sometimes passed to clang-cl in Chromium, but they are relative paths.
+		"-fcrash-diagnostics-dir=../../tools/clang/crashreports",
+		"-Xclang",
+		"-fdebug-compilation-dir",
+		"-Xclang",
+		"./debug_compilation_dir",
+		"-no-canonical-prefixes",
+		"-I../../buildtools/third_party/libc++/trunk/include",
+		"/c",
+		"../../base/win/com_init_util.cc",
+		"/Foobj/base/base/com_init_util.obj",
+		"/Fdobj/base/base_cc.pdb",
+	}
+
+	modifyArgs := func(args []string, prefix, replace string) []string {
+		var ret []string
+		found := false
+		for _, arg := range args {
+			if strings.HasPrefix(arg, prefix) {
+				ret = append(ret, replace)
+				found = true
+				continue
+			}
+			ret = append(ret, arg)
+		}
+		if !found {
+			ret = append(ret, replace)
+		}
+		return ret
+	}
+
+	for _, tc := range []struct {
+		desc        string
+		args        []string
+		envs        []string
+		relocatable bool
+		unknownFlag bool
+	}{
+		{
+			desc: "chromium base release",
+			args: baseReleaseArgs,
+			envs: []string{
+				"PWD=C:\\b\\c\\src\\out\\Release",
+			},
+			relocatable: true,
+		},
+		{
+			desc: "clang path absolute",
+			args: modifyArgs(baseReleaseArgs,
+				"..\\..\\third_party\\llvm-build\\Release+Asserts\\bin\\clang-cl.exe",
+				"C:\\chromium\\src\\third_party\\llvm-build\\Release+Asserts\\bin\\clang-cl.exe"),
+			relocatable: false,
+		},
+		{
+			desc: "msvc path absolute",
+			args: modifyArgs(baseReleaseArgs,
+				"-imsvc..\\..\\third_party\\depot_tools\\win_toolchain\\vs_files",
+				"-imsvcC:\\chromium\\src\\third_party\\depot_tools\\win_toolchain\\vs_files"),
+			relocatable: false,
+		},
+		{
+			desc: "include path absolute",
+			args: modifyArgs(baseReleaseArgs,
+				"-I../../buildtools/third_party/libc++/trunk/include",
+				"-IC:\\chromium\\src\\buildtools\\third_party\\libc++\\trunk\\include"),
+			relocatable: false,
+		},
+		{
+			desc: "-fcrash-diagnostics-dir path absolute",
+			args: modifyArgs(baseReleaseArgs,
+				"-fcrash-diagnostics-dir=../../tools/clang/crashreports",
+				"-fcrash-diagnostics-dir=C:\\chromium\\src\\tools\\clang\\crashreports"),
+			relocatable: false,
+		},
+		{
+			desc: "output path absolute",
+			args: modifyArgs(baseReleaseArgs,
+				"/Foobj/base/base/com_init_util.obj",
+				"/FoC:\\chromium\\src\\obj\\base\\base\\com_init_util.obj"),
+			relocatable: false,
+		},
+		{
+			desc: "debug output path absolute",
+			args: modifyArgs(baseReleaseArgs,
+				"/Fdobj/base/base_cc.pdb",
+				"/FdC:\\chromium\\src\\obj\\base\\base_cc.pdb"),
+			relocatable: false,
+		},
+		{
+			desc: "source path absolute",
+			args: modifyArgs(baseReleaseArgs,
+				"../../base/win/com_init_util.cc",
+				"C:\\chromium\\src\\base\\win\\com_init_util.cc"),
+			relocatable: false,
+		},
+		{
+			desc: "-fdebug-compilation-dir",
+			args: modifyArgs(baseReleaseArgs,
+				"./debug_compilation_dir",
+				"C:\\chromium\\src\\out\\Release\\debug_compilation_dir"),
+			relocatable: false,
+		},
+		{
+			desc:        "invalid msvc flag",
+			args:        modifyArgs(baseReleaseArgs, "", "/invalid"),
+			relocatable: false,
+			unknownFlag: true,
+		},
+		{
+			desc:        "invalid dash flag",
+			args:        modifyArgs(baseReleaseArgs, "", "-invalid"),
+			relocatable: false,
+			unknownFlag: true,
+		},
+		{
+			desc:        "full chromium release build args",
+			args:        fullChromiumReleaseBuildArgs,
+			relocatable: true,
+		},
+		{
+			desc:        "full chromium debug build args",
+			args:        fullChromiumDebugBuildArgs,
+			relocatable: true,
+		},
+		{
+			desc:        "full llvm release build args",
+			args:        fullLLVMReleaseBuildArgs,
+			relocatable: false,
+		},
+	} {
+		t.Run(tc.desc, func(t *testing.T) {
+			err := clangclRelocatableReq(winpath.FilePath{}, tc.args, tc.envs)
+			if (err == nil) != tc.relocatable {
+				t.Errorf("clangclRelocatableReq(winpath.FilePath, args, envs)=%v; relocatable=%t", err, tc.relocatable)
+			}
+			if err != nil && tc.unknownFlag != strings.Contains(err.Error(), "unknown flag") {
+				t.Errorf("clangclRelocatableReq(winpath.FilePath, args, envs)=%v; expected unknown flag", err)
+			}
+		})
+	}
+}
+
 func TestClangclOutputs(t *testing.T) {
 	for _, tc := range []struct {
 		desc string
@@ -55,3 +264,363 @@
 		})
 	}
 }
+
+var fullChromiumReleaseBuildArgs = []string{
+	"..\\..\\third_party\\llvm-build\\Release+Asserts\\bin\\clang-cl.exe",
+	"/nologo",
+	"/showIncludes:user",
+	"-imsvc..\\..\\third_party\\depot_tools\\win_toolchain\\vs_files\\9ff60e43ba91947baca460d0ca3b1b980c3a2c23\\win_sdk",
+	"-DUSE_AURA=1",
+	"-DCR_CLANG_REVISION=\"n353803-99ac9ce7-1\"",
+	"-D_HAS_NODISCARD",
+	"-D_LIBCPP_ABI_UNSTABLE",
+	"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+	"-D_LIBCPP_ENABLE_NODISCARD",
+	"-D_LIBCPP_NO_AUTO_LINK",
+	"-D__STD_C",
+	"-D_CRT_RAND_S",
+	"-D_CRT_SECURE_NO_DEPRECATE",
+	"-D_SCL_SECURE_NO_DEPRECATE",
+	"-D_ATL_NO_OPENGL",
+	"-D_WINDOWS",
+	"-DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS",
+	"-DPSAPI_VERSION=2",
+	"-DWIN32",
+	"-D_SECURE_ATL",
+	"-DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP",
+	"-DWIN32_LEAN_AND_MEAN",
+	"-DNOMINMAX",
+	"-D_UNICODE",
+	"-DUNICODE",
+	"-DNTDDI_VERSION=NTDDI_WIN10_RS2",
+	"-D_WIN32_WINNT=0x0A00",
+	"-DWINVER=0x0A00",
+	"-DNDEBUG",
+	"-DNVALGRIND",
+	"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
+	"-DBASE_IMPLEMENTATION",
+	"-I../..",
+	"-Igen",
+	"-I../../third_party/boringssl/src/include",
+	"-fcolor-diagnostics",
+	"-fmerge-all-constants",
+	"-fcrash-diagnostics-dir=../../tools/clang/crashreports",
+	"-Xclang",
+	"-mllvm",
+	"-Xclang",
+	"-instcombine-lower-dbg-declare=0",
+	"-fcomplete-member-pointers",
+	"/Gy",
+	"/FS",
+	"/bigobj",
+	"/utf-8",
+	"/Zc:twoPhase",
+	"/Zc:sizedDealloc-",
+	"/X",
+	"-fmsc-version=1916",
+	"/guard:cf,nochecks",
+	"-m64",
+	"/Brepro",
+	"-Wno-builtin-macro-redefined",
+	"-D__DATE__=",
+	"-D__TIME__=",
+	"-D__TIMESTAMP__=",
+	"-Xclang",
+	"-fdebug-compilation-dir",
+	"-Xclang",
+	".",
+	"-no-canonical-prefixes",
+	"/W4",
+	"-Wimplicit-fallthrough",
+	"-Wunreachable-code",
+	"-Wthread-safety",
+	"-Wextra-semi",
+	"/WX",
+	"/wd4091",
+	"/wd4127",
+	"/wd4251",
+	"/wd4275",
+	"/wd4312",
+	"/wd4324",
+	"/wd4351",
+	"/wd4355",
+	"/wd4503",
+	"/wd4589",
+	"/wd4611",
+	"/wd4100",
+	"/wd4121",
+	"/wd4244",
+	"/wd4505",
+	"/wd4510",
+	"/wd4512",
+	"/wd4610",
+	"/wd4838",
+	"/wd4995",
+	"/wd4996",
+	"/wd4456",
+	"/wd4457",
+	"/wd4458",
+	"/wd4459",
+	"/wd4200",
+	"/wd4201",
+	"/wd4204",
+	"/wd4221",
+	"/wd4245",
+	"/wd4267",
+	"/wd4305",
+	"/wd4389",
+	"/wd4702",
+	"/wd4701",
+	"/wd4703",
+	"/wd4661",
+	"/wd4706",
+	"/wd4715",
+	"-Wno-missing-field-initializers",
+	"-Wno-unused-parameter",
+	"-Wno-c++11-narrowing",
+	"-Wno-unneeded-internal-declaration",
+	"-Wno-undefined-var-template",
+	"-Wno-nonportable-include-path",
+	"-Wno-ignored-pragma-optimize",
+	"-Wno-implicit-int-float-conversion",
+	"-Wno-final-dtor-non-final-class",
+	"-Wno-builtin-assume-aligned-alignment",
+	"-Wno-deprecated-copy",
+	"-Wno-non-c-typedef-for-linkage",
+	"-Wmax-tokens",
+	"/Z7",
+	"-gcodeview-ghash",
+	"-Xclang",
+	"-debug-info-kind=constructor",
+	"-ftrivial-auto-var-init=pattern",
+	"/MT",
+	"-Xclang",
+	"-add-plugin",
+	"-Xclang",
+	"find-bad-constructs",
+	"-Wheader-hygiene",
+	"-Wstring-conversion",
+	"-Wtautological-overlap-compare",
+	"-Wglobal-constructors",
+	"-Wexit-time-destructors",
+	"-Wshadow",
+	"-Wno-shorten-64-to-32",
+	"-Wexit-time-destructors",
+	"/O2",
+	"/Ob2",
+	"/Oy-",
+	"/Zc:inline",
+	"/Gw",
+	"/TP",
+	"/wd4577",
+	"/GR-",
+	"-I../../buildtools/third_party/libc++/trunk/include",
+	"/c",
+	"../../base/win/com_init_util.cc",
+	"/Foobj/base/base/com_init_util.obj",
+	"/Fdobj/base/base_cc.pdb",
+}
+
+var fullChromiumDebugBuildArgs = []string{
+	"..\\..\\third_party\\llvm-build\\Release+Asserts\\bin\\clang-cl.exe",
+	"/nologo",
+	"/showIncludes:user",
+	"-imsvc..\\..\\third_party\\depot_tools\\win_toolchain\\vs_files\\9ff60e43ba91947baca460d0ca3b1b980c3a2c23\\win_sdk",
+	"-DUSE_AURA=1",
+	"-DCR_CLANG_REVISION=\"n353803-99ac9ce7-1\"",
+	"-D_HAS_NODISCARD",
+	"-DCOMPONENT_BUILD",
+	"-D_LIBCPP_ABI_UNSTABLE",
+	"-D_LIBCPP_ENABLE_NODISCARD",
+	"-D_LIBCPP_NO_AUTO_LINK",
+	"-D__STD_C",
+	"-D_CRT_RAND_S",
+	"-D_CRT_SECURE_NO_DEPRECATE",
+	"-D_SCL_SECURE_NO_DEPRECATE",
+	"-D_ATL_NO_OPENGL",
+	"-D_WINDOWS",
+	"-DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS",
+	"-DPSAPI_VERSION=2",
+	"-DWIN32",
+	"-D_SECURE_ATL",
+	"-DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP",
+	"-DWIN32_LEAN_AND_MEAN",
+	"-DNOMINMAX",
+	"-D_UNICODE",
+	"-DUNICODE",
+	"-DNTDDI_VERSION=NTDDI_WIN10_RS2",
+	"-D_WIN32_WINNT=0x0A00",
+	"-DWINVER=0x0A00",
+	"-D_DEBUG",
+	"-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+	"-I../..",
+	"-Igen",
+	"-fcolor-diagnostics",
+	"-fmerge-all-constants",
+	"-fcrash-diagnostics-dir=../../tools/clang/crashreports",
+	"-Xclang",
+	"-mllvm",
+	"-Xclang",
+	"-instcombine-lower-dbg-declare=0",
+	"-fcomplete-member-pointers",
+	"/Gy",
+	"/FS",
+	"/bigobj",
+	"/utf-8",
+	"/Zc:twoPhase",
+	"/Zc:sizedDealloc-",
+	"/X",
+	"-fmsc-version=1916",
+	"/guard:cf,nochecks",
+	"/Zc:dllexportInlines-",
+	"-m64",
+	"/Brepro",
+	"-Wno-builtin-macro-redefined",
+	"-D__DATE__=",
+	"-D__TIME__=",
+	"-D__TIMESTAMP__=",
+	"-Xclang",
+	"-fdebug-compilation-dir",
+	"-Xclang",
+	".",
+	"-no-canonical-prefixes",
+	"/W4",
+	"-Wimplicit-fallthrough",
+	"-Wunreachable-code",
+	"-Wthread-safety",
+	"-Wextra-semi",
+	"/WX",
+	"/wd4091",
+	"/wd4127",
+	"/wd4251",
+	"/wd4275",
+	"/wd4312",
+	"/wd4324",
+	"/wd4351",
+	"/wd4355",
+	"/wd4503",
+	"/wd4589",
+	"/wd4611",
+	"/wd4100",
+	"/wd4121",
+	"/wd4244",
+	"/wd4505",
+	"/wd4510",
+	"/wd4512",
+	"/wd4610",
+	"/wd4838",
+	"/wd4995",
+	"/wd4996",
+	"/wd4456",
+	"/wd4457",
+	"/wd4458",
+	"/wd4459",
+	"/wd4200",
+	"/wd4201",
+	"/wd4204",
+	"/wd4221",
+	"/wd4245",
+	"/wd4267",
+	"/wd4305",
+	"/wd4389",
+	"/wd4702",
+	"/wd4701",
+	"/wd4703",
+	"/wd4661",
+	"/wd4706",
+	"/wd4715",
+	"-Wno-missing-field-initializers",
+	"-Wno-unused-parameter",
+	"-Wno-c++11-narrowing",
+	"-Wno-unneeded-internal-declaration",
+	"-Wno-undefined-var-template",
+	"-Wno-nonportable-include-path",
+	"-Wno-ignored-pragma-optimize",
+	"-Wno-implicit-int-float-conversion",
+	"-Wno-final-dtor-non-final-class",
+	"-Wno-builtin-assume-aligned-alignment",
+	"-Wno-deprecated-copy",
+	"-Wno-non-c-typedef-for-linkage",
+	"-Wmax-tokens",
+	"/Od",
+	"/Ob0",
+	"/GF",
+	"/Z7",
+	"-gcodeview-ghash",
+	"-Xclang",
+	"-debug-info-kind=constructor",
+	"-ftrivial-auto-var-init=pattern",
+	"/MDd",
+	"-Xclang",
+	"-add-plugin",
+	"-Xclang",
+	"find-bad-constructs",
+	"-Wheader-hygiene",
+	"-Wstring-conversion",
+	"-Wtautological-overlap-compare",
+	"-Wno-unused-const-variable",
+	"-Wno-unused-function",
+	"-Wno-undefined-bool-conversion",
+	"-Wno-tautological-undefined-compare",
+	"/TP",
+	"/wd4577",
+	"/GR-",
+	"-I../../buildtools/third_party/libc++/trunk/include",
+	"/c",
+	"../../base/third_party/double_conversion/double-conversion/fast-dtoa.cc",
+	"/Foobj/base/third_party/double_conversion/double_conversion/fast-dtoa.obj",
+	"/Fdobj/base/third_party/double_conversion/double_conversion_cc.pdb",
+}
+
+var fullLLVMReleaseBuildArgs = []string{
+	"C:\\b\\s\\w\\ir\\cache\\builder\\v8\\third_party\\llvm-build\\Release+Asserts\\bin\\clang-cl.exe",
+	"/nologo",
+	"-TP",
+	"-DGTEST_HAS_RTTI=0",
+	"-DUNICODE",
+	"-D_CRT_NONSTDC_NO_DEPRECATE",
+	"-D_CRT_NONSTDC_NO_WARNINGS",
+	"-D_CRT_SECURE_NO_DEPRECATE",
+	"-D_CRT_SECURE_NO_WARNINGS",
+	"-D_HAS_EXCEPTIONS=0",
+	"-D_SCL_SECURE_NO_DEPRECATE",
+	"-D_SCL_SECURE_NO_WARNINGS",
+	"-D_UNICODE",
+	"-D__STDC_CONSTANT_MACROS",
+	"-D__STDC_FORMAT_MACROS",
+	"-D__STDC_LIMIT_MACROS",
+	"-Itools\\opt",
+	"-IC:\\b\\s\\w\\ir\\cache\\builder\\emscripten-releases\\llvm-project\\llvm\\tools\\opt",
+	"-Iinclude",
+	"-IC:\\b\\s\\w\\ir\\cache\\builder\\emscripten-releases\\llvm-project\\llvm\\include",
+	"-Wno-nonportable-include-path",
+	"/Zc:inline",
+	"/Zc:strictStrings",
+	"/Oi",
+	"/Zc:rvalueCast",
+	"/Brepro",
+	"/W4",
+	"-Wextra",
+	"-Wno-unused-parameter",
+	"-Wwrite-strings",
+	"-Wcast-qual",
+	"-Wmissing-field-initializers",
+	"-Wimplicit-fallthrough",
+	"-Wcovered-switch-default",
+	"-Wno-noexcept-type",
+	"-Wdelete-non-virtual-dtor",
+	"-Wstring-conversion",
+	"/Gw",
+	"/MD",
+	"/O2",
+	"/Ob2",
+	"/EHs-c-",
+	"/GR-",
+	"-UNDEBUG",
+	"-std:c++14",
+	"/showIncludes",
+	"/Fotools\\opt\\CMakeFiles\\opt.dir\\PrintSCC.cpp.obj",
+	"/Fdtools\\opt\\CMakeFiles\\opt.dir\\",
+	"-c",
+	"C:\\b\\s\\w\\ir\\cache\\builder\\emscripten-releases\\llvm-project\\llvm\\tools\\opt\\PrintSCC.cpp",
+}
diff --git a/remoteexec/exec.go b/remoteexec/exec.go
index c1ad294..6424e48 100644
--- a/remoteexec/exec.go
+++ b/remoteexec/exec.go
@@ -39,9 +39,10 @@
 )
 
 type request struct {
-	f        *Adapter
-	gomaReq  *gomapb.ExecReq
-	gomaResp *gomapb.ExecResp
+	f         *Adapter
+	userGroup string
+	gomaReq   *gomapb.ExecReq
+	gomaResp  *gomapb.ExecResp
 
 	client Client
 	cas    *cas.CAS
@@ -617,6 +618,7 @@
 	wrapperInputRootAbsolutePath
 	wrapperNsjailChroot
 	wrapperWin
+	wrapperWinInputRootAbsolutePath
 )
 
 func (w wrapperType) String() string {
@@ -629,6 +631,8 @@
 		return "wrapper-nsjail-chroot"
 	case wrapperWin:
 		return "wrapper-win"
+	case wrapperWinInputRootAbsolutePath:
+		return "wrapper-win-input-root-absolute-path"
 	default:
 		return fmt.Sprintf("wrapper-unknown-%d", int(w))
 	}
@@ -692,7 +696,13 @@
 			}
 		}
 	case cmdpb.CmdDescriptor_WINDOWS:
-		wt = wrapperWin
+		err = relocatableReq(ctx, cmdConfig, r.filepath, r.gomaReq.Arg, r.gomaReq.Env)
+		if err != nil {
+			wt = wrapperWinInputRootAbsolutePath
+			logger.Infof("non relocatable: %v", err)
+		} else {
+			wt = wrapperWin
+		}
 	default:
 		return fmt.Errorf("bad path type: %v", pathType)
 	}
@@ -762,6 +772,21 @@
 				isExecutable: true,
 			},
 		}
+	case wrapperWinInputRootAbsolutePath:
+		logger.Infof("run on win with InputRootAbsolutePath")
+		// https://cloud.google.com/remote-build-execution/docs/remote-execution-properties#container_properties
+		r.addPlatformProperty(ctx, "InputRootAbsolutePath", r.tree.RootDir())
+		wn, data, err := wrapperForWindows(ctx)
+		if err != nil {
+			return err
+		}
+		files = []fileDesc{
+			{
+				name:         wn,
+				data:         data,
+				isExecutable: true,
+			},
+		}
 	default:
 		return fmt.Errorf("bad wrapper type: %v", wt)
 	}
@@ -835,7 +860,7 @@
 	case "gcc", "g++", "clang", "clang++":
 		return gccRelocatableReq(filepath, args, envs)
 	case "clang-cl":
-		return clangclRelocatableReq(args, envs)
+		return clangclRelocatableReq(filepath, args, envs)
 	case "javac":
 		// Currently, javac in Chromium is fully relocatable. Simpler just to
 		// support only the relocatable case and let it fail if the client passed
diff --git a/remoteexec/gcc.go b/remoteexec/gcc.go
index 4903faf..6f3d519 100644
--- a/remoteexec/gcc.go
+++ b/remoteexec/gcc.go
@@ -163,6 +163,7 @@
 		case strings.HasPrefix(arg, "--param="):
 		case arg == "-MMD" || arg == "-MD" || arg == "-M":
 		case arg == "-Qunused-arguments":
+		case arg == "-static-libgcc":
 			continue
 
 		case arg == "-o":
diff --git a/remoteexec/gcc_test.go b/remoteexec/gcc_test.go
index 86e902d..4e6a3a0 100644
--- a/remoteexec/gcc_test.go
+++ b/remoteexec/gcc_test.go
@@ -275,6 +275,12 @@
 				"-fcrash-diagnostics-dir=/b/c/b/linux/src/tools/clang/crashreports"),
 			relocatable: false,
 		},
+		{
+			desc: "static-libgcc",
+			args: append(append([]string{}, baseReleaseArgs...),
+				"-static-libgcc"),
+			relocatable: true,
+		},
 	} {
 		t.Run(tc.desc, func(t *testing.T) {
 			err := gccRelocatableReq(posixpath.FilePath{}, tc.args, tc.envs)
