Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Jul 2006 11:00:37 +0900
From:      Norikatsu Shigemura <nork@FreeBSD.org>
To:        current@FreeBSD.org
Cc:        deischen@FreeBSD.org, Alexander@Leidinger.net, nork@FreeBSD.org, kabaev@gmail.com
Subject:   Re: Linux-flashplugin7 & rtld - RFC
Message-ID:  <20060702110037.f78ea013.nork@FreeBSD.org>
In-Reply-To: <20060702104111.def19d47.nork@FreeBSD.org>
References:  <44986777.6070601@FreeBSD.org> <20060621061437.GA53019@fit.vutbr.cz> <ygeodwn2fea.wl%ume@mahoroba.org> <2265.211.18.249.19.1150871779.squirrel@mail.ninth-nine.com> <20060621121114.h6udocel5wsgg8sg@netchild.homeip.net> <2692.219.127.74.121.1150885501.squirrel@mail.ninth-nine.com> <20060621155053.d6lseiz8z4ow8wo8@netchild.homeip.net> <Pine.GSO.4.64.0606211204300.23942@sea.ntplx.net> <20060623013106.d4397e26.nork@FreeBSD.org> <Pine.GSO.4.64.0606221244240.427@sea.ntplx.net> <20060622230416.3907a848@kan.dnsalias.net> <20060625191405.d0e78240.nork@FreeBSD.org> <20060625134812.a0rm7fbd2wwg0g84@netchild.homeip.net> <20060702104111.def19d47.nork@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
	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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060702110037.f78ea013.nork>