diff options
author | tnn <tnn@pkgsrc.org> | 2008-05-25 18:32:28 +0000 |
---|---|---|
committer | tnn <tnn@pkgsrc.org> | 2008-05-25 18:32:28 +0000 |
commit | f36cb919d88cae5c2cf6f8c4a8c988904b22ffb0 (patch) | |
tree | d296f032c239de1f651cd445fc4729acc16bb115 /pkgtools/compat_headers | |
parent | dd38987dacef58dfefad7fe3cfce1a3839c4d941 (diff) | |
download | pkgsrc-f36cb919d88cae5c2cf6f8c4a8c988904b22ffb0.tar.gz |
If there is no va_copy(), provide one and just assume the compiler knows
how to copy va_lists by value.
Diffstat (limited to 'pkgtools/compat_headers')
-rw-r--r-- | pkgtools/compat_headers/files/Makefile.in | 10 | ||||
-rw-r--r-- | pkgtools/compat_headers/files/config.h.in | 3 | ||||
-rwxr-xr-x | pkgtools/compat_headers/files/configure | 77 | ||||
-rw-r--r-- | pkgtools/compat_headers/files/configure.in | 20 | ||||
-rw-r--r-- | pkgtools/compat_headers/files/stdarg.h.in | 8 |
5 files changed, 116 insertions, 2 deletions
diff --git a/pkgtools/compat_headers/files/Makefile.in b/pkgtools/compat_headers/files/Makefile.in index ca98c42352d..43129f67b4b 100644 --- a/pkgtools/compat_headers/files/Makefile.in +++ b/pkgtools/compat_headers/files/Makefile.in @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.in,v 1.2 2008/05/24 22:11:20 tnn Exp $ +# $NetBSD: Makefile.in,v 1.3 2008/05/25 18:32:28 tnn Exp $ REPLACE_stdint= @REPLACE_stdint@ REPLACE_inttypes= @REPLACE_inttypes@ @@ -6,6 +6,7 @@ REPLACE_resolv= @REPLACE_resolv@ REPLACE_sys_select= @REPLACE_sys_select@ REPLACE_math= @REPLACE_math@ REPLACE_stdlib= @REPLACE_stdlib@ +REPLACE_stdarg= @REPLACE_stdarg@ PREFIX= @prefix@ DESTDIR?= @@ -30,6 +31,9 @@ all: .PHONY .if ${REPLACE_stdlib} == "yes" ./mkhdr.sh stdlib.h < stdlib.h.in > stdlib.h .endif +.if ${REPLACE_stdarg} == "yes" + ./mkhdr.sh stdarg.h < stdarg.h.in > stdarg.h +.endif install: .PHONY printf "" > PLIST @@ -59,3 +63,7 @@ install: .PHONY ${INSTALL} -m 644 stdlib.h ${DESTDIR}${PREFIX}/include echo include/stdlib.h >> PLIST .endif +.if ${REPLACE_stdarg} == "yes" + ${INSTALL} -m 644 stdarg.h ${DESTDIR}${PREFIX}/include + echo include/stdarg.h >> PLIST +.endif diff --git a/pkgtools/compat_headers/files/config.h.in b/pkgtools/compat_headers/files/config.h.in index 95392282bce..be706a66593 100644 --- a/pkgtools/compat_headers/files/config.h.in +++ b/pkgtools/compat_headers/files/config.h.in @@ -22,6 +22,9 @@ #undef CH_FLOORF /* descr */ +#undef CH_HAVE_VA_COPY + +/* descr */ #undef CH_HPUX /* descr */ diff --git a/pkgtools/compat_headers/files/configure b/pkgtools/compat_headers/files/configure index 4ef7795dff3..1b3e97b73ed 100755 --- a/pkgtools/compat_headers/files/configure +++ b/pkgtools/compat_headers/files/configure @@ -688,6 +688,7 @@ REPLACE_inttypes REPLACE_resolv REPLACE_sys_select REPLACE_stdlib +REPLACE_stdarg REPLACE_math CPP GREP @@ -2861,6 +2862,8 @@ REPLACE_resolv=no REPLACE_sys_select=no REPLACE_stdlib=no REPLACE_math=no +REPLACE_stdarg=no + @@ -2892,6 +2895,12 @@ _ACEOF cat >>confdefs.h <<\_ACEOF +#define CH_HAVE_VA_COPY 0 +_ACEOF + + + +cat >>confdefs.h <<\_ACEOF #define CH_FLOORF 0 _ACEOF @@ -4381,6 +4390,74 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +# +# Check for va_copy +# + +# XXX needs to be TRY_RUN +{ $as_echo "$as_me:$LINENO: checking if we have va_copy" >&5 +$as_echo_n "checking if we have va_copy... " >&6; } +if test "$cross_compiling" = yes; then + { { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <stdarg.h> +void foo(va_list x, va_list y) {va_copy(x, y);} +int main(void) {return 0;} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cat >>confdefs.h <<\_ACEOF +#define CH_HAVE_VA_COPY 1 +_ACEOF + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +{ $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +REPLACE_stdarg=yes +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + # # Make sure we have float math functions, provide macros otherwise. # diff --git a/pkgtools/compat_headers/files/configure.in b/pkgtools/compat_headers/files/configure.in index bf96581fcaf..ab7737ec652 100644 --- a/pkgtools/compat_headers/files/configure.in +++ b/pkgtools/compat_headers/files/configure.in @@ -1,4 +1,4 @@ -dnl $NetBSD: configure.in,v 1.1.1.1 2008/05/24 03:35:41 tnn Exp $ +dnl $NetBSD: configure.in,v 1.2 2008/05/25 18:32:28 tnn Exp $ AC_PREREQ(2.62) AC_INIT([compat_headers],[20080523],[tnn@NetBSD.org]) @@ -15,12 +15,14 @@ REPLACE_resolv=no REPLACE_sys_select=no REPLACE_stdlib=no REPLACE_math=no +REPLACE_stdarg=no AC_SUBST(REPLACE_stdint) AC_SUBST(REPLACE_inttypes) AC_SUBST(REPLACE_resolv) AC_SUBST(REPLACE_sys_select) AC_SUBST(REPLACE_stdlib) +AC_SUBST(REPLACE_stdarg) AC_SUBST(REPLACE_math) AC_DEFINE([CH_LP64], [0], [descr]) @@ -28,6 +30,8 @@ AC_DEFINE([CH_HPUX], [0], [descr]) AC_DEFINE([CH_HPUX_MISSING_RES_PROTO], [0], [descr]) AC_DEFINE([CH_HPUX___STRTOLL], [0], [descr]) +AC_DEFINE([CH_HAVE_VA_COPY], [0], [descr]) + AC_DEFINE([CH_FLOORF], [0], [descr]) AC_DEFINE([CH_CEILF], [0], [descr]) AC_DEFINE([CH_SINF], [0], [descr]) @@ -153,6 +157,20 @@ REPLACE_stdlib=yes , [AC_MSG_RESULT(no)]) , [AC_MSG_RESULT(no)]) + +# +# Check for va_copy +# + +# XXX needs to be TRY_RUN +AC_MSG_CHECKING([if we have va_copy]) +AC_TRY_RUN([#include <stdarg.h> +void foo(va_list x, va_list y) {va_copy(x, y);} +int main(void) {return 0;}], +[AC_DEFINE(CH_HAVE_VA_COPY) AC_MSG_RESULT(yes)], +[AC_MSG_RESULT(no) +REPLACE_stdarg=yes]) + # # Make sure we have float math functions, provide macros otherwise. # diff --git a/pkgtools/compat_headers/files/stdarg.h.in b/pkgtools/compat_headers/files/stdarg.h.in new file mode 100644 index 00000000000..a883267c87b --- /dev/null +++ b/pkgtools/compat_headers/files/stdarg.h.in @@ -0,0 +1,8 @@ +#include "config.h" +@include "@real_header@" +@ifndef _COMPAT_STDARG_H_ +@define _COMPAT_STDARG_H_ +#if CH_HAVE_VA_COPY < 1 +@define va_copy(dst,src) (dst=(src)) +#endif +@endif /* _COMPAT_STDARG_H_ */ |