[vlc-devel] [PATCH] access_mms: fix linkage on OS/2

KO Myung-Hun komh78 at gmail.com
Fri Dec 12 02:04:33 CET 2014


Ping ?

KO Myung-Hun wrote:
> -----
>   CCLD     libaccess_mms_plugin.la
> weakld: error: Unresolved symbol (UNDEF) '_vlc_poll'.
> weakld: info: The symbol is referenced by:
>     P:\tmp\ldconv_libaccess_mms_plugin_la-mmstu_38da54703f4316fd10.obj
> Ignoring unresolved externals reported from weak prelinker.
> Error! E2028: _vlc_poll is an undefined reference
> file P:/tmp\ldconv_libaccess_mms_plugin_la-mmstu_38da54703f4316fd10.obj(ldconv_libaccess_mms_plugin_la-mmstu_38da54703f4316fd10.obj): undefined symbol _vlc_poll
> -----
> ---
>  include/vlc_threads.h | 19 ++++++++++++++++++-
>  src/os2/thread.c      |  4 +++-
>  2 files changed, 21 insertions(+), 2 deletions(-)
> 
> diff --git a/include/vlc_threads.h b/include/vlc_threads.h
> index 00435cb..d3f021b 100644
> --- a/include/vlc_threads.h
> +++ b/include/vlc_threads.h
> @@ -391,7 +391,24 @@ struct vlc_cleanup_t
>  #ifndef LIBVLC_USE_PTHREAD_CANCEL
>  /* poll() with cancellation */
>  # ifdef __OS2__
> -int vlc_poll (struct pollfd *fds, unsigned nfds, int timeout);
> +static inline int vlc_poll (struct pollfd *fds, unsigned nfds, int timeout)
> +{
> +    static int (*vlc_poll_os2)(struct pollfd *, unsigned, int) = NULL;
> +
> +    if (!vlc_poll_os2)
> +    {
> +        HMODULE hmod;
> +        CHAR szFailed[CCHMAXPATH];
> +
> +        if (DosLoadModule(szFailed, sizeof(szFailed), "vlccore", &hmod))
> +            return -1;
> +
> +        if (DosQueryProcAddr(hmod, 0, "_vlc_poll_os2", (PFN *)&vlc_poll_os2))
> +            return -1;
> +    }
> +
> +    return (*vlc_poll_os2)(fds, nfds, timeout);
> +}
>  # else
>  static inline int vlc_poll (struct pollfd *fds, unsigned nfds, int timeout)
>  {
> diff --git a/src/os2/thread.c b/src/os2/thread.c
> index 0ddcc47..1f3885c 100644
> --- a/src/os2/thread.c
> +++ b/src/os2/thread.c
> @@ -696,7 +696,9 @@ static int vlc_select( int nfds, fd_set *rdset, fd_set *wrset, fd_set *exset,
>  
>  }
>  
> -int vlc_poll( struct pollfd *fds, unsigned nfds, int timeout )
> +/* Export vlc_poll_os2 directly regardless of EXPORTS of .def */
> +__declspec(dllexport)
> +int vlc_poll_os2( struct pollfd *fds, unsigned nfds, int timeout )
>  {
>      fd_set rdset, wrset, exset;
>  

-- 
KO Myung-Hun

Using Mozilla SeaMonkey 2.7.2
Under OS/2 Warp 4 for Korean with FixPak #15
In VirtualBox v4.1.32 on Intel Core i7-3615QM 2.30GHz with 8GB RAM

Korean OS/2 User Community : http://www.ecomstation.co.kr




More information about the vlc-devel mailing list