| 
									
										
										
										
											2016-05-24 03:02:34 +08:00
										 |  |  | #! /bin/bash | 
					
						
							|  |  |  | # Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2018-12-06 20:03:50 +08:00
										 |  |  | # Licensed under the Apache License 2.0 (the "License").  You may not use | 
					
						
							| 
									
										
										
										
											2016-05-24 03:02:34 +08:00
										 |  |  | # this file except in compliance with the License.  You can obtain a copy | 
					
						
							|  |  |  | # in the file LICENSE in the source distribution or at | 
					
						
							|  |  |  | # https://www.openssl.org/source/license.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Find unused error function-names and reason-codes, and edit them | 
					
						
							|  |  |  | # out of the source.  Doesn't handle line-wrapping, might have to do | 
					
						
							|  |  |  | # some manual cleanups to fix compile errors. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export X1=/tmp/f.1.$$ | 
					
						
							|  |  |  | export X2=/tmp/f.2.$$ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-15 09:20:54 +08:00
										 |  |  | case "$1" in | 
					
						
							|  |  |  |     -f) | 
					
						
							|  |  |  |         PAT='_F_' | 
					
						
							|  |  |  |         echo Functions only | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     -[er]) | 
					
						
							|  |  |  |         PAT='_R_' | 
					
						
							|  |  |  |         echo Reason codes only | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     "") | 
					
						
							|  |  |  |         PAT='_[FR]_' | 
					
						
							|  |  |  |         echo Function and reasons | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     *) | 
					
						
							|  |  |  |         echo "Usage error; one of -[efr] required." | 
					
						
							|  |  |  |         exit 1; | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  | esac | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-24 03:02:34 +08:00
										 |  |  | cd include/openssl || exit 1 | 
					
						
							| 
									
										
										
										
											2017-04-15 09:20:54 +08:00
										 |  |  | grep "$PAT" *  | grep -v ERR_FATAL_ERROR | awk '{print $3;}' | sort -u >$X1 | 
					
						
							| 
									
										
										
										
											2016-05-24 03:02:34 +08:00
										 |  |  | cd ../.. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | for F in `cat $X1` ; do | 
					
						
							|  |  |  |     git grep -l --full-name -F $F >$X2 | 
					
						
							|  |  |  |     NUM=`wc -l <$X2` | 
					
						
							|  |  |  |     test $NUM -gt 2 && continue | 
					
						
							| 
									
										
										
										
											2016-07-02 08:10:03 +08:00
										 |  |  |     if grep -q $F crypto/err/openssl.ec ; then | 
					
						
							|  |  |  |         echo Possibly unused $F found in openssl.ec | 
					
						
							|  |  |  |         continue | 
					
						
							|  |  |  |     fi | 
					
						
							| 
									
										
										
										
											2016-05-24 03:02:34 +08:00
										 |  |  |     echo $F | 
					
						
							|  |  |  |     for FILE in `cat $X2` ; do | 
					
						
							|  |  |  |         grep -v -w $F <$FILE >$FILE.new | 
					
						
							|  |  |  |         mv $FILE.new $FILE | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | rm $X1 $X2 |