[gnutls-dev][PATCH] libtasn1 has common symbol yyparse, etc.

David Schleef David Schleef <ds@schleef.org>
Thu Sep 19 09:27:01 2002


While debugging an application based on GStreamer, I noticed
that libgstreamer and libtasn1 have a bunch of yacc symbols
that conflict.  After reading the bison (and flex) manuals,
I learned that one needs to use the -p flag to bison (-P for
flex) to tell bison to prefix each symbol, so they don't
conflict with applications that use the library.

Included is a patch to add a prefix to the yy* symbols.  I
*think* this is all that is necessary, after regenerating
ASN1.c, but let me know if there are any issues.  (E.g.,
like it breaks everything.)



dave...



Index: lib/Makefile.am
===================================================================
RCS file: /cvs/gnutls/libtasn1/lib/Makefile.am,v
retrieving revision 1.6
diff -u -r1.6 Makefile.am
--- lib/Makefile.am	14 Jun 2002 20:19:07 -0000	1.6
+++ lib/Makefile.am	19 Sep 2002 00:13:37 -0000
@@ -6,6 +6,8 @@
 
 lib_LTLIBRARIES = libtasn1.la
 
+BISON = bison -p_asn_yy
+
 # Separate so we can create the documentation
 COBJECTS = ASN1.y decoding.c gstr.c errors.c parser_aux.c \
            structure.c element.c coding.c
@@ -20,5 +22,8 @@
 	do echo -n "Creating documentation for file $$i... " && ../doc/scripts/gdoc -tex $$i >> asn1-api.tex \
 	&& echo "ok"; \
 	done
+
+ASN1.c: ASN1.y
+	$(BISON) $^ -o $@
 
 all-local: asn1-api.tex