modification for sun compiler
This commit is contained in:
parent
28622b5a75
commit
0d2b618f31
|
|
@ -1,3 +1,9 @@
|
||||||
|
2010-10-05 Dietmar Warning
|
||||||
|
* configure.ac: enabling openMP under SunStudio compiler
|
||||||
|
* terminal.c, ivars.c, ifnewuid.c, inperror.c, main.c:
|
||||||
|
asprintf definition also for sun compiler - can not be concentrated in
|
||||||
|
ngspice.h because of libgen - libiberty conflict
|
||||||
|
|
||||||
============================ Rework-22 ==================================
|
============================ Rework-22 ==================================
|
||||||
2010-10-04 Holger Vogt
|
2010-10-04 Holger Vogt
|
||||||
* miscoms.c: remove bug no. 3080398
|
* miscoms.c: remove bug no. 3080398
|
||||||
|
|
|
||||||
64
configure.ac
64
configure.ac
|
|
@ -71,7 +71,7 @@ AC_ARG_ENABLE(capbypass,
|
||||||
|
|
||||||
AC_ARG_ENABLE(capzerobypass,
|
AC_ARG_ENABLE(capzerobypass,
|
||||||
AS_HELP_STRING([--enable-capzerobypass],[Bypass all the cbd/cbs calculations if Czero is zero. (default=enabled)]),
|
AS_HELP_STRING([--enable-capzerobypass],[Bypass all the cbd/cbs calculations if Czero is zero. (default=enabled)]),
|
||||||
[],[enable_capzerobypass=yes])
|
[],[enable_capzerobypass=yes])
|
||||||
|
|
||||||
dnl --enable-nodelimiting: define NODELIMITING for the code
|
dnl --enable-nodelimiting: define NODELIMITING for the code
|
||||||
AC_ARG_ENABLE(nodelimiting,
|
AC_ARG_ENABLE(nodelimiting,
|
||||||
|
|
@ -166,10 +166,10 @@ dnl Xgraph is a plotting package for X11 once very popular.
|
||||||
AC_ARG_ENABLE(xgraph,
|
AC_ARG_ENABLE(xgraph,
|
||||||
AS_HELP_STRING([--enable-xgraph],[Enable xgraph compilation.]))
|
AS_HELP_STRING([--enable-xgraph],[Enable xgraph compilation.]))
|
||||||
|
|
||||||
dnl --enable-x: Compile software using x libraries. A GUI will be provided then.
|
dnl --enable-x: Compile software using x libraries. A GUI will be provided then.
|
||||||
AC_ARG_ENABLE(x,
|
AC_ARG_ENABLE(x,
|
||||||
AS_HELP_STRING([--enable-x],[Enable X11 gui]))
|
AS_HELP_STRING([--enable-x],[Enable X11 gui]))
|
||||||
|
|
||||||
dnl --with-readline: Includes GNU readline support into CLI. Default is "no".
|
dnl --with-readline: Includes GNU readline support into CLI. Default is "no".
|
||||||
dnl Including readline into ngspice is a violation of GPL license. It's use
|
dnl Including readline into ngspice is a violation of GPL license. It's use
|
||||||
dnl is discouraged.
|
dnl is discouraged.
|
||||||
|
|
@ -182,7 +182,7 @@ AC_ARG_WITH(editline,
|
||||||
|
|
||||||
dnl --with-tcl: define TCL_MODULE in the code. This is for tcl support
|
dnl --with-tcl: define TCL_MODULE in the code. This is for tcl support
|
||||||
AC_ARG_WITH(tcl,
|
AC_ARG_WITH(tcl,
|
||||||
[ --with-tcl[=tcldir] Compiles the tcl module instead, experimental, see README.Tcl])
|
[ --with-tcl[=tcldir] Compiles the tcl module instead, experimental, see README.Tcl])
|
||||||
|
|
||||||
dnl --enable-openmp: Use OpenMP on multi-core processors
|
dnl --enable-openmp: Use OpenMP on multi-core processors
|
||||||
AC_ARG_ENABLE(openmp,
|
AC_ARG_ENABLE(openmp,
|
||||||
|
|
@ -244,7 +244,7 @@ if test "$enable_gprof" = "yes"; then
|
||||||
CFLAGS="$CFLAGS -pg"
|
CFLAGS="$CFLAGS -pg"
|
||||||
LDFLAGS="$LDFLAGS -pg"
|
LDFLAGS="$LDFLAGS -pg"
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR(We only support --enable-gprof with GCC right now.)
|
AC_MSG_ERROR(We only support --enable-gprof with GCC right now.)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -317,11 +317,11 @@ if test "x$with_tcl" != "x" -a "$with_tcl" != "no" ; then
|
||||||
has_no_help=true
|
has_no_help=true
|
||||||
AC_DEFINE(HAS_TCLWIN,1,[Tcl Windows]);;
|
AC_DEFINE(HAS_TCLWIN,1,[Tcl Windows]);;
|
||||||
*cygwin* )
|
*cygwin* )
|
||||||
has_tclcyg=true ;;
|
has_tclcyg=true ;;
|
||||||
*)
|
*)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
with_x=no
|
with_x=no
|
||||||
enable_shared=yes
|
enable_shared=yes
|
||||||
enable_static=no
|
enable_static=no
|
||||||
|
|
@ -451,7 +451,7 @@ fi
|
||||||
AM_CONDITIONAL([TCL_MODULE], [test x$has_tcl_module = xtrue])
|
AM_CONDITIONAL([TCL_MODULE], [test x$has_tcl_module = xtrue])
|
||||||
AM_CONDITIONAL([TCLWIN], [test x$has_tclwin = xtrue])
|
AM_CONDITIONAL([TCLWIN], [test x$has_tclwin = xtrue])
|
||||||
AM_CONDITIONAL([TCLCYG], [test x$has_tclcyg = xtrue])
|
AM_CONDITIONAL([TCLCYG], [test x$has_tclcyg = xtrue])
|
||||||
|
|
||||||
AC_SUBST(TCL_PACKAGE_PATH)
|
AC_SUBST(TCL_PACKAGE_PATH)
|
||||||
AC_SUBST(TCL_LIB_SPEC)
|
AC_SUBST(TCL_LIB_SPEC)
|
||||||
##################################################################
|
##################################################################
|
||||||
|
|
@ -586,8 +586,8 @@ dnl for MacOSX or Linux, but
|
||||||
dnl -lXaw -lXmu -lXt -lXext -lX11
|
dnl -lXaw -lXmu -lXt -lXext -lX11
|
||||||
dnl seems to be the popular choice.
|
dnl seems to be the popular choice.
|
||||||
dnl (The previous order was -lX11 -lXt -lXext -lXmu -lXaw)
|
dnl (The previous order was -lX11 -lXt -lXext -lXmu -lXaw)
|
||||||
if test "x$enable_x" = "xno"; then
|
if test "x$enable_x" = "xno"; then
|
||||||
no_x = "no"
|
no_x = "no"
|
||||||
fi
|
fi
|
||||||
if test ! "$no_x" = "yes" ; then
|
if test ! "$no_x" = "yes" ; then
|
||||||
AC_CHECK_LIB(Xaw,main,X_LIBS="$X_LIBS -lXaw",AC_MSG_ERROR(Couldn't find Xaw library),$X_LIBS $X_EXTRA_LIBS)
|
AC_CHECK_LIB(Xaw,main,X_LIBS="$X_LIBS -lXaw",AC_MSG_ERROR(Couldn't find Xaw library),$X_LIBS $X_EXTRA_LIBS)
|
||||||
|
|
@ -600,8 +600,8 @@ else
|
||||||
AC_DEFINE(X_DISPLAY_MISSING)
|
AC_DEFINE(X_DISPLAY_MISSING)
|
||||||
AC_MSG_RESULT(No X display!)
|
AC_MSG_RESULT(No X display!)
|
||||||
has_no_x=true
|
has_no_x=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ( test "x$enable_help" = "xyes" ) && ! ( test "$no_x" = "yes" ) ; then
|
if ( test "x$enable_help" = "xyes" ) && ! ( test "$no_x" = "yes" ) ; then
|
||||||
has_no_help=false
|
has_no_help=false
|
||||||
else
|
else
|
||||||
|
|
@ -822,7 +822,7 @@ fi
|
||||||
AC_SUBST(XGRAPHDIR)
|
AC_SUBST(XGRAPHDIR)
|
||||||
AC_SUBST(NOTXGRAPH)
|
AC_SUBST(NOTXGRAPH)
|
||||||
|
|
||||||
AC_CHECK_PROGS(YACC, 'bison -y' byacc yacc)
|
AC_CHECK_PROGS(YACC, 'bison -y' byacc yacc)
|
||||||
|
|
||||||
################# XSPICE ##################################################
|
################# XSPICE ##################################################
|
||||||
dnl Add new code models to the build by pointing to them here.
|
dnl Add new code models to the build by pointing to them here.
|
||||||
|
|
@ -848,10 +848,10 @@ dnl Define variables for LEX
|
||||||
DLLIBS="" ;;
|
DLLIBS="" ;;
|
||||||
*freebsd* )
|
*freebsd* )
|
||||||
AC_DEFINE([IPC_UNIX_SOCKETS], [1], [Client-Server via socket.])
|
AC_DEFINE([IPC_UNIX_SOCKETS], [1], [Client-Server via socket.])
|
||||||
DLLIBS="";;
|
DLLIBS="";;
|
||||||
*openbsd* )
|
*openbsd* )
|
||||||
AC_DEFINE([IPC_UNIX_SOCKETS], [1], [Client-Server via socket.])
|
AC_DEFINE([IPC_UNIX_SOCKETS], [1], [Client-Server via socket.])
|
||||||
DLLIBS="";;
|
DLLIBS="";;
|
||||||
* )
|
* )
|
||||||
AC_DEFINE([IPC_UNIX_SOCKETS], [1], [Client-Server via socket.])
|
AC_DEFINE([IPC_UNIX_SOCKETS], [1], [Client-Server via socket.])
|
||||||
DLLIBS="-ldl";;
|
DLLIBS="-ldl";;
|
||||||
|
|
@ -874,17 +874,17 @@ dnl Find the library directory (lib or lib64) for XSPICE libs
|
||||||
libname="lib64"
|
libname="lib64"
|
||||||
fi
|
fi
|
||||||
echo XSPICE libraries in directory $libname
|
echo XSPICE libraries in directory $libname
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
XSPCIEDIR=""
|
XSPCIEDIR=""
|
||||||
XSPICELIB1=""
|
XSPICELIB1=""
|
||||||
XSPICELIB2=""
|
XSPICELIB2=""
|
||||||
XSPICETESTS=""
|
XSPICETESTS=""
|
||||||
XSPICEINIT="*"
|
XSPICEINIT="*"
|
||||||
|
|
||||||
if test -z "${YACC}" ; then
|
if test -z "${YACC}" ; then
|
||||||
AC_MSG_WARN([No bison, byacc, yacc found: Uses prebuilt default parsers])
|
AC_MSG_WARN([No bison, byacc, yacc found: Uses prebuilt default parsers])
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
AC_SUBST(XSPICEDIR)
|
AC_SUBST(XSPICEDIR)
|
||||||
AC_SUBST(XSPICELIB1)
|
AC_SUBST(XSPICELIB1)
|
||||||
|
|
@ -940,17 +940,17 @@ if test "$enable_adms" = "yes"; then
|
||||||
AC_CHECK_PROGS(ADMSXML, admsXml admsXml.exe,no)
|
AC_CHECK_PROGS(ADMSXML, admsXml admsXml.exe,no)
|
||||||
|
|
||||||
if test "$ADMSXML" = "no"; then
|
if test "$ADMSXML" = "no"; then
|
||||||
AC_MSG_ERROR(If you want adms models you should install admsXml)
|
AC_MSG_ERROR(If you want Verilog-A models you should install admsXml)
|
||||||
fi
|
fi
|
||||||
AC_DEFINE(ADMS,[1],[Support for Verilog-A(MS) models])
|
AC_DEFINE(ADMS,[1],[Support for Verilog-A models])
|
||||||
|
|
||||||
VLADEVDIR=" adms/ekv \
|
VLADEVDIR=" adms/ekv \
|
||||||
adms/hicum0 \
|
adms/hicum0 \
|
||||||
adms/hicum2 \
|
adms/hicum2 \
|
||||||
adms/mextram \
|
adms/mextram \
|
||||||
adms/psp102 "
|
adms/psp102 "
|
||||||
|
|
||||||
dnl The makefiles for adms (to be added to AC_CONFIG_FILES by ./autogen.sh --adms)
|
dnl The makefiles for adms (to be added to AC_CONFIG_FILES by ./autogen.sh --adms)
|
||||||
#VLAMKF src/spicelib/devices/adms/ekv/Makefile
|
#VLAMKF src/spicelib/devices/adms/ekv/Makefile
|
||||||
#VLAMKF src/spicelib/devices/adms/hicum0/Makefile
|
#VLAMKF src/spicelib/devices/adms/hicum0/Makefile
|
||||||
#VLAMKF src/spicelib/devices/adms/hicum2/Makefile
|
#VLAMKF src/spicelib/devices/adms/hicum2/Makefile
|
||||||
|
|
@ -984,7 +984,7 @@ if test "$enable_ndev" = "yes"; then
|
||||||
NDEV=""
|
NDEV=""
|
||||||
NDEV_DIR=" ndev "
|
NDEV_DIR=" ndev "
|
||||||
NDEV_LIB=" spicelib/devices/ndev/libndev.la "
|
NDEV_LIB=" spicelib/devices/ndev/libndev.la "
|
||||||
|
|
||||||
else
|
else
|
||||||
NDEV=""
|
NDEV=""
|
||||||
NDEV_DIR=""
|
NDEV_DIR=""
|
||||||
|
|
@ -1035,7 +1035,7 @@ if test "$with_editline" != "yes"; then
|
||||||
AC_MSG_RESULT(BSD editline disabled.)
|
AC_MSG_RESULT(BSD editline disabled.)
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT(Checking for editline:)
|
AC_MSG_RESULT(Checking for editline:)
|
||||||
AC_CHECK_HEADERS([editline/readline.h],
|
AC_CHECK_HEADERS([editline/readline.h],
|
||||||
[AC_DEFINE([HAVE_BSDEDITLINE],[1],[Define to enable BSD editline])],
|
[AC_DEFINE([HAVE_BSDEDITLINE],[1],[Define to enable BSD editline])],
|
||||||
[AC_MSG_ERROR(Couldn't find BSD editline headers.)])
|
[AC_MSG_ERROR(Couldn't find BSD editline headers.)])
|
||||||
AC_SEARCH_LIBS(tputs,ncurses termcap,
|
AC_SEARCH_LIBS(tputs,ncurses termcap,
|
||||||
|
|
@ -1056,10 +1056,14 @@ dnl test for header
|
||||||
AC_CHECK_HEADERS([omp.h],
|
AC_CHECK_HEADERS([omp.h],
|
||||||
[AC_DEFINE(USE_OMP,[1],[OpenMP parallel processing])],
|
[AC_DEFINE(USE_OMP,[1],[OpenMP parallel processing])],
|
||||||
[AC_MSG_ERROR(Couldn't find OpenMP headers.)])
|
[AC_MSG_ERROR(Couldn't find OpenMP headers.)])
|
||||||
CFLAGS="$CFLAGS -fopenmp"
|
if test "x$GCC" = "xyes"; then
|
||||||
dnl test if function is o.k.
|
CFLAGS="$CFLAGS -fopenmp"
|
||||||
|
else
|
||||||
|
CFLAGS="$CFLAGS -xopenmp"
|
||||||
|
fi
|
||||||
|
dnl test if timing function is o.k.
|
||||||
AC_CHECK_FUNC(omp_get_wtime, [AC_MSG_RESULT(OpenMP features enabled)],
|
AC_CHECK_FUNC(omp_get_wtime, [AC_MSG_RESULT(OpenMP features enabled)],
|
||||||
[AC_MSG_ERROR(OpenMP not working correctly.)])
|
[AC_MSG_ERROR(OpenMP not working correctly.)])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl Output Files
|
dnl Output Files
|
||||||
|
|
@ -1067,7 +1071,7 @@ dnl ------------
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile
|
AC_CONFIG_FILES([Makefile
|
||||||
man/Makefile
|
man/Makefile
|
||||||
man/man1/Makefile
|
man/man1/Makefile
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/spinit
|
src/spinit
|
||||||
src/tclspinit
|
src/tclspinit
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,17 @@ $Id$
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_ASPRINTF
|
||||||
|
#ifdef HAVE_LIBIBERTY_H /* asprintf */
|
||||||
|
#include <libiberty.h>
|
||||||
|
#undef AND /* obsolete macro in ansidecl.h */
|
||||||
|
#elif defined(__MINGW32__) || defined(__SUNPRO_C) /* we have asprintf, but not libiberty.h */
|
||||||
|
#include <stdarg.h>
|
||||||
|
extern int asprintf(char **out, const char *fmt, ...);
|
||||||
|
extern int vasprintf(char **out, const char *fmt, va_list ap);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_SGTTY_H
|
#ifdef HAVE_SGTTY_H
|
||||||
#include <sgtty.h>
|
#include <sgtty.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -22,17 +33,6 @@ $Id$
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_ASPRINTF
|
|
||||||
#ifdef HAVE_LIBIBERTY_H /* asprintf */
|
|
||||||
#include <libiberty.h>
|
|
||||||
#undef AND /* obsolete macro in ansidecl.h */
|
|
||||||
#elif defined(__MINGW32__)/* we have asprintf, but not libiberty.h */
|
|
||||||
#include <stdarg.h>
|
|
||||||
extern int asprintf(char **out, const char *fmt, ...);
|
|
||||||
extern int vasprintf(char **out, const char *fmt, va_list ap);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* Bad interaction with bool type in bool.h because curses also
|
/* Bad interaction with bool type in bool.h because curses also
|
||||||
defines this symbol. */
|
defines this symbol. */
|
||||||
|
|
|
||||||
10
src/main.c
10
src/main.c
|
|
@ -10,20 +10,20 @@
|
||||||
|
|
||||||
#include "ngspice.h"
|
#include "ngspice.h"
|
||||||
|
|
||||||
#include <setjmp.h>
|
|
||||||
#include <signal.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_ASPRINTF
|
#ifdef HAVE_ASPRINTF
|
||||||
#ifdef HAVE_LIBIBERTY_H /* asprintf */
|
#ifdef HAVE_LIBIBERTY_H /* asprintf */
|
||||||
#include <libiberty.h>
|
#include <libiberty.h>
|
||||||
#undef AND /* obsolete macro in ansidecl.h */
|
#undef AND /* obsolete macro in ansidecl.h */
|
||||||
#elif defined(__MINGW32__)/* we have asprintf, but not libiberty.h */
|
#elif defined(__MINGW32__) || defined(__SUNPRO_C) /* we have asprintf, but not libiberty.h */
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
extern int asprintf(char **out, const char *fmt, ...);
|
extern int asprintf(char **out, const char *fmt, ...);
|
||||||
extern int vasprintf(char **out, const char *fmt, va_list ap);
|
extern int vasprintf(char **out, const char *fmt, va_list ap);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <setjmp.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
/* MINGW: random, srandom in libiberty.a, but not in libiberty.h */
|
/* MINGW: random, srandom in libiberty.a, but not in libiberty.h */
|
||||||
#if defined(__MINGW32__) && defined(HAVE_RANDOM)
|
#if defined(__MINGW32__) && defined(HAVE_RANDOM)
|
||||||
extern long int random (void);
|
extern long int random (void);
|
||||||
|
|
@ -648,7 +648,7 @@ read_initialisation_file(char * dir, char * name)
|
||||||
{
|
{
|
||||||
#ifndef HAVE_UNISTD_H
|
#ifndef HAVE_UNISTD_H
|
||||||
FILE * fp = NULL;
|
FILE * fp = NULL;
|
||||||
#endif /* not HAVE_ASPRINTF */
|
#endif /* not HAVE_UNISTD_H */
|
||||||
char * path;
|
char * path;
|
||||||
bool result = FALSE;
|
bool result = FALSE;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ Copyright 1991 Regents of the University of California. All rights reserved.
|
||||||
#ifdef HAVE_LIBIBERTY_H /* asprintf */
|
#ifdef HAVE_LIBIBERTY_H /* asprintf */
|
||||||
#include <libiberty.h>
|
#include <libiberty.h>
|
||||||
#undef AND /* obsolete macro in ansidecl.h */
|
#undef AND /* obsolete macro in ansidecl.h */
|
||||||
#elif defined(__MINGW32__)/* we have asprintf, but not libiberty.h */
|
#elif defined(__MINGW32__) || defined(__SUNPRO_C) /* we have asprintf, but not libiberty.h */
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
extern int asprintf(char **out, const char *fmt, ...);
|
extern int asprintf(char **out, const char *fmt, ...);
|
||||||
extern int vasprintf(char **out, const char *fmt, va_list ap);
|
extern int vasprintf(char **out, const char *fmt, va_list ap);
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ Author: 1988 Thomas L. Quarles
|
||||||
#ifdef HAVE_LIBIBERTY_H /* asprintf */
|
#ifdef HAVE_LIBIBERTY_H /* asprintf */
|
||||||
#include <libiberty.h>
|
#include <libiberty.h>
|
||||||
#undef AND /* obsolete macro in ansidecl.h */
|
#undef AND /* obsolete macro in ansidecl.h */
|
||||||
#elif defined(__MINGW32__)/* we have asprintf, but not libiberty.h */
|
#elif defined(__MINGW32__) || defined(__SUNPRO_C) /* we have asprintf, but not libiberty.h */
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
extern int asprintf(char **out, const char *fmt, ...);
|
extern int asprintf(char **out, const char *fmt, ...);
|
||||||
extern int vasprintf(char **out, const char *fmt, va_list ap);
|
extern int vasprintf(char **out, const char *fmt, va_list ap);
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ Author: 1985 Thomas L. Quarles
|
||||||
#ifdef HAVE_LIBIBERTY_H /* asprintf */
|
#ifdef HAVE_LIBIBERTY_H /* asprintf */
|
||||||
#include <libiberty.h>
|
#include <libiberty.h>
|
||||||
#undef AND /* obsolete macro in ansidecl.h */
|
#undef AND /* obsolete macro in ansidecl.h */
|
||||||
#elif defined(__MINGW32__)/* we have asprintf, but not libiberty.h */
|
#elif defined(__MINGW32__) || defined(__SUNPRO_C) /* we have asprintf, but not libiberty.h */
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
extern int asprintf(char **out, const char *fmt, ...);
|
extern int asprintf(char **out, const char *fmt, ...);
|
||||||
extern int vasprintf(char **out, const char *fmt, va_list ap);
|
extern int vasprintf(char **out, const char *fmt, va_list ap);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue