NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Bump - Non-functional xfreerdp2 on 8.1 STABLE - missing POSIX timer_create?
On 17.11.2020 18:06, nia wrote:
I read the actual code that uses POSIX timers, it hasn't changed at all
in the various release candidates.
If you want to simulate building with POSIX timer support disabled,
you can do the following:
BUILDLINK_TRANSFORM+= rm:-DWITH_POSIX_TIMER
Well but it is known that freerdp2 will not connect without those POSIX
timers
The FreeBSD-related PR you linked to enables Linux epoll emulation for
a specific code path.
Well initially they put another ifdef for FREEBSD, but it was removed by
this
https://github.com/FreeRDP/FreeRDP/issues/4592
Funny how they mention they do not want to "whitelist" every OS, but yet
in
code they left whitelists/ifdefs for Apple :-D
If you want to test if that code path is reached, edit the
"os specific implementation is missing" messages in
work/freerdp-2.1.2/winpr/libwinpr/synch/timer.c.
I tested ;-)
[19:36:37:151] [7164:29fd6000] [INFO][com.freerdp.gdi] - Local
framebuffer format PIXEL_FORMAT_BGRX32
[19:36:37:151] [7164:29fd6000] [INFO][com.freerdp.gdi] - Remote
framebuffer format PIXEL_FORMAT_RGB16
[19:36:37:203] [7164:29fd6000] [INFO][com.winpr.clipboard] - initialized
POSIX local file subsystem
[19:36:37:228] [7164:29fd6000]
[INFO][com.freerdp.channels.rdpsnd.client] - [static] Loaded fake
backend for rdpsnd
[19:36:37:228] [7164:29fd6000] [ERROR][com.winpr.synch.timer] -
InitializeWaitableTimer: Line 248 of code, 1st apperance
so we are here:
240 #ifdef HAVE_SYS_TIMERFD_H
241 timer->fd = timerfd_create(CLOCK_MONOTONIC,
TFD_NONBLOCK);
242
243 if (timer->fd <= 0)
244 return -1;
245
246 #elif defined(__APPLE__)
247 #else
248 WLog_ERR(TAG, "%s: Line 248 of code, 1st
apperance", __FUNCTION__);
249 result = -1;
250 #endif
Note that there are two such messages, and both are identical.
It would be useful to know which one is being triggered.
It's possible we need to either:
1) Enable the "__APPLE__" code paths in that file on NetBSD too.
2) Borrow the epoll emulation code.
Based on error above and snippet of the code and the fact that
different OSs were
before whitelisted in libwinpr/synch/synch.h which is not the case now:
28
29 #include <winpr/synch.h>
30
79 #ifdef HAVE_SYS_TIMERFD_H
80 #include <stdio.h>
81 #include <unistd.h>
82 #include <fcntl.h>
83 #include <sys/timerfd.h>
84 #endif
101 #ifdef WITH_POSIX_TIMER
102 timer_t tid;
103 struct itimerspec timeout;
104 #endif
Isn't it then just a problem during compile not picking up proper
libraries/paths
towards NetBSD implementation of POSIX timer?
But then I can see this in libwinpr/synch/CMakeLists.txt:
if(FREEBSD)
winpr_include_directory_add(${EPOLLSHIM_INCLUDE_DIR})
winpr_library_add_private(${EPOLLSHIM_LIBS})
endif()
I can't test this because I don't have a Windows machine to connect
to...
Trying to find under /usr/pkgsrc/net/freerdp2/work some details from
compile time what was picked - if it will be there of course.
Home |
Main Index |
Thread Index |
Old Index