Commit de5943f9 authored by KO Myung-Hun's avatar KO Myung-Hun Committed by Jean-Baptiste Kempf

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: default avatarRémi Denis-Courmont <remi@remlab.net>
(cherry picked from commit 3180272a56bdb3933219e1cc2c57d0285a7adbd3)
Signed-off-by: default avatarKO Myung-Hun <komh@chollian.net>

Conflicts:
	configure.ac
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 37e310d3
/*****************************************************************************
* 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);
}
......@@ -293,6 +293,7 @@ case "${host_os}" in
*os2*)
SYS=os2
LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
AC_LIBOBJ([freeaddrinfo])
;;
*)
SYS="${host_os}"
......
......@@ -341,6 +341,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