even without cpp -dD scan for a number of common signal names
enables “kill -TERM 1” on solaris with the SUNpro 5.8 compiler
This commit is contained in:
		
							
								
								
									
										34
									
								
								Build.sh
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								Build.sh
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| #!/bin/sh | #!/bin/sh | ||||||
| # $MirOS: src/bin/mksh/Build.sh,v 1.200 2007/06/05 20:57:46 tg Exp $ | # $MirOS: src/bin/mksh/Build.sh,v 1.201 2007/06/05 21:10:52 tg Exp $ | ||||||
| #- | #- | ||||||
| # Environment used: CC CFLAGS CPP CPPFLAGS LDFLAGS LIBS NOWARN NROFF TARGET_OS | # Environment used: CC CFLAGS CPP CPPFLAGS LDFLAGS LIBS NOWARN NROFF TARGET_OS | ||||||
| # CPPFLAGS recognised: MKSH_SMALL MKSH_ASSUME_UTF8 MKSH_NEED_MKNOD MKSH_NOPWNAM | # CPPFLAGS recognised: MKSH_SMALL MKSH_ASSUME_UTF8 MKSH_NEED_MKNOD MKSH_NOPWNAM | ||||||
| @@ -744,8 +744,12 @@ ed x <x 2>/dev/null | grep 3 >/dev/null 2>&1 && \ | |||||||
|     check_categories=$check_categories,oldish-ed |     check_categories=$check_categories,oldish-ed | ||||||
| rm -f x | rm -f x | ||||||
|  |  | ||||||
| test 1 = $NEED_MKSH_SIGNAME && if test $HAVE_CPP_DD = yes; then | if test 1 = $NEED_MKSH_SIGNAME; then | ||||||
| 	$e Generating list of signal names... | 	if test $HAVE_CPP_DD = yes; then | ||||||
|  | 		$e Generating list of signal names... | ||||||
|  | 	else | ||||||
|  | 		$e No list of signal names available via cpp. Falling back... | ||||||
|  | 	fi | ||||||
| 	sigseen=: | 	sigseen=: | ||||||
| 	NSIG=`( echo '#include <signal.h>'; echo '#ifndef NSIG'; \ | 	NSIG=`( echo '#include <signal.h>'; echo '#ifndef NSIG'; \ | ||||||
| 	    echo '#define NSIG _NSIG'; echo '#endif'; echo mksh_cfg: NSIG ) | \ | 	    echo '#define NSIG _NSIG'; echo '#endif'; echo mksh_cfg: NSIG ) | \ | ||||||
| @@ -756,11 +760,19 @@ test 1 = $NEED_MKSH_SIGNAME && if test $HAVE_CPP_DD = yes; then | |||||||
| 	esac | 	esac | ||||||
| 	NSIG=`printf %d "$NSIG" 2>/dev/null` | 	NSIG=`printf %d "$NSIG" 2>/dev/null` | ||||||
| 	test $h = 1 && printf "NSIG=$NSIG ... " | 	test $h = 1 && printf "NSIG=$NSIG ... " | ||||||
| 	test $NSIG -gt 1 || exit 1 | 	if test $HAVE_CPP_DD = yes && test $NSIG -gt 1; then | ||||||
| 	echo '#include <signal.h>' | vq "$CPP $CPPFLAGS -dD" | \ | 		signames=`echo '#include <signal.h>' | \ | ||||||
| 	    grep '[	 ]SIG[A-Z0-9]*[	 ]' | \ | 		    vq "$CPP $CPPFLAGS -dD" | \ | ||||||
| 	    sed 's/^\(.*[	 ]SIG\)\([A-Z0-9]*\)\([	 ].*\)$/\2/' | \ | 		    grep '[	 ]SIG[A-Z0-9]*[	 ]' | \ | ||||||
| 	    sort | while read name; do | 		    sed 's/^\(.*[	 ]SIG\)\([A-Z0-9]*\)\([	 ].*\)$/\2/' | \ | ||||||
|  | 		    sort` | ||||||
|  | 	else | ||||||
|  | 		signames="ABRT ALRM BUS CHLD CLD CONT EMT FPE HUP ILL INT IO" | ||||||
|  | 		signames="$signames IOT KILL PIPE PWR QUIT SEGV SYS STOP TERM" | ||||||
|  | 		signames="$signames TRAP TSTP TTIN TTOU URG USR1 USR2 WINCH" | ||||||
|  | 	fi | ||||||
|  | 	test $NSIG -gt 1 || signames= | ||||||
|  | 	for name in $signames; do | ||||||
| 		( echo '#include <signal.h>'; echo mksh_cfg: SIG$name ) | \ | 		( echo '#include <signal.h>'; echo mksh_cfg: SIG$name ) | \ | ||||||
| 		    vq "$CPP $CPPFLAGS" | grep mksh_cfg: | \ | 		    vq "$CPP $CPPFLAGS" | grep mksh_cfg: | \ | ||||||
| 		    sed 's/^mksh_cfg:[	 ]*\([0-9x]*\).*$/\1:'$name/ | 		    sed 's/^mksh_cfg:[	 ]*\([0-9x]*\).*$/\1:'$name/ | ||||||
| @@ -771,15 +783,11 @@ test 1 = $NEED_MKSH_SIGNAME && if test $HAVE_CPP_DD = yes; then | |||||||
| 		*:$nr:*) ;; | 		*:$nr:*) ;; | ||||||
| 		*)	echo "		{ $nr, \"$name\" }," | 		*)	echo "		{ $nr, \"$name\" }," | ||||||
| 			sigseen=$sigseen$nr: | 			sigseen=$sigseen$nr: | ||||||
| 			test $h = 1 && printf "$nr " >&2 | 			test $h = 1 && printf "$name=$nr " >&2 | ||||||
| 			;; | 			;; | ||||||
| 		esac | 		esac | ||||||
| 	done 2>&1 >signames.inc | 	done 2>&1 >signames.inc | ||||||
| 	grep ', ' signames.inc >/dev/null 2>&1 || exit 1 |  | ||||||
| 	$e done. | 	$e done. | ||||||
| else |  | ||||||
| 	$e No list of signal names available via cpp. |  | ||||||
| 	printf >signames.inc |  | ||||||
| fi | fi | ||||||
|  |  | ||||||
| addsrcs HAVE_SETMODE setmode.c | addsrcs HAVE_SETMODE setmode.c | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user