Commit 3180272a authored by KO Myung-Hun's avatar KO Myung-Hun Committed by Rémi Denis-Courmont

libstream_out_standard_plugin: fix linkage on OS/2

Move freeaddrinfo() to compat/.

-----
  CCLD     libstream_out_standard_plugin.la
weakld: error: Unresolved symbol (UNDEF) '_freeaddrinfo'.
weakld: info: The symbol is referenced by:
    P:\tmp\ldconv_libstream_out_standard_plugin_48c454704dac1660d0.obj
Ignoring unresolved externals reported from weak prelinker.
Error! E2028: _freeaddrinfo is an undefined reference
file P:/tmp\ldconv_libstream_out_standard_plugin_48c454704dac1660d0.obj(ldconv_libstream_out_standard_plugin_48c454704dac1660d0.obj): undefined symbol _freeaddrinfo
-----
Signed-off-by: Rémi Denis-Courmont's avatarRémi Denis-Courmont <remi@remlab.net>
parent f3901fbd
/*****************************************************************************
* freeaddrinfo.c: freeaddrinfo() replacement functions
*****************************************************************************
* Copyright (C) 2005 the VideoLAN team
* Copyright (C) 2002-2007 Rémi Denis-Courmont
* Copyright (C) 2011-2014 KO Myung-Hun
*
* Authors: KO Myung-Hun <komh@chollian.net>
* Rémi Denis-Courmont <rem # videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <stdlib.h>
/*
* This function must be used to free the memory allocated by getaddrinfo().
*/
void freeaddrinfo (struct addrinfo *res)
{
if (res == NULL)
return;
freeaddrinfo (res->ai_next);
free (res->ai_canonname);
free (res->ai_addr);
free (res);
}
......@@ -556,7 +556,7 @@ need_libc=false
dnl Check for usual libc functions
AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale pthread_cond_timedwait_monotonic_np pthread_condattr_setclock])
AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile freeaddrinfo fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
AC_CHECK_FUNCS(fdatasync,,
[AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
])
......
......@@ -349,6 +349,18 @@ long nrand48 (unsigned short subi[3]);
#ifdef __OS2__
# undef HAVE_FORK /* Implementation of fork() is imperfect on OS/2 */
struct addrinfo
{
int ai_flags;
int ai_family;
int ai_socktype;
int ai_protocol;
size_t ai_addrlen;
struct sockaddr *ai_addr;
char *ai_canonname;
struct addrinfo *ai_next;
};
#endif
/* math.h */
......
......@@ -239,18 +239,6 @@ VLC_API ssize_t net_vaPrintf( vlc_object_t *p_this, int fd, const v_socket_t *,
# define NI_DGRAM 0x10
# endif
struct addrinfo
{
int ai_flags;
int ai_family;
int ai_socktype;
int ai_protocol;
size_t ai_addrlen;
struct sockaddr *ai_addr;
char *ai_canonname;
struct addrinfo *ai_next;
};
# define AI_PASSIVE 1
# define AI_CANONNAME 2
# define AI_NUMERICHOST 4
......
......@@ -150,19 +150,6 @@ gai_error_from_herrno (void)
return EAI_SYSTEM;
}
/*
* This functions must be used to free the memory allocated by getaddrinfo().
*/
void freeaddrinfo (struct addrinfo *res)
{
if (res == NULL)
return;
free (res->ai_canonname);
free (res->ai_addr);
free (res->ai_next);
free (res);
}
/*
* Internal function that builds an addrinfo struct.
*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment