Imported Upstream version 4.4.0.182
Former-commit-id: ea38b2115ac3af9a394fe6cddf2be2acd11bc002
This commit is contained in:
parent
ee13743634
commit
180e8b1935
15
Makefile.in
15
Makefile.in
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
@ -478,8 +478,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then rm -f stamp-h1; else :; fi
|
||||
@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
|
||||
@test -f $@ || rm -f stamp-h1
|
||||
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
@ -692,10 +692,16 @@ dist-xz: distdir
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
@echo WARNING: "Support for shar distribution archives is" \
|
||||
"deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
@echo WARNING: "Support for distribution archives compressed with" \
|
||||
"legacy program 'compress' is deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
@ -737,9 +743,10 @@ distcheck: dist
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& am__cwd=`pwd` \
|
||||
&& $(am__cd) $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
&& ../configure \
|
||||
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
--srcdir=.. --prefix="$$dc_install_base" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
|
@ -1 +1 @@
|
||||
e59629639b73555931e60aa95d850ac5dd3e4a5e
|
||||
24a4c4858927915808d8266273160d32e9ac9e4d
|
137
aclocal.m4
vendored
137
aclocal.m4
vendored
@ -1,4 +1,4 @@
|
||||
# generated automatically by aclocal 1.13.4 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
|
||||
|
||||
@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
# (This private macro should not be called outside this file.)
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||
[am__api_version='1.13'
|
||||
[am__api_version='1.14'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.13.4], [],
|
||||
m4_if([$1], [1.14.1], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
@ -51,7 +51,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.13.4])dnl
|
||||
[AM_AUTOMAKE_VERSION([1.14.1])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
@ -438,6 +438,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
|
||||
m4_define([AC_PROG_CC],
|
||||
m4_defn([AC_PROG_CC])
|
||||
[_AM_PROG_CC_C_O
|
||||
])
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
@ -546,7 +552,48 @@ dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||||
AC_CONFIG_COMMANDS_PRE(dnl
|
||||
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
||||
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
||||
])
|
||||
|
||||
# POSIX will say in a future version that running "rm -f" with no argument
|
||||
# is OK; and we want to be able to make that assumption in our Makefile
|
||||
# recipes. So use an aggressive probe to check that the usage we want is
|
||||
# actually supported "in the wild" to an acceptable degree.
|
||||
# See automake bug#10828.
|
||||
# To make any issue more visible, cause the running configure to be aborted
|
||||
# by default if the 'rm' program in use doesn't match our expectations; the
|
||||
# user can still override this though.
|
||||
if rm -f && rm -fr && rm -rf; then : OK; else
|
||||
cat >&2 <<'END'
|
||||
Oops!
|
||||
|
||||
Your 'rm' program seems unable to run without file operands specified
|
||||
on the command line, even when the '-f' option is present. This is contrary
|
||||
to the behaviour of most rm programs out there, and not conforming with
|
||||
the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
|
||||
|
||||
Please tell bug-automake@gnu.org about your system, including the value
|
||||
of your $PATH and any error possibly output before this message. This
|
||||
can help us improve future automake versions.
|
||||
|
||||
END
|
||||
if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
|
||||
echo 'Configuration will proceed anyway, since you have set the' >&2
|
||||
echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
|
||||
echo >&2
|
||||
else
|
||||
cat >&2 <<'END'
|
||||
Aborting the configuration process, to ensure you take notice of the issue.
|
||||
|
||||
You can download and install GNU coreutils to get an 'rm' implementation
|
||||
that behaves properly: <http://www.gnu.org/software/coreutils/>.
|
||||
|
||||
If you want to complete the configuration process using your problematic
|
||||
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
||||
to "yes", and re-run configure.
|
||||
|
||||
END
|
||||
AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
|
||||
fi
|
||||
fi])
|
||||
|
||||
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
||||
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
||||
@ -554,7 +601,6 @@ dnl mangled by Autoconf and run in a shell conditional statement.
|
||||
m4_define([_AC_COMPILER_EXEEXT],
|
||||
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
# that is generated. The stamp files are numbered to have different names.
|
||||
@ -702,38 +748,6 @@ AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_CC_C_O
|
||||
# --------------
|
||||
# Like AC_PROG_CC_C_O, but changed for automake.
|
||||
AC_DEFUN([AM_PROG_CC_C_O],
|
||||
[AC_REQUIRE([AC_PROG_CC_C_O])dnl
|
||||
AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([compile])dnl
|
||||
# FIXME: we rely on the cache variable name because
|
||||
# there is no other way.
|
||||
set dummy $CC
|
||||
am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
|
||||
eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
|
||||
if test "$am_t" != yes; then
|
||||
# Losing compiler, so override with the script.
|
||||
# FIXME: It is wrong to rewrite CC.
|
||||
# But if we don't then we get into trouble of one sort or another.
|
||||
# A longer-term fix would be to have automake use am__CC in this case,
|
||||
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
|
||||
CC="$am_aux_dir/compile $CC"
|
||||
fi
|
||||
dnl Make sure AC_PROG_CC is never called again, or it will override our
|
||||
dnl setting of CC.
|
||||
m4_define([AC_PROG_CC],
|
||||
[m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
|
||||
])
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997-2013 Free Software Foundation, Inc.
|
||||
@ -804,6 +818,53 @@ AC_DEFUN([_AM_SET_OPTIONS],
|
||||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# _AM_PROG_CC_C_O
|
||||
# ---------------
|
||||
# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
|
||||
# to automatically call this.
|
||||
AC_DEFUN([_AM_PROG_CC_C_O],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([compile])dnl
|
||||
AC_LANG_PUSH([C])dnl
|
||||
AC_CACHE_CHECK(
|
||||
[whether $CC understands -c and -o together],
|
||||
[am_cv_prog_cc_c_o],
|
||||
[AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
|
||||
# Make sure it works both with $CC and with simple cc.
|
||||
# Following AC_PROG_CC_C_O, we do the test twice because some
|
||||
# compilers refuse to overwrite an existing .o file with -o,
|
||||
# though they will create one.
|
||||
am_cv_prog_cc_c_o=yes
|
||||
for am_i in 1 2; do
|
||||
if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
|
||||
&& test -f conftest2.$ac_objext; then
|
||||
: OK
|
||||
else
|
||||
am_cv_prog_cc_c_o=no
|
||||
break
|
||||
fi
|
||||
done
|
||||
rm -f core conftest*
|
||||
unset am_i])
|
||||
if test "$am_cv_prog_cc_c_o" != yes; then
|
||||
# Losing compiler, so override with the script.
|
||||
# FIXME: It is wrong to rewrite CC.
|
||||
# But if we don't then we get into trouble of one sort or another.
|
||||
# A longer-term fix would be to have automake use am__CC in this case,
|
||||
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
|
||||
CC="$am_aux_dir/compile $CC"
|
||||
fi
|
||||
AC_LANG_POP([C])])
|
||||
|
||||
# For backward compatibility.
|
||||
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
||||
|
||||
# Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
|
16
autogen.sh
16
autogen.sh
@ -30,18 +30,18 @@ fi
|
||||
DIE=1
|
||||
}
|
||||
|
||||
if [ -z "$LIBTOOL" ]; then
|
||||
LIBTOOL=`which glibtool 2>/dev/null`
|
||||
if [ ! -x "$LIBTOOL" ]; then
|
||||
LIBTOOL=`which libtool`
|
||||
if [ -z "$LIBTOOLIZE" ]; then
|
||||
LIBTOOLIZE=`which glibtoolize 2>/dev/null`
|
||||
if [ ! -x "$LIBTOOLIZE" ]; then
|
||||
LIBTOOLIZE=`which libtoolize`
|
||||
fi
|
||||
fi
|
||||
|
||||
(grep "^AM_PROG_LIBTOOL" $srcdir/configure.ac >/dev/null) && {
|
||||
($LIBTOOL --version) < /dev/null > /dev/null 2>&1 || {
|
||||
($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "**Error**: You must have \`libtool' installed to compile Mono."
|
||||
echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz"
|
||||
echo "**Error**: You must have \`libtoolize' installed to compile Mono."
|
||||
echo "Get ftp://ftp.gnu.org/gnu/libtool/libtool-1.2.tar.gz"
|
||||
echo "(or a newer version if it is available)"
|
||||
DIE=1
|
||||
}
|
||||
@ -98,7 +98,7 @@ esac
|
||||
if grep "^AM_PROG_LIBTOOL" configure.ac >/dev/null; then
|
||||
if test -z "$NO_LIBTOOLIZE" ; then
|
||||
echo "Running libtoolize..."
|
||||
${LIBTOOL}ize --force --copy
|
||||
$LIBTOOLIZE --force --copy
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -990,9 +990,6 @@
|
||||
/* Define if Unix sockets cannot be created in an anonymous namespace */
|
||||
#undef NEED_LINK_UNLINK
|
||||
|
||||
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
||||
#undef NO_MINUS_C_MINUS_O
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
|
15
config.sub
vendored
15
config.sub
vendored
@ -2,7 +2,7 @@
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright 1992-2013 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2013-04-24'
|
||||
timestamp='2013-08-10'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
@ -257,7 +257,7 @@ case $basic_machine in
|
||||
| avr | avr32 \
|
||||
| be32 | be64 \
|
||||
| bfin \
|
||||
| c4x | clipper \
|
||||
| c4x | c8051 | clipper \
|
||||
| d10v | d30v | dlx | dsp16xx \
|
||||
| epiphany \
|
||||
| fido | fr30 | frv \
|
||||
@ -372,7 +372,7 @@ case $basic_machine in
|
||||
| be32-* | be64-* \
|
||||
| bfin-* | bs2000-* \
|
||||
| c[123]* | c30-* | [cjt]90-* | c4x-* \
|
||||
| clipper-* | craynv-* | cydra-* \
|
||||
| c8051-* | clipper-* | craynv-* | cydra-* \
|
||||
| d10v-* | d30v-* | dlx-* \
|
||||
| elxsi-* \
|
||||
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
|
||||
@ -794,7 +794,7 @@ case $basic_machine in
|
||||
os=-mingw64
|
||||
;;
|
||||
mingw32)
|
||||
basic_machine=i386-pc
|
||||
basic_machine=i686-pc
|
||||
os=-mingw32
|
||||
;;
|
||||
mingw32ce)
|
||||
@ -830,7 +830,7 @@ case $basic_machine in
|
||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||
;;
|
||||
msys)
|
||||
basic_machine=i386-pc
|
||||
basic_machine=i686-pc
|
||||
os=-msys
|
||||
;;
|
||||
mvs)
|
||||
@ -1006,7 +1006,7 @@ case $basic_machine in
|
||||
;;
|
||||
ppc64) basic_machine=powerpc64-unknown
|
||||
;;
|
||||
ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
|
||||
basic_machine=powerpc64le-unknown
|
||||
@ -1546,6 +1546,9 @@ case $basic_machine in
|
||||
c4x-* | tic4x-*)
|
||||
os=-coff
|
||||
;;
|
||||
c8051-*)
|
||||
os=-elf
|
||||
;;
|
||||
hexagon-*)
|
||||
os=-elf
|
||||
;;
|
||||
|
@ -1 +1 @@
|
||||
da368cb9ffc9b4bfa0f5e04be9f4f6089f689736
|
||||
917c27a2a8b59452335a3e4e47dcd3bf88f60e5f
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
@ -83,9 +83,10 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||
$(top_srcdir)/configure $(am__configure_deps) \
|
||||
$(srcdir)/config.h.in $(top_srcdir)/../mkinstalldirs AUTHORS \
|
||||
COPYING ChangeLog NEWS README TODO config.rpath \
|
||||
$(top_srcdir)/../config.guess $(top_srcdir)/../config.rpath \
|
||||
$(top_srcdir)/../config.sub $(top_srcdir)/../install-sh \
|
||||
$(top_srcdir)/../ltmain.sh $(top_srcdir)/../missing
|
||||
$(top_srcdir)/../compile $(top_srcdir)/../config.guess \
|
||||
$(top_srcdir)/../config.rpath $(top_srcdir)/../config.sub \
|
||||
$(top_srcdir)/../install-sh $(top_srcdir)/../ltmain.sh \
|
||||
$(top_srcdir)/../missing
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
@ -394,8 +395,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then rm -f stamp-h1; else :; fi
|
||||
@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
|
||||
@test -f $@ || rm -f stamp-h1
|
||||
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
@ -603,10 +604,16 @@ dist-xz: distdir
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
@echo WARNING: "Support for shar distribution archives is" \
|
||||
"deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
@echo WARNING: "Support for distribution archives compressed with" \
|
||||
"legacy program 'compress' is deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
@ -648,9 +655,10 @@ distcheck: dist
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& am__cwd=`pwd` \
|
||||
&& $(am__cd) $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
&& ../configure \
|
||||
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
--srcdir=.. --prefix="$$dc_install_base" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
|
105
eglib/aclocal.m4
vendored
105
eglib/aclocal.m4
vendored
@ -1,4 +1,4 @@
|
||||
# generated automatically by aclocal 1.13.4 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
|
||||
|
||||
@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
# (This private macro should not be called outside this file.)
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||
[am__api_version='1.13'
|
||||
[am__api_version='1.14'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.13.4], [],
|
||||
m4_if([$1], [1.14.1], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
@ -51,7 +51,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.13.4])dnl
|
||||
[AM_AUTOMAKE_VERSION([1.14.1])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
@ -418,6 +418,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
|
||||
m4_define([AC_PROG_CC],
|
||||
m4_defn([AC_PROG_CC])
|
||||
[_AM_PROG_CC_C_O
|
||||
])
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
@ -526,7 +532,48 @@ dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||||
AC_CONFIG_COMMANDS_PRE(dnl
|
||||
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
||||
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
||||
])
|
||||
|
||||
# POSIX will say in a future version that running "rm -f" with no argument
|
||||
# is OK; and we want to be able to make that assumption in our Makefile
|
||||
# recipes. So use an aggressive probe to check that the usage we want is
|
||||
# actually supported "in the wild" to an acceptable degree.
|
||||
# See automake bug#10828.
|
||||
# To make any issue more visible, cause the running configure to be aborted
|
||||
# by default if the 'rm' program in use doesn't match our expectations; the
|
||||
# user can still override this though.
|
||||
if rm -f && rm -fr && rm -rf; then : OK; else
|
||||
cat >&2 <<'END'
|
||||
Oops!
|
||||
|
||||
Your 'rm' program seems unable to run without file operands specified
|
||||
on the command line, even when the '-f' option is present. This is contrary
|
||||
to the behaviour of most rm programs out there, and not conforming with
|
||||
the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
|
||||
|
||||
Please tell bug-automake@gnu.org about your system, including the value
|
||||
of your $PATH and any error possibly output before this message. This
|
||||
can help us improve future automake versions.
|
||||
|
||||
END
|
||||
if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
|
||||
echo 'Configuration will proceed anyway, since you have set the' >&2
|
||||
echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
|
||||
echo >&2
|
||||
else
|
||||
cat >&2 <<'END'
|
||||
Aborting the configuration process, to ensure you take notice of the issue.
|
||||
|
||||
You can download and install GNU coreutils to get an 'rm' implementation
|
||||
that behaves properly: <http://www.gnu.org/software/coreutils/>.
|
||||
|
||||
If you want to complete the configuration process using your problematic
|
||||
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
||||
to "yes", and re-run configure.
|
||||
|
||||
END
|
||||
AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
|
||||
fi
|
||||
fi])
|
||||
|
||||
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
||||
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
||||
@ -534,7 +581,6 @@ dnl mangled by Autoconf and run in a shell conditional statement.
|
||||
m4_define([_AC_COMPILER_EXEEXT],
|
||||
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
# that is generated. The stamp files are numbered to have different names.
|
||||
@ -752,6 +798,53 @@ AC_DEFUN([_AM_SET_OPTIONS],
|
||||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# _AM_PROG_CC_C_O
|
||||
# ---------------
|
||||
# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
|
||||
# to automatically call this.
|
||||
AC_DEFUN([_AM_PROG_CC_C_O],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([compile])dnl
|
||||
AC_LANG_PUSH([C])dnl
|
||||
AC_CACHE_CHECK(
|
||||
[whether $CC understands -c and -o together],
|
||||
[am_cv_prog_cc_c_o],
|
||||
[AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
|
||||
# Make sure it works both with $CC and with simple cc.
|
||||
# Following AC_PROG_CC_C_O, we do the test twice because some
|
||||
# compilers refuse to overwrite an existing .o file with -o,
|
||||
# though they will create one.
|
||||
am_cv_prog_cc_c_o=yes
|
||||
for am_i in 1 2; do
|
||||
if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
|
||||
&& test -f conftest2.$ac_objext; then
|
||||
: OK
|
||||
else
|
||||
am_cv_prog_cc_c_o=no
|
||||
break
|
||||
fi
|
||||
done
|
||||
rm -f core conftest*
|
||||
unset am_i])
|
||||
if test "$am_cv_prog_cc_c_o" != yes; then
|
||||
# Losing compiler, so override with the script.
|
||||
# FIXME: It is wrong to rewrite CC.
|
||||
# But if we don't then we get into trouble of one sort or another.
|
||||
# A longer-term fix would be to have automake use am__CC in this case,
|
||||
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
|
||||
CC="$am_aux_dir/compile $CC"
|
||||
fi
|
||||
AC_LANG_POP([C])])
|
||||
|
||||
# For backward compatibility.
|
||||
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
||||
|
||||
# Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
|
@ -30,18 +30,18 @@ fi
|
||||
DIE=1
|
||||
}
|
||||
|
||||
if [ -z "$LIBTOOL" ]; then
|
||||
LIBTOOL=`which glibtool 2>/dev/null`
|
||||
if [ ! -x "$LIBTOOL" ]; then
|
||||
LIBTOOL=`which libtool`
|
||||
if [ -z "$LIBTOOLIZE" ]; then
|
||||
LIBTOOLIZE=`which glibtoolize 2>/dev/null`
|
||||
if [ ! -x "$LIBTOOLIZE" ]; then
|
||||
LIBTOOLIZE=`which libtoolize`
|
||||
fi
|
||||
fi
|
||||
|
||||
(grep "^AM_PROG_LIBTOOL" $srcdir/configure.ac >/dev/null) && {
|
||||
($LIBTOOL --version) < /dev/null > /dev/null 2>&1 || {
|
||||
($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "**Error**: You must have \`libtool' installed to compile Mono."
|
||||
echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz"
|
||||
echo "**Error**: You must have \`libtoolize' installed to compile Mono."
|
||||
echo "Get ftp://ftp.gnu.org/gnu/libtool/libtool-1.2.tar.gz"
|
||||
echo "(or a newer version if it is available)"
|
||||
DIE=1
|
||||
}
|
||||
@ -98,7 +98,7 @@ esac
|
||||
if grep "^AM_PROG_LIBTOOL" configure.ac >/dev/null; then
|
||||
if test -z "$NO_LIBTOOLIZE" ; then
|
||||
echo "Running libtoolize..."
|
||||
${LIBTOOL}ize --force --copy
|
||||
$LIBTOOLIZE --force --copy
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -33,9 +33,6 @@
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <langinfo.h> header file. */
|
||||
#undef HAVE_LANGINFO_H
|
||||
|
||||
/* Define to 1 if you have the `iconv' library (-liconv). */
|
||||
#undef HAVE_LIBICONV
|
||||
|
||||
|
@ -1 +1 @@
|
||||
10621617ddcde3326cdc7989cbfaee18ae75d381
|
||||
f1c77cc9e77e8b57e9e1f2308c20317786f8adef
|
@ -181,7 +181,7 @@ if test "x$have_iso_varargs" = "xyes"; then
|
||||
fi
|
||||
AC_SUBST(G_HAVE_ISO_VARARGS)
|
||||
|
||||
AC_CHECK_HEADERS(getopt.h sys/select.h sys/time.h sys/wait.h pwd.h langinfo.h iconv.h localcharset.h sys/types.h sys/resource.h)
|
||||
AC_CHECK_HEADERS(getopt.h sys/select.h sys/time.h sys/wait.h pwd.h iconv.h localcharset.h sys/types.h sys/resource.h)
|
||||
AC_CHECK_LIB([iconv], [locale_charset],[],[AC_CHECK_LIB([charset], [locale_charset],[LIBS+="-liconv -lcharset"])])
|
||||
AC_CHECK_HEADER(alloca.h, [HAVE_ALLOCA_H=1], [HAVE_ALLOCA_H=0])
|
||||
AC_SUBST(HAVE_ALLOCA_H)
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
2
eglib/m4/libtool.m4.REMOVED.git-id
vendored
2
eglib/m4/libtool.m4.REMOVED.git-id
vendored
@ -1 +1 @@
|
||||
56666f0eceac29ace0fff6cfefa246a4ab93174c
|
||||
d7c043f4f998971f1b81f7ab2c1e095fef45dee5
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
@ -498,14 +498,14 @@ distclean-compile:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
|
@ -44,9 +44,6 @@
|
||||
# define CODESET 1
|
||||
# include <windows.h>
|
||||
#else
|
||||
# ifdef HAVE_LANGINFO_H
|
||||
# include <langinfo.h>
|
||||
# endif
|
||||
# ifdef HAVE_LOCALCHARSET_H
|
||||
# include <localcharset.h>
|
||||
# endif
|
||||
@ -219,9 +216,7 @@ g_get_charset (G_CONST_RETURN char **charset)
|
||||
is_utf8 = FALSE;
|
||||
#else
|
||||
/* These shouldn't be heap allocated */
|
||||
#if defined(HAVE_LANGINFO_H)
|
||||
my_charset = nl_langinfo (CODESET);
|
||||
#elif defined(HAVE_LOCALCHARSET_H)
|
||||
#if defined(HAVE_LOCALCHARSET_H)
|
||||
my_charset = locale_charset ();
|
||||
#else
|
||||
my_charset = "UTF-8";
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
@ -443,14 +443,14 @@ distclean-compile:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
@ -95,8 +95,8 @@ host_triplet = @host@
|
||||
subdir = .
|
||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||
$(top_srcdir)/configure $(am__configure_deps) mkinstalldirs \
|
||||
depcomp ChangeLog config.guess config.sub install-sh missing \
|
||||
ltmain.sh ltconfig
|
||||
depcomp ChangeLog compile config.guess config.sub install-sh \
|
||||
missing ltmain.sh ltconfig
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
|
||||
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
|
||||
@ -686,14 +686,14 @@ distclean-compile:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@ -904,10 +904,16 @@ dist-xz: distdir
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
@echo WARNING: "Support for shar distribution archives is" \
|
||||
"deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
@echo WARNING: "Support for distribution archives compressed with" \
|
||||
"legacy program 'compress' is deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
@ -949,9 +955,10 @@ distcheck: dist
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& am__cwd=`pwd` \
|
||||
&& $(am__cd) $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
&& ../configure \
|
||||
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
--srcdir=.. --prefix="$$dc_install_base" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
|
122
libgc/aclocal.m4
vendored
122
libgc/aclocal.m4
vendored
@ -1,4 +1,4 @@
|
||||
# generated automatically by aclocal 1.13.4 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
|
||||
|
||||
@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
# (This private macro should not be called outside this file.)
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||
[am__api_version='1.13'
|
||||
[am__api_version='1.14'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.13.4], [],
|
||||
m4_if([$1], [1.14.1], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
@ -51,7 +51,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.13.4])dnl
|
||||
[AM_AUTOMAKE_VERSION([1.14.1])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
@ -438,6 +438,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
|
||||
m4_define([AC_PROG_CC],
|
||||
m4_defn([AC_PROG_CC])
|
||||
[_AM_PROG_CC_C_O
|
||||
])
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
@ -546,7 +552,48 @@ dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||||
AC_CONFIG_COMMANDS_PRE(dnl
|
||||
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
||||
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
||||
])
|
||||
|
||||
# POSIX will say in a future version that running "rm -f" with no argument
|
||||
# is OK; and we want to be able to make that assumption in our Makefile
|
||||
# recipes. So use an aggressive probe to check that the usage we want is
|
||||
# actually supported "in the wild" to an acceptable degree.
|
||||
# See automake bug#10828.
|
||||
# To make any issue more visible, cause the running configure to be aborted
|
||||
# by default if the 'rm' program in use doesn't match our expectations; the
|
||||
# user can still override this though.
|
||||
if rm -f && rm -fr && rm -rf; then : OK; else
|
||||
cat >&2 <<'END'
|
||||
Oops!
|
||||
|
||||
Your 'rm' program seems unable to run without file operands specified
|
||||
on the command line, even when the '-f' option is present. This is contrary
|
||||
to the behaviour of most rm programs out there, and not conforming with
|
||||
the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
|
||||
|
||||
Please tell bug-automake@gnu.org about your system, including the value
|
||||
of your $PATH and any error possibly output before this message. This
|
||||
can help us improve future automake versions.
|
||||
|
||||
END
|
||||
if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
|
||||
echo 'Configuration will proceed anyway, since you have set the' >&2
|
||||
echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
|
||||
echo >&2
|
||||
else
|
||||
cat >&2 <<'END'
|
||||
Aborting the configuration process, to ensure you take notice of the issue.
|
||||
|
||||
You can download and install GNU coreutils to get an 'rm' implementation
|
||||
that behaves properly: <http://www.gnu.org/software/coreutils/>.
|
||||
|
||||
If you want to complete the configuration process using your problematic
|
||||
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
||||
to "yes", and re-run configure.
|
||||
|
||||
END
|
||||
AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
|
||||
fi
|
||||
fi])
|
||||
|
||||
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
||||
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
||||
@ -554,7 +601,6 @@ dnl mangled by Autoconf and run in a shell conditional statement.
|
||||
m4_define([_AC_COMPILER_EXEEXT],
|
||||
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
# that is generated. The stamp files are numbered to have different names.
|
||||
@ -772,6 +818,70 @@ AC_DEFUN([_AM_SET_OPTIONS],
|
||||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# _AM_PROG_CC_C_O
|
||||
# ---------------
|
||||
# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
|
||||
# to automatically call this.
|
||||
AC_DEFUN([_AM_PROG_CC_C_O],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([compile])dnl
|
||||
AC_LANG_PUSH([C])dnl
|
||||
AC_CACHE_CHECK(
|
||||
[whether $CC understands -c and -o together],
|
||||
[am_cv_prog_cc_c_o],
|
||||
[AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
|
||||
# Make sure it works both with $CC and with simple cc.
|
||||
# Following AC_PROG_CC_C_O, we do the test twice because some
|
||||
# compilers refuse to overwrite an existing .o file with -o,
|
||||
# though they will create one.
|
||||
am_cv_prog_cc_c_o=yes
|
||||
for am_i in 1 2; do
|
||||
if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
|
||||
&& test -f conftest2.$ac_objext; then
|
||||
: OK
|
||||
else
|
||||
am_cv_prog_cc_c_o=no
|
||||
break
|
||||
fi
|
||||
done
|
||||
rm -f core conftest*
|
||||
unset am_i])
|
||||
if test "$am_cv_prog_cc_c_o" != yes; then
|
||||
# Losing compiler, so override with the script.
|
||||
# FIXME: It is wrong to rewrite CC.
|
||||
# But if we don't then we get into trouble of one sort or another.
|
||||
# A longer-term fix would be to have automake use am__CC in this case,
|
||||
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
|
||||
CC="$am_aux_dir/compile $CC"
|
||||
fi
|
||||
AC_LANG_POP([C])])
|
||||
|
||||
# For backward compatibility.
|
||||
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
||||
|
||||
# Copyright (C) 2001-2013 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_RUN_LOG(COMMAND)
|
||||
# -------------------
|
||||
# Run COMMAND, save the exit status in ac_status, and log it.
|
||||
# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
|
||||
AC_DEFUN([AM_RUN_LOG],
|
||||
[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
|
||||
($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
|
||||
(exit $ac_status); }])
|
||||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
|
||||
|
347
libgc/compile
Executable file
347
libgc/compile
Executable file
@ -0,0 +1,347 @@
|
||||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand '-c -o'.
|
||||
|
||||
scriptversion=2012-10-14.11; # UTC
|
||||
|
||||
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
nl='
|
||||
'
|
||||
|
||||
# We need space, tab and new line, in precisely that order. Quoting is
|
||||
# there to prevent tools from complaining about whitespace usage.
|
||||
IFS=" "" $nl"
|
||||
|
||||
file_conv=
|
||||
|
||||
# func_file_conv build_file lazy
|
||||
# Convert a $build file to $host form and store it in $file
|
||||
# Currently only supports Windows hosts. If the determined conversion
|
||||
# type is listed in (the comma separated) LAZY, no conversion will
|
||||
# take place.
|
||||
func_file_conv ()
|
||||
{
|
||||
file=$1
|
||||
case $file in
|
||||
/ | /[!/]*) # absolute file, and not a UNC file
|
||||
if test -z "$file_conv"; then
|
||||
# lazily determine how to convert abs files
|
||||
case `uname -s` in
|
||||
MINGW*)
|
||||
file_conv=mingw
|
||||
;;
|
||||
CYGWIN*)
|
||||
file_conv=cygwin
|
||||
;;
|
||||
*)
|
||||
file_conv=wine
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
case $file_conv/,$2, in
|
||||
*,$file_conv,*)
|
||||
;;
|
||||
mingw/*)
|
||||
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||
;;
|
||||
cygwin/*)
|
||||
file=`cygpath -m "$file" || echo "$file"`
|
||||
;;
|
||||
wine/*)
|
||||
file=`winepath -w "$file" || echo "$file"`
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# func_cl_dashL linkdir
|
||||
# Make cl look for libraries in LINKDIR
|
||||
func_cl_dashL ()
|
||||
{
|
||||
func_file_conv "$1"
|
||||
if test -z "$lib_path"; then
|
||||
lib_path=$file
|
||||
else
|
||||
lib_path="$lib_path;$file"
|
||||
fi
|
||||
linker_opts="$linker_opts -LIBPATH:$file"
|
||||
}
|
||||
|
||||
# func_cl_dashl library
|
||||
# Do a library search-path lookup for cl
|
||||
func_cl_dashl ()
|
||||
{
|
||||
lib=$1
|
||||
found=no
|
||||
save_IFS=$IFS
|
||||
IFS=';'
|
||||
for dir in $lib_path $LIB
|
||||
do
|
||||
IFS=$save_IFS
|
||||
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.dll.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/$lib.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/lib$lib.a"; then
|
||||
found=yes
|
||||
lib=$dir/lib$lib.a
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS=$save_IFS
|
||||
|
||||
if test "$found" != yes; then
|
||||
lib=$lib.lib
|
||||
fi
|
||||
}
|
||||
|
||||
# func_cl_wrapper cl arg...
|
||||
# Adjust compile command to suit cl
|
||||
func_cl_wrapper ()
|
||||
{
|
||||
# Assume a capable shell
|
||||
lib_path=
|
||||
shared=:
|
||||
linker_opts=
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.[oO][bB][jJ])
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fo"$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fe"$file"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I)
|
||||
eat=1
|
||||
func_file_conv "$2" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-I*)
|
||||
func_file_conv "${1#-I}" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-l)
|
||||
eat=1
|
||||
func_cl_dashl "$2"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-l*)
|
||||
func_cl_dashl "${1#-l}"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-L)
|
||||
eat=1
|
||||
func_cl_dashL "$2"
|
||||
;;
|
||||
-L*)
|
||||
func_cl_dashL "${1#-L}"
|
||||
;;
|
||||
-static)
|
||||
shared=false
|
||||
;;
|
||||
-Wl,*)
|
||||
arg=${1#-Wl,}
|
||||
save_ifs="$IFS"; IFS=','
|
||||
for flag in $arg; do
|
||||
IFS="$save_ifs"
|
||||
linker_opts="$linker_opts $flag"
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
;;
|
||||
-Xlinker)
|
||||
eat=1
|
||||
linker_opts="$linker_opts $2"
|
||||
;;
|
||||
-*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||
func_file_conv "$1"
|
||||
set x "$@" -Tp"$file"
|
||||
shift
|
||||
;;
|
||||
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||
func_file_conv "$1" mingw
|
||||
set x "$@" "$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
if test -n "$linker_opts"; then
|
||||
linker_opts="-link$linker_opts"
|
||||
fi
|
||||
exec "$@" $linker_opts
|
||||
exit 1
|
||||
}
|
||||
|
||||
eat=
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand '-c -o'.
|
||||
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file 'INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
||||
func_cl_wrapper "$@" # Doesn't return...
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
# So we strip '-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no '-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# '.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
15
libgc/config.sub
vendored
15
libgc/config.sub
vendored
@ -2,7 +2,7 @@
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright 1992-2013 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2013-04-24'
|
||||
timestamp='2013-08-10'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
@ -257,7 +257,7 @@ case $basic_machine in
|
||||
| avr | avr32 \
|
||||
| be32 | be64 \
|
||||
| bfin \
|
||||
| c4x | clipper \
|
||||
| c4x | c8051 | clipper \
|
||||
| d10v | d30v | dlx | dsp16xx \
|
||||
| epiphany \
|
||||
| fido | fr30 | frv \
|
||||
@ -372,7 +372,7 @@ case $basic_machine in
|
||||
| be32-* | be64-* \
|
||||
| bfin-* | bs2000-* \
|
||||
| c[123]* | c30-* | [cjt]90-* | c4x-* \
|
||||
| clipper-* | craynv-* | cydra-* \
|
||||
| c8051-* | clipper-* | craynv-* | cydra-* \
|
||||
| d10v-* | d30v-* | dlx-* \
|
||||
| elxsi-* \
|
||||
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
|
||||
@ -794,7 +794,7 @@ case $basic_machine in
|
||||
os=-mingw64
|
||||
;;
|
||||
mingw32)
|
||||
basic_machine=i386-pc
|
||||
basic_machine=i686-pc
|
||||
os=-mingw32
|
||||
;;
|
||||
mingw32ce)
|
||||
@ -830,7 +830,7 @@ case $basic_machine in
|
||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||
;;
|
||||
msys)
|
||||
basic_machine=i386-pc
|
||||
basic_machine=i686-pc
|
||||
os=-msys
|
||||
;;
|
||||
mvs)
|
||||
@ -1006,7 +1006,7 @@ case $basic_machine in
|
||||
;;
|
||||
ppc64) basic_machine=powerpc64-unknown
|
||||
;;
|
||||
ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
|
||||
basic_machine=powerpc64le-unknown
|
||||
@ -1546,6 +1546,9 @@ case $basic_machine in
|
||||
c4x-* | tic4x-*)
|
||||
os=-coff
|
||||
;;
|
||||
c8051-*)
|
||||
os=-elf
|
||||
;;
|
||||
hexagon-*)
|
||||
os=-elf
|
||||
;;
|
||||
|
@ -1 +1 @@
|
||||
0672cb7e29cdfbb304ed56160f4892d1569aac55
|
||||
8b83212143d2cd84c76c503d5accd3056bcbd80e
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1 +1 @@
|
||||
63ae69dc6fecaf83c52fba2ad334f4b1369fb1cd
|
||||
a356acafa4548959e97355d1e8044b7201661754
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
2
libgc/m4/libtool.m4.REMOVED.git-id
vendored
2
libgc/m4/libtool.m4.REMOVED.git-id
vendored
@ -1 +1 @@
|
||||
56666f0eceac29ace0fff6cfefa246a4ab93174c
|
||||
d7c043f4f998971f1b81f7ab2c1e095fef45dee5
|
@ -1,7 +1,7 @@
|
||||
#! /bin/sh
|
||||
# Common wrapper for a few potentially missing GNU programs.
|
||||
|
||||
scriptversion=2012-06-26.16; # UTC
|
||||
scriptversion=2013-10-28.13; # UTC
|
||||
|
||||
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
|
||||
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
@ -160,7 +160,7 @@ give_advice ()
|
||||
;;
|
||||
autom4te*)
|
||||
echo "You might have modified some maintainer files that require"
|
||||
echo "the 'automa4te' program to be rebuilt."
|
||||
echo "the 'autom4te' program to be rebuilt."
|
||||
program_details 'autom4te'
|
||||
;;
|
||||
bison*|yacc*)
|
||||
|
@ -1 +1 @@
|
||||
63ae69dc6fecaf83c52fba2ad334f4b1369fb1cd
|
||||
a356acafa4548959e97355d1e8044b7201661754
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
2
m4/libtool.m4.REMOVED.git-id
vendored
2
m4/libtool.m4.REMOVED.git-id
vendored
@ -1 +1 @@
|
||||
56666f0eceac29ace0fff6cfefa246a4ab93174c
|
||||
d7c043f4f998971f1b81f7ab2c1e095fef45dee5
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -21,9 +21,34 @@ default only the assemblies specified in the command line will be
|
||||
included in the bundle. To automatically include all of the
|
||||
dependencies referenced, use the "--deps" command line option.
|
||||
.PP
|
||||
Use \fImkbundle\FP when you want the startup runtime to load the 1.0
|
||||
profile, and use \fImkbundle2\fP when you want the startup runtime to load
|
||||
the 2.0 profile.
|
||||
There are two modes of operation, the default one uses the
|
||||
C compiler to create a bundle and requires a complete C and Mono SDK
|
||||
to produced executables. The simple mode (enabled when using the
|
||||
"--simple") command line option does not require this, and also allows
|
||||
for cross compilation.
|
||||
.PP
|
||||
For example, to create a bundle for hello world, use the following
|
||||
command:
|
||||
.nf
|
||||
$ mkbundle -o hello --simple hello.exe
|
||||
.fi
|
||||
.PP
|
||||
The simple version allows for cross-compiling, this requires a Mono
|
||||
runtime to be installed in the ~/.mono/targets/TARGET/mono to be
|
||||
available. You can use the "--local-targets" to list all available
|
||||
targets, and the "--cross" argument to specify the target, like this:
|
||||
.nf
|
||||
$ mkbundle --local-targets
|
||||
Available targets:
|
||||
default - Current System Mono
|
||||
4.4.0-macosx-x86
|
||||
4.4.0-debian-8-arm64
|
||||
$ mkbundle --cross 4.4.0-debian-8-arm64 hello.exe -o hello-debian
|
||||
.fi
|
||||
.PP
|
||||
The above will bundle your native library into hello-debian for
|
||||
a Debian 8 system running on an ARM64 machine.
|
||||
.SH OLD EMBEDDING
|
||||
.PP
|
||||
For example, to create a bundle for hello world, use the following
|
||||
command:
|
||||
@ -57,6 +82,12 @@ are available to the embedded runtime.
|
||||
.I "-c"
|
||||
Produce the stub file, do not compile the resulting stub.
|
||||
.TP
|
||||
.I "--cross target"
|
||||
Creates a bundle for the specified target platform. The target
|
||||
must be a directory in ~/.mono/targets/ that contains a "mono"
|
||||
binary. You can fetch various targets using the --fetch-target
|
||||
command line option.
|
||||
.TP
|
||||
.I "-o filename"
|
||||
Places the output on `out'. If the flag -c is specified, this is the
|
||||
C host program. If not, this contains the resulting executable.
|
||||
@ -74,20 +105,31 @@ Typically this is $prefix/etc/mono/1.0/machine.config or
|
||||
$prefix/etc/mono/2.0/machine.config depending on the profile that you
|
||||
are using (1.0 or 2.0)
|
||||
.TP
|
||||
.I "--nodeps"
|
||||
This is the default: \fImkbundle\fP will only include the assemblies that
|
||||
were specified on the command line to reduce the size of the resulting
|
||||
image created.
|
||||
.TP
|
||||
.I "--deps"
|
||||
This option will bundle all of the referenced assemblies for the
|
||||
assemblies listed on the command line option. This is useful to
|
||||
distribute a self-contained image.
|
||||
.TP
|
||||
.I "--fetch-target target"
|
||||
Downloads a precompiled runtime for the specified target from the Mono
|
||||
distribution site.
|
||||
.TP
|
||||
.I "--nodeps"
|
||||
This is the default: \fImkbundle\fP will only include the assemblies that
|
||||
were specified on the command line to reduce the size of the resulting
|
||||
image created.
|
||||
.TP
|
||||
.I "--keeptemp"
|
||||
By default \fImkbundle\fP will delete the temporary files that it uses to
|
||||
produce the bundle. This option keeps the file around.
|
||||
.TP
|
||||
.I "--lists-targets"
|
||||
Lists all of the available local cross compilation targets available
|
||||
as precompiled binaries on the Mono distribution server.
|
||||
.TP
|
||||
.I "--local-targets"
|
||||
Lists all of the available local cross compilation targets.
|
||||
.TP
|
||||
.I "--machine-config FILE"
|
||||
Uses the given FILE as the machine.config file for the generated
|
||||
application.
|
||||
@ -102,13 +144,10 @@ When passed, DIR will be set for the MONO_CFG_DIR environment variable
|
||||
By default \fImkbundle\fP dynamically links to mono and glib. This option
|
||||
causes it to statically link instead.
|
||||
.TP
|
||||
.B Important:
|
||||
Since the Mono runtime is licensed under the LGPL, even if you use
|
||||
static you should transfer the component pieces of the mkbundle to
|
||||
your users so they are able to upgrade the Mono runtime on their own.
|
||||
.TP
|
||||
If you want to use this for commercial licenses, you must obtain a
|
||||
proprietary license for Mono from mono@novell.com
|
||||
.I "--target-server SERVER"
|
||||
By default the mkbundle tool will download from a Mono server the
|
||||
target runtimes, you can specify a different server to provide
|
||||
cross-compiled runtimes.
|
||||
.TP
|
||||
.I "-z"
|
||||
Compresses the assemblies before embedding. This results in smaller
|
||||
@ -133,6 +172,8 @@ Mono runtime, separated by spaces. See the mono(1) manual page or run mono --hel
|
||||
.SH FILES
|
||||
This program will load referenced assemblies from the Mono assembly
|
||||
cache.
|
||||
.PP
|
||||
Targets are loaded from ~/.mono/targets/TARGETNAME/mono
|
||||
.SH BUGS
|
||||
The option "--static" is not supported under Windows.
|
||||
Moreover, a full cygwin environment containing at least "gcc" and "as"
|
||||
|
@ -1035,7 +1035,7 @@ namespace Microsoft.Build.BuildEngine {
|
||||
evaluatedProperties.AddProperty (new BuildProperty ("OS", OS, PropertyType.Environment));
|
||||
#if XBUILD_12
|
||||
// see http://msdn.microsoft.com/en-us/library/vstudio/hh162058(v=vs.120).aspx
|
||||
if (effective_tools_version == "12.0") {
|
||||
if (effective_tools_version == "12.0" || effective_tools_version == "14.0") {
|
||||
evaluatedProperties.AddProperty (new BuildProperty ("MSBuildToolsPath32", toolsPath, PropertyType.Reserved));
|
||||
|
||||
var frameworkToolsPath = ToolLocationHelper.GetPathToDotNetFramework (TargetDotNetFrameworkVersion.Version451);
|
||||
|
@ -128,6 +128,10 @@ namespace Microsoft.Build.Tasks {
|
||||
relatedFiles = tempRelatedFiles.Values.ToArray ();
|
||||
resolvedDependencyFiles = tempResolvedDepFiles.Values.ToArray ();
|
||||
|
||||
#if XBUILD_14
|
||||
DependsOnSystemRuntime = resolvedDependencyFiles.Any (x => Path.GetFileName (x.ItemSpec) == "System.Runtime.dll").ToString ();
|
||||
#endif
|
||||
|
||||
tempResolvedFiles.Clear ();
|
||||
tempCopyLocalFiles.Clear ();
|
||||
tempSatelliteFiles.Clear ();
|
||||
|
@ -40,65 +40,16 @@ namespace Mono.Security.Protocol.Tls
|
||||
|
||||
public static CipherSuiteCollection GetSupportedCiphers (bool server, SecurityProtocolType protocol)
|
||||
{
|
||||
CipherSuiteCollection suites;
|
||||
switch (protocol) {
|
||||
case SecurityProtocolType.Default:
|
||||
case SecurityProtocolType.Tls:
|
||||
suites = CipherSuiteFactory.GetTls1SupportedCiphers ();
|
||||
break;
|
||||
return CipherSuiteFactory.GetTls1SupportedCiphers ();
|
||||
case SecurityProtocolType.Ssl3:
|
||||
suites = CipherSuiteFactory.GetSsl3SupportedCiphers ();
|
||||
break;
|
||||
return CipherSuiteFactory.GetSsl3SupportedCiphers ();
|
||||
case SecurityProtocolType.Ssl2:
|
||||
default:
|
||||
throw new NotSupportedException ("Unsupported security protocol type");
|
||||
}
|
||||
|
||||
IEnumerable<string> list = null;
|
||||
#if INSIDE_SYSTEM
|
||||
// if SSL/TLS support is built-in System.dll (e.g. monotouch) then we can access ServicePointManager
|
||||
// extension directly
|
||||
var cb = server ? ServicePointManager.ServerCipherSuitesCallback : ServicePointManager.ClientCipherSuitesCallback;
|
||||
if (cb == null)
|
||||
return suites; // e.g. no callback was set
|
||||
|
||||
list = cb ((System.Net.SecurityProtocolType) (int) protocol, suites.GetNames ());
|
||||
#elif !BOOTSTRAP_BASIC
|
||||
// Mono.Security must work on MS.NET so it cannot depend on any Mono-specific extensions
|
||||
PropertyInfo pi = null;
|
||||
if (server) {
|
||||
if (server_callback == null)
|
||||
server_callback = spm.GetProperty ("ServerCipherSuitesCallback", BindingFlags.Static | BindingFlags.Public);
|
||||
pi = server_callback;
|
||||
} else {
|
||||
if (client_callback == null)
|
||||
client_callback = spm.GetProperty ("ClientCipherSuitesCallback", BindingFlags.Static | BindingFlags.Public);
|
||||
pi = client_callback;
|
||||
}
|
||||
if (pi == null)
|
||||
return suites; // e.g. MS runtime - return every supported suites
|
||||
|
||||
var cb = (Delegate) pi.GetGetMethod ().Invoke (null, null);
|
||||
if (cb == null)
|
||||
return suites; // e.g. no callback was set - return every supported suites
|
||||
|
||||
list = (IEnumerable<string>) cb.DynamicInvoke (new object[] {
|
||||
(System.Net.SecurityProtocolType) (int) protocol, suites.GetNames ()
|
||||
});
|
||||
#else
|
||||
// TODO: right now the callback is only available when using System.Net.* types for SSL/TLS
|
||||
return suites;
|
||||
#endif
|
||||
CipherSuiteCollection allowed = new CipherSuiteCollection (protocol);
|
||||
if (list != null) {
|
||||
foreach (var name in list) {
|
||||
// add any supported (ignore unknowns) ciphers requested by the callback
|
||||
var cipher = suites [name];
|
||||
if (cipher != null)
|
||||
allowed.Add (cipher);
|
||||
}
|
||||
}
|
||||
return allowed;
|
||||
}
|
||||
|
||||
#region Private Static Methods
|
||||
|
@ -73,16 +73,12 @@ namespace Mono.Net.Security
|
||||
public static X509Chain CreateX509Chain (XX509CertificateCollection certs)
|
||||
{
|
||||
var chain = new X509Chain ();
|
||||
chain.ChainPolicy = new X509ChainPolicy ();
|
||||
chain.ChainPolicy = new X509ChainPolicy ((X509CertificateCollection)(object)certs);
|
||||
|
||||
#if !MOBILE
|
||||
chain.ChainPolicy.RevocationMode = revocation_mode;
|
||||
#endif
|
||||
|
||||
for (int i = 1; i < certs.Count; i++) {
|
||||
chain.ChainPolicy.ExtraStore.Add (certs [i]);
|
||||
}
|
||||
|
||||
return chain;
|
||||
}
|
||||
|
||||
|
@ -1 +1 @@
|
||||
0f1c977a71d57169dc91c54c8baa329f65d18b38
|
||||
b41d204ace8747f8b745660642c23d3998baf913
|
@ -12,12 +12,20 @@ using System.Collections.Generic;
|
||||
|
||||
namespace System.Net {
|
||||
|
||||
/*
|
||||
* The idea behind this API was to let the application filter the set of cipher suites received / send to
|
||||
* the remote side. This concept does not any longer work with the new native implementations.
|
||||
*/
|
||||
|
||||
[Obsolete ("This API is no longer supported.")]
|
||||
public delegate IEnumerable<string> CipherSuitesCallback (SecurityProtocolType protocol, IEnumerable<string> allCiphers);
|
||||
|
||||
public partial class ServicePointManager {
|
||||
|
||||
[Obsolete ("This API is no longer supported.", true)]
|
||||
public static CipherSuitesCallback ClientCipherSuitesCallback { get; set; }
|
||||
|
||||
[Obsolete ("This API is no longer supported.", true)]
|
||||
public static CipherSuitesCallback ServerCipherSuitesCallback { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -154,7 +154,8 @@ namespace System.Security.Cryptography.X509Certificates {
|
||||
|
||||
certArray = FromIntPtrs (secCerts);
|
||||
|
||||
host = CFStringCreateWithCharacters (IntPtr.Zero, hostName, (IntPtr) hostName.Length);
|
||||
if (!string.IsNullOrEmpty (hostName))
|
||||
host = CFStringCreateWithCharacters (IntPtr.Zero, hostName, (IntPtr) hostName.Length);
|
||||
sslsecpolicy = SecPolicyCreateSSL (true, host);
|
||||
|
||||
int code = SecTrustCreateWithCertificates (certArray, sslsecpolicy, out sectrust);
|
||||
|
@ -35,7 +35,8 @@ namespace System.Security.Cryptography.X509Certificates {
|
||||
|
||||
private OidCollection apps;
|
||||
private OidCollection cert;
|
||||
private X509Certificate2Collection store;
|
||||
private X509CertificateCollection store;
|
||||
private X509Certificate2Collection store2;
|
||||
private X509RevocationFlag rflag;
|
||||
private X509RevocationMode mode;
|
||||
private TimeSpan timeout;
|
||||
@ -49,6 +50,24 @@ namespace System.Security.Cryptography.X509Certificates {
|
||||
Reset ();
|
||||
}
|
||||
|
||||
/*
|
||||
* Lazy-init ExtraStore from X509CertificateCollection.
|
||||
* This is called from Mono.Net.Security.SystemCertificateValidator.CreateX509Chain.
|
||||
*
|
||||
* AppleTLS supports a lazily-initialized X509Certificate, but not X509Certificate2 so
|
||||
* we need to fall-back to using Mono.Security.X509 whenever we need an X509Certificate2.
|
||||
* To avoid unnecessary fallbacks, the private Mono.Net.Security APIs use X509Certificate
|
||||
* instead of X509Certificate2.
|
||||
*
|
||||
* Since 'ExtraStore' returns X509Certificate2Collection, we need to convert these to
|
||||
* X509Certificate2.
|
||||
*/
|
||||
internal X509ChainPolicy (X509CertificateCollection store)
|
||||
{
|
||||
this.store = store;
|
||||
Reset ();
|
||||
}
|
||||
|
||||
// properties
|
||||
|
||||
public OidCollection ApplicationPolicy {
|
||||
@ -60,7 +79,18 @@ namespace System.Security.Cryptography.X509Certificates {
|
||||
}
|
||||
|
||||
public X509Certificate2Collection ExtraStore {
|
||||
get { return store; }
|
||||
get {
|
||||
if (store2 != null)
|
||||
return store2;
|
||||
|
||||
store2 = new X509Certificate2Collection ();
|
||||
if (store != null) {
|
||||
foreach (var cert in store) {
|
||||
store2.Add (new X509Certificate2 (cert));
|
||||
}
|
||||
}
|
||||
return store2;
|
||||
}
|
||||
}
|
||||
|
||||
public X509RevocationFlag RevocationFlag {
|
||||
@ -106,7 +136,7 @@ namespace System.Security.Cryptography.X509Certificates {
|
||||
{
|
||||
apps = new OidCollection ();
|
||||
cert = new OidCollection ();
|
||||
store = new X509Certificate2Collection ();
|
||||
store2 = null;
|
||||
rflag = X509RevocationFlag.ExcludeRoot;
|
||||
mode = X509RevocationMode.Online;
|
||||
timeout = TimeSpan.Zero;
|
||||
|
@ -247,6 +247,7 @@ System.Net.Sockets/MulticastOptionTest.cs
|
||||
System.Net.Sockets/NetworkStreamTest.cs
|
||||
System.Net.Sockets/TcpClientTest.cs
|
||||
System.Net.Sockets/TcpListenerTest.cs
|
||||
System.Net.Sockets/SocketAcceptAsyncTest.cs
|
||||
System.Net.Sockets/SocketTest.cs
|
||||
System.Net.Sockets/SocketAsyncEventArgsTest.cs
|
||||
System.Net.Sockets/SocketConnectAsyncTest.cs
|
||||
|
@ -93,80 +93,6 @@ public class SslStreamTest {
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ClientCipherSuitesCallback ()
|
||||
{
|
||||
try {
|
||||
ServicePointManager.ClientCipherSuitesCallback += (SecurityProtocolType p, IEnumerable<string> allCiphers) => {
|
||||
string prefix = p == SecurityProtocolType.Tls ? "TLS_" : "SSL_";
|
||||
return new List<string> { prefix + "RSA_WITH_AES_128_CBC_SHA" };
|
||||
};
|
||||
// client will only offers AES 128 - that's fine since the server support it (and many more ciphers)
|
||||
AuthenticateClientAndServer_ClientSendsNoData ();
|
||||
}
|
||||
finally {
|
||||
ServicePointManager.ClientCipherSuitesCallback = null;
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ServerCipherSuitesCallback ()
|
||||
{
|
||||
try {
|
||||
ServicePointManager.ServerCipherSuitesCallback += (SecurityProtocolType p, IEnumerable<string> allCiphers) => {
|
||||
string prefix = p == SecurityProtocolType.Tls ? "TLS_" : "SSL_";
|
||||
return new List<string> { prefix + "RSA_WITH_AES_256_CBC_SHA" };
|
||||
};
|
||||
// server only accept AES 256 - that's fine since the client support it (and many more ciphers)
|
||||
AuthenticateClientAndServer_ClientSendsNoData ();
|
||||
}
|
||||
finally {
|
||||
ServicePointManager.ServerCipherSuitesCallback = null;
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CipherSuitesCallbacks ()
|
||||
{
|
||||
try {
|
||||
ServicePointManager.ClientCipherSuitesCallback += (SecurityProtocolType p, IEnumerable<string> allCiphers) => {
|
||||
string prefix = p == SecurityProtocolType.Tls ? "TLS_" : "SSL_";
|
||||
return new List<string> { prefix + "RSA_WITH_AES_128_CBC_SHA", prefix + "RSA_WITH_AES_256_CBC_SHA" };
|
||||
};
|
||||
ServicePointManager.ServerCipherSuitesCallback += (SecurityProtocolType p, IEnumerable<string> allCiphers) => {
|
||||
string prefix = p == SecurityProtocolType.Tls ? "TLS_" : "SSL_";
|
||||
return new List<string> { prefix + "RSA_WITH_AES_128_CBC_SHA", prefix + "RSA_WITH_AES_256_CBC_SHA" };
|
||||
};
|
||||
// both client and server supports AES (128 and 256) - server will select 128 (first choice)
|
||||
AuthenticateClientAndServer_ClientSendsNoData ();
|
||||
}
|
||||
finally {
|
||||
ServicePointManager.ClientCipherSuitesCallback = null;
|
||||
ServicePointManager.ServerCipherSuitesCallback = null;
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void MismatchedCipherSuites ()
|
||||
{
|
||||
try {
|
||||
ServicePointManager.ClientCipherSuitesCallback += (SecurityProtocolType p, IEnumerable<string> allCiphers) => {
|
||||
string prefix = p == SecurityProtocolType.Tls ? "TLS_" : "SSL_";
|
||||
return new List<string> { prefix + "RSA_WITH_AES_128_CBC_SHA" };
|
||||
};
|
||||
ServicePointManager.ServerCipherSuitesCallback += (SecurityProtocolType p, IEnumerable<string> allCiphers) => {
|
||||
string prefix = p == SecurityProtocolType.Tls ? "TLS_" : "SSL_";
|
||||
return new List<string> { prefix + "RSA_WITH_AES_256_CBC_SHA" };
|
||||
};
|
||||
// mismatch! server will refuse and send back an alert
|
||||
AuthenticateClientAndServer (false, false);
|
||||
}
|
||||
finally {
|
||||
ServicePointManager.ClientCipherSuitesCallback = null;
|
||||
ServicePointManager.ServerCipherSuitesCallback = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void StartClientAndAuthenticate (ClientServerState state,
|
||||
IPEndPoint endPoint) {
|
||||
try {
|
||||
|
@ -0,0 +1,60 @@
|
||||
using System.Threading;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace MonoTests.System.Net.Sockets
|
||||
{
|
||||
[TestFixture]
|
||||
public class SocketAcceptAsyncTest
|
||||
{
|
||||
[Test]
|
||||
public void AcceptAsyncShouldUseAcceptSocketFromEventArgs()
|
||||
{
|
||||
var readyEvent = new ManualResetEvent(false);
|
||||
var mainEvent = new ManualResetEvent(false);
|
||||
var listenSocket = new Socket(
|
||||
AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||
var serverSocket = new Socket(
|
||||
AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||
Socket acceptedSocket = null;
|
||||
|
||||
ThreadPool.QueueUserWorkItem(_ =>
|
||||
{
|
||||
listenSocket.Bind(new IPEndPoint(IPAddress.Loopback, 0));
|
||||
listenSocket.Listen(1);
|
||||
|
||||
var asyncEventArgs = new SocketAsyncEventArgs {AcceptSocket = serverSocket};
|
||||
asyncEventArgs.Completed += (s, e) =>
|
||||
{
|
||||
acceptedSocket = e.AcceptSocket;
|
||||
mainEvent.Set();
|
||||
};
|
||||
|
||||
readyEvent.Set();
|
||||
|
||||
if (listenSocket.AcceptAsync(asyncEventArgs))
|
||||
return;
|
||||
acceptedSocket = asyncEventArgs.AcceptSocket;
|
||||
mainEvent.Set();
|
||||
});
|
||||
Assert.IsTrue(readyEvent.WaitOne(1500));
|
||||
|
||||
var clientSocket = new Socket(
|
||||
AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||
clientSocket.Connect(listenSocket.LocalEndPoint);
|
||||
clientSocket.NoDelay = true;
|
||||
|
||||
Assert.IsTrue(mainEvent.WaitOne(1500));
|
||||
Assert.AreEqual(serverSocket, acceptedSocket);
|
||||
mainEvent.Reset();
|
||||
|
||||
if (acceptedSocket != null)
|
||||
acceptedSocket.Close();
|
||||
|
||||
listenSocket.Close();
|
||||
readyEvent.Close();
|
||||
mainEvent.Close();
|
||||
}
|
||||
}
|
||||
}
|
@ -7,13 +7,6 @@
|
||||
// (C) 2001 Mads Pultz
|
||||
// (C) 2003 Martin Willemoes Hansen
|
||||
//
|
||||
// This test assumes the following:
|
||||
// 1) The following Internet sites exist:
|
||||
// www.go-mono.com with IP address 64.14.94.188
|
||||
// info.diku.dk with IP address 130.225.96.4
|
||||
// 2) The following DNS name does not exist:
|
||||
// www.hopefullydoesnotexist.dk
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
@ -28,12 +21,12 @@ namespace MonoTests.System.Net
|
||||
[TestFixture]
|
||||
public class DnsTest
|
||||
{
|
||||
private String site1Name = "jenkins.mono-project.com",
|
||||
site1Dot = "162.253.133.196",
|
||||
site2Name = "info.diku.dk",
|
||||
site2Dot = "130.225.96.4",
|
||||
private String site1Name = "google-public-dns-a.google.com",
|
||||
site1Dot = "8.8.8.8",
|
||||
site2Name = "google-public-dns-b.google.com",
|
||||
site2Dot = "8.8.4.4",
|
||||
noneExistingSite = "unlikely.xamarin.com";
|
||||
private uint site1IP = 1852407392, site2IP = 2195808260; // Big-Endian
|
||||
private uint site1IP = 134744072, site2IP = 134743044; // Big-Endian
|
||||
|
||||
[Test]
|
||||
public void AsyncGetHostByName ()
|
||||
@ -44,7 +37,7 @@ namespace MonoTests.System.Net
|
||||
IAsyncResult async = Dns.BeginGetHostByName (site1Name, null, null);
|
||||
IPHostEntry entry = Dns.EndGetHostByName (async);
|
||||
SubTestValidIPHostEntry (entry);
|
||||
Assert.IsTrue (entry.HostName == "jenkins.mono-project.com");
|
||||
Assert.IsTrue (entry.HostName == "google-public-dns-a.google.com");
|
||||
}
|
||||
|
||||
void GetHostByNameCallback (IAsyncResult ar)
|
||||
@ -189,7 +182,7 @@ namespace MonoTests.System.Net
|
||||
[Test]
|
||||
public void GetHostByName ()
|
||||
{
|
||||
SubTestGetHostByName ("jenkins.mono-project.com", site1Dot);
|
||||
SubTestGetHostByName (site1Name, site1Dot);
|
||||
SubTestGetHostByName (site2Name, site2Dot);
|
||||
try {
|
||||
var entry = Dns.GetHostByName (noneExistingSite);
|
||||
|
@ -148,34 +148,46 @@ namespace System.Security.Cryptography.X509Certificates
|
||||
}
|
||||
}
|
||||
|
||||
#if !MONOTOUCH && !XAMMAC
|
||||
public static X509CertificateImpl Import (byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags)
|
||||
static byte[] PEM (string type, byte[] data)
|
||||
{
|
||||
if (nativeHelper != null)
|
||||
return nativeHelper.Import (rawData, password, keyStorageFlags);
|
||||
string pem = Encoding.ASCII.GetString (data);
|
||||
string header = String.Format ("-----BEGIN {0}-----", type);
|
||||
string footer = String.Format ("-----END {0}-----", type);
|
||||
int start = pem.IndexOf (header) + header.Length;
|
||||
int end = pem.IndexOf (footer, start);
|
||||
string base64 = pem.Substring (start, (end - start));
|
||||
return Convert.FromBase64String (base64);
|
||||
}
|
||||
|
||||
static byte[] ConvertData (byte[] data)
|
||||
{
|
||||
if (data == null || data.Length == 0)
|
||||
return data;
|
||||
|
||||
// does it looks like PEM ?
|
||||
if (data [0] != 0x30) {
|
||||
try {
|
||||
return PEM ("CERTIFICATE", data);
|
||||
} catch {
|
||||
// let the implementation take care of it.
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
#if !MONOTOUCH && !XAMMAC
|
||||
static X509CertificateImpl Import (byte[] rawData)
|
||||
{
|
||||
MX.X509Certificate x509;
|
||||
if (password == null) {
|
||||
try {
|
||||
x509 = new MX.X509Certificate (rawData);
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
x509 = new MX.X509Certificate (rawData);
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
x509 = ImportPkcs12 (rawData, null);
|
||||
} catch {
|
||||
string msg = Locale.GetText ("Unable to decode certificate.");
|
||||
// inner exception is the original (not second) exception
|
||||
throw new CryptographicException (msg, e);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// try PKCS#12
|
||||
try {
|
||||
x509 = ImportPkcs12 (rawData, password);
|
||||
}
|
||||
catch {
|
||||
// it's possible to supply a (unrequired/unusued) password
|
||||
// fix bug #79028
|
||||
x509 = new MX.X509Certificate (rawData);
|
||||
x509 = ImportPkcs12 (rawData, null);
|
||||
} catch {
|
||||
string msg = Locale.GetText ("Unable to decode certificate.");
|
||||
// inner exception is the original (not second) exception
|
||||
throw new CryptographicException (msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -183,6 +195,26 @@ namespace System.Security.Cryptography.X509Certificates
|
||||
}
|
||||
#endif
|
||||
|
||||
public static X509CertificateImpl Import (byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags)
|
||||
{
|
||||
if (password == null) {
|
||||
rawData = ConvertData (rawData);
|
||||
return Import (rawData);
|
||||
}
|
||||
|
||||
MX.X509Certificate x509;
|
||||
// try PKCS#12
|
||||
try {
|
||||
x509 = ImportPkcs12 (rawData, password);
|
||||
} catch {
|
||||
// it's possible to supply a (unrequired/unusued) password
|
||||
// fix bug #79028
|
||||
x509 = new MX.X509Certificate (rawData);
|
||||
}
|
||||
|
||||
return new X509CertificateImplMono (x509);
|
||||
}
|
||||
|
||||
public static byte[] Export (X509CertificateImpl impl, X509ContentType contentType, byte[] password)
|
||||
{
|
||||
ThrowIfContextInvalid (impl);
|
||||
|
@ -1671,6 +1671,9 @@ namespace MonoTests.System.IO
|
||||
} catch (FileNotFoundException) {
|
||||
// Only run this test on platforms where /dev/zero exists
|
||||
Assert.Ignore();
|
||||
} catch (DirectoryNotFoundException) {
|
||||
// Only run this test on platforms where /dev exists
|
||||
Assert.Ignore();
|
||||
}
|
||||
|
||||
// this shouldn't throw
|
||||
|
@ -304,7 +304,7 @@ namespace MonoTests.System.Threading
|
||||
});
|
||||
}
|
||||
|
||||
Assert.IsTrue (ce.Wait (1000), "#1");
|
||||
Assert.IsTrue (ce.Wait (10000), "#1");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -103,7 +103,7 @@ namespace MonoTests.System.Threading {
|
||||
[Test] // bug #320950
|
||||
public void TestDispose2 ()
|
||||
{
|
||||
Timer t = new Timer (o => Callback (o), null, 10, 10);
|
||||
Timer t = new Timer (o => DoNothing (o), null, 10, 10);
|
||||
t.Dispose ();
|
||||
t.Dispose ();
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
cda5f1e52d7ff05ac3c67c95adb635880bcd8928
|
||||
5203fe1002a11476d61e6876fd7bfce0d3bdd618
|
@ -1 +1 @@
|
||||
f28fbc2560c903ccf538f1f56b893a8ee0b9b7b0
|
||||
f1a099fb8bb3184e5205e97ba95cf836dfe8cc55
|
@ -1 +1 @@
|
||||
d75327e36d7b32dc9109603a62412b3e8aa159fe
|
||||
0c4f173c3278c4f1e67d28260a84b3168b0cb207
|
@ -1 +1 @@
|
||||
dd524703971ceb5b9e38a37927cbf400b8445a80
|
||||
94fa7ed0e1fb060ea39ff108b58e4bf1c7169357
|
@ -18,11 +18,12 @@ install-local:
|
||||
$(INSTALL_LIB) ../../../external/binary-reference-assemblies/v4.5/*.dll $(PROFILE_DIR)/4.5-api
|
||||
$(INSTALL_LIB) ../../../external/binary-reference-assemblies/v4.5/Facades/*.dll $(PROFILE_DIR)/4.5-api/Facades
|
||||
|
||||
# Unfortunately, a few programs (most notably NUnit) have hardcoded checks for <prefix>/lib/mono/4.0/mscorlib.dll,
|
||||
# Unfortunately, a few programs (most notably NUnit and FSharp) have hardcoded checks for <prefix>/lib/mono/4.0/mscorlib.dll or Mono.Posix.dll,
|
||||
# so we need to place something there or those tools break. We decided to symlink to the reference assembly for now.
|
||||
# See https://bugzilla.xamarin.com/show_bug.cgi?id=38331
|
||||
# See https://bugzilla.xamarin.com/show_bug.cgi?id=38331 and https://bugzilla.xamarin.com/show_bug.cgi?id=41052
|
||||
$(MKINSTALLDIRS) $(PROFILE_DIR)/4.0
|
||||
ln -sf ../4.0-api/mscorlib.dll $(PROFILE_DIR)/4.0/mscorlib.dll
|
||||
ln -sf ../4.0-api/Mono.Posix.dll $(PROFILE_DIR)/4.0/Mono.Posix.dll
|
||||
|
||||
DISTFILES = $(wildcard ../../../external/binary-reference-assemblies/v4.5/Facades/*.dll) $(wildcard ../../../external/binary-reference-assemblies/v4.5/*.dll) $(wildcard ../../../external/binary-reference-assemblies/v4.0/*.dll) $(wildcard ../../../external/binary-reference-assemblies/v3.5/*.dll) $(wildcard ../../../external/binary-reference-assemblies/v2.0/*.dll) Makefile
|
||||
|
||||
|
@ -7,6 +7,11 @@
|
||||
// Miguel de Icaza
|
||||
//
|
||||
// (C) Novell, Inc 2004
|
||||
// (C) 2016 Xamarin Inc
|
||||
//
|
||||
// Missing features:
|
||||
// * Add support for packaging native libraries, extracting at runtime and setting the library path.
|
||||
// * Implement --list-targets lists all the available remote targets
|
||||
//
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
@ -17,8 +22,9 @@ using System.IO.Compression;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using IKVM.Reflection;
|
||||
|
||||
|
||||
using System.Linq;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
class MakeBundle {
|
||||
@ -40,6 +46,12 @@ class MakeBundle {
|
||||
static bool skip_scan;
|
||||
static string ctor_func;
|
||||
static bool quiet;
|
||||
static string cross_target = null;
|
||||
static string fetch_target = null;
|
||||
static bool custom_mode = true;
|
||||
static string embedded_options = null;
|
||||
static string runtime = null;
|
||||
static string target_server = "https://download.mono-project.com/runtimes/raw/";
|
||||
|
||||
static int Main (string [] args)
|
||||
{
|
||||
@ -55,10 +67,56 @@ class MakeBundle {
|
||||
Help ();
|
||||
return 1;
|
||||
|
||||
case "--simple":
|
||||
custom_mode = false;
|
||||
autodeps = true;
|
||||
break;
|
||||
|
||||
case "--custom":
|
||||
custom_mode = true;
|
||||
break;
|
||||
|
||||
case "-c":
|
||||
compile_only = true;
|
||||
break;
|
||||
|
||||
case "--local-targets":
|
||||
CommandLocalTargets ();
|
||||
return 0;
|
||||
|
||||
case "--cross":
|
||||
if (i+1 == top){
|
||||
Help ();
|
||||
return 1;
|
||||
}
|
||||
custom_mode = false;
|
||||
autodeps = true;
|
||||
cross_target = args [++i];
|
||||
break;
|
||||
|
||||
case "--fetch-target":
|
||||
if (i+1 == top){
|
||||
Help ();
|
||||
return 1;
|
||||
}
|
||||
fetch_target = args [++i];
|
||||
break;
|
||||
|
||||
case "--list-targets":
|
||||
var wc = new WebClient ();
|
||||
var s = wc.DownloadString (new Uri (target_server + "target-list.txt"));
|
||||
Console.WriteLine ("Cross-compilation targets available:\n" + s);
|
||||
|
||||
return 0;
|
||||
|
||||
case "--target-server":
|
||||
if (i+1 == top){
|
||||
Help ();
|
||||
return 1;
|
||||
}
|
||||
target_server = args [++i];
|
||||
break;
|
||||
|
||||
case "-o":
|
||||
if (i+1 == top){
|
||||
Help ();
|
||||
@ -67,6 +125,20 @@ class MakeBundle {
|
||||
output = args [++i];
|
||||
break;
|
||||
|
||||
case "--options":
|
||||
if (i+1 == top){
|
||||
Help ();
|
||||
return 1;
|
||||
}
|
||||
embedded_options = args [++i];
|
||||
break;
|
||||
case "--runtime":
|
||||
if (i+1 == top){
|
||||
Help ();
|
||||
return 1;
|
||||
}
|
||||
runtime = args [++i];
|
||||
break;
|
||||
case "-oo":
|
||||
if (i+1 == top){
|
||||
Help ();
|
||||
@ -94,6 +166,7 @@ class MakeBundle {
|
||||
case "--keeptemp":
|
||||
keeptemp = true;
|
||||
break;
|
||||
|
||||
case "--static":
|
||||
static_link = true;
|
||||
if (!quiet) {
|
||||
@ -193,13 +266,60 @@ class MakeBundle {
|
||||
foreach (string file in assemblies)
|
||||
if (!QueueAssembly (files, file))
|
||||
return 1;
|
||||
|
||||
GenerateBundles (files);
|
||||
//GenerateJitWrapper ();
|
||||
|
||||
if (fetch_target != null){
|
||||
var truntime = Path.Combine (targets_dir, fetch_target, "mono");
|
||||
Directory.CreateDirectory (Path.GetDirectoryName (truntime));
|
||||
var wc = new WebClient ();
|
||||
var uri = new Uri ($"{target_server}{fetch_target}");
|
||||
try {
|
||||
wc.DownloadFile (uri, truntime);
|
||||
} catch {
|
||||
Console.Error.WriteLine ($"Failure to download the specified runtime from {uri}");
|
||||
File.Delete (truntime);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (custom_mode)
|
||||
GenerateBundles (files);
|
||||
else {
|
||||
if (cross_target == "default")
|
||||
runtime = null;
|
||||
else {
|
||||
var truntime = Path.Combine (targets_dir, cross_target, "mono");
|
||||
if (!File.Exists (truntime)){
|
||||
Console.Error.WriteLine ($"The runtime for the {cross_target} does not exist, use --fetch-target {cross_target} to download first");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
GeneratePackage (files);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static string targets_dir = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.Personal), ".mono", "targets");
|
||||
|
||||
static void CommandLocalTargets ()
|
||||
{
|
||||
string [] targets;
|
||||
|
||||
Console.WriteLine ("Available targets:");
|
||||
Console.WriteLine ("\tdefault\t- Current System Mono");
|
||||
try {
|
||||
targets = Directory.GetDirectories (targets_dir);
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
foreach (var target in targets){
|
||||
var p = Path.Combine (target, "mono");
|
||||
if (File.Exists (p))
|
||||
Console.WriteLine ("\t{0}", Path.GetFileName (target));
|
||||
}
|
||||
}
|
||||
|
||||
static void WriteSymbol (StreamWriter sw, string name, long size)
|
||||
{
|
||||
switch (style){
|
||||
@ -260,6 +380,138 @@ class MakeBundle {
|
||||
|
||||
ts.WriteLine ();
|
||||
}
|
||||
|
||||
class PackageMaker {
|
||||
Dictionary<string, Tuple<long,int>> locations = new Dictionary<string, Tuple<long,int>> ();
|
||||
const int align = 4096;
|
||||
Stream package;
|
||||
|
||||
public PackageMaker (string output)
|
||||
{
|
||||
package = File.Create (output, 128*1024);
|
||||
if (IsUnix){
|
||||
File.SetAttributes (output, unchecked ((FileAttributes) 0x80000000));
|
||||
}
|
||||
}
|
||||
|
||||
public int AddFile (string fname)
|
||||
{
|
||||
using (Stream fileStream = File.OpenRead (fname)){
|
||||
var ret = fileStream.Length;
|
||||
|
||||
Console.WriteLine ("At {0:x} with input {1}", package.Position, fileStream.Length);
|
||||
fileStream.CopyTo (package);
|
||||
package.Position = package.Position + (align - (package.Position % align));
|
||||
|
||||
return (int) ret;
|
||||
}
|
||||
}
|
||||
|
||||
public void Add (string entry, string fname)
|
||||
{
|
||||
var p = package.Position;
|
||||
var size = AddFile (fname);
|
||||
|
||||
locations [entry] = Tuple.Create(p, size);
|
||||
}
|
||||
|
||||
public void AddString (string entry, string text)
|
||||
{
|
||||
var bytes = Encoding.UTF8.GetBytes (text);
|
||||
locations [entry] = Tuple.Create (package.Position, bytes.Length);
|
||||
package.Write (bytes, 0, bytes.Length);
|
||||
package.Position = package.Position + (align - (package.Position % align));
|
||||
}
|
||||
|
||||
public void Dump ()
|
||||
{
|
||||
foreach (var floc in locations.Keys){
|
||||
Console.WriteLine ($"{floc} at {locations[floc]:x}");
|
||||
}
|
||||
}
|
||||
|
||||
public void WriteIndex ()
|
||||
{
|
||||
var indexStart = package.Position;
|
||||
var binary = new BinaryWriter (package);
|
||||
|
||||
binary.Write (locations.Count);
|
||||
foreach (var entry in from entry in locations orderby entry.Value.Item1 ascending select entry){
|
||||
var bytes = Encoding.UTF8.GetBytes (entry.Key);
|
||||
binary.Write (bytes.Length+1);
|
||||
binary.Write (bytes);
|
||||
binary.Write ((byte) 0);
|
||||
binary.Write (entry.Value.Item1);
|
||||
binary.Write (entry.Value.Item2);
|
||||
}
|
||||
binary.Write (indexStart);
|
||||
binary.Write (Encoding.UTF8.GetBytes ("xmonkeysloveplay"));
|
||||
binary.Flush ();
|
||||
}
|
||||
|
||||
public void Close ()
|
||||
{
|
||||
WriteIndex ();
|
||||
package.Close ();
|
||||
package = null;
|
||||
}
|
||||
}
|
||||
|
||||
static bool MaybeAddFile (PackageMaker maker, string code, string file)
|
||||
{
|
||||
if (file == null)
|
||||
return true;
|
||||
|
||||
if (!File.Exists (file)){
|
||||
Console.Error.WriteLine ("The file {0} does not exist", file);
|
||||
return false;
|
||||
}
|
||||
maker.Add (code, file);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool GeneratePackage (List<string> files)
|
||||
{
|
||||
if (runtime == null){
|
||||
if (IsUnix)
|
||||
runtime = Process.GetCurrentProcess().MainModule.FileName;
|
||||
else {
|
||||
Console.Error.WriteLine ("You must specify at least one runtime with --runtime or --cross");
|
||||
Environment.Exit (1);
|
||||
}
|
||||
}
|
||||
if (!File.Exists (runtime)){
|
||||
Console.Error.WriteLine ($"The specified runtime at {runtime} does not exist");
|
||||
Environment.Exit (1);
|
||||
}
|
||||
|
||||
if (ctor_func != null){
|
||||
Console.Error.WriteLine ("--static-ctor not supported with package bundling, you must use native compilation for this");
|
||||
return false;
|
||||
}
|
||||
|
||||
var maker = new PackageMaker (output);
|
||||
maker.AddFile (runtime);
|
||||
|
||||
foreach (var url in files){
|
||||
string fname = LocateFile (new Uri (url).LocalPath);
|
||||
string aname = Path.GetFileName (fname);
|
||||
|
||||
maker.Add ("assembly:" + aname, fname);
|
||||
if (File.Exists (fname + ".config"))
|
||||
maker.Add ("config:" + aname, fname + ".config");
|
||||
}
|
||||
if (!MaybeAddFile (maker, "systemconfig:", config_file) || !MaybeAddFile (maker, "machineconfig:", machine_config_file))
|
||||
return false;
|
||||
|
||||
if (config_dir != null)
|
||||
maker.Add ("config_dir:", config_dir);
|
||||
if (embedded_options != null)
|
||||
maker.AddString ("options:", embedded_options);
|
||||
maker.Dump ();
|
||||
maker.Close ();
|
||||
return true;
|
||||
}
|
||||
|
||||
static void GenerateBundles (List<string> files)
|
||||
{
|
||||
@ -710,24 +962,34 @@ void mono_register_config_for_assembly (const char* assembly_name, cons
|
||||
{
|
||||
Console.WriteLine ("Usage is: mkbundle [options] assembly1 [assembly2...]\n\n" +
|
||||
"Options:\n" +
|
||||
" -c Produce stub only, do not compile\n" +
|
||||
" -o out Specifies output filename\n" +
|
||||
" -oo obj Specifies output filename for helper object file\n" +
|
||||
" --config F Bundle system config file `F'\n" +
|
||||
" --config-dir D Set MONO_CFG_DIR to `D'\n" +
|
||||
" --deps Turns on automatic dependency embedding (default on simple)\n" +
|
||||
" -L path Adds `path' to the search path for assemblies\n" +
|
||||
" --nodeps Turns off automatic dependency embedding (default)\n" +
|
||||
" --deps Turns on automatic dependency embedding\n" +
|
||||
" --machine-config F Use the given file as the machine.config for the application.\n" +
|
||||
" -o out Specifies output filename\n" +
|
||||
" --nodeps Turns off automatic dependency embedding (default on custom)\n" +
|
||||
" --skip-scan Skip scanning assemblies that could not be loaded (but still embed them).\n" +
|
||||
"\n" +
|
||||
"--simple Simple mode does not require a C toolchain and can cross compile\n" +
|
||||
" --cross TARGET Generates a binary for the given TARGET\n"+
|
||||
" --local-targets Lists locally available targets\n" +
|
||||
" --list-targets Lists available targets on the remote server\n" +
|
||||
" --options OPTIONS Embed the specified Mono command line options on target\n" +
|
||||
" --runtime RUNTIME Manually specifies the Mono runtime to use\n" +
|
||||
" --target-server URL Specified a server to download targets from, default is " + target_server + "\n" +
|
||||
"\n" +
|
||||
"--custom Builds a custom launcher, options for --custom\n" +
|
||||
" -c Produce stub only, do not compile\n" +
|
||||
" -oo obj Specifies output filename for helper object file\n" +
|
||||
" --dos2unix[=true|false]\n" +
|
||||
" When no value provided, or when `true` specified\n" +
|
||||
" `dos2unix` will be invoked to convert paths on Windows.\n" +
|
||||
" When `--dos2unix=false` used, dos2unix is NEVER used.\n" +
|
||||
" --keeptemp Keeps the temporary files\n" +
|
||||
" --config F Bundle system config file `F'\n" +
|
||||
" --config-dir D Set MONO_CFG_DIR to `D'\n" +
|
||||
" --machine-config F Use the given file as the machine.config for the application.\n" +
|
||||
" --static Statically link to mono libs\n" +
|
||||
" --nomain Don't include a main() function, for libraries\n" +
|
||||
" -z Compress the assemblies before embedding.\n" +
|
||||
" --skip-scan Skip scanning assemblies that could not be loaded (but still embed them).\n" +
|
||||
" --static-ctor ctor Add a constructor call to the supplied function.\n" +
|
||||
" You need zlib development headers and libraries.\n");
|
||||
}
|
||||
|
@ -104,7 +104,10 @@
|
||||
Text="OutDir property must end with a slash."/>
|
||||
</Target>
|
||||
|
||||
<Target Name="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<PrepareForBuildDependsOn>AssignLinkMetadata</PrepareForBuildDependsOn>
|
||||
</PropertyGroup>
|
||||
<Target Name="PrepareForBuild" DependsOnTargets="$(PrepareForBuildDependsOn)">
|
||||
<Message Importance="High" Text="Configuration: $(Configuration) Platform: $(Platform)"/>
|
||||
|
||||
<!-- Look for app.config, if $(AppConfig) is specified, then use that. Else look in
|
||||
@ -124,6 +127,18 @@
|
||||
/>
|
||||
</Target>
|
||||
|
||||
<Target Name="AssignLinkMetadata">
|
||||
<AssignLinkMetadata Items="@(EmbeddedResource)" Condition="'@(EmbeddedResource)' != '' and '%(EmbeddedResource.DefiningProjectFullPath)' != '$(MSBuildProjectFullPath)'">
|
||||
<Output TaskParameter="OutputItems" ItemName="_EmbeddedResourceWithLinkAssigned" />
|
||||
</AssignLinkMetadata>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Remove="@(_EmbeddedResourceWithLinkAssigned)" />
|
||||
<EmbeddedResource Include="@(_EmbeddedResourceWithLinkAssigned)" />
|
||||
<_EmbeddedResourceWithLinkAssigned Remove="@(_EmbeddedResourceWithLinkAssigned)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<PropertyGroup>
|
||||
<GetFrameworkPathsDependsOn />
|
||||
</PropertyGroup>
|
||||
|
@ -1,6 +1,7 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
|
||||
<UsingTask TaskName="Microsoft.Build.Tasks.AL" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<UsingTask TaskName="Microsoft.Build.Tasks.AssignTargetPath" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<UsingTask TaskName="Microsoft.Build.Tasks.AssignLinkMetadata" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<UsingTask TaskName="Microsoft.Build.Tasks.AssignCulture" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<UsingTask TaskName="Microsoft.Build.Tasks.AssignProjectConfiguration" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<UsingTask TaskName="Microsoft.Build.Tasks.CallTarget" AssemblyName="Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
|
4
missing
4
missing
@ -1,7 +1,7 @@
|
||||
#! /bin/sh
|
||||
# Common wrapper for a few potentially missing GNU programs.
|
||||
|
||||
scriptversion=2012-06-26.16; # UTC
|
||||
scriptversion=2013-10-28.13; # UTC
|
||||
|
||||
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
|
||||
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
@ -160,7 +160,7 @@ give_advice ()
|
||||
;;
|
||||
autom4te*)
|
||||
echo "You might have modified some maintainer files that require"
|
||||
echo "the 'automa4te' program to be rebuilt."
|
||||
echo "the 'autom4te' program to be rebuilt."
|
||||
program_details 'autom4te'
|
||||
;;
|
||||
bison*|yacc*)
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1 +1 @@
|
||||
108e7a1edde3397c6db74ce466bbd6aaf0bd4600
|
||||
b1e06c8ddc5390c6516f9636ffdc18b7d5849919
|
@ -47,13 +47,6 @@ epoll_init (gint wakeup_pipe_fd)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
epoll_cleanup (void)
|
||||
{
|
||||
g_free (epoll_events);
|
||||
close (epoll_fd);
|
||||
}
|
||||
|
||||
static void
|
||||
epoll_register_fd (gint fd, gint events, gboolean is_new)
|
||||
{
|
||||
@ -127,7 +120,6 @@ epoll_event_wait (void (*callback) (gint fd, gint events, gpointer user_data), g
|
||||
|
||||
static ThreadPoolIOBackend backend_epoll = {
|
||||
.init = epoll_init,
|
||||
.cleanup = epoll_cleanup,
|
||||
.register_fd = epoll_register_fd,
|
||||
.remove_fd = epoll_remove_fd,
|
||||
.event_wait = epoll_event_wait,
|
||||
|
@ -43,13 +43,6 @@ kqueue_init (gint wakeup_pipe_fd)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
kqueue_cleanup (void)
|
||||
{
|
||||
g_free (kqueue_events);
|
||||
close (kqueue_fd);
|
||||
}
|
||||
|
||||
static void
|
||||
kqueue_register_fd (gint fd, gint events, gboolean is_new)
|
||||
{
|
||||
@ -124,7 +117,6 @@ kqueue_event_wait (void (*callback) (gint fd, gint events, gpointer user_data),
|
||||
|
||||
static ThreadPoolIOBackend backend_kqueue = {
|
||||
.init = kqueue_init,
|
||||
.cleanup = kqueue_cleanup,
|
||||
.register_fd = kqueue_register_fd,
|
||||
.remove_fd = kqueue_remove_fd,
|
||||
.event_wait = kqueue_event_wait,
|
||||
|
@ -28,12 +28,6 @@ poll_init (gint wakeup_pipe_fd)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
poll_cleanup (void)
|
||||
{
|
||||
g_free (poll_fds);
|
||||
}
|
||||
|
||||
static void
|
||||
poll_register_fd (gint fd, gint events, gboolean is_new)
|
||||
{
|
||||
@ -236,7 +230,6 @@ poll_event_wait (void (*callback) (gint fd, gint events, gpointer user_data), gp
|
||||
|
||||
static ThreadPoolIOBackend backend_poll = {
|
||||
.init = poll_init,
|
||||
.cleanup = poll_cleanup,
|
||||
.register_fd = poll_register_fd,
|
||||
.remove_fd = poll_remove_fd,
|
||||
.event_wait = poll_event_wait,
|
||||
|
@ -31,7 +31,6 @@
|
||||
|
||||
typedef struct {
|
||||
gboolean (*init) (gint wakeup_pipe_fd);
|
||||
void (*cleanup) (void);
|
||||
void (*register_fd) (gint fd, gint events, gboolean is_new);
|
||||
void (*remove_fd) (gint fd);
|
||||
gint (*event_wait) (void (*callback) (gint fd, gint events, gpointer user_data), gpointer user_data);
|
||||
@ -540,24 +539,6 @@ cleanup (void)
|
||||
selector_thread_wakeup ();
|
||||
while (io_selector_running)
|
||||
g_usleep (1000);
|
||||
|
||||
mono_coop_mutex_destroy (&threadpool_io->updates_lock);
|
||||
mono_coop_cond_destroy (&threadpool_io->updates_cond);
|
||||
|
||||
threadpool_io->backend.cleanup ();
|
||||
|
||||
#if !defined(HOST_WIN32)
|
||||
close (threadpool_io->wakeup_pipes [0]);
|
||||
close (threadpool_io->wakeup_pipes [1]);
|
||||
#else
|
||||
closesocket (threadpool_io->wakeup_pipes [0]);
|
||||
closesocket (threadpool_io->wakeup_pipes [1]);
|
||||
#endif
|
||||
|
||||
g_assert (threadpool_io);
|
||||
g_free (threadpool_io);
|
||||
threadpool_io = NULL;
|
||||
g_assert (!threadpool_io);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -801,7 +801,16 @@ EXTRA_DIST = TestDriver.cs \
|
||||
Makefile.am.in
|
||||
|
||||
version.h: Makefile
|
||||
echo "#define FULL_VERSION \"Stable 4.4.0.148/fcf7a6d\"" > version.h
|
||||
if test -d $(top_srcdir)/.git; then \
|
||||
(cd $(top_srcdir); \
|
||||
LANG=C; export LANG; \
|
||||
branch=`git branch | grep '^\*' | sed 's/(detached from .*/explicit/' | cut -d ' ' -f 2`; \
|
||||
version=`git log --no-color --first-parent -n1 --pretty=format:%h`; \
|
||||
echo "#define FULL_VERSION \"$$branch/$$version\""; \
|
||||
); \
|
||||
else \
|
||||
echo "#define FULL_VERSION \"tarball\""; \
|
||||
fi > version.h
|
||||
|
||||
# Utility target for patching libtool to speed up linking
|
||||
patch-libtool:
|
||||
|
@ -801,7 +801,16 @@ EXTRA_DIST = TestDriver.cs \
|
||||
Makefile.am.in
|
||||
|
||||
version.h: Makefile
|
||||
echo "#define FULL_VERSION \"Stable 4.4.0.148/fcf7a6d\"" > version.h
|
||||
if test -d $(top_srcdir)/.git; then \
|
||||
(cd $(top_srcdir); \
|
||||
LANG=C; export LANG; \
|
||||
branch=`git branch | grep '^\*' | sed 's/(detached from .*/explicit/' | cut -d ' ' -f 2`; \
|
||||
version=`git log --no-color --first-parent -n1 --pretty=format:%h`; \
|
||||
echo "#define FULL_VERSION \"$$branch/$$version\""; \
|
||||
); \
|
||||
else \
|
||||
echo "#define FULL_VERSION \"tarball\""; \
|
||||
fi > version.h
|
||||
|
||||
# Utility target for patching libtool to speed up linking
|
||||
patch-libtool:
|
||||
|
@ -1 +1 @@
|
||||
626933e5ad9d50d227ef41d3c68cad86d47c96b1
|
||||
6c03785fef833c714738425b7c5b79097181b4c1
|
@ -2345,83 +2345,154 @@ mono_set_crash_chaining (gboolean chain_crashes)
|
||||
mono_do_crash_chaining = chain_crashes;
|
||||
}
|
||||
|
||||
void
|
||||
mono_parse_env_options (int *ref_argc, char **ref_argv [])
|
||||
/**
|
||||
* mono_parse_options_from:
|
||||
* @options: string containing strings
|
||||
* @ref_argc: pointer to the argc variable that might be updated
|
||||
* @ref_argv: pointer to the argv string vector variable that might be updated
|
||||
*
|
||||
* This function parses the contents of the `MONO_ENV_OPTIONS`
|
||||
* environment variable as if they were parsed by a command shell
|
||||
* splitting the contents by spaces into different elements of the
|
||||
* @argv vector. This method supports quoting with both the " and '
|
||||
* characters. Inside quoting, spaces and tabs are significant,
|
||||
* otherwise, they are considered argument separators.
|
||||
*
|
||||
* The \ character can be used to escape the next character which will
|
||||
* be added to the current element verbatim. Typically this is used
|
||||
* inside quotes. If the quotes are not balanced, this method
|
||||
*
|
||||
* If the environment variable is empty, no changes are made
|
||||
* to the values pointed by @ref_argc and @ref_argv.
|
||||
*
|
||||
* Otherwise the @ref_argv is modified to point to a new array that contains
|
||||
* all the previous elements contained in the vector, plus the values parsed.
|
||||
* The @argc is updated to match the new number of parameters.
|
||||
*
|
||||
* Returns: The value NULL is returned on success, otherwise a g_strdup allocated
|
||||
* string is returned (this is an alias to malloc under normal circumstances) that
|
||||
* contains the error message that happened during parsing.
|
||||
*/
|
||||
char *
|
||||
mono_parse_options_from (const char *options, int *ref_argc, char **ref_argv [])
|
||||
{
|
||||
int argc = *ref_argc;
|
||||
char **argv = *ref_argv;
|
||||
GPtrArray *array = g_ptr_array_new ();
|
||||
GString *buffer = g_string_new ("");
|
||||
const char *p;
|
||||
unsigned i;
|
||||
gboolean in_quotes = FALSE;
|
||||
char quote_char = '\0';
|
||||
|
||||
const char *env_options = g_getenv ("MONO_ENV_OPTIONS");
|
||||
if (env_options != NULL){
|
||||
GPtrArray *array = g_ptr_array_new ();
|
||||
GString *buffer = g_string_new ("");
|
||||
const char *p;
|
||||
unsigned i;
|
||||
gboolean in_quotes = FALSE;
|
||||
char quote_char = '\0';
|
||||
|
||||
for (p = env_options; *p; p++){
|
||||
switch (*p){
|
||||
case ' ': case '\t':
|
||||
if (!in_quotes) {
|
||||
if (buffer->len != 0){
|
||||
g_ptr_array_add (array, g_strdup (buffer->str));
|
||||
g_string_truncate (buffer, 0);
|
||||
}
|
||||
} else {
|
||||
g_string_append_c (buffer, *p);
|
||||
if (options == NULL)
|
||||
return NULL;
|
||||
|
||||
for (p = options; *p; p++){
|
||||
switch (*p){
|
||||
case ' ': case '\t':
|
||||
if (!in_quotes) {
|
||||
if (buffer->len != 0){
|
||||
g_ptr_array_add (array, g_strdup (buffer->str));
|
||||
g_string_truncate (buffer, 0);
|
||||
}
|
||||
break;
|
||||
case '\\':
|
||||
if (p [1]){
|
||||
g_string_append_c (buffer, p [1]);
|
||||
p++;
|
||||
}
|
||||
break;
|
||||
case '\'':
|
||||
case '"':
|
||||
if (in_quotes) {
|
||||
if (quote_char == *p)
|
||||
in_quotes = FALSE;
|
||||
else
|
||||
g_string_append_c (buffer, *p);
|
||||
} else {
|
||||
in_quotes = TRUE;
|
||||
quote_char = *p;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
} else {
|
||||
g_string_append_c (buffer, *p);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case '\\':
|
||||
if (p [1]){
|
||||
g_string_append_c (buffer, p [1]);
|
||||
p++;
|
||||
}
|
||||
break;
|
||||
case '\'':
|
||||
case '"':
|
||||
if (in_quotes) {
|
||||
if (quote_char == *p)
|
||||
in_quotes = FALSE;
|
||||
else
|
||||
g_string_append_c (buffer, *p);
|
||||
} else {
|
||||
in_quotes = TRUE;
|
||||
quote_char = *p;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
g_string_append_c (buffer, *p);
|
||||
break;
|
||||
}
|
||||
if (in_quotes) {
|
||||
fprintf (stderr, "Unmatched quotes in value of MONO_ENV_OPTIONS: [%s]\n", env_options);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
if (buffer->len != 0)
|
||||
g_ptr_array_add (array, g_strdup (buffer->str));
|
||||
g_string_free (buffer, TRUE);
|
||||
|
||||
if (array->len > 0){
|
||||
int new_argc = array->len + argc;
|
||||
char **new_argv = g_new (char *, new_argc + 1);
|
||||
int j;
|
||||
|
||||
new_argv [0] = argv [0];
|
||||
|
||||
/* First the environment variable settings, to allow the command line options to override */
|
||||
for (i = 0; i < array->len; i++)
|
||||
new_argv [i+1] = (char *)g_ptr_array_index (array, i);
|
||||
i++;
|
||||
for (j = 1; j < argc; j++)
|
||||
new_argv [i++] = argv [j];
|
||||
new_argv [i] = NULL;
|
||||
|
||||
*ref_argc = new_argc;
|
||||
*ref_argv = new_argv;
|
||||
}
|
||||
g_ptr_array_free (array, TRUE);
|
||||
}
|
||||
if (in_quotes)
|
||||
return g_strdup_printf ("Unmatched quotes in value: [%s]\n", options);
|
||||
|
||||
if (buffer->len != 0)
|
||||
g_ptr_array_add (array, g_strdup (buffer->str));
|
||||
g_string_free (buffer, TRUE);
|
||||
|
||||
if (array->len > 0){
|
||||
int new_argc = array->len + argc;
|
||||
char **new_argv = g_new (char *, new_argc + 1);
|
||||
int j;
|
||||
|
||||
new_argv [0] = argv [0];
|
||||
|
||||
/* First the environment variable settings, to allow the command line options to override */
|
||||
for (i = 0; i < array->len; i++)
|
||||
new_argv [i+1] = (char *)g_ptr_array_index (array, i);
|
||||
i++;
|
||||
for (j = 1; j < argc; j++)
|
||||
new_argv [i++] = argv [j];
|
||||
new_argv [i] = NULL;
|
||||
|
||||
*ref_argc = new_argc;
|
||||
*ref_argv = new_argv;
|
||||
}
|
||||
g_ptr_array_free (array, TRUE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* mono_parse_env_options:
|
||||
* @ref_argc: pointer to the argc variable that might be updated
|
||||
* @ref_argv: pointer to the argv string vector variable that might be updated
|
||||
*
|
||||
* This function parses the contents of the `MONO_ENV_OPTIONS`
|
||||
* environment variable as if they were parsed by a command shell
|
||||
* splitting the contents by spaces into different elements of the
|
||||
* @argv vector. This method supports quoting with both the " and '
|
||||
* characters. Inside quoting, spaces and tabs are significant,
|
||||
* otherwise, they are considered argument separators.
|
||||
*
|
||||
* The \ character can be used to escape the next character which will
|
||||
* be added to the current element verbatim. Typically this is used
|
||||
* inside quotes. If the quotes are not balanced, this method
|
||||
*
|
||||
* If the environment variable is empty, no changes are made
|
||||
* to the values pointed by @ref_argc and @ref_argv.
|
||||
*
|
||||
* Otherwise the @ref_argv is modified to point to a new array that contains
|
||||
* all the previous elements contained in the vector, plus the values parsed.
|
||||
* The @argc is updated to match the new number of parameters.
|
||||
*
|
||||
* If there is an error parsing, this method will terminate the process by
|
||||
* calling exit(1).
|
||||
*
|
||||
* An alternative to this method that allows an arbitrary string to be parsed
|
||||
* and does not exit on error is the `api:mono_parse_options_from`.
|
||||
*/
|
||||
void
|
||||
mono_parse_env_options (int *ref_argc, char **ref_argv [])
|
||||
{
|
||||
char *ret;
|
||||
|
||||
const char *env_options = g_getenv ("MONO_ENV_OPTIONS");
|
||||
if (env_options == NULL)
|
||||
return;
|
||||
ret = mono_parse_options_from (env_options, ref_argc, ref_argv);
|
||||
if (ret == NULL)
|
||||
return;
|
||||
fprintf (stderr, "%s", ret);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
|
134
mono/mini/main.c
134
mono/mini/main.c
@ -1,10 +1,18 @@
|
||||
#include <config.h>
|
||||
#include <fcntl.h>
|
||||
#include <mono/metadata/assembly.h>
|
||||
#include <mono/utils/mono-mmap.h>
|
||||
#include "mini.h"
|
||||
|
||||
#ifndef HOST_WIN32
|
||||
#ifndef BUILDVER_INCLUDED
|
||||
#include "buildver-boehm.h"
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
#ifdef HOST_WIN32
|
||||
# include <io.h>
|
||||
#else
|
||||
# ifndef BUILDVER_INCLUDED
|
||||
# include "buildver-boehm.h"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -20,6 +28,114 @@ mono_main_with_options (int argc, char *argv [])
|
||||
return mono_main (argc, argv);
|
||||
}
|
||||
|
||||
#define STREAM_INT(x) (*(uint32_t*)x)
|
||||
#define STREAM_LONG(x) (*(uint64_t*)x)
|
||||
|
||||
static gboolean
|
||||
probe_embedded (const char *program, int *ref_argc, char **ref_argv [])
|
||||
{
|
||||
MonoBundledAssembly last = { NULL, 0, 0 };
|
||||
char sigbuffer [16+sizeof (uint64_t)];
|
||||
gboolean status = FALSE;
|
||||
uint64_t directory_location;
|
||||
off_t sigstart, baseline = 0;
|
||||
uint64_t directory_size;
|
||||
char *directory, *p;
|
||||
int items, i;
|
||||
unsigned char *mapaddress = NULL;
|
||||
void *maphandle = NULL;
|
||||
GArray *assemblies;
|
||||
char *entry_point = NULL;
|
||||
char **new_argv;
|
||||
int j;
|
||||
|
||||
int fd = open (program, O_RDONLY);
|
||||
if (fd == -1)
|
||||
return FALSE;
|
||||
if ((sigstart = lseek (fd, -(16+sizeof(uint64_t)), SEEK_END)) == -1)
|
||||
goto doclose;
|
||||
if (read (fd, sigbuffer, sizeof (sigbuffer)) == -1)
|
||||
goto doclose;
|
||||
if (memcmp (sigbuffer+sizeof(uint64_t), "xmonkeysloveplay", 16) != 0)
|
||||
goto doclose;
|
||||
directory_location = GUINT64_FROM_LE ((*(uint64_t *) &sigbuffer [0]));
|
||||
if (lseek (fd, directory_location, SEEK_SET) == -1)
|
||||
goto doclose;
|
||||
directory_size = sigstart-directory_location;
|
||||
directory = g_malloc (directory_size);
|
||||
if (directory == NULL)
|
||||
goto doclose;
|
||||
if (read (fd, directory, directory_size) == -1)
|
||||
goto dofree;
|
||||
|
||||
items = STREAM_INT (directory);
|
||||
p = directory+4;
|
||||
|
||||
assemblies = g_array_new (0, 0, sizeof (MonoBundledAssembly*));
|
||||
for (i = 0; i < items; i++){
|
||||
char *kind;
|
||||
int strsize = STREAM_INT (p);
|
||||
uint64_t offset, item_size;
|
||||
kind = p+4;
|
||||
p += 4 + strsize;
|
||||
offset = STREAM_LONG(p);
|
||||
p += 8;
|
||||
item_size = STREAM_INT (p);
|
||||
p += 4;
|
||||
|
||||
if (mapaddress == NULL){
|
||||
mapaddress = mono_file_map (directory_location-offset, MONO_MMAP_READ | MONO_MMAP_PRIVATE, fd, offset, &maphandle);
|
||||
if (mapaddress == NULL){
|
||||
perror ("Error mapping file");
|
||||
exit (1);
|
||||
}
|
||||
baseline = offset;
|
||||
}
|
||||
if (strncmp (kind, "assembly:", strlen ("assembly:")) == 0){
|
||||
char *aname = kind + strlen ("assembly:");
|
||||
MonoBundledAssembly mba = { aname, mapaddress + offset - baseline, item_size }, *ptr;
|
||||
ptr = g_new (MonoBundledAssembly, 1);
|
||||
memcpy (ptr, &mba, sizeof (MonoBundledAssembly));
|
||||
g_array_append_val (assemblies, ptr);
|
||||
if (entry_point == NULL)
|
||||
entry_point = aname;
|
||||
} else if (strncmp (kind, "config:", strlen ("config:")) == 0){
|
||||
printf ("c-Found: %s %llx\n", kind, offset);
|
||||
char *config = kind + strlen ("config:");
|
||||
char *aname = g_strdup (config);
|
||||
aname [strlen(aname)-strlen(".config")] = 0;
|
||||
mono_register_config_for_assembly (aname, config);
|
||||
} else if (strncmp (kind, "system_config:", strlen ("system_config:")) == 0){
|
||||
printf ("TODO s-Found: %s %llx\n", kind, offset);
|
||||
} else if (strncmp (kind, "options:", strlen ("options:")) == 0){
|
||||
mono_parse_options_from (kind + strlen("options:"), ref_argc, ref_argv);
|
||||
} else if (strncmp (kind, "config_dir:", strlen ("config_dir:")) == 0){
|
||||
printf ("TODO Found: %s %llx\n", kind, offset);
|
||||
} else {
|
||||
fprintf (stderr, "Unknown stream on embedded package: %s\n", kind);
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
g_array_append_val (assemblies, last);
|
||||
|
||||
mono_register_bundled_assemblies ((const MonoBundledAssembly **) assemblies->data);
|
||||
new_argv = g_new (char *, (*ref_argc)+1);
|
||||
for (j = 0; j < *ref_argc; j++)
|
||||
new_argv [j] = (*ref_argv)[j];
|
||||
new_argv [j] = entry_point;
|
||||
*ref_argv = new_argv;
|
||||
(*ref_argc)++;
|
||||
|
||||
return TRUE;
|
||||
|
||||
dofree:
|
||||
g_free (directory);
|
||||
doclose:
|
||||
if (!status)
|
||||
close (fd);
|
||||
return status;
|
||||
}
|
||||
|
||||
#ifdef HOST_WIN32
|
||||
|
||||
#include <shellapi.h>
|
||||
@ -27,11 +143,13 @@ mono_main_with_options (int argc, char *argv [])
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
TCHAR szFileName[MAX_PATH];
|
||||
int argc;
|
||||
gunichar2** argvw;
|
||||
gchar** argv;
|
||||
int i;
|
||||
|
||||
DWORD count;
|
||||
|
||||
argvw = CommandLineToArgvW (GetCommandLine (), &argc);
|
||||
argv = g_new0 (gchar*, argc + 1);
|
||||
for (i = 0; i < argc; i++)
|
||||
@ -40,6 +158,11 @@ main (void)
|
||||
|
||||
LocalFree (argvw);
|
||||
|
||||
if ((count = GetModuleFileName (NULL, szFileName, MAX_PATH)) != 0){
|
||||
char *entry = g_utf16_to_utf8 (szFileName, count, NULL, NULL, NULL);
|
||||
probe_embedded (entry, &argc, &argv);
|
||||
}
|
||||
|
||||
return mono_main_with_options (argc, argv);
|
||||
}
|
||||
|
||||
@ -49,7 +172,8 @@ int
|
||||
main (int argc, char* argv[])
|
||||
{
|
||||
mono_build_date = build_date;
|
||||
|
||||
|
||||
probe_embedded (argv [0], &argc, &argv);
|
||||
return mono_main_with_options (argc, argv);
|
||||
}
|
||||
|
||||
|
@ -1 +1 @@
|
||||
56f60c91e1860a8b1b0a68b5453db395488f781c
|
||||
7ef60a360483bb55938319c603773cf49d2c0d99
|
@ -1 +1 @@
|
||||
8bfa31bcb024a14cd81b6139201d7f88d401b4f9
|
||||
1dc6e8651369181af99f74d3ecc9327fb9882c46
|
@ -1 +1 @@
|
||||
#define FULL_VERSION "Stable 4.4.0.148/fcf7a6d"
|
||||
#define FULL_VERSION "explicit/5995f74"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user