This is required as DLLs in some of these directories may have indeed
been installed with setup.exe as part of a package (e.g. Python doesn't
have separate vendor and site directories).  It is also possible that a
file added on the command-line is already listed, wasting valuable
rebase space.


Yaakov
2013-02-11  Yaakov Selkowitz  <yselkowitz@...>

	* rebaseall.in: Remove duplicates from file list.

Index: rebaseall.in
===================================================================
RCS file: /cvs/cygwin-apps/rebase/rebaseall.in,v
retrieving revision 1.9
diff -u -p -r1.9 rebaseall.in
--- rebaseall.in	7 Jun 2012 18:50:33 -0000	1.9
+++ rebaseall.in	11 Feb 2013 09:30:40 -0000
@@ -47,7 +47,7 @@ usage()
 
 cleanup()
 {
-    rm -f "${TmpFile}"
+    rm -f "${TmpFile}" "${SortedFile}"
     exit ${ExitCode}
 }
 
@@ -195,7 +195,8 @@ then
 fi
 
 # Set temp file
-TmpFile="$TmpDir/rebase.lst"
+SortedFile="$TmpDir/rebase.lst"
+TmpFile="${SortedFile}.in"
 
 # Create rebase list
 case $Platform in
@@ -227,11 +227,14 @@ then
     cat "${FileList}" >>"${TmpFile}"
 fi
 
+# Remove duplicates
+sort -u "${TmpFile}" > "${SortedFile}"
+
 if [ -z "${BaseAddress}" ]
 then
-  rebase "${Verbose}" "${Touch}" "${NoDyn}" -s "${Mach}" -T "${TmpFile}"
+  rebase "${Verbose}" "${Touch}" "${NoDyn}" -s "${Mach}" -T "${SortedFile}"
 else
-  rebase "${Verbose}" "${Touch}" "${NoDyn}" -s "${Mach}" -b "${BaseAddress}" -o "${Offset}" -T "${TmpFile}"
+  rebase "${Verbose}" "${Touch}" "${NoDyn}" -s "${Mach}" -b "${BaseAddress}" -o "${Offset}" -T "${SortedFile}"
 fi
 ExitCode=$?
 

Reply via email to