diff options
author | kan <kan@FreeBSD.org> | 2007-05-19 01:19:51 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2007-05-19 01:19:51 +0000 |
commit | 1f9ea4d0a40cca64d60cf4dab152349da7b9dddf (patch) | |
tree | 0cb530c9c38af219e6dda2994c078b6b2b9ad853 /contrib/gcc/mkmap-flat.awk | |
parent | 4895159b2b4f648051c1f139faa7b6dc50c2bfcb (diff) | |
download | FreeBSD-src-1f9ea4d0a40cca64d60cf4dab152349da7b9dddf.zip FreeBSD-src-1f9ea4d0a40cca64d60cf4dab152349da7b9dddf.tar.gz |
GCC 4.2.0 release.
Diffstat (limited to 'contrib/gcc/mkmap-flat.awk')
-rw-r--r-- | contrib/gcc/mkmap-flat.awk | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/contrib/gcc/mkmap-flat.awk b/contrib/gcc/mkmap-flat.awk index 4ff5bf5..09f7cce 100644 --- a/contrib/gcc/mkmap-flat.awk +++ b/contrib/gcc/mkmap-flat.awk @@ -15,11 +15,16 @@ # # You should have received a copy of the GNU General Public License # along with GCC; see the file COPYING. If not, write to the Free -# Software Foundation, 59 Temple Place - Suite 330, Boston MA -# 02111-1307, USA. +# Software Foundation, 51 Franklin Street, Fifth Floor, Boston MA +# 02110-1301, USA. BEGIN { state = "nm"; + excluding = 0; + if (leading_underscore) + prefix = "_"; + else + prefix = ""; } # Remove comment and blank lines. @@ -53,21 +58,30 @@ state == "nm" { # for beginning and ending each section, and %inherit markers for # describing version inheritence. A symbol may appear in more than # one symbol version, and the last seen takes effect. +# The magic version name '%exclude' causes all the symbols given that +# version to be dropped from the output (unless a later version overrides). NF == 3 && $1 == "%inherit" { next; } NF == 2 && $2 == "{" { + if ($1 == "%exclude") + excluding = 1; next; } $1 == "}" { + excluding = 0; next; } { - export[$1] = 1; + sym = prefix $1; + if (excluding) + delete export[sym]; + else + export[sym] = 1; next; } |