Linux-flashplugin7 & rtld - RFC

Norikatsu Shigemura nork at FreeBSD.org
Sun Jul 2 02:20:38 UTC 2006


	Ah, I think that version_gen.awk has a issue to migrate
	SYMVER_ENABLED=yes environment, like symbol non-versioning
	binaries -(dynamic link)->symbol versioning libraries.
	Almost works in current, but unstable.  Because symbol
	non-versioning will link symbol any-versioning of the
	first to find.  It should be order versioning information.


--- share/mk/version_gen.awk.orig	Fri Mar 17 00:12:26 2006
+++ share/mk/version_gen.awk	Sat Jul  1 13:56:32 2006
@@ -53,6 +53,7 @@
 			symver = $1;
 			versions[symver] = 1;
 			successors[symver] = "";
+			order[version_count] = symver;
 			version_count++;
 		}
 		else if (/^[ \t]*} *[a-zA-Z0-9._]+ *;/) {
@@ -142,17 +143,18 @@
 }
 
 END {
-	for (v in versions) {
+	for (i = 0; i < version_count; i++) {
+		v = order[i];
 		printf("\n");
 		printf("%s {\n", v);
 
 		# The version count is always one more that actual,
 		# so the loop ranges from 1 to n-1.
 		#
-		for (i = 1; i < versions[v]; i++) {
-			if (i == 1)
+		for (j = 1; j < versions[v]; j++) {
+			if (j == 1)
 				printf("global:\n");
-			printf("\t%s\n", symbols[v, i]);
+			printf("\t%s\n", symbols[v, j]);
 		}
 		if (successors[v] == "") {
 			# This version succeeds no other version.


More information about the freebsd-current mailing list