You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by fu...@apache.org on 2011/03/31 06:57:27 UTC

svn commit: r1087184 - in /apr/apr/trunk/build: NWGNUenvironment.inc NWGNUmakefile make_nw_export.awk

Author: fuankg
Date: Thu Mar 31 04:57:27 2011
New Revision: 1087184

URL: http://svn.apache.org/viewvc?rev=1087184&view=rev
Log:
Removed dependency on sort command for export list.

Added a shell sort function to the NetWare export script
which is only few ms slower than the external sort command;
this makes the export list now identical on all build platforms.

Modified:
    apr/apr/trunk/build/NWGNUenvironment.inc
    apr/apr/trunk/build/NWGNUmakefile
    apr/apr/trunk/build/make_nw_export.awk

Modified: apr/apr/trunk/build/NWGNUenvironment.inc
URL: http://svn.apache.org/viewvc/apr/apr/trunk/build/NWGNUenvironment.inc?rev=1087184&r1=1087183&r2=1087184&view=diff
==============================================================================
--- apr/apr/trunk/build/NWGNUenvironment.inc (original)
+++ apr/apr/trunk/build/NWGNUenvironment.inc Thu Mar 31 04:57:27 2011
@@ -142,7 +142,6 @@ LIB	= mwldnlm -type library -w nocmdline
 
 # Setup build tools
 AWK	= awk
-SORT	= sort
 
 #
 # Declare Command and tool macros here

Modified: apr/apr/trunk/build/NWGNUmakefile
URL: http://svn.apache.org/viewvc/apr/apr/trunk/build/NWGNUmakefile?rev=1087184&r1=1087183&r2=1087184&view=diff
==============================================================================
--- apr/apr/trunk/build/NWGNUmakefile (original)
+++ apr/apr/trunk/build/NWGNUmakefile Thu Mar 31 04:57:27 2011
@@ -27,7 +27,7 @@ nlms :: $(APR)/aprlib.imp
 $(APR)/aprlib.imp : make_nw_export.awk nw_export.i
 #	@echo Generating $@
 	@echo $(DL)GEN  $@$(DL)
-	$(AWK) -v EXPPREFIX=APR$(VERSION_MAJMIN) -f $^ | $(SORT) >$@
+	$(AWK) -v EXPPREFIX=APR$(VERSION_MAJMIN) -f $^ >$@
 
 nw_export.i : nw_export.inc $(FILES_prebuild_headers) cc.opt
 #	@echo Generating $@

Modified: apr/apr/trunk/build/make_nw_export.awk
URL: http://svn.apache.org/viewvc/apr/apr/trunk/build/make_nw_export.awk?rev=1087184&r1=1087183&r2=1087184&view=diff
==============================================================================
--- apr/apr/trunk/build/make_nw_export.awk (original)
+++ apr/apr/trunk/build/make_nw_export.awk Thu Mar 31 04:57:27 2011
@@ -13,18 +13,17 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-#
 # Based on apr's make_export.awk, which is
 # based on Ryan Bloom's make_export.pl
+#
 
 BEGIN {
-    printf(" (%s)\n", EXPPREFIX)
+    add_symbol("apr_wait_for_io_or_timeout")
 }
 
 function add_symbol(sym_name) {
-    found++
     sub(" ", "", sym_name)
-    printf(" %s,\n", sym_name)
+    exports[++idx] = sym_name
 }
 
 # List of functions that we don't support, yet??
@@ -88,7 +87,29 @@ function add_symbol(sym_name) {
 
 
 END {
-    add_symbol("apr_wait_for_io_or_timeout");
-#    printf("\n\n#found: %d symbols.\n", found)
+    printf("Added %d symbols to export list.\n", idx) > "/dev/stderr"
+    # sort symbols with shell sort
+    increment = int(idx / 2)
+    while (increment > 0) {
+        for (i = increment+1; i <= idx; i++) {
+            j = i
+            temp = exports[i]
+            while ((j >= increment+1) && (exports[j-increment] > temp)) {
+                exports[j] = exports[j-increment]
+                j -= increment
+            }
+            exports[j] = temp
+        }
+        if (increment == 2)
+            increment = 1
+        else
+            increment = int(increment*5/11)
+    }
+    # print the array
+    printf(" (%s)\n", EXPPREFIX)
+    while (x < idx - 1) {
+        printf(" %s,\n", exports[++x])
+    }
+    printf(" %s\n", exports[++x])
 }