* ld.texinfo (VERSION scripts): Symbol names are globbing patterns.

* ldgram.y (lang_new_vers_regex):  Rename to lang_new_vers_pattern;
	the pattern in question is not a regexp.
	* ldlang.c:  Likewise.
	* ldlang.h:  Likewise.
	* ldlex.l (V_IDENTIFIER):  Allow '[', ']', '-', '!', and '^' also.
This commit is contained in:
Alan Modra 2002-02-14 04:24:33 +00:00
parent 1e30956ea4
commit 313e35ee7c
6 changed files with 23 additions and 11 deletions

View file

@ -1,3 +1,12 @@
2002-02-14 Phil Edwards <pme@gcc.gnu.org>
* ld.texinfo (VERSION scripts): Symbol names are globbing patterns.
* ldgram.y (lang_new_vers_regex): Rename to lang_new_vers_pattern;
the pattern in question is not a regexp.
* ldlang.c: Likewise.
* ldlang.h: Likewise.
* ldlex.l (V_IDENTIFIER): Allow '[', ']', '-', '!', and '^' also.
2002-02-12 Jakub Jelinek <jakub@redhat.com>
* ldlex.l (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): New tokens.
@ -230,7 +239,7 @@
* po/ld.pot: Regenerate.
2002-01-29 Chris Demetriou <cgd@broadcom.com>
Mitch Lichtenberg <mpl@broadcom.com>
Mitch Lichtenberg <mpl@broadcom.com>
* emulparams/elf32bmip.sh (EXTRA_EM_FILE): Define to be mipself.
* emultempl/mipself.em: New file to handle MIPS ELF embedded

View file

@ -1,7 +1,7 @@
\input texinfo
@setfilename ld.info
@c Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
@c 2001 Free Software Foundation, Inc.
@c 2001, 2002 Free Software Foundation, Inc.
@syncodeindex ky cp
@include configdoc.texi
@c (configdoc.texi is generated by the Makefile)
@ -58,7 +58,7 @@ END-INFO-DIR-ENTRY
This file documents the @sc{gnu} linker LD version @value{VERSION}.
Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000,
2001 Free Software Foundation, Inc.
2001, 2002 Free Software Foundation, Inc.
@ignore
@ -3672,7 +3672,10 @@ This example version script defines three version nodes. The first
version node defined is @samp{VERS_1.1}; it has no other dependencies.
The script binds the symbol @samp{foo1} to @samp{VERS_1.1}. It reduces
a number of symbols to local scope so that they are not visible outside
of the shared library.
of the shared library; this is done using wildcard patterns, so that any
symbol whose name begins with @samp{old}, @samp{original}, or @samp{new}
is matched. The wildcard patterns available are the same as those used
in the shell when matching filenames (also known as ``globbing'').
Next, the version script defines node @samp{VERS_1.2}. This node
depends upon @samp{VERS_1.1}. The script binds the symbol @samp{foo2}

View file

@ -1116,11 +1116,11 @@ vers_tag:
vers_defns:
VERS_IDENTIFIER
{
$$ = lang_new_vers_regex (NULL, $1, ldgram_vers_current_lang);
$$ = lang_new_vers_pattern (NULL, $1, ldgram_vers_current_lang);
}
| vers_defns ';' VERS_IDENTIFIER
{
$$ = lang_new_vers_regex ($1, $3, ldgram_vers_current_lang);
$$ = lang_new_vers_pattern ($1, $3, ldgram_vers_current_lang);
}
| EXTERN NAME '{'
{

View file

@ -5020,7 +5020,7 @@ lang_vers_match_lang_java (expr, sym)
/* This is called for each variable name or match expression. */
struct bfd_elf_version_expr *
lang_new_vers_regex (orig, new, lang)
lang_new_vers_pattern (orig, new, lang)
struct bfd_elf_version_expr *orig;
const char *new;
const char *lang;
@ -5193,7 +5193,7 @@ lang_do_version_exports_section ()
p = contents;
while (p < contents + len)
{
greg = lang_new_vers_regex (greg, p, NULL);
greg = lang_new_vers_pattern (greg, p, NULL);
p = strchr (p, '\0') + 1;
}
@ -5204,7 +5204,7 @@ lang_do_version_exports_section ()
bfd_get_section_flags (is->the_bfd, sec) | SEC_EXCLUDE);
}
lreg = lang_new_vers_regex (NULL, "*", NULL);
lreg = lang_new_vers_pattern (NULL, "*", NULL);
lang_register_vers_node (command_line.version_exports_section,
lang_new_vers_node (greg, lreg), NULL);
}

View file

@ -463,7 +463,7 @@ extern void lang_leave_overlay
extern struct bfd_elf_version_tree *lang_elf_version_info;
extern struct bfd_elf_version_expr *lang_new_vers_regex
extern struct bfd_elf_version_expr *lang_new_vers_pattern
PARAMS ((struct bfd_elf_version_expr *, const char *, const char *));
extern struct bfd_elf_version_tree *lang_new_vers_node
PARAMS ((struct bfd_elf_version_expr *, struct bfd_elf_version_expr *));

View file

@ -116,7 +116,7 @@ WHITE [ \t\n\r]+
NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~]
V_TAG [.$_a-zA-Z][._a-zA-Z0-9]*
V_IDENTIFIER [*?.$_a-zA-Z]([*?.$_a-zA-Z0-9]|::)*
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^]([*?.$_a-zA-Z0-9\[\]\-\!\^]|::)*
%s SCRIPT
%s EXPRESSION