summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/freerdp/files/freerdp-1.1.0_beta1_p20130710-uclibc.patch')
-rw-r--r--net-misc/freerdp/files/freerdp-1.1.0_beta1_p20130710-uclibc.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/net-misc/freerdp/files/freerdp-1.1.0_beta1_p20130710-uclibc.patch b/net-misc/freerdp/files/freerdp-1.1.0_beta1_p20130710-uclibc.patch
new file mode 100644
index 000000000000..f4f28b287028
--- /dev/null
+++ b/net-misc/freerdp/files/freerdp-1.1.0_beta1_p20130710-uclibc.patch
@@ -0,0 +1,66 @@
+https://bugs.gentoo.org/show_bug.cgi?id=497808
+https://github.com/FreeRDP/FreeRDP/pull/2024
+
+--- FreeRDP-780d451afad21a22d2af6bd030ee71311856f038/channels/drive/client/drive_file.c
++++ FreeRDP-780d451afad21a22d2af6bd030ee71311856f038-uclibc/channels/drive/client/drive_file.c
+@@ -436,7 +436,11 @@ BOOL drive_file_set_information(DRIVE_FI
+ int status;
+ char* fullpath;
+ struct STAT st;
++#if defined(__linux__) && !defined(ANDROID)
++ struct timespec tv[2];
++#else
+ struct timeval tv[2];
++#endif
+ UINT64 LastWriteTime;
+ UINT32 FileAttributes;
+ UINT32 FileNameLength;
+@@ -457,14 +461,21 @@ BOOL drive_file_set_information(DRIVE_FI
+ return FALSE;
+
+ tv[0].tv_sec = st.st_atime;
+- tv[0].tv_usec = 0;
+- tv[1].tv_sec = (LastWriteTime > 0 ? FILE_TIME_RDP_TO_SYSTEM(LastWriteTime) : st.st_mtime);
+- tv[1].tv_usec = 0;
++ tv[1].tv_sec = (LastWriteTime > 0 ? FILE_TIME_RDP_TO_SYSTEM(LastWriteTime) : st.st_mtime);
++
+ #ifndef WIN32
+-/* TODO on win32 */
++/* TODO on win32 */
+ #ifdef ANDROID
++ tv[0].tv_usec = 0;
++ tv[1].tv_usec = 0;
+ utimes(file->fullpath, tv);
++#elif defined (__linux__)
++ tv[0].tv_nsec = 0;
++ tv[1].tv_nsec = 0;
++ futimens(file->fd, tv);
+ #else
++ tv[0].tv_usec = 0;
++ tv[1].tv_usec = 0;
+ futimes(file->fd, tv);
+ #endif
+
+--- FreeRDP-780d451afad21a22d2af6bd030ee71311856f038/winpr/libwinpr/synch/event.c
++++ FreeRDP-780d451afad21a22d2af6bd030ee71311856f038-uclibc/winpr/libwinpr/synch/event.c
+@@ -115,6 +115,20 @@ HANDLE OpenEventA(DWORD dwDesiredAccess,
+ return NULL;
+ }
+
++#ifdef HAVE_EVENTFD_H
++#if defined(__UCLIBC__)
++static int eventfd_read(int fd, eventfd_t* value)
++{
++ return (read(fd, value, sizeof(*value)) == sizeof(*value)) ? 0 : -1;
++}
++
++static int eventfd_write(int fd, eventfd_t value)
++{
++ return (write(fd, &value, sizeof(value)) == sizeof(value)) ? 0 : -1;
++}
++#endif
++#endif
++
+ BOOL SetEvent(HANDLE hEvent)
+ {
+ ULONG Type;