[lttng-dev] [LTTNG-TOOLS PATCH] Fix: protect visibility of filter-parser functions

Julien Desfossez jdesfossez at efficios.com
Fri Aug 10 17:19:53 EDT 2012


From: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>

Some functions share the same name between ctf-parser/lexer and
filter-parser/lexer.

This patch protects the visibility of the functions with the same name
to avoid linkage confusions.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
Signed-off-by: Julien Desfossez <jdesfossez at efficios.com>
---
 src/lib/lttng-ctl/filter-parser.y |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/lib/lttng-ctl/filter-parser.y b/src/lib/lttng-ctl/filter-parser.y
index ea43352..8be5e43 100644
--- a/src/lib/lttng-ctl/filter-parser.y
+++ b/src/lib/lttng-ctl/filter-parser.y
@@ -32,13 +32,19 @@
 #include "filter-ast.h"
 #include "filter-parser.h"
 
+__attribute__((visibility("protected")))
 int yydebug;
 int filter_parser_debug = 0;
 
+__attribute__((visibility("protected")))
 int yyparse(struct filter_parser_ctx *parser_ctx);
+__attribute__((visibility("protected")))
 int yylex(union YYSTYPE *yyval, struct filter_parser_ctx *parser_ctx);
+__attribute__((visibility("protected")))
 int yylex_init_extra(struct filter_parser_ctx *parser_ctx, yyscan_t * ptr_yy_globals);
+__attribute__((visibility("protected")))
 int yylex_destroy(yyscan_t yyparser_ctx);
+__attribute__((visibility("protected")))
 void yyrestart(FILE * in_str, yyscan_t parser_ctx);
 
 struct gc_string {
@@ -55,6 +61,7 @@ static const char *node_type_to_str[] = {
 	[ NODE_UNARY_OP ] = "NODE_UNARY_OP",
 };
 
+__attribute__((visibility("protected")))
 const char *node_type(struct filter_node *node)
 {
 	if (node->type < NR_NODE_TYPES)
@@ -85,6 +92,7 @@ static struct gc_string *gc_string_alloc(struct filter_parser_ctx *parser_ctx,
  * gsrc will be garbage collected immediately, and gstr might be.
  * Should only be used to append characters to a string literal or constant.
  */
+__attribute__((visibility("protected")))
 struct gc_string *gc_string_append(struct filter_parser_ctx *parser_ctx,
 				   struct gc_string *gstr,
 				   struct gc_string *gsrc)
@@ -114,6 +122,7 @@ struct gc_string *gc_string_append(struct filter_parser_ctx *parser_ctx,
 	return gstr;
 }
 
+__attribute__((visibility("protected")))
 void setstring(struct filter_parser_ctx *parser_ctx, YYSTYPE *lvalp, const char *src)
 {
 	lvalp->gs = gc_string_alloc(parser_ctx, strlen(src) + 1);
@@ -175,11 +184,13 @@ static struct filter_node *make_op_node(struct filter_parser_ctx *scanner,
 	return node;
 }
 
+__attribute__((visibility("protected")))
 void yyerror(struct filter_parser_ctx *parser_ctx, const char *str)
 {
 	fprintf(stderr, "error %s\n", str);
 }
  
+__attribute__((visibility("protected")))
 int yywrap(void)
 {
 	return 1;
-- 
1.7.10.4




More information about the lttng-dev mailing list