34 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash -eu
 | |
| # Copyright 2016 Google Inc.
 | |
| #
 | |
| # Licensed under the Apache License, Version 2.0 (the "License");
 | |
| # you may not use this file except in compliance with the License.
 | |
| # You may obtain a copy of the License at
 | |
| #
 | |
| #      http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS,
 | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| #
 | |
| ################################################################################
 | |
| 
 | |
| # First, build RE2.
 | |
| # N.B., we don't follow the standard incantation for building RE2
 | |
| # (i.e., `make && make test && make install && make testinstall`),
 | |
| # because some of the targets doesn't use $CXXFLAGS properly, which
 | |
| # causes compilation to fail. The obj/libre2.a target is all we
 | |
| # really need for our fuzzer, so that's all we build. Hopefully
 | |
| # this won't cause the fuzzer to fail erroneously due to not running
 | |
| # upstream's tests first to be sure things compiled correctly.
 | |
| CXXFLAGS="$CXXFLAGS -O2"
 | |
| make clean
 | |
| make -j$(nproc) obj/libre2.a
 | |
| 
 | |
| # Second, build the fuzzer (distributed with RE2).
 | |
| $CXX $CXXFLAGS -std=c++11 -I. \
 | |
| 	re2/fuzzing/re2_fuzzer.cc -o $OUT/re2_fuzzer \
 | |
| 	$LIB_FUZZING_ENGINE obj/libre2.a
 |