diff options
author | elliott_c <ocielliottc@users.noreply.github.com> | 2003-12-12 14:38:51 +0000 |
---|---|---|
committer | elliott_c <ocielliottc@users.noreply.github.com> | 2003-12-12 14:38:51 +0000 |
commit | e4810543c4a532c44e65f2a81a00de2e4c5abcc1 (patch) | |
tree | b67d71e85589f4d6a678dded86d150b7fd22d1f2 | |
parent | 49fda409cb50573f47244fb4beec20568b7cedf5 (diff) | |
download | ATCD-e4810543c4a532c44e65f2a81a00de2e4c5abcc1.tar.gz |
ChangeLogTag: Fri Dec 12 08:37:45 2003 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r-- | ChangeLog | 42 | ||||
-rwxr-xr-x | bin/create_ace_build.pl | 37 |
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) { |