summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2003-12-12 14:38:51 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2003-12-12 14:38:51 +0000
commite4810543c4a532c44e65f2a81a00de2e4c5abcc1 (patch)
treeb67d71e85589f4d6a678dded86d150b7fd22d1f2
parent49fda409cb50573f47244fb4beec20568b7cedf5 (diff)
downloadATCD-e4810543c4a532c44e65f2a81a00de2e4c5abcc1.tar.gz
ChangeLogTag: Fri Dec 12 08:37:45 2003 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r--ChangeLog42
-rwxr-xr-xbin/create_ace_build.pl37
2 files changed, 53 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index c068615f059..b0d609d7ab1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,23 +1,31 @@
+Fri Dec 12 08:37:45 2003 Chad Elliott <elliott_c@ociweb.com>
+
+ * bin/create_ace_build.pl:
+
+ When creating a build on Windows and we run into a problem with
+ linking to a target that has a path that is "too long", we resort
+ to the short file name and everyone's happy.
+
Thu Dec 11 18:25:39 2003 Steve Huston <shuston@riverace.com>
- * ace/Future.cpp: Added #include "ace/Guard_T.h" and
- "ace/Recursive_Thread_Mutex.h" if ACE_HAS_THREADS is defined.
- There are ACE_Guards that use it and AIX Visual Age C++ needs
- to see these headers to work right.
+ * ace/Future.cpp: Added #include "ace/Guard_T.h" and
+ "ace/Recursive_Thread_Mutex.h" if ACE_HAS_THREADS is defined.
+ There are ACE_Guards that use it and AIX Visual Age C++ needs
+ to see these headers to work right.
- * ace/Future_Set.h: Added #include "ace/Null_Mutex.h" since this
- file references it in an ACE_Hash_Map_Manager declaration. Even if
- it may have been available during compile, Visual Age C++ needs to
- see the header during link time as well, and it only remembers to
- look at headers that were explicitly included.
+ * ace/Future_Set.h: Added #include "ace/Null_Mutex.h" since this
+ file references it in an ACE_Hash_Map_Manager declaration. Even if
+ it may have been available during compile, Visual Age C++ needs to
+ see the header during link time as well, and it only remembers to
+ look at headers that were explicitly included.
Thu Dec 11 18:13:29 2003 Steve Huston <shuston@riverace.com>
- * ace/OS_NS_netdb.inl: Changed use of naked ::memset() calls to
- ACE_OS::memset(). Fixes compile errors on AIX 4.3.
+ * ace/OS_NS_netdb.inl: Changed use of naked ::memset() calls to
+ ACE_OS::memset(). Fixes compile errors on AIX 4.3.
- * ace/OS_NS_stdio.cpp (gets): Added "ACE_STD_NAMESPACE::" prefix to
- getchar() call; fixes compile error on AIX 4.3.
+ * ace/OS_NS_stdio.cpp (gets): Added "ACE_STD_NAMESPACE::" prefix to
+ getchar() call; fixes compile error on AIX 4.3.
Wed Dec 10 18:20:12 UTC 2003 Johnny Willemsen <jwillemsen@remedy.nl>
@@ -30,11 +38,11 @@ Wed Dec 10 18:20:12 UTC 2003 Johnny Willemsen <jwillemsen@remedy.nl>
Wed Dec 10 13:16:03 2003 Ossama Othman <ossama@dre.vanderbilt.edu>
- * ace/UUID.cpp (to_string):
+ * ace/UUID.cpp (to_string):
- Fixed incorrect delete() operator call. Use vector delete[]()
- instead of scalar delete() since array was allocated with
- new[]().
+ Fixed incorrect delete() operator call. Use vector delete[]()
+ instead of scalar delete() since array was allocated with
+ new[]().
Wed Dec 10 15:09:13 UTC 2003 Johnny Willemsen <jwillemsen@remedy.nl>
diff --git a/bin/create_ace_build.pl b/bin/create_ace_build.pl
index cf89df2abf5..b8cc371bbdb 100755
--- a/bin/create_ace_build.pl
+++ b/bin/create_ace_build.pl
@@ -123,20 +123,39 @@ sub cab_link {
}
$status = chdir($curdir);
if (! $status) {
- die "ERROR: cab_link() chdir " . $curdir . " failed.\n";
+ die "ERROR: cab_link() chdir " . $curdir . " failed.\n";
}
my($base_linked) = basename($linked);
if (! -e $real) {
- ## This should never happen, but there appears to be a bug
- ## with the underlying win32 apis on Windows Server 2003.
- ## Long paths will cause an error which perl will ignore.
- ## Unicode versions of the apis seem to work fine.
- ## To experiment try Win32 _fullpath() and CreateHardLink with
- ## long paths.
- print "ERROR : Skipping $real.\n";
- return;
+ ## If the real file "doesn't exist", then we need to change back to
+ ## the starting directory and look up the short file name.
+ chdir($starting_dir);
+ my($short) = Win32::GetShortPathName($fixed);
+
+ ## If we were able to find the short file name, then we need to
+ ## modyfy $real. Note, we don't need to change back to $curdir
+ ## unless the short name lookup was successful.
+ if (defined $short) {
+ ## Replace a section of $real (the part that isn't a relative
+ ## path) with the short file name. The hard link will still have
+ ## the right name, it's just pointing to the short name.
+ substr($real, length($real) - length($fixed)) = $short;
+
+ ## Get back to the right directory for when we make the hard link
+ chdir($curdir);
+ }
+ else {
+ ## This should never happen, but there appears to be a bug
+ ## with the underlying win32 apis on Windows Server 2003.
+ ## Long paths will cause an error which perl will ignore.
+ ## Unicode versions of the apis seem to work fine.
+ ## To experiment try Win32 _fullpath() and CreateHardLink with
+ ## long paths.
+ print "ERROR : Skipping $real.\n";
+ return;
+ }
}
if (-e $base_linked) {