⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 import_file.awk

📁 glibc 2.9,最新版的C语言库函数
💻 AWK
字号:
BEGIN {	getline;	while (!match($0, "^/[/*] static char cvs_id")) {		print;		getline;	}	getline;	while (!match($0, "^// WARRANTY DISCLAIMER")) {		print;		if (!getline) {			break;		}	}	if (getline)	{		printf								      \"// Redistribution and use in source and binary forms, with or without\n"     \"// modification, are permitted provided that the following conditions are\n" \"// met:\n"								      \"//\n"									      \"// * Redistributions of source code must retain the above copyright\n"	      \"// notice, this list of conditions and the following disclaimer.\n"	      \"//\n"									      \"// * Redistributions in binary form must reproduce the above copyright\n"    \"// notice, this list of conditions and the following disclaimer in the\n"    \"// documentation and/or other materials provided with the distribution.\n"   \"//\n"									      \"// * The name of Intel Corporation may not be used to endorse or promote\n"  \"// products derived from this software without specific prior written\n"     \"// permission.\n\n";		if (LICENSE_ONLY == "y") {			do {				print;			} while (getline);		}	}}/^[.]data/ {	print "RODATA";	next;}/^([a-zA-Z_0-9]*_(tb[l0-9]|Tt|[tT]able|data|low|coeffs|constants|CONSTANTS|reduction|Stirling)(_?([1-9cdimpqstPQT]+|tail))?|(Constants|Poly|coeff)_.+|(double_sin_?cos|double_cis)[fl]?_.+):/ {	table_name=substr($1,1,length($1)-1);	printf "LOCAL_OBJECT_START(%s)\n", table_name;	getline;	while (!match($0, "^[ \t]*data")) {		print;		getline;	}	while (match($0, "(//|^[ \t]*data)")) {		print;		getline;	}	printf "LOCAL_OBJECT_END(%s)\n\n", table_name;	next;}/^[.]proc[ \t]+__libm_(error_region|callout)/ {	printf "LOCAL_LIBM_ENTRY(%s)\n", $2;	getline;	next;}/^[.]endp[ \t]+__libm_(error_region|callout)/ {	printf "LOCAL_LIBM_END(%s)\n", $2;	next;}/^[.]global/ {	split($2, part, "#");	name=part[1];	if (match(name, "^"FUNC"$")) {		next;	}}/^[.]proc/ {	split($2, part, "#");	name=part[1];	if (match(name, "^"FUNC"$")) {		local_funcs=("^("			\			     "cis|cisf|cisl"		\			     "|cabs|cabsf|cabsl"	\			     "|cot|cotf|cotl"		\			     ")$");		ieee754_funcs=("^("					  \			       "atan2|atan2f|atan2l|atanl"		  \			       "|cos|cosf|cosl"				  \			       "|cosh|coshf|coshl"			  \			       "|exp|expf|expl"				  \			       "|exp10|exp10f|exp10l"			  \			       "|expm1|expm1f|expm1l"			  \			       "|fmod|fmodf|fmodl"			  \			       "|hypot|hypotf|hypotl"			  \			       "|fabs|fabsf|fabsl"			  \			       "|floor|floorf|floorl"			  \			       "|log1p|log1pf|log1pl"			  \			       "|log|log10|log10f|log10l|log2l|logf|logl" \			       "|remainder|remainderf|remainderl|"	  \			       "|rint|rintf|rintl|"			  \			       "|scalb|scalbf|scalbl"			  \			       "|sin|sinf|sinl"				  \			       "|sincos|sincosf|sincosl"		  \			       "|sinh|sinhf|sinhl"			  \			       "|sqrt|sqrtf|sqrtl"			  \			       "|tan|tanf|tanl"				  \			       ")$");		if (match(name, ieee754_funcs)) {			type="GLOBAL_IEEE754";		} else if (match (name, local_funcs)) {			type="LOCAL_LIBM";		} else {			type="GLOBAL_LIBM";		}		printf "%s_ENTRY(%s)\n", type, name;		getline;		while (!match($0, "^"name"#?:")) {			getline;		}		getline;		while (!match($0, "^.endp")) {			print			getline;		}		printf "%s_END(%s)\n", type, name;		if (match(name, "^exp10[fl]?$")) {			t=substr(name,6)			printf "weak_alias (exp10%s, pow10%s)\n", t, t		}		next;	}}/^[a-zA-Z_]+:/ {	split($1, part, ":");	name=part[1];	if (match(name, "^"FUNC"$")) {		printf "GLOBAL_LIBM_ENTRY(%s)\n", name;		getline;		while (!match($0, "^"name"#?:")) {			getline;		}		getline;		while (!match($0, "^.endp")) {			print			getline;		}		getline;		printf "GLOBAL_LIBM_END(%s)\n", name;		next;	}}{ print }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -