From: Daniel Hokka Zakrisson Date: Thu, 5 Jul 2007 19:05:15 +0000 (+0000) Subject: merge with 0.30.213 X-Git-Tag: after-util-vserver-0_30_213-merge~1 X-Git-Url: http://git.onelab.eu/?p=util-vserver.git;a=commitdiff_plain;h=ec4370f7ebd7fb0ce7f002f5bf2c74f03acd3ec1 merge with 0.30.213 --- diff --git a/COPYING b/COPYING index d60c31a..623b625 100644 --- a/COPYING +++ b/COPYING @@ -2,7 +2,7 @@ Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. diff --git a/ChangeLog b/ChangeLog index edc1682..35ed2cc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,12663 +1,13007 @@ -2005-07-15 22:25 Enrico Scholz +2007-05-03 12:20 Daniel Hokka Zakrisson - * NEWS, configure.ac: + * NEWS: Version 0.30.213. - version 0.30.208 +2007-05-03 12:13 Daniel Hokka Zakrisson -2005-07-15 21:40 Enrico Scholz + * contrib/manifest.dat.pathsubst: Add missing file. - * configure.ac, lib/personalityflag.c, lib/personalitytype.c, - m4/ensc_personality.m4: +2007-05-02 20:11 Daniel Hokka Zakrisson - check whether enums from are available before using - them (https://savannah.nongnu.org/bugs/?func=detailitem&item_id=12921) + * configure.ac: Version 0.30.213. -2005-07-15 21:06 Enrico Scholz +2007-04-27 09:08 Benedikt Böhm - * util-vserver.spec.in: + * scripts/vserver.functions: fake init environment during shutdown, + otherwise rc just calls shutdown/halt which does not work without + init - - require the -lib subpackage by -devel - - copy GPG keys from /etc/pki/rpm-gpg/ +2007-04-27 09:02 Benedikt Böhm -2005-07-15 21:02 Enrico Scholz + * distrib/gentoo/initpost, distrib/gentoo/initpre: add dummy net + dependency to default runlevel; dmesg/syslog is now handled in + baselayout - * src/testsuite/rpm-fake-test.sh: +2007-04-27 09:01 Benedikt Böhm - fixed paths so that it works again... + * src/chroot-sh.c: add link command to chroot-sh -2005-07-15 21:01 Enrico Scholz +2007-04-27 08:42 Benedikt Böhm - * sysv/vprocunhide: + * distrib/gentoo/reboot.sh, distrib/gentoo/shutdown.sh: don't call + /halt/reboot -f for gentoo init style, but rather just exit, + since we would be killed by vshelper, does not matter for reboot + from inside: simple reboot wonÄt work with gentoo init style, + must use reboot -f inside - do not run when IATTR feature is not supported +2007-04-27 08:40 Benedikt Böhm -2005-07-15 21:01 Enrico Scholz + * distrib/gentoo/initpre: fix distdir handling if prefix is not - * scripts/: vserver.start, vserver.suexec: +2007-04-21 14:06 Daniel Hokka Zakrisson - readded the limit-ulimits-per-vserver stuff due popular request - (http://savannah.nongnu.org/bugs/?func=detailitem&item_id=12840) + * lib/cflags-v13.c, scripts/vshelper: Use the state change helper + to stop the guest when the last process exits. -2005-07-15 20:59 Enrico Scholz +2007-04-21 14:05 Daniel Hokka Zakrisson - * lib/getinsecurebcaps.c: + * scripts/vserver-build.template: Recognize the --nodevsanity + option. - - adjusted insecure caps for the added CAP_AUDIT* and removed - CAP_QUOTACTL stuff - - assume every unknown capability as insecure - -2005-07-15 20:58 Enrico Scholz - - * lib/testsuite/.cvsignore: - - added 'personality' - -2005-07-15 20:07 Enrico Scholz - - * lib/: syscall_netadd-net.hc, syscall_netremove-net.hc: - - changed code so that it *compiles* with current kernel headers - -2005-07-15 20:06 Enrico Scholz - - * lib/: syscall_getiattr-fscompat.hc, syscall_setiattr-fscompat.hc: - - Changed the barrier-code so that it sets both the 't' ext2-flag and - chmod-0 permissions. This is required to work with 1.2.10 patch; - formerly the chmod-0 sufficed. [reported by Bjoern Steinbrink, - http://savannah.nongnu.org/bugs/?func=detailitem&item_id=13170] - -2005-07-15 18:32 Enrico Scholz - - * lib/capabilities.c: - - use a static '29' for QUOTACTL capability as VC_CAP_QUOTACTL was removed - -2005-07-15 18:28 Enrico Scholz - - * lib/ccaps-v13.c: - - added VC_VXC_{SYSLOG,BINARY_MOUNT,QUOTA_CTL} - added/moved some aliases - -2005-07-15 18:27 Enrico Scholz - - * lib/bcaps-v13.c: - - removed VC_CAP_QUOTACTL - added VC_CAP_AUDIT* - -2005-07-15 18:27 Enrico Scholz - - * lib/vserver.h: - - removed VC_CAP_QUOTACTL - added VC_CAP_AUDIT* - added VC_VXC_{SYSLOG,BINARY_MOUNT,QUOTA_CTL} - -2005-07-15 18:25 Enrico Scholz - - * contrib/: Makefile-files, yum-2.3.4-chroot.patch: - - added yum-2.3.4-chroot patch - -2005-07-15 18:25 Enrico Scholz - - * kernel/: network.h, network_cmd.h, switch.h, xid.h: - - updated to patch-2.6.12.2-vs2.0-rc7 - -2005-07-05 00:38 Enrico Scholz - - * scripts/vserver-build.functions: - - check whether context is already active before starting the build - (http://savannah.nongnu.org/bugs/?func=detailitem&item_id=12849) - -2005-07-05 00:36 Enrico Scholz - - * src/vserver-info.c: - - allow to pass a numeric xid to 'vserver-info ... RUNNING' - -2005-07-05 00:35 Enrico Scholz - - * lib_internal/: Makefile-files, util-isnumber.c, util.h: - - isNumber(): added - -2005-07-04 20:14 Enrico Scholz - - * scripts/vserver-build.debootstrap: - - give out status message before downloading debootstrap - (http://savannah.nongnu.org/bugs/?func=detailitem&item_id=13472) - -2005-07-04 20:03 Enrico Scholz - - * lib/syscall-alternative.h: - - updated to http://vserver.13thfloor.at/Experimental/SYSCALL/syscall.h - from 2005-05-07 - -2005-07-04 00:42 Enrico Scholz - - * distrib/misc/debootstrap.uri: - - oops... set the wrong value - -2005-07-04 00:40 Enrico Scholz - - * distrib/misc/debootstrap.uri: - - updated - -2005-07-04 00:40 Enrico Scholz - - * distrib/Makefile.am: - - register fc4 as rh-style distribution - -2005-07-03 22:15 Enrico Scholz - - * configure.ac: - - check for 'nohup' - -2005-07-03 19:53 Enrico Scholz - - * contrib/manifest.dat.pathsubst: - - removed chroot_* + C++ programs - added chroot_sh + vwait - -2005-07-03 19:51 Enrico Scholz - - * Makefile.am, lib/virtual.h: - - updated used kernel headers to 2.6.12.2-vs2.0-rc5 - -2005-07-03 19:49 Enrico Scholz - - * lib/: syscall_getvhiname-v13.hc, syscall_setvhiname-v13.hc: - - - s!VCMD_vx_.et_vhi_name!VCMD_.et_vhi_name! - - added workaround for older kernels not having the naming above - -2005-07-03 19:48 Enrico Scholz - - * scripts/vshelper: - - accept 'async' method - -2005-07-03 19:47 Enrico Scholz - - * scripts/vserver.start: - - pipe 'popd' output to /dev/null - -2005-07-03 19:47 Enrico Scholz - - * scripts/vserver.functions: - - initSync(): fixed parameter naming - initSync(): set 'async' method when 'vwait' is available - _waitForVWait(): read pipe after 'wait' returned - -2005-07-03 19:45 Enrico Scholz - - * scripts/vserver-build: - - do not set OPTION_KEEP - -2005-07-03 19:43 Enrico Scholz - - * scripts/util-vserver-vars.pathsubst: - - added vwait - -2005-07-03 19:43 Enrico Scholz - - * scripts/pkgmgmt: - - - cleanups - - unset %_dbpath at 'internalize' operation - -2005-07-03 19:42 Enrico Scholz - - * scripts/functions: - - vshelper.initSync(): fixed parameter naming - -2005-07-03 19:40 Enrico Scholz - - * src/chroot-sh.c: - - implemented 'testfile' subcommand - -2005-07-03 16:42 Enrico Scholz - - * contrib/: Makefile-files, yum-2.3.3-chroot.patch: - - added yum-2.3.3-chroot.patch - -2005-07-03 16:10 Enrico Scholz - - * scripts/functions: - - do not quote $_VSHELPER in help message (reported by Roman Barczynski, - https://savannah.nongnu.org/bugs/?func=detailitem&item_id=13162) - -2005-07-03 16:03 Enrico Scholz - - * doc/configuration.xml: - - mentioned the working directory for the scripts - -2005-07-03 16:02 Enrico Scholz - - * kernel/: context.h, context_cmd.h, cvirt_cmd.h, debug.h, - namespace.h, namespace_cmd.h, network.h, network_cmd.h, switch.h: - - updated to 2.6.12.2-vs2.0-rc5 - -2005-07-03 15:19 Enrico Scholz - - * scripts/vserver.start: - - execute the prepre script in the configuration directory (*not* the - vdir directory); this should not cause legacy problems as formerly the - directory was not changed overall - -2005-07-03 15:18 Enrico Scholz - - * scripts/vserver.functions: - - check whether filesystem is mounted readonly; if so, execute - $_SECURE_MOUNT with the '-n' argument - -2005-07-03 15:17 Enrico Scholz - - * scripts/: vserver-build.apt-rpm, vserver-build.debootstrap, - vserver-build.rpm: - - execute base.setSuccess() at the end - -2005-07-03 15:16 Enrico Scholz - - * src/rpm-fake-resolver.c: - - implemented better error-handling in the read() and write() functions - -2005-07-03 14:33 Enrico Scholz - - * ensc_wrappers/: wrappers-io.hc, wrappers-iosock.hc, - wrappers-unistd.hc: - - store result of read*(2) and write*(2) fucntions into signed variables; - error handling is more cleaner in this way - -2005-07-03 14:31 Enrico Scholz - - * src/vserver-stat.c: - - - cleanups - - multiply RSS value with PAGESIZE - (https://savannah.nongnu.org/bugs/?func=detailitem&item_id=13184) - - prepare the '-O' option: calculate vserver names earlier and use - some more helper functions - -2005-07-03 14:26 Enrico Scholz - - * src/rpm-fake.c: - - - doPwStringRequest(): fixed x86_64 issue; rpm-fake.so transmitted a - 'size_t' value, but rpm-fake-resolver expected an uint32_t - - minor cleanups - -2005-07-03 11:12 Enrico Scholz - - * ensc_vector/: Makefile-files, vector-foreach.c, vector.h, - vector.hc: - - added Vector_foreach*() functions - -2005-07-02 11:17 Enrico Scholz - - * src/: Makefile-files, vbuild.cc[DEAD], vcheck.cc[DEAD], - vfiles.cc[DEAD], vserver.cc[DEAD], vserver.hh[DEAD], - vutil.cc[DEAD], vutil.h[DEAD], vutil.p[DEAD]: - - removed the C++ tools; they do not work with recent configuration and - are adding huge dependencies - -2005-06-30 08:17 Enrico Scholz - - * scripts/vserver.stop: - - use vwait infrastructure - -2005-06-30 08:16 Enrico Scholz - - * scripts/: vserver-build.functions.pkgmgmt, vserver.functions: - - use CHROOT_SH instead of CHROOT_* - use vwait - -2005-06-30 08:16 Enrico Scholz - - * scripts/vserver-build.functions: - - remove generated vserver when build fails and '--keep' was not specified - -2005-06-30 08:13 Enrico Scholz - - * scripts/: vserver-build.apt-rpm, vserver-build.debootstrap, - vserver-build.rpm, vserver-build.skeleton, vserver-build.yum: - - use 'base.init' instead of 'base.initVariables' - -2005-06-30 08:12 Enrico Scholz - - * scripts/vserver-build: - - added '--keep' option - -2005-06-30 08:11 Enrico Scholz - - * scripts/: X, util-vserver-vars.pathsubst: - - removed CHROOT_* - added CHROOT_SH - -2005-06-30 08:11 Enrico Scholz - - * scripts/pkgmgmt: - - use CHROOT_SH instead of CHROOT_* - -2005-06-30 08:10 Enrico Scholz - - * lib/virtual.h: - - include signal_cmd.h instead of signal.h - -2005-06-30 08:10 Enrico Scholz - - * util-vserver.spec.in: - - added %dist tag - buildrequire 'which' and 'diffutils' - require 'apt' on i386 only - -2005-06-30 08:06 Enrico Scholz - - * distrib/fc4/: apt/rpmpriorities, apt/sources.list, yum/yum.conf, - yum.repos.d/fedora-devel.repo, - yum.repos.d/fedora-updates-testing.repo, - yum.repos.d/fedora-updates.repo, yum.repos.d/fedora.repo, - pkgs/01, pkgs/02, pkgs/03, rpmlist.d/00.lst: - - initial checkin - -2005-06-30 08:06 Enrico Scholz - - * distrib/redhat/initpost: - - use CHROOT_SH instead of CHROOT_* - -2005-06-30 07:58 Enrico Scholz - - * src/: .cvsignore, Makefile-files, chroot-cat.c[DEAD], - chroot-rm.c[DEAD], chroot-sh.c: - - replaced all the small chroot-* programs with a single 'chroot-sh' - program - -2005-05-19 20:17 Enrico Scholz - - * scripts/util-vserver-vars.pathsubst: - - added @NOHUP@ - -2005-05-19 20:16 Enrico Scholz - - * scripts/pkgmgmt: - - use new chroot-cat CLI - -2005-05-19 20:09 Enrico Scholz - - * kernel/: context.h, cvirt.h, dlimit.h, dlimit_cmd.h, inode_cmd.h, - legacy.h, signal_cmd.h, xid.h, signal.h[DEAD]: - - updated - -2005-05-19 20:05 Enrico Scholz - - * lib/: issupported.c, issupportedstring.c, vserver.h: - - vc_isSupported() et.al: added VWAIT feature - -2005-05-19 20:04 Enrico Scholz - - * m4/ensc_syscall.m4: - - s!enable_val!enableval! - -2005-05-19 20:02 Enrico Scholz - - * src/vserver-stat.c: - - fixed calculation of hours (%24 instead of %60); reported in - http://savannah.nongnu.org/bugs/?func=detailitem&item_id=13048 by - Roman Barczynski - -2005-05-19 20:01 Enrico Scholz - - * src/chroot-cat.c: - - added '-i', '-o' and '-a' options to cat or override a file, or to - append something - -2005-05-19 19:59 Enrico Scholz - - * distrib/redhat/initpost: - - use safe chroot-cat commands - -2005-05-05 21:13 Enrico Scholz - - * m4/ensc_dietlibc.m4: - - - give out a more correct helpstring for the '--enable/disable-dietlibc' - option - - use AS_HELP_STRING instead of AC_HELP_STRING - -2005-05-05 20:31 Enrico Scholz - - * configure.ac: - - - removed call to ENSC_FPIC_SYSCALL - - enhanced dietlibc version check to the 64 bit version of hppa - -2005-05-05 11:24 Enrico Scholz - - * src/.cvsignore: - - added vwait - -2005-05-05 11:22 Enrico Scholz - - * src/vwait.c: - - initial checkin - -2005-05-05 11:21 Enrico Scholz - - * src/vshelper-sync.c: - - use '__linux__' instead of '__linux' (reported by Ola Lundqvist) - -2005-05-05 11:20 Enrico Scholz - - * src/exec-cd.c: - - minor cosmetical cleanup - -2005-05-05 11:20 Enrico Scholz - - * src/chroot-cat.c: - - - added support for '--help' and '--version' - - added '-a' option to append information instead of truncating the - file - -2005-05-05 11:19 Enrico Scholz - - * src/Makefile-files: - - - 'chroot-cat' supports now the '--help' and '--version' options so - removed it from AM_INSTALLCHECK_STD_OPTIONS_EXEMPT - - added vwait - -2005-05-05 11:17 Enrico Scholz - - * m4/install-notify.am: - - s!^# !## ! - -2005-05-05 11:17 Enrico Scholz - - * lib/: Makefile-files, syscall_waitexit-v13.hc, - syscall_waitexit.c, vserver.h: - - vc_wait_exit(): implemented support for this syscall - -2005-05-02 23:44 Enrico Scholz - - * src/compat-pivot_root.h: - - use - -2005-05-02 23:43 Enrico Scholz - - * m4/ensc_syscall.m4: - - minor cosmetical cleanups - -2005-05-02 23:43 Enrico Scholz - - * m4/ensc_fpicsyscall.m4[DEAD]: - - obsoleted - -2005-05-02 23:43 Enrico Scholz - - * m4/ensc_fpicsyscall.m4: - - use ENSC_SYSCALL_ALTERNATIVE - -2005-05-02 23:42 Enrico Scholz - - * lib/vserver-internal.h: - - cleaned up '#include <*syscall.h>' stuff - -2005-05-02 23:41 Enrico Scholz - - * lib/: syscall-legacy.hc, syscall-wrap.h: - - include also - -2005-05-02 23:41 Enrico Scholz - - * doc/configuration-xhtml.xsl: - - use class 'directoryname' instead of 'directory' for '' - markup - -2005-05-02 23:40 Enrico Scholz - - * Makefile.am, distrib/Makefile.am, m4/install-notify.am: - - give out additional information about the 'make install' process - -2005-04-28 21:07 Enrico Scholz - - * NEWS, configure.ac: - - version 0.30.207 - -2005-04-28 20:48 Enrico Scholz - - * configure.ac: - - adjusted dietlibc requirements - -2005-04-28 20:08 Enrico Scholz - - * src/vcontext.c: - - allow to override the execution domain (personality); added - '--personality-type' and '--personality-flags' options - -2005-04-28 20:08 Enrico Scholz - - * src/rpm-fake-resolver.c: - - added a TEMP_FAILURE_RETRY around a read(2) - -2005-04-28 20:05 Enrico Scholz - - * scripts/: vserver.start, vserver.suexec: - - added support for a rescue mode - -2005-04-28 20:04 Enrico Scholz - - * scripts/vserver.functions: - - * _generatePersonalityOptions(): added and use it - * added support for a rescue mode - -2005-04-28 20:03 Enrico Scholz - - * scripts/vserver-build.functions.pkgmgmt: - - YUM_RELEASEPKGS: added - -2005-04-28 20:03 Enrico Scholz - - * scripts/vserver: - - fixed docu for 'stop' and 'start' - -2005-04-28 20:03 Enrico Scholz - - * scripts/pkgmgmt: - - * verifyInternalPackages(): added - * added some sanity checks for a sany environment when internalizing - the package management - -2005-04-28 20:02 Enrico Scholz - - * scripts/functions: - - * isRegularFile(): fixed evaluation of params - * hasSubstring(): added - * getAllVservers(): fixed typo - -2005-04-28 20:01 Enrico Scholz - - * lib_internal/sys_clone.h: - - cleanups; do not include - -2005-04-28 20:01 Enrico Scholz - - * lib_internal/: Makefile-files, sys_personality.h: - - added sys_personality.h - -2005-04-28 19:56 Enrico Scholz - - * scripts/: vserver-copy[DEAD], legacy/vserver-copy: - - moved to legacy - -2005-04-28 19:54 Enrico Scholz - - * lib/testsuite/: Makefile-files, personality.c: - - added testcases for the vc_*personality*() functions - -2005-04-28 19:53 Enrico Scholz - - * lib/vserver.h: - - added prototypes for vc_*personality* support - -2005-04-28 19:53 Enrico Scholz - - * lib/virtual.h: - - updated to new kernel headers - -2005-04-28 19:53 Enrico Scholz - - * lib/cflags_list-v13.c: - - do not include anymore - -2005-04-28 19:52 Enrico Scholz - - * lib/internal.h: - - utilvserver_listparser_uint*(): removed the 'nonnull' attribute for the 'mask' param - -2005-04-28 19:51 Enrico Scholz - - * lib/: Makefile-files, personalityflag.c, personalityflag_list.c, - personalitytype.c: - - added personality* files - -2005-04-28 19:50 Enrico Scholz - - * doc/configuration.xml: - - * added some markup - * documented 'personality' - -2005-04-28 19:50 Enrico Scholz - - * doc/: configuration-xhtml.xsl, configuration.dtd: - - added support for and markup - -2005-04-28 19:49 Enrico Scholz - - * distrib/fc3/yum/yum.conf: - - s!redhat-release!fedora-release! - -2005-04-28 19:49 Enrico Scholz - - * distrib/fc3/pkgs/02: - - removed 'coreutils' - -2005-04-28 19:48 Enrico Scholz - - * distrib/fc3/rpmlist.d/00.lst: - - added some more packages - -2005-04-28 19:46 Enrico Scholz - - * distrib/: fc1/apt/rpmpriorities, fc2/apt/rpmpriorities, - fc3/apt/rpmpriorities, rh9/apt/rpmpriorities: - - added *-release packages - -2005-04-28 19:45 Enrico Scholz - - * contrib/manifest.dat.pathsubst, scripts/Makefile-files: - - moved vserver-copy to legacy - -2005-04-28 19:44 Enrico Scholz - - * Makefile.am: - - added new kernel headers - -2005-04-28 13:01 Enrico Scholz - - * kernel/: context.h, context_cmd.h, cvirt.h, cvirt_cmd.h, - cvirt_def.h, debug.h, debug_cmd.h, dlimit.h, dlimit_cmd.h, - inode.h, inode_cmd.h, legacy.h, limit.h, limit_cmd.h, - limit_def.h, namespace.h, network.h, network_cmd.h, sched.h, - sched_cmd.h, sched_def.h, switch.h, xid.h: - - updated to headers from patch-2.6.11.7-vs2.0-pre2 - -2005-04-24 22:31 Enrico Scholz - - * src/vserver-stat.c: - - showContexts(): added 'const' qualifier - -2005-04-24 22:30 Enrico Scholz - - * scripts/: start-vservers, vsomething: - - use the new getAllVservers() functionality to specify special kinds of - vservers - -2005-04-24 22:29 Enrico Scholz - - * scripts/functions: - - * isRegularFile(): allow to override the '-f' classifier - * getAllVservers(): added several types of vservers (marked, unmarked, - running...) - * getAllVserversByArg()" added - -2005-04-24 22:28 Enrico Scholz - - * m4/ensc_dietlibc_compat.m4: - - * ENSC_DIETLIBC_NEED_COMPAT: use the 'syscall-wrap.h' header and the - results from ENSC_SYSCALL_ALTERNATIVE - -2005-04-24 22:26 Enrico Scholz - - * m4/ensc_syscall.m4: - - * ENSC_SYSCALL_ALTERNATIVE: added - * ENSC_SYSCALL: use the 'syscall-wrap.h' header and the results from - ENSC_SYSCALL_ALTERNATIVE - -2005-04-24 22:25 Enrico Scholz - - * lib/vserver-internal.h, lib_internal/sys_clone.h: - - include "syscall-wrap.h" - -2005-04-24 22:25 Enrico Scholz - - * lib/: ncaps-net.c, nflags-net.c: - - VALUES: added an empty field to make it compile with gcc4 - -2005-04-24 22:24 Enrico Scholz - - * lib/: ncaps_list-net.c, nflags_list-net.c: - - made it compatible to the new utilvserver_listparser_uint*() API and - added wrappers with a third 'bool *' arg - -2005-04-24 22:23 Enrico Scholz - - * lib/listparser.hc: - - * parser function has now to set a 'bool *' arg to signal errors - * when 'mask' argument is null, the special modifiers like '~', '!' or - 'any' are not allowed - -2005-04-24 22:21 Enrico Scholz - - * lib/internal.h: - - utilvserver_listparser_uint*(): added a third 'bool *' arg for the - parser function so that errors can be better propagated - -2005-04-24 22:19 Enrico Scholz - - * lib/: bcaps_list-v13.c, ccaps_list-v13.c, cflags_list-v13.c: - - made it compatible to the new utilvserver_listparser_uint*() API and - added wrappers with a third 'bool *' arg - -2005-04-24 22:17 Enrico Scholz - - * lib/: Makefile-files, syscall-alternative.h, syscall-wrap.h: - - added syscall-alternative.h and syscall-wrap.h - -2005-04-24 22:17 Enrico Scholz - - * update-doc: - - exclude some static files - -2005-04-24 22:16 Enrico Scholz - - * build-all: - - remove config.cache when CLEAN is set - disabled gcc33 build - -2005-04-24 13:33 Enrico Scholz - - * doc/: configuration-xhtml.xsl, configuration.dtd, - configuration.xml: - - added new markup - added new CSS from Nicolas Costes - -2005-04-16 23:21 Enrico Scholz - - * configure.ac: - - cleanups - added '--disable-extra-optimizations' option - -2005-04-16 23:20 Enrico Scholz - - * scripts/: vserver-build.functions, vserver-build.functions.apt, - vserver-build.functions.rpm, vserver-build.functions.yum, - vserver.functions: - - use the common isRegularFile() method to filter out backup-files - -2005-04-16 23:19 Enrico Scholz - - * scripts/functions: - - isRegularFile(): added - -2005-04-16 23:18 Enrico Scholz - - * util-vserver.spec.in: - - cleanups - added changelog entry for 0.30.206 - -2005-04-13 00:37 Enrico Scholz - - * NEWS, configure.ac: - - version 0.30.206 - -2005-04-12 23:54 Enrico Scholz - - * src/vserver-info.c: - - implemented VERIFYPROC method - -2005-04-12 23:53 Enrico Scholz - - * scripts/vserver.functions: - - added verify-proc sanity check - -2005-04-12 23:52 Enrico Scholz - - * scripts/functions: - - killContext(): commented out the more correct - (but not working) kill-sequence - -2005-04-12 23:50 Enrico Scholz - - * util-vserver.spec.in: - - ship the yum patches - -2005-04-12 23:42 Enrico Scholz - - * Makefile.am: - - added '--no-wrap -S' to the CVS2CL_AMFLAGS - -2005-04-12 21:27 Enrico Scholz - - * configure.ac: - - adjusted min-dietlibc requirements - -2005-04-12 21:23 Enrico Scholz - - * m4/ensc_dietlibc.m4: - - ENSC_ENABLE_DIETLIBC(): allow 'min_ver' to be a shell variable - -2005-04-12 20:26 Enrico Scholz - - * scripts/functions: - - vshelper.isDebug(): fixed logic - -2005-04-10 14:27 Enrico Scholz - - * src/rpm-fake.c: - - send the signals for endgrent() and endpwent() - -2005-04-10 14:26 Enrico Scholz - - * contrib/: Makefile-files, yum-2.2.1-chroot.patch, - yum-2.3.2-chroot.patch: - - added patches for yum - -2005-04-10 14:26 Enrico Scholz - - * Makefile.am: - - include m4/libsel.am - -2005-04-10 03:01 Enrico Scholz - - * src/context-sync.hc: - - ignore errors during setsid(2) execution (required for vs1.9.5.12+) - -2005-04-10 03:00 Enrico Scholz - - * scripts/vshelper: - - * kill vserver processes explicitly with 'killContext'; userspace - reboot helper may assume that 'reboot(2)' never returns... - * added 'async' method - -2005-04-10 02:59 Enrico Scholz - - * scripts/vserver.stop: - - implicate '--sync' option; it is not possible to stop asynchronously - send SIGINT to pid 1 instead of trying to determine initpid - -2005-04-10 02:57 Enrico Scholz - - * scripts/vserver.functions: - - use 'killContext()' instead of invoking 'vkill' manually - set an initial runlevel for 'minit' style also - set 'async' vshelper method for non-sync mode - -2005-04-10 02:55 Enrico Scholz - - * scripts/vprocunhide: - - fixed missing quoting of '~'; this may cause very slow booting when - NIS/LDAP servers are local vservers as bash tries to expand this to a - homedir... - -2005-04-10 02:54 Enrico Scholz - - * scripts/functions: - - spawn(), killContext(): added - -2005-04-10 02:53 Enrico Scholz - - * m4/libsel.am: - - initial checkin - -2005-04-10 02:53 Enrico Scholz - - * m4/ensc_dietlibc.m4: - - use a more modern version which accepts 'DIET' and 'DIETFLAGS' as - global configure variables - -2005-04-10 02:52 Enrico Scholz - - * m4/ensc_cxxcompiler.m4: - - fixed typo - -2005-04-10 02:52 Enrico Scholz - - * configure.ac: - - defined ENSC_USE_DIETLIBC + ENSC_USE_GLIBC - -2005-04-10 02:52 Enrico Scholz - - * Makefile.am: - - removed 'DIET' and 'DIETFLAGS' variables; they are set by configure now - -2005-04-08 21:18 Enrico Scholz - - * scripts/vyum-worker: - - added better test for patched yum - -2005-04-08 21:17 Enrico Scholz - - * src/vserver-info.c: - - fixed typo - -2005-04-08 21:17 Enrico Scholz - - * scripts/vserver.suexec: - - fixed typo (reported by Paul S. Gumerman) - -2005-04-08 21:15 Enrico Scholz - - * scripts/vserver-build.functions.yum: - - substitute @YUMLOCKDIR@ - -2005-04-08 21:14 Enrico Scholz - - * scripts/chcontext: - - fixed operation when context was not specified - -2005-04-08 21:13 Enrico Scholz - - * distrib/redhat/initpre: - - reverted the patch adding '/usr/X11' - create '/sbin/new-kernel-pkg'; 'initpost' would be too late for FC4 - -2005-04-08 21:12 Enrico Scholz - - * distrib/redhat/initpost: - - use 'ln -sf' instead of 'ln -s' - -2005-04-08 21:12 Enrico Scholz - - * distrib/fc3/yum/yum.conf: - - add 'lockfile' - -2005-04-08 21:12 Enrico Scholz - - * distrib/Makefile.am: - - added 'fc3' to 'redhat_style' - -2005-04-08 21:11 Enrico Scholz - - * Makefile.am: - - use DIETFLAGS instead of DIET_FLAGS - -2005-03-29 04:10 Enrico Scholz - - * ensc_vector/Makefile-files: - - use $(LIBENSCVECTOR) instead of libensc_vector.a - -2005-03-25 22:19 Enrico Scholz - - * scripts/vserver.stop: - - fixed typo - -2005-03-25 18:11 Enrico Scholz - - * scripts/vserver.functions: - - minor cleanups: call vkill with '--xid' instead of '-c' - -2005-03-25 17:56 Enrico Scholz - - * scripts/vserver.stop: - - address both the context and the pid when sending SIGINT to init - -2005-03-25 03:38 Enrico Scholz - - * lib_internal/testsuite/copy-check: - - do not use '-s' with 'cmp' but display verbose error reason - -2005-03-25 03:37 Enrico Scholz - - * lib_internal/switchtowatchxid.c: - - simplified it and made it work with recent kernels - -2005-03-25 03:37 Enrico Scholz - - * doc/configuration-xhtml.xsl: - - use 'alternate stylesheet' instead of 'stylesheet' (reported by Herbert - Poetzl) - -2005-03-25 03:35 Enrico Scholz - - * util-vserver.spec.in: - - fixed quoting of % in %description - -2005-03-24 15:08 Enrico Scholz - - * Makefile.am, REQUIREMENTS: - - added REQUIREMENTS - -2005-03-24 14:53 Enrico Scholz - - * NEWS, configure.ac, util-vserver.spec.in: - - version 0.30.205 - -2005-03-24 14:50 Enrico Scholz - - * util-vserver.spec.in: - - added some %descriptions - -2005-03-24 13:46 Enrico Scholz - - * src/vhashify.c: - - s!write()!Vwrite()! at some places - add 'volatile' qualifier at variables used around 'setjmp' - use sigsetjmp() instead of setjmp() - minor code cleanups - -2005-03-24 13:45 Enrico Scholz - - * src/secure-mount.c: - - s!write()!Vwrite()! at some places - use Echdir() instead of chdir() - -2005-03-24 13:44 Enrico Scholz - - * src/filetime.c, src/lsxid.c, src/readlink.c, src/reducecap.c, - src/showattr.c, src/vattribute.c, src/vcontext.c, src/vcopy.c, - src/vdlimit.c, src/vlimit.c, src/vps.c, src/vserver-stat.c, - src/vuname.c, src/vunify.c, vserver-start/interface-read.c: - - s!write()!Vwrite()! at some places - -2005-03-24 13:42 Enrico Scholz - - * lib_internal/testsuite/sigbus.c: - - use Etruncate() instead of truncate() - -2005-03-24 13:42 Enrico Scholz - - * lib_internal/testsuite/copy-check: - - added new tests and better diagnostic - -2005-03-24 13:42 Enrico Scholz - - * lib_internal/unify-copy.c: - - moved 'volatile' qualifiers to a better place - minor code cleanups - -2005-03-24 13:41 Enrico Scholz - - * ensc_wrappers/wrappers-unistd.hc: - - E*truncate(): added - -2005-03-24 13:41 Enrico Scholz - - * ensc_vector/testsuite/test2.c: - - #undef NDEBUG - -2005-03-24 02:12 Enrico Scholz - - * lib_internal/testsuite/sigbus.c: - - unlink temporary files on exit - -2005-03-24 01:12 Enrico Scholz - - * lib_internal/unify-unify.c: - - Unify_unify(): block signals while executing the non-atomic operations - -2005-03-24 01:12 Enrico Scholz - - * src/vhashify.c: - - optimized directory creation - -2005-03-24 01:11 Enrico Scholz - - * lib_internal/unify-copy.c: - - prepared for sigbus testcase - added some 'volatile' modifiers - use siglongjmp() instead of longjmp() - -2005-03-24 01:09 Enrico Scholz - - * lib_internal/matchvserverinfo-init.c: - - minor code cleanups - -2005-03-24 01:09 Enrico Scholz - - * lib_internal/testsuite/: .cvsignore, Makefile-files, sigbus.c: - - added sigbus testcase - -2005-03-23 03:17 Enrico Scholz - - * ensc_vector/testsuite/.cvsignore: - - updated - -2005-03-23 03:10 Enrico Scholz - - * src/: vhashify-init.hc, vhashify.c: - - added lots of new code... - -2005-03-23 03:08 Enrico Scholz - - * src/rpm-fake.c: - - is_selinux_enabled(): added - -2005-03-23 03:08 Enrico Scholz - - * scripts/: vserver-build.apt-rpm, vserver-build.rpm, - vserver-build.yum: - - execute '--initdb' before importing pubkeys - import pubkeys from /etc/vservers/.distributions/.common/pubkeys also - -2005-03-23 03:05 Enrico Scholz - - * scripts/vserver: - - added 'hashify' target - -2005-03-23 03:05 Enrico Scholz - - * scripts/util-vserver-vars.pathsubst: - - added $_VHASHIFY - -2005-03-23 03:05 Enrico Scholz - - * lib_internal/matchlist-initrefserverlist.c: - - fixed initialization of 'vserver' - -2005-03-23 03:04 Enrico Scholz - - * distrib/Makefile.am: - - create /etc/.../.distributions/.common/pubkeys/ - create /etc/.../.defaults/apps/vunify/hash - -2005-03-23 03:04 Enrico Scholz - - * util-vserver.spec.in: - - copy GPG keys from the system into the confdir - buildrequire dietlibc-0.25 - -2005-03-23 03:03 Enrico Scholz - - * build-all: - - build with debug settings - -2005-03-22 16:27 Enrico Scholz - - * src/rpm-fake.c: - - honor return codes of read(2) and write(2) when communication with the rpm-fake-helper - call read(2) and write(2) through TEMP_FAILURE_RETRY() - use Vwrite() instead of write(2) at some places - -2005-03-22 16:25 Enrico Scholz - - * lib_internal/command-exec.c: - - call write(2) through TEMP_FAILURE_RETRY() - -2005-03-22 16:25 Enrico Scholz - - * util-vserver.spec.in: - - BuildRequire beecrypt-devel - -2005-03-22 16:05 Enrico Scholz - - * src/: chcontext.c, vhashify.c: - - workaround warning messages regarding 'warn_unused_return_value' when - using _FORTIFY_SOURCE. - -2005-03-22 15:59 Enrico Scholz - - * lib/getvservervdir.c, lib_internal/coreassert.h, - lib_internal/matchlist-initmanually.c, - lib_internal/matchlist-printid.c, - lib_internal/util-exitlikeprocess.c, lib_internal/util-io.h: - - workaround warning messages regarding 'warn_unused_return_value' when - using _FORTIFY_SOURCE. - -2005-03-22 15:57 Enrico Scholz - - * contrib/manifest.dat.pathsubst: - - added vhashify + vdlimit - -2005-03-22 15:57 Enrico Scholz - - * util-vserver.spec.in: - - cleanups - use %global instead of %define - -2005-03-22 15:48 Enrico Scholz - - * build-all: - - set _FORTIFY_SOURCE - -2005-03-19 04:58 Enrico Scholz - - * .cvsignore: - - updated - -2005-03-19 03:35 Enrico Scholz - - * update-doc: - - initial checkin - -2005-03-19 03:33 Enrico Scholz - - * scripts/chcontext: - - do not use '--create' for dynamic contexts - -2005-03-19 03:16 Enrico Scholz - - * sysv/vkillall[DEAD], tests/attack.spec[DEAD]: - - obsoleted - -2005-03-19 03:16 Enrico Scholz - - * sysv/vkillall, tests/attack.spec: - - added to be removed... - -2005-03-19 03:12 Enrico Scholz - - * distrib/redhat/initsignal[DEAD]: - - obsoleted - -2005-03-19 03:12 Enrico Scholz - - * distrib/redhat/initsignal: - - added to be removed soon... - -2005-03-19 03:11 Enrico Scholz - - * src/vnet.c[DEAD]: - - obsoleted... - -2005-03-19 03:08 Enrico Scholz - - * doc/vunify-verbosity.txt, lib/apidoc/list2xxx.descr, scripts/X, - src/vnet.c: - - initial checkin - -2005-03-19 03:07 Enrico Scholz - - * vserver-start/: interface-add.c, interface-print.c, - interface-remove.c, main.c: - - avoid warnings regarding unused params - -2005-03-19 03:07 Enrico Scholz - - * src/Makefile-files: - - moved vdlimit into the only-C99 section - build vhashify only with C99 and beecrypt - cleanups - -2005-03-19 03:06 Enrico Scholz - - * lib_internal/testsuite/copy-check: - - cleanups - conditionalize expensive tests - -2005-03-19 03:04 Enrico Scholz - - * lib_internal/Makefile-files, lib/Makefile-files: - - moved *dlimit* files into the only-C99 section - clean all potentially built libraries - -2005-03-19 03:03 Enrico Scholz - - * ensc_vector/list-free.c: - - some minor C89 compatibility changes - -2005-03-19 03:03 Enrico Scholz - - * ensc_vector/Makefile-files: - - use 'lib-dietlibc-not-enabled-error.a' consistently - clean all libraries inclusive those which might not be built - -2005-03-19 03:01 Enrico Scholz - - * doc/configuration.dtd: - - readded - -2005-03-19 03:01 Enrico Scholz - - * doc/configuration.xml: - - documented the 'vhashify' configuration - moved '' tags before '' - -2005-03-19 03:00 Enrico Scholz - - * doc/configuration-xhtml.xsl: - - applied changes regarding the new www-location on savannah - -2005-03-19 02:59 Enrico Scholz - - * doc/Makefile-files: - - (re)added xsltproc support - -2005-03-19 02:57 Enrico Scholz - - * configure.ac: - - added tests for XSLTPROC - added '--disable-expensive-tests' - added beecrypt tests - cosmetical cleanups + enhancements - -2005-03-19 02:56 Enrico Scholz - - * Makefile.am: - - set some values in TESTS_ENVIRONMENT - added some hacks for lib-dietlibc-not-enabled-error.a - -2005-03-18 04:56 Enrico Scholz - - * lib_internal/testsuite/.cvsignore: - - updated - -2005-03-18 04:55 Enrico Scholz - - * lib_internal/unify.h, src/vunify.h: - - include instead of defining a 'struct stat'; this prevents - problems with the 64bit interface of the filesystem functions - -2005-03-18 04:54 Enrico Scholz - - * lib_internal/unify-copy.c: - - use a sparse-file friendly method for copying files - -2005-03-18 04:33 Enrico Scholz - - * lib_internal/testsuite/: Makefile-files, copy-check, copy.c: - - added testcases for Unify_copy() - -2005-03-18 01:33 Enrico Scholz - - * vserver-start/Makefile-files: - - use $(LIBENSCVECTOR) instead of libensc_vector.a - -2005-03-18 01:25 Enrico Scholz - - * src/: vhashify-init.hc, vhashify.c, vhashify.h: - - made it work... - -2005-03-18 01:24 Enrico Scholz - - * src/: vcopy-init.hc, vunify-init.hc: - - applied changes in the MatchList-API - -2005-03-18 01:23 Enrico Scholz - - * src/Makefile-files: - - use $(LIBENSCVECTOR) instead of libensc_vector.a - use $(LIBVSERVER_GLIBC) instead of lib/libvserver.la - -2005-03-18 01:23 Enrico Scholz - - * scripts/vpkg: - - exit with returncode of '2' when pkgmgmt can not be determined - -2005-03-18 01:22 Enrico Scholz - - * lib_internal/testsuite/Makefile-files: - - use $(LIBENSCVECTOR) instead of libensc_vector.a - -2005-03-18 01:22 Enrico Scholz - - * lib_internal/: unify-isiunlinkable.c, unify.h: - - Unify_isIUnlinkable(): changed return-type - -2005-03-18 01:21 Enrico Scholz - - * lib_internal/unify-copy.c: - - implemented copyReg() with mmap(2) instead of read(2)+write(2) sequences - -2005-03-18 01:20 Enrico Scholz - - * lib_internal/string.hc: - - String_free(): added - -2005-03-18 01:20 Enrico Scholz - - * lib_internal/string.h: - - renamed String_destroy() to String_free() - -2005-03-18 01:20 Enrico Scholz - - * lib_internal/string-destroy.c[DEAD]: - - obsoleted; String_free() is now inlined - -2005-03-18 01:20 Enrico Scholz - - * lib_internal/: matchlist-initbyvserver.c, - matchlist-initmanually.c, matchlist-initrefserverlist.c, - matchlist.h: - - applied lot of API changes - -2005-03-18 01:18 Enrico Scholz - - * lib_internal/matchlist-destroy.c: - - use String_free() instead of String_destroy() - -2005-03-18 01:18 Enrico Scholz - - * lib_internal/Makefile-files: - - added matchvserverinfo-* - removed string-destroy.c - -2005-03-18 01:17 Enrico Scholz - - * lib_internal/: matchvserverinfo-free.c, matchvserverinfo-init.c: - - initial checkin - -2005-03-18 01:13 Enrico Scholz - - * ensc_vector/testsuite/Makefile-files, - lib/testsuite/Makefile-files: - - use $(LIBENSCVECTOR) instead of libensc_vector.a - -2005-03-18 01:13 Enrico Scholz - - * ensc_vector/Makefile-files, lib/Makefile-files: - - split into a -glibc and a -diet part - -2005-03-18 01:12 Enrico Scholz - - * configure.ac: - - HACK: set 'enable_static=no' for dietlibc case and postpone AC_PROG_LIBTOOL execution - -2005-03-18 01:11 Enrico Scholz - - * Makefile.am: - - use $(LIBVSERVER) instead of lib/libvserver.la - use $(LIBENSCVECTOR_DIET) instead of $(ENSC_VECTOR_LIBS) - -2005-03-17 15:59 Enrico Scholz - - * src/.cvsignore: - - updated - -2005-03-17 15:58 Enrico Scholz - - * src/vunify.c: - - use new Unify_unify() API - rearranged some code; I do not try to be C89 compliant in C99 progams anymore... - -2005-03-17 15:58 Enrico Scholz - - * src/vcopy.c: - - use new Unify_unify() API - -2005-03-17 15:57 Enrico Scholz - - * src/: vhashify-init.hc, vhashify.c, vhashify.h: - - initial checkin - -2005-03-17 15:56 Enrico Scholz - - * src/Makefile-files: - - use $(LIBINTERNAL) instead of lib_internal/libinternal.a - added vhashify* - -2005-03-17 15:55 Enrico Scholz - - * build-all: - - updated - -2005-03-17 15:53 Enrico Scholz - - * lib_internal/testsuite/Makefile-files, - src/testsuite/Makefile-files, vserver-start/Makefile-files: - - use $(LIBINTERNAL) instead of lib_internal/libinternal.a - -2005-03-17 15:53 Enrico Scholz - - * lib_internal/unify.h: - - * added an 'ignore_zero' argument to Unify_unify() - * Unify_isIUnlinkable(): added - -2005-03-17 15:52 Enrico Scholz - - * lib_internal/unify-unify.c: - - added an 'ignore_zero' argument to Unify_unify() - -2005-03-17 15:51 Enrico Scholz - - * lib_internal/unify-isiunlinkable.c: - - initial checkin - -2005-03-17 15:51 Enrico Scholz - - * lib_internal/Makefile-files: - - * create both libinternal-diet.a and libinternal-glibc.a. This is - needed to avoid segfaults with gcc4 when linking against glibc based - libraries like 'beecrypt'. Perhaps, these segfaults are a problem - with gcc4 as they do not happen with gcc33... - - * added unify-isiunlinkable.c - -2005-03-17 15:49 Enrico Scholz - - * ensc_vector/testsuite/test1.c: - - added tests for Vector_searchSelfOrg() - -2005-03-17 15:48 Enrico Scholz - - * ensc_vector/testsuite/Makefile-files: - - added test2 - -2005-03-17 15:47 Enrico Scholz - - * ensc_vector/: vector.h, vector.hc: - - Vector_searchSelfOrg*(): added - -2005-03-17 15:47 Enrico Scholz - - * ensc_vector/: list-add.c, list-at.c, list-free.c, list-init.c, - list-insertinternal.c, list-internal.h, list-search.c, - list-searchselforg.c, list.h, list.hc, vector-searchselforg.c, - testsuite/test2.c: - - initial checkin - -2005-03-17 15:47 Enrico Scholz - - * ensc_vector/Makefile-files: - - added list-* files - added vector-searchselforg.c - -2005-03-17 15:46 Enrico Scholz - - * ensc_fmt/: fmt.h, fmtx-32.c: - - fixed declaration of the *_x*int() methods; they do not take a 'base' argument - -2005-03-09 15:53 Enrico Scholz - - * src/vserver-info.c: - - added XIDTYPE support - -2005-03-09 15:43 Enrico Scholz - - * src/context-sync.hc: - - use EopenD() instead of Eopen() - -2005-03-09 15:42 Enrico Scholz - - * m4/ensc_initrddir.m4: - - fixed typo - -2005-03-09 15:39 Enrico Scholz - - * lib/vserver.h: - - vc_getXIDType(): added - -2005-03-09 15:39 Enrico Scholz - - * lib/vserver-internal.h: - - added some magic to avoid warnings with gcc4 - -2005-03-09 15:38 Enrico Scholz - - * lib/: Makefile-files, getxidtype.c: - - added getxidtype.c - -2005-03-09 15:37 Enrico Scholz - - * distrib/redhat/initpre: - - create /usr/X11 also - -2005-03-09 15:37 Enrico Scholz - - * distrib/: Makefile.am, fc3/apt/rpmpriorities, - fc3/apt/sources.list: - - added apt support for FC3 - -2005-03-02 02:27 Enrico Scholz - - * lib/: syscall_adddlimit.c, syscall_getdlimit.c, - syscall_remdlimit.c, syscall_setdlimit.c, - syscall_adddlimit-v13.hc, syscall_getdlimit-v13.hc, - syscall_remdlimit-v13.hc, syscall_setdlimit-v13.hc: - - use CALL_VC_V13B instead of CALL_VC_V13 - -2005-03-02 02:24 Enrico Scholz - - * scripts/vyum: - - allow '--all' param - -2005-03-02 02:24 Enrico Scholz - - * lib/testsuite/cflags.c: - - avoid some compiler warnings - -2005-03-02 02:23 Enrico Scholz - - * lib/vserver.h: - - added some VC_ATTR_NONNULL() statements - -2005-03-02 02:23 Enrico Scholz - - * lib/: syscall_adddlimit-v13.hc, syscall_remdlimit-v13.hc, - vserver-internal.h: - - minor cleanups - -2005-03-02 01:54 Enrico Scholz - - * src/secure-mount.c: - - do not assume 'nodev' on 'devpts' - -2005-03-02 01:54 Enrico Scholz - - * lib/vserver-internal.h: - - CDLIM_USER2KERNEL/CDLIM_KERNEL2USER(): added - -2005-03-02 01:52 Enrico Scholz - - * lib/Makefile-files, lib/syscall_adddlimit-v13.hc, - lib/syscall_adddlimit.c, lib/syscall_getdlimit-v13.hc, - lib/syscall_getdlimit.c, lib/syscall_remdlimit-v13.hc, - lib/syscall_remdlimit.c, lib/syscall_setdlimit-v13.hc, - lib/syscall_setdlimit.c, lib/virtual.h, lib/vserver.h, - src/Makefile-files, src/vdlimit.c: - - added *vdlimit functions + tools (patch provided by Daniel Hokka Zakrisson) - -2005-02-26 00:32 Enrico Scholz - - * scripts/vserver-setup.functions: - - added some sanity checks - -2005-02-26 00:31 Enrico Scholz - - * ensc_wrappers/: Makefile-files, wrappers-string.hc, wrappers.h: - - added wrapper around string functions - -2005-02-26 00:30 Enrico Scholz - - * src/secure-mount.c: - - /me should learn to differ between script-languages and C... strings in C are still marked by >"< but not by >'<... - fixed allocation of the newly generated option string - -2005-02-25 22:51 Enrico Scholz - - * scripts/: vapt-get-worker, vyum-worker: - - deprecate usage of $_YUM and $_APT_GET - -2005-02-25 22:37 Enrico Scholz - - * distrib/redhat/initpost, scripts/functions, scripts/pkgmgmt, - scripts/start-vservers, scripts/util-vserver-vars.pathsubst, - scripts/vprocunhide, scripts/vpstree, scripts/vserver, - scripts/vserver-build, scripts/vserver-build.apt-rpm, - scripts/vserver-build.debootstrap, - scripts/vserver-build.functions, - scripts/vserver-build.functions.apt, - scripts/vserver-build.functions.pkgmgmt, - scripts/vserver-build.functions.rpm, - scripts/vserver-build.functions.yum, scripts/vserver-build.rpm, - scripts/vserver-build.yum, scripts/vserver-copy, - scripts/vserver-setup.functions, scripts/vserver.functions, - scripts/vserver.start, scripts/vserver.stop, - scripts/vservers.grabinfo.sh, scripts/vshelper, - scripts/vsysvwrapper, scripts/vtop, scripts/legacy/distrib-info, - scripts/legacy/rootshell, scripts/legacy/vserver, sysv/rebootmgr, - sysv/vservers-legacy: - - LEGACY BREAKAGE FOR 3RD PARTY PATCHES: introduced a more common naming - scheme: global, immutable variables names are now named like '$__ABC' - instead of '$ABC'. This happens at much places and will break a lot of - patches therefore. - -2005-02-25 22:33 Enrico Scholz - - * configure.ac: - - changed my GPG key - -2005-02-25 22:33 Enrico Scholz - - * src/secure-mount.c: - - assume 'nodev' by default - -2005-02-25 21:55 Enrico Scholz - - * scripts/: vserver-build.functions.yum, vyum-worker: - - added preliminary support for the patch from - https://bugzilla.redhat.com/beta/attachment.cgi?id=111435&action=view - -2005-02-25 21:52 Enrico Scholz - - * scripts/vserver-build.functions.pkgmgmt: - - avoid ambiguous usage of $PKGDIR, use $PKGINSTALLDIR instead of - use $SETUP_CONFDIR instead of $confdir - -2005-02-25 21:51 Enrico Scholz - - * scripts/: vserver-build.apt-rpm, vserver-build.yum: - - avoid ambiguous usage of $PKGDIR, use $PKGINSTALLDIR instead of - -2005-02-21 00:21 Enrico Scholz - - * scripts/vserver-build.functions.rpm: - - rpm.initFilesystem(): fixed variable-names; this caused e.g. an unset %_dbpath macro formerly - -2005-02-16 00:13 Enrico Scholz - - * NEWS, configure.ac: - - version 0.30.204 - -2005-02-15 23:24 Enrico Scholz - - * configure.ac: - - added information where the 'ip' and 'vconfig' programs can be found - -2005-02-15 23:18 Enrico Scholz - - * scripts/vshelper: - - adjusted the order of cli options evaluation; automake-1.9.5 redirects - input from /dev/null so the 'tty -s' check gets triggered and 'make - distcheck' fails in the '... --version/--help' tests - -2005-02-15 19:04 Enrico Scholz - - * src/save_ctxinfo.c: - - fixed name of the run.rev symlink; there was a '/' missing which - caused a pollution of the /etc/vservers/.defaults directory with - 'run.revXXX' entries. (reported and analyzed by Olivier Poitrey). - -2005-02-07 19:02 Enrico Scholz - - * scripts/functions, scripts/vserver-build.functions.pkgmgmt, - src/vunify.c: - - fixed typos - -2005-02-07 19:01 Enrico Scholz - - * doc/configuration.xml: - - documented the *namespace options - -2005-02-04 13:18 Enrico Scholz - - * scripts/vserver.functions: - - SECURITY: fixed detection of the mtab-location (Georg Glas) - https://savannah.nongnu.org/bugs/?func=detailitem&item_id=11844 - -2005-02-04 03:55 Enrico Scholz - - * scripts/vserver.functions: - - fixed one of the previously added 'test -n' - -2005-02-02 15:09 Enrico Scholz - - * m4/ensc_pathprog.m4: - - ENSC_PATHPROG_INIT(): fixed doc - ENSC_PATHPROG(): added a '' parameter - -2005-02-02 14:42 Enrico Scholz - - * doc/: compatibility-xhtml.xsl, compatibility.css: - - applied http://vserver.lauft.net/wegen/util-vserver/patches/merge/util-vserver--merge--0.0--patch-2.patch - -2005-02-01 18:28 Enrico Scholz - - * NEWS, configure.ac: - - version 0.30.203 - -2005-02-01 18:23 Enrico Scholz - - * scripts/Makefile-files: - - added vyum-worker to AM_INSTALLCHECK_STD_OPTIONS_EXEMPT - -2005-02-01 18:23 Enrico Scholz - - * scripts/vyum-worker: - - minor cosmetical change - -2005-02-01 18:22 Enrico Scholz - - * scripts/: functions, pkgmgmt: - - fixed 'local VAR=$(ACTION) || ERROR' constructs; the 'local VAR=$(ACTION)' - succeeds everytime so ERROR will be never executed. So, it is rewritten to - 'local VAR; VAR=$(ACTION) || ERROR'. - -2005-02-01 18:02 Enrico Scholz - - * NEWS, configure.ac: - - version 0.30.202 - -2005-02-01 17:57 Enrico Scholz - - * distrib/fc3/rpmlist.d/00.lst: - - initial checkin - -2005-02-01 17:56 Enrico Scholz - - * scripts/vserver-build.rpm: - - moved installPackages into vserver-build.functions.rpm - added support for preconfigured package-lists - -2005-02-01 17:55 Enrico Scholz - - * scripts/vserver-build.functions.rpm: - - rpmlist.*(): added - -2005-02-01 17:55 Enrico Scholz - - * scripts/vserver-build: - - documented the '--empty' switch for the '-m rpm' method - allow an increasing debug-level - -2005-02-01 17:54 Enrico Scholz - - * scripts/functions: - - vshelper.isDebug(): fixed it... - -2005-02-01 17:53 Enrico Scholz - - * distrib/Makefile.am: - - added the fc3 rpmlist.d directory + content - -2005-02-01 17:53 Enrico Scholz - - * contrib/manifest.dat.pathsubst: - - added vserver-build.rpm - -2005-02-01 03:08 Enrico Scholz - - * lib_internal/matchlist-initbyvserver.c, - lib_internal/matchlist-initmanually.c, - lib_internal/matchlist-initrefserverlist.c, src/vcopy-init.hc, - src/vunify-init.hc: - - changed matchlist-API to pass additional information about a - vserver. This allows to turn off pkgmgmt-queries for not-yet - existent vservers in 'vcopy' - -2005-02-01 03:06 Enrico Scholz - - * lib_internal/matchlist.h: - - struct MatchVserverInfo: added; it allows to pass additional information about the vserver - -2005-02-01 03:06 Enrico Scholz - - * lib_internal/unify-copy.c: - - copyReg(): open out_fd with O_RDWR, fixed resource leak in error-case - -2005-02-01 01:55 Enrico Scholz - - * lib/createskeleton-full.hc: - - argl... fixed overflow when appending the '/' - -2005-02-01 00:06 Enrico Scholz - - * doc/configuration.xml, scripts/functions, scripts/vshelper: - - added 'debug' option for vshelper - -2005-02-01 00:04 Enrico Scholz - - * scripts/vshelper: - - added delegation support (Herbert Poetzl) - http://vserver.13thfloor.at/Experimental/NGNET/delta-vshelper-delegate.diff - -2005-01-31 23:47 Enrico Scholz - - * scripts/vserver-build.functions: - - getDistribution(): added support for a default distribution - -2005-01-31 23:45 Enrico Scholz - - * scripts/: Makefile-files, vserver-build, vserver-build.rpm: - - added the '-m rpm' method - -2005-01-31 23:45 Enrico Scholz - - * distrib/: Makefile.am, template/initpost, template/initpre: - - added the 'template' distribution - -2005-01-31 18:48 Enrico Scholz - - * src/rpm-fake.c: - - fixed environment unsetting: it will be now done shortly before execve(2) - but not on initialization anymore. This solves the problem when 'rpm' is - a wrapper only calling the real 'rpm?'. Then, LD_PRELOAD et.al. was unset - and the wrapper not used. - -2005-01-31 18:45 Enrico Scholz - - * scripts/vshelper: - - fixed the (currently non-existent) child->parent traversal - -2005-01-31 18:44 Enrico Scholz - - * lib/apidoc/Doxyfile.in: - - added DOT_TRANSPARENT + DOT_MULTI_TARGET - -2005-01-31 18:44 Enrico Scholz - - * doc/configuration.xml: - - updated - -2005-01-31 18:43 Enrico Scholz - - * Makefile.am, util-vserver.spec.in, lib/createskeleton-full.hc, - scripts/vserver-build.functions, scripts/vserver-setup.functions, - src/save_ctxinfo.c: - - removed 'run.rev' as a vserver-local variable and made it a system-wide setting - -2005-01-28 02:21 Enrico Scholz - - * doc/configuration.xml: - - reindented it - fixed vshelper documentation - -2005-01-27 22:24 Enrico Scholz - - * scripts/: functions, pkgmgmt, start-vservers, vapt-get, vpkg, - vprocunhide, vrpm, vrpm-preload, vserver, vserver-build, - vserver-build.debootstrap, vserver-build.functions.rpm, - vserver-setup.functions, vserver-wrapper, vserver.functions, - vserver.start, vserver.stop, vshelper, vsomething: - - use 'test -n "..."' instead of 'test "..."'; when "..." expands to '-v' - or a similar string, the expression will be misinterpreted (noticed by - Werner Schalk) - -2005-01-27 21:53 Enrico Scholz - - * NEWS, configure.ac: - - version 0.30.201 - -2005-01-27 21:38 Enrico Scholz - - * src/: reducecap.c, vserver-info.c: - - reworked the capability.h stuff - -2005-01-27 21:38 Enrico Scholz - - * src/: Makefile-files, capability-compat.h: - - added capability-compat.h - -2005-01-27 21:37 Enrico Scholz - - * configure.ac: - - added check for header - -2005-01-27 21:37 Enrico Scholz - - * Makefile.am: - - removed the linuxcaps.h bits - -2005-01-27 20:17 Enrico Scholz - - * src/vserver-info.c: - - implemented capability-support check - -2005-01-27 20:16 Enrico Scholz - - * src/rpm-fake.c: - - fixed execution order of chroot(2) and context-creation; this caused - errors on kernel 2.6 when the vserver is not running yet - -2005-01-27 20:15 Enrico Scholz - - * src/: .cvsignore, Makefile-files: - - added check-unixfile - -2005-01-27 20:15 Enrico Scholz - - * scripts/vserver.start: - - execute sanityCheck() - -2005-01-27 20:15 Enrico Scholz - - * scripts/vserver.functions: - - moved sanity checks which were spread in various functions into the sanityCheck() method - implemented checks for non-newline terminated files and missing capability support - -2005-01-27 20:12 Enrico Scholz - - * scripts/vserver-build.functions.yum, scripts/vserver-build.yum, - scripts/vsomething, scripts/vyum, scripts/vyum-worker, - src/check-unixfile.c: - - initial checkin - -2005-01-27 20:11 Enrico Scholz - - * scripts/vserver-build: - - added 'yum' support - -2005-01-27 20:11 Enrico Scholz - - * scripts/vrpm-preload: - - reorganized; moved lots of code into the 'functions' file - -2005-01-27 20:10 Enrico Scholz - - * scripts/util-vserver-vars.pathsubst: - - added yum* files + vsomething + check-unixfile - -2005-01-27 20:10 Enrico Scholz - - * scripts/functions: - - added yum* support - reorganized the rpmFake stuff - -2005-01-27 20:09 Enrico Scholz - - * scripts/Makefile-files: - - added the yum* files + vsomething - -2005-01-27 20:09 Enrico Scholz - - * distrib/redhat/initpre: - - added missing newline - -2005-01-27 20:09 Enrico Scholz - - * distrib/fc3/: pkgs/01, pkgs/02, pkgs/03, yum/yum.conf, - yum.repos.d/fedora-devel.repo, - yum.repos.d/fedora-updates-testing.repo, - yum.repos.d/fedora-updates.repo, yum.repos.d/fedora.repo: - - initial checkin - -2005-01-27 20:08 Enrico Scholz - - * distrib/Makefile.am: - - added the yum* stuff for fc3 - -2005-01-27 20:07 Enrico Scholz - - * contrib/manifest.dat.pathsubst: - - added the yum* files + check-unixfile - -2005-01-27 20:07 Enrico Scholz - - * README: - - mentioned the '-m yum' buildmethod - -2005-01-27 00:29 Enrico Scholz - - * lib/getvservercfgstyle.c: - - allow dangling symlinks as /etc/vservers/.../vdir also - -2005-01-27 00:27 Enrico Scholz - - * NEWS, configure.ac: - - version 0.30.199 - -2005-01-26 22:15 Enrico Scholz - - * util-vserver.spec.in: - - do not ship the /vservers directory itself; as it is immutable, the - extraction will fail else - -2005-01-26 21:44 Enrico Scholz - - * lib_internal/testsuite/.cvsignore: - - updated - -2005-01-26 21:09 Enrico Scholz - - * util-vserver.spec.in: - - rearranged some scriptlets to avoid comments after '-p /sbin/ldconfig' - -2005-01-26 16:35 Enrico Scholz - - * scripts/vserver.start: - - added (untested) support for '/' in the vserver fstab - -2005-01-26 16:34 Enrico Scholz - - * scripts/vserver.functions: - - use unique prefixes for variables used in functions with 'eval' statements - mountRootFS(): added - -2005-01-26 16:34 Enrico Scholz - - * scripts/functions: - - use unique prefixes for variables used in functions with 'eval' statements - -2005-01-26 16:32 Enrico Scholz - - * lib_internal/testsuite/filecfg-ml.c: - - include + - -2005-01-26 16:31 Enrico Scholz - - * scripts/Makefile-files: - - moved rootshell to legacy - -2005-01-26 16:30 Enrico Scholz - - * vserver-start/defaulttty.c: - - include - -2005-01-26 16:29 Enrico Scholz - - * src/secure-mount.c: - - added '--rootfs' option - -2005-01-26 16:28 Enrico Scholz - - * contrib/manifest.dat.pathsubst: - - moved the v_* initscripts to legacy - -2005-01-26 15:23 Enrico Scholz - - * util-vserver.spec.in: - - updated BuildRequires: - use 'setattr --barrier' instead of 'chattr +t' in the %post scriptlet - moved the v_* initscripts to legacy - -2005-01-25 17:01 Enrico Scholz - - * scripts/rootshell[DEAD], contrib/manifest.dat.pathsubst, - scripts/legacy/rootshell: - - moved rootshell script to legacy - -2005-01-21 14:49 Enrico Scholz - - * scripts/legacy/vserver: - - fixed http://savannah.nongnu.org/bugs/?func=detailitem&item_id=11570: - - "vserver myvserver start" gives exit code 1 if there is no file - /etc/vservers/myvserver.sh, since the last statement in vserver - ("test -x /etc/vservers/$1.sh && ...") evaluates to 1 in this case. - - [Daniel Hermann] - -2005-01-21 14:44 Enrico Scholz - - * scripts/vserver: - - be more verbosely when vserver could not be determined and give hints - about possible solutions (based upon ideas by Thorsten Gunkel) - -2005-01-21 14:42 Enrico Scholz - - * scripts/vserver-setup.functions: - - interface-configuration: give out a warning when no device was configured - -2005-01-21 14:41 Enrico Scholz - - * scripts/vserver.functions: - - * interface-configuration: accept 'nodev' without a configured 'dev'; - formerly the interface was silently ignored when 'dev' was missing - * added some sanity checks for the behaviour described above - -2005-01-21 14:38 Enrico Scholz - - * src/rpm-fake.c: - - added rpm_execcon() wrapper to make it work in SELinux environments - call execve(2) directly instead of execv(3) - -2005-01-07 18:40 Enrico Scholz - - * README: - - fixed typos - cleanups + enhancements - -2005-01-07 17:44 Enrico Scholz - - * README: - - "Notes for distributors" + "Which version shall I use?" added - -2005-01-07 17:41 Enrico Scholz - - * m4/ensc_dietlibc.m4: - - Fixed last patch: use '[[' instead of '[' (found by Hans Ulrich Niedermann) - -2005-01-07 00:59 Enrico Scholz - - * configure.ac: - - call ENSC_DIETLIBC_SANITYCHECK, AC_CANONICAL_HOST + AC_CANONICAL_BUILD - -2005-01-07 00:53 Enrico Scholz - - * m4/ensc_dietlibc.m4: - - ENSC_DIETLIBC_SANITYCHECK(): added - made ENSC_VERSION_DIETLIBC uppercase - ignore extra specifiers in dietlibc's minor version (reported by Hans Ulrich Niedermann) - -2005-01-07 00:26 Enrico Scholz - - * scripts/util-vserver-vars.pathsubst: - - fix typo in $_MKTEMPDIR: Use $_MKTEMP not $MKTEMP (fixed by Hans Ulrich Niedermann) - -2004-12-28 20:07 Enrico Scholz - - * scripts/: functions, pkgmgmt, start-vservers, - util-vserver-vars.pathsubst, vpkg, vrpm-preload, - vserver-build.debootstrap, vserver-build.functions.apt, - vserver-wrapper, vserver.start, vserver.stop: - - use $_ (which expands to absolute paths) instead of trusting into a good $PATH - -2004-12-28 20:07 Enrico Scholz - - * scripts/vserver.functions: - - use $_ (which expands to absolute paths) instead of trusting into a good $PATH - a small VLAN fix (do not quote the splitted dev) - minor cleanups - -2004-12-28 20:04 Enrico Scholz - - * configure.ac: - - use ENSC_PATHPROG & friends - -2004-12-28 20:03 Enrico Scholz - - * m4/ensc_pathprog.m4: - - initial checkin - -2004-12-28 20:02 Enrico Scholz - - * Makefile.am: - - use ${ENSC_PATHPROG_SED} when substituting prognames - -2004-12-28 13:00 Enrico Scholz - - * m4/ensc_dietlibc_compat.m4: - - check more syscall variants - -2004-12-28 13:00 Enrico Scholz - - * lib/vserver.h: - - s!\params!\param! - added doc about vc_get_iattr() - -2004-12-28 12:58 Enrico Scholz - - * doc/cfg.txt[DEAD]: - - removed since obsoleted by configuration.xml - -2004-12-21 08:19 Enrico Scholz - - * src/vsched.c: - - fixed segfault when no arguments are given (reported by Adrian Reyer) - -2004-12-16 01:11 Enrico Scholz - - * src/keep-ctx-alive.c: - - renamed the 'fd_set' variable to 'fdset'. former name causes problems - with certain FD_* implementations (reported by Adrian Reyer) - -2004-12-09 14:07 Enrico Scholz - - * build-all: - - added fc-3 host - -2004-12-09 14:06 Enrico Scholz - - * lib/Makefile-files: - - getfilecontext.c: added - -2004-12-09 14:05 Enrico Scholz +2007-04-21 14:04 Daniel Hokka Zakrisson - * lib/: getfilecontext.c, vserver.h: + * scripts/functions: Don't do namespace cleanup if we're not in a + new namespace. - vc_getfilecontext(): as noticed by daniel_hozac in IRC, this function - was horribly broken. Fixed and moved it into an own file as it is too - complex for an inline function. Documentation was added also. +2007-04-21 14:03 Daniel Hokka Zakrisson -2004-12-07 12:15 Enrico Scholz + * distrib/Makefile.am, distrib/centos5, distrib/centos5/pkgs, + distrib/centos5/yum, distrib/centos5/yum.repos.d, + distrib/centos5/yum.repos.d/CentOS-Base.repo, + distrib/centos5/yum/yum.conf: Add CentOS 5. - * vserver-start/main.c: +2007-04-13 10:46 Benedikt Böhm - include + * distrib/etch/vserver-config.sh: remove interactive setup steps -2004-12-07 12:14 Enrico Scholz +2007-04-13 09:02 Benedikt Böhm - * scripts/vserver.functions: + * distrib/Makefile.am, distrib/etch, distrib/etch/initpost, + distrib/etch/vserver-config.sh, distrib/misc/debootstrap.mirror, + scripts/vserver-build.debootstrap: add build scripts for debian + etch - read enter-shell from the defaults-directory also - use prio-bias instead of cpu-mask +2007-04-11 18:14 Daniel Hokka Zakrisson -2004-12-07 12:13 Enrico Scholz + * scripts/vyum-worker: Fix typo. - * lib_internal/filecfg-iteratemultiline.c: +2007-04-11 17:55 Daniel Hokka Zakrisson - include + * distrib/misc/debootstrap.uri: New debootstrap. -2004-12-07 12:13 Enrico Scholz +2007-04-08 00:40 Daniel Hokka Zakrisson - * lib/testsuite/cflags.c: + * src/vlogin.c: terminal_copy doesn't return void anymore. - added some new flags +2007-04-08 00:39 Daniel Hokka Zakrisson -2004-12-07 12:10 Enrico Scholz + * distrib/Makefile.am: Add shutdown.sh and reboot.sh to the + Makefile. - * doc/configuration.xml: +2007-03-27 18:00 Benedikt Böhm - do not mention the /hostname + /domainname params anymore - removed vsched/cpu-mask - added vsched/priority-bias + * distrib/gentoo/initpost, distrib/gentoo/initpre, + distrib/gentoo/reboot.sh, distrib/gentoo/shutdown.sh: force + halt/reboot if using gentoo init style, enable syslog stub by + default for gentoo guests -2004-10-21 21:02 Enrico Scholz +2007-03-24 12:54 Daniel Hokka Zakrisson - * lib/vserver.h: + * scripts/vserver-build.debootstrap: Get rid of the work directory + on success. - added/updated flags and capabilities +2007-03-21 04:46 Daniel Hokka Zakrisson -2004-10-21 21:01 Enrico Scholz + * scripts/vserver: Fix help message. - * lib/islink.c: +2007-03-20 20:38 Daniel Hokka Zakrisson - initial checkin + * scripts/vserver-build.debootstrap: Fix problems with debootstrap + on Ubuntu. -2004-10-21 21:01 Enrico Scholz +2007-03-20 17:47 Daniel Hokka Zakrisson - * lib/internal.h: + * scripts/vserver-build.debootstrap: Remove the guest in case of + failure. - utilvserver_isLink(): added prototype +2007-03-18 22:15 Daniel Hokka Zakrisson -2004-10-21 21:00 Enrico Scholz + * scripts/pkgmgmt: Supply the required argument. - * lib/cflags-v13.c: +2007-03-18 22:02 Daniel Hokka Zakrisson - added lots of new flags + * scripts/vserver-setup.functions: nodev: shouldn't be in the ip + file. -2004-10-21 20:59 Enrico Scholz +2007-03-18 17:51 Daniel Hokka Zakrisson - * lib/ccaps-v13.c: + * gentoo/util-vserver: Verbosify initscript. - added 'remount' + 'icmp' cap; 'ping' is kept for compatibility reasons +2007-03-18 15:32 Daniel Hokka Zakrisson -2004-10-21 20:58 Enrico Scholz + * scripts/functions, scripts/pkgmgmt, scripts/vserver, + scripts/vserver-build.functions, scripts/vsomething: Rename + _setVserverDir to _setVserverDirName. + Rename _getVserverDir to _setVserverDir. + Add _setVserverName to set VSERVER_NAME. + pkgmgmt.initVariables cannot run before _setVserverDirName, and + the initialization must happen once per guest. - * lib/Makefile-files: +2007-03-18 15:04 Daniel Hokka Zakrisson - added islink.c + * src/vlogin.c: Attempt to fix the endless loop of select() read(). -2004-10-20 01:59 Enrico Scholz +2007-03-18 11:51 Daniel Hokka Zakrisson - * scripts/functions: + * sysv/util-vserver: Create the directories here for strange + distros (e.g. Ubuntu). - getFileValue(): modified to accept a list of candidates +2007-03-11 21:25 Daniel Hokka Zakrisson -2004-10-20 01:39 Enrico Scholz + * scripts/vserver.functions: Fix IPv6 address assignment. - * src/vcontext.c: +2007-03-09 21:07 Daniel Hokka Zakrisson - merged from UV_NAMESPACE_AFTER_CHROOT branch + * distrib/misc/debootstrap.uri: Update the debootstrap URI. -2004-10-20 01:19 Enrico Scholz +2007-03-07 20:33 Daniel Hokka Zakrisson - * Makefile.am: + * src/vsched.c: Fix idle-time. - added 'update-doc' target +2007-02-26 20:18 Daniel Hokka Zakrisson -2004-10-20 01:11 Enrico Scholz + * distrib/gentoo/init-vserver.sh, scripts/vserver.functions: Make + the gentoo initstyle work with baselayout-vserver. - * ensc_wrappers/wrappers-vserver.hc: +2007-02-25 14:06 Daniel Hokka Zakrisson - Evc_{new,enter}_namespace(): added + * scripts/functions, scripts/vserver.stop, scripts/vshelper: Don't + tell init to shutdown if we're called from vshelper, that + should've already happened. + Kill init and other remaining processes from vshelper once the + stop sync signal has arrived. -2004-10-19 23:47 Enrico Scholz +2007-02-25 01:44 Daniel Hokka Zakrisson - * NEWS, configure.ac: + * scripts/vserver.functions: Add $__LOCKDIR and /tmp to the + excluded paths. - version 0.30.196 +2007-02-24 23:43 Daniel Hokka Zakrisson -2004-10-19 23:47 Enrico Scholz + * configure.ac: Fix help message for --with-initscripts. - * kernel/: context.h, cvirt.h: +2007-02-24 20:03 Daniel Hokka Zakrisson - updated to vs1.9.3-rc4 + * distrib/Makefile.am: Move the Gentoo in-guest scripts to *_DATA, + so rpm doesn't process them for deps. -2004-10-19 23:11 Enrico Scholz - - * vserver-start/: configuration-init.c, configuration.c, - configuration.h, interface.c, interface.h, main.c, scriptlets.c, - vserver-start.h: - - added lots of new code - -2004-10-19 23:09 Enrico Scholz +2007-02-24 20:03 Daniel Hokka Zakrisson - * vserver-start/defaulttty.c, - lib_internal/filecfg-iteratemultiline.c, - lib_internal/testsuite/filecfg-ml.c: + * m4/ensc_pathprog.m4: Fix the symlink problems. - initial checkin +2007-02-22 05:18 Daniel Hokka Zakrisson -2004-10-19 23:09 Enrico Scholz + * lib/syscall-alternative.h: Update to latest shiny. - * vserver-start/Makefile-files: +2007-02-21 20:07 Daniel Hokka Zakrisson - added defaulttty.c + * scripts/vserver-setup.functions: Update help message to + correspond better with reality. -2004-10-19 23:08 Enrico Scholz +2007-02-20 17:33 Daniel Hokka Zakrisson - * src/reducecap.c: + * ensc_wrappers/wrappers-vserver.hc, lib/syscall_ctxmigrate-v21.hc, + lib/syscall_ctxmigrate.c, lib/vserver.h, + lib_internal/switchtowatchxid.c, src/rpm-fake-resolver.c, + src/rpm-fake.c, src/vcontext.c: Add support for the migration + flags. - use some dirty hacks to include cleanly +2007-02-17 19:10 Daniel Hokka Zakrisson -2004-10-19 23:08 Enrico Scholz + * scripts/vserver-setup.functions: Make nodev: silence the warning. - * scripts/vserver.stop: +2007-02-17 19:01 Daniel Hokka Zakrisson - execute 'prepareStop()' + * lib/syscall-alternative.h: Update to latest shiny. -2004-10-19 23:07 Enrico Scholz +2007-02-14 19:32 Daniel Hokka Zakrisson - * scripts/vserver.functions: + * scripts/functions: &>> doesn't exist. - made runlevel_{start,stop} global variables - prepareStop(): added - set PREVLEVEL on 'vserver ... stop' (required by Debian) +2007-02-14 19:24 Daniel Hokka Zakrisson -2004-10-19 23:06 Enrico Scholz + * lib/syscall-alternative.h: Update to latest shiny. - * scripts/vserver-setup.functions: +2007-02-11 20:21 Daniel Hokka Zakrisson - s!prefix!prefixlen! + * scripts/functions: Work better if the default tty is a file by + using /dev/null for input and appending the output. -2004-10-19 23:06 Enrico Scholz +2007-02-11 20:16 Daniel Hokka Zakrisson - * lib_internal/testsuite/Makefile-files: + * lib/syscall-alternative.h: Update to shiny15. - added filecfg-ml test +2007-02-11 00:45 Daniel Hokka Zakrisson -2004-10-19 23:06 Enrico Scholz + * scripts/vserver-build.clone, src/vclone.c: Remove the --source + and --dest "options" from vclone, both are required. + Catch error conditions about the arguments in vclone. + Attempt to figure out where the source if it's not a directory, + and make sure it is one before running vclone. - * lib_internal/string.hc: +2007-02-10 15:06 Daniel Hokka Zakrisson - String_c_str(): added + * lib/getxidtype.c: Xid 65535 is a static one when dynamic ones are + disabled. -2004-10-19 23:05 Enrico Scholz +2007-02-09 06:17 Daniel Hokka Zakrisson - * lib_internal/string.h: + * scripts/vserver.functions: Add /usr/bin to exception list, to + make sure we keep the /usr mount around. - ENSC_STRING_*FIXED(): added +2007-02-05 20:59 Daniel Hokka Zakrisson -2004-10-19 23:05 Enrico Scholz + * src/Makefile-files, src/vkill.c: Fix the last, horribly broken + commit. - * lib_internal/filecfg.h: +2007-02-05 20:45 Daniel Hokka Zakrisson - FileCfg_iterateOverMultiLine(): added prototypes and related declarations + * src/vdevmap.c: Really silence the warning. -2004-10-19 23:04 Enrico Scholz +2007-02-05 20:40 Daniel Hokka Zakrisson - * lib_internal/Makefile-files: + * src/vkill.c: Try to figure out the xid if not specified. - added filecfg-iteratemultiline.c +2007-02-05 20:39 Daniel Hokka Zakrisson -2004-10-19 23:04 Enrico Scholz + * src/vdevmap.c: Silence warning. - * lib/syscall_setsched-v13.hc: +2007-02-05 20:39 Daniel Hokka Zakrisson - vc_set_sched_v13obs(): use VCMD_set_sched_v2 instead of VCMD_set_sched + * distrib/gentoo/net.vserver: Make distrib/gentoo/net.vserver + non-executable so RPM doesn't pick up a dependency on + /sbin/runscript. -2004-10-19 23:03 Enrico Scholz +2007-02-05 18:08 Benedikt Böhm - * ensc_wrappers/wrappers-unistd.hc: + * scripts/vdispatch-conf, scripts/vesync, scripts/vupdateworld: fix + vsomething arguments in gentoo wrappers - Enice(): added +2007-02-04 17:18 Enrico Scholz -2004-10-19 23:03 Enrico Scholz + * lib_internal/unify-copy.c: - documented parts of the code were I + needed to think >1min about its + sense + - use ftruncate(2) instead of a lseek(2)+write(2) sequence to + create a + sparse file + - set O_NOCTTY flag for temp file - * doc/configuration.xml: +2007-02-04 17:17 Enrico Scholz - s!prefix!prefix-length! + * lib_internal/testsuite/sigbus.c: - reworked the large pagesize + patch; it seems to be always PAGESIZE*2+1 + bytes required to trigger a SIGBUS. Since PAGESIZE is not + available + directly, use sysconf(3) to get this value and memset(3) to + initialize + buffer + - removed byte crap -2004-10-19 23:03 Enrico Scholz +2007-02-01 12:56 Daniel Hokka Zakrisson - * Makefile.am: + * sysv/Makefile-files: Add missing hunk from the Gentoo initscripts + commit. - added new kernel headers - changed substition of linuxcaps.h; oldish 'sed' versions do not understand '\<' regexs +2007-01-29 23:37 Daniel Hokka Zakrisson -2004-10-18 18:11 Enrico Scholz + * Makefile.am, configure.ac, gentoo, gentoo/Makefile-files, + gentoo/util-vserver, gentoo/vprocunhide, gentoo/vservers.default, + util-vserver.spec.in: Add Gentoo initscripts. + Force sysv initscripts for the RPMs. - * src/vcontext.c: +2007-01-29 02:06 Daniel Hokka Zakrisson - do not include "linuxcaps.h" anymore + * scripts/vserver.stop, scripts/vserver.suexec: There's no need to + enter the filesystem namespaces twice. -2004-10-18 18:08 Enrico Scholz +2007-01-28 11:35 Daniel Hokka Zakrisson - * kernel/: context.h, cvirt.h, inode.h, legacy.h, limit.h, - namespace.h, network.h, sched.h, signal.h, switch.h, xid.h: + * src/secure-mount.c: When we call the external mount, we need to + preserve all of the options so it can parse them on its own. + The option defaults should set nodev in the flags. - updated +2007-01-27 23:16 Daniel Hokka Zakrisson -2004-10-18 18:07 Enrico Scholz + * contrib/manifest.dat.pathsubst: vserver-copy is legacy, put the + man page in the same package. - * doc/Makefile-files: +2007-01-27 11:10 Daniel Hokka Zakrisson - removed stylesheets and images from the main-package; they are now in the web-CVS + * contrib/manifest.dat.pathsubst, distrib/Makefile.am, + distrib/misc/context.start, doc/configuration.xml, + scripts/vserver-setup.functions: Move dynamic context generation + to userspace. -2004-10-18 18:07 Enrico Scholz +2007-01-27 10:20 Daniel Hokka Zakrisson - * doc/: configuration-flower.css[DEAD], - configuration-lsd.css[DEAD], configuration-lsd1.css[DEAD], - flowers.png[DEAD], flowers1.png[DEAD], flowers2.png[DEAD]: + * scripts/vserver-setup.functions: Set nodev rather than just + warning about it. - moved into web-CVS +2007-01-27 10:05 Daniel Hokka Zakrisson -2004-10-18 17:46 Enrico Scholz + * lib_internal/unify.h: Actually check the mtime when it's not + optional. - * kernel/: debug.h, dlimit.h: +2007-01-27 09:38 Daniel Hokka Zakrisson - updated + * lib_internal/unify.h, src/vhashify.c, src/vhashify.h: Add an + option (--ignore-mtime) to vhashify to hashify files with + differing mtimes. -2004-10-06 05:20 Enrico Scholz +2007-01-25 13:14 Daniel Hokka Zakrisson - * README: + * doc/configuration.xml: Add entries that were missing from + .defaults. - updated note about 'vserver-stat' and differ between 2.4 and 2.6 - kernel +2007-01-25 09:51 Daniel Hokka Zakrisson -2004-10-06 05:19 Enrico Scholz + * src/chxid.c, src/fstool.c, src/fstool.h: Add option to chxid to + skip unified files. - * lib_internal/unify-unify.c: +2007-01-23 16:43 Daniel Hokka Zakrisson - retain 'errno' on the final unlink() + * src/vclone.c: Don't overwrite files that already exist. -2004-10-06 05:19 Enrico Scholz +2007-01-23 16:41 Benedikt Böhm - * src/Makefile-files: + * distrib/Makefile.am, distrib/gentoo/initpost, + distrib/gentoo/initpre, distrib/gentoo/net.vserver: cleanup + gentoo/initpost; add fixes for syslog-ng.conf and net dependency + in baselayout >= 1.13 - link secure-mount against libvserver +2007-01-21 20:17 Daniel Hokka Zakrisson -2004-10-06 05:18 Enrico Scholz + * scripts/Makefile-files: ... and the Makefile. - * src/secure-mount.c: +2007-01-21 20:06 Daniel Hokka Zakrisson - added better diagnostic when fstab-parsing fails - use strsep() instead of strtok_r() in the parser to make the line-number counter work + * contrib/manifest.dat.pathsubst: Add the build method to the + manifest too. -2004-10-01 14:16 Enrico Scholz +2007-01-21 20:05 Daniel Hokka Zakrisson - * NEWS, configure.ac: + * contrib/manifest.dat.pathsubst, + scripts/util-vserver-vars.pathsubst, scripts/vserver-build, + scripts/vserver-build.clone: Add the clone build method. - version 0.30.195 +2007-01-21 18:26 Daniel Hokka Zakrisson -2004-10-01 14:08 Enrico Scholz + * ensc_wrappers/wrappers-unistd.hc, lib_internal/pathinfo.h, + src/Makefile-files, src/vclone.c: Add vclone, to help with + cloning guests. - * scripts/functions: +2007-01-21 08:02 Daniel Hokka Zakrisson - _getProcNumberCount(): s!$_ctx!$1! + * scripts/vserver.start, src/vsysctl.c: If it doesn't exist, only + error if requested. -2004-10-01 13:50 Enrico Scholz +2007-01-20 17:31 Benedikt Böhm - * configure.ac, m4/ensc_dietlibc.m4: + * distrib/gentoo/initpost: fix runlevel scripts for older + baselayouts too; set hostname inside the guest - give out information about version of the found dietlibc +2007-01-20 13:55 Daniel Hokka Zakrisson -2004-10-01 13:04 Enrico Scholz + * lib/checkconfig.c: Return 0 on any error, older kernels will + return -EPERM for unknown syscalls. - * m4/ensc_dietlibc.m4: +2007-01-20 09:36 Daniel Hokka Zakrisson - fixed version-detection when additional information are following the - number + * doc/configuration.xml: Document the configuration for vdevmap. -2004-10-01 13:00 Enrico Scholz +2007-01-20 09:25 Daniel Hokka Zakrisson - * scripts/functions: + * doc/configuration.xml: Place-holder documentation for now, until + some better descriptions comes along. - use more efficient ways to detect number of processes in a context - (access /proc/virtual/... information instead of executing vps) +2007-01-20 07:43 Daniel Hokka Zakrisson -2004-10-01 12:58 Enrico Scholz + * lib_internal/testsuite/sigbus.c: Add patch from David Woodhouse + to work with 64 KiB pages. - * scripts/: vserver-build, vserver-build.debootstrap: +2007-01-18 16:35 Daniel Hokka Zakrisson - allowed to specify additional debootstrap options + * scripts/util-vserver-vars.pathsubst, scripts/vserver.functions, + sysv/util-vserver: Add support for vdevmap in the configuration. -2004-10-01 12:57 Enrico Scholz +2007-01-18 16:33 Daniel Hokka Zakrisson - * src/: vps.c, vserver-stat.c: + * src/vsysctl.c: Fix logic error. - added warnings regarding procfs-security +2007-01-18 13:38 Daniel Hokka Zakrisson -2004-09-24 17:10 Enrico Scholz + * contrib/manifest.dat.pathsubst, + scripts/util-vserver-vars.pathsubst, scripts/vserver.start, + src/Makefile-files, src/vsysctl.c: Add support for setting sysctl + values in the configuration. - * src/rpm-fake.c: +2007-01-18 07:56 Enrico Scholz - removed a __THROW which is not needed and causes errors with newer gcc + * contrib/Makefile-files, contrib/yum-3.0.3-chroot.patch: added + patch for yum-3.0.3 -2004-09-24 17:08 Enrico Scholz +2007-01-18 04:38 Daniel Hokka Zakrisson - * lib/syscall_setvhiname-v13.hc: + * scripts/vserver.functions: Remove the disk limits after saving + them. - use a better method to copy labels; formerly, bad parameters could - cause undefined behaviour +2007-01-17 09:56 Daniel Hokka Zakrisson -2004-09-24 17:06 Enrico Scholz + * lib/vserver.h: Add VC_VXSM_MSEC. - * doc/Makefile-files: +2007-01-17 09:56 Daniel Hokka Zakrisson - fixed typo + * lib/syscall_setsched-v21.hc: Use VCMD_set_sched_v4 as intended. -2004-09-24 01:13 Enrico Scholz +2007-01-17 09:54 Daniel Hokka Zakrisson - * doc/configuration.xml: + * configure.ac, m4/ensc_dietlibc.m4: Remove the dietlibc sanity + check function, as what it's doing is already done elsewhere. - added some comments for interfaces/../{name,nodev} +2007-01-14 12:30 Benedikt Böhm -2004-09-24 01:12 Enrico Scholz + * scripts/vupdateworld: fix missing world target in vupdateworld - * doc/: configuration-flower.css, configuration-lsd.css, - configuration-lsd1.css, configuration-xhtml.xsl, - configuration.css: +2007-01-10 22:23 Daniel Hokka Zakrisson - made it validate as xhtml + * util-vserver.spec.in: Teach the spec how to build prereleases and + release candidates. -2004-09-24 00:05 Enrico Scholz +2007-01-10 19:27 Daniel Hokka Zakrisson - * build-all: + * src/vserver-stat.c: The new method doesn't need to be a + spectator, and /proc/virtual isn't available there by default. - fixed CLEAN=1 usecase - use gcc4 instead of gcc35 +2007-01-10 18:53 Daniel Hokka Zakrisson -2004-09-24 00:04 Enrico Scholz + * kernel/sched_cmd.h, lib/Makefile-files, lib/issupported.c, + lib/issupportedstring.c, lib/syscall_schedinfo-v21.hc, + lib/syscall_schedinfo.c, lib/vserver.h, src/vserver-stat.c: Add + vc_sched_info API. + Make vserver-stat use the various APIs instead of parsing + per-process /proc entries. + + vc_virt_stat.uptime is a uint64_t. + vc_get_dlimit can handle a NULL limits argument. - * scripts/vserver-build.debootstrap: +2007-01-10 18:49 Daniel Hokka Zakrisson - added better diagnostic for failed debootstrap download + * lib/syscall.c, src/rpm-fake.c, src/vcontext.c: There is no + vc_create_context. Stop referencing it. -2004-09-24 00:03 Enrico Scholz +2007-01-10 11:52 Daniel Hokka Zakrisson - * doc/configuration.css: + * scripts/vserver.stop: Remove persistent on stop. - added *.elements templates +2007-01-09 13:22 Daniel Hokka Zakrisson -2004-09-24 00:02 Enrico Scholz + * lib/syscall-wrap.h, lib/vserver-internal.h, + lib_internal/sys_clone.h, lib_internal/sys_personality.h, + m4/ensc_dietlibc.m4: Check if dietlibc declares syscall + incompatibly, to avoid errors. + Move the syscall declaration to lib/syscall-wrap.h. - * doc/configuration.xml: +2007-01-07 22:27 Daniel Hokka Zakrisson - updated rlimits description (reported by Nikola Donev) - added warning about explicit 'fakeinit' usage + * sysv/util-vserver: Fix output. -2004-09-24 00:02 Enrico Scholz +2007-01-03 11:55 Daniel Hokka Zakrisson - * doc/configuration-xhtml.xsl: + * lib/getvserverbyctx.c: Support legacy guests on 2.6 kernels as + well. - added new stylesheets - implemented ... support +2007-01-02 20:54 Daniel Hokka Zakrisson -2004-09-24 00:01 Enrico Scholz + * scripts/vserver.start: The CHBIND_OPTS need to be cleaned before + handing them to $_CHBIND_COMPAT, let $_CHBIND do that. - * doc/Makefile-files: +2007-01-01 19:37 Daniel Hokka Zakrisson - added new stylesheets and images + * configure.ac: Let glibc use the alternative syscalls as well. -2004-09-24 00:01 Enrico Scholz +2006-12-30 00:52 Daniel Hokka Zakrisson - * doc/: configuration-flower.css, configuration-lsd1.css, - flowers.png, flowers1.png, flowers2.png: + * lib/vserver.h: Organize things. Structures and functions dealing + with similar things are now grouped together. - initial checkin +2006-12-30 00:40 Daniel Hokka Zakrisson -2004-09-24 00:00 Enrico Scholz + * scripts/functions: Use status for the process count instead since + persistent adds a task there. - * distrib/misc/debootstrap.uri: +2006-12-30 00:37 Daniel Hokka Zakrisson - updated + * src: Add vdevmap to ignore. -2004-09-22 22:56 Enrico Scholz +2006-12-29 20:34 Daniel Hokka Zakrisson - * util-vserver.spec.in: + * sysv/util-vserver: Return a sane value from kill_contexts. - s!commented!documented! +2006-12-29 20:33 Daniel Hokka Zakrisson -2004-09-22 22:55 Enrico Scholz + * lib/vserver-internal.h: Use the correct type for the + configuration bitfield. - * util-vserver.spec.in: +2006-12-29 20:32 Daniel Hokka Zakrisson - commented the possible options for 'rpmbuild' + * util-vserver.spec.in: Add util-vserver initscript handling. + Add %changelog comment. -2004-09-22 22:54 Enrico Scholz +2006-12-29 20:30 Daniel Hokka Zakrisson - * src/vsched.c: + * contrib/manifest.dat.pathsubst: Add vdevmap. - use new vc_set_sched structure - generalized CLI options a little bit +2006-12-28 00:07 Daniel Hokka Zakrisson -2004-09-22 22:53 Enrico Scholz + * contrib/manifest.dat.pathsubst, scripts/Makefile-files, + scripts/util-vserver-vars.pathsubst, + scripts/vserver-init.functions, scripts/vserver-wrapper, + sysv/Makefile-files, sysv/util-vserver, sysv/vprocunhide: Move + initscript functions to vserver-init.functions. + Make vprocunhide use said functions. + Add an initscript to set the helper and kill guest processes. - * src/vattribute.c: +2006-12-28 00:05 Daniel Hokka Zakrisson - set the "secure" flags on '--secure' manually. This is a crude hack - and must be solved better. + * util-vserver.spec.in: Add --without doc and --with legacy + options. -2004-09-22 22:51 Enrico Scholz +2006-12-20 13:39 Benedikt Böhm - * lib/vserver.h: + * scripts/vserver-wrapper: cosmetic fixes for vserver-wrapper - struct vc_set_sched: updated + added some flags - vc_get_insecureflags(): removed again; it is now handled by the utilities +2006-12-19 19:18 Daniel Hokka Zakrisson -2004-09-22 22:49 Enrico Scholz + * src/fstool.c, src/fstool.h, src/setattr.c: Add --immutable, + --~immutable and --!immutable. - * lib/vserver-internal.h: +2006-12-18 11:26 Daniel Hokka Zakrisson - ENSC_STRUCT_IDX, ENSC_SAME_STRUCT_IDX: added + * scripts/vserver.functions: Don't check the VLAN stuff if + novlandev was specified. -2004-09-22 22:45 Enrico Scholz +2006-12-12 13:18 Daniel Hokka Zakrisson - * lib/syscall_setsched.c: + * src/vdevmap.c: Error on too many arguments. - added support for the new 'struct vcmd_set_sched_v3' +2006-12-12 13:18 Daniel Hokka Zakrisson -2004-09-22 22:45 Enrico Scholz + * distrib/misc/debootstrap.uri: Update debootstrap URL. - * lib/syscall_setsched-v13.hc: +2006-12-12 01:39 Daniel Hokka Zakrisson - updated to new 'struct vcmd_set_sched_v3' - added some optimizations + * kernel/device_cmd.h, kernel/switch.h, lib/Makefile-files, + lib/syscall_setmapping-v21.hc, lib/syscall_setmapping.c, + lib/virtual.h, lib/vserver.h, src/Makefile-files, src/vdevmap.c: + Add vdevmap and required functionality. -2004-09-22 22:42 Enrico Scholz +2006-12-10 17:45 Daniel Hokka Zakrisson - * kernel/sched.h: + * scripts/functions: Improve the vshelper warning (common sign of + multiple installs). - added 'struct vcmd_set_sched_v3' plus macros +2006-12-10 12:56 Enrico Scholz -2004-09-10 13:23 Enrico Scholz + * contrib/yum-2.6.0-chroot.patch, contrib/yum-2.9.6-chroot.patch: + fixed location of the lockfile; formerly, the chroot path was + prepended + twice - * lib/vserver-internal.h: +2006-12-10 00:57 Daniel Hokka Zakrisson - CALL_VC_V13B(), CALL_VC_V13OBS(): added + * sysv/vservers-legacy: Don't enable the legacy initscript by + default. -2004-09-10 02:01 Enrico Scholz +2006-12-09 16:13 Daniel Hokka Zakrisson - * src/vlimit.c: + * NEWS, THANKS, configure.ac: Version 0.30.212. - fixed missing argument for '--xid' switch +2006-12-09 16:12 Daniel Hokka Zakrisson -2004-09-07 22:37 Enrico Scholz + * lib_internal/sys_clone.h, src/rpm-fake.c, src/vdlimit.c: + vserver.h defines CLONE_NEW*. + Remove unused include of sys_clone.h from vdlimit. - * src/vattribute.c: +2006-12-09 16:02 Daniel Hokka Zakrisson - use vc_get_insecureflags() on '--secure' option + * scripts/functions: Make getFileArray handle multiple files as + well. -2004-09-07 22:37 Enrico Scholz +2006-12-08 15:35 Daniel Hokka Zakrisson - * lib/vserver.h: + * lib/syscall_ctxmigrate-v21.hc: Only enter the namespaces for + static and dynamic xids (i.e. not the spectator). - vc_get_insecureflags(): added (does this really make sense??) +2006-12-08 13:28 Daniel Hokka Zakrisson -2004-09-07 22:36 Enrico Scholz + * scripts/functions, scripts/vserver, scripts/vserver.functions: + Rather than keeping an unnecessary mount around just because it + was the cwd, cd to the root at the beginning while storing the + original cwd (so it can be used later). - * scripts/chcontext: +2006-12-08 13:25 Daniel Hokka Zakrisson - fixed concatenation of flags + caps + * doc/configuration-xhtml.xsl: Change the default stylesheet. -2004-09-07 22:27 Enrico Scholz +2006-12-08 13:25 Daniel Hokka Zakrisson - * configure.ac: + * ensc_wrappers/wrappers-vserver.hc: Add missing hunks from last + commit. - added an explicit requirement for version 1.9 of automake +2006-12-08 13:24 Daniel Hokka Zakrisson -2004-08-27 23:07 Enrico Scholz + * lib/Makefile-files, lib/checkconfig.c, lib/getxidtype.c, + lib/internal.h, lib/isdynamicxid.c, + lib/syscall_ctxmigrate-v21.hc, lib/syscall_ctxmigrate.c, + lib/syscall_enternamespace-v13.hc, + lib/syscall_enternamespace-v21.hc, lib/syscall_enternamespace.c, + lib/syscall_getspacemask-v21.hc, lib/syscall_getspacemask.c, + lib/syscall_getvci-v21.hc, lib/syscall_getvci.c, + lib/syscall_setnamespace-v13.hc, lib/syscall_setnamespace-v21.hc, + lib/syscall_setnamespace.c, lib/virtual.h, + lib/vserver-internal.h, lib/vserver.h, src/vcontext.c, + src/vnamespace.c: Work better on 2.6.19. + This includes adding a new kind of API that depends on the + VCI-bits, to detect the presence of spaces. + vnamespace now only enters the filesystem related namespaces + (CLONE_NEWNS|CLONE_FS). + vc_ctx_migrate_spaces enters the others. + Fix dynamic context detection by using the VCI-bits. - * NEWS, configure.ac: +2006-12-08 13:20 Daniel Hokka Zakrisson - version 0.30.193 + * src/ncontext.c: Remove unused argument. -2004-08-27 23:06 Enrico Scholz +2006-12-08 13:05 Daniel Hokka Zakrisson - * scripts/: vserver.stop, vserver, vserver.start: + * kernel/cacct.h, kernel/cacct_cmd.h, kernel/cacct_def.h, + kernel/cacct_int.h, kernel/context.h, kernel/context_cmd.h, + kernel/cvirt.h, kernel/cvirt_cmd.h, kernel/cvirt_def.h, + kernel/debug.h, kernel/debug_cmd.h, kernel/dlimit.h, + kernel/dlimit_cmd.h, kernel/global.h, kernel/history.h, + kernel/inode.h, kernel/inode_cmd.h, kernel/legacy.h, + kernel/limit.h, kernel/limit_cmd.h, kernel/limit_def.h, + kernel/limit_int.h, kernel/namespace.h, kernel/namespace_cmd.h, + kernel/network.h, kernel/network_cmd.h, kernel/sched.h, + kernel/sched_cmd.h, kernel/sched_def.h, kernel/signal.h, + kernel/signal_cmd.h, kernel/space_cmd.h, kernel/switch.h, + kernel/tag.h: Update kernel headers to 2.6.19-vs2.1.x-t7. + Use the headers from make headers_install to cut down on + unnecessary files/content. - follow LSB behavior when starting/stopping a vserver (no error, when already running/stopped) - adjusted some exit-codes +2006-12-01 21:10 Daniel Hokka Zakrisson -2004-08-27 16:14 Enrico Scholz + * scripts/vserver.functions: Add cwd to the list of paths to + exclude from namespace cleanup. - * src/secure-mount.c: +2006-12-01 18:41 Daniel Hokka Zakrisson - showHelp(): improved message + * m4/ensc_e2fscheck.m4: Correct package and distribution name. -2004-08-27 10:58 Enrico Scholz +2006-11-28 17:42 Daniel Hokka Zakrisson - * distrib/misc/debootstrap.uri: + * scripts/vserver.functions: Make non-sysv initstyles work again. - updated again... +2006-11-27 14:18 Daniel Hokka Zakrisson -2004-08-27 10:58 Enrico Scholz + * lib/vserver.h: Add VLIMIT_MAPPED, for mapped files that are in + RAM. - * src/save_ctxinfo.c: +2006-11-27 14:06 Daniel Hokka Zakrisson - append '\0' to the buffer read by readlink() + * src/vsched.c: Don't process unknown files. -2004-08-27 10:57 Enrico Scholz +2006-11-25 19:18 Daniel Hokka Zakrisson - * src/keep-ctx-alive.c: + * src/chroot-sh.c: Add missing quote. - include +2006-11-25 19:17 Daniel Hokka Zakrisson -2004-08-27 10:57 Enrico Scholz + * distrib/redhat/initpost: Use chroot-sh chmod to remove the + symlink attack vector. - * ensc_wrappers/wrappers-unistd.hc: +2006-11-25 02:04 Daniel Hokka Zakrisson - Ereadlink*(): return the count of written chars + * src/vsched.c: Add missing #include needed for offsetof + when using glibc. -2004-08-25 02:11 Enrico Scholz +2006-11-25 00:38 Daniel Hokka Zakrisson - * scripts/functions, scripts/pkgmgmt, scripts/vserver.functions, - vserver-start/mount.c: + * lib/nflags-net.c, lib/vserver.h: Add NXF_SINGLE_IP. - use the new 'secure-mount' CLI +2006-11-24 23:06 Daniel Hokka Zakrisson -2004-08-25 02:08 Enrico Scholz + * src/capchroot.c, src/chbind.c, src/chcontext.c, src/fstool.c, + src/keep-ctx-alive.c, src/nattribute.c, src/ncontext.c, + src/rpm-fake-resolver.c, src/secure-mount.c, src/secure-umount.c, + src/vattribute.c, src/vcontext.c, src/vcopy.c, src/vhashify.c, + src/vkill.c, src/vlimit.c, src/vnamespace.c, src/vrsetup.c, + src/vserver-info.c, src/vserver-stat.c, src/vuname.c, + src/vunify.c, src/vwait.c: Make quoting consistent. - * src/secure-mount.c: +2006-11-24 22:03 Daniel Hokka Zakrisson - reworked it; '--chroot' does not accept an argument now, and '--secure' - is deprecated. Lots of code was modernized + * scripts/legacy/vserver-copy: Use the same flags for legacy as the + rsync build method's default. -2004-08-19 18:06 Enrico Scholz +2006-11-24 20:34 Daniel Hokka Zakrisson - * vserver-start/: configuration-init.c, configuration.c, - configuration.h, interface-add.c, interface-read.c, interface.c, - interface.h, main.c, scriptlets.c, vshelper.c: + * scripts/vserver.functions, src/nattribute.c: Use --secure by + default. + Add VC_NXF_HIDE_NETIF to the secure default. - added lots of new code +2006-11-24 15:23 Daniel Hokka Zakrisson -2004-08-19 17:02 Enrico Scholz + * scripts/vserver: Add forgotten backslash. - * vserver-start/: interface-print.c, interface-remove.c, mount.c, - mount.h, undo.c, undo.h: +2006-11-24 15:20 Daniel Hokka Zakrisson - initial checkin + * scripts/vserver: Call vserver-build with --debug too, if it was + specified. -2004-08-19 16:31 Enrico Scholz +2006-11-24 15:20 Daniel Hokka Zakrisson - * src/vnamespace.c: + * configure.ac, contrib/manifest.dat.pathsubst, + scripts/Makefile-files, scripts/util-vserver-vars.pathsubst, + scripts/vserver-build, scripts/vserver-build.rsync: Add an rsync + build method. - fixed some #includes for the new position of sys_clone.h +2006-11-24 14:12 Daniel Hokka Zakrisson -2004-08-19 16:30 Enrico Scholz + * doc/configuration.xml: Add since. - * src/vkill.c: +2006-11-23 23:56 Daniel Hokka Zakrisson - define ENSC_WRAPPERS_UNISTD; it is used for some legacy code + * scripts/vserver.functions, src/vps.c, src/vserver-stat.c: Update + URL to the proc security page. -2004-08-19 16:30 Enrico Scholz +2006-11-23 21:30 Daniel Hokka Zakrisson - * src/rpm-fake.c: + * src/vnamespace.c: Use CLONE_NEWUTS|CLONE_NEWIPC so it works with + 2.6.19. - fixed some #includes to reflect changed position of sys_clone.h +2006-11-23 21:12 Daniel Hokka Zakrisson -2004-08-19 16:29 Enrico Scholz + * doc/configuration.xml, scripts/chbind, scripts/vserver.functions: + Add support for the network flags and capabilities in the + configuration. - * src/fstool.h: +2006-11-23 18:30 Daniel Hokka Zakrisson - checkForRace(), resolveCtx(): removed prototypes + * lib/ccaps-v13.c, lib/cflags-v13.c, lib/ncaps-net.c, + lib/nflags-net.c, lib/vserver.h: Support the prefixes for all + types of flags and capabilities. + Add NXF_INFO_PRIVATE. + Add NXF_HIDE_NETIF. + Add aliases for the legacy flags/caps so using the kernel's names + will work. + Add alias for VXC_SET_RLIMIT. -2004-08-19 16:29 Enrico Scholz +2006-11-20 21:12 Daniel Hokka Zakrisson - * src/fstool.c: + * lib/ccaps-v13.c: Recognize set_utsname as a ccap too. - checkForRace(): removed as unused +2006-11-20 15:15 Daniel Hokka Zakrisson -2004-08-19 16:28 Enrico Scholz + * scripts/vserver: Add --rescue-init to the --help message. - * src/chxid.c: +2006-11-20 15:15 Daniel Hokka Zakrisson - use vc_xidopt2xid() instead of resolveCtx() + * distrib/redhat/initpost: Use --rescue-init. -2004-08-19 16:28 Enrico Scholz +2006-11-20 15:10 Daniel Hokka Zakrisson - * src/sys_clone.h[DEAD]: + * scripts/vserver.functions, scripts/vserver.start: Don't set + _IS_FAKEINIT on rescue, let the caller decide with --rescue-init. - moved into lib_internal/ +2006-11-20 15:09 Daniel Hokka Zakrisson -2004-08-19 16:27 Enrico Scholz + * scripts/legacy/vserver, scripts/vserver.start: Use + $_CHBIND_COMPAT directly for legacy. - * src/fstool-resolvectx.c[DEAD]: +2006-11-20 15:01 Daniel Hokka Zakrisson - obsoleted; functionality is already in libvserver + * src/naddress.c: Cosmetic fixes. + Make sure args.do_set is set to false initially. -2004-08-19 16:10 Enrico Scholz +2006-11-20 12:46 Daniel Hokka Zakrisson - * lib_internal/testsuite/command.c: + * scripts/vserver.functions: Make vserver start --rescue + ... work again. - applied API changes +2006-11-20 00:23 Daniel Hokka Zakrisson -2004-08-19 16:09 Enrico Scholz + * src/Makefile-files, src/naddress.c: Make the prefix-to-netmask + conversion work on big-endian too. + Check for invalid prefixes. + Improve help message. + Add --set operation that removes all the old IP addresses first. - * lib_internal/command.h: +2006-11-19 17:25 Daniel Hokka Zakrisson - added support for plain-style char** args + * contrib/manifest.dat.pathsubst, + ensc_wrappers/wrappers-vserver.hc, lib/Makefile-files, + lib/nidopt2nid.c, lib/vserver.h, scripts/Makefile-files, + scripts/chbind, scripts/util-vserver-vars.pathsubst, src, + src/Makefile-files, src/chbind.c, src/naddress.c, + src/nattribute.c, src/ncontext.c: Break up the old chbind into + ncontext, nattribute, and naddress. + This is done mostly to add support for network flags and caps, + but also to get the same level of flexibility that the security + contexts have. + In addition, a vc_nidopt2nid was created to correctly map --nid + self to the current process's nid. -2004-08-19 16:09 Enrico Scholz +2006-11-17 18:48 Daniel Hokka Zakrisson - * lib_internal/: command-appendparameter.c, command-exec.c, - command-free.c, command-init.c: + * scripts/chcontext: Fix chcontext --help and --version. - handle plain-style char** args also +2006-11-17 18:42 Daniel Hokka Zakrisson -2004-08-19 16:08 Enrico Scholz + * doc/configuration.xml: soft-limit and hard-limit. - * lib_internal/: command-setparams.c, sys_clone.h: +2006-11-15 21:38 Daniel Hokka Zakrisson - initial checkin + * distrib/fc5/yum.repos.d/fedora-core.repo, + distrib/fc5/yum.repos.d/fedora-extras-development.repo, + distrib/fc5/yum.repos.d/fedora-extras.repo, + distrib/fc5/yum.repos.d/fedora-legacy.repo, + distrib/fc5/yum.repos.d/fedora-updates-testing.repo, + distrib/fc5/yum.repos.d/fedora-updates.repo, + distrib/fc6/yum.repos.d/fedora-core.repo, + distrib/fc6/yum.repos.d/fedora-extras-development.repo, + distrib/fc6/yum.repos.d/fedora-extras.repo, + distrib/fc6/yum.repos.d/fedora-legacy.repo, + distrib/fc6/yum.repos.d/fedora-updates-testing.repo, + distrib/fc6/yum.repos.d/fedora-updates.repo: Use HTTP URLs for + the keys (insecure, I know), so it'll work on non-Fedora systems + as well. -2004-08-19 16:07 Enrico Scholz +2006-11-15 20:14 Daniel Hokka Zakrisson - * lib_internal/Makefile-files: + * lib/Makefile-files, lib/syscall_ctxstat-v21.hc, + lib/syscall_ctxstat.c, lib/syscall_getvci-v21.hc, + lib/syscall_getvci.c, lib/syscall_resetminmax-v21.hc, + lib/syscall_resetminmax.c, lib/syscall_rlimitstat-v21.hc, + lib/syscall_rlimitstat.c, lib/syscall_virtstat-v21.hc, + lib/syscall_virtstat.c, lib/vserver.h: Add the new syscalls from + 2.1. - added command-setparams.c and sys_clone.h +2006-11-14 23:06 Daniel Hokka Zakrisson -2004-08-19 16:07 Enrico Scholz + * doc/configuration.xml, scripts/functions: Enable namespace + cleanup by default. + Various cleanups in the documentation, make sure references work. - * contrib/manifest.dat.pathsubst: +2006-11-14 22:09 Daniel Hokka Zakrisson - marked vserver.start.bin as C99-only + * src/vlimit.c: strcpy copies \0, use memcpy instead. -2004-08-19 16:06 Enrico Scholz +2006-11-13 21:53 Daniel Hokka Zakrisson - * pathconfig.h.pathsubst: + * doc/configuration.xml, lib/vserver.h, src/vlimit.c: Add the + VLIMITs. + Add RLIMIT_MSGQUEUE, define it ourselves if not present (like on + 2.4). - added some new paths +2006-11-13 18:35 Daniel Hokka Zakrisson -2004-08-19 16:06 Enrico Scholz + * doc/configuration.xml, src/vsched.c: Cosmetic fixes for vsched. + Document the configuration format. - * Makefile.am: +2006-11-11 02:05 Daniel Hokka Zakrisson - automake-1.9 fixes: s!VSERVER_LDFLAGS!VSERVER_LDFLGS! - removed some libtool-hacks which are not needed with automake-1.9 anymore + * scripts/vserver.start: Force update when starting the guest. -2004-08-19 16:04 Enrico Scholz +2006-11-11 00:53 Daniel Hokka Zakrisson - * vserver-start/Makefile-files: + * src/vsched.c: Only bother with the first line of the files. + Add required cast. - automake-1.9 fixes: s!VSERVER_LDFLAGS!VSERVER_LDFLGS! - added lots of new files +2006-11-11 00:29 Daniel Hokka Zakrisson -2004-08-19 16:03 Enrico Scholz + * scripts/vserver.functions, src/Makefile-files, src/vsched.c: Make + vsched capable of configuring the new scheduler using a new + configuration format (one value per file). - * src/Makefile-files: +2006-11-05 17:48 Daniel Hokka Zakrisson - automake-1.9 fixes: s!VSERVER_LDFLAGS!VSERVER_LDFLGS! - removed src/sys_clone.h (now in lib_internal/) - removed src/fstool-resolvectx.c + * lib/syscall_setccaps-v21.hc, lib/syscall_setsched-v21.hc, + lib/vserver.h: Set svn:keywords. + Fix the vc_set_sched API to make more sense, and handle the logic + in the wrapper. -2004-08-19 15:59 Enrico Scholz +2006-11-05 17:46 Daniel Hokka Zakrisson - * lib/testsuite/Makefile-files, tests/Makefile-files: + * src/exec-ulimit.c: Reset the limits unconditionally. + Treat RLIMIT_NOFILE specially, since the kernel does. + Fix dietlibc'isms, and handle sys_old_getrlimit's values. - automake-1.9 fixes: s!VSERVER_LDFLAGS!VSERVER_LDFLGS! +2006-11-04 19:36 Daniel Hokka Zakrisson -2004-08-19 15:58 Enrico Scholz + * src/exec-ulimit.c: Reset all limits that aren't configured. - * lib/xidopt2xid.c: +2006-11-04 13:59 Daniel Hokka Zakrisson - removed code without an effect + * lib/syscall_setsched-v21.hc, lib/vserver.h: Fix typos from last + commit. -2004-08-19 15:57 Enrico Scholz +2006-11-03 22:37 Daniel Hokka Zakrisson - * lib/syscall-syscall.c: + * doc/configuration.xml, scripts/functions, scripts/vserver: Make + vlogin optional. - gcc35 fixes: do not make vc_syscall() an alias for vserver() but execute it. +2006-11-03 19:59 Daniel Hokka Zakrisson -2004-08-19 15:56 Enrico Scholz + * Makefile.am, configure.ac, kernel/cacct.h, kernel/cacct_cmd.h, + kernel/cacct_def.h, kernel/cacct_int.h, kernel/context.h, + kernel/context_cmd.h, kernel/cvirt.h, kernel/cvirt_cmd.h, + kernel/cvirt_def.h, kernel/debug.h, kernel/debug_cmd.h, + kernel/dlimit.h, kernel/dlimit_cmd.h, kernel/global.h, + kernel/history.h, kernel/inode.h, kernel/inode_cmd.h, + kernel/limit.h, kernel/limit_cmd.h, kernel/limit_def.h, + kernel/limit_int.h, kernel/monitor.h, kernel/namespace_cmd.h, + kernel/network.h, kernel/network_cmd.h, kernel/sched.h, + kernel/sched_cmd.h, kernel/sched_def.h, kernel/signal_cmd.h, + kernel/switch.h, kernel/tag.h, kernel/xid.h, lib/Makefile-files, + lib/ccaps-v13.c, lib/cflags-v13.c, lib/nflags-net.c, + lib/syscall_setccaps-v13.hc, lib/syscall_setccaps-v21.hc, + lib/syscall_setccaps.c, lib/syscall_setsched-v13.hc, + lib/syscall_setsched-v21.hc, lib/syscall_setsched.c, + lib/vserver-internal.h, lib/vserver.h: This commit adds support + for the 2.1 vserver API. + Update the kernel headers to 2.1.1-rc47. + Add the new ccapabilities, context flags, and network flags. + Use the correct VCMDs for the older calls. + Add vc_set_sched_v21, to configure the new scheduler. + Add vc_set_ccaps_v21, which sets the ccaps and bcaps using the + new interfaces for that. - * lib/isfile.c: +2006-11-03 16:20 Benedikt Böhm - initial checkin + * distrib/gentoo/initpost: init style gentoo will also work with + older baselayout-vserver -2004-08-19 15:56 Enrico Scholz +2006-11-03 15:02 Daniel Hokka Zakrisson - * lib/internal.h: + * contrib/manifest.dat.pathsubst: Add vemerge, vesync, vupdateworld + and vdispatch-conf. + Fix the sort order a bit. - utilvserver_isFile(): added prototype +2006-11-03 14:56 Daniel Hokka Zakrisson -2004-08-19 15:56 Enrico Scholz + * doc/configuration.xml: bcapabilities and ccapabilities won't be + changing names any time soon, remove experimental marker. + ulimits are honored for 2.6 kernels as well. + Whitespace cleanup. - * lib/getvservercfgstyle.c: +2006-11-03 14:36 Benedikt Böhm - fixed detection of legacy-style (check for file but not directory) + * distrib/gentoo/init-vserver.sh, scripts/Makefile-files, + scripts/vdispatch-conf, scripts/vemerge, scripts/vesync, + scripts/vserver.functions, scripts/vupdateworld: add gentoo + specific wrappers: vemerge, vesync, vupdateworld and + vdispatch-conf; add RUNLEVEL_START to gentoo init style -2004-08-19 15:55 Enrico Scholz +2006-11-02 19:32 Benedikt Böhm - * lib/Makefile-files: + * distrib/gentoo/initpost: fix fstab fixing for gentoo/initpost - addded 'isfile.c' +2006-11-01 19:46 Daniel Hokka Zakrisson -2004-08-19 15:54 Enrico Scholz + * scripts/vyum-worker: Add missing space. - * ensc_wrappers/wrappers-stdlib.hc: +2006-11-01 19:23 Benedikt Böhm - Esetenv(): added + * distrib/Makefile.am, distrib/gentoo/init-vserver.sh, + distrib/gentoo/initpost, distrib/gentoo/initpre, + scripts/vserver.functions: reimplement gentoo init style + + prepare distrib/gentoo for baselayout-1.13 -2004-08-19 15:54 Enrico Scholz +2006-11-01 15:34 Benedikt Böhm - * ensc_wrappers/wrappers-socket.hc: + * src/Makefile-files, src/chroot-sh.c: add mkdir and chmod + functions to chroot-sh - Esend(), Esocketpair(): added +2006-10-31 14:33 Benedikt Böhm -2004-08-19 15:53 Enrico Scholz + * scripts/vserver-build.template: fix no_dev_sanity logic - * ensc_fmt/fmt-internal.h: +2006-10-19 15:09 Daniel Hokka Zakrisson - minor optimizations + * doc/configuration.xml, scripts/vserver.functions: Improve + namespace cleanup to make sure some required directories stick + around, and add some configuration options to exclude further + paths. -2004-08-19 15:53 Enrico Scholz +2006-10-12 14:39 Daniel Hokka Zakrisson - * doc/configuration-xhtml.xsl: + * scripts/vyum-worker: Handle version 3.0 as well. - add '' tag +2006-10-07 18:03 Daniel Hokka Zakrisson -2004-07-08 13:44 Enrico Scholz + * NEWS, configure.ac, mkrelease: Version 0.30.211. - * doc/configuration.xml: +2006-10-07 12:14 Daniel Hokka Zakrisson - documented vdir, run, run.rev (provided by Olivier Poitrey) - added some links about [bc]capabilities and flags - added more scheduler doc (provided by Olivier Poitrey) - added some comments about 2.4 vs. 2.6 at rlimits/ulimits - added doc about rlimit's 'min' setting + * doc/configuration.xml: Fix typoed URL. -2004-07-03 04:06 Enrico Scholz +2006-10-07 12:13 Daniel Hokka Zakrisson - * NEWS, configure.ac: + * scripts/vserver-build.fai: Point to the FAI wiki for information + about how to use it. + Make AUTO the default. + Move the prompt to after the trap has been setup. + Run base.__cleanup as the last step of killprocs, so the files + needed are still around for the rest of the cleanup. + Use isVserverRunning so the runfile is cleaned up too. + Mount the NFS-root and the target with -o dev, to allow the + device nodes. - version 0.30.190 +2006-10-04 16:35 Daniel Hokka Zakrisson -2004-07-03 03:57 Enrico Scholz + * contrib/manifest.dat.pathsubst: Add vserver-build.fai. - * doc/configuration.xml: +2006-10-04 16:35 Daniel Hokka Zakrisson - fixed path of the xsd file + * scripts/vserver-build.template: We can't remove dev/* if we're + not in the guest's root. -2004-07-03 03:54 Enrico Scholz +2006-10-04 13:22 Daniel Hokka Zakrisson - * build-all: + * scripts/vserver-build.fai: Have vuname set the context as well, + so we can find it with vserver-info CONTEXT. - added fc-2 +2006-10-04 13:20 Daniel Hokka Zakrisson -2004-07-03 03:38 Enrico Scholz + * src/secure-mount.c: Remove options that we parse ourselves, so + the kernel doesn't see them (and fail). + Reenable MS_NODEV default. - * scripts/vserver.functions: +2006-10-04 12:33 Daniel Hokka Zakrisson - prepareInit(): fixed case when .autofsck does not exist + * scripts/vserver.functions: If creation is failing, we want to see + the errors so it's debuggable. -2004-07-03 03:35 Enrico Scholz +2006-10-03 18:37 Daniel Hokka Zakrisson - * scripts/chcontext: + * scripts/vserver-build.fai: Make sure we're running on a + sufficiently capable kernel. + Indent killprocs correctly. + Don't require a static xid by using save_ctxinfo. + Use secure-mount instead of mount. + Set a default hostname if none was specified. - accept --xid and prefer it against --ctx in the doc - added --silentexist option at --create +2006-10-03 15:48 Daniel Hokka Zakrisson -2004-07-03 03:34 Enrico Scholz + * src/secure-mount.c: Revert NODEV default, as it makes it + impossible to mount (e.g.) a tmpfs that allows devices. - * distrib/suse91/apt/rpmpriorities: +2006-10-03 13:14 Daniel Hokka Zakrisson - initial checkin + * doc/configuration.xml: Add since=... where appropriate. -2004-07-03 03:34 Enrico Scholz +2006-10-03 12:47 Daniel Hokka Zakrisson - * distrib/redhat/rc.sysinit: + * distrib/Makefile.am, distrib/fc6, + distrib/fc6/yum.repos.d/fedora-core.repo, + distrib/fc6/yum.repos.d/fedora-development.repo, + distrib/fc6/yum.repos.d/fedora-extras-development.repo, + distrib/fc6/yum.repos.d/fedora-extras.repo, + distrib/fc6/yum.repos.d/fedora-legacy.repo, + distrib/fc6/yum.repos.d/fedora-updates-testing.repo, + distrib/fc6/yum.repos.d/fedora-updates.repo: Add FC6 distribution + (doesn't work yet, but should once it's released). - call 'true' finally +2006-10-03 11:15 Daniel Hokka Zakrisson -2004-07-03 03:34 Enrico Scholz + * doc/configuration-wiki.xsl: Move auto-generated notice to the + top. - * distrib/redhat/initpost: +2006-10-01 17:27 Daniel Hokka Zakrisson - added comment about possible races - fixed /etc/inittab substitution + * scripts/Makefile-files, scripts/vserver-build, + scripts/vserver-build.fai: Add the fai build method based on Sam + Vilain's patch. + (https://savannah.nongnu.org/patch/?5058) -2004-07-03 03:34 Enrico Scholz +2006-10-01 15:55 Daniel Hokka Zakrisson - * distrib/Makefile.am: + * doc/configuration.xml: Fix some spelling errors and update the + parameter lists to be correct. - added redhat/rc.sysinit - added suse/apt/rpmpriorities - moved suse/apt/sources.list into the cfgdir +2006-09-29 22:15 Daniel Hokka Zakrisson -2004-07-03 03:33 Enrico Scholz + * lib/syscall_ctxmigrate-v13.hc, lib/syscall_setnamespace-v13.hc: + Use the older versions of these syscalls, so the utils will work + on older kernels. - * contrib/manifest.dat.pathsubst: +2006-09-28 22:39 Daniel Hokka Zakrisson - added vserver.start.bin + * doc/Makefile-files, doc/configuration-wiki.xsl: Add Tim Mecking's + XSL stylesheet for wiki exports. -2004-07-03 03:31 Enrico Scholz +2006-09-28 15:15 Daniel Hokka Zakrisson - * vserver-start/Makefile-files: + * scripts/vserver-build: Cosmetic fixes to the help message. - use AM_INSTALLCHECK_STD_OPTIONS_EXEMPT for now +2006-09-28 15:13 Daniel Hokka Zakrisson -2004-07-03 02:28 Enrico Scholz + * scripts/vserver: Use a new namespace for the build process, so + any mounts performed during the build will vanish when it's done. - * distrib/Makefile.am: +2006-09-28 15:10 Daniel Hokka Zakrisson - added suse91 files + * scripts/vapt-get, scripts/vserver: Make vserver ... + rpm/apt-get/apt-cache/apt-config work again. -2004-07-03 02:24 Enrico Scholz +2006-09-28 15:08 Daniel Hokka Zakrisson - * distrib/: redhat/rc.sysinit, suse91/apt/sources.list, - suse91/initpost, suse91/pkgs/01, suse91/pkgs/02, - suse91/rpm/macros: + * Makefile.am, contrib/Makefile-files: Add more forgotten files. - initial checkin +2006-09-28 15:06 Daniel Hokka Zakrisson -2004-07-03 02:24 Enrico Scholz + * Makefile.am, m4/changelog.am: Move flags to the same place they + were when cvs2cl was used. - * distrib/redhat/initpost: +2006-09-28 15:05 Daniel Hokka Zakrisson - some enhancements for 'plain' initstyle + * doc/configuration.xml: Fix URLs pointing to the source code. -2004-07-03 02:22 Enrico Scholz +2006-09-26 17:15 Daniel Hokka Zakrisson - * lib_internal/testsuite/.cvsignore: + * contrib/yum-2.9.6-chroot.patch, scripts/vyum-worker: Add a patch + for yum 2.9.6 (for FC6). + Make vyum-worker use the hack configuration if the yum version is + unknown (-> unsupported), rather than silently creating really + strange directories. - added some files +2006-09-26 17:12 Daniel Hokka Zakrisson -2004-07-03 02:21 Enrico Scholz + * scripts/vserver-build: Fix help message to correspond with + reality. - * vserver-start/.cvsignore: +2006-09-24 17:44 Daniel Hokka Zakrisson - initial checkin + * scripts/vserver: This check was correct the first time, + (cond)restart just calls stop and start, so we need not handle + them specifically. -2004-07-03 02:07 Enrico Scholz +2006-09-24 00:48 Daniel Hokka Zakrisson - * vserver-start/: configuration-init.c, configuration.c, - configuration.h, interface-add.c, interface-free.hc, - interface-init.hc, interface-read.c, interface.c, interface.h, - main.c, scriptlets.c, vserver-start.h, vshelper.c, vshelper.h: + * src/chroot-sh.c: Fix wrapper prefix so error messages say + chroot-sh: x. - initial checkin +2006-09-21 19:44 Daniel Hokka Zakrisson -2004-07-03 02:07 Enrico Scholz + * m4/changelog.am, svnusers.map: Make ChangeLog prettier. - * vserver-start/Makefile-files: +2006-09-21 19:43 Daniel Hokka Zakrisson - added lots of files + * src/secure-mount.c: Make nodev the default, but don't enforce it + for all mounts. -2004-07-03 02:05 Enrico Scholz +2006-09-21 19:42 Daniel Hokka Zakrisson - * src/vserver-info.c: + * src/vlogin.c: Add the reset atexit handler right after setting + the terminal to raw mode, so we don't end up with a raw terminal + if (e.g.) openpty fails. - added CANONIFY tag +2006-09-19 17:29 Daniel Hokka Zakrisson -2004-07-03 02:05 Enrico Scholz + * m4/ensc_pathprog.m4: Put /bin first in the searchpath when + looking for env, so we work around the /usr/bin/env-is-a-symlink + issue. - * src/secure-mount.c: +2006-09-19 15:20 Daniel Hokka Zakrisson - rewrite 'ext*' to 'ufs' + * contrib/manifest.dat.pathsubst, distrib/Makefile.am, + ensc_wrappers/Makefile-files: Fix Makefiles and the manifest to + include all the files needed. -2004-07-03 01:54 Enrico Scholz +2006-09-18 15:20 Daniel Hokka Zakrisson - * scripts/: vserver.start, vserver.stop: + * distrib/centos4, distrib/centos4/yum.repos.d/CentOS-Base.repo, + distrib/centos4/yum/yum.conf, distrib/centos42: Rename centos42 + to the more generic centos4, and change the URLs appropriately. - use a canonified lockfile-name +2006-09-18 14:57 Daniel Hokka Zakrisson -2004-07-03 01:54 Enrico Scholz + * scripts/vserver: Enter the namespace earlier so testing for files + (like /bin/bash, /etc/init.d/rc) works when the guest's root + filesystem is mounted from its fstab. - * scripts/vserver.functions: +2006-09-16 17:26 Daniel Hokka Zakrisson - function prepareInit(): do some cleanups in the plain-mode + * src/secure-mount.c: Fix logic errors in secure-mount. -2004-07-03 01:54 Enrico Scholz +2006-09-16 14:21 Daniel Hokka Zakrisson - * scripts/functions: + * doc/configuration.xml, scripts/vserver.functions: Make novlandev + the default, but easily overridable for all guests. - vshelper.initSync(): use $1 instead of $VSERVER_DIR +2006-09-16 12:28 Daniel Hokka Zakrisson -2004-07-03 01:49 Enrico Scholz + * kernel/limit_int.h, kernel/signal.h: Add forgotten kernel headers + (not important, but makes it easier to keep track). - * lib_internal/util.h: +2006-09-15 21:18 Daniel Hokka Zakrisson - include util-lockfile.h - canonifyVserverName(): added prototype + * kernel/context.h, kernel/context_cmd.h, kernel/cvirt.h, + kernel/cvirt_cmd.h, kernel/debug.h, kernel/dlimit_cmd.h, + kernel/inode.h, kernel/inode_cmd.h, kernel/legacy.h, + kernel/limit.h, kernel/limit_cmd.h, kernel/limit_def.h, + kernel/namespace.h, kernel/namespace_cmd.h, kernel/network.h, + kernel/sched.h, kernel/sched_cmd.h, kernel/signal_cmd.h, + kernel/switch.h, kernel/xid.h, lib/cflags-v13.c, + lib/syscall_ctxmigrate-v13.hc, lib/syscall_setnamespace-v13.hc, + lib/syscall_waitexit-v13.hc, lib/vserver.h: - Update the kernel + headers to 2.0.2.1. + - Add missing flags. + - Fix the calls that got updated so they work as expected. -2004-07-03 01:45 Enrico Scholz +2006-09-15 20:15 Benedikt Böhm - * lib_internal/util-mem.h: + * scripts/vserver-wrapper: make vserver-wrapper gentoo compliant - optimized it a little bit +2006-09-15 19:16 Benedikt Böhm -2004-07-03 01:44 Enrico Scholz + * distrib/Makefile.am, distrib/gentoo, distrib/gentoo/initpost, + scripts/vserver-build.functions, scripts/vserver-build.template: + add gentoo distribution target; force sane /dev by default for + template build method - * lib_internal/pathinfo.h: +2006-09-15 15:41 Daniel Hokka Zakrisson - ENSC_PI_DECLARE(): added + * scripts/vserver.start: env doesn't grok --. -2004-07-03 01:44 Enrico Scholz +2006-09-15 08:31 Benedikt Böhm - * lib_internal/command-wait.c: + * ., ChangeLog.sed, Makefile.svn, configure.ac, contrib/.cvsignore, + cvsusers.map, distrib/.cvsignore, doc/.cvsignore, + ensc_fmt/.cvsignore, ensc_vector/.cvsignore, + ensc_vector/testsuite/.cvsignore, lib/.cvsignore, + lib/apidoc/.cvsignore, lib/testsuite/.cvsignore, + lib_internal/.cvsignore, lib_internal/testsuite/.cvsignore, + m4/changelog.am, m4/ensc_changelog.m4, mkrelease, + scripts/.cvsignore, scripts/legacy/.cvsignore, src/.cvsignore, + src/testsuite/.cvsignore, sysv/.cvsignore, tests/.cvsignore, + vserver-start/.cvsignore: cleanup old cvs cruft; add mkrelease + script; use svn2cl instead of cvs2cl - fixed stupid typo +2006-09-15 04:32 Daniel Hokka Zakrisson -2004-07-03 01:35 Enrico Scholz + * scripts/functions, scripts/vserver.stop, scripts/vshelper: Make + vshelper reboot/halt work correctly when CONFIG_VSERVER_LEGACY is + disabled and the helper is run synchronously. - * lib_internal/Makefile-files: +2006-09-13 22:18 Daniel Hokka Zakrisson - added lots of new files + * scripts/vserver-build.functions.rpm: Fix RPM-based builds on + RHEL/CentOS 4.4. -2004-07-03 01:34 Enrico Scholz +2006-09-12 18:35 Daniel Hokka Zakrisson - * lib_internal/: errinfo-writeerrno.c, errinfo.h, - filecfg-readentryflag.c, filecfg-readentrystr.c, filecfg.h, - util-canonify.c, util-lockfile.c, util-lockfile.h: + * contrib/manifest.dat.pathsubst, distrib/Makefile.am, + distrib/misc/environment, doc/configuration.xml, + scripts/vserver.functions, scripts/vserver.start: Add initial + environment support. Lets users work around their broken + initscripts inside guests when using the sysv initstyle. - initial checkin +2006-09-12 17:19 Daniel Hokka Zakrisson -2004-07-03 01:31 Enrico Scholz + * configure.ac: Add ugly hack to workaround yum's problems with + file:////. + (https://savannah.nongnu.org/bugs/?15517) - * lib/vserver.h: +2006-09-12 17:17 Daniel Hokka Zakrisson - small cosmetical cleanups + * doc/configuration.xml, scripts/vserver.start: Add Herbert Pötzl's + patch to support initialization scriptlets. -2004-07-03 01:27 Enrico Scholz +2006-09-12 17:09 Daniel Hokka Zakrisson - * distrib/misc/mtab: + * ensc_wrappers/wrappers-unistd.hc, scripts/vserver, + src/capchroot.c, src/vcontext.c: - Teach vcontext about usernames + (if dietlibc is used). + - Teach capchroot about uid 0. + - Add Einitgroups. + - Specify uid 0 by default, so username lookups are avoided. - s!ext2!ufs! +2006-09-12 16:55 Daniel Hokka Zakrisson -2004-07-03 01:27 Enrico Scholz + * configure.ac, ensc_wrappers/wrappers-termios.hc, + ensc_wrappers/wrappers.h, scripts/vserver, src/Makefile-files, + src/vcontext.c, src/vlogin.c: Add vlogin, a terminal proxy for + vserver ... enter. + (https://savannah.nongnu.org/patch/?4969) - * pathconfig.h.pathsubst: +2006-09-12 16:54 Daniel Hokka Zakrisson - added lots of PATH_* and PROG_* macros needed for vserver-start.bin + * scripts/vserver-build.template, scripts/vserver.delete: Add + forgotten svn:keywords. -2004-07-03 01:26 Enrico Scholz +2006-09-12 16:33 Daniel Hokka Zakrisson - * build-all: + * configure.ac, contrib/manifest.dat.pathsubst, + scripts/Makefile-files, scripts/magic.mime, + scripts/util-vserver-vars.pathsubst, scripts/vserver-build, + scripts/vserver-build.template: Add support for vserver-build -m + template, which extracts tarballs. - removed gcc34 target (now default) - added gcc35 target (not working currently) +2006-09-12 12:39 Daniel Hokka Zakrisson -2004-07-01 13:00 Enrico Scholz + * scripts/functions, scripts/vapt-get, scripts/vrpm, + scripts/vsomething: Make vrpm and vapt-get use vsomething. + Fix external package management so that the process is executed + in + the guest's network context, in case scriptlets restart daemons. - * scripts/vserver.start: +2006-09-12 12:29 Daniel Hokka Zakrisson - (re)enabled nice-support for 2.6 vservers which was omitted inadvertently + * contrib/manifest.dat.pathsubst, scripts/Makefile-files, + scripts/vserver, scripts/vserver.delete: Add a delete method to + remove guests, based on Thomas Champagne's + patch. + (https://savannah.nongnu.org/patch/?4899) -2004-07-01 12:33 Enrico Scholz +2006-09-12 12:21 Daniel Hokka Zakrisson - * src/vlimit.c: + * doc/configuration.xml, scripts/functions, + scripts/vserver.functions: Apply Bastian Blank's userspace + namespace cleanup patch. - fixed misinterpretation of '--xid' introduced by rev 1.17 +2006-09-12 12:16 Daniel Hokka Zakrisson -2004-06-29 18:22 Enrico Scholz + * doc/configuration.xml, scripts/vserver-setup.functions, + scripts/vserver.functions, scripts/vserver.start, + scripts/vserver.stop, scripts/vserver.suexec: Apply Jan + Rekorajski's CPUSET patch. + (http://www.paul.sladen.org/vserver/archives/200511/0245.html) - * scripts/vserver-build.apt-rpm: +2006-09-12 11:29 Daniel Hokka Zakrisson - fixed installation at non-standard places + * distrib/Makefile.am, distrib/fc5, distrib/fc5/apt, + distrib/fc5/apt/rpmpriorities, distrib/fc5/apt/sources.list, + distrib/fc5/pkgs, distrib/fc5/pkgs/01, distrib/fc5/pkgs/02, + distrib/fc5/pkgs/03, distrib/fc5/rpmlist.d, + distrib/fc5/rpmlist.d/00.lst, distrib/fc5/yum, + distrib/fc5/yum.repos.d, + distrib/fc5/yum.repos.d/fedora-core.repo, + distrib/fc5/yum.repos.d/fedora-development.repo, + distrib/fc5/yum.repos.d/fedora-extras-development.repo, + distrib/fc5/yum.repos.d/fedora-extras.repo, + distrib/fc5/yum.repos.d/fedora-legacy.repo, + distrib/fc5/yum.repos.d/fedora-updates-testing.repo, + distrib/fc5/yum.repos.d/fedora-updates.repo, + distrib/fc5/yum/yum.conf, distrib/redhat/initpost, + scripts/vyum-worker: Add support for Fedora Core 5 and yum 2.6. -2004-06-29 18:22 Enrico Scholz +2006-09-12 11:21 Daniel Hokka Zakrisson - * scripts/vserver-build: + * scripts/vserver-build, scripts/vserver-build.debootstrap: Add + support for specifying a debootstrap script. - fixed doc ('pkgcfgbase' vs. 'pkgbase') +2006-09-12 11:14 Daniel Hokka Zakrisson -2004-06-27 16:38 Enrico Scholz + * lib/syscall-alternative.h: Update to the latest version of + Herbert's alternative syscall + implementation. - * lib_internal/Makefile-files: +2006-09-12 11:11 Daniel Hokka Zakrisson - added command* files and testsuite/ + * lib_internal/sys_clone.h: Fix sys_clone usage on sparc and s390, + sparc returns parent pid in + the child and s390 has the arguments reversed. -2004-06-27 16:38 Enrico Scholz +2006-09-12 11:09 Daniel Hokka Zakrisson - * lib_internal/command-appendparameter.c, - lib_internal/command-exec.c, lib_internal/command-free.c, - lib_internal/command-init.c, lib_internal/command-reset.c, - lib_internal/command-wait.c, lib_internal/command.h, - lib_internal/testsuite/.cvsignore, - lib_internal/testsuite/Makefile-files, - lib_internal/testsuite/command.c, build-all: + * scripts/legacy/vserver, scripts/vserver.functions: - Fix obsolete + nice usage. + - Make sure the correct nice value is used, even if the parent + process has a different one. - initial checkin +2006-09-12 11:04 Daniel Hokka Zakrisson -2004-06-27 15:57 Enrico Scholz + * configure.ac: Fix API option parsing so oldproc and olduts are + valid options + (allowing for cut'n'paste from vserver-info to ./configure) - * src/vserver-stat.c: +2006-09-12 10:54 Daniel Hokka Zakrisson - enhanced output for old-style vservers + * scripts/start-vservers: Fixes start-vservers to work on _all_ + guests when --all is specified, + as well as fixing the cleanup. + (https://savannah.nongnu.org/bugs/index.php?14525) + (https://savannah.nongnu.org/bugs/index.php?15632) -2004-06-27 15:13 Enrico Scholz +2006-09-12 10:50 Daniel Hokka Zakrisson - * distrib/misc/debootstrap.uri: + * scripts/vserver.functions: Apply Christian Heim's patch to + deprecate the Gentoo initstyle - updated... +2006-09-12 10:47 Daniel Hokka Zakrisson -2004-06-27 15:08 Enrico Scholz + * scripts/pkgmgmt, scripts/vserver.functions: Make fstab usage + consistent, fstab gets mounted first, then + fstab.local and then fstab.remote, unmounting in the reverse + order. - * src/vserver-info.c: +2006-09-12 10:39 Daniel Hokka Zakrisson - assume '- SYSINFO' when no other options are given + * scripts/vserver: Fix condrestart to actually do a conditional + restart + (https://savannah.nongnu.org/bugs/index.php?15678) -2004-06-27 15:06 Enrico Scholz +2006-09-12 10:34 Daniel Hokka Zakrisson - * src/vcopy.c: + * scripts/vserver: Fix Usage: message for the main script. + (https://savannah.nongnu.org/bugs/index.php?15551) - made it work... +2006-09-12 10:32 Daniel Hokka Zakrisson -2004-06-27 15:06 Enrico Scholz + * scripts/vserver-build.functions: Use $_SETATTR instead of chattr + to remove the barrier. - * scripts/vserver-build.skeleton: +2006-09-12 10:30 Daniel Hokka Zakrisson - do not fail when '-d' is not specified and distribution can not be detected + * scripts/chcontext: Fix chcontext so it passes --secure as the + first argument to + vattribute so it doesn't override the passed caps. + (https://savannah.nongnu.org/patch/?4993) -2004-06-27 15:05 Enrico Scholz +2006-09-12 10:26 Daniel Hokka Zakrisson - * scripts/vserver-build.functions: + * lib/syscall_setccaps-v13.hc: Fix vc_set_ccaps to work the way the + kernel expects it to + (https://savannah.nongnu.org/patch/?4968) - getDistribution(): added detection for slackware and gentoo +2006-09-12 10:22 Daniel Hokka Zakrisson -2004-06-27 15:04 Enrico Scholz + * man/chcontext.8: Apply Micah Anderson's patch fixing chcontext's + man page section + (https://savannah.nongnu.org/bugs/index.php?16083) - * scripts/vprocunhide: +2006-09-10 17:26 Benedikt Böhm - fixed typos + * util-vserver: remove util-vserver dir -2004-06-27 15:04 Enrico Scholz +2006-09-10 17:07 Benedikt Böhm - * lib_internal/unify-unify.c: + * AUTHORS, ChangeLog.sed, Makefile.am, NEWS, README, REQUIREMENTS, + THANKS, build-all, compat-c99.h, compat.h, configure.ac, contrib, + cvsusers.map, distrib, doc, ensc_fmt, ensc_vector, ensc_wrappers, + kernel, lib, lib_internal, m4, man, pathconfig.h.pathsubst, + scripts, src, sysv, tests, update-doc, util-vserver.spec.in, + util-vserver/AUTHORS, util-vserver/ChangeLog.sed, + util-vserver/Makefile.am, util-vserver/NEWS, util-vserver/README, + util-vserver/REQUIREMENTS, util-vserver/THANKS, + util-vserver/build-all, util-vserver/compat-c99.h, + util-vserver/compat.h, util-vserver/configure.ac, + util-vserver/contrib, util-vserver/cvsusers.map, + util-vserver/distrib, util-vserver/doc, util-vserver/ensc_fmt, + util-vserver/ensc_vector, util-vserver/ensc_wrappers, + util-vserver/kernel, util-vserver/lib, util-vserver/lib_internal, + util-vserver/m4, util-vserver/man, + util-vserver/pathconfig.h.pathsubst, util-vserver/scripts, + util-vserver/src, util-vserver/sysv, util-vserver/tests, + util-vserver/update-doc, util-vserver/util-vserver.spec.in, + util-vserver/vserver-start, vserver-start: skip duplicate + util-vserver dir - Unify_unify(): made it work also when destination file does not exist (needed for vcopy) +2006-03-26 11:27 Enrico Scholz -2004-06-27 15:03 Enrico Scholz + * util-vserver/contrib/Makefile-files, + util-vserver/contrib/yum-2.6.0-chroot.patch: added + yum-2.6.0-chroot.patch - * lib_internal/unify-settime.c: +2006-01-22 19:32 Enrico Scholz - Unify_setTime(): skip operation on symlinks + * util-vserver/NEWS, util-vserver/configure.ac, + util-vserver/util-vserver.spec.in: version 0.30.210 -2004-06-27 15:03 Enrico Scholz +2006-01-22 19:31 Enrico Scholz - * lib/vserver.h: + * util-vserver/src/capchroot.c, util-vserver/src/chcontext.c, + util-vserver/src/reducecap.c: use stdout instead of stderr for + the no-compat API warnings on '--help'; + else, 'make distcheck' will fail - vc_syscall(): added prototype - added/updated some doc +2006-01-22 19:20 Enrico Scholz -2004-06-27 15:02 Enrico Scholz + * util-vserver/lib_internal/testsuite, + util-vserver/lib_internal/testsuite/.cvsignore: updated - * lib/syscall-syscall.c: +2006-01-22 18:24 Enrico Scholz - initial checkin + * util-vserver/build-all: added testcases for the + '--enable-apis=NOLEGACY' configure switch -2004-06-27 15:01 Enrico Scholz +2006-01-22 18:24 Enrico Scholz - * lib/: getvserverbyctx-compat.hc, getvserverctx.c: + * util-vserver/lib_internal/testsuite/Makefile-files: added + dietlibc + glibc versions of the isnumber and sigbus tests - added legacy support +2006-01-22 18:22 Enrico Scholz -2004-06-27 15:01 Enrico Scholz + * util-vserver/configure.ac: - declare the VC_ENABLE_API_* macros + through AH_TEMPLATE() + - provide only the v13,net APIs by default + - added support for v13obs API - * lib/Makefile-files: +2006-01-22 18:20 Enrico Scholz - added syscall-syscall.c + * util-vserver/ensc_wrappers/wrappers-vserver.hc: do not provide + Evc_new_s_context() wrapper without the required API -2004-06-27 15:00 Enrico Scholz +2006-01-22 18:19 Enrico Scholz - * ensc_fmt/fmt.h: + * util-vserver/lib/vserver-internal.h: use the new + VC_ENABLE_API_V13OBS define - cleanups; removed unneeded #undef's +2006-01-22 18:19 Enrico Scholz -2004-06-27 14:59 Enrico Scholz + * util-vserver/lib/syscall.c: added linktime warning for + vc_set_ipv4root() - * doc/configuration.xml: +2006-01-22 18:18 Enrico Scholz - added comment about 'capabilities' file and kernelversion + * util-vserver/lib/Makefile-files, + util-vserver/lib/syscall_setsched-v13.hc, + util-vserver/lib/syscall_setsched-v13obs.hc, + util-vserver/lib/syscall_setsched.c: split vc_set_sched_v13obs() + into an own file -2004-06-17 23:32 Enrico Scholz +2006-01-22 18:17 Enrico Scholz - * vserver-start/Makefile-files: + * util-vserver/src/chbind.c, util-vserver/src/rpm-fake-resolver.c, + util-vserver/src/vserver-info.c: fixed compilation for disabled + compat/legacy API - initial checkin +2006-01-22 18:15 Enrico Scholz -2004-06-17 23:31 Enrico Scholz + * util-vserver/src/capchroot.c, util-vserver/src/chcontext.c, + util-vserver/src/reducecap.c: added some workarounds so that it + build without compat/legacy API + resp. give out warnings explaining the situation - * Makefile.am: +2006-01-22 13:37 Enrico Scholz - added silent.% target - include ensc_fmt/ and vserver-start/ files - minor cosmetical fixes + * util-vserver/Makefile.am: added support for $(pkgcachedir) -2004-06-16 12:10 Enrico Scholz +2006-01-22 13:36 Enrico Scholz - * ensc_vector/: Makefile-files, vector-zeroend.c, vector.h: + * util-vserver/doc/configuration.xml: - documented + /etc/vservers/.defaults/cachebase + /etc/vservers/.../cache + - documented default value of /etc/vservers/.../vdir - added Vector_zeroEnd() function +2006-01-22 13:12 Enrico Scholz -2004-06-16 12:07 Enrico Scholz + * util-vserver/util-vserver.spec.in: - do not require 'xalan' + anymore by default + - removed 'Requires: apt'; apt-rpm is not maintained upstream + anymore + - removed 'chattr' leftovers + - create the '/etc/vservers/.defaults/cachebase' symlink + - added /var/cache/vservers and the needed support + - set barrier attribute on /vservers/.pkg and /vservers/.hash + - added 'centos-release' to the list of packages in the + copy-the-keys + trigger script + - create '/vservers/.hash' and add initial configuration for it + +2006-01-22 13:04 Enrico Scholz + + * util-vserver/THANKS: - fixed ngnet -> non-legacy network + confusion + - mentioned improved dlimit support + +2006-01-22 12:36 Enrico Scholz + + * util-vserver/scripts/vserver-build.debootstrap: - changed the way + how temporary files/directories will be created: + + * mktemp will now be called with the '-t' parameter and sometimes + with + '-p' + * absolutes paths (e.g. '/tmp') were removed from the templates + * with this changes, it is now possible to override the location + of + the temporary files by setting $TMPDIR. This should add a way to + solve problems like debootstrap on non-executable tmp-directories + (http://savannah.nongnu.org/bugs/?func=detailitem&item_id=15447) + + These changes require that 'mktemp' understands the following + switches: + + * '-t' ... Generate a path rooted in a temporary directory. + * '-d' ... Make a directory instead of a file. + * '-p' ... Use the specified directory as a prefix when + generating + the temporary filename. + + Because 'mktemp' from Debian Woody's 'debianutils_1.16.2woody1' + supports these features every recent Linux distribution should do + it + also. + + - allow to override path of the debootstrap binary with the + $DEBOOTSTRAP + environment variable + +2006-01-22 12:24 Enrico Scholz + + * util-vserver/scripts/functions, util-vserver/scripts/pkgmgmt, + util-vserver/scripts/start-vservers, + util-vserver/scripts/util-vserver-vars.pathsubst, + util-vserver/scripts/vserver-build.rpm, + util-vserver/scripts/vserver.functions, + util-vserver/scripts/vserver.start: changed the way how temporary + files/directories will be created: + + * mktemp will now be called with the '-t' parameter and sometimes + with + '-p' + * absolutes paths (e.g. '/tmp') were removed from the templates + * with this changes, it is now possible to override the location + of + the temporary files by setting $TMPDIR. This should add a way to + solve problems like debootstrap on non-executable tmp-directories + (http://savannah.nongnu.org/bugs/?func=detailitem&item_id=15447) + + These changes require that 'mktemp' understands the following + switches: + + * '-t' ... Generate a path rooted in a temporary directory. + * '-d' ... Make a directory instead of a file. + * '-p' ... Use the specified directory as a prefix when + generating + the temporary filename. + + Because 'mktemp' from Debian Woody's 'debianutils_1.16.2woody1' + supports these features every recent Linux distribution should do + it + also. + +2006-01-22 12:11 Enrico Scholz + + * util-vserver/scripts/vserver.functions: - the 'dlimit' stuff uses + now a /etc/vservers/*/cache symlink pointing + somewhere to /var/cache + - _setSingleDiskLimit(): use one $_VDU call instead of two + - give out a warning when dlimit/ stuff is configured but no + cache + symlink is existing + +2006-01-22 12:09 Enrico Scholz + + * util-vserver/scripts/vserver-build.functions: create the + /etc/vservers/*/cache symlink + +2006-01-22 11:56 Enrico Scholz + + * util-vserver/src/vdu.c: rearranged some bits so that toplevel + directory will be counted too + +2006-01-22 11:28 Enrico Scholz + + * util-vserver/src/Makefile-files: link 'vdu' against + 'libinternal.a' + +2006-01-22 11:27 Enrico Scholz + + * util-vserver/src/vdu.c: - rewrote the directory traversal code to + use 'EsafeChdir()' and + friends + - allow to specify both '--inodes' and '--space' + - use 'isNumber()' + +2006-01-22 11:25 Enrico Scholz + + * util-vserver/src/vserver-info.c: apply new 'isNumber()' API + +2006-01-22 11:24 Enrico Scholz + + * util-vserver/scripts/util-vserver-vars.pathsubst: added + __PKGCACHEDIR + +2006-01-22 11:23 Enrico Scholz + + * util-vserver/lib_internal/Makefile-files, + util-vserver/lib_internal/util-isnumber.c, + util-vserver/lib_internal/util-isnumber.hc, + util-vserver/lib_internal/util-isnumberunsigned.c, + util-vserver/lib_internal/util.h: enhanced the isNumber() method: + * now, it accepts units like 'm' or 'K'; 'isNumber()' needs now a + third parameter telling whether to interprete the number strictly + or + whether to accept such units + * an 'isNumberUnsigned()' method was created for unsigned types; + an + 'util-isnumber.hc' template file was created for this purpose + * proper tests for over/underflow were implemented + +2006-01-22 11:19 Enrico Scholz + + * util-vserver/lib_internal/testsuite/Makefile-files, + util-vserver/lib_internal/testsuite/isnumber.c: added isnumber.c + testcase which checks the isNumber() and + isNumberUnsigned() methods + +2006-01-22 11:18 Enrico Scholz + + * util-vserver/ensc_wrappers/Makefile-files, + util-vserver/ensc_wrappers/wrappers-stat.hc, + util-vserver/ensc_wrappers/wrappers.h: added wrappers-stat.hc + which implements wrappers for the *stat(2) + functions + +2006-01-21 13:22 Enrico Scholz + + * util-vserver/doc/configuration.xml, + util-vserver/scripts/util-vserver-vars.pathsubst, + util-vserver/scripts/vserver.functions, + util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop, + util-vserver/src/Makefile-files, util-vserver/src/vdu.c: applied + http://savannah.nongnu.org/patch/?func=detailitem&item_id=4814 + (Daniel Hokka Zakrisson): + + This patch lets users configure disk limits in + /etc/vservers//dlimits/*/, and have them set on the start + of the + vserver, as well as saved when stopping the vserver. + + For counting the amount of inodes and space used by a certain + vserver + on a filesystem, I modified the old and broken vdu program (vdu + bin + etc would not find etc, for instance) and made it useful again. + + The cache files will probably need some love, I'm a bit uncertain + as + to where to put them (or rather, the symlink to their location). + + This is the last piece of the disk limits puzzle. A variant of + this + would be really nice to have in 0.30.210. (do you have an ETA on + that, + btw?) - * lib/Makefile-files: +2006-01-18 23:59 Enrico Scholz - moved fmt* functionality into the 'ensc_fmt' module - removed '-D_REENTRANT' as it is defined globally + * util-vserver/lib/vserver-internal.h: + NETTYPE_USER2KERNEL/NETTYPE_KERNEL2USER: handle IPv6 bcast case, + too -2004-06-16 12:06 Enrico Scholz +2006-01-18 23:55 Enrico Scholz - * ensc_fmt/.cvsignore, ensc_fmt/Makefile-files, ensc_fmt/fmt-32.c, - ensc_fmt/fmt-64.c, ensc_fmt/fmt-internal.h, - ensc_fmt/fmt-tai64n.c, ensc_fmt/fmt.h, ensc_fmt/fmt.hc, - ensc_fmt/fmtx-32.c, ensc_fmt/fmtx-64.c, ensc_fmt/fmtx.hc, - lib/fmt-32.c[DEAD], lib/fmt-64.c[DEAD], lib/fmt-internal.h[DEAD], - lib/fmt.h, lib/fmt.hc[DEAD], lib/fmtx-32.c[DEAD], - lib/fmtx-64.c[DEAD], lib/fmtx.hc[DEAD]: + * util-vserver/lib/vserver.h: adjusted the vc_net_nx_type enum so + that the NETTYPE_USER2KERNEL() can + be optimized - moved fmt* functionality into the 'ensc_fmt' module +2006-01-18 23:40 Enrico Scholz -2004-05-27 02:55 Enrico Scholz + * util-vserver/THANKS, util-vserver/lib/syscall_netadd-net.hc, + util-vserver/lib/syscall_netadd.c, + util-vserver/lib/syscall_netremove-net.hc, + util-vserver/lib/syscall_netremove.c, + util-vserver/lib/vserver-internal.h, + util-vserver/scripts/vserver.functions, + util-vserver/src/chbind.c: applied vnet patch from Daniel Hokka + Zakrisson + (http://savannah.nongnu.org/patch/?func=detailitem&item_id=4799) - * src/vcontext.c: +2006-01-18 23:37 Enrico Scholz - s!fakeinit!initpid! at some places + * util-vserver/lib/vserver.h: * vcFeatureSet: added vcFEATURE_VNET + enum + * applied vnet patch from Daniel Hokka Zakrisson + (http://savannah.nongnu.org/patch/?func=detailitem&item_id=4799) -2004-05-27 02:54 Enrico Scholz +2006-01-18 23:35 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/lib/issupported.c, + util-vserver/lib/issupportedstring.c: added support for + vcFEATURE_VNET feature - use '--fakeinit' by default; users will have to disable it explicitly - by putting '~fakeinit' into the 'flags' configuration file +2006-01-18 23:34 Enrico Scholz -2004-05-27 02:54 Enrico Scholz + * util-vserver/lib/checkversion.c: minor formation fixups - * scripts/vserver-build.debootstrap: +2006-01-04 17:28 Enrico Scholz - cleanups + * util-vserver/src/testsuite, + util-vserver/src/testsuite/.cvsignore, + util-vserver/src/testsuite/Makefile-files, + util-vserver/src/testsuite/hashcalc-plain.c, + util-vserver/src/testsuite/hashcalc-plain.sh: added + 'hashcalc-plain' tests to track down broken beecrypt/vhashify on + some Debians -2004-05-27 02:53 Enrico Scholz +2006-01-04 13:29 Enrico Scholz - * README: + * util-vserver/distrib/misc/vprocunhide-files: readded + /proc/version; it is expected by several programs - fixed typos +2006-01-04 12:30 Enrico Scholz -2004-05-27 02:51 Enrico Scholz + * util-vserver, util-vserver/.cvsignore: added csope.out - * scripts/chcontext: +2006-01-04 12:29 Enrico Scholz - s!fakeinit!initpid! at some places + * util-vserver/lib/syscall_getvhiname-v13.hc: + vc_get_vhi_name_v13(): added comment near the strncpy(3) call + which + tells that an explicit termination with '\0' is not wanted -2004-05-27 02:51 Enrico Scholz +2006-01-04 12:27 Enrico Scholz - * distrib/misc/debootstrap.uri: + * util-vserver/lib_internal/util-unixsock.h: ENSC_INIT_UNIX_SOCK(): + be more effective in an strncpy(3) call and + avoid potential copying of an char which gets overridden later - updated +2006-01-03 00:13 Enrico Scholz -2004-05-27 02:50 Enrico Scholz + * util-vserver/build-all: parameterized '-j' flag - * util-vserver.spec.in: +2006-01-03 00:11 Enrico Scholz - (re)added the MANIFEST_* variables which were lost some time ago; this - will preserve %%config files... + * util-vserver/Makefile.am: removed old kernel headers -2004-05-27 02:48 Enrico Scholz +2006-01-02 23:55 Enrico Scholz - * Makefile.am: + * util-vserver/distrib/misc/vprocunhide-files: hide /proc/cmdline + and /proc/version because they can reveal information + about the host system - make util-vserver.spec readonly to prevent losing of changes +2006-01-02 23:51 Enrico Scholz -2004-05-27 02:46 Enrico Scholz + * util-vserver/distrib/misc/debootstrap.uri: updated url - * README: +2006-01-02 23:50 Enrico Scholz - added content + * util-vserver/scripts/functions, + util-vserver/scripts/vserver-setup.functions: updated dates in + the copyright notices -2004-05-22 02:39 Enrico Scholz +2006-01-02 23:48 Enrico Scholz - * sysv/vprocunhide: + * util-vserver/kernel/context.h, util-vserver/kernel/cvirt_def.h, + util-vserver/kernel/debug.h, util-vserver/kernel/global.h, + util-vserver/kernel/inode.h, util-vserver/kernel/limit.h, + util-vserver/kernel/limit_def.h, util-vserver/kernel/network.h, + util-vserver/kernel/sched_def.h, util-vserver/kernel/signal.h, + util-vserver/kernel/xid.h: updated to 2.6.14.3-vs2.01 headers - fixed rc conflict with /etc/rc.d/functions; reported by taxcollector - in https://savannah.nongnu.org/bugs/?func=detailitem&item_id=9052 +2006-01-02 18:02 Enrico Scholz -2004-05-21 17:46 Enrico Scholz + * util-vserver/scripts/vserver-build.functions: + s!/etc/slackware-release!/etc/slackware-version! (reported by + bubulak) - * configure.ac, m4/gpgsig.am: +2005-12-31 10:58 Enrico Scholz - added support for the default GPG key + * util-vserver/scripts/functions: isDirectoryEmpty(): really ignore + 'lost+found' by checking against the full + path + (https://savannah.nongnu.org/patch/?func=detailitem&item_id=4714, + patched by XeRO) -2004-05-21 17:27 Enrico Scholz +2005-12-31 10:54 Enrico Scholz - * scripts/: functions, vapt-get, vrpm: + * util-vserver/scripts/functions: colpanic(): added missing 'error' + keyword for the colorize call (issue + 15281, reported and patched by Micah Anderson) - added some color to the life +2005-12-31 10:48 Enrico Scholz -2004-05-20 02:38 Enrico Scholz + * util-vserver/lib/syscall-fallback.h: added syscall numbers for + hppa (263) and m32r (273) - * scripts/: pkgmgmt, vserver: +2005-12-31 10:41 Enrico Scholz - mount filesystems on 'vserver ... pkgmgmt ...' operations + * util-vserver/src/secure-mount.c: - mount some more filesystems + internally instead of calling the + external 'mount' command + - fixed MS_NODEV handling -2004-05-19 01:25 Enrico Scholz +2005-12-31 10:39 Enrico Scholz - * NEWS: + * util-vserver/doc/configuration.xml, + util-vserver/scripts/vserver.functions: added 'novlandev' + interface flag - version 0.29.214 +2005-10-31 09:55 Enrico Scholz -2004-05-19 01:24 Enrico Scholz + * util-vserver/scripts/vyum-worker: made it work with yum 2.4.0 - * distrib/misc/debootstrap.uri: +2005-10-30 16:43 Enrico Scholz - updated URL (again...) + * util-vserver/distrib/centos42/yum/yum.conf, + util-vserver/distrib/fc3/yum/yum.conf, + util-vserver/distrib/fc4/yum/yum.conf: added + 'installonlypkgs=/exactarch=0' entries -2004-05-19 01:21 Enrico Scholz +2005-10-30 16:43 Enrico Scholz - * distrib/: Makefile.am, fc2/apt/rpmpriorities, - fc2/apt/sources.list, fc2/pkgs/01, fc2/pkgs/02: + * util-vserver/lib/Makefile-files: added + 'ensc_fmt/lib_libvserver_a-%' to DIETPROGS; this fixes problems + e.g. with FC5's stack-protector - added fc2 support +2005-10-30 10:17 Enrico Scholz -2004-05-19 01:21 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.209 - * contrib/manifest.dat.pathsubst: +2005-10-30 10:01 Enrico Scholz - removed clearenv, added sigexec + * util-vserver/scripts/vserver.functions: call 'vattribute' with + '--flag default' -2004-05-19 01:20 Enrico Scholz +2005-10-30 10:01 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/lib/cflags-v13.c: added 'default' and 'secure' + pseudo flags; they are open for enhancements + but VC_VXF_VIRT_UPTIME seems to be the only flag for 'default' + without + sideeffects - s!@PACAKGE@!%name! at some places +2005-10-29 16:53 Enrico Scholz -2004-05-19 01:20 Enrico Scholz + * util-vserver/distrib/redhat/initpost: added code to execute + 'killall5 -15' in the halt script; this should + fix the minilogd issues with CentOS and older RH releases - * Makefile.am: +2005-10-29 16:52 Enrico Scholz - substitute ENV + * util-vserver/src/testsuite/Makefile-files, + util-vserver/src/testsuite/vwait-test.sh: added 'vwait-test.sh' -2004-05-11 20:49 Enrico Scholz +2005-10-29 16:51 Enrico Scholz - * configure.ac, scripts/util-vserver-vars.pathsubst, - scripts/vserver.start, src/Makefile-files, src/clearenv.c[DEAD]: + * util-vserver/scripts/vserver.functions: ok... try #3 of the new + vwait stuff: it seems to be a good idea to + read files *after* they are filled with content... - use 'env' instead of 'clearenv'; the '-i' switch is SUSv3 and every implementation should have it... +2005-10-29 15:35 Enrico Scholz -2004-05-11 20:32 Enrico Scholz + * util-vserver/scripts/vserver.stop: execute waitForSync everytime + and not only when the shutdown succeeded - * src/sigexec.c: +2005-10-29 15:34 Enrico Scholz - initial checkin + * util-vserver/scripts/vserver.functions: fixed the TIMEOUT case in + yet another way: now, start 'vkill' and a + killall command in the same backgrounded subshell. Parameter + committal + between the different shell instances is a horror and just a + question + of time until it breaks :( -2004-05-11 20:31 Enrico Scholz +2005-10-29 15:28 Enrico Scholz - * src/: context-sync.hc, vnamespace.c, vps.c: + * util-vserver/scripts/start-vservers: add newlines in the makefile + generated for the 'stop' case; else, there + will be multiple target-dependency pairs on the same line + [reported by + Daniel Kraft] - set SIGCHLD sigmask to an expected value (SIG_DFL) - use new exitLikeProcess() interface +2005-10-29 15:08 Enrico Scholz -2004-05-11 20:30 Enrico Scholz + * util-vserver/src/vdlimit.c: - revert a previous vc_add_dlimit() + when vc_set_dlimit() fails + - added some basic sanity checks for the parameters given on the + CLI + [both reported by Kevin Pendleton; + https://savannah.nongnu.org/bugs/?func=detailitem&item_id=14026] - * src/: chcontext.c, secure-mount.c, vcontext.c, vkill.c: +2005-10-29 14:55 Enrico Scholz - set SIGCHLD sigmask to an expected value (SIG_DFL) + * util-vserver/doc/configuration.xml: - removed documentation about + single flags; it was broken and outdated + - added link to http://linux-vserver.org/Scheduler+Parameters for + the + scheduler params + [both + https://savannah.nongnu.org/bugs/?func=detailitem&item_id=14331] -2004-05-11 20:28 Enrico Scholz +2005-10-29 12:53 Enrico Scholz - * scripts/vshelper: + * util-vserver/scripts/vserver.functions: - initWait(): call + 'vwait' without --terminate; this is required to + give out a list of processes in _waitForVWait + - _waitForVWait(): when 'vwait' returns with 'TIMEOUT', give out + the + list of current processes and kill the context manually - execute vshelper through 'sigexec' to set expected sigmask +2005-10-29 12:09 Enrico Scholz -2004-05-11 20:26 Enrico Scholz + * util-vserver/src/vserver-stat.c: fillName(): initialize + 'obj->cfgstyle' to vcCFG_AUTO + +2005-10-29 12:09 Enrico Scholz - * src/: .cvsignore, Makefile-files: + * util-vserver/scripts/vserver-build.debootstrap: on non-debian + machines (resp. those without debootstrap), generate + '$DEBOOTSTRAP_DIR/arch' with the current architecture [reported + by + Nicolas Costes; + http://savannah.nongnu.org/bugs/?func=detailitem&item_id=14589] + +2005-10-29 12:07 Enrico Scholz + + * util-vserver/scripts/start-vservers: - verifyVserver(): + implemented it + - added some sanity checks to make sure that the 'depends' files + are + containing valid vserver names; the verifyVserver() function is + used + by these checks + +2005-10-29 12:06 Enrico Scholz + + * util-vserver/lib/getvserverctx.c: vc_getVserverCtx(): allow + vc_get_vx_info() to fail but check for + errno==ESRCH; for xid!=0, this syscall will return ENOSYS always + +2005-10-29 10:33 Enrico Scholz + + * util-vserver/src/testsuite/hashcalc.c: added some stack checks + +2005-10-29 10:32 Enrico Scholz + + * util-vserver/src/vwait.c: do not include "linuxvirtual.h" + anymore; it's not needed + +2005-10-29 10:31 Enrico Scholz + + * util-vserver/lib/getnbipv4root.c, + util-vserver/lib/getversion-internal.hc, + util-vserver/lib/isdynamicxid.c, + util-vserver/lib/syscall_adddlimit.c, + util-vserver/lib/syscall_cleanupnamespace.c, + util-vserver/lib/syscall_ctxcreate.c, + util-vserver/lib/syscall_ctxmigrate.c, + util-vserver/lib/syscall_enternamespace.c, + util-vserver/lib/syscall_getccaps.c, + util-vserver/lib/syscall_getcflags.c, + util-vserver/lib/syscall_getdlimit.c, + util-vserver/lib/syscall_getiattr.c, + util-vserver/lib/syscall_getncaps.c, + util-vserver/lib/syscall_getnflags.c, + util-vserver/lib/syscall_getnxinfo.c, + util-vserver/lib/syscall_gettasknid.c, + util-vserver/lib/syscall_gettaskxid.c, + util-vserver/lib/syscall_getvhiname.c, + util-vserver/lib/syscall_getvxinfo.c, + util-vserver/lib/syscall_kill.c, + util-vserver/lib/syscall_netadd.c, + util-vserver/lib/syscall_netcreate.c, + util-vserver/lib/syscall_netmigrate.c, + util-vserver/lib/syscall_netremove.c, + util-vserver/lib/syscall_remdlimit.c, + util-vserver/lib/syscall_rlimit.c, + util-vserver/lib/syscall_setccaps.c, + util-vserver/lib/syscall_setcflags.c, + util-vserver/lib/syscall_setdlimit.c, + util-vserver/lib/syscall_setiattr.c, + util-vserver/lib/syscall_setnamespace.c, + util-vserver/lib/syscall_setncaps.c, + util-vserver/lib/syscall_setnflags.c, + util-vserver/lib/syscall_setsched.c, + util-vserver/lib/syscall_setvhiname.c, + util-vserver/lib/syscall_waitexit.c, util-vserver/src/vkill.c: + include "virtual.h" instead of "linuxvirtual.h" - added sigexec +2005-10-29 09:26 Enrico Scholz -2004-05-11 20:25 Enrico Scholz + * util-vserver/src/testsuite/hashcalc.c: use our 'assert' from + "lib_internal/coreassert.h" + use Vwrite() instead of write() + +2005-10-29 09:25 Enrico Scholz - * lib_internal/util-exitlikeprocess.h: + * util-vserver/src/vhashify.c: cleanups; undefine macros after + their use, set some UNUSED attributes + and 'return EXIT_SUCCESS' in main to make the testsuite happy + (where + main() is not main()) - exitLikeProcess(): readded the 'NORETURN' and added a 'ret' parameter +2005-10-29 09:04 Enrico Scholz -2004-05-11 20:24 Enrico Scholz + * util-vserver/distrib/redhat/initpost: start the vserver with the + '--rescue' option and execute operations + like 'chkconfig' there - * lib_internal/util-exitlikeprocess.c: +2005-10-29 08:51 Enrico Scholz - exitLikeProcess(): never return... + * util-vserver/THANKS: mentioned Herbert and his alternative + syscall implementation -2004-05-11 20:23 Enrico Scholz +2005-10-29 08:46 Enrico Scholz - * lib_internal/switchtowatchxid.c: + * util-vserver/src/fstool.c: when giving a directory and other + filesystem objects on the CLI, the + fstool based applications (showattr, setattr, chxid) changed into + this + directory without going back. So the other objects can not be + found + anymore (resp. the wrong ones) [reported and patched by Daniel + Hokka + Zakrisson; + http://savannah.nongnu.org/bugs/?func=detailitem&item_id=14313] - switchToWatchXid(): modified the new migrate-path to work when there exists a process in xid 1 already +2005-10-28 18:41 Enrico Scholz -2004-05-08 04:05 Enrico Scholz + * util-vserver/scripts/vserver.start: use new syntax for + '--rescue-cmd' - * configure.ac, NEWS: +2005-10-28 18:40 Enrico Scholz - version 0.29.213 + * util-vserver/scripts/vserver-build.skeleton: use new + getDistribution API -2004-05-08 03:40 Enrico Scholz +2005-10-28 18:40 Enrico Scholz - * src/exec-ulimit.c: + * util-vserver/scripts/vserver-build.functions: when building new + vservers allow empty directories for their roots + improved error messages a little bit - added support for 'core' +2005-10-28 18:29 Enrico Scholz -2004-05-08 03:38 Enrico Scholz + * util-vserver/scripts/vserver: updated help msg for '--rescue' - * src/vps.c: +2005-10-28 17:59 Enrico Scholz - use new exitLikeProcess() interface - better error-handling + * util-vserver/scripts/functions: colorize/colpanic(): reset + attributes after giving out the message -2004-05-08 03:33 Enrico Scholz +2005-10-28 17:53 Enrico Scholz - * src/: context-sync.hc, vnamespace.c: + * util-vserver/distrib/Makefile.am, util-vserver/distrib/centos42, + util-vserver/distrib/centos42/pkgs, + util-vserver/distrib/centos42/pkgs/01, + util-vserver/distrib/centos42/pkgs/02, + util-vserver/distrib/centos42/pkgs/03, + util-vserver/distrib/centos42/yum, + util-vserver/distrib/centos42/yum.repos.d, + util-vserver/distrib/centos42/yum.repos.d/CentOS-Base.repo, + util-vserver/distrib/centos42/yum/yum.conf, + util-vserver/util-vserver.spec.in: added centos42 support - use new exitLikeProcess() interface +2005-10-28 17:52 Enrico Scholz -2004-05-08 03:32 Enrico Scholz + * util-vserver/distrib/misc/debootstrap.uri: updated debootstrap + url - * scripts/: vserver.start, vserver.stop: +2005-10-28 17:51 Enrico Scholz - added locking - call setDefaultTTY() correctly + * util-vserver/m4/ensc_syscall.m4: do not define + ENSC_SYSCALL_TRADITIONAL when alternative syscalls are available -2004-05-08 03:31 Enrico Scholz +2005-10-28 17:51 Enrico Scholz - * scripts/vserver-build.apt-rpm: + * util-vserver/lib/syscall_ctxcreate-v13.hc: use VCMD_ctx_create_v0 + instead of VCMD_ctx_create - call 'vapt-get -- clean' after building the vserver +2005-10-28 17:50 Enrico Scholz -2004-05-08 03:30 Enrico Scholz + * util-vserver/lib/getvserverctx.c: include "internal.h" - * scripts/functions: +2005-10-28 17:49 Enrico Scholz - setDefaultTTY(): redirect every descriptors + * util-vserver/Makefile.am, util-vserver/kernel/context.h, + util-vserver/kernel/cvirt_def.h, util-vserver/kernel/debug.h, + util-vserver/kernel/global.h, util-vserver/kernel/limit.h, + util-vserver/kernel/limit_def.h, util-vserver/kernel/network.h, + util-vserver/kernel/sched_def.h, util-vserver/kernel/signal.h, + util-vserver/kernel/xid.h: updated to 2.6.13.3-vs2.1.0-rc4 + headers -2004-05-08 03:30 Enrico Scholz +2005-10-28 16:38 Enrico Scholz - * lib_internal/util-exitlikeprocess.h: + * util-vserver/lib/syscall-alternative.h: updated to + http://vserver.13thfloor.at/Experimental/SYSCALL/syscall_shiny7.h - exitLikeProcess(): removed the 'NORETURN'; this causes strange error when the function returns - exitLikeProcess(): added a second, 'char *' parameter for the human readable command +2005-10-28 16:09 Enrico Scholz -2004-05-08 03:28 Enrico Scholz + * util-vserver/lib/Makefile-files, + util-vserver/lib/syscall-fallback.h: added syscall-fallback.h - * lib_internal/util-exitlikeprocess.c: +2005-10-28 16:03 Enrico Scholz - be more verbose when sending a signal + * util-vserver/m4/pkgconfig.am: do not use multiline sed + expressions anymore; instead of, assign and + use a Makefile variable -2004-05-08 03:28 Enrico Scholz +2005-10-28 16:01 Enrico Scholz - * lib/testsuite/cflags.c: + * util-vserver/m4/ensc_syscallnr.m4: - do not use the local + kernelheaders anymore; this causes problems on + cross-compiling + - use a fallback headerfile to determine syscall # - some changes to make gcc34 happy +2005-10-28 16:00 Enrico Scholz -2004-05-08 03:27 Enrico Scholz + * util-vserver/Makefile.am, util-vserver/configure.ac, + util-vserver/lib/syscall.c, util-vserver/m4/ensc_kerneldir.m4, + util-vserver/m4/ensc_syscall.m4: do not use the local + kernelheaders anymore; this causes problems on + cross-compiling - * lib/val2text.hc: +2005-10-25 16:23 Enrico Scholz - include + * util-vserver/lib/testsuite/fmt.c: improved tests by validating + that buffer gets not modified before or + after the indented space -2004-05-08 03:27 Enrico Scholz +2005-10-25 16:22 Enrico Scholz - * lib/getvservername.c: + * util-vserver/lib/getvserverctx.c: getCtxFromFile(): fixed + resource leaks in errorcase + vc_getVserverCtx(): validate result by calling getvserverbyctx() - getRecentName(): use realpath(3) instead of errorprone 'chdir()' calls +2005-10-25 16:21 Enrico Scholz -2004-05-08 03:26 Enrico Scholz + * util-vserver/lib/internal.h: vc_getVserverByCtx_Internal(): added + prototype (with 'validate_result' + parameter) - * lib/: getvserverbyctx-compat.hc, getvserverctx.c: +2005-10-25 16:20 Enrico Scholz - optimized buffersizes + * util-vserver/lib/getvserverbyctx-compat.hc, + util-vserver/lib/getvserverbyctx-v13.hc, + util-vserver/lib/getvserverbyctx.c: vc_getVserverByCtx_*(): added + 'validate_result' parameter to avoid + recursion when called by getvserverctx() -2004-05-08 03:25 Enrico Scholz +2005-10-25 16:18 Enrico Scholz - * doc/configuration.xml: + * util-vserver/lib/vserver.h: added vc_compareVserverById() - fixed apps/vunify/logfile documentation; it must be configured on a - per-system, but not per-vserver base +2005-10-25 16:17 Enrico Scholz -2004-05-08 03:25 Enrico Scholz + * util-vserver/lib/Makefile-files, + util-vserver/lib/comparevserverbyid.c: added comparevserverbyid.c - * distrib/misc/debootstrap.uri: +2005-10-25 16:11 Enrico Scholz - updated again + * util-vserver/ensc_fmt/fmtx.hc: save some bytes on the stack... -2004-05-05 21:40 Enrico Scholz +2005-10-25 16:09 Enrico Scholz - * src/clearenv.c: + * util-vserver/configure.ac: disable expensive tests by default - fixed case when '--' is used +2005-10-25 16:08 Enrico Scholz -2004-05-05 21:39 Enrico Scholz + * util-vserver/Makefile.am: improved 'silent.%' target a little bit + (might be incompatible with + older grep but it's for developing only...) - * scripts/vshelper: +2005-10-25 16:06 Enrico Scholz - fixed typo + * util-vserver/src/testsuite/Makefile-files, + util-vserver/src/testsuite/hashcalc.sh: added hashcalc.sh -2004-05-05 21:39 Enrico Scholz +2005-10-25 16:06 Enrico Scholz - * scripts/vserver.start: + * util-vserver/src/testsuite/hashcalc.c: fixed params in + calculateHashFromFD() call - use 'clearenv' in the new path also +2005-10-23 22:55 Enrico Scholz -2004-05-05 21:39 Enrico Scholz + * util-vserver/src/chroot-sh.c: testInternal(): fixed return value + for non-existing files - * scripts/vserver.functions: +2005-10-23 22:50 Enrico Scholz - sendKillSequence(): be silent and succeed everytime + * util-vserver/src/testsuite, + util-vserver/src/testsuite/.cvsignore, + util-vserver/src/testsuite/Makefile-files, + util-vserver/src/testsuite/hashcalc.c: added hashcalc -2004-05-05 21:38 Enrico Scholz +2005-10-23 22:49 Enrico Scholz - * scripts/vserver-setup.functions: + * util-vserver/src/vhashify.c: added TESTSUITE mode - removed legacy code +2005-10-09 09:11 Enrico Scholz -2004-05-05 21:37 Enrico Scholz + * util-vserver/scripts/vserver.functions: fixed VLAN setup: set the + name-type, honor the 'ip' value and use the + device name on removal (reported by Timothy Arnold, + https://savannah.nongnu.org/bugs/?func=detailitem&item_id=14148) - * scripts/vrpm-preload, src/rpm-fake-resolver.c, src/rpm-fake.c: +2005-08-08 22:15 Enrico Scholz - added code to preserve capabilities and flags + * util-vserver/scripts/vserver.functions: fixed detection of + commented lines in config-files; formerly, only a + single '#' was detected which does not really make sense for + comments... -2004-05-05 21:37 Enrico Scholz +2005-07-25 15:52 Enrico Scholz - * lib_internal/unify-unify.c: + * util-vserver/util-vserver.spec.in: updated URLs - added some doc +2005-07-25 15:50 Enrico Scholz -2004-05-05 21:36 Enrico Scholz + * util-vserver/src/vwait.c: - made the alarm() code working with + glibc also; glibc restarts + vc_wait_exit() instead of interrupting it so an explicit + siginterrupt(2) is required + - call alarm(2) again when EINTR was seen - * lib/syscall_setiattr-fscompat.hc: +2005-07-25 15:47 Enrico Scholz - be more carefully regarding signed vs. unsigned int... + * util-vserver/scripts/vserver-build.skeleton: execute + 'base.setSuccess' finally -2004-05-05 21:36 Enrico Scholz +2005-07-25 15:46 Enrico Scholz - * lib/bcaps-v13.c: + * util-vserver/scripts/vserver-build.functions.rpm: + rpm.sanityCheck(): added; it warns about missing initpre scripts - removePrefix(): fixed another 'len' issue - include +2005-07-25 15:45 Enrico Scholz -2004-04-30 12:24 Enrico Scholz + * util-vserver/scripts/vserver-build.functions: - + getDistribution(): added sanity checks to make sure that there + exist + a configuration for the selected distribution + - base.initFilesystem(): allow empty directories as root + directories + for new vservers; this uses the new isDirectoryEmpty() function + - base.__cleanup(): armed the cleanup code; formerly there was + still + the safety 'echo' giving out the resulting command instead of + executing it - * lib/bcaps-v13.c: +2005-07-25 15:42 Enrico Scholz - removePrefix(): fixed case when len<4 + * util-vserver/scripts/vserver-build.debootstrap: use new calling + convention of getDistribution(); 'debootstrap' does + not require an explicit configuration of the distribution -2004-04-28 21:18 Enrico Scholz +2005-07-25 15:41 Enrico Scholz - * doc/changelog.txt[DEAD]: + * util-vserver/scripts/vsysvwrapper: fixed typo + (s!$CHBIND!$_CHBIND!) - removed since unused +2005-07-25 15:40 Enrico Scholz -2004-04-28 20:12 Enrico Scholz + * util-vserver/scripts/vserver-build.apt-rpm, + util-vserver/scripts/vserver-build.rpm, + util-vserver/scripts/vserver-build.yum: call rpm.sanityCheck() - * lib/apidoc/Makefile-files: +2005-07-25 15:39 Enrico Scholz - added list2xxx.syntax + * util-vserver/scripts/functions: isDirectoryEmpty(): added + col*(): added -2004-04-28 20:11 Enrico Scholz +2005-07-15 20:25 Enrico Scholz - * src/readlink.c: + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.208 - enhanced errormessages +2005-07-15 19:40 Enrico Scholz -2004-04-28 20:10 Enrico Scholz + * util-vserver/configure.ac, util-vserver/lib/personalityflag.c, + util-vserver/lib/personalitytype.c, + util-vserver/m4/ensc_personality.m4: check whether enums from + are available before using + them + (https://savannah.nongnu.org/bugs/?func=detailitem&item_id=12921) - * src/: rpm-fake.c, vattribute.c: +2005-07-15 19:06 Enrico Scholz - use vc_get_insecurebcaps() instead of vc_get_insecurecaps() - set secure ccapabilities + * util-vserver/util-vserver.spec.in: - require the -lib subpackage + by -devel + - copy GPG keys from /etc/pki/rpm-gpg/ -2004-04-28 20:09 Enrico Scholz +2005-07-15 19:02 Enrico Scholz - * src/: chcontext.c, reducecap.c: + * util-vserver/src/testsuite/rpm-fake-test.sh: fixed paths so that + it works again... - use vc_get_insecurebcaps() instead of vc_get_insecurecaps() +2005-07-15 19:01 Enrico Scholz -2004-04-28 20:08 Enrico Scholz + * util-vserver/sysv/vprocunhide: do not run when IATTR feature is + not supported - * lib_internal/Makefile-files: +2005-07-15 19:01 Enrico Scholz - added coreassert.h + * util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.suexec: readded the + limit-ulimits-per-vserver stuff due to popular requests + (http://savannah.nongnu.org/bugs/?func=detailitem&item_id=12840) -2004-04-28 20:08 Enrico Scholz +2005-07-15 18:59 Enrico Scholz - * lib/testsuite/cflags.c: + * util-vserver/lib/getinsecurebcaps.c: - adjusted insecure caps for + the added CAP_AUDIT* and removed + CAP_QUOTACTL stuff + - assume every unknown capability as insecure - use - added new testcases +2005-07-15 18:58 Enrico Scholz -2004-04-28 20:07 Enrico Scholz + * util-vserver/lib/testsuite, + util-vserver/lib/testsuite/.cvsignore: added 'personality' - * lib/testsuite/: fmt.c, parselimit.c: +2005-07-15 18:07 Enrico Scholz - use + * util-vserver/lib/syscall_netadd-net.hc, + util-vserver/lib/syscall_netremove-net.hc: changed code so that + it *compiles* with current kernel headers -2004-04-28 20:07 Enrico Scholz +2005-07-15 18:06 Enrico Scholz - * lib/testsuite/Makefile-files: + * util-vserver/lib/syscall_getiattr-fscompat.hc, + util-vserver/lib/syscall_setiattr-fscompat.hc: Changed the + barrier-code so that it sets both the 't' ext2-flag and + chmod-0 permissions. This is required to work with 1.2.10 patch; + formerly the chmod-0 sufficed. [reported by Bjoern Steinbrink, + http://savannah.nongnu.org/bugs/?func=detailitem&item_id=13170] - define ENSC_TESTSUITE +2005-07-15 16:32 Enrico Scholz -2004-04-28 20:06 Enrico Scholz + * util-vserver/lib/capabilities.c: use a static '29' for QUOTACTL + capability as VC_CAP_QUOTACTL was removed - * lib/apidoc/list2xxx.syntax, lib_internal/coreassert.h: +2005-07-15 16:28 Enrico Scholz - initial checkin + * util-vserver/lib/ccaps-v13.c: added + VC_VXC_{SYSLOG,BINARY_MOUNT,QUOTA_CTL} + added/moved some aliases -2004-04-28 20:06 Enrico Scholz +2005-07-15 16:27 Enrico Scholz - * lib/apidoc/Doxyfile.in: + * util-vserver/lib/bcaps-v13.c: removed VC_CAP_QUOTACTL + added VC_CAP_AUDIT* - set EXAMPLE_PATH +2005-07-15 16:27 Enrico Scholz -2004-04-28 20:04 Enrico Scholz + * util-vserver/lib/vserver.h: removed VC_CAP_QUOTACTL + added VC_CAP_AUDIT* + added VC_VXC_{SYSLOG,BINARY_MOUNT,QUOTA_CTL} - * lib/vserver.h: +2005-07-15 16:25 Enrico Scholz - vc_get_insecureccaps(): added - cleanups - added documentation + * util-vserver/contrib/Makefile-files, + util-vserver/contrib/yum-2.3.4-chroot.patch: added + yum-2.3.4-chroot patch -2004-04-28 20:04 Enrico Scholz +2005-07-15 16:25 Enrico Scholz - * lib/val2text.hc: + * util-vserver/kernel/network.h, util-vserver/kernel/network_cmd.h, + util-vserver/kernel/switch.h, util-vserver/kernel/xid.h: updated + to patch-2.6.12.2-vs2.0-rc7 - use strncasecmp() instead of strncmp() +2005-07-04 22:38 Enrico Scholz -2004-04-28 20:04 Enrico Scholz + * util-vserver/scripts/vserver-build.functions: check whether + context is already active before starting the build + (http://savannah.nongnu.org/bugs/?func=detailitem&item_id=12849) - * lib/listparser.hc: +2005-07-04 22:36 Enrico Scholz - improved error-detection for the '^' prefix - added support for 'none' - allow '0' + * util-vserver/src/vserver-info.c: allow to pass a numeric xid to + 'vserver-info ... RUNNING' -2004-04-28 19:57 Enrico Scholz +2005-07-04 22:35 Enrico Scholz - * lib/bcaps-v13.c: + * util-vserver/lib_internal/Makefile-files, + util-vserver/lib_internal/util-isnumber.c, + util-vserver/lib_internal/util.h: isNumber(): added - added bcapability names - added code to remove a 'CAP_' prefix +2005-07-04 18:14 Enrico Scholz -2004-04-28 19:55 Enrico Scholz + * util-vserver/scripts/vserver-build.debootstrap: give out status + message before downloading debootstrap + (http://savannah.nongnu.org/bugs/?func=detailitem&item_id=13472) - * lib/: Makefile-files, getinsecurebcaps.c, - getinsecurecaps.c[DEAD]: +2005-07-04 18:03 Enrico Scholz - renamed getinsecurecaps.c to getinsecurebcaps.c + * util-vserver/lib/syscall-alternative.h: updated to + http://vserver.13thfloor.at/Experimental/SYSCALL/syscall.h + from 2005-05-07 -2004-04-23 18:47 Enrico Scholz +2005-07-03 22:42 Enrico Scholz - * doc/configuration-lsd.css, NEWS, configure.ac: + * util-vserver/distrib/misc/debootstrap.uri: oops... set the wrong + value - version 0.29.211 +2005-07-03 22:40 Enrico Scholz -2004-04-23 18:47 Enrico Scholz + * util-vserver/distrib/misc/debootstrap.uri: updated - * util-vserver.spec.in: +2005-07-03 22:40 Enrico Scholz - readjusted Release: + * util-vserver/distrib/Makefile.am: register fc4 as rh-style + distribution -2004-04-23 16:04 Enrico Scholz +2005-07-03 20:15 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/configure.ac: check for 'nohup' - cleaned up the %file-lists - buildrequire 'xalan-j' (can be disabled with '--without xalan') - removed 'libxslt' buildrequire +2005-07-03 17:53 Enrico Scholz -2004-04-23 16:03 Enrico Scholz + * util-vserver/contrib/manifest.dat.pathsubst: removed chroot_* + + C++ programs + added chroot_sh + vwait - * doc/Makefile-files: +2005-07-03 17:51 Enrico Scholz - remove *.html only, when we can recreate them + * util-vserver/Makefile.am, util-vserver/lib/virtual.h: updated + used kernel headers to 2.6.12.2-vs2.0-rc5 -2004-04-23 13:10 Enrico Scholz +2005-07-03 17:49 Enrico Scholz - * lib/Makefile-files: + * util-vserver/lib/syscall_getvhiname-v13.hc, + util-vserver/lib/syscall_setvhiname-v13.hc: - + s!VCMD_vx_.et_vhi_name!VCMD_.et_vhi_name! + - added workaround for older kernels not having the naming above - fixed typo +2005-07-03 17:48 Enrico Scholz -2004-04-23 13:09 Enrico Scholz + * util-vserver/scripts/vshelper: accept 'async' method - * doc/Makefile-files: +2005-07-03 17:47 Enrico Scholz - removed FAQ.txt and configuration.dtd - added configuration.xsd + * util-vserver/scripts/vserver.start: pipe 'popd' output to + /dev/null -2004-04-23 13:09 Enrico Scholz +2005-07-03 17:47 Enrico Scholz - * doc/FAQ.txt[DEAD]: + * util-vserver/scripts/vserver.functions: initSync(): fixed + parameter naming + initSync(): set 'async' method when 'vwait' is available + _waitForVWait(): read pipe after 'wait' returned - obsoleted +2005-07-03 17:45 Enrico Scholz -2004-04-22 22:47 Enrico Scholz + * util-vserver/scripts/vserver-build: do not set OPTION_KEEP - * configure.ac: +2005-07-03 17:43 Enrico Scholz - added 'net' API - disable 'legacy' API by default + * util-vserver/scripts/util-vserver-vars.pathsubst: added vwait -2004-04-22 22:47 Enrico Scholz +2005-07-03 17:43 Enrico Scholz - * compat.h: + * util-vserver/scripts/pkgmgmt: - cleanups + - unset %_dbpath at 'internalize' operation - added nid_t +2005-07-03 17:42 Enrico Scholz -2004-04-22 22:47 Enrico Scholz + * util-vserver/scripts/functions: vshelper.initSync(): fixed + parameter naming - * src/reducecap.c: +2005-07-03 17:40 Enrico Scholz - fixed warnings when compiled without legacy-mode + * util-vserver/src/chroot-sh.c: implemented 'testfile' subcommand -2004-04-22 22:46 Enrico Scholz +2005-07-03 14:42 Enrico Scholz - * lib/: Makefile-files, ncaps-net.c, ncaps_list-net.c, - nflags-net.c, nflags_list-net.c, syscall_getncaps-net.hc, - syscall_getncaps.c, syscall_getnflags-net.hc, - syscall_getnflags.c, syscall_getnxinfo-net.hc, - syscall_getnxinfo.c, syscall_gettasknid-net.hc, - syscall_gettasknid.c, syscall_netadd-net.hc, syscall_netadd.c, - syscall_netcreate-net.hc, syscall_netcreate.c, - syscall_netmigrate-net.hc, syscall_netmigrate.c, - syscall_netremove-net.hc, syscall_netremove.c, - syscall_setncaps-net.hc, syscall_setncaps.c, - syscall_setnflags-net.hc, syscall_setnflags.c, - vserver-internal.h, vserver.h: + * util-vserver/contrib/Makefile-files, + util-vserver/contrib/yum-2.3.3-chroot.patch: added + yum-2.3.3-chroot.patch - added network layer functions +2005-07-03 14:10 Enrico Scholz -2004-04-22 22:45 Enrico Scholz + * util-vserver/scripts/functions: do not quote $_VSHELPER in help + message (reported by Roman Barczynski, + https://savannah.nongnu.org/bugs/?func=detailitem&item_id=13162) - * lib/syscall_ctxcreate-v13.hc: +2005-07-03 14:03 Enrico Scholz - fixed return value + * util-vserver/doc/configuration.xml: mentioned the working + directory for the scripts -2004-04-22 21:33 Enrico Scholz +2005-07-03 14:02 Enrico Scholz - * doc/configuration.dtd[DEAD]: + * util-vserver/kernel/context.h, util-vserver/kernel/context_cmd.h, + util-vserver/kernel/cvirt_cmd.h, util-vserver/kernel/debug.h, + util-vserver/kernel/namespace.h, + util-vserver/kernel/namespace_cmd.h, + util-vserver/kernel/network.h, util-vserver/kernel/network_cmd.h, + util-vserver/kernel/switch.h: updated to 2.6.12.2-vs2.0-rc5 - obsoleted by configuration.xsd +2005-07-03 13:19 Enrico Scholz -2004-04-22 21:28 Enrico Scholz + * util-vserver/scripts/vserver.start: execute the prepre script in + the configuration directory (*not* the + vdir directory); this should not cause legacy problems as + formerly the + directory was not changed overall - * THANKS: +2005-07-03 13:18 Enrico Scholz - added Olivier Poitrey + * util-vserver/scripts/vserver.functions: check whether filesystem + is mounted readonly; if so, execute + $_SECURE_MOUNT with the '-n' argument -2004-04-22 21:27 Enrico Scholz +2005-07-03 13:17 Enrico Scholz - * configure.ac: + * util-vserver/scripts/vserver-build.apt-rpm, + util-vserver/scripts/vserver-build.debootstrap, + util-vserver/scripts/vserver-build.rpm: execute base.setSuccess() + at the end - use xalan instead of xsltproc +2005-07-03 13:16 Enrico Scholz -2004-04-22 21:24 Enrico Scholz + * util-vserver/src/rpm-fake-resolver.c: implemented better + error-handling in the read() and write() functions - * doc/: configuration-xhtml.xsl, configuration.xml, - configuration.xsd: +2005-07-03 12:33 Enrico Scholz - use the new, XSD-based format which was defined by Olivier Poitrey + * util-vserver/ensc_wrappers/wrappers-io.hc, + util-vserver/ensc_wrappers/wrappers-iosock.hc, + util-vserver/ensc_wrappers/wrappers-unistd.hc: store result of + read*(2) and write*(2) fucntions into signed variables; + error handling is more cleaner in this way -2004-04-22 21:01 Enrico Scholz +2005-07-03 12:31 Enrico Scholz - * doc/configuration-xhtml.xsl: + * util-vserver/src/vserver-stat.c: - cleanups + - multiply RSS value with PAGESIZE + (https://savannah.nongnu.org/bugs/?func=detailitem&item_id=13184) + - prepare the '-O' option: calculate vserver names earlier and + use + some more helper functions - made it work with xalan - removed debug message +2005-07-03 12:26 Enrico Scholz -2004-04-22 21:00 Enrico Scholz + * util-vserver/src/rpm-fake.c: - doPwStringRequest(): fixed x86_64 + issue; rpm-fake.so transmitted a + 'size_t' value, but rpm-fake-resolver expected an uint32_t + - minor cleanups - * doc/beautify.xsl[DEAD]: +2005-07-03 09:12 Enrico Scholz - obsoleted + * util-vserver/ensc_vector/Makefile-files, + util-vserver/ensc_vector/vector-foreach.c, + util-vserver/ensc_vector/vector.h, + util-vserver/ensc_vector/vector.hc: added Vector_foreach*() + functions -2004-04-22 21:00 Enrico Scholz +2005-07-02 09:17 Enrico Scholz - * doc/Makefile-files: + * util-vserver/src/Makefile-files, util-vserver/src/vbuild.cc, + util-vserver/src/vcheck.cc, util-vserver/src/vfiles.cc, + util-vserver/src/vserver.cc, util-vserver/src/vserver.hh, + util-vserver/src/vutil.cc, util-vserver/src/vutil.h, + util-vserver/src/vutil.p: removed the C++ tools; they do not work + with recent configuration and + are adding huge dependencies - use xalan +2005-06-30 06:17 Enrico Scholz -2004-04-22 20:10 Enrico Scholz + * util-vserver/scripts/vserver.stop: use vwait infrastructure - * kernel/: network.h, sched.h: +2005-06-30 06:16 Enrico Scholz - updated to vs1.9.0pre12 + * util-vserver/scripts/vserver-build.functions.pkgmgmt, + util-vserver/scripts/vserver.functions: use CHROOT_SH instead of + CHROOT_* + use vwait -2004-04-22 17:43 Enrico Scholz +2005-06-30 06:16 Enrico Scholz - * lib/: cflags-v13.c, testsuite/cflags.c: + * util-vserver/scripts/vserver-build.functions: remove generated + vserver when build fails and '--keep' was not specified - use more specific names for the flags +2005-06-30 06:13 Enrico Scholz -2004-04-21 23:17 Enrico Scholz + * util-vserver/scripts/vserver-build.apt-rpm, + util-vserver/scripts/vserver-build.debootstrap, + util-vserver/scripts/vserver-build.rpm, + util-vserver/scripts/vserver-build.skeleton, + util-vserver/scripts/vserver-build.yum: use 'base.init' instead + of 'base.initVariables' - * scripts/vserver.start: +2005-06-30 06:12 Enrico Scholz - give correct vserver-name in the hints ($VSERVER_DIR instead of $VSERVER_NAME) + * util-vserver/scripts/vserver-build: added '--keep' option -2004-04-21 23:16 Enrico Scholz +2005-06-30 06:11 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/scripts/X, + util-vserver/scripts/util-vserver-vars.pathsubst: removed + CHROOT_* + added CHROOT_SH - moved the 'ip_only' handling to the right place +2005-06-30 06:11 Enrico Scholz -2004-04-21 11:44 Enrico Scholz + * util-vserver/scripts/pkgmgmt: use CHROOT_SH instead of CHROOT_* - * src/vshelper-sync.c: +2005-06-30 06:10 Enrico Scholz - fixed missing initialization of a timeout struct + * util-vserver/lib/virtual.h: include signal_cmd.h instead of + signal.h -2004-04-21 11:43 Enrico Scholz +2005-06-30 06:10 Enrico Scholz - * src/vserver-stat.c: + * util-vserver/util-vserver.spec.in: added %dist tag + buildrequire 'which' and 'diffutils' + require 'apt' on i386 only - use uint64_t for the uptime counter to handle medium+large uptimes - (>49 days) correctly +2005-06-30 06:07 Enrico Scholz -2004-04-21 02:24 Enrico Scholz + * util-vserver/distrib/fc4, util-vserver/distrib/fc4/apt, + util-vserver/distrib/fc4/apt/rpmpriorities, + util-vserver/distrib/fc4/apt/sources.list, + util-vserver/distrib/fc4/pkgs, util-vserver/distrib/fc4/pkgs/01, + util-vserver/distrib/fc4/pkgs/02, + util-vserver/distrib/fc4/pkgs/03, + util-vserver/distrib/fc4/rpmlist.d, + util-vserver/distrib/fc4/rpmlist.d/00.lst, + util-vserver/distrib/fc4/yum, + util-vserver/distrib/fc4/yum.repos.d, + util-vserver/distrib/fc4/yum.repos.d/fedora-devel.repo, + util-vserver/distrib/fc4/yum.repos.d/fedora-updates-testing.repo, + util-vserver/distrib/fc4/yum.repos.d/fedora-updates.repo, + util-vserver/distrib/fc4/yum.repos.d/fedora.repo, + util-vserver/distrib/fc4/yum/yum.conf: initial checkin - * scripts/vserver.functions: +2005-06-30 06:06 Enrico Scholz - made 'nodev' work + * util-vserver/distrib/redhat/initpost: use CHROOT_SH instead of + CHROOT_* -2004-04-20 20:13 Enrico Scholz +2005-06-30 05:58 Enrico Scholz - * src/.cvsignore: + * util-vserver/src, util-vserver/src/.cvsignore, + util-vserver/src/Makefile-files, util-vserver/src/chroot-cat.c, + util-vserver/src/chroot-rm.c, util-vserver/src/chroot-sh.c: + replaced all the small chroot-* programs with a single + 'chroot-sh' + program - added chain-echo +2005-05-19 18:17 Enrico Scholz -2004-04-20 20:07 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added @NOHUP@ - * src/Makefile-files: +2005-05-19 18:16 Enrico Scholz - added chain-echo + * util-vserver/scripts/pkgmgmt: use new chroot-cat CLI -2004-04-20 20:07 Enrico Scholz +2005-05-19 18:10 Enrico Scholz - * scripts/vshelper: + * util-vserver/kernel/context.h, util-vserver/kernel/cvirt.h, + util-vserver/kernel/dlimit.h, util-vserver/kernel/dlimit_cmd.h, + util-vserver/kernel/inode_cmd.h, util-vserver/kernel/legacy.h, + util-vserver/kernel/signal.h, util-vserver/kernel/signal_cmd.h, + util-vserver/kernel/xid.h: updated - use '--defaulttty' +2005-05-19 18:05 Enrico Scholz -2004-04-20 20:07 Enrico Scholz + * util-vserver/lib/issupported.c, + util-vserver/lib/issupportedstring.c, util-vserver/lib/vserver.h: + vc_isSupported() et.al: added VWAIT feature - * scripts/vserver.stop: +2005-05-19 18:04 Enrico Scholz - use setDefaultTTY() + * util-vserver/m4/ensc_syscall.m4: s!enable_val!enableval! -2004-04-20 20:02 Enrico Scholz +2005-05-19 18:02 Enrico Scholz - * scripts/vserver.start: + * util-vserver/src/vserver-stat.c: fixed calculation of hours (%24 + instead of %60); reported in + http://savannah.nongnu.org/bugs/?func=detailitem&item_id=13048 by + Roman Barczynski - use setDefaultTTY() - added explicit synchronization step for fakeinit with the old methods +2005-05-19 18:01 Enrico Scholz -2004-04-20 20:01 Enrico Scholz + * util-vserver/src/chroot-cat.c: added '-i', '-o' and '-a' options + to cat or override a file, or to + append something - * scripts/vserver: +2005-05-19 17:59 Enrico Scholz - added '--defaulttty' option + * util-vserver/distrib/redhat/initpost: use safe chroot-cat + commands -2004-04-20 20:00 Enrico Scholz +2005-05-05 19:13 Enrico Scholz - * scripts/start-vservers: + * util-vserver/m4/ensc_dietlibc.m4: - give out a more correct + helpstring for the '--enable/disable-dietlibc' + option + - use AS_HELP_STRING instead of AC_HELP_STRING - use --defaulttty options instead of setting tty manually +2005-05-05 18:31 Enrico Scholz -2004-04-20 20:00 Enrico Scholz + * util-vserver/configure.ac: - removed call to ENSC_FPIC_SYSCALL + - enhanced dietlibc version check to the 64 bit version of hppa - * scripts/functions: +2005-05-05 09:24 Enrico Scholz - setDefaultTTY(): added + * util-vserver/src, util-vserver/src/.cvsignore: added vwait -2004-04-20 19:59 Enrico Scholz +2005-05-05 09:22 Enrico Scholz - * lib/getvservercfgstyle.c: + * util-vserver/src/vwait.c: initial checkin - * vc_getVserverCfgStyle(): interprete relative ('./') and absolute - paths ('/...') as vcCFG_RECENT_FULL only - * vc_getVserverCfgStyle(): use utilvserver_isDirectory (fstat(2)) - instead of access(2) to check for directories +2005-05-05 09:21 Enrico Scholz -2004-04-20 19:57 Enrico Scholz + * util-vserver/src/vshelper-sync.c: use '__linux__' instead of + '__linux' (reported by Ola Lundqvist) - * ensc_wrappers/wrappers-unistd.hc: +2005-05-05 09:20 Enrico Scholz - Edup(): added + * util-vserver/src/exec-cd.c: minor cosmetical cleanup -2004-04-20 19:57 Enrico Scholz +2005-05-05 09:20 Enrico Scholz - * ensc_wrappers/wrappers-fcntl.hc: + * util-vserver/src/chroot-cat.c: - added support for '--help' and + '--version' + - added '-a' option to append information instead of truncating + the + file - Efcntl(): added +2005-05-05 09:19 Enrico Scholz -2004-04-20 19:57 Enrico Scholz + * util-vserver/src/Makefile-files: - 'chroot-cat' supports now the + '--help' and '--version' options so + removed it from AM_INSTALLCHECK_STD_OPTIONS_EXEMPT + - added vwait - * distrib/misc/debootstrap.uri: +2005-05-05 09:17 Enrico Scholz - added some entries + * util-vserver/m4/install-notify.am: s!^# !## ! -2004-04-20 19:56 Enrico Scholz +2005-05-05 09:17 Enrico Scholz - * distrib/misc/vunify-exclude: + * util-vserver/lib/Makefile-files, + util-vserver/lib/syscall_waitexit-v13.hc, + util-vserver/lib/syscall_waitexit.c, util-vserver/lib/vserver.h: + vc_wait_exit(): implemented support for this syscall - updated +2005-05-02 21:44 Enrico Scholz -2004-04-20 19:55 Enrico Scholz + * util-vserver/src/compat-pivot_root.h: use - * contrib/manifest.dat.pathsubst, - scripts/util-vserver-vars.pathsubst: +2005-05-02 21:43 Enrico Scholz - added chain-echo + * util-vserver/m4/ensc_syscall.m4: minor cosmetical cleanups -2004-04-20 19:54 Enrico Scholz +2005-05-02 21:43 Enrico Scholz - * src/chain-echo.c: + * util-vserver/m4/ensc_fpicsyscall.m4: obsoleted - initial checkin +2005-05-02 21:43 Enrico Scholz -2004-04-15 04:33 Enrico Scholz + * util-vserver/m4/ensc_fpicsyscall.m4: use ENSC_SYSCALL_ALTERNATIVE - * NEWS, configure.ac: +2005-05-02 21:42 Enrico Scholz - version 0.29.209 + * util-vserver/lib/vserver-internal.h: cleaned up '#include + <*syscall.h>' stuff -2004-04-15 04:01 Enrico Scholz +2005-05-02 21:42 Enrico Scholz - * src/vcontext.c: + * util-vserver/lib/syscall-legacy.hc, + util-vserver/lib/syscall-wrap.h: include also - setFlags(): optimized (nearly state of 1.10) +2005-05-02 21:41 Enrico Scholz -2004-04-15 04:00 Enrico Scholz + * util-vserver/doc/configuration-xhtml.xsl: use class + 'directoryname' instead of 'directory' for '' + markup - * scripts/vserver.suexec: +2005-05-02 21:40 Enrico Scholz - call chbind when entering vservers + * util-vserver/Makefile.am, util-vserver/distrib/Makefile.am, + util-vserver/m4/install-notify.am: give out additional + information about the 'make install' process -2004-04-15 03:59 Enrico Scholz +2005-04-28 19:07 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.207 - call vattribute with '--flag fakeinit' additionally to the '--fakeinit' flag of vcontext +2005-04-28 18:48 Enrico Scholz -2004-04-15 03:59 Enrico Scholz + * util-vserver/configure.ac: adjusted dietlibc requirements - * scripts/functions: +2005-04-28 18:08 Enrico Scholz - callInNamespace(): do not accept non-running vservers + * util-vserver/src/vcontext.c: allow to override the execution + domain (personality); added + '--personality-type' and '--personality-flags' options -2004-04-15 03:58 Enrico Scholz +2005-04-28 18:08 Enrico Scholz - * distrib/misc/debootstrap.uri: + * util-vserver/src/rpm-fake-resolver.c: added a TEMP_FAILURE_RETRY + around a read(2) - updated +2005-04-28 18:05 Enrico Scholz -2004-04-15 01:31 Enrico Scholz + * util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.suexec: added support for a rescue + mode - * src/vcontext.c: +2005-04-28 18:04 Enrico Scholz - applied new kernel API (*flags* -> *cflags*, *_context -> ctx_*) - fixed '--fakeinit' option + * util-vserver/scripts/vserver.functions: * + _generatePersonalityOptions(): added and use it + * added support for a rescue mode -2004-04-15 01:29 Enrico Scholz +2005-04-28 18:03 Enrico Scholz - * scripts/vshelper: + * util-vserver/scripts/vserver-build.functions.pkgmgmt: + YUM_RELEASEPKGS: added - fixed another brokeness in CLI option handling +2005-04-28 18:03 Enrico Scholz -2004-04-15 01:28 Enrico Scholz + * util-vserver/scripts/vserver: fixed docu for 'stop' and 'start' - * scripts/functions: +2005-04-28 18:03 Enrico Scholz - lock(): do not execute the pipe; this does not work on 2.6 + * util-vserver/scripts/pkgmgmt: * verifyInternalPackages(): added + * added some sanity checks for a sany environment when + internalizing + the package management -2004-04-15 01:28 Enrico Scholz +2005-04-28 18:02 Enrico Scholz - * lib/testsuite/.cvsignore: + * util-vserver/scripts/functions: * isRegularFile(): fixed + evaluation of params + * hasSubstring(): added + * getAllVservers(): fixed typo - added cflags +2005-04-28 18:01 Enrico Scholz -2004-04-15 01:27 Enrico Scholz + * util-vserver/lib_internal/sys_clone.h: cleanups; do not include + - * doc/configuration.xml: +2005-04-28 18:01 Enrico Scholz - added some comments about uts/context + * util-vserver/lib_internal/Makefile-files, + util-vserver/lib_internal/sys_personality.h: added + sys_personality.h -2004-04-15 01:27 Enrico Scholz +2005-04-28 17:56 Enrico Scholz - * doc/configuration-xhtml.xsl: + * util-vserver/scripts/legacy/vserver-copy, + util-vserver/scripts/vserver-copy: moved to legacy - added a new boring stylesheet +2005-04-28 17:54 Enrico Scholz -2004-04-15 01:27 Enrico Scholz + * util-vserver/lib/testsuite/Makefile-files, + util-vserver/lib/testsuite/personality.c: added testcases for the + vc_*personality*() functions - * doc/configuration.css: +2005-04-28 17:53 Enrico Scholz - initial checkin + * util-vserver/lib/vserver.h: added prototypes for vc_*personality* + support -2004-04-15 01:26 Enrico Scholz +2005-04-28 17:53 Enrico Scholz - * contrib/: make-manifest, manifest.dat.pathsubst: + * util-vserver/lib/virtual.h: updated to new kernel headers - added support for '%config(...)' (or whatever) annotations +2005-04-28 17:53 Enrico Scholz -2004-04-15 01:25 Enrico Scholz + * util-vserver/lib/cflags_list-v13.c: do not include + anymore - * ensc_wrappers/wrappers-vserver.hc, - lib_internal/switchtowatchxid.c, src/chcontext.c, - src/reducecap.c, src/rpm-fake-resolver.c, src/rpm-fake.c, - src/vattribute.c: +2005-04-28 17:52 Enrico Scholz - applied new kernel API (*flags* -> *cflags*, *_context -> ctx_*) + * util-vserver/lib/internal.h: utilvserver_listparser_uint*(): + removed the 'nonnull' attribute for the 'mask' param -2004-04-15 01:22 Enrico Scholz +2005-04-28 17:51 Enrico Scholz - * lib_internal/: Makefile-files, util.h: + * util-vserver/lib/Makefile-files, + util-vserver/lib/personalityflag.c, + util-vserver/lib/personalityflag_list.c, + util-vserver/lib/personalitytype.c: added personality* files - added util-debug.h +2005-04-28 17:50 Enrico Scholz -2004-04-15 01:22 Enrico Scholz + * util-vserver/doc/configuration.xml: * added some markup + * documented 'personality' - * lib_internal/util-debug.h: +2005-04-28 17:50 Enrico Scholz - initial checkin + * util-vserver/doc/configuration-xhtml.xsl, + util-vserver/doc/configuration.dtd: added support for + and markup -2004-04-15 01:21 Enrico Scholz +2005-04-28 17:49 Enrico Scholz - * kernel/: context.h, cvirt.h, inode.h, legacy.h, limit.h, - namespace.h, network.h, sched.h, switch.h, xid.h: + * util-vserver/distrib/fc3/yum/yum.conf: + s!redhat-release!fedora-release! - updated to vs1.90pre9 +2005-04-28 17:49 Enrico Scholz -2004-04-15 01:21 Enrico Scholz + * util-vserver/distrib/fc3/pkgs/02: removed 'coreutils' - * lib/: syscall-compat.hc, vserver.h, testsuite/Makefile-files, - testsuite/cflags.c, testsuite/flags.c[DEAD]: +2005-04-28 17:48 Enrico Scholz - applied new kernel API - renamed functions so that they correspond to the new kernel API + * util-vserver/distrib/fc3/rpmlist.d/00.lst: added some more + packages -2004-04-15 01:19 Enrico Scholz +2005-04-28 17:46 Enrico Scholz - * lib/: Makefile-files, cflags-compat.c, cflags-v13.c, - cflags_list-compat.c, cflags_list-v13.c, flags-compat.c[DEAD], - flags-v13.c[DEAD], flags_list-compat.c[DEAD], - flags_list-v13.c[DEAD], syscall_createcontext-v13.hc[DEAD], - syscall_createcontext.c[DEAD], syscall_ctxcreate-v13.hc, - syscall_ctxcreate.c, syscall_ctxmigrate-v13.hc, - syscall_ctxmigrate.c, syscall_getcflags-v13.hc, - syscall_getcflags.c, syscall_getflags-v13.hc[DEAD], - syscall_getflags.c[DEAD], syscall_migratecontext-v13.hc[DEAD], - syscall_migratecontext.c[DEAD], syscall_setcflags-v13.hc, - syscall_setcflags.c, syscall_setflags-v13.hc[DEAD], - syscall_setflags.c[DEAD]: + * util-vserver/distrib/fc1/apt/rpmpriorities, + util-vserver/distrib/fc2/apt/rpmpriorities, + util-vserver/distrib/fc3/apt/rpmpriorities, + util-vserver/distrib/rh9/apt/rpmpriorities: added *-release + packages - renamed files so that their names are corresponding the kernel - API. Especially, *_context was renamed to ctx_*, and *flags* to - *cflags*. +2005-04-28 17:45 Enrico Scholz -2004-04-13 10:28 Enrico Scholz + * util-vserver/contrib/manifest.dat.pathsubst, + util-vserver/scripts/Makefile-files: moved vserver-copy to legacy - * scripts/functions: +2005-04-28 17:44 Enrico Scholz - further locking fixes + * util-vserver/Makefile.am: added new kernel headers -2004-04-13 10:27 Enrico Scholz +2005-04-28 11:01 Enrico Scholz - * src/lockfile.c: + * util-vserver/kernel/context.h, util-vserver/kernel/context_cmd.h, + util-vserver/kernel/cvirt.h, util-vserver/kernel/cvirt_cmd.h, + util-vserver/kernel/cvirt_def.h, util-vserver/kernel/debug.h, + util-vserver/kernel/debug_cmd.h, util-vserver/kernel/dlimit.h, + util-vserver/kernel/dlimit_cmd.h, util-vserver/kernel/inode.h, + util-vserver/kernel/inode_cmd.h, util-vserver/kernel/legacy.h, + util-vserver/kernel/limit.h, util-vserver/kernel/limit_cmd.h, + util-vserver/kernel/limit_def.h, util-vserver/kernel/namespace.h, + util-vserver/kernel/network.h, util-vserver/kernel/network_cmd.h, + util-vserver/kernel/sched.h, util-vserver/kernel/sched_cmd.h, + util-vserver/kernel/sched_def.h, util-vserver/kernel/switch.h, + util-vserver/kernel/xid.h: updated to headers from + patch-2.6.11.7-vs2.0-pre2 - propagate errors +2005-04-24 20:31 Enrico Scholz -2004-04-13 10:20 Enrico Scholz + * util-vserver/src/vserver-stat.c: showContexts(): added 'const' + qualifier - * src/chroot-rm.c: +2005-04-24 20:30 Enrico Scholz - cleanups + * util-vserver/scripts/start-vservers, + util-vserver/scripts/vsomething: use the new getAllVservers() + functionality to specify special kinds of + vservers -2004-04-13 10:09 Enrico Scholz +2005-04-24 20:29 Enrico Scholz - * scripts/vshelper: + * util-vserver/scripts/functions: * isRegularFile(): allow to + override the '-f' classifier + * getAllVservers(): added several types of vservers (marked, + unmarked, + running...) + * getAllVserversByArg()" added - open FD 0 - evaluate CLI options depending on used kernel API +2005-04-24 20:28 Enrico Scholz -2004-04-13 10:08 Enrico Scholz + * util-vserver/m4/ensc_dietlibc_compat.m4: * + ENSC_DIETLIBC_NEED_COMPAT: use the 'syscall-wrap.h' header and + the + results from ENSC_SYSCALL_ALTERNATIVE - * scripts/functions: +2005-04-24 20:26 Enrico Scholz - use new locking mechanism + * util-vserver/m4/ensc_syscall.m4: * ENSC_SYSCALL_ALTERNATIVE: + added + * ENSC_SYSCALL: use the 'syscall-wrap.h' header and the results + from + ENSC_SYSCALL_ALTERNATIVE -2004-04-13 10:04 Enrico Scholz +2005-04-24 20:25 Enrico Scholz - * lib/: issupported.c, issupportedstring.c, vserver.h: + * util-vserver/lib/vserver-internal.h, + util-vserver/lib_internal/sys_clone.h: include "syscall-wrap.h" - added VSHELPER0 feature +2005-04-24 20:25 Enrico Scholz -2004-04-08 10:33 Enrico Scholz + * util-vserver/lib/ncaps-net.c, util-vserver/lib/nflags-net.c: + VALUES: added an empty field to make it compile with gcc4 - * scripts/vserver.functions: +2005-04-24 20:24 Enrico Scholz - execScriptlets(): fixed initialization of 'start' - execScriptlets(): declare some variables as readonly - _sourceWrap(): added some variables + * util-vserver/lib/bcaps_list-v13.c, + util-vserver/lib/ccaps_list-v13.c, + util-vserver/lib/cflags_list-v13.c, + util-vserver/lib/ncaps_list-net.c, + util-vserver/lib/nflags_list-net.c: made it compatible to the new + utilvserver_listparser_uint*() API and + added wrappers with a third 'bool *' arg -2004-04-08 08:06 Enrico Scholz +2005-04-24 20:23 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/lib/listparser.hc: * parser function has now to set + a 'bool *' arg to signal errors + * when 'mask' argument is null, the special modifiers like '~', + '!' or + 'any' are not allowed - implemented support for default-scriptlets (inspired by ideas of - Olivier Poitrey) +2005-04-24 20:21 Enrico Scholz -2004-04-08 08:05 Enrico Scholz + * util-vserver/lib/internal.h: utilvserver_listparser_uint*(): + added a third 'bool *' arg for the + parser function so that errors can be better propagated - * scripts/: rootshell, vapt-get-worker, vprocunhide, vrpm, - vrpm-worker, vserver-build, vshelper: +2005-04-24 20:17 Enrico Scholz - give more verbose error-messages + * util-vserver/lib/Makefile-files, + util-vserver/lib/syscall-alternative.h, + util-vserver/lib/syscall-wrap.h: added syscall-alternative.h and + syscall-wrap.h -2004-04-08 08:04 Enrico Scholz +2005-04-24 20:17 Enrico Scholz - * lib/syscall.c: + * util-vserver/update-doc: exclude some static files - added link-warning for vc_new_s_context() +2005-04-24 20:16 Enrico Scholz -2004-04-08 08:04 Enrico Scholz + * util-vserver/build-all: remove config.cache when CLEAN is set + disabled gcc33 build - * doc/configuration.xml: +2005-04-24 11:33 Enrico Scholz - added general description for the scripts and documented - $DONT_SKIP_DEFAULTS + * util-vserver/doc/configuration-xhtml.xsl, + util-vserver/doc/configuration.dtd, + util-vserver/doc/configuration.xml: added new markup + added new CSS from Nicolas Costes -2004-04-08 08:03 Enrico Scholz +2005-04-16 21:21 Enrico Scholz - * compat.h: + * util-vserver/configure.ac: cleanups + added '--disable-extra-optimizations' option - LINK_WARNING(): added +2005-04-16 21:20 Enrico Scholz -2004-04-07 01:12 Enrico Scholz + * util-vserver/scripts/vserver-build.functions, + util-vserver/scripts/vserver-build.functions.apt, + util-vserver/scripts/vserver-build.functions.rpm, + util-vserver/scripts/vserver-build.functions.yum, + util-vserver/scripts/vserver.functions: use the common + isRegularFile() method to filter out backup-files - * scripts/chcontext, scripts/pkgmgmt, scripts/start-vservers, - scripts/vapt-get, scripts/vpkg, scripts/vpstree, - scripts/vrpm-preload, scripts/vserver, scripts/vserver-copy, - scripts/vserver-wrapper, scripts/vservers.grabinfo.sh, - scripts/vsysvwrapper, scripts/vtop, scripts/legacy/distrib-info, - scripts/legacy/vserver, sysv/rebootmgr, sysv/vprocunhide, - sysv/vservers-legacy: +2005-04-16 21:19 Enrico Scholz - give more comprehensive error-message + * util-vserver/scripts/functions: isRegularFile(): added -2004-04-07 01:00 Enrico Scholz +2005-04-16 21:18 Enrico Scholz - * src/: vps.c, vserver-info.c, vserver-stat.c: + * util-vserver/util-vserver.spec.in: cleanups + added changelog entry for 0.30.206 - use switchToWatchXid() +2005-04-12 22:37 Enrico Scholz -2004-04-07 00:59 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.206 - * src/Makefile-files: +2005-04-12 21:54 Enrico Scholz - link some files against libinternal.a + * util-vserver/src/vserver-info.c: implemented VERIFYPROC method -2004-04-07 00:58 Enrico Scholz +2005-04-12 21:53 Enrico Scholz - * lib_internal/util.h: + * util-vserver/scripts/vserver.functions: added verify-proc sanity + check - switchToWatchXid(): added prototype +2005-04-12 21:52 Enrico Scholz -2004-04-07 00:58 Enrico Scholz + * util-vserver/scripts/functions: killContext(): commented out the + more correct + (but not working) kill-sequence - * lib_internal/switchtowatchxid.c: +2005-04-12 21:50 Enrico Scholz - initial checkin + * util-vserver/util-vserver.spec.in: ship the yum patches -2004-04-07 00:58 Enrico Scholz +2005-04-12 21:42 Enrico Scholz - * lib_internal/Makefile-files: + * util-vserver/Makefile.am: added '--no-wrap -S' to the + CVS2CL_AMFLAGS - added switchtowatchxid.c +2005-04-12 19:27 Enrico Scholz -2004-04-07 00:57 Enrico Scholz + * util-vserver/configure.ac: adjusted min-dietlibc requirements - * lib/vserver.h: +2005-04-12 19:23 Enrico Scholz - VC_ATTR_DEPRECATED: added + * util-vserver/m4/ensc_dietlibc.m4: ENSC_ENABLE_DIETLIBC(): allow + 'min_ver' to be a shell variable -2004-04-07 00:57 Enrico Scholz +2005-04-12 18:26 Enrico Scholz - * lib/syscall-compat.hc: + * util-vserver/scripts/functions: vshelper.isDebug(): fixed logic - vc_chrootsafe_compat(): removed +2005-04-10 12:27 Enrico Scholz -2004-04-06 10:47 Enrico Scholz + * util-vserver/src/rpm-fake.c: send the signals for endgrent() and + endpwent() - * src/vunify.c: +2005-04-10 12:26 Enrico Scholz - applied new MatchList_compare() interface + * util-vserver/contrib/Makefile-files, + util-vserver/contrib/yum-2.2.1-chroot.patch, + util-vserver/contrib/yum-2.3.2-chroot.patch: added patches for + yum -2004-04-06 10:46 Enrico Scholz +2005-04-10 12:26 Enrico Scholz - * src/vserver-stat.c: + * util-vserver/Makefile.am: include m4/libsel.am - started support for HZ!=100 - cleanups +2005-04-10 01:01 Enrico Scholz -2004-04-06 10:44 Enrico Scholz + * util-vserver/src/context-sync.hc: ignore errors during setsid(2) + execution (required for vs1.9.5.12+) - * src/vcopy.c: +2005-04-10 01:00 Enrico Scholz - implement support for SKIP files + * util-vserver/scripts/vshelper: * kill vserver processes + explicitly with 'killContext'; userspace + reboot helper may assume that 'reboot(2)' never returns... + * added 'async' method -2004-04-06 10:44 Enrico Scholz +2005-04-10 00:59 Enrico Scholz - * src/: rpm-fake-resolver.c, rpm-fake.c: + * util-vserver/scripts/vserver.stop: implicate '--sync' option; it + is not possible to stop asynchronously + send SIGINT to pid 1 instead of trying to determine initpid - do not call vc_new_s_context() when COMPAT API is not available +2005-04-10 00:57 Enrico Scholz -2004-04-06 10:43 Enrico Scholz + * util-vserver/scripts/vserver.functions: use 'killContext()' + instead of invoking 'vkill' manually + set an initial runlevel for 'minit' style also + set 'async' vshelper method for non-sync mode - * scripts/functions: +2005-04-10 00:55 Enrico Scholz - cleanups - vshelper.doInit(): added another sanity check + * util-vserver/scripts/vprocunhide: fixed missing quoting of '~'; + this may cause very slow booting when + NIS/LDAP servers are local vservers as bash tries to expand this + to a + homedir... -2004-04-06 10:42 Enrico Scholz +2005-04-10 00:54 Enrico Scholz - * lib_internal/: matchlist-appendfiles.c, matchlist-compare.c, - matchlist.h: + * util-vserver/scripts/functions: spawn(), killContext(): added - implemented support for SKIP (~) files +2005-04-10 00:53 Enrico Scholz -2004-04-06 10:42 Enrico Scholz + * util-vserver/m4/libsel.am: initial checkin - * lib/testsuite/flags.c: +2005-04-10 00:53 Enrico Scholz - added tests for new flags + * util-vserver/m4/ensc_dietlibc.m4: use a more modern version which + accepts 'DIET' and 'DIETFLAGS' as + global configure variables -2004-04-06 10:41 Enrico Scholz +2005-04-10 00:52 Enrico Scholz - * lib/vserver.h: + * util-vserver/m4/ensc_cxxcompiler.m4: fixed typo - updated VC_VXF_* constants - added VC_VXC_* constants +2005-04-10 00:52 Enrico Scholz -2004-04-06 10:41 Enrico Scholz + * util-vserver/configure.ac: defined ENSC_USE_DIETLIBC + + ENSC_USE_GLIBC - * lib/flags-v13.c: +2005-04-10 00:52 Enrico Scholz - added/updated flaglist + * util-vserver/Makefile.am: removed 'DIET' and 'DIETFLAGS' + variables; they are set by configure now -2004-04-06 10:41 Enrico Scholz +2005-04-08 19:18 Enrico Scholz - * lib/ccaps-v13.c: + * util-vserver/scripts/vyum-worker: added better test for patched + yum - added ccap names +2005-04-08 19:17 Enrico Scholz -2004-04-06 10:40 Enrico Scholz + * util-vserver/src/vserver-info.c: fixed typo - * ensc_wrappers/wrappers-vserver.hc: +2005-04-08 19:17 Enrico Scholz - cleanups + * util-vserver/scripts/vserver.suexec: fixed typo (reported by Paul + S. Gumerman) -2004-04-06 10:40 Enrico Scholz +2005-04-08 19:15 Enrico Scholz - * distrib/misc/vunify-exclude: + * util-vserver/scripts/vserver-build.functions.yum: substitute + @YUMLOCKDIR@ - exclude keyfiles completely - made some big files in /etc canditates for unify +2005-04-08 19:14 Enrico Scholz -2004-04-06 10:39 Enrico Scholz + * util-vserver/scripts/chcontext: fixed operation when context was + not specified - * kernel/: context.h, inode.h, legacy.h, limit.h, namespace.h, - sched.h, signal.h, xid.h: +2005-04-08 19:13 Enrico Scholz - updated to 2.6.5-vs1.9.0pre4 + * util-vserver/distrib/redhat/initpre: reverted the patch adding + '/usr/X11' + create '/sbin/new-kernel-pkg'; 'initpost' would be too late for + FC4 -2004-03-31 05:27 Enrico Scholz +2005-04-08 19:12 Enrico Scholz - * src/lockfile.c: + * util-vserver/distrib/redhat/initpost: use 'ln -sf' instead of 'ln + -s' - optimized some things - now check, if getppid()==original_parent instead of getppid()!=1 (might make a difference in vservers) +2005-04-08 19:12 Enrico Scholz -2004-03-31 05:26 Enrico Scholz + * util-vserver/distrib/fc3/yum/yum.conf: add 'lockfile' - * scripts/functions: +2005-04-08 19:12 Enrico Scholz - added some doc - s!_UV_LOCKS!_VS_LOCKS! + * util-vserver/distrib/Makefile.am: added 'fc3' to 'redhat_style' -2004-03-31 02:15 Enrico Scholz +2005-04-08 19:11 Enrico Scholz - * src/lockfile.c: + * util-vserver/Makefile.am: use DIETFLAGS instead of DIET_FLAGS - fixed '--help' output +2005-03-29 02:10 Enrico Scholz -2004-03-31 02:10 Enrico Scholz + * util-vserver/ensc_vector/Makefile-files: use $(LIBENSCVECTOR) + instead of libensc_vector.a - * contrib/manifest.dat.pathsubst, src/.cvsignore: +2005-03-25 21:19 Enrico Scholz - added lockfile + * util-vserver/scripts/vserver.stop: fixed typo -2004-03-31 02:05 Enrico Scholz +2005-03-25 17:11 Enrico Scholz - * src/lockfile.c: + * util-vserver/scripts/vserver.functions: minor cleanups: call + vkill with '--xid' instead of '-c' - initial checkin +2005-03-25 16:56 Enrico Scholz -2004-03-31 02:04 Enrico Scholz + * util-vserver/scripts/vserver.stop: address both the context and + the pid when sending SIGINT to init - * src/Makefile-files: +2005-03-25 02:38 Enrico Scholz - added lockfile + * util-vserver/lib_internal/testsuite/copy-check: do not use '-s' + with 'cmp' but display verbose error reason -2004-03-31 02:04 Enrico Scholz +2005-03-25 02:37 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/lib_internal/switchtowatchxid.c: simplified it and + made it work with recent kernels - enableInterfaces(), disableInterfaces(): added locking - enableInterfaces(), disableInterfaces(): added IP_ADDR_FLUSH type +2005-03-25 02:37 Enrico Scholz -2004-03-31 02:03 Enrico Scholz + * util-vserver/doc/configuration-xhtml.xsl: use 'alternate + stylesheet' instead of 'stylesheet' (reported by Herbert + Poetzl) - * scripts/util-vserver-vars.pathsubst: +2005-03-25 02:35 Enrico Scholz - $_LOCKFILE, $LOCKDIR: added + * util-vserver/util-vserver.spec.in: fixed quoting of % in + %description -2004-03-31 02:03 Enrico Scholz +2005-03-24 14:08 Enrico Scholz - * scripts/functions: + * util-vserver/Makefile.am, util-vserver/REQUIREMENTS: added + REQUIREMENTS - lock(),unlock(): added - isNumber(): added doc +2005-03-24 13:53 Enrico Scholz -2004-03-30 22:26 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac, + util-vserver/util-vserver.spec.in: version 0.30.205 - * scripts/vserver.functions: +2005-03-24 13:50 Enrico Scholz - made it work... + * util-vserver/util-vserver.spec.in: added some %descriptions -2004-03-30 22:25 Enrico Scholz +2005-03-24 12:46 Enrico Scholz - * scripts/functions: + * util-vserver/src/vhashify.c: s!write()!Vwrite()! at some places + add 'volatile' qualifier at variables used around 'setjmp' + use sigsetjmp() instead of setjmp() + minor code cleanups - isNumber(): fixed '0' case +2005-03-24 12:45 Enrico Scholz -2004-03-30 21:07 Enrico Scholz + * util-vserver/src/secure-mount.c: s!write()!Vwrite()! at some + places + use Echdir() instead of chdir() - * scripts/vserver.functions: +2005-03-24 12:44 Enrico Scholz - implemented parts of Liam Helmer's dummy-interface method + * util-vserver/src/filetime.c, util-vserver/src/lsxid.c, + util-vserver/src/readlink.c, util-vserver/src/reducecap.c, + util-vserver/src/showattr.c, util-vserver/src/vattribute.c, + util-vserver/src/vcontext.c, util-vserver/src/vcopy.c, + util-vserver/src/vdlimit.c, util-vserver/src/vlimit.c, + util-vserver/src/vps.c, util-vserver/src/vserver-stat.c, + util-vserver/src/vuname.c, util-vserver/src/vunify.c, + util-vserver/vserver-start/interface-read.c: s!write()!Vwrite()! + at some places -2004-03-30 21:00 Enrico Scholz +2005-03-24 12:42 Enrico Scholz - * scripts/functions: + * util-vserver/lib_internal/testsuite/sigbus.c: use Etruncate() + instead of truncate() - isNumber(): added +2005-03-24 12:42 Enrico Scholz -2004-03-30 20:59 Enrico Scholz + * util-vserver/lib_internal/testsuite/copy-check: added new tests + and better diagnostic - * Makefile.am, configure.ac, scripts/util-vserver-vars.pathsubst: +2005-03-24 12:42 Enrico Scholz - added substitutions/tests for iptables, modprobe, rmmod and nameif - (required for Liam Helmer's dummy-interfaces) + * util-vserver/lib_internal/unify-copy.c: moved 'volatile' + qualifiers to a better place + minor code cleanups -2004-03-30 19:20 Enrico Scholz +2005-03-24 12:41 Enrico Scholz - * src/vshelper-sync.c: + * util-vserver/ensc_wrappers/wrappers-unistd.hc: E*truncate(): + added - implemented it with select() instead of alarm(); races are much nicer to handle +2005-03-24 12:41 Enrico Scholz -2004-03-30 18:10 Enrico Scholz + * util-vserver/ensc_vector/testsuite/test2.c: #undef NDEBUG - * src/vshelper-sync.c: +2005-03-24 01:12 Enrico Scholz - use sigaction() instead of signal() to remove SA_RESTART flag explicitly + * util-vserver/lib_internal/testsuite/sigbus.c: unlink temporary + files on exit -2004-03-30 18:04 Enrico Scholz +2005-03-24 00:12 Enrico Scholz - * src/pipe-sync.c[DEAD]: + * util-vserver/lib_internal/unify-unify.c: Unify_unify(): block + signals while executing the non-atomic operations - obsoleted by vshelper-sync +2005-03-24 00:12 Enrico Scholz -2004-03-30 17:50 Enrico Scholz + * util-vserver/src/vhashify.c: optimized directory creation - * kernel/: context.h, cvirt.h, limit.h, network.h, sched.h, - switch.h: +2005-03-24 00:11 Enrico Scholz - updated from vs0.09.28 + * util-vserver/lib_internal/unify-copy.c: prepared for sigbus + testcase + added some 'volatile' modifiers + use siglongjmp() instead of longjmp() -2004-03-30 17:49 Enrico Scholz +2005-03-24 00:09 Enrico Scholz - * contrib/manifest.dat.pathsubst, src/Makefile-files: + * util-vserver/lib_internal/matchvserverinfo-init.c: minor code + cleanups - removed pipe-sync +2005-03-24 00:09 Enrico Scholz -2004-03-27 05:58 Enrico Scholz + * util-vserver/lib_internal/testsuite, + util-vserver/lib_internal/testsuite/.cvsignore, + util-vserver/lib_internal/testsuite/Makefile-files, + util-vserver/lib_internal/testsuite/sigbus.c: added sigbus + testcase - * NEWS, configure.ac: +2005-03-23 02:17 Enrico Scholz - version 0.29.207 + * util-vserver/ensc_vector/testsuite, + util-vserver/ensc_vector/testsuite/.cvsignore: updated -2004-03-26 10:50 Enrico Scholz +2005-03-23 02:10 Enrico Scholz - * scripts/vshelper: + * util-vserver/src/vhashify-init.hc, util-vserver/src/vhashify.c: + added lots of new code... - use 'findObject -e' instead of 'findFile' to find /dev/null also +2005-03-23 02:08 Enrico Scholz -2004-03-26 10:50 Enrico Scholz + * util-vserver/src/rpm-fake.c: is_selinux_enabled(): added - * scripts/vserver.start: +2005-03-23 02:08 Enrico Scholz - fixed call of vshelper.isEnabled + * util-vserver/scripts/vserver-build.apt-rpm, + util-vserver/scripts/vserver-build.rpm, + util-vserver/scripts/vserver-build.yum: execute '--initdb' before + importing pubkeys + import pubkeys from /etc/vservers/.distributions/.common/pubkeys + also -2004-03-26 10:49 Enrico Scholz +2005-03-23 02:05 Enrico Scholz - * doc/configuration.xml: + * util-vserver/scripts/vserver: added 'hashify' target - fixed some typos +2005-03-23 02:05 Enrico Scholz -2004-03-26 10:05 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added + $_VHASHIFY - * doc/configuration.xml: +2005-03-23 02:05 Enrico Scholz - documented apps/vshelper/logfile symlink + * util-vserver/lib_internal/matchlist-initrefserverlist.c: fixed + initialization of 'vserver' -2004-03-26 10:03 Enrico Scholz +2005-03-23 02:04 Enrico Scholz - * scripts/vshelper: + * util-vserver/distrib/Makefile.am: create + /etc/.../.distributions/.common/pubkeys/ + create /etc/.../.defaults/apps/vunify/hash - ignore 'restart2' event; this seems to be issued at vserver *start* - added support for a logfile - enable logfile-logging when invoked from kernel (no tty) +2005-03-23 02:04 Enrico Scholz -2004-03-26 09:29 Enrico Scholz + * util-vserver/util-vserver.spec.in: copy GPG keys from the system + into the confdir + buildrequire dietlibc-0.25 - * scripts/util-vserver-vars.pathsubst: +2005-03-23 02:03 Enrico Scholz - fixed order of variables - fixed _VSHELPER path + * util-vserver/build-all: build with debug settings -2004-03-26 09:28 Enrico Scholz +2005-03-22 15:27 Enrico Scholz - * contrib/manifest.dat.pathsubst: + * util-vserver/src/rpm-fake.c: honor return codes of read(2) and + write(2) when communication with the rpm-fake-helper + call read(2) and write(2) through TEMP_FAILURE_RETRY() + use Vwrite() instead of write(2) at some places - fixed vshelper path - added vshelper-sync +2005-03-22 15:25 Enrico Scholz -2004-03-26 09:27 Enrico Scholz + * util-vserver/lib_internal/command-exec.c: call write(2) through + TEMP_FAILURE_RETRY() - * util-vserver.spec.in: +2005-03-22 15:25 Enrico Scholz - added some Requires: - own %dir /var/run/vshelper + * util-vserver/util-vserver.spec.in: BuildRequire beecrypt-devel -2004-03-26 09:27 Enrico Scholz +2005-03-22 15:05 Enrico Scholz - * Makefile.am: + * util-vserver/src/chcontext.c, util-vserver/src/vhashify.c: + workaround warning messages regarding 'warn_unused_return_value' + when + using _FORTIFY_SOURCE. - added substition for @VSHELPERSTATEDIR@ - minor cosmetical cleanups +2005-03-22 14:59 Enrico Scholz -2004-03-26 08:45 Enrico Scholz + * util-vserver/lib/getvservervdir.c, + util-vserver/lib_internal/coreassert.h, + util-vserver/lib_internal/matchlist-initmanually.c, + util-vserver/lib_internal/matchlist-printid.c, + util-vserver/lib_internal/util-exitlikeprocess.c, + util-vserver/lib_internal/util-io.h: workaround warning messages + regarding 'warn_unused_return_value' when + using _FORTIFY_SOURCE. - * src/.cvsignore: +2005-03-22 14:57 Enrico Scholz - added vshelper-sync + * util-vserver/contrib/manifest.dat.pathsubst: added vhashify + + vdlimit -2004-03-26 08:40 Enrico Scholz +2005-03-22 14:57 Enrico Scholz - * src/vshelper-sync.c: + * util-vserver/util-vserver.spec.in: cleanups + use %global instead of %define - initial checkin +2005-03-22 14:48 Enrico Scholz -2004-03-26 08:40 Enrico Scholz + * util-vserver/build-all: set _FORTIFY_SOURCE - * src/vserver-info.c: +2005-03-19 03:59 Enrico Scholz - - added tgID and tgPXID support - - accept 'true' as boolean value - - optimized the code a little bit so that the xid will be looked up - only when really needed + * util-vserver, util-vserver/.cvsignore: updated -2004-03-26 08:38 Enrico Scholz +2005-03-19 03:58 Enrico Scholz - * src/vps.c: + * util-vserver, util-vserver/.cvsignore: updated - in output, added a ' ' on overlong vserver-names +2005-03-19 02:35 Enrico Scholz -2004-03-26 08:38 Enrico Scholz + * util-vserver/update-doc: initial checkin - * src/secure-mount.c: +2005-03-19 02:33 Enrico Scholz - rewrote some parts to cope better with '-o' options (required for -bme - patches to work) + * util-vserver/scripts/chcontext: do not use '--create' for dynamic + contexts -2004-03-26 08:37 Enrico Scholz +2005-03-19 02:21 Enrico Scholz - * src/Makefile-files: + * util-vserver/distrib/apps: removed... - added vshelper-sync +2005-03-19 02:20 Enrico Scholz -2004-03-26 08:36 Enrico Scholz + * util-vserver/distrib/apps, util-vserver/distrib/apps/vshelper, + util-vserver/distrib/apps/vshelper/action: added to be removed... - * scripts/vshelper: +2005-03-19 02:16 Enrico Scholz - initial checkin + * util-vserver/distrib/redhat/initsignal, + util-vserver/src/testsuite/data/vserver1, + util-vserver/src/testsuite/data/vserver2, + util-vserver/src/testsuite/vuname, util-vserver/sysv/vkillall, + util-vserver/tests/attack.spec, util-vserver/tests/ulimit: + obsoleted -2004-03-26 08:36 Enrico Scholz +2005-03-19 02:16 Enrico Scholz - * scripts/vserver.stop: + * util-vserver/src/testsuite/data/vserver1, + util-vserver/src/testsuite/data/vserver1/apps, + util-vserver/src/testsuite/data/vserver1/apps/pkgmgmt, + util-vserver/src/testsuite/data/vserver1/apps/pkgmgmt/style, + util-vserver/src/testsuite/data/vserver1/apps/vunify, + util-vserver/src/testsuite/data/vserver1/apps/vunify/exclude, + util-vserver/src/testsuite/data/vserver2, + util-vserver/src/testsuite/data/vserver2/apps, + util-vserver/src/testsuite/data/vserver2/apps/vunify, + util-vserver/src/testsuite/data/vserver2/apps/vunify/exclude, + util-vserver/src/testsuite/vuname, + util-vserver/src/testsuite/vuname/nodename, + util-vserver/sysv/vkillall, util-vserver/tests/attack.spec, + util-vserver/tests/ulimit, util-vserver/tests/ulimit/cpu: added + to be removed... - added VSHELPER & synchronization code +2005-03-19 02:12 Enrico Scholz -2004-03-26 08:36 Enrico Scholz + * util-vserver/distrib/redhat/initsignal: added to be removed + soon... - * scripts/vserver.start: +2005-03-19 02:11 Enrico Scholz - added documentation about failure reasons - added VSHELPER code + * util-vserver/src/vnet.c: obsoleted... -2004-03-26 08:35 Enrico Scholz +2005-03-19 02:10 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/doc/vunify-verbosity.txt, + util-vserver/lib/apidoc/list2xxx.descr, util-vserver/scripts/X, + util-vserver/src/vnet.c: initial checkin - adapted code to new getFileArray() behavior - added VSHELPER support - added "LEGACY ALERT" messages - initSync(),waitForSync(): added +2005-03-19 02:07 Enrico Scholz -2004-03-26 08:33 Enrico Scholz + * util-vserver/vserver-start/interface-add.c, + util-vserver/vserver-start/interface-print.c, + util-vserver/vserver-start/interface-remove.c, + util-vserver/vserver-start/main.c: avoid warnings regarding + unused params - * scripts/vserver-setup.functions: +2005-03-19 02:07 Enrico Scholz - added a "LEGACY ALERT" + * util-vserver/src/Makefile-files: moved vdlimit into the only-C99 + section + build vhashify only with C99 and beecrypt + cleanups -2004-03-26 08:33 Enrico Scholz +2005-03-19 02:06 Enrico Scholz - * scripts/vserver-build: + * util-vserver/lib_internal/testsuite/copy-check: cleanups + conditionalize expensive tests - fixed code to work with new behavior of getFileArray +2005-03-19 02:05 Enrico Scholz -2004-03-26 08:32 Enrico Scholz + * util-vserver/lib/Makefile-files, + util-vserver/lib_internal/Makefile-files: moved *dlimit* files + into the only-C99 section + clean all potentially built libraries - * scripts/util-vserver-vars.pathsubst: +2005-03-19 02:03 Enrico Scholz - added some missing variables - added the vshelper variables + * util-vserver/ensc_vector/list-free.c: some minor C89 + compatibility changes -2004-03-26 08:31 Enrico Scholz +2005-03-19 02:03 Enrico Scholz - * scripts/pkgmgmt: + * util-vserver/ensc_vector/Makefile-files: use + 'lib-dietlibc-not-enabled-error.a' consistently + clean all libraries inclusive those which might not be built - use pkgmgmt.isAptAvailable() +2005-03-19 02:01 Enrico Scholz -2004-03-26 08:30 Enrico Scholz + * util-vserver/doc/configuration.dtd: readded - * scripts/functions: +2005-03-19 02:01 Enrico Scholz - logging(),warning(),panic(),execute(): added - pkgmgmt.isAptAvailable(): added - vshelper.*(): added - getFileArray(): fail, when file does not exist + * util-vserver/doc/configuration.xml: documented the 'vhashify' + configuration + moved '' tags before '' -2004-03-26 08:29 Enrico Scholz +2005-03-19 02:00 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/doc/configuration-xhtml.xsl: applied changes + regarding the new www-location on savannah - added vshelper +2005-03-19 01:59 Enrico Scholz -2004-03-26 08:28 Enrico Scholz + * util-vserver/doc/Makefile-files: (re)added xsltproc support - * lib/vserver.h: +2005-03-19 01:57 Enrico Scholz - - minor cleanups - - added vcFEATURE_VSHELPER - - vc_isSupported(): annotated it - - vc_get_insecurecaps(): moved it into an own file; CAP_SYS_BOOT - requires a special handling so inlining is not really usefully - anymore + * util-vserver/configure.ac: added tests for XSLTPROC + added '--disable-expensive-tests' + added beecrypt tests + cosmetical cleanups + enhancements -2004-03-26 08:26 Enrico Scholz +2005-03-19 01:56 Enrico Scholz - * lib/: issupported.c, issupportedstring.c: + * util-vserver/Makefile.am: set some values in TESTS_ENVIRONMENT + added some hacks for lib-dietlibc-not-enabled-error.a - added VSHELPER +2005-03-18 03:56 Enrico Scholz -2004-03-26 08:26 Enrico Scholz + * util-vserver/lib_internal/testsuite, + util-vserver/lib_internal/testsuite/.cvsignore: updated - * lib/Makefile-files: +2005-03-18 03:56 Enrico Scholz - added getinsecurecaps.c + * util-vserver/lib_internal/unify.h, util-vserver/src/vunify.h: + include instead of defining a 'struct stat'; this + prevents + problems with the 64bit interface of the filesystem functions -2004-03-26 08:26 Enrico Scholz +2005-03-18 03:54 Enrico Scholz - * lib/getinsecurecaps.c: + * util-vserver/lib_internal/unify-copy.c: use a sparse-file + friendly method for copying files - initial checkin +2005-03-18 03:33 Enrico Scholz -2004-03-26 08:25 Enrico Scholz + * util-vserver/lib_internal/testsuite/Makefile-files, + util-vserver/lib_internal/testsuite/copy-check, + util-vserver/lib_internal/testsuite/copy.c: added testcases for + Unify_copy() - * doc/configuration.xml: +2005-03-18 00:33 Enrico Scholz - documented the vshelper stuff + * util-vserver/vserver-start/Makefile-files: use $(LIBENSCVECTOR) + instead of libensc_vector.a -2004-03-26 08:25 Enrico Scholz +2005-03-18 00:25 Enrico Scholz - * doc/configuration.dtd: + * util-vserver/src/vhashify-init.hc, util-vserver/src/vhashify.c, + util-vserver/src/vhashify.h: made it work... - added a type for 'script' +2005-03-18 00:24 Enrico Scholz -2004-03-26 08:24 Enrico Scholz + * util-vserver/src/vcopy-init.hc, util-vserver/src/vunify-init.hc: + applied changes in the MatchList-API - * distrib/Makefile.am: +2005-03-18 00:23 Enrico Scholz - cleanups in the directory creation rules + * util-vserver/src/Makefile-files: use $(LIBENSCVECTOR) instead of + libensc_vector.a + use $(LIBVSERVER_GLIBC) instead of lib/libvserver.la -2004-03-26 08:24 Enrico Scholz +2005-03-18 00:23 Enrico Scholz - * contrib/manifest.dat.pathsubst: + * util-vserver/scripts/vpkg: exit with returncode of '2' when + pkgmgmt can not be determined - added vshelper +2005-03-18 00:22 Enrico Scholz -2004-03-26 08:23 Enrico Scholz + * util-vserver/lib_internal/testsuite/Makefile-files: use + $(LIBENSCVECTOR) instead of libensc_vector.a - * util-vserver.spec.in: +2005-03-18 00:22 Enrico Scholz - use 'install-distribution' instead of 'install-vserverdir' - added vshelper stuff + * util-vserver/lib_internal/unify-isiunlinkable.c, + util-vserver/lib_internal/unify.h: Unify_isIUnlinkable(): changed + return-type -2004-03-26 08:23 Enrico Scholz +2005-03-18 00:21 Enrico Scholz - * Makefile.am: + * util-vserver/lib_internal/unify-copy.c: implemented copyReg() + with mmap(2) instead of read(2)+write(2) sequences - cleanups and enhancements in the directory installation rules +2005-03-18 00:20 Enrico Scholz -2004-03-24 06:51 Enrico Scholz + * util-vserver/lib_internal/string.hc: String_free(): added - * NEWS: +2005-03-18 00:20 Enrico Scholz - version 0.29.205 + * util-vserver/lib_internal/string.h: renamed String_destroy() to + String_free() -2004-03-24 06:51 Enrico Scholz +2005-03-18 00:20 Enrico Scholz - * src/Makefile-files: + * util-vserver/lib_internal/string-destroy.c: obsoleted; + String_free() is now inlined - fixed LDADD flags for capchroot +2005-03-18 00:20 Enrico Scholz -2004-03-24 06:30 Enrico Scholz + * util-vserver/lib_internal/matchlist-initbyvserver.c, + util-vserver/lib_internal/matchlist-initmanually.c, + util-vserver/lib_internal/matchlist-initrefserverlist.c, + util-vserver/lib_internal/matchlist.h: applied lot of API changes - * src/vsched.c: +2005-03-18 00:18 Enrico Scholz - enhanced the in-chain operation; make it a noop when called without opts - enhanced error messages + * util-vserver/lib_internal/matchlist-destroy.c: use String_free() + instead of String_destroy() -2004-03-24 06:23 Enrico Scholz +2005-03-18 00:18 Enrico Scholz - * scripts/: util-vserver-vars.pathsubst, vserver.functions, - vserver.start: + * util-vserver/lib_internal/Makefile-files: added + matchvserverinfo-* + removed string-destroy.c - added scheduler support +2005-03-18 00:17 Enrico Scholz -2004-03-24 06:23 Enrico Scholz + * util-vserver/lib_internal/matchvserverinfo-free.c, + util-vserver/lib_internal/matchvserverinfo-init.c: initial + checkin - * doc/configuration.xml: +2005-03-18 00:15 Enrico Scholz - added basic documentation for bcapabilities, ccapabilities and schedule + * util-vserver/ensc_vector/Makefile-files, + util-vserver/lib/Makefile-files: split into a -glibc and a -diet + part -2004-03-24 05:56 Enrico Scholz +2005-03-18 00:13 Enrico Scholz - * lib/vserver.h, src/chcontext.c, src/reducecap.c, src/rpm-fake.c, - src/vattribute.c, src/vps.c: + * util-vserver/ensc_vector/testsuite/Makefile-files, + util-vserver/lib/testsuite/Makefile-files: use $(LIBENSCVECTOR) + instead of libensc_vector.a - renamed vc_get_securecaps() to vc_get_insecurecaps() +2005-03-18 00:12 Enrico Scholz -2004-03-24 05:47 Enrico Scholz + * util-vserver/configure.ac: HACK: set 'enable_static=no' for + dietlibc case and postpone AC_PROG_LIBTOOL execution - * scripts/vserver.start: +2005-03-18 00:11 Enrico Scholz - added missing '\' + * util-vserver/Makefile.am: use $(LIBVSERVER) instead of + lib/libvserver.la + use $(LIBENSCVECTOR_DIET) instead of $(ENSC_VECTOR_LIBS) -2004-03-24 05:46 Enrico Scholz +2005-03-17 14:59 Enrico Scholz - * src/: vattribute.c, vcontext.c, vlimit.c, vnamespace.c, - vserver-info.c, vuname.c: + * util-vserver/build-all, util-vserver/src, + util-vserver/src/.cvsignore: updated - use vc_xidopt2xid() +2005-03-17 14:58 Enrico Scholz -2004-03-24 05:44 Enrico Scholz + * util-vserver/src/vunify.c: use new Unify_unify() API + rearranged some code; I do not try to be C89 compliant in C99 + progams anymore... - * src/: chcontext.c, vkill.c, vsched.c: +2005-03-17 14:58 Enrico Scholz - prefer '--xid' instead of '--ctx' - use vc_xidopt2xid() + * util-vserver/src/vcopy.c: use new Unify_unify() API -2004-03-24 05:43 Enrico Scholz +2005-03-17 14:57 Enrico Scholz - * scripts/vserver.start: + * util-vserver/src/vhashify-init.hc, util-vserver/src/vhashify.c, + util-vserver/src/vhashify.h: initial checkin - added support for $VSERVER_EXTRA_CMDS[] which can be set in userscripts +2005-03-17 14:56 Enrico Scholz -2004-03-24 05:43 Enrico Scholz + * util-vserver/src/Makefile-files: use $(LIBINTERNAL) instead of + lib_internal/libinternal.a + added vhashify* - * scripts/vserver-build.debootstrap: +2005-03-17 14:54 Enrico Scholz - call 'wget' with '-nv' instead of '-q' + * util-vserver/lib_internal/testsuite/Makefile-files, + util-vserver/src/testsuite/Makefile-files, + util-vserver/vserver-start/Makefile-files: use $(LIBINTERNAL) + instead of lib_internal/libinternal.a -2004-03-24 05:42 Enrico Scholz +2005-03-17 14:53 Enrico Scholz - * lib/vserver.h: + * util-vserver/lib_internal/unify.h: * added an 'ignore_zero' + argument to Unify_unify() + * Unify_isIUnlinkable(): added - vc_xidopt2xid(): added prototype +2005-03-17 14:52 Enrico Scholz -2004-03-24 05:42 Enrico Scholz + * util-vserver/lib_internal/unify-unify.c: added an 'ignore_zero' + argument to Unify_unify() - * lib/Makefile-files: +2005-03-17 14:51 Enrico Scholz - added xidopt2xid.c + * util-vserver/ensc_vector/list-add.c, + util-vserver/ensc_vector/list-at.c, + util-vserver/ensc_vector/list-free.c, + util-vserver/ensc_vector/list-init.c, + util-vserver/ensc_vector/list-insertinternal.c, + util-vserver/ensc_vector/list-internal.h, + util-vserver/ensc_vector/list-search.c, + util-vserver/ensc_vector/list-searchselforg.c, + util-vserver/ensc_vector/list.h, + util-vserver/ensc_vector/list.hc, + util-vserver/ensc_vector/testsuite/test2.c, + util-vserver/ensc_vector/vector-searchselforg.c, + util-vserver/lib_internal/unify-isiunlinkable.c: initial checkin -2004-03-24 05:41 Enrico Scholz +2005-03-17 14:51 Enrico Scholz - * lib/xidopt2xid.c: + * util-vserver/lib_internal/Makefile-files: * create both + libinternal-diet.a and libinternal-glibc.a. This is + needed to avoid segfaults with gcc4 when linking against glibc + based + libraries like 'beecrypt'. Perhaps, these segfaults are a problem + with gcc4 as they do not happen with gcc33... + + * added unify-isiunlinkable.c - initial checkin +2005-03-17 14:49 Enrico Scholz -2004-03-24 05:41 Enrico Scholz + * util-vserver/ensc_vector/testsuite/test1.c: added tests for + Vector_searchSelfOrg() - * ensc_wrappers/wrappers-vserver.hc: +2005-03-17 14:48 Enrico Scholz - Evc_xidopt2xid(): added + * util-vserver/ensc_vector/testsuite/Makefile-files: added test2 -2004-03-24 05:41 Enrico Scholz +2005-03-17 14:47 Enrico Scholz - * distrib/misc/debootstrap.uri: + * util-vserver/ensc_vector/vector.h, + util-vserver/ensc_vector/vector.hc: Vector_searchSelfOrg*(): + added - updated to recent version +2005-03-17 14:47 Enrico Scholz -2004-03-24 05:40 Enrico Scholz + * util-vserver/ensc_vector/Makefile-files: added list-* files + added vector-searchselforg.c - * util-vserver.spec.in: +2005-03-17 14:46 Enrico Scholz - fixed Requires() - fixed some %dir's + * util-vserver/ensc_fmt/fmt.h, util-vserver/ensc_fmt/fmtx-32.c: + fixed declaration of the *_x*int() methods; they do not take a + 'base' argument -2004-03-24 02:48 Enrico Scholz +2005-03-09 14:53 Enrico Scholz - * src/vlimit.c: + * util-vserver/src/vserver-info.c: added XIDTYPE support - cleaned up CLI: '--xid' is supported now, removed '-h' and '-v' options - minor cleanups +2005-03-09 14:43 Enrico Scholz -2004-03-24 02:45 Enrico Scholz + * util-vserver/src/context-sync.hc: use EopenD() instead of Eopen() - * sysv/vservers-legacy: +2005-03-09 14:42 Enrico Scholz - initial checkin + * util-vserver/m4/ensc_initrddir.m4: fixed typo -2004-03-24 02:44 Enrico Scholz +2005-03-09 14:39 Enrico Scholz - * sysv/: rebootmgr, rebootmgr.subst[DEAD]: + * util-vserver/lib/vserver.h: vc_getXIDType(): added - 'rebootmgr' is now a src-script +2005-03-09 14:39 Enrico Scholz -2004-03-24 02:44 Enrico Scholz + * util-vserver/lib/vserver-internal.h: added some magic to avoid + warnings with gcc4 - * sysv/Makefile-files: +2005-03-09 14:38 Enrico Scholz - 'rebootmgr' is now a src-script - added vservers-legacy + * util-vserver/lib/Makefile-files, util-vserver/lib/getxidtype.c: + added getxidtype.c -2004-03-24 02:43 Enrico Scholz +2005-03-09 14:37 Enrico Scholz - * src/vattribute.c: + * util-vserver/distrib/redhat/initpre: create /usr/X11 also - initialize 'bmask' member of struct vc_ctx_caps - use negative logic of --bcap (this should be the 'old' behavior of '--cap') +2005-03-09 14:37 Enrico Scholz -2004-03-24 02:42 Enrico Scholz + * util-vserver/distrib/Makefile.am, util-vserver/distrib/fc3/apt, + util-vserver/distrib/fc3/apt/rpmpriorities, + util-vserver/distrib/fc3/apt/sources.list: added apt support for + FC3 - * src/rpm-fake.c: +2005-03-02 01:29 Enrico Scholz - initialize 'bmask' member of struct vc_ctx_caps + * util-vserver/lib/syscall_adddlimit-v13.hc, + util-vserver/lib/syscall_adddlimit.c, + util-vserver/lib/syscall_getdlimit-v13.hc, + util-vserver/lib/syscall_getdlimit.c, + util-vserver/lib/syscall_remdlimit-v13.hc, + util-vserver/lib/syscall_remdlimit.c, + util-vserver/lib/syscall_setdlimit-v13.hc, + util-vserver/lib/syscall_setdlimit.c: use CALL_VC_V13B instead of + CALL_VC_V13 -2004-03-24 02:41 Enrico Scholz +2005-03-02 01:24 Enrico Scholz - * src/: capchroot.c, filetime.c, readlink.c: + * util-vserver/scripts/vyum: allow '--all' param - rewrote it +2005-03-02 01:24 Enrico Scholz -2004-03-24 02:41 Enrico Scholz + * util-vserver/lib/testsuite/cflags.c: avoid some compiler warnings - * src/Makefile-files: +2005-03-02 01:23 Enrico Scholz - cleanups; moved some programs into $legacydir + * util-vserver/lib/vserver.h: added some VC_ATTR_NONNULL() + statements -2004-03-24 02:40 Enrico Scholz +2005-03-02 01:23 Enrico Scholz - * scripts/util-vserver-vars.pathsubst: + * util-vserver/lib/syscall_adddlimit-v13.hc, + util-vserver/lib/syscall_remdlimit-v13.hc, + util-vserver/lib/vserver-internal.h: minor cleanups - added more legacy programs +2005-03-02 00:54 Enrico Scholz -2004-03-24 02:32 Enrico Scholz + * util-vserver/src/secure-mount.c: do not assume 'nodev' on + 'devpts' - * scripts/legacy/vserver: +2005-03-02 00:54 Enrico Scholz - use $_XXXX variables instead of static commandnames - use variables for paths + * util-vserver/lib/vserver-internal.h: + CDLIM_USER2KERNEL/CDLIM_KERNEL2USER(): added -2004-03-24 02:21 Enrico Scholz +2005-03-02 00:52 Enrico Scholz - * scripts/legacy/distrib-info: + * util-vserver/lib/Makefile-files, + util-vserver/lib/syscall_adddlimit-v13.hc, + util-vserver/lib/syscall_adddlimit.c, + util-vserver/lib/syscall_getdlimit-v13.hc, + util-vserver/lib/syscall_getdlimit.c, + util-vserver/lib/syscall_remdlimit-v13.hc, + util-vserver/lib/syscall_remdlimit.c, + util-vserver/lib/syscall_setdlimit-v13.hc, + util-vserver/lib/syscall_setdlimit.c, util-vserver/lib/virtual.h, + util-vserver/lib/vserver.h, util-vserver/src/Makefile-files, + util-vserver/src/vdlimit.c: added *vdlimit functions + tools + (patch provided by Daniel Hokka Zakrisson) - moved parserpmdump to legacy +2005-02-25 23:32 Enrico Scholz -2004-03-24 02:15 Enrico Scholz + * util-vserver/scripts/vserver-setup.functions: added some sanity + checks - * scripts/util-vserver-vars.pathsubst: +2005-02-25 23:31 Enrico Scholz - added $_REBOOTMGR + * util-vserver/ensc_wrappers/Makefile-files, + util-vserver/ensc_wrappers/wrappers-string.hc, + util-vserver/ensc_wrappers/wrappers.h: added wrapper around + string functions -2004-03-24 02:15 Enrico Scholz +2005-02-25 23:30 Enrico Scholz - * m4/ensc_dietlibc.m4: + * util-vserver/src/secure-mount.c: /me should learn to differ + between script-languages and C... strings in C are still marked + by >"< but not by >'<... + fixed allocation of the newly generated option string - fixed copy&paste error +2005-02-25 21:51 Enrico Scholz -2004-03-24 02:12 Enrico Scholz + * util-vserver/scripts/vapt-get-worker, + util-vserver/scripts/vyum-worker: deprecate usage of $_YUM and + $_APT_GET - * ensc_vector/.cvsignore, lib_internal/.cvsignore, ChangeLog.sed, - cvsusers.map: +2005-02-25 21:37 Enrico Scholz - initial checkin + * util-vserver/distrib/redhat/initpost, + util-vserver/scripts/functions, + util-vserver/scripts/legacy/distrib-info, + util-vserver/scripts/legacy/rootshell, + util-vserver/scripts/legacy/vserver, + util-vserver/scripts/pkgmgmt, + util-vserver/scripts/start-vservers, + util-vserver/scripts/util-vserver-vars.pathsubst, + util-vserver/scripts/vprocunhide, util-vserver/scripts/vpstree, + util-vserver/scripts/vserver, util-vserver/scripts/vserver-build, + util-vserver/scripts/vserver-build.apt-rpm, + util-vserver/scripts/vserver-build.debootstrap, + util-vserver/scripts/vserver-build.functions, + util-vserver/scripts/vserver-build.functions.apt, + util-vserver/scripts/vserver-build.functions.pkgmgmt, + util-vserver/scripts/vserver-build.functions.rpm, + util-vserver/scripts/vserver-build.functions.yum, + util-vserver/scripts/vserver-build.rpm, + util-vserver/scripts/vserver-build.yum, + util-vserver/scripts/vserver-copy, + util-vserver/scripts/vserver-setup.functions, + util-vserver/scripts/vserver.functions, + util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop, + util-vserver/scripts/vservers.grabinfo.sh, + util-vserver/scripts/vshelper, util-vserver/scripts/vsysvwrapper, + util-vserver/scripts/vtop, util-vserver/sysv/rebootmgr, + util-vserver/sysv/vservers-legacy: LEGACY BREAKAGE FOR 3RD PARTY + PATCHES: introduced a more common naming + scheme: global, immutable variables names are now named like + '$__ABC' + instead of '$ABC'. This happens at much places and will break a + lot of + patches therefore. -2004-03-24 02:11 Enrico Scholz +2005-02-25 21:33 Enrico Scholz - * .cvsignore, distrib/.cvsignore, ensc_vector/testsuite/.cvsignore, - lib/.cvsignore, lib/testsuite/.cvsignore, src/.cvsignore, - src/testsuite/.cvsignore, tests/.cvsignore: + * util-vserver/configure.ac: changed my GPG key - added some standardfiles; I do not want to wait until Savannah fixes - its scripts and allows access to CVSROOT/cvsignore again. +2005-02-25 21:33 Enrico Scholz -2004-03-24 02:07 Enrico Scholz + * util-vserver/src/secure-mount.c: assume 'nodev' by default - * lib_internal/util-perror.h: +2005-02-25 20:55 Enrico Scholz - placed a 'do ... while (0)' block around the macros + * util-vserver/scripts/vserver-build.functions.yum, + util-vserver/scripts/vyum-worker: added preliminary support for + the patch from + https://bugzilla.redhat.com/beta/attachment.cgi?id=111435&action=view -2004-03-24 02:07 Enrico Scholz +2005-02-25 20:52 Enrico Scholz - * lib/: bcaps_list-v13.c, syscall_getccaps-v13.hc, - syscall_setccaps-v13.hc: + * util-vserver/scripts/vserver-build.functions.pkgmgmt: avoid + ambiguous usage of $PKGDIR, use $PKGINSTALLDIR instead of + use $SETUP_CONFDIR instead of $confdir - handle the new struct vc_ctx_caps::bmask member +2005-02-25 20:51 Enrico Scholz -2004-03-24 02:05 Enrico Scholz + * util-vserver/scripts/vserver-build.apt-rpm, + util-vserver/scripts/vserver-build.yum: avoid ambiguous usage of + $PKGDIR, use $PKGINSTALLDIR instead of - * contrib/manifest.dat.pathsubst: +2005-02-20 23:21 Enrico Scholz - moved some files into legacy - handle sysv scripts + * util-vserver/scripts/vserver-build.functions.rpm: + rpm.initFilesystem(): fixed variable-names; this caused e.g. an + unset %_dbpath macro formerly -2004-03-24 02:05 Enrico Scholz +2005-02-15 23:13 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.204 - added formerly missing 'v_gated' registration - updated -legacy subpackage and moved some initscripts into it +2005-02-15 22:24 Enrico Scholz -2004-03-24 02:04 Enrico Scholz + * util-vserver/configure.ac: added information where the 'ip' and + 'vconfig' programs can be found - * lib/vserver.h: +2005-02-15 22:18 Enrico Scholz - do not use PURE before gcc 3.3.3 - use a more effective way to determine gcc revision - struct vc_ctx_caps: added 'bmask' member + * util-vserver/scripts/vshelper: adjusted the order of cli options + evaluation; automake-1.9.5 redirects + input from /dev/null so the 'tty -s' check gets triggered and + 'make + distcheck' fails in the '... --version/--help' tests -2004-03-24 02:03 Enrico Scholz +2005-02-15 18:04 Enrico Scholz - * compat.h: + * util-vserver/src/save_ctxinfo.c: fixed name of the run.rev + symlink; there was a '/' missing which + caused a pollution of the /etc/vservers/.defaults directory with + 'run.revXXX' entries. (reported and analyzed by Olivier Poitrey). - do not use PURE before gcc 3.3.3 - use a more effective way to determine gcc revision +2005-02-07 18:02 Enrico Scholz -2004-03-23 02:15 Enrico Scholz + * util-vserver/scripts/functions, + util-vserver/scripts/vserver-build.functions.pkgmgmt, + util-vserver/src/vunify.c: fixed typos - * scripts/vserver-wrapper: +2005-02-07 18:01 Enrico Scholz - fixed typo (missing 's') + * util-vserver/doc/configuration.xml: documented the *namespace + options -2004-03-23 00:27 Enrico Scholz +2005-02-04 12:18 Enrico Scholz - * scripts/vserver-build.functions: + * util-vserver/scripts/vserver.functions: SECURITY: fixed detection + of the mtab-location (Georg Glas) + https://savannah.nongnu.org/bugs/?func=detailitem&item_id=11844 - added basic support for SuSE (patch from Thomas Guettler) - give more hints in errormessages (patch from Thomas Guettler) +2005-02-04 02:55 Enrico Scholz -2004-03-23 00:18 Enrico Scholz + * util-vserver/scripts/vserver.functions: fixed one of the + previously added 'test -n' - * scripts/vpkg: +2005-02-02 14:09 Enrico Scholz - give out errormessage on unknown distribution type + * util-vserver/m4/ensc_pathprog.m4: ENSC_PATHPROG_INIT(): fixed doc + ENSC_PATHPROG(): added a '' parameter -2004-03-23 00:13 Enrico Scholz +2005-02-02 13:42 Enrico Scholz - * scripts/functions: + * util-vserver/doc/compatibility-xhtml.xsl, + util-vserver/doc/compatibility.css: applied + http://vserver.lauft.net/wegen/util-vserver/patches/merge/util-vserver--merge--0.0--patch-2.patch - added basic support for SuSE +2005-02-01 17:28 Enrico Scholz -2004-03-19 17:58 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.203 - * src/vserver-stat.c: +2005-02-01 17:23 Enrico Scholz - fixed race when process disappeared shortly after reading /proc + * util-vserver/scripts/Makefile-files: added vyum-worker to + AM_INSTALLCHECK_STD_OPTIONS_EXEMPT -2004-03-19 17:57 Enrico Scholz +2005-02-01 17:23 Enrico Scholz - * doc/configuration.xml: + * util-vserver/scripts/vyum-worker: minor cosmetical change - documented apps/init/{mark,depends} - mentioned the gentoo initstyle +2005-02-01 17:22 Enrico Scholz -2004-03-19 17:57 Enrico Scholz + * util-vserver/scripts/functions, util-vserver/scripts/pkgmgmt: + fixed 'local VAR=$(ACTION) || ERROR' constructs; the 'local + VAR=$(ACTION)' + succeeds everytime so ERROR will be never executed. So, it is + rewritten to + 'local VAR; VAR=$(ACTION) || ERROR'. - * doc/configuration-lsd.css: +2005-02-01 17:02 Enrico Scholz - followed Bertl's suggestion and added a subliminal message + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.202 -2004-03-19 17:51 Enrico Scholz +2005-02-01 16:57 Enrico Scholz - * configure.ac: + * util-vserver/distrib/fc3/rpmlist.d, + util-vserver/distrib/fc3/rpmlist.d/00.lst: initial checkin - require at least version 0.24 of dietlibc +2005-02-01 16:56 Enrico Scholz -2004-03-19 17:51 Enrico Scholz + * util-vserver/scripts/vserver-build.rpm: moved installPackages + into vserver-build.functions.rpm + added support for preconfigured package-lists - * m4/ensc_dietlibc.m4: +2005-02-01 16:55 Enrico Scholz - allow to specify a + * util-vserver/scripts/vserver-build.functions.rpm: rpmlist.*(): + added -2004-03-18 07:06 Enrico Scholz +2005-02-01 16:55 Enrico Scholz - * NEWS, configure.ac: + * util-vserver/scripts/vserver-build: documented the '--empty' + switch for the '-m rpm' method + allow an increasing debug-level - version 0.29.204 +2005-02-01 16:54 Enrico Scholz -2004-03-18 07:06 Enrico Scholz + * util-vserver/scripts/functions: vshelper.isDebug(): fixed it... - * lib_internal/util-dotfile.h: +2005-02-01 16:53 Enrico Scholz - do not use PURE; it is not applicable for inline declarations + * util-vserver/distrib/Makefile.am: added the fc3 rpmlist.d + directory + content -2004-03-18 06:59 Enrico Scholz +2005-02-01 16:53 Enrico Scholz - * compat.h: + * util-vserver/contrib/manifest.dat.pathsubst: added + vserver-build.rpm - fixed broken condition for PURE - define __builtin_expect() when needed +2005-02-01 02:08 Enrico Scholz -2004-03-18 06:36 Enrico Scholz + * util-vserver/lib_internal/matchlist-initbyvserver.c, + util-vserver/lib_internal/matchlist-initmanually.c, + util-vserver/lib_internal/matchlist-initrefserverlist.c, + util-vserver/src/vcopy-init.hc, util-vserver/src/vunify-init.hc: + changed matchlist-API to pass additional information about a + vserver. This allows to turn off pkgmgmt-queries for not-yet + existent vservers in 'vcopy' - * src/vunify.c: +2005-02-01 02:06 Enrico Scholz - cleanups in the verbosity code + * util-vserver/lib_internal/matchlist.h: struct MatchVserverInfo: + added; it allows to pass additional information about the vserver -2004-03-18 06:35 Enrico Scholz +2005-02-01 02:06 Enrico Scholz - * scripts/legacy/: vps.pathsubst, vserver: + * util-vserver/lib_internal/unify-copy.c: copyReg(): open out_fd + with O_RDWR, fixed resource leak in error-case - use 'chcontext-compat' instead of 'chcontext' +2005-02-01 00:55 Enrico Scholz -2004-03-18 06:35 Enrico Scholz + * util-vserver/lib/createskeleton-full.hc: argl... fixed overflow + when appending the '/' - * scripts/vserver.stop: +2005-01-31 23:06 Enrico Scholz - call isVserverRunning to cleanup rundir + * util-vserver/doc/configuration.xml, + util-vserver/scripts/functions, util-vserver/scripts/vshelper: + added 'debug' option for vshelper -2004-03-18 06:35 Enrico Scholz +2005-01-31 23:04 Enrico Scholz - * scripts/vserver-build.functions.pkgmgmt: + * util-vserver/scripts/vshelper: added delegation support (Herbert + Poetzl) + http://vserver.13thfloor.at/Experimental/NGNET/delta-vshelper-delegate.diff - ignore candidates for location of pkgmgmt-dir when $ROOTDIR is empty +2005-01-31 22:47 Enrico Scholz -2004-03-18 06:33 Enrico Scholz + * util-vserver/scripts/vserver-build.functions: getDistribution(): + added support for a default distribution - * scripts/vserver-build: +2005-01-31 22:45 Enrico Scholz - cleanups; use full parenthesis in case ... esac + * util-vserver/scripts/Makefile-files, + util-vserver/scripts/vserver-build, + util-vserver/scripts/vserver-build.rpm: added the '-m rpm' method -2004-03-18 06:33 Enrico Scholz +2005-01-31 22:45 Enrico Scholz - * scripts/vserver: + * util-vserver/distrib/Makefile.am, util-vserver/distrib/template, + util-vserver/distrib/template/initpost, + util-vserver/distrib/template/initpre: added the 'template' + distribution - implemenented 'pkgmgmt' command +2005-01-31 17:48 Enrico Scholz -2004-03-18 06:32 Enrico Scholz + * util-vserver/src/rpm-fake.c: fixed environment unsetting: it will + be now done shortly before execve(2) + but not on initialization anymore. This solves the problem when + 'rpm' is + a wrapper only calling the real 'rpm?'. Then, LD_PRELOAD et.al. + was unset + and the wrapper not used. - * scripts/vrpm: +2005-01-31 17:45 Enrico Scholz - allow both internal and external packagemanagement + * util-vserver/scripts/vshelper: fixed the (currently non-existent) + child->parent traversal -2004-03-18 06:32 Enrico Scholz +2005-01-31 17:44 Enrico Scholz - * scripts/vpkg: + * util-vserver/lib/apidoc/Doxyfile.in: added DOT_TRANSPARENT + + DOT_MULTI_TARGET - cleanups; generalized some functions and moved them into the 'functions' file +2005-01-31 17:44 Enrico Scholz -2004-03-18 06:32 Enrico Scholz + * util-vserver/doc/configuration.xml: updated - * scripts/vapt-get: +2005-01-31 17:43 Enrico Scholz - support both internal and external packagemanagement + * util-vserver/Makefile.am, + util-vserver/lib/createskeleton-full.hc, + util-vserver/scripts/vserver-build.functions, + util-vserver/scripts/vserver-setup.functions, + util-vserver/src/save_ctxinfo.c, + util-vserver/util-vserver.spec.in: removed 'run.rev' as a + vserver-local variable and made it a system-wide setting -2004-03-18 06:31 Enrico Scholz +2005-01-28 01:21 Enrico Scholz - * scripts/util-vserver-vars.pathsubst: + * util-vserver/doc/configuration.xml: reindented it + fixed vshelper documentation - added $_PKGMGMT and $_TAR +2005-01-27 21:24 Enrico Scholz -2004-03-18 06:31 Enrico Scholz + * util-vserver/scripts/functions, util-vserver/scripts/pkgmgmt, + util-vserver/scripts/start-vservers, + util-vserver/scripts/vapt-get, util-vserver/scripts/vpkg, + util-vserver/scripts/vprocunhide, util-vserver/scripts/vrpm, + util-vserver/scripts/vrpm-preload, util-vserver/scripts/vserver, + util-vserver/scripts/vserver-build, + util-vserver/scripts/vserver-build.debootstrap, + util-vserver/scripts/vserver-build.functions.rpm, + util-vserver/scripts/vserver-setup.functions, + util-vserver/scripts/vserver-wrapper, + util-vserver/scripts/vserver.functions, + util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop, util-vserver/scripts/vshelper, + util-vserver/scripts/vsomething: use 'test -n "..."' instead of + 'test "..."'; when "..." expands to '-v' + or a similar string, the expression will be misinterpreted + (noticed by + Werner Schalk) - * scripts/start-vservers: +2005-01-27 20:53 Enrico Scholz - filter out non-matching vservers *before* adding them to the makefile + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.201 -2004-03-18 06:30 Enrico Scholz +2005-01-27 20:38 Enrico Scholz - * scripts/functions: + * util-vserver/src/reducecap.c, util-vserver/src/vserver-info.c: + reworked the capability.h stuff - getVserverStatus(): fix problems with leading whitespaces in numerical values - pkgmgmt.guessStyle(), pkgmgmt.isInternal(): added +2005-01-27 20:38 Enrico Scholz -2004-03-18 06:29 Enrico Scholz + * util-vserver/src/Makefile-files, + util-vserver/src/capability-compat.h: added capability-compat.h - * scripts/pkgmgmt: +2005-01-27 20:37 Enrico Scholz - initial checkin + * util-vserver/configure.ac: added check for + header -2004-03-18 06:29 Enrico Scholz +2005-01-27 20:37 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/Makefile.am: removed the linuxcaps.h bits - added pkgmgmt +2005-01-27 19:17 Enrico Scholz -2004-03-18 06:28 Enrico Scholz + * util-vserver/src/vserver-info.c: implemented capability-support + check - * lib_internal/matchlist-initmanually.c: +2005-01-27 19:16 Enrico Scholz - some cleanups in the verbosity code + * util-vserver/src/rpm-fake.c: fixed execution order of chroot(2) + and context-creation; this caused + errors on kernel 2.6 when the vserver is not running yet -2004-03-18 06:28 Enrico Scholz +2005-01-27 19:15 Enrico Scholz - * lib/getvservercfgstyle.c: + * util-vserver/src, util-vserver/src/.cvsignore, + util-vserver/src/Makefile-files: added check-unixfile - filter out relative and absolute paths; when they are not pointing to - an existing directory, the function fails +2005-01-27 19:15 Enrico Scholz -2004-03-18 06:27 Enrico Scholz + * util-vserver/scripts/vserver.start: execute sanityCheck() - * ensc_wrappers/wrappers_handler.hc: +2005-01-27 19:15 Enrico Scholz - use __builtin_expect + * util-vserver/scripts/vserver.functions: moved sanity checks which + were spread in various functions into the sanityCheck() method + implemented checks for non-newline terminated files and missing + capability support -2004-03-18 06:27 Enrico Scholz +2005-01-27 19:13 Enrico Scholz - * distrib/defaults/apt/apt.conf: + * util-vserver/distrib/fc3, util-vserver/distrib/fc3/pkgs, + util-vserver/distrib/fc3/pkgs/01, + util-vserver/distrib/fc3/pkgs/02, + util-vserver/distrib/fc3/pkgs/03, util-vserver/distrib/fc3/yum, + util-vserver/distrib/fc3/yum.repos.d, + util-vserver/distrib/fc3/yum.repos.d/fedora-devel.repo, + util-vserver/distrib/fc3/yum.repos.d/fedora-updates-testing.repo, + util-vserver/distrib/fc3/yum.repos.d/fedora-updates.repo, + util-vserver/distrib/fc3/yum.repos.d/fedora.repo, + util-vserver/distrib/fc3/yum/yum.conf, + util-vserver/scripts/vserver-build.functions.yum, + util-vserver/scripts/vserver-build.yum, + util-vserver/scripts/vsomething, util-vserver/scripts/vyum, + util-vserver/scripts/vyum-worker, + util-vserver/src/check-unixfile.c: initial checkin - added '@autogenerated@' tag plus small warning +2005-01-27 19:11 Enrico Scholz -2004-03-18 06:26 Enrico Scholz + * util-vserver/scripts/vserver-build: added 'yum' support - * contrib/manifest.dat.pathsubst: +2005-01-27 19:11 Enrico Scholz - added pkgmgmt script + * util-vserver/scripts/vrpm-preload: reorganized; moved lots of + code into the 'functions' file -2004-03-18 06:26 Enrico Scholz +2005-01-27 19:10 Enrico Scholz - * configure.ac: + * util-vserver/scripts/util-vserver-vars.pathsubst: added yum* + files + vsomething + check-unixfile - look for tar +2005-01-27 19:10 Enrico Scholz -2004-03-18 06:25 Enrico Scholz + * util-vserver/scripts/functions: added yum* support + reorganized the rpmFake stuff - * Makefile.am: +2005-01-27 19:09 Enrico Scholz - substitute @TAR@ + * util-vserver/scripts/Makefile-files: added the yum* files + + vsomething -2004-03-16 15:30 Enrico Scholz +2005-01-27 19:09 Enrico Scholz - * src/chbind.c: + * util-vserver/distrib/redhat/initpre: added missing newline - use vc_get_nb_ipv4root() instead of hardcoded '16' value +2005-01-27 19:08 Enrico Scholz -2004-03-16 15:29 Enrico Scholz + * util-vserver/distrib/Makefile.am: added the yum* stuff for fc3 - * compat.h: +2005-01-27 19:07 Enrico Scholz - CONST: added + * util-vserver/contrib/manifest.dat.pathsubst: added the yum* files + + check-unixfile -2004-03-16 15:28 Enrico Scholz +2005-01-27 19:07 Enrico Scholz - * lib/vserver.h: + * util-vserver/README: mentioned the '-m yum' buildmethod - VC_ATTR_CONST: added - vc_get_nb_ipv4root(): added +2005-01-26 23:29 Enrico Scholz -2004-03-16 15:28 Enrico Scholz + * util-vserver/lib/getvservercfgstyle.c: allow dangling symlinks as + /etc/vservers/.../vdir also - * lib/Makefile-files: +2005-01-26 23:27 Enrico Scholz - added getnbipv4root.c + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.199 -2004-03-16 15:27 Enrico Scholz +2005-01-26 21:15 Enrico Scholz - * lib/getnbipv4root.c: + * util-vserver/util-vserver.spec.in: do not ship the /vservers + directory itself; as it is immutable, the + extraction will fail else - initial checkin +2005-01-26 20:44 Enrico Scholz -2004-03-16 05:37 Enrico Scholz + * util-vserver/lib_internal/testsuite, + util-vserver/lib_internal/testsuite/.cvsignore: updated - * scripts/Makefile-files: +2005-01-26 20:09 Enrico Scholz - added the sysvwrappers to AM_INSTALLCHECK_STD_OPTIONS_EXEMPT + * util-vserver/util-vserver.spec.in: rearranged some scriptlets to + avoid comments after '-p /sbin/ldconfig' -2004-03-16 05:26 Enrico Scholz +2005-01-26 15:35 Enrico Scholz - * NEWS, configure.ac: + * util-vserver/scripts/vserver.start: added (untested) support for + '/' in the vserver fstab - version 0.29.202 +2005-01-26 15:34 Enrico Scholz -2004-03-16 04:51 Enrico Scholz + * util-vserver/scripts/vserver.functions: use unique prefixes for + variables used in functions with 'eval' statements + mountRootFS(): added - * sysv/Makefile-files: +2005-01-26 15:34 Enrico Scholz - added vservers-default - removed vservers + * util-vserver/scripts/functions: use unique prefixes for variables + used in functions with 'eval' statements -2004-03-16 04:50 Enrico Scholz +2005-01-26 15:32 Enrico Scholz - * sysv/vservers.subst[DEAD]: + * util-vserver/lib_internal/testsuite/filecfg-ml.c: include + + - obsoleted by new initscript +2005-01-26 15:31 Enrico Scholz -2004-03-16 04:49 Enrico Scholz + * util-vserver/scripts/Makefile-files: moved rootshell to legacy - * sysv/vservers-default: +2005-01-26 15:30 Enrico Scholz - initial checkin + * util-vserver/vserver-start/defaulttty.c: include -2004-03-16 04:49 Enrico Scholz +2005-01-26 15:29 Enrico Scholz - * src/vserver-info.c: + * util-vserver/src/secure-mount.c: added '--rootfs' option - implemented INITPID for the compat API +2005-01-26 15:28 Enrico Scholz -2004-03-16 04:49 Enrico Scholz + * util-vserver/contrib/manifest.dat.pathsubst: moved the v_* + initscripts to legacy - * src/rpm-fake.c: +2005-01-26 14:23 Enrico Scholz - implemented/fixed the non-legacy part - cleanups + * util-vserver/util-vserver.spec.in: updated BuildRequires: + use 'setattr --barrier' instead of 'chattr +t' in the %post + scriptlet + moved the v_* initscripts to legacy -2004-03-16 04:48 Enrico Scholz +2005-01-25 16:01 Enrico Scholz - * src/rpm-fake-resolver.c: + * util-vserver/contrib/manifest.dat.pathsubst, + util-vserver/scripts/legacy/rootshell, + util-vserver/scripts/rootshell: moved rootshell script to legacy - implemented/fixed the non-legacy part +2005-01-21 13:51 Enrico Scholz -2004-03-16 04:48 Enrico Scholz + * branches/SYSCALL_SWITCH/util-vserver/scripts/vserver, + util-vserver/scripts/legacy/vserver: fixed + http://savannah.nongnu.org/bugs/?func=detailitem&item_id=11570: + + "vserver myvserver start" gives exit code 1 if there is no file + /etc/vservers/myvserver.sh, since the last statement in vserver + ("test -x /etc/vservers/$1.sh && ...") evaluates to 1 in this + case. + + [Daniel Hermann] - * scripts/vserver.suexec: +2005-01-21 13:44 Enrico Scholz - added internal mode to use 'suexec' for stopped vservers also + * util-vserver/scripts/vserver: be more verbosely when vserver + could not be determined and give hints + about possible solutions (based upon ideas by Thorsten Gunkel) -2004-03-16 04:47 Enrico Scholz +2005-01-21 13:42 Enrico Scholz - * scripts/vserver.stop: + * util-vserver/scripts/vserver-setup.functions: + interface-configuration: give out a warning when no device was + configured - added a more efficient stop method for fakeinit vservers +2005-01-21 13:41 Enrico Scholz -2004-03-16 04:47 Enrico Scholz + * util-vserver/scripts/vserver.functions: * + interface-configuration: accept 'nodev' without a configured + 'dev'; + formerly the interface was silently ignored when 'dev' was + missing + * added some sanity checks for the behaviour described above - * scripts/vserver.start: +2005-01-21 13:38 Enrico Scholz - finxed incomplete quoting + * util-vserver/src/rpm-fake.c: added rpm_execcon() wrapper to make + it work in SELinux environments + call execve(2) directly instead of execv(3) -2004-03-16 04:46 Enrico Scholz +2005-01-07 17:40 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/README: fixed typos + cleanups + enhancements - handle fakeinit separately - cleanups and fixes in the flag-generation +2005-01-07 16:44 Enrico Scholz -2004-03-16 04:45 Enrico Scholz + * util-vserver/README: "Notes for distributors" + "Which version + shall I use?" added - * scripts/vserver-wrapper: +2005-01-07 16:41 Enrico Scholz - initial checkin + * util-vserver/m4/ensc_dietlibc.m4: Fixed last patch: use '[[' + instead of '[' (found by Hans Ulrich Niedermann) -2004-03-16 04:45 Enrico Scholz +2005-01-06 23:59 Enrico Scholz - * scripts/vserver: + * util-vserver/configure.ac: call ENSC_DIETLIBC_SANITYCHECK, + AC_CANONICAL_HOST + AC_CANONICAL_BUILD - added support for an internal command mode +2005-01-06 23:53 Enrico Scholz -2004-03-16 04:43 Enrico Scholz + * util-vserver/m4/ensc_dietlibc.m4: ENSC_DIETLIBC_SANITYCHECK(): + added + made ENSC_VERSION_DIETLIBC uppercase + ignore extra specifiers in dietlibc's minor version (reported by + Hans Ulrich Niedermann) - * scripts/util-vserver-vars.pathsubst: +2005-01-06 23:26 Enrico Scholz - added $_INITSYNC_MINIT_* variables - added $_START_VSERVERS + * util-vserver/scripts/util-vserver-vars.pathsubst: fix typo in + $_MKTEMPDIR: Use $_MKTEMP not $MKTEMP (fixed by Hans Ulrich + Niedermann) -2004-03-16 04:43 Enrico Scholz +2004-12-28 19:07 Enrico Scholz - * scripts/start-vservers: + * util-vserver/scripts/vserver.functions: use $_ (which + expands to absolute paths) instead of trusting into a good $PATH + a small VLAN fix (do not quote the splitted dev) + minor cleanups - added ok/passed/failed logic +2004-12-28 19:07 Enrico Scholz -2004-03-16 04:42 Enrico Scholz + * util-vserver/scripts/functions, util-vserver/scripts/pkgmgmt, + util-vserver/scripts/start-vservers, + util-vserver/scripts/util-vserver-vars.pathsubst, + util-vserver/scripts/vpkg, util-vserver/scripts/vrpm-preload, + util-vserver/scripts/vserver-build.debootstrap, + util-vserver/scripts/vserver-build.functions.apt, + util-vserver/scripts/vserver-wrapper, + util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop: use $_ (which expands to + absolute paths) instead of trusting into a good $PATH - * scripts/Makefile-files: +2004-12-28 19:04 Enrico Scholz - ship vsyswrapper again + * util-vserver/configure.ac: use ENSC_PATHPROG & friends -2004-03-16 04:42 Enrico Scholz +2004-12-28 19:03 Enrico Scholz - * lib/vserver.h: + * util-vserver/m4/ensc_pathprog.m4: initial checkin - vc_is_dynamic_xid(): added +2004-12-28 19:02 Enrico Scholz -2004-03-16 04:42 Enrico Scholz + * util-vserver/Makefile.am: use ${ENSC_PATHPROG_SED} when + substituting prognames - * lib/Makefile-files: +2004-12-28 12:00 Enrico Scholz - added isdynamicxid.c + * util-vserver/m4/ensc_dietlibc_compat.m4: check more syscall + variants -2004-03-16 04:41 Enrico Scholz +2004-12-28 12:00 Enrico Scholz - * ensc_wrappers/wrappers-vserver.hc: + * util-vserver/lib/vserver.h: s!\params!\param! + added doc about vc_get_iattr() - Evc_set_ccaps(): added +2004-12-28 11:58 Enrico Scholz -2004-03-16 04:41 Enrico Scholz + * util-vserver/doc/cfg.txt: removed since obsoleted by + configuration.xml - * distrib/redhat/initpre, lib/isdynamicxid.c: +2004-12-21 07:19 Enrico Scholz - initial checkin + * util-vserver/src/vsched.c: fixed segfault when no arguments are + given (reported by Adrian Reyer) -2004-03-16 04:41 Enrico Scholz +2004-12-16 00:11 Enrico Scholz - * distrib/redhat/initpost: + * util-vserver/src/keep-ctx-alive.c: renamed the 'fd_set' variable + to 'fdset'. former name causes problems + with certain FD_* implementations (reported by Adrian Reyer) - use internal 'chkconfig' command +2004-12-09 13:07 Enrico Scholz -2004-03-16 04:40 Enrico Scholz + * util-vserver/build-all: added fc-3 host - * distrib/Makefile.am: +2004-12-09 13:06 Enrico Scholz - added initpre to handle rpm's misclassification of %_netsharedpath + * util-vserver/lib/Makefile-files: getfilecontext.c: added -2004-03-16 04:39 Enrico Scholz +2004-12-09 13:05 Enrico Scholz - * contrib/: make-manifest, manifest.dat.pathsubst: + * util-vserver/lib/getfilecontext.c, util-vserver/lib/vserver.h: + vc_getfilecontext(): as noticed by daniel_hozac in IRC, this + function + was horribly broken. Fixed and moved it into an own file as it is + too + complex for an inline function. Documentation was added also. - handle some sysv files too +2004-12-07 11:15 Enrico Scholz -2004-03-16 04:39 Enrico Scholz + * util-vserver/vserver-start/main.c: include - * util-vserver.spec.in: +2004-12-07 11:14 Enrico Scholz - updated the -sysv package + * util-vserver/scripts/vserver.functions: read enter-shell from the + defaults-directory also + use prio-bias instead of cpu-mask -2004-03-15 22:41 Enrico Scholz +2004-12-07 11:13 Enrico Scholz - * src/vcontext.c: + * util-vserver/lib_internal/filecfg-iteratemultiline.c: include + - cleanups; remove unused code - added '--silentexist' - use context-sync.hc +2004-12-07 11:13 Enrico Scholz -2004-03-15 22:40 Enrico Scholz + * util-vserver/lib/testsuite/cflags.c: added some new flags - * src/chcontext.c: +2004-12-07 11:10 Enrico Scholz - use code from context-sync.hc + * util-vserver/doc/configuration.xml: do not mention the /hostname + + /domainname params anymore + removed vsched/cpu-mask + added vsched/priority-bias -2004-03-15 22:39 Enrico Scholz +2004-10-21 19:02 Enrico Scholz - * src/context-sync.hc: + * util-vserver/lib/vserver.h: added/updated flags and capabilities - initial checkin +2004-10-21 19:01 Enrico Scholz -2004-03-15 22:39 Enrico Scholz + * util-vserver/lib/islink.c: initial checkin - * src/Makefile-files: +2004-10-21 19:01 Enrico Scholz - added context-sync.hc + * util-vserver/lib/internal.h: utilvserver_isLink(): added + prototype -2004-03-15 22:39 Enrico Scholz +2004-10-21 19:00 Enrico Scholz - * scripts/vserver-build.apt-rpm: + * util-vserver/lib/cflags-v13.c: added lots of new flags - cleanups; full parenthesis for case ... esac statements +2004-10-21 18:59 Enrico Scholz -2004-03-15 22:38 Enrico Scholz + * util-vserver/lib/ccaps-v13.c: added 'remount' + 'icmp' cap; + 'ping' is kept for compatibility reasons - * scripts/vserver: +2004-10-21 18:58 Enrico Scholz - cleanups; full parenthesis for case ... esac statements - give more helpful error messages + * util-vserver/lib/Makefile-files: added islink.c -2004-03-15 22:37 Enrico Scholz +2004-10-19 23:59 Enrico Scholz - * lib_internal/: jail.h, jailintotempdir.c: + * util-vserver/scripts/functions: getFileValue(): modified to + accept a list of candidates - return indication about place of error +2004-10-19 23:39 Enrico Scholz -2004-03-15 21:01 Enrico Scholz + * util-vserver/src/vcontext.c: merged from + UV_NAMESPACE_AFTER_CHROOT branch - * configure.ac: +2004-10-19 23:19 Enrico Scholz - print correct $prefix when '--prefix' is not specified + * util-vserver/Makefile.am: added 'update-doc' target -2004-03-13 04:39 Enrico Scholz +2004-10-19 23:11 Enrico Scholz - * NEWS, configure.ac: + * util-vserver/ensc_wrappers/wrappers-vserver.hc: + Evc_{new,enter}_namespace(): added - version 0.29.201 +2004-10-19 21:47 Enrico Scholz -2004-03-13 04:39 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.196 - * src/vcontext.c: +2004-10-19 21:47 Enrico Scholz - added another #warning + * util-vserver/kernel/context.h, util-vserver/kernel/cvirt.h: + updated to vs1.9.3-rc4 -2004-03-13 04:23 Enrico Scholz +2004-10-19 21:11 Enrico Scholz - * src/vcontext.c: + * util-vserver/vserver-start/configuration-init.c, + util-vserver/vserver-start/configuration.c, + util-vserver/vserver-start/configuration.h, + util-vserver/vserver-start/interface.c, + util-vserver/vserver-start/interface.h, + util-vserver/vserver-start/main.c, + util-vserver/vserver-start/scriptlets.c, + util-vserver/vserver-start/vserver-start.h: added lots of new + code - fixed '--uid' option (it's required_argument but not no_argument) - drop privileges after migrate() +2004-10-19 21:10 Enrico Scholz -2004-03-13 04:22 Enrico Scholz + * util-vserver/lib_internal/filecfg-iteratemultiline.c, + util-vserver/lib_internal/testsuite/filecfg-ml.c, + util-vserver/vserver-start/defaulttty.c: initial checkin - * scripts/vserver.start: +2004-10-19 21:09 Enrico Scholz - call $_SAVE_CTXINFO until we have something better + * util-vserver/vserver-start/Makefile-files: added defaulttty.c -2004-03-13 03:57 Enrico Scholz +2004-10-19 21:08 Enrico Scholz - * src/vcontext.c: + * util-vserver/src/reducecap.c: use some dirty hacks to include + cleanly - updated to new kernel behavior +2004-10-19 21:08 Enrico Scholz -2004-03-13 03:56 Enrico Scholz + * util-vserver/scripts/vserver.stop: execute 'prepareStop()' - * src/vattribute.c: +2004-10-19 21:07 Enrico Scholz - renamed set*() to parse*() - set the correct secure attributes - call set_flags/set_ccaps only, when there is something to do + * util-vserver/scripts/vserver.functions: made + runlevel_{start,stop} global variables + prepareStop(): added + set PREVLEVEL on 'vserver ... stop' (required by Debian) -2004-03-13 03:54 Enrico Scholz +2004-10-19 21:06 Enrico Scholz - * scripts/: chcontext, vserver.start: + * util-vserver/scripts/vserver-setup.functions: s!prefix!prefixlen! - applied new CLI +2004-10-19 21:06 Enrico Scholz -2004-03-13 03:54 Enrico Scholz + * util-vserver/lib_internal/testsuite/Makefile-files: added + filecfg-ml test - * lib_internal/Makefile-files: +2004-10-19 21:06 Enrico Scholz - added jail* files + * util-vserver/lib_internal/string.hc: String_c_str(): added -2004-03-13 03:53 Enrico Scholz +2004-10-19 21:05 Enrico Scholz - * lib_internal/: jail.h, jailintotempdir.c: + * util-vserver/lib_internal/string.h: ENSC_STRING_*FIXED(): added - initial checkin +2004-10-19 21:05 Enrico Scholz -2004-03-13 03:52 Enrico Scholz + * util-vserver/lib_internal/filecfg.h: + FileCfg_iterateOverMultiLine(): added prototypes and related + declarations - * ensc_wrappers/wrappers-vserver.hc: +2004-10-19 21:04 Enrico Scholz - Evc_get_ccaps(): added declaration + * util-vserver/lib_internal/Makefile-files: added + filecfg-iteratemultiline.c -2004-03-12 20:31 Enrico Scholz +2004-10-19 21:04 Enrico Scholz - * src/vuname.c: + * util-vserver/lib/syscall_setsched-v13.hc: vc_set_sched_v13obs(): + use VCMD_set_sched_v2 instead of VCMD_set_sched - rewrote it; CLI should be more usable now +2004-10-19 21:03 Enrico Scholz -2004-03-12 20:30 Enrico Scholz + * util-vserver/ensc_wrappers/wrappers-unistd.hc: Enice(): added - * scripts/: chcontext, vserver.start: +2004-10-19 21:03 Enrico Scholz - use new vuname syntax + * util-vserver/doc/configuration.xml: s!prefix!prefix-length! -2004-03-12 07:02 Enrico Scholz +2004-10-19 21:03 Enrico Scholz - * src/vattribute.c: + * util-vserver/Makefile.am: added new kernel headers + changed substition of linuxcaps.h; oldish 'sed' versions do not + understand '\<' regexs - set caps before flags so that caps can be changed in the same transaction - which deletes 'setup' +2004-10-18 16:11 Enrico Scholz -2004-03-12 05:53 Enrico Scholz + * util-vserver/src/vcontext.c: do not include "linuxcaps.h" anymore - * scripts/vserver.suexec: +2004-10-18 16:08 Enrico Scholz - added some explicit '--' + * util-vserver/kernel/context.h, util-vserver/kernel/cvirt.h, + util-vserver/kernel/inode.h, util-vserver/kernel/legacy.h, + util-vserver/kernel/limit.h, util-vserver/kernel/namespace.h, + util-vserver/kernel/network.h, util-vserver/kernel/sched.h, + util-vserver/kernel/signal.h, util-vserver/kernel/switch.h, + util-vserver/kernel/xid.h: updated -2004-03-12 05:52 Enrico Scholz +2004-10-18 16:07 Enrico Scholz - * scripts/functions: + * util-vserver/doc/Makefile-files: removed stylesheets and images + from the main-package; they are now in the web-CVS - added some doc - getVserverStatus(): fixed it +2004-10-18 16:07 Enrico Scholz -2004-03-12 05:51 Enrico Scholz + * util-vserver/doc/configuration-flower.css, + util-vserver/doc/configuration-lsd.css, + util-vserver/doc/configuration-lsd1.css, + util-vserver/doc/flowers.png, util-vserver/doc/flowers1.png, + util-vserver/doc/flowers2.png: moved into web-CVS - * src/save_ctxinfo.c: +2004-10-18 15:46 Enrico Scholz - use strncat() instead of strcat() to enforce correct length + * util-vserver/kernel/debug.h, util-vserver/kernel/dlimit.h: + updated -2004-03-12 04:38 Enrico Scholz +2004-10-06 03:20 Enrico Scholz - * NEWS, configure.ac: + * util-vserver/README: updated note about 'vserver-stat' and differ + between 2.4 and 2.6 + kernel - version 0.29.200 +2004-10-06 03:19 Enrico Scholz -2004-03-12 04:37 Enrico Scholz + * util-vserver/lib_internal/unify-unify.c: retain 'errno' on the + final unlink() - * scripts/: chcontext, vserver.start: +2004-10-06 03:19 Enrico Scholz - remove the setup flag + * util-vserver/src/Makefile-files: link secure-mount against + libvserver -2004-03-12 04:37 Enrico Scholz +2004-10-06 03:18 Enrico Scholz - * lib/virtual.h: + * util-vserver/src/secure-mount.c: added better diagnostic when + fstab-parsing fails + use strsep() instead of strtok_r() in the parser to make the + line-number counter work - cleanups +2004-10-01 12:16 Enrico Scholz -2004-03-12 04:19 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.195 - * scripts/chcontext: +2004-10-01 12:08 Enrico Scholz - give '--xid' in migrate case + * util-vserver/scripts/functions: _getProcNumberCount(): + s!$_ctx!$1! -2004-03-12 04:17 Enrico Scholz +2004-10-01 11:50 Enrico Scholz - * scripts/chcontext: + * util-vserver/configure.ac, util-vserver/m4/ensc_dietlibc.m4: give + out information about version of the found dietlibc - fixed migrate vs. migrate-self +2004-10-01 11:04 Enrico Scholz -2004-03-12 04:13 Enrico Scholz + * util-vserver/m4/ensc_dietlibc.m4: fixed version-detection when + additional information are following the + number - * Makefile.am: +2004-10-01 11:00 Enrico Scholz - added kernel headers + * util-vserver/scripts/functions: use more efficient ways to detect + number of processes in a context + (access /proc/virtual/... information instead of executing vps) -2004-03-12 04:12 Enrico Scholz +2004-10-01 10:58 Enrico Scholz - * kernel/: context.h, inode.h, legacy.h, limit.h, namespace.h, - network.h, sched.h, signal.h, switch.h: + * util-vserver/scripts/vserver-build, + util-vserver/scripts/vserver-build.debootstrap: allowed to + specify additional debootstrap options - initial checkin +2004-10-01 10:57 Enrico Scholz -2004-03-12 04:02 Enrico Scholz + * util-vserver/src/vps.c, util-vserver/src/vserver-stat.c: added + warnings regarding procfs-security - * sysv/vprocunhide: +2004-09-24 15:10 Enrico Scholz - do not use /dev/null as lockfile + * util-vserver/src/rpm-fake.c: removed a __THROW which is not + needed and causes errors with newer gcc -2004-03-12 04:02 Enrico Scholz +2004-09-24 15:08 Enrico Scholz - * src/vsched.c: + * util-vserver/lib/syscall_setvhiname-v13.hc: use a better method + to copy labels; formerly, bad parameters could + cause undefined behaviour - updated to new API +2004-09-24 15:06 Enrico Scholz -2004-03-12 04:02 Enrico Scholz + * util-vserver/doc/Makefile-files: fixed typo - * src/vattribute.c: +2004-09-23 23:13 Enrico Scholz - implemented --secure + * util-vserver/doc/configuration.xml: added some comments for + interfaces/../{name,nodev} -2004-03-12 04:01 Enrico Scholz +2004-09-23 23:12 Enrico Scholz - * scripts/: vserver.start, vserver.stop: + * util-vserver/doc/configuration-flower.css, + util-vserver/doc/configuration-lsd.css, + util-vserver/doc/configuration-lsd1.css, + util-vserver/doc/configuration-xhtml.xsl, + util-vserver/doc/configuration.css: made it validate as xhtml - allow '--debug' in the destructors +2004-09-23 22:05 Enrico Scholz -2004-03-12 04:00 Enrico Scholz + * util-vserver/build-all: fixed CLEAN=1 usecase + use gcc4 instead of gcc35 - * scripts/vserver.functions: +2004-09-23 22:04 Enrico Scholz - added gentoo startup style + * util-vserver/scripts/vserver-build.debootstrap: added better + diagnostic for failed debootstrap download -2004-03-12 03:59 Enrico Scholz +2004-09-23 22:03 Enrico Scholz - * scripts/chcontext: + * util-vserver/doc/configuration.css: added *.elements templates - fixed params - do not call vuname/vattribute when not needed +2004-09-23 22:02 Enrico Scholz -2004-03-12 03:58 Enrico Scholz + * util-vserver/doc/configuration.xml: updated rlimits description + (reported by Nikola Donev) + added warning about explicit 'fakeinit' usage - * lib/testsuite/flags.c: +2004-09-23 22:02 Enrico Scholz - added testsuite for the flags + * util-vserver/doc/configuration-xhtml.xsl: added new stylesheets + implemented ... support -2004-03-12 03:58 Enrico Scholz +2004-09-23 22:01 Enrico Scholz - * lib/vserver.h: + * util-vserver/doc/Makefile-files: added new stylesheets and images - updated interface - added flags +2004-09-23 22:01 Enrico Scholz -2004-03-12 03:58 Enrico Scholz + * util-vserver/doc/configuration-flower.css, + util-vserver/doc/configuration-lsd1.css, + util-vserver/doc/flowers.png, util-vserver/doc/flowers1.png, + util-vserver/doc/flowers2.png: initial checkin - * lib/virtual.h: +2004-09-23 22:00 Enrico Scholz - use kernel headers + * util-vserver/distrib/misc/debootstrap.uri: updated -2004-03-12 03:56 Enrico Scholz +2004-09-22 20:56 Enrico Scholz - * lib/: syscall_getiattr-v13.hc, syscall_setiattr-v13.hc, - syscall_setsched-v13.hc: + * util-vserver/util-vserver.spec.in: s!commented!documented! - updated interface +2004-09-22 20:55 Enrico Scholz -2004-03-12 03:56 Enrico Scholz + * util-vserver/util-vserver.spec.in: commented the possible options + for 'rpmbuild' - * lib/listparser.hc: +2004-09-22 20:54 Enrico Scholz - added '^' modifier which marks bit numbers + * util-vserver/src/vsched.c: use new vc_set_sched structure + generalized CLI options a little bit -2004-03-12 03:55 Enrico Scholz +2004-09-22 20:53 Enrico Scholz - * lib/flags-v13.c: + * util-vserver/src/vattribute.c: set the "secure" flags on + '--secure' manually. This is a crude hack + and must be solved better. - added the flags +2004-09-22 20:51 Enrico Scholz -2004-03-11 05:44 Enrico Scholz + * util-vserver/lib/vserver.h: struct vc_set_sched: updated + added + some flags + vc_get_insecureflags(): removed again; it is now handled by the + utilities - * NEWS, configure.ac: +2004-09-22 20:49 Enrico Scholz - version 0.29.199 + * util-vserver/lib/vserver-internal.h: ENSC_STRUCT_IDX, + ENSC_SAME_STRUCT_IDX: added -2004-03-11 05:42 Enrico Scholz +2004-09-22 20:45 Enrico Scholz - * src/vuname.c: + * util-vserver/lib/syscall_setsched.c: added support for the new + 'struct vcmd_set_sched_v3' - added more documentation - fixed '--version' conflicts +2004-09-22 20:45 Enrico Scholz -2004-03-11 05:41 Enrico Scholz + * util-vserver/lib/syscall_setsched-v13.hc: updated to new 'struct + vcmd_set_sched_v3' + added some optimizations - * src/: rpm-fake-resolver.c, rpm-fake.c: +2004-09-22 20:42 Enrico Scholz - implemented most parts of the new migrate method + * util-vserver/kernel/sched.h: added 'struct vcmd_set_sched_v3' + plus macros -2004-03-11 05:41 Enrico Scholz +2004-09-10 11:23 Enrico Scholz - * scripts/vserver.start: + * util-vserver/lib/vserver-internal.h: CALL_VC_V13B(), + CALL_VC_V13OBS(): added - set context-name +2004-09-10 00:01 Enrico Scholz -2004-03-11 05:41 Enrico Scholz + * util-vserver/src/vlimit.c: fixed missing argument for '--xid' + switch - * lib/Makefile-files: +2004-09-07 20:37 Enrico Scholz - added getvserverbyctx-* files + * util-vserver/src/vattribute.c: use vc_get_insecureflags() on + '--secure' option -2004-03-11 05:40 Enrico Scholz +2004-09-07 20:37 Enrico Scholz - * lib/getvserverbyctx.c: + * util-vserver/lib/vserver.h: vc_get_insecureflags(): added (does + this really make sense??) - implemented new context-naming method +2004-09-07 20:36 Enrico Scholz -2004-03-11 05:39 Enrico Scholz + * util-vserver/scripts/chcontext: fixed concatenation of flags + + caps - * lib/: getvserverbyctx-compat.hc, getvserverbyctx-v13.hc: +2004-09-07 20:27 Enrico Scholz - initial checkin + * util-vserver/configure.ac: added an explicit requirement for + version 1.9 of automake -2004-03-11 05:39 Enrico Scholz +2004-08-27 21:07 Enrico Scholz - * ensc_wrappers/wrappers-vserver.hc: + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.193 - Evc_set_vhi_name(): added +2004-08-27 21:06 Enrico Scholz -2004-03-10 06:34 Enrico Scholz + * util-vserver/scripts/vserver, util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop: follow LSB behavior when + starting/stopping a vserver (no error, when already + running/stopped) + adjusted some exit-codes - * doc/configuration.xml: +2004-08-27 14:14 Enrico Scholz - documented 'fstab.local' and enhanced 'fstab' doc + * util-vserver/src/secure-mount.c: showHelp(): improved message -2004-03-10 06:33 Enrico Scholz +2004-08-27 08:58 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/distrib/misc/debootstrap.uri: updated again... - added support for 'fstab.local' files +2004-08-27 08:58 Enrico Scholz -2004-03-10 06:04 Enrico Scholz + * util-vserver/src/save_ctxinfo.c: append '\0' to the buffer read + by readlink() - * sysv/vprocunhide: +2004-08-27 08:57 Enrico Scholz - made it a little bit more portable by providing own implementations of - RH's /etc/init.d/functions when this file can not be found (inspired - by a patch from Olivier Poitrey) + * util-vserver/src/keep-ctx-alive.c: include -2004-03-10 05:55 Enrico Scholz +2004-08-27 08:57 Enrico Scholz - * scripts/functions: + * util-vserver/ensc_wrappers/wrappers-unistd.hc: Ereadlink*(): + return the count of written chars - callInNamespace(): call 'shift' to remove the vserver-name from $@ +2004-08-25 00:11 Enrico Scholz -2004-03-10 03:58 Enrico Scholz + * util-vserver/scripts/functions, util-vserver/scripts/pkgmgmt, + util-vserver/scripts/vserver.functions, + util-vserver/vserver-start/mount.c: use the new 'secure-mount' + CLI - * doc/.cvsignore: +2004-08-25 00:08 Enrico Scholz - added configuration.html + * util-vserver/src/secure-mount.c: reworked it; '--chroot' does not + accept an argument now, and '--secure' + is deprecated. Lots of code was modernized -2004-03-10 03:49 Enrico Scholz +2004-08-19 16:06 Enrico Scholz - * src/vserver-info.c: + * util-vserver/vserver-start/configuration-init.c, + util-vserver/vserver-start/configuration.c, + util-vserver/vserver-start/configuration.h, + util-vserver/vserver-start/interface-add.c, + util-vserver/vserver-start/interface-read.c, + util-vserver/vserver-start/interface.c, + util-vserver/vserver-start/interface.h, + util-vserver/vserver-start/main.c, + util-vserver/vserver-start/scriptlets.c, + util-vserver/vserver-start/vshelper.c: added lots of new code - added an option the 'CONTEXT' query so that it can be choosen between - running/non running +2004-08-19 15:02 Enrico Scholz -2004-03-10 03:37 Enrico Scholz + * util-vserver/vserver-start/interface-print.c, + util-vserver/vserver-start/interface-remove.c, + util-vserver/vserver-start/mount.c, + util-vserver/vserver-start/mount.h, + util-vserver/vserver-start/undo.c, + util-vserver/vserver-start/undo.h: initial checkin - * src/: vlimit.c, vuname.c: +2004-08-19 14:31 Enrico Scholz - prefix option string for getopt with '+' to avoid option reordering + * util-vserver/src/vnamespace.c: fixed some #includes for the new + position of sys_clone.h -2004-03-10 03:36 Enrico Scholz +2004-08-19 14:30 Enrico Scholz - * scripts/: vapt-get, vrpm: + * util-vserver/src/vkill.c: define ENSC_WRAPPERS_UNISTD; it is used + for some legacy code - use callInNamespace +2004-08-19 14:30 Enrico Scholz -2004-03-10 03:35 Enrico Scholz + * util-vserver/src/rpm-fake.c: fixed some #includes to reflect + changed position of sys_clone.h - * scripts/functions: +2004-08-19 14:29 Enrico Scholz - isAvoidNamespace(): determine full cfgdir path of vserver before checking for 'namespace' file - callInNamespace(): added + * util-vserver/src/fstool.h: checkForRace(), resolveCtx(): removed + prototypes -2004-03-10 03:34 Enrico Scholz +2004-08-19 14:29 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/src/fstool.c: checkForRace(): removed as unused - minor cosmetical cleanups... +2004-08-19 14:28 Enrico Scholz -2004-03-10 03:33 Enrico Scholz + * util-vserver/src/chxid.c: use vc_xidopt2xid() instead of + resolveCtx() - * scripts/: chcontext, vserver.start, vserver.stop, vserver.suexec: +2004-08-19 14:28 Enrico Scholz - use '--' delimiter + * util-vserver/src/sys_clone.h: moved into lib_internal/ -2004-03-10 03:32 Enrico Scholz +2004-08-19 14:27 Enrico Scholz - * doc/configuration.xml: + * util-vserver/src/fstool-resolvectx.c: obsoleted; functionality is + already in libvserver - added/updated some descriptions +2004-08-19 14:10 Enrico Scholz -2004-03-10 03:32 Enrico Scholz + * util-vserver/lib_internal/testsuite/command.c: applied API + changes - * doc/configuration-lsd.css: +2004-08-19 14:09 Enrico Scholz - flowers... where are all the flowers coming from? + * util-vserver/lib_internal/command.h: added support for + plain-style char** args -2004-03-10 03:30 Enrico Scholz +2004-08-19 14:09 Enrico Scholz - * Makefile.am, contrib/Makefile-files, doc/Makefile-files, - ensc_vector/Makefile-files, ensc_vector/testsuite/Makefile-files, - ensc_wrappers/Makefile-files, lib/Makefile-files, - lib/testsuite/Makefile-files, lib_internal/Makefile-files, - man/Makefile-files, scripts/Makefile-files, src/Makefile-files, - src/testsuite/Makefile-files, tests/Makefile-files: + * util-vserver/lib_internal/command-appendparameter.c, + util-vserver/lib_internal/command-exec.c, + util-vserver/lib_internal/command-free.c, + util-vserver/lib_internal/command-init.c: handle plain-style + char** args also - modernized the Makefiles; use '+=' where possible to remove complexity - from the toplevel Makefile.am +2004-08-19 14:08 Enrico Scholz -2004-03-09 18:52 Enrico Scholz + * util-vserver/lib_internal/command-setparams.c, + util-vserver/lib_internal/sys_clone.h: initial checkin - * scripts/vprocunhide: +2004-08-19 14:07 Enrico Scholz - remove the correct prefix + * util-vserver/lib_internal/Makefile-files: added + command-setparams.c and sys_clone.h -2004-03-09 17:38 Enrico Scholz +2004-08-19 14:07 Enrico Scholz - * scripts/: vserver.stop, vserver.suexec: + * util-vserver/contrib/manifest.dat.pathsubst: marked + vserver.start.bin as C99-only - use $_CHONTEXT_COMPAT explicitly +2004-08-19 14:06 Enrico Scholz -2004-03-09 17:38 Enrico Scholz + * util-vserver/pathconfig.h.pathsubst: added some new paths - * scripts/vserver-setup.functions: +2004-08-19 14:06 Enrico Scholz - use/create 'uts' directory + * util-vserver/Makefile.am: automake-1.9 fixes: + s!VSERVER_LDFLAGS!VSERVER_LDFLGS! + removed some libtool-hacks which are not needed with automake-1.9 + anymore -2004-03-09 17:37 Enrico Scholz +2004-08-19 14:04 Enrico Scholz - * scripts/chcontext: + * util-vserver/vserver-start/Makefile-files: automake-1.9 fixes: + s!VSERVER_LDFLAGS!VSERVER_LDFLGS! + added lots of new files - updated copyright date +2004-08-19 14:03 Enrico Scholz -2004-03-09 17:37 Enrico Scholz + * util-vserver/src/Makefile-files: automake-1.9 fixes: + s!VSERVER_LDFLAGS!VSERVER_LDFLGS! + removed src/sys_clone.h (now in lib_internal/) + removed src/fstool-resolvectx.c - * doc/configuration.xml: +2004-08-19 14:01 Enrico Scholz - documented the vunify configuration + * util-vserver/lib/testsuite/Makefile-files, + util-vserver/tests/Makefile-files: automake-1.9 fixes: + s!VSERVER_LDFLAGS!VSERVER_LDFLGS! -2004-03-09 15:50 Enrico Scholz +2004-08-19 13:58 Enrico Scholz - * scripts/chcontext: + * util-vserver/lib/xidopt2xid.c: removed code without an effect - rewrote the non-legacy part +2004-08-19 13:57 Enrico Scholz -2004-03-09 15:35 Enrico Scholz + * util-vserver/lib/syscall-syscall.c: gcc35 fixes: do not make + vc_syscall() an alias for vserver() but execute it. - * scripts/util-vserver-vars.pathsubst: +2004-08-19 13:56 Enrico Scholz - aded _KEEP_CTX_ALIVE + * util-vserver/lib/isfile.c: initial checkin -2004-03-09 15:32 Enrico Scholz +2004-08-19 13:56 Enrico Scholz - * scripts/chcontext: + * util-vserver/lib/internal.h: utilvserver_isFile(): added + prototype - added missing ';' in case expression - s!_CTX_KEEP_ALIVE!_KEEP_CTX_ALIVE! +2004-08-19 13:56 Enrico Scholz -2004-03-09 05:06 Enrico Scholz + * util-vserver/lib/getvservercfgstyle.c: fixed detection of + legacy-style (check for file but not directory) - * NEWS: +2004-08-19 13:55 Enrico Scholz - version 0.29.198 + * util-vserver/lib/Makefile-files: addded 'isfile.c' -2004-03-09 04:58 Enrico Scholz +2004-08-19 13:54 Enrico Scholz - * scripts/: vserver.stop, vserver.suexec: + * util-vserver/ensc_wrappers/wrappers-stdlib.hc: Esetenv(): added - removed superfluous '--' +2004-08-19 13:54 Enrico Scholz -2004-03-09 04:58 Enrico Scholz + * util-vserver/ensc_wrappers/wrappers-socket.hc: Esend(), + Esocketpair(): added - * scripts/vserver.start: +2004-08-19 13:53 Enrico Scholz - added explicit cleanup trap - removed superfluous '--' + * util-vserver/ensc_fmt/fmt-internal.h: minor optimizations -2004-03-09 04:57 Enrico Scholz +2004-08-19 13:53 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/doc/configuration-xhtml.xsl: add '' tag - added some parenthesis +2004-07-08 11:44 Enrico Scholz -2004-03-09 04:57 Enrico Scholz + * util-vserver/doc/configuration.xml: documented vdir, run, run.rev + (provided by Olivier Poitrey) + added some links about [bc]capabilities and flags + added more scheduler doc (provided by Olivier Poitrey) + added some comments about 2.4 vs. 2.6 at rlimits/ulimits + added doc about rlimit's 'min' setting - * scripts/vserver: +2004-07-03 02:06 Enrico Scholz - made 'status' really silent + * util-vserver/NEWS, util-vserver/configure.ac: version 0.30.190 -2004-03-09 04:56 Enrico Scholz +2004-07-03 01:57 Enrico Scholz - * scripts/start-vservers: + * util-vserver/doc/configuration.xml: fixed path of the xsd file - initial checkin +2004-07-03 01:54 Enrico Scholz -2004-03-09 04:56 Enrico Scholz + * util-vserver/build-all: added fc-2 - * scripts/functions: +2004-07-03 01:38 Enrico Scholz - getVserverStatus(): fixed it for the non-running & non-cleanup case + * util-vserver/scripts/vserver.functions: prepareInit(): fixed case + when .autofsck does not exist -2004-03-09 04:55 Enrico Scholz +2004-07-03 01:35 Enrico Scholz - * ensc_wrappers/wrappers.h: + * util-vserver/scripts/chcontext: accept --xid and prefer it + against --ctx in the doc + added --silentexist option at --create - fixed typo - fixed overflow +2004-07-03 01:34 Enrico Scholz -2004-03-09 04:55 Enrico Scholz + * util-vserver/distrib/suse91/apt/rpmpriorities: initial checkin - * contrib/manifest.dat.pathsubst, scripts/Makefile-files: +2004-07-03 01:34 Enrico Scholz - added start-vservers + * util-vserver/distrib/redhat/rc.sysinit: call 'true' finally -2004-03-09 04:54 Enrico Scholz +2004-07-03 01:34 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/distrib/redhat/initpost: added comment about + possible races + fixed /etc/inittab substitution - added Requires: make +2004-07-03 01:34 Enrico Scholz -2004-03-09 03:01 Enrico Scholz + * util-vserver/distrib/Makefile.am: added redhat/rc.sysinit + added suse/apt/rpmpriorities + moved suse/apt/sources.list into the cfgdir - * scripts/vserver: +2004-07-03 01:33 Enrico Scholz - made 'status' silent when '--silent' is used + * util-vserver/contrib/manifest.dat.pathsubst: added + vserver.start.bin -2004-03-09 03:01 Enrico Scholz +2004-07-03 01:31 Enrico Scholz - * lib/apidoc/.cvsignore: + * util-vserver/vserver-start/Makefile-files: use + AM_INSTALLCHECK_STD_OPTIONS_EXEMPT for now - added man +2004-07-03 00:28 Enrico Scholz -2004-03-09 03:00 Enrico Scholz + * util-vserver/distrib/Makefile.am: added suse91 files - * doc/configuration.html[DEAD]: +2004-07-03 00:26 Enrico Scholz - removed since autogenerated + * util-vserver/distrib/redhat/rc.sysinit, + util-vserver/distrib/suse91, util-vserver/distrib/suse91/apt, + util-vserver/distrib/suse91/apt/sources.list, + util-vserver/distrib/suse91/initpost, + util-vserver/distrib/suse91/pkgs, + util-vserver/distrib/suse91/pkgs/01, + util-vserver/distrib/suse91/pkgs/02, + util-vserver/distrib/suse91/rpm, + util-vserver/distrib/suse91/rpm/macros, + util-vserver/vserver-start, + util-vserver/vserver-start/.cvsignore: initial checkin -2004-03-09 03:00 Enrico Scholz +2004-07-03 00:24 Enrico Scholz - * doc/configuration-lsd.css: + * util-vserver/distrib/redhat/initpost: some enhancements for + 'plain' initstyle - use official HTML 4 colornames +2004-07-03 00:22 Enrico Scholz -2004-03-09 02:59 Enrico Scholz + * util-vserver/lib_internal/testsuite, + util-vserver/lib_internal/testsuite/.cvsignore: added some files - * doc/: beautify.xsl, compatibility-xhtml.xsl, - configuration-xhtml.xsl: +2004-07-03 00:07 Enrico Scholz - use official XHTML namespace + * util-vserver/vserver-start/configuration-init.c, + util-vserver/vserver-start/configuration.c, + util-vserver/vserver-start/configuration.h, + util-vserver/vserver-start/interface-add.c, + util-vserver/vserver-start/interface-free.hc, + util-vserver/vserver-start/interface-init.hc, + util-vserver/vserver-start/interface-read.c, + util-vserver/vserver-start/interface.c, + util-vserver/vserver-start/interface.h, + util-vserver/vserver-start/main.c, + util-vserver/vserver-start/scriptlets.c, + util-vserver/vserver-start/vserver-start.h, + util-vserver/vserver-start/vshelper.c, + util-vserver/vserver-start/vshelper.h: initial checkin -2004-03-09 02:58 Enrico Scholz +2004-07-03 00:07 Enrico Scholz - * distrib/: defaults/rpm/macros, redhat/initpost: + * util-vserver/vserver-start/Makefile-files: added lots of files - added hack for https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=117827 +2004-07-03 00:05 Enrico Scholz -2004-03-08 20:55 Enrico Scholz + * util-vserver/src/vserver-info.c: added CANONIFY tag - * m4/ensc_syscallnr.m4: +2004-07-03 00:05 Enrico Scholz - stopped to confuse users with wrong error messages + * util-vserver/src/secure-mount.c: rewrite 'ext*' to 'ufs' -2004-03-08 20:55 Enrico Scholz +2004-07-02 23:55 Enrico Scholz - * lib/apidoc/Makefile-files: + * util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop: use a canonified lockfile-name - handle man directory +2004-07-02 23:54 Enrico Scholz -2004-03-08 20:54 Enrico Scholz + * util-vserver/scripts/vserver.functions: function prepareInit(): + do some cleanups in the plain-mode - * lib/apidoc/Doxyfile.in: +2004-07-02 23:54 Enrico Scholz - updated + * util-vserver/scripts/functions: vshelper.initSync(): use $1 + instead of $VSERVER_DIR -2004-03-08 20:53 Enrico Scholz +2004-07-02 23:49 Enrico Scholz - * doc/Makefile-files: + * util-vserver/lib_internal/util.h: include util-lockfile.h + canonifyVserverName(): added prototype - filled it with content... +2004-07-02 23:45 Enrico Scholz -2004-03-08 20:52 Enrico Scholz + * util-vserver/lib_internal/util-mem.h: optimized it a little bit - * util-vserver.spec.in: +2004-07-02 23:44 Enrico Scholz - added documentation + * util-vserver/lib_internal/pathinfo.h: ENSC_PI_DECLARE(): added -2004-03-08 19:14 Enrico Scholz +2004-07-02 23:44 Enrico Scholz - * doc/configuration.xml: + * util-vserver/lib_internal/command-wait.c: fixed stupid typo - documented tty symlink - use documentation.dtd instead of cfgdirdoc.dtd - some small corrections/adjustments +2004-07-02 23:35 Enrico Scholz -2004-03-08 19:13 Enrico Scholz + * util-vserver/lib_internal/Makefile-files: added lots of new files - * doc/: beautify.xsl, configuration-lsd.css, - configuration-xhtml.xsl, configuration.html: +2004-07-02 23:34 Enrico Scholz - initial checkin + * util-vserver/lib_internal/errinfo-writeerrno.c, + util-vserver/lib_internal/errinfo.h, + util-vserver/lib_internal/filecfg-readentryflag.c, + util-vserver/lib_internal/filecfg-readentrystr.c, + util-vserver/lib_internal/filecfg.h, + util-vserver/lib_internal/util-canonify.c, + util-vserver/lib_internal/util-lockfile.c, + util-vserver/lib_internal/util-lockfile.h: initial checkin -2004-03-08 19:12 Enrico Scholz +2004-07-02 23:31 Enrico Scholz - * doc/: compat-xhtml.xsl[DEAD], compatibility-xhtml.xsl: + * util-vserver/lib/vserver.h: small cosmetical cleanups - renamed compat-xhtml.xsl to compatibility-xhtml.xsl +2004-07-02 23:27 Enrico Scholz -2004-03-08 19:12 Enrico Scholz + * util-vserver/distrib/misc/mtab: s!ext2!ufs! - * doc/: cfgdirdoc.dtd[DEAD], configuration.dtd: +2004-07-02 23:27 Enrico Scholz - renamed cfgdirdoc.dtd to configuration.dtd + * util-vserver/pathconfig.h.pathsubst: added lots of PATH_* and + PROG_* macros needed for vserver-start.bin -2004-03-08 09:07 Enrico Scholz +2004-07-02 23:26 Enrico Scholz - * lib/vserver.h: + * util-vserver/build-all: removed gcc34 target (now default) + added gcc35 target (not working currently) - added more doc +2004-07-01 11:00 Enrico Scholz -2004-03-08 02:22 Enrico Scholz + * util-vserver/scripts/vserver.start: (re)enabled nice-support for + 2.6 vservers which was omitted inadvertently - * lib/testsuite/flags.c: +2004-07-01 10:33 Enrico Scholz - fixed uninitialized variable + * util-vserver/src/vlimit.c: fixed misinterpretation of '--xid' + introduced by rev 1.17 -2004-03-08 01:08 Enrico Scholz +2004-06-29 16:22 Enrico Scholz - * lib/apidoc/: .cvsignore, Doxyfile.in, Makefile-files: + * util-vserver/scripts/vserver-build.apt-rpm: fixed installation at + non-standard places - initial checkin +2004-06-29 16:22 Enrico Scholz -2004-03-08 01:06 Enrico Scholz + * util-vserver/scripts/vserver-build: fixed doc ('pkgcfgbase' vs. + 'pkgbase') - * scripts/vserver.start: +2004-06-27 14:40 Enrico Scholz - use '--migrate-self' instead of '--migrate' + * util-vserver/build-all, + util-vserver/lib_internal/command-appendparameter.c, + util-vserver/lib_internal/command-exec.c, + util-vserver/lib_internal/command-free.c, + util-vserver/lib_internal/command-init.c, + util-vserver/lib_internal/command-reset.c, + util-vserver/lib_internal/command-wait.c, + util-vserver/lib_internal/command.h, + util-vserver/lib_internal/testsuite, + util-vserver/lib_internal/testsuite/.cvsignore, + util-vserver/lib_internal/testsuite/Makefile-files, + util-vserver/lib_internal/testsuite/command.c: initial checkin -2004-03-08 00:59 Enrico Scholz +2004-06-27 14:38 Enrico Scholz - * src/vcontext.c: + * util-vserver/lib_internal/Makefile-files: added command* files + and testsuite/ - added '--migrate-self' support +2004-06-27 13:57 Enrico Scholz -2004-03-08 00:58 Enrico Scholz + * util-vserver/src/vserver-stat.c: enhanced output for old-style + vservers - * scripts/vserver.functions: +2004-06-27 13:13 Enrico Scholz - use different files for 'bcap' and 'ccap' for now + * util-vserver/distrib/misc/debootstrap.uri: updated... -2004-03-08 00:58 Enrico Scholz +2004-06-27 13:08 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/src/vserver-info.c: assume '- SYSINFO' when no other + options are given - added changelog entry +2004-06-27 13:06 Enrico Scholz -2004-03-07 23:43 Enrico Scholz + * util-vserver/src/vcopy.c: made it work... - * src/vunify.h: +2004-06-27 13:06 Enrico Scholz - fixed NONNULL annotations + * util-vserver/scripts/vserver-build.skeleton: do not fail when + '-d' is not specified and distribution can not be detected -2004-03-07 23:36 Enrico Scholz +2004-06-27 13:05 Enrico Scholz - * lib/vserver.h: + * util-vserver/scripts/vserver-build.functions: getDistribution(): + added detection for slackware and gentoo - added doxygen annnotations - added special compiler annotations +2004-06-27 13:04 Enrico Scholz -2004-03-07 23:34 Enrico Scholz + * util-vserver/scripts/vprocunhide: fixed typos - * lib/internal.h: +2004-06-27 13:04 Enrico Scholz - added doxygen annnotations - fixed NONNULL statements + * util-vserver/lib_internal/unify-unify.c: Unify_unify(): made it + work also when destination file does not exist (needed for vcopy) -2004-03-07 23:31 Enrico Scholz +2004-06-27 13:03 Enrico Scholz - * lib/fmt.h: + * util-vserver/lib_internal/unify-settime.c: Unify_setTime(): skip + operation on symlinks - added doxygen annnotations +2004-06-27 13:03 Enrico Scholz -2004-03-07 23:31 Enrico Scholz + * util-vserver/lib/vserver.h: vc_syscall(): added prototype + added/updated some doc - * lib/Makefile-files: +2004-06-27 13:02 Enrico Scholz - added apidoc directory + * util-vserver/lib/syscall-syscall.c: initial checkin -2004-03-07 23:29 Enrico Scholz +2004-06-27 13:02 Enrico Scholz - * configure.ac, util-vserver.spec.in: + * util-vserver/lib/getvserverbyctx-compat.hc, + util-vserver/lib/getvserverctx.c: added legacy support - added doxygen support +2004-06-27 13:01 Enrico Scholz -2004-03-07 23:24 Enrico Scholz + * util-vserver/lib/Makefile-files: added syscall-syscall.c - * compat.h: +2004-06-27 13:00 Enrico Scholz - fixed typo in __GNUC_MINOR__ + * util-vserver/ensc_fmt/fmt.h: cleanups; removed unneeded #undef's -2004-03-07 20:41 Enrico Scholz +2004-06-27 12:59 Enrico Scholz - * src/vattribute.c: + * util-vserver/doc/configuration.xml: added comment about + 'capabilities' file and kernelversion - use new interface of the list2... functions - implemented --bcaps and --ccaps +2004-06-17 21:32 Enrico Scholz -2004-03-07 20:41 Enrico Scholz + * util-vserver/vserver-start, + util-vserver/vserver-start/Makefile-files: initial checkin - * src/: chcontext.c, reducecap.c: +2004-06-17 21:31 Enrico Scholz - use new interface of the list2... functions + * util-vserver/Makefile.am: added silent.% target + include ensc_fmt/ and vserver-start/ files + minor cosmetical fixes -2004-03-07 20:40 Enrico Scholz +2004-06-16 10:10 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/ensc_vector/Makefile-files, + util-vserver/ensc_vector/vector-zeroend.c, + util-vserver/ensc_vector/vector.h: added Vector_zeroEnd() + function - added .../interfaces/.../nodev option and deprecated 'only_ip' +2004-06-16 10:07 Enrico Scholz -2004-03-07 20:40 Enrico Scholz + * util-vserver/lib/Makefile-files: moved fmt* functionality into + the 'ensc_fmt' module + removed '-D_REENTRANT' as it is defined globally - * lib/testsuite/flags.c: +2004-06-16 10:06 Enrico Scholz - applied new interface + * util-vserver/ensc_fmt, util-vserver/ensc_fmt/.cvsignore, + util-vserver/ensc_fmt/Makefile-files, + util-vserver/ensc_fmt/fmt-32.c, util-vserver/ensc_fmt/fmt-64.c, + util-vserver/ensc_fmt/fmt-internal.h, + util-vserver/ensc_fmt/fmt-tai64n.c, util-vserver/ensc_fmt/fmt.h, + util-vserver/ensc_fmt/fmt.hc, util-vserver/ensc_fmt/fmtx-32.c, + util-vserver/ensc_fmt/fmtx-64.c, util-vserver/ensc_fmt/fmtx.hc, + util-vserver/lib/fmt-32.c, util-vserver/lib/fmt-64.c, + util-vserver/lib/fmt-internal.h, util-vserver/lib/fmt.h, + util-vserver/lib/fmt.hc, util-vserver/lib/fmtx-32.c, + util-vserver/lib/fmtx-64.c, util-vserver/lib/fmtx.hc: moved fmt* + functionality into the 'ensc_fmt' module -2004-03-07 20:39 Enrico Scholz +2004-05-27 00:55 Enrico Scholz - * lib/vserver.h: + * util-vserver/scripts/chcontext, util-vserver/src/vcontext.c: + s!fakeinit!initpid! at some places - added some documentation - added some flag/caps support functions +2004-05-27 00:54 Enrico Scholz -2004-03-07 20:39 Enrico Scholz + * util-vserver/scripts/vserver.functions: use '--fakeinit' by + default; users will have to disable it explicitly + by putting '~fakeinit' into the 'flags' configuration file - * lib/virtual.h: +2004-05-27 00:54 Enrico Scholz - renamed scaps to bcaps + * util-vserver/scripts/vserver-build.debootstrap: cleanups -2004-03-07 20:38 Enrico Scholz +2004-05-27 00:53 Enrico Scholz - * lib/syscall_setflags.c: + * util-vserver/README: fixed typos - added EFAULT check +2004-05-27 00:51 Enrico Scholz -2004-03-07 20:38 Enrico Scholz + * util-vserver/distrib/misc/debootstrap.uri: updated - * lib/: syscall_getflags-v13.hc, syscall_setflags-v13.hc: +2004-05-27 00:50 Enrico Scholz - minor cosmetical cleanups + * util-vserver/util-vserver.spec.in: (re)added the MANIFEST_* + variables which were lost some time ago; this + will preserve %%config files... -2004-03-07 20:38 Enrico Scholz +2004-05-27 00:48 Enrico Scholz - * lib/listparser.hc: + * util-vserver/Makefile.am: make util-vserver.spec readonly to + prevent losing of changes - interpret numbers too +2004-05-27 00:46 Enrico Scholz -2004-03-07 20:37 Enrico Scholz + * util-vserver/README: added content - * lib/internal.h: +2004-05-22 00:39 Enrico Scholz - added the text2value functions + * util-vserver/sysv/vprocunhide: fixed rc conflict with + /etc/rc.d/functions; reported by taxcollector + in https://savannah.nongnu.org/bugs/?func=detailitem&item_id=9052 -2004-03-07 20:37 Enrico Scholz +2004-05-21 15:46 Enrico Scholz - * lib/: flags-v13.c, flags_list-compat.c, flags_list-v13.c: + * util-vserver/configure.ac, util-vserver/m4/gpgsig.am: added + support for the default GPG key - cleanups; use modern methods... +2004-05-21 15:27 Enrico Scholz -2004-03-07 20:35 Enrico Scholz + * util-vserver/scripts/functions, util-vserver/scripts/vapt-get, + util-vserver/scripts/vrpm: added some color to the life - * lib/: bcaps-v13.c, bcaps_list-v13.c, ccaps-v13.c, - ccaps_list-v13.c, syscall_getccaps-v13.hc, syscall_getccaps.c, - syscall_setccaps-v13.hc, syscall_setccaps.c, - val2text-t2v-uint32.c, val2text-t2v-uint64.c, - val2text-v2t-uint32.c, val2text-v2t-uint64.c, val2text.hc: +2004-05-20 00:38 Enrico Scholz - initial checkin + * util-vserver/scripts/pkgmgmt, util-vserver/scripts/vserver: mount + filesystems on 'vserver ... pkgmgmt ...' operations -2004-03-07 20:35 Enrico Scholz +2004-05-18 23:25 Enrico Scholz - * lib/Makefile-files: + * util-vserver/NEWS: version 0.29.214 - added the caps-files - added the val2text-files +2004-05-18 23:24 Enrico Scholz -2004-03-07 20:34 Enrico Scholz + * util-vserver/distrib/misc/debootstrap.uri: updated URL (again...) - * doc/configuration.xml: +2004-05-18 23:23 Enrico Scholz - documented '.../interfaces/.../nodev' + * util-vserver/distrib/Makefile.am, util-vserver/distrib/fc2, + util-vserver/distrib/fc2/apt, + util-vserver/distrib/fc2/apt/rpmpriorities, + util-vserver/distrib/fc2/apt/sources.list, + util-vserver/distrib/fc2/pkgs, util-vserver/distrib/fc2/pkgs/01, + util-vserver/distrib/fc2/pkgs/02: added fc2 support -2004-03-06 03:02 Enrico Scholz +2004-05-18 23:21 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/contrib/manifest.dat.pathsubst: removed clearenv, + added sigexec - s!Require!Requires! +2004-05-18 23:20 Enrico Scholz -2004-03-06 02:54 Enrico Scholz + * util-vserver/util-vserver.spec.in: s!@PACAKGE@!%name! at some + places - * sysv/vprocunhide: +2004-05-18 23:20 Enrico Scholz - initial checkin + * util-vserver/Makefile.am: substitute ENV -2004-03-06 02:54 Enrico Scholz +2004-05-11 18:49 Enrico Scholz - * sysv/Makefile-files: + * util-vserver/configure.ac, + util-vserver/scripts/util-vserver-vars.pathsubst, + util-vserver/scripts/vserver.start, + util-vserver/src/Makefile-files, util-vserver/src/clearenv.c: use + 'env' instead of 'clearenv'; the '-i' switch is SUSv3 and every + implementation should have it... - modernized; use '+=' syntax - added vprocunhide +2004-05-11 18:32 Enrico Scholz -2004-03-06 02:54 Enrico Scholz + * util-vserver/src/sigexec.c: initial checkin - * src/vuname.c: +2004-05-11 18:31 Enrico Scholz - made it chainable - added '--dir' option + * util-vserver/src/context-sync.hc, util-vserver/src/vnamespace.c, + util-vserver/src/vps.c: set SIGCHLD sigmask to an expected value + (SIG_DFL) + use new exitLikeProcess() interface -2004-03-06 02:53 Enrico Scholz +2004-05-11 18:30 Enrico Scholz - * src/vlimit.c: + * util-vserver/src/chcontext.c, util-vserver/src/secure-mount.c, + util-vserver/src/vcontext.c, util-vserver/src/vkill.c: set + SIGCHLD sigmask to an expected value (SIG_DFL) - cleanups +2004-05-11 18:28 Enrico Scholz -2004-03-06 02:53 Enrico Scholz + * util-vserver/src, util-vserver/src/.cvsignore, + util-vserver/src/Makefile-files: added sigexec - * scripts/vserver.start: +2004-05-11 18:28 Enrico Scholz - call vuname + * util-vserver/scripts/vshelper: execute vshelper through 'sigexec' + to set expected sigmask -2004-03-06 02:53 Enrico Scholz +2004-05-11 18:25 Enrico Scholz - * scripts/vprocunhide: + * util-vserver/lib_internal/util-exitlikeprocess.h: + exitLikeProcess(): readded the 'NORETURN' and added a 'ret' + parameter - implemented exclude/include syntax - fixed exit codes +2004-05-11 18:24 Enrico Scholz -2004-03-06 02:53 Enrico Scholz + * util-vserver/lib_internal/util-exitlikeprocess.c: + exitLikeProcess(): never return... - * scripts/util-vserver-vars.pathsubst: +2004-05-11 18:23 Enrico Scholz - added $_VUNAME + * util-vserver/lib_internal/switchtowatchxid.c: switchToWatchXid(): + modified the new migrate-path to work when there exists a process + in xid 1 already -2004-03-06 02:52 Enrico Scholz +2004-05-08 02:05 Enrico Scholz - * doc/configuration.xml: + * util-vserver/NEWS, util-vserver/configure.ac: version 0.29.213 - documents uts/ and rlimit/ subdirs +2004-05-08 01:40 Enrico Scholz -2004-03-06 02:52 Enrico Scholz + * util-vserver/src/exec-ulimit.c: added support for 'core' - * distrib/misc/vprocunhide-files: +2004-05-08 01:38 Enrico Scholz - added some files + * util-vserver/src/vps.c: use new exitLikeProcess() interface + better error-handling -2004-03-06 02:52 Enrico Scholz +2004-05-08 01:33 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/src/context-sync.hc, util-vserver/src/vnamespace.c: + use new exitLikeProcess() interface - added vprocunhide initscript +2004-05-08 01:33 Enrico Scholz -2004-03-06 02:51 Enrico Scholz + * util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop: added locking + call setDefaultTTY() correctly - * Makefile.am: +2004-05-08 01:31 Enrico Scholz - modernized it a little bit; use '+=' syntax for sysv/ now + * util-vserver/scripts/vserver-build.apt-rpm: call 'vapt-get -- + clean' after building the vserver -2004-03-05 23:10 Enrico Scholz +2004-05-08 01:30 Enrico Scholz - * scripts/: vserver.functions, vserver.start, vserver.stop, - vserver.suexec: + * util-vserver/scripts/functions: setDefaultTTY(): redirect every + descriptors - added support for new migrate feature +2004-05-08 01:30 Enrico Scholz -2004-03-05 23:09 Enrico Scholz + * util-vserver/lib_internal/util-exitlikeprocess.h: + exitLikeProcess(): removed the 'NORETURN'; this causes strange + error when the function returns + exitLikeProcess(): added a second, 'char *' parameter for the + human readable command - * scripts/util-vserver-vars.pathsubst: +2004-05-08 01:28 Enrico Scholz - added $_VCONTEXT and $_VLIMIT + * util-vserver/lib_internal/util-exitlikeprocess.c: be more verbose + when sending a signal -2004-03-05 23:09 Enrico Scholz +2004-05-08 01:28 Enrico Scholz - * scripts/functions: + * util-vserver/lib/testsuite/cflags.c: some changes to make gcc34 + happy - isAvoidNamespace(): use 'vserver-info - FEATURE namespace' inforamtion too +2004-05-08 01:27 Enrico Scholz -2004-03-05 20:51 Enrico Scholz + * util-vserver/lib/val2text.hc: include - * src/vlimit.c: +2004-05-08 01:27 Enrico Scholz - try to read limits from dir only, when '--dir' was used + * util-vserver/lib/getvservername.c: getRecentName(): use + realpath(3) instead of errorprone 'chdir()' calls -2004-03-05 20:50 Enrico Scholz +2004-05-08 01:26 Enrico Scholz - * src/setattr.c: + * util-vserver/lib/getvserverbyctx-compat.hc, + util-vserver/lib/getvserverctx.c: optimized buffersizes - allow '--!...' syntax too +2004-05-08 01:25 Enrico Scholz -2004-03-05 20:50 Enrico Scholz + * util-vserver/doc/configuration.xml: fixed apps/vunify/logfile + documentation; it must be configured on a + per-system, but not per-vserver base - * scripts/vserver-build.functions.pkgmgmt: +2004-05-08 01:25 Enrico Scholz - added a missing '\' + * util-vserver/distrib/misc/debootstrap.uri: updated again -2004-03-05 20:50 Enrico Scholz +2004-05-05 19:40 Enrico Scholz - * scripts/vprocunhide, distrib/misc/vprocunhide-files: + * util-vserver/src/clearenv.c: fixed case when '--' is used - initial checkin +2004-05-05 19:39 Enrico Scholz -2004-03-05 20:49 Enrico Scholz + * util-vserver/scripts/vshelper: fixed typo - * scripts/util-vserver-vars.pathsubst: +2004-05-05 19:39 Enrico Scholz - added setattr and vprocunhide + * util-vserver/scripts/vserver.start: use 'clearenv' in the new + path also -2004-03-05 20:48 Enrico Scholz +2004-05-05 19:39 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/scripts/vserver.functions: sendKillSequence(): be + silent and succeed everytime - added vprocunhide +2004-05-05 19:38 Enrico Scholz -2004-03-05 20:47 Enrico Scholz + * util-vserver/scripts/vserver-setup.functions: removed legacy code - * doc/configuration.xml: +2004-05-05 19:37 Enrico Scholz - documented vprocunhide documentation + * util-vserver/scripts/vrpm-preload, + util-vserver/src/rpm-fake-resolver.c, + util-vserver/src/rpm-fake.c: added code to preserve capabilities + and flags -2004-03-05 20:47 Enrico Scholz +2004-05-05 19:37 Enrico Scholz - * distrib/Makefile.am: + * util-vserver/lib_internal/unify-unify.c: added some doc - added vprocunhide-files +2004-05-05 19:36 Enrico Scholz -2004-03-05 20:47 Enrico Scholz + * util-vserver/lib/syscall_setiattr-fscompat.hc: be more carefully + regarding signed vs. unsigned int... - * contrib/manifest.dat.pathsubst: +2004-05-05 19:36 Enrico Scholz - added vprocunhide files + * util-vserver/lib/bcaps-v13.c: removePrefix(): fixed another 'len' + issue + include -2004-03-05 18:56 Enrico Scholz +2004-04-30 10:24 Enrico Scholz - * scripts/: vtop, chcontext, functions, rootshell, vapt-get, - vapt-get-worker, vpkg, vpstree, vrpm, vrpm-preload, vrpm-worker, - vserver, vserver-build, vserver-build.apt-rpm, - vserver-build.debootstrap, vserver-build.functions, - vserver-build.functions.pkgmgmt, vserver-build.skeleton, - vserver-copy, vserver.functions, vserver.start, vserver.stop, - vservers.grabinfo.sh, vsysvwrapper: + * util-vserver/lib/bcaps-v13.c: removePrefix(): fixed case when + len<4 - added some '>&2' +2004-04-28 19:18 Enrico Scholz -2004-03-05 18:24 Enrico Scholz + * util-vserver/doc/changelog.txt: removed since unused - * .cvsignore: +2004-04-28 18:12 Enrico Scholz - added FEATURES.txt + * util-vserver/lib/apidoc/Makefile-files: added list2xxx.syntax -2004-03-05 18:23 Enrico Scholz +2004-04-28 18:11 Enrico Scholz - * src/vlimit.c: + * util-vserver/src/readlink.c: enhanced errormessages - added '--dir' parameter - allow command-chaining - support limits with suffixes - make '-c' optionally and assume current ctx by default +2004-04-28 18:10 Enrico Scholz -2004-03-05 18:21 Enrico Scholz + * util-vserver/src/rpm-fake.c, util-vserver/src/vattribute.c: use + vc_get_insecurebcaps() instead of vc_get_insecurecaps() + set secure ccapabilities - * lib/testsuite/: Makefile-files, .cvsignore: +2004-04-28 18:09 Enrico Scholz - added parselimit + * util-vserver/src/chcontext.c, util-vserver/src/reducecap.c: use + vc_get_insecurebcaps() instead of vc_get_insecurecaps() -2004-03-05 18:21 Enrico Scholz +2004-04-28 18:08 Enrico Scholz - * lib/vserver.h: + * util-vserver/lib_internal/Makefile-files: added coreassert.h - vc_parseLimit(): added prototype +2004-04-28 18:08 Enrico Scholz -2004-03-05 18:20 Enrico Scholz + * util-vserver/lib/apidoc/list2xxx.syntax, + util-vserver/lib_internal/coreassert.h: initial checkin - * lib/Makefile-files: +2004-04-28 18:08 Enrico Scholz - added parselimit.c + * util-vserver/lib/testsuite/cflags.c: use + + added new testcases -2004-03-05 18:20 Enrico Scholz +2004-04-28 18:07 Enrico Scholz - * lib/: parselimit.c, testsuite/parselimit.c: + * util-vserver/lib/testsuite/fmt.c, + util-vserver/lib/testsuite/parselimit.c: use + - initial checkin +2004-04-28 18:07 Enrico Scholz -2004-03-05 05:44 Enrico Scholz + * util-vserver/lib/testsuite/Makefile-files: define ENSC_TESTSUITE - * src/.cvsignore: +2004-04-28 18:06 Enrico Scholz - updated; added vattribute and keep-ctx-alive + * util-vserver/lib/apidoc/Doxyfile.in: set EXAMPLE_PATH -2004-03-05 05:43 Enrico Scholz +2004-04-28 18:04 Enrico Scholz - * src/vcontext.c: + * util-vserver/lib/vserver.h: vc_get_insecureccaps(): added + cleanups + added documentation - implement the vc_set_flags() part +2004-04-28 18:04 Enrico Scholz -2004-03-05 05:43 Enrico Scholz + * util-vserver/lib/val2text.hc: use strncasecmp() instead of + strncmp() - * src/vattribute.c: +2004-04-28 18:04 Enrico Scholz - setFlags(): implemented it + * util-vserver/lib/listparser.hc: improved error-detection for the + '^' prefix + added support for 'none' + allow '0' -2004-03-05 05:42 Enrico Scholz +2004-04-28 17:57 Enrico Scholz - * lib_internal/Makefile-files: + * util-vserver/lib/bcaps-v13.c: added bcapability names + added code to remove a 'CAP_' prefix - added util-unixsock.hc +2004-04-28 17:56 Enrico Scholz -2004-03-05 05:42 Enrico Scholz + * util-vserver/lib/Makefile-files, + util-vserver/lib/getinsecurebcaps.c, + util-vserver/lib/getinsecurecaps.c: renamed getinsecurecaps.c to + getinsecurebcaps.c - * ensc_wrappers/wrappers-vserver.hc: +2004-04-23 16:47 Enrico Scholz - fixed error-checking + * util-vserver/NEWS, util-vserver/configure.ac, + util-vserver/doc/configuration-lsd.css: version 0.29.211 -2004-03-05 05:40 Enrico Scholz +2004-04-23 16:47 Enrico Scholz - * lib/: getprocentry-legacy.c, syscall-compat.hc, - syscall_getflags-v13.hc, syscall_getiattr.c, - syscall_getvxinfo-oldproc.hc, syscall_getvxinfo.c, - syscall_setflags-v13.hc: + * util-vserver/util-vserver.spec.in: readjusted Release: - return better errorcodes +2004-04-23 14:04 Enrico Scholz -2004-03-05 05:40 Enrico Scholz + * util-vserver/util-vserver.spec.in: cleaned up the %file-lists + buildrequire 'xalan-j' (can be disabled with '--without xalan') + removed 'libxslt' buildrequire - * ensc_wrappers/wrappers-vserver.hc: +2004-04-23 14:03 Enrico Scholz - fixed copy&paste error + * util-vserver/doc/Makefile-files: remove *.html only, when we can + recreate them -2004-03-05 05:40 Enrico Scholz +2004-04-23 11:10 Enrico Scholz - * ensc_wrappers/Makefile-files: + * util-vserver/lib/Makefile-files: fixed typo - added wrappers-socket.hc +2004-04-23 11:09 Enrico Scholz -2004-03-05 05:39 Enrico Scholz + * util-vserver/doc/Makefile-files: removed FAQ.txt and + configuration.dtd + added configuration.xsd - * contrib/manifest.dat.pathsubst: +2004-04-23 11:09 Enrico Scholz - added vattribute and keep-ctx-alive + * util-vserver/doc/FAQ.txt: obsoleted -2004-03-05 04:27 Enrico Scholz +2004-04-22 20:47 Enrico Scholz - * src/vserver-info.c: + * util-vserver/configure.ac: added 'net' API + disable 'legacy' API by default - added 'FEATURE' tag +2004-04-22 20:47 Enrico Scholz -2004-03-05 04:27 Enrico Scholz + * util-vserver/compat.h: added nid_t - * src/vcontext.c: +2004-04-22 20:47 Enrico Scholz - added support for external synchronization + * util-vserver/src/reducecap.c: fixed warnings when compiled + without legacy-mode -2004-03-05 04:27 Enrico Scholz +2004-04-22 20:46 Enrico Scholz - * src/reducecap.c: + * util-vserver/lib/Makefile-files, util-vserver/lib/ncaps-net.c, + util-vserver/lib/ncaps_list-net.c, util-vserver/lib/nflags-net.c, + util-vserver/lib/nflags_list-net.c, + util-vserver/lib/syscall_getncaps-net.hc, + util-vserver/lib/syscall_getncaps.c, + util-vserver/lib/syscall_getnflags-net.hc, + util-vserver/lib/syscall_getnflags.c, + util-vserver/lib/syscall_getnxinfo-net.hc, + util-vserver/lib/syscall_getnxinfo.c, + util-vserver/lib/syscall_gettasknid-net.hc, + util-vserver/lib/syscall_gettasknid.c, + util-vserver/lib/syscall_netadd-net.hc, + util-vserver/lib/syscall_netadd.c, + util-vserver/lib/syscall_netcreate-net.hc, + util-vserver/lib/syscall_netcreate.c, + util-vserver/lib/syscall_netmigrate-net.hc, + util-vserver/lib/syscall_netmigrate.c, + util-vserver/lib/syscall_netremove-net.hc, + util-vserver/lib/syscall_netremove.c, + util-vserver/lib/syscall_setncaps-net.hc, + util-vserver/lib/syscall_setncaps.c, + util-vserver/lib/syscall_setnflags-net.hc, + util-vserver/lib/syscall_setnflags.c, + util-vserver/lib/vserver-internal.h, util-vserver/lib/vserver.h: + added network layer functions - use vc_list2flag_compat() instead of vc_textlist2flag +2004-04-22 20:45 Enrico Scholz -2004-03-05 04:26 Enrico Scholz + * util-vserver/lib/syscall_ctxcreate-v13.hc: fixed return value - * src/: keep-ctx-alive.c, vattribute.c: +2004-04-22 19:33 Enrico Scholz - initial checkin + * util-vserver/doc/configuration.dtd: obsoleted by + configuration.xsd -2004-03-05 04:26 Enrico Scholz +2004-04-22 19:28 Enrico Scholz - * src/: fstool.c, fstool.h, setattr.c, showattr.c: + * util-vserver/THANKS: added Olivier Poitrey - added support for VC_IATTR_IMMUTABLE flag +2004-04-22 19:27 Enrico Scholz -2004-03-05 04:23 Enrico Scholz + * util-vserver/configure.ac: use xalan instead of xsltproc - * src/: enter-namespace.c[DEAD], new-namespace.c[DEAD]: +2004-04-22 19:24 Enrico Scholz - obsoleted by vnamespace + * util-vserver/doc/configuration-xhtml.xsl, + util-vserver/doc/configuration.xml, + util-vserver/doc/configuration.xsd: use the new, XSD-based format + which was defined by Olivier Poitrey -2004-03-05 04:23 Enrico Scholz +2004-04-22 19:01 Enrico Scholz - * src/chcontext.c: + * util-vserver/doc/configuration-xhtml.xsl: made it work with xalan + removed debug message - use vc_list2flag_compat() instead of vc_textlist2flag() +2004-04-22 19:00 Enrico Scholz -2004-03-05 04:22 Enrico Scholz + * util-vserver/doc/beautify.xsl: obsoleted - * src/Makefile-files: +2004-04-22 19:00 Enrico Scholz - removed new-namespace and enter-namespace - added keep-ctx-alive and vattribute - added src_legacy_* variables + * util-vserver/doc/Makefile-files: use xalan -2004-03-05 04:21 Enrico Scholz +2004-04-22 18:10 Enrico Scholz - * scripts/: vapt-get, vrpm, vserver: + * util-vserver/kernel/network.h, util-vserver/kernel/sched.h: + updated to vs1.9.0pre12 - use $_VNAMESPACE instead of $_NEW_NAMESPACE +2004-04-22 15:43 Enrico Scholz -2004-03-05 04:21 Enrico Scholz + * util-vserver/lib/cflags-v13.c, + util-vserver/lib/testsuite/cflags.c: use more specific names for + the flags - * scripts/util-vserver-vars.pathsubst: +2004-04-21 21:17 Enrico Scholz - added $_VATTRIBUTE and $_VNAMESPACE - removed $_NEW_NAMESPACE + * util-vserver/scripts/vserver.start: give correct vserver-name in + the hints ($VSERVER_DIR instead of $VSERVER_NAME) -2004-03-05 04:20 Enrico Scholz +2004-04-21 21:16 Enrico Scholz - * scripts/chcontext: + * util-vserver/scripts/vserver.functions: moved the 'ip_only' + handling to the right place - began to implement the new vcontext part... +2004-04-21 09:44 Enrico Scholz -2004-03-05 04:20 Enrico Scholz + * util-vserver/src/vshelper-sync.c: fixed missing initialization of + a timeout struct - * m4/ensc_syscallnr.m4: +2004-04-21 09:43 Enrico Scholz - use $ensc_cv_path_kernelheaders instead of $kernelincludedir + * util-vserver/src/vserver-stat.c: use uint64_t for the uptime + counter to handle medium+large uptimes + (>49 days) correctly -2004-03-05 04:19 Enrico Scholz +2004-04-21 00:24 Enrico Scholz - * lib_internal/util.h: + * util-vserver/scripts/vserver.functions: made 'nodev' work - include "util-unixsock.h" +2004-04-20 18:13 Enrico Scholz -2004-03-05 04:19 Enrico Scholz + * util-vserver/src, util-vserver/src/.cvsignore: added chain-echo - * lib_internal/unify-unify.c: +2004-04-20 18:07 Enrico Scholz - use VC_IATTR_IMMUTABLE flag too + * util-vserver/src/Makefile-files: added chain-echo -2004-03-05 04:17 Enrico Scholz +2004-04-20 18:07 Enrico Scholz - * lib_internal/util-unixsock.h: + * util-vserver/scripts/vshelper: use '--defaulttty' - initial checkin +2004-04-20 18:07 Enrico Scholz -2004-03-05 04:17 Enrico Scholz + * util-vserver/scripts/vserver.stop: use setDefaultTTY() - * lib/testsuite/flags.c: +2004-04-20 18:02 Enrico Scholz - updated to new flag functions + * util-vserver/scripts/vserver.start: use setDefaultTTY() + added explicit synchronization step for fakeinit with the old + methods -2004-03-05 04:16 Enrico Scholz +2004-04-20 18:01 Enrico Scholz - * lib/vserver.h: + * util-vserver/scripts/vserver: added '--defaulttty' option - use uint_leastX_t instead of uintX_t - added -compat versions for the flag-parsers - vc_isSupportedString(): added +2004-04-20 18:00 Enrico Scholz -2004-03-05 04:15 Enrico Scholz + * util-vserver/scripts/start-vservers: use --defaulttty options + instead of setting tty manually - * lib/internal.h: +2004-04-20 18:00 Enrico Scholz - added utilvserver_listparser_uint* declarations + * util-vserver/scripts/functions: setDefaultTTY(): added -2004-03-05 04:15 Enrico Scholz +2004-04-20 17:59 Enrico Scholz - * lib/: fmt-32.c, fmt-64.c, fmt.h, fmt.hc, fmtx-32.c, fmtx-64.c, - fmtx.hc: + * util-vserver/lib/getvservercfgstyle.c: * vc_getVserverCfgStyle(): + interprete relative ('./') and absolute + paths ('/...') as vcCFG_RECENT_FULL only + * vc_getVserverCfgStyle(): use utilvserver_isDirectory (fstat(2)) + instead of access(2) to check for directories - fixed aliased functions; they are now in the *.c files and will not be - used anymore by every file including 'fmt.h' +2004-04-20 17:57 Enrico Scholz -2004-03-05 04:13 Enrico Scholz + * util-vserver/ensc_wrappers/wrappers-unistd.hc: Edup(): added - * lib/: flags.c[DEAD], flags_list.c[DEAD]: +2004-04-20 17:57 Enrico Scholz - renamed to -compat.c + * util-vserver/ensc_wrappers/wrappers-fcntl.hc: Efcntl(): added -2004-03-05 04:11 Enrico Scholz +2004-04-20 17:57 Enrico Scholz - * lib/Makefile-files: + * util-vserver/distrib/misc/debootstrap.uri: added some entries - updated to new flags* files - added listparser* files - removed unused statements +2004-04-20 17:56 Enrico Scholz -2004-03-05 04:10 Enrico Scholz + * util-vserver/distrib/misc/vunify-exclude: updated - * ensc_wrappers/wrappers.h: +2004-04-20 17:55 Enrico Scholz - added wrappers-socket.hc + * util-vserver/contrib/manifest.dat.pathsubst, + util-vserver/scripts/util-vserver-vars.pathsubst: added + chain-echo -2004-03-05 04:10 Enrico Scholz +2004-04-20 17:54 Enrico Scholz - * ensc_wrappers/wrappers-socket.hc, lib/flags-compat.c, - lib/flags-v13.c, lib/flags_list-compat.c, lib/flags_list-v13.c, - lib/issupportedstring.c, lib/listparser.hc, - lib/listparser_uint32.c, lib/listparser_uint64.c: + * util-vserver/src/chain-echo.c: initial checkin - initial checkin +2004-04-15 02:33 Enrico Scholz -2004-03-05 04:10 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.29.209 - * ensc_wrappers/wrappers-iosock.hc: +2004-04-15 02:01 Enrico Scholz - modernized declarations (use WRAPPER_DECL) - WsendAll(),WrecvAll(): added 'int *err' parameter and do not use perror() anymore + * util-vserver/src/vcontext.c: setFlags(): optimized (nearly state + of 1.10) -2004-03-05 04:09 Enrico Scholz +2004-04-15 02:00 Enrico Scholz - * contrib/manifest.dat.pathsubst: + * util-vserver/scripts/vserver.suexec: call chbind when entering + vservers - removed new-namespace and enter-namespace; they are obsoleted by vnamespace +2004-04-15 01:59 Enrico Scholz -2004-03-05 04:08 Enrico Scholz + * util-vserver/scripts/vserver.functions: call vattribute with + '--flag fakeinit' additionally to the '--fakeinit' flag of + vcontext - * Makefile.am: +2004-04-15 01:59 Enrico Scholz - added $(src_legacy_*) + * util-vserver/scripts/functions: callInNamespace(): do not accept + non-running vservers -2004-03-04 05:05 Enrico Scholz +2004-04-15 01:58 Enrico Scholz - * m4/ensc_syscallnr.m4: + * util-vserver/distrib/misc/debootstrap.uri: updated - requires AC_PROG_CPP +2004-04-14 23:31 Enrico Scholz -2004-03-04 05:04 Enrico Scholz + * util-vserver/src/vcontext.c: applied new kernel API (*flags* -> + *cflags*, *_context -> ctx_*) + fixed '--fakeinit' option - * lib/vserver.h: +2004-04-14 23:29 Enrico Scholz - added VC_IATTR_IMMUTABLE + * util-vserver/scripts/vshelper: fixed another brokeness in CLI + option handling -2004-03-04 05:04 Enrico Scholz +2004-04-14 23:28 Enrico Scholz - * lib/virtual.h: + * util-vserver/scripts/functions: lock(): do not execute the pipe; + this does not work on 2.6 - added IATTR_IMMUTABLE +2004-04-14 23:28 Enrico Scholz -2004-03-04 05:04 Enrico Scholz + * util-vserver/lib/testsuite, + util-vserver/lib/testsuite/.cvsignore: added cflags - * lib/Makefile-files: +2004-04-14 23:27 Enrico Scholz - do not use -I $kernelincludedir anymore + * util-vserver/doc/configuration.xml: added some comments about + uts/context -2004-03-04 04:01 Enrico Scholz +2004-04-14 23:27 Enrico Scholz - * m4/ensc_syscallnr.m4: + * util-vserver/doc/configuration-xhtml.xsl: added a new boring + stylesheet - rewrote it... +2004-04-14 23:27 Enrico Scholz -2004-03-04 04:00 Enrico Scholz + * util-vserver/doc/configuration.css: initial checkin - * m4/: ensc_cflags.m4, ensc_dietlibc.m4, ensc_dietlibc_compat.m4, - ensc_fpicsyscall.m4, ensc_syscall.m4: +2004-04-14 23:26 Enrico Scholz - use unique identifiers + * util-vserver/contrib/make-manifest, + util-vserver/contrib/manifest.dat.pathsubst: added support for + '%config(...)' (or whatever) annotations -2004-02-27 20:58 Enrico Scholz +2004-04-14 23:25 Enrico Scholz - * NEWS, configure.ac: + * util-vserver/ensc_wrappers/wrappers-vserver.hc, + util-vserver/lib_internal/switchtowatchxid.c, + util-vserver/src/chcontext.c, util-vserver/src/reducecap.c, + util-vserver/src/rpm-fake-resolver.c, + util-vserver/src/rpm-fake.c, util-vserver/src/vattribute.c: + applied new kernel API (*flags* -> *cflags*, *_context -> ctx_*) - version 0.29.197 +2004-04-14 23:22 Enrico Scholz -2004-02-27 20:55 Enrico Scholz + * util-vserver/lib_internal/Makefile-files, + util-vserver/lib_internal/util.h: added util-debug.h - * distrib/redhat/initpost: +2004-04-14 23:22 Enrico Scholz - fixed kernel-pkg installation - fixed initscript update + * util-vserver/lib_internal/util-debug.h: initial checkin -2004-02-27 20:24 Enrico Scholz +2004-04-14 23:21 Enrico Scholz - * src/.cvsignore: + * util-vserver/kernel/context.h, util-vserver/kernel/cvirt.h, + util-vserver/kernel/inode.h, util-vserver/kernel/legacy.h, + util-vserver/kernel/limit.h, util-vserver/kernel/namespace.h, + util-vserver/kernel/network.h, util-vserver/kernel/sched.h, + util-vserver/kernel/switch.h, util-vserver/kernel/xid.h: updated + to vs1.90pre9 - added vsched +2004-04-14 23:21 Enrico Scholz -2004-02-27 20:23 Enrico Scholz + * util-vserver/lib/syscall-compat.hc, + util-vserver/lib/testsuite/Makefile-files, + util-vserver/lib/testsuite/cflags.c, + util-vserver/lib/testsuite/flags.c, util-vserver/lib/vserver.h: + applied new kernel API + renamed functions so that they correspond to the new kernel API - * lib/testsuite/fmt.c: +2004-04-14 23:19 Enrico Scholz - include + * util-vserver/lib/Makefile-files, + util-vserver/lib/cflags-compat.c, util-vserver/lib/cflags-v13.c, + util-vserver/lib/cflags_list-compat.c, + util-vserver/lib/cflags_list-v13.c, + util-vserver/lib/flags-compat.c, util-vserver/lib/flags-v13.c, + util-vserver/lib/flags_list-compat.c, + util-vserver/lib/flags_list-v13.c, + util-vserver/lib/syscall_createcontext-v13.hc, + util-vserver/lib/syscall_createcontext.c, + util-vserver/lib/syscall_ctxcreate-v13.hc, + util-vserver/lib/syscall_ctxcreate.c, + util-vserver/lib/syscall_ctxmigrate-v13.hc, + util-vserver/lib/syscall_ctxmigrate.c, + util-vserver/lib/syscall_getcflags-v13.hc, + util-vserver/lib/syscall_getcflags.c, + util-vserver/lib/syscall_getflags-v13.hc, + util-vserver/lib/syscall_getflags.c, + util-vserver/lib/syscall_migratecontext-v13.hc, + util-vserver/lib/syscall_migratecontext.c, + util-vserver/lib/syscall_setcflags-v13.hc, + util-vserver/lib/syscall_setcflags.c, + util-vserver/lib/syscall_setflags-v13.hc, + util-vserver/lib/syscall_setflags.c: renamed files so that their + names are corresponding the kernel + API. Especially, *_context was renamed to ctx_*, and *flags* to + *cflags*. -2004-02-27 19:58 Enrico Scholz +2004-04-13 08:28 Enrico Scholz - * contrib/manifest.dat.pathsubst: + * util-vserver/scripts/functions: further locking fixes - added vsched +2004-04-13 08:27 Enrico Scholz -2004-02-27 19:57 Enrico Scholz + * util-vserver/src/lockfile.c: propagate errors - * src/chbind.c: +2004-04-13 08:20 Enrico Scholz - removed unused variable + * util-vserver/src/chroot-rm.c: cleanups -2004-02-27 19:57 Enrico Scholz +2004-04-13 08:09 Enrico Scholz - * src/testsuite/rpm-fake-test.c: + * util-vserver/scripts/vshelper: open FD 0 + evaluate CLI options depending on used kernel API - include +2004-04-13 08:08 Enrico Scholz -2004-02-27 19:57 Enrico Scholz + * util-vserver/scripts/functions: use new locking mechanism - * src/: Makefile-files, vsched.c, vschedule.c[DEAD]: +2004-04-13 08:04 Enrico Scholz - renamed vschedule to vsched + * util-vserver/lib/issupported.c, + util-vserver/lib/issupportedstring.c, util-vserver/lib/vserver.h: + added VSHELPER0 feature -2004-02-27 19:48 Enrico Scholz +2004-04-08 08:33 Enrico Scholz - * src/.cvsignore: + * util-vserver/scripts/vserver.functions: execScriptlets(): fixed + initialization of 'start' + execScriptlets(): declare some variables as readonly + _sourceWrap(): added some variables - added chcontext-compat and vschedule +2004-04-08 06:06 Enrico Scholz -2004-02-27 19:46 Enrico Scholz + * util-vserver/scripts/vserver.functions: implemented support for + default-scriptlets (inspired by ideas of + Olivier Poitrey) - * src/Makefile-files: +2004-04-08 06:05 Enrico Scholz - added vschedule + * util-vserver/scripts/rootshell, + util-vserver/scripts/vapt-get-worker, + util-vserver/scripts/vprocunhide, util-vserver/scripts/vrpm, + util-vserver/scripts/vrpm-worker, + util-vserver/scripts/vserver-build, + util-vserver/scripts/vshelper: give more verbose error-messages -2004-02-27 19:45 Enrico Scholz +2004-04-08 06:04 Enrico Scholz - * lib/vserver.h: + * util-vserver/lib/syscall.c: added link-warning for + vc_new_s_context() - added vc_set_sched declarations +2004-04-08 06:04 Enrico Scholz -2004-02-27 19:45 Enrico Scholz + * util-vserver/doc/configuration.xml: added general description for + the scripts and documented + $DONT_SKIP_DEFAULTS - * lib/virtual.h: +2004-04-08 06:03 Enrico Scholz - removed 'otpions' field from vcmd_set_sched_v1 + * util-vserver/compat.h: LINK_WARNING(): added -2004-02-27 19:44 Enrico Scholz +2004-04-06 23:12 Enrico Scholz - * lib/syscall_setsched-v13.hc, lib/syscall_setsched.c, - src/vschedule.c: + * util-vserver/scripts/chcontext, + util-vserver/scripts/legacy/distrib-info, + util-vserver/scripts/legacy/vserver, + util-vserver/scripts/pkgmgmt, + util-vserver/scripts/start-vservers, + util-vserver/scripts/vapt-get, util-vserver/scripts/vpkg, + util-vserver/scripts/vpstree, util-vserver/scripts/vrpm-preload, + util-vserver/scripts/vserver, util-vserver/scripts/vserver-copy, + util-vserver/scripts/vserver-wrapper, + util-vserver/scripts/vservers.grabinfo.sh, + util-vserver/scripts/vsysvwrapper, util-vserver/scripts/vtop, + util-vserver/sysv/rebootmgr, util-vserver/sysv/vprocunhide, + util-vserver/sysv/vservers-legacy: give more comprehensive + error-message - initial checkin +2004-04-06 23:00 Enrico Scholz -2004-02-27 19:44 Enrico Scholz + * util-vserver/src/vps.c, util-vserver/src/vserver-info.c, + util-vserver/src/vserver-stat.c: use switchToWatchXid() - * lib/Makefile-files: +2004-04-06 22:59 Enrico Scholz - added *setsched* files + * util-vserver/src/Makefile-files: link some files against + libinternal.a -2004-02-27 19:02 Enrico Scholz +2004-04-06 22:58 Enrico Scholz - * src/chcontext.c: + * util-vserver/lib_internal/util.h: switchToWatchXid(): added + prototype - cleanups; applied name-change from 'chcontext' to 'chcontext-compat' +2004-04-06 22:58 Enrico Scholz -2004-02-27 19:02 Enrico Scholz + * util-vserver/lib_internal/switchtowatchxid.c: initial checkin - * src/Makefile-files: +2004-04-06 22:58 Enrico Scholz - renamed 'chcontext' to 'chcontext-compat' + * util-vserver/lib_internal/Makefile-files: added + switchtowatchxid.c -2004-02-27 19:01 Enrico Scholz +2004-04-06 22:57 Enrico Scholz - * scripts/util-vserver-vars.pathsubst: + * util-vserver/lib/vserver.h: VC_ATTR_DEPRECATED: added - added $_CHCONTEXT_COMPAT - updated $_CHCONTEXT +2004-04-06 22:57 Enrico Scholz -2004-02-27 19:01 Enrico Scholz + * util-vserver/lib/syscall-compat.hc: vc_chrootsafe_compat(): + removed - * scripts/functions: +2004-04-06 08:47 Enrico Scholz - isKernelAPI(): added + * util-vserver/src/vunify.c: applied new MatchList_compare() + interface -2004-02-27 19:00 Enrico Scholz +2004-04-06 08:46 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/src/vserver-stat.c: started support for HZ!=100 + cleanups - added chcontext wrapper +2004-04-06 08:44 Enrico Scholz -2004-02-27 18:59 Enrico Scholz + * util-vserver/src/vcopy.c: implement support for SKIP files - * lib/vserver.h: +2004-04-06 08:44 Enrico Scholz - added vc_isSupported() - cleanups + * util-vserver/src/rpm-fake-resolver.c, + util-vserver/src/rpm-fake.c: do not call vc_new_s_context() when + COMPAT API is not available -2004-02-27 18:59 Enrico Scholz +2004-04-06 08:43 Enrico Scholz - * lib/virtual.h: + * util-vserver/scripts/functions: cleanups + vshelper.doInit(): added another sanity check - updated scheduler definitions +2004-04-06 08:43 Enrico Scholz -2004-02-27 18:58 Enrico Scholz + * util-vserver/lib_internal/matchlist-appendfiles.c, + util-vserver/lib_internal/matchlist-compare.c, + util-vserver/lib_internal/matchlist.h: implemented support for + SKIP (~) files - * lib/issupported.c, scripts/chcontext: +2004-04-06 08:42 Enrico Scholz - initial checkin + * util-vserver/lib/testsuite/flags.c: added tests for new flags -2004-02-27 18:57 Enrico Scholz +2004-04-06 08:41 Enrico Scholz - * lib/Makefile-files: + * util-vserver/lib/vserver.h: updated VC_VXF_* constants + added VC_VXC_* constants - added issupported.c +2004-04-06 08:41 Enrico Scholz -2004-02-27 18:57 Enrico Scholz + * util-vserver/lib/flags-v13.c: added/updated flaglist - * contrib/manifest.dat.pathsubst: +2004-04-06 08:41 Enrico Scholz - added chcontext-compat + * util-vserver/lib/ccaps-v13.c: added ccap names -2004-02-27 05:44 Enrico Scholz +2004-04-06 08:40 Enrico Scholz - * src/vcontext.c: + * util-vserver/ensc_wrappers/wrappers-vserver.hc: cleanups - cleanups; restructured code +2004-04-06 08:40 Enrico Scholz -2004-02-27 05:43 Enrico Scholz + * util-vserver/distrib/misc/vunify-exclude: exclude keyfiles + completely + made some big files in /etc canditates for unify - * src/new-namespace.c: +2004-04-06 08:39 Enrico Scholz - cleanups; do not include "stack-start.h" anymore + * util-vserver/kernel/context.h, util-vserver/kernel/inode.h, + util-vserver/kernel/legacy.h, util-vserver/kernel/limit.h, + util-vserver/kernel/namespace.h, util-vserver/kernel/sched.h, + util-vserver/kernel/signal.h, util-vserver/kernel/xid.h: updated + to 2.6.5-vs1.9.0pre4 -2004-02-27 05:42 Enrico Scholz +2004-03-31 03:27 Enrico Scholz - * src/vnamespace.c: + * util-vserver/src/lockfile.c: optimized some things + now check, if getppid()==original_parent instead of getppid()!=1 + (might make a difference in vservers) - initial checkin +2004-03-31 03:26 Enrico Scholz -2004-02-27 05:42 Enrico Scholz + * util-vserver/scripts/functions: added some doc + s!_UV_LOCKS!_VS_LOCKS! - * src/: fakerunlevel.c, rpm-fake-resolver.c, save_ctxinfo.c, - vrsetup.c, vserver-stat.c: +2004-03-31 00:15 Enrico Scholz - use wrappers with detailed error-messages + * util-vserver/src/lockfile.c: fixed '--help' output -2004-02-27 05:40 Enrico Scholz +2004-03-31 00:10 Enrico Scholz - * src/: Makefile-files, .cvsignore: + * util-vserver/contrib/manifest.dat.pathsubst, util-vserver/src, + util-vserver/src/.cvsignore: added lockfile - added vnamespace +2004-03-31 00:05 Enrico Scholz -2004-02-27 05:40 Enrico Scholz + * util-vserver/src/lockfile.c: initial checkin - * lib/testsuite/fmt.c: +2004-03-31 00:04 Enrico Scholz - made non-C99 compilers happy + * util-vserver/src/Makefile-files: added lockfile -2004-02-27 05:40 Enrico Scholz +2004-03-31 00:04 Enrico Scholz - * lib/vserver.h: + * util-vserver/scripts/vserver.functions: enableInterfaces(), + disableInterfaces(): added locking + enableInterfaces(), disableInterfaces(): added IP_ADDR_FLUSH type - vc_set_namespace(), vc_cleanup_namespace(): added prototypes +2004-03-31 00:03 Enrico Scholz -2004-02-27 05:40 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: $_LOCKFILE, + $LOCKDIR: added - * lib/virtual.h: +2004-03-31 00:03 Enrico Scholz - added VCMD_set_namespace and VCMD_cleanup_namespace declarations + * util-vserver/scripts/functions: lock(),unlock(): added + isNumber(): added doc -2004-02-27 05:39 Enrico Scholz +2004-03-30 20:26 Enrico Scholz - * lib/Makefile-files: + * util-vserver/scripts/vserver.functions: made it work... - added *setnamespace* and *cleanupnamespace* files +2004-03-30 20:25 Enrico Scholz -2004-02-27 05:39 Enrico Scholz + * util-vserver/scripts/functions: isNumber(): fixed '0' case - * lib/: syscall_cleanupnamespace-v13.hc, - syscall_cleanupnamespace.c, syscall_setnamespace-v13.hc, - syscall_setnamespace.c: +2004-03-30 19:07 Enrico Scholz - initial checkin + * util-vserver/scripts/vserver.functions: implemented parts of Liam + Helmer's dummy-interface method -2004-02-27 05:38 Enrico Scholz +2004-03-30 19:00 Enrico Scholz - * ensc_wrappers/: wrappers-fcntl.hc, wrappers-unistd.hc: + * util-vserver/Makefile.am, util-vserver/configure.ac, + util-vserver/scripts/util-vserver-vars.pathsubst: added + substitutions/tests for iptables, modprobe, rmmod and nameif + (required for Liam Helmer's dummy-interfaces) - added some wrappers with detailed error-messages +2004-03-30 19:00 Enrico Scholz -2004-02-27 05:38 Enrico Scholz + * util-vserver/scripts/functions: isNumber(): added - * ensc_wrappers/wrappers.h: +2004-03-30 17:20 Enrico Scholz - added ENSC_DETAIL macros + * util-vserver/src/vshelper-sync.c: implemented it with select() + instead of alarm(); races are much nicer to handle -2004-02-27 05:37 Enrico Scholz +2004-03-30 16:10 Enrico Scholz - * distrib/defaults/rpm/macros: + * util-vserver/src/vshelper-sync.c: use sigaction() instead of + signal() to remove SA_RESTART flag explicitly - added /etc/rc.d/init.d/halt and /sbin/new-kernel-pkg to %_netsharedpath +2004-03-30 16:04 Enrico Scholz -2004-02-27 05:37 Enrico Scholz + * util-vserver/src/pipe-sync.c: obsoleted by vshelper-sync - * contrib/manifest.dat.pathsubst: +2004-03-30 15:51 Enrico Scholz - added vcontext and vnamespace + * util-vserver/contrib/manifest.dat.pathsubst, + util-vserver/src/Makefile-files: removed pipe-sync -2004-02-26 14:10 Enrico Scholz +2004-03-30 15:50 Enrico Scholz - * src/util-exitlikeprocess.c[DEAD]: + * util-vserver/kernel/context.h, util-vserver/kernel/cvirt.h, + util-vserver/kernel/limit.h, util-vserver/kernel/network.h, + util-vserver/kernel/sched.h, util-vserver/kernel/switch.h: + updated from vs0.09.28 - moved to lib_internal/ +2004-03-27 04:58 Enrico Scholz -2004-02-26 14:10 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.29.207 - * src/util.h: +2004-03-26 09:50 Enrico Scholz - removed everything an include only + * util-vserver/scripts/vshelper: use 'findObject -e' instead of + 'findFile' to find /dev/null also -2004-02-26 14:09 Enrico Scholz +2004-03-26 09:50 Enrico Scholz - * src/.cvsignore: + * util-vserver/scripts/vserver.start: fixed call of + vshelper.isEnabled - added vcontext +2004-03-26 09:49 Enrico Scholz -2004-02-26 14:08 Enrico Scholz + * util-vserver/doc/configuration.xml: fixed some typos - * src/: chcontext.c, rpm-fake-resolver.c, rpm-fake.c: +2004-03-26 09:05 Enrico Scholz - use VC_DYNAMIC_XID instead of VC_RANDCTX + * util-vserver/doc/configuration.xml: documented + apps/vshelper/logfile symlink -2004-02-26 14:07 Enrico Scholz +2004-03-26 09:03 Enrico Scholz - * src/vcontext.c: + * util-vserver/scripts/vshelper: ignore 'restart2' event; this + seems to be issued at vserver *start* + added support for a logfile + enable logfile-logging when invoked from kernel (no tty) - initial checkin +2004-03-26 08:29 Enrico Scholz -2004-02-26 14:06 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: fixed order of + variables + fixed _VSHELPER path - * src/testsuite/Makefile-files: +2004-03-26 08:28 Enrico Scholz - removed 'util-exitlikeprocess.c'; link against libinternal.a now + * util-vserver/contrib/manifest.dat.pathsubst: fixed vshelper path + added vshelper-sync -2004-02-26 14:06 Enrico Scholz +2004-03-26 08:27 Enrico Scholz - * src/Makefile-files: + * util-vserver/util-vserver.spec.in: added some Requires: + own %dir /var/run/vshelper - added vcontext - removed 'util-exitlikeprocess.c'; link against libinternal.a now +2004-03-26 08:27 Enrico Scholz -2004-02-26 14:05 Enrico Scholz + * util-vserver/Makefile.am: added substition for @VSHELPERSTATEDIR@ + minor cosmetical cleanups - * scripts/functions: +2004-03-26 07:45 Enrico Scholz - s!/vservers!$DEFAULT_VSERVERDIR! (reported in IRC by broo) + * util-vserver/src, util-vserver/src/.cvsignore: added + vshelper-sync -2004-02-26 14:03 Enrico Scholz +2004-03-26 07:40 Enrico Scholz - * lib_internal/util-mem.h: + * util-vserver/scripts/vshelper, util-vserver/src/vshelper-sync.c: + initial checkin - include +2004-03-26 07:40 Enrico Scholz -2004-02-26 14:03 Enrico Scholz + * util-vserver/src/vserver-info.c: - added tgID and tgPXID support + - accept 'true' as boolean value + - optimized the code a little bit so that the xid will be looked + up + only when really needed - * lib_internal/Makefile-files: +2004-03-26 07:38 Enrico Scholz - added lots of util-* headers - added util-exitlikeprocess + * util-vserver/src/vps.c: in output, added a ' ' on overlong + vserver-names -2004-02-26 14:02 Enrico Scholz +2004-03-26 07:38 Enrico Scholz - * lib/vserver.h: + * util-vserver/src/secure-mount.c: rewrote some parts to cope + better with '-o' options (required for -bme + patches to work) - * vc_create_context(), vc_migrate_context(), vc_[sg]et_flags(): added - prototypes plus structures - * use VC_DYNAMIC_XID instead of VC_RANDCTX +2004-03-26 07:37 Enrico Scholz -2004-02-26 14:01 Enrico Scholz + * util-vserver/src/Makefile-files: added vshelper-sync - * lib/vserver-internal.h: +2004-03-26 07:36 Enrico Scholz - added CALL_VC_V13A macro (for API >= 0x00010012) - use VC_DYNAMIC_XID instead of VC_RANDCTX + * util-vserver/scripts/vserver.stop: added VSHELPER & + synchronization code -2004-02-26 14:01 Enrico Scholz +2004-03-26 07:36 Enrico Scholz - * lib/virtual.h: + * util-vserver/scripts/vserver.start: added documentation about + failure reasons + added VSHELPER code - added create+migrate+flags+caps declarations +2004-03-26 07:35 Enrico Scholz -2004-02-26 14:00 Enrico Scholz + * util-vserver/scripts/vserver.functions: adapted code to new + getFileArray() behavior + added VSHELPER support + added "LEGACY ALERT" messages + initSync(),waitForSync(): added - * lib/syscall_createcontext-v13.hc, lib/syscall_createcontext.c, - lib/syscall_getflags-v13.hc, lib/syscall_getflags.c, - lib/syscall_migratecontext-v13.hc, lib/syscall_migratecontext.c, - lib/syscall_setflags-v13.hc, lib/syscall_setflags.c, - lib_internal/util-cast.h, lib_internal/util-commonstrings.h, - lib_internal/util-declarecmd.h, lib_internal/util-dimof.h, - lib_internal/util-exitlikeprocess.c, - lib_internal/util-exitlikeprocess.h, lib_internal/util.h: +2004-03-26 07:33 Enrico Scholz - initial checkin + * util-vserver/scripts/vserver-setup.functions: added a "LEGACY + ALERT" -2004-02-26 14:00 Enrico Scholz +2004-03-26 07:33 Enrico Scholz - * lib/Makefile-files: + * util-vserver/scripts/vserver-build: fixed code to work with new + behavior of getFileArray - added createcontext + migratecontext + [sg]etflags files +2004-03-26 07:32 Enrico Scholz -2004-02-26 13:59 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added some + missing variables + added the vshelper variables - * ensc_wrappers/wrappers-vserver.hc: +2004-03-26 07:31 Enrico Scholz - Evc_create_context(), Evc_migrate_context(): added - use WRAPPER_DECL instead of UNUSED + * util-vserver/scripts/pkgmgmt: use pkgmgmt.isAptAvailable() -2004-02-25 12:47 Enrico Scholz +2004-03-26 07:30 Enrico Scholz - * src/vlimit.c: + * util-vserver/scripts/functions: + logging(),warning(),panic(),execute(): added + pkgmgmt.isAptAvailable(): added + vshelper.*(): added + getFileArray(): fail, when file does not exist - enhanced output - added -nd options - allow literal limits - assume '-H' by default +2004-03-26 07:29 Enrico Scholz -2004-02-25 12:46 Enrico Scholz + * util-vserver/contrib/manifest.dat.pathsubst, + util-vserver/scripts/Makefile-files: added vshelper - * lib/testsuite/.cvsignore: +2004-03-26 07:28 Enrico Scholz - added 'fmt' + * util-vserver/lib/vserver.h: - minor cleanups + - added vcFEATURE_VSHELPER + - vc_isSupported(): annotated it + - vc_get_insecurecaps(): moved it into an own file; CAP_SYS_BOOT + requires a special handling so inlining is not really usefully + anymore -2004-02-25 12:45 Enrico Scholz +2004-03-26 07:26 Enrico Scholz - * src/util.h: + * util-vserver/lib/issupported.c, + util-vserver/lib/issupportedstring.c: added VSHELPER - include util-perror.h +2004-03-26 07:26 Enrico Scholz -2004-02-25 12:45 Enrico Scholz + * util-vserver/lib/Makefile-files: added getinsecurecaps.c - * src/: chcontext.c, secure-mount.c: +2004-03-26 07:26 Enrico Scholz - use more verbose perror() + * util-vserver/lib/getinsecurecaps.c: initial checkin -2004-02-25 12:44 Enrico Scholz +2004-03-26 07:25 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/doc/configuration.xml: documented the vshelper stuff - added better namespace supportc +2004-03-26 07:25 Enrico Scholz -2004-02-25 12:43 Enrico Scholz + * util-vserver/doc/configuration.dtd: added a type for 'script' - * lib/testsuite/fmt.c, lib_internal/util-perror.h: +2004-03-26 07:24 Enrico Scholz - initial checkin + * util-vserver/distrib/Makefile.am: cleanups in the directory + creation rules -2004-02-25 12:43 Enrico Scholz +2004-03-26 07:23 Enrico Scholz - * lib/testsuite/Makefile-files: + * util-vserver/util-vserver.spec.in: use 'install-distribution' + instead of 'install-vserverdir' + added vshelper stuff - added fmt.c +2004-03-26 07:23 Enrico Scholz -2004-02-25 12:43 Enrico Scholz + * util-vserver/Makefile.am: cleanups and enhancements in the + directory installation rules - * lib/fmt.h: +2004-03-24 05:51 Enrico Scholz - fmt_[u]int{32,64}(): added + * util-vserver/NEWS: version 0.29.205 -2004-02-21 00:36 Enrico Scholz +2004-03-24 05:51 Enrico Scholz - * lib/flags.c: + * util-vserver/src/Makefile-files: fixed LDADD flags for capchroot - cosmetical cleanups +2004-03-24 05:30 Enrico Scholz -2004-02-21 00:33 Enrico Scholz + * util-vserver/src/vsched.c: enhanced the in-chain operation; make + it a noop when called without opts + enhanced error messages - * lib/: flags.c, vserver.h: +2004-03-24 05:23 Enrico Scholz - added NAMESPACE flag + * util-vserver/scripts/util-vserver-vars.pathsubst, + util-vserver/scripts/vserver.functions, + util-vserver/scripts/vserver.start: added scheduler support -2004-02-20 22:14 Enrico Scholz +2004-03-24 05:23 Enrico Scholz - * src/Makefile-files: + * util-vserver/doc/configuration.xml: added basic documentation for + bcapabilities, ccapabilities and schedule - install enter-namespace into $(sbindir) instead of $(pkglibdir) +2004-03-24 04:56 Enrico Scholz -2004-02-20 22:08 Enrico Scholz + * util-vserver/lib/vserver.h, util-vserver/src/chcontext.c, + util-vserver/src/reducecap.c, util-vserver/src/rpm-fake.c, + util-vserver/src/vattribute.c, util-vserver/src/vps.c: renamed + vc_get_securecaps() to vc_get_insecurecaps() - * src/new-namespace.c: +2004-03-24 04:47 Enrico Scholz - added missing '#include ' + * util-vserver/scripts/vserver.start: added missing '\' -2004-02-20 21:53 Enrico Scholz +2004-03-24 04:46 Enrico Scholz - * NEWS, configure.ac: + * util-vserver/src/vattribute.c, util-vserver/src/vcontext.c, + util-vserver/src/vlimit.c, util-vserver/src/vnamespace.c, + util-vserver/src/vserver-info.c, util-vserver/src/vuname.c: use + vc_xidopt2xid() - version 0.29.196 +2004-03-24 04:45 Enrico Scholz -2004-02-20 21:33 Enrico Scholz + * util-vserver/src/chcontext.c, util-vserver/src/vkill.c, + util-vserver/src/vsched.c: prefer '--xid' instead of '--ctx' + use vc_xidopt2xid() - * src/.cvsignore: +2004-03-24 04:43 Enrico Scholz - added enter-namespace + * util-vserver/scripts/vserver.start: added support for + $VSERVER_EXTRA_CMDS[] which can be set in userscripts -2004-02-20 21:27 Enrico Scholz +2004-03-24 04:43 Enrico Scholz - * src/enter-namespace.c: + * util-vserver/scripts/vserver-build.debootstrap: call 'wget' with + '-nv' instead of '-q' - initial checkin +2004-03-24 04:42 Enrico Scholz -2004-02-20 21:26 Enrico Scholz + * util-vserver/lib/vserver.h: vc_xidopt2xid(): added prototype - * src/Makefile-files, contrib/manifest.dat.pathsubst: +2004-03-24 04:42 Enrico Scholz - added enter-namespace + * util-vserver/lib/Makefile-files: added xidopt2xid.c -2004-02-20 21:05 Enrico Scholz +2004-03-24 04:41 Enrico Scholz - * src/vlimit.c: + * util-vserver/lib/xidopt2xid.c: initial checkin - merged with 0.29.2 +2004-03-24 04:41 Enrico Scholz -2004-02-20 20:06 Enrico Scholz + * util-vserver/ensc_wrappers/wrappers-vserver.hc: Evc_xidopt2xid(): + added - * src/vlimit.c: +2004-03-24 04:41 Enrico Scholz - changed logic to skip entries without chance for success + * util-vserver/distrib/misc/debootstrap.uri: updated to recent + version -2004-02-20 20:04 Enrico Scholz +2004-03-24 04:40 Enrico Scholz - * lib/Makefile-files: + * util-vserver/util-vserver.spec.in: fixed Requires() + fixed some %dir's - cleanups +2004-03-24 01:48 Enrico Scholz -2004-02-20 20:03 Enrico Scholz + * util-vserver/src/vlimit.c: cleaned up CLI: '--xid' is supported + now, removed '-h' and '-v' options + minor cleanups - * lib/syscall_rlimit-v11.hc: +2004-03-24 01:45 Enrico Scholz - vc_get_rlimit_mask_v11(): use correct datastructure + * util-vserver/sysv/vservers-legacy: initial checkin -2004-02-20 18:59 Enrico Scholz +2004-03-24 01:44 Enrico Scholz - * lib/: Makefile-files, virtual.h, vserver.h: + * util-vserver/sysv/rebootmgr, util-vserver/sysv/rebootmgr.subst: + 'rebootmgr' is now a src-script - added the enter-namespace stuff +2004-03-24 01:44 Enrico Scholz -2004-02-20 18:58 Enrico Scholz + * util-vserver/sysv/Makefile-files: 'rebootmgr' is now a src-script + added vservers-legacy - * lib/: syscall_enternamespace-v13.hc, syscall_enternamespace.c: +2004-03-24 01:43 Enrico Scholz - initial checkin + * util-vserver/src/vattribute.c: initialize 'bmask' member of + struct vc_ctx_caps + use negative logic of --bcap (this should be the 'old' behavior + of '--cap') -2004-02-20 18:06 Enrico Scholz +2004-03-24 01:42 Enrico Scholz - * ensc_wrappers/wrappers_handler.hc: + * util-vserver/src/rpm-fake.c: initialize 'bmask' member of struct + vc_ctx_caps - added support for more extensive output +2004-03-24 01:41 Enrico Scholz -2004-02-20 18:05 Enrico Scholz + * util-vserver/src/capchroot.c, util-vserver/src/filetime.c, + util-vserver/src/readlink.c: rewrote it - * contrib/manifest.dat.pathsubst: +2004-03-24 01:41 Enrico Scholz - moved vserver-info into core + * util-vserver/src/Makefile-files: cleanups; moved some programs + into $legacydir -2004-02-20 18:05 Enrico Scholz +2004-03-24 01:40 Enrico Scholz - * lib/vserver-internal.h: + * util-vserver/scripts/util-vserver-vars.pathsubst: added more + legacy programs - VC_ENABLE_API_V13(): incremented needed API-version +2004-03-24 01:32 Enrico Scholz -2004-02-20 18:04 Enrico Scholz + * util-vserver/scripts/legacy/vserver: use $_XXXX variables instead + of static commandnames + use variables for paths - * lib/syscall_getvxinfo-v13.hc: +2004-03-24 01:21 Enrico Scholz - vc_get_vx_info_v13(): handle xid==0 and xid==1 case manually + * util-vserver/scripts/legacy/distrib-info: moved parserpmdump to + legacy -2004-02-20 18:02 Enrico Scholz +2004-03-24 01:15 Enrico Scholz - * src/vlimit.c: + * util-vserver/scripts/util-vserver-vars.pathsubst: added + $_REBOOTMGR - cleanup output in error-case +2004-03-24 01:15 Enrico Scholz -2004-02-20 18:02 Enrico Scholz + * util-vserver/m4/ensc_dietlibc.m4: fixed copy&paste error - * src/stack-start.h: +2004-03-24 01:12 Enrico Scholz - fixed begin of STACK_START for non-growing stacks + * util-vserver/ChangeLog.sed, util-vserver/cvsusers.map, + util-vserver/ensc_vector, util-vserver/ensc_vector/.cvsignore, + util-vserver/lib_internal, util-vserver/lib_internal/.cvsignore: + initial checkin -2004-02-20 18:01 Enrico Scholz +2004-03-24 01:11 Enrico Scholz - * src/fakerunlevel.c: + * util-vserver, util-vserver/.cvsignore, util-vserver/distrib, + util-vserver/distrib/.cvsignore, + util-vserver/ensc_vector/testsuite, + util-vserver/ensc_vector/testsuite/.cvsignore, util-vserver/lib, + util-vserver/lib/.cvsignore, util-vserver/lib/testsuite, + util-vserver/lib/testsuite/.cvsignore, util-vserver/src, + util-vserver/src/.cvsignore, util-vserver/src/testsuite, + util-vserver/src/testsuite/.cvsignore, util-vserver/tests, + util-vserver/tests/.cvsignore: added some standardfiles; I do not + want to wait until Savannah fixes + its scripts and allows access to CVSROOT/cvsignore again. - use more extensive errormessages - use +2004-03-24 01:07 Enrico Scholz -2004-02-20 18:01 Enrico Scholz + * util-vserver/lib_internal/util-perror.h: placed a 'do ... while + (0)' block around the macros - * lib/: fscompat_getiattr-v13.hc[DEAD], fscompat_getiattr.c[DEAD], - fscompat_setiattr-v13.hc[DEAD], fscompat_setiattr.c[DEAD]: +2004-03-24 01:07 Enrico Scholz - obsoleted + * util-vserver/lib/bcaps_list-v13.c, + util-vserver/lib/syscall_getccaps-v13.hc, + util-vserver/lib/syscall_setccaps-v13.hc: handle the new struct + vc_ctx_caps::bmask member -2004-02-20 17:59 Enrico Scholz +2004-03-24 01:05 Enrico Scholz - * src/: chcontext.c, clearenv.c, exec-cd.c, exec-ulimit.c, - ifspec.c, listdevip.c, new-namespace.c, reducecap.c, - rpm-fake-resolver.c, rpm-fake.c, save_ctxinfo.c, secure-mount.c, - vkill.c: + * util-vserver/contrib/manifest.dat.pathsubst: moved some files + into legacy + handle sysv scripts - do not do the lo-check anymore +2004-03-24 01:05 Enrico Scholz -2004-02-20 17:57 Enrico Scholz + * util-vserver/util-vserver.spec.in: added formerly missing + 'v_gated' registration + updated -legacy subpackage and moved some initscripts into it - * src/chbind.c: +2004-03-24 01:04 Enrico Scholz - use more extensive errormessages - do not do the lo-check anymore + * util-vserver/lib/vserver.h: do not use PURE before gcc 3.3.3 + use a more effective way to determine gcc revision + struct vc_ctx_caps: added 'bmask' member -2004-02-20 03:38 Enrico Scholz +2004-03-24 01:03 Enrico Scholz - * src/vserver-info.c: + * util-vserver/compat.h: do not use PURE before gcc 3.3.3 + use a more effective way to determine gcc revision - fix copy&paste error when giving out initpid +2004-03-23 01:15 Enrico Scholz -2004-02-19 23:42 Enrico Scholz + * util-vserver/scripts/vserver-wrapper: fixed typo (missing 's') - * NEWS: +2004-03-22 23:27 Enrico Scholz - version 0.29.195 + * util-vserver/scripts/vserver-build.functions: added basic support + for SuSE (patch from Thomas Guettler) + give more hints in errormessages (patch from Thomas Guettler) -2004-02-19 23:32 Enrico Scholz +2004-03-22 23:18 Enrico Scholz - * src/vserver-info.c: + * util-vserver/scripts/vpkg: give out errormessage on unknown + distribution type - added SYSINFO command - internal cleanups +2004-03-22 23:13 Enrico Scholz -2004-02-19 23:31 Enrico Scholz + * util-vserver/scripts/functions: added basic support for SuSE - * m4/ensc_e2fscheck.m4: +2004-03-19 16:58 Enrico Scholz - tell correct packagename for Debian's e2fsprogs-devel - tell packagename for Mandrake + * util-vserver/src/vserver-stat.c: fixed race when process + disappeared shortly after reading /proc -2004-02-19 23:29 Enrico Scholz +2004-03-19 16:57 Enrico Scholz - * src/: chxid.c, fstool.c, fstool.h, lsxid.c, setattr.c, - showattr.c: + * util-vserver/doc/configuration.xml: documented + apps/init/{mark,depends} + mentioned the gentoo initstyle - applied new iattr interface and changed some internal functions +2004-03-19 16:57 Enrico Scholz -2004-02-19 23:25 Enrico Scholz + * util-vserver/doc/configuration-lsd.css: followed Bertl's + suggestion and added a subliminal message - * lib_internal/: unify-unify.c, util-safechdir.c: +2004-03-19 16:51 Enrico Scholz - applied new iattr interface + * util-vserver/configure.ac: require at least version 0.24 of + dietlibc -2004-02-19 23:25 Enrico Scholz +2004-03-19 16:51 Enrico Scholz - * lib/vserver.h: + * util-vserver/m4/ensc_dietlibc.m4: allow to specify a + - * changed iattr interface - * removed *iattr_compat() functions; functionality is covered by new - iattr interface already +2004-03-18 06:06 Enrico Scholz -2004-02-19 23:23 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.29.204 - * lib/virtual.h: +2004-03-18 06:06 Enrico Scholz - added new iattr definitions + * util-vserver/lib_internal/util-dotfile.h: do not use PURE; it is + not applicable for inline declarations -2004-02-19 23:22 Enrico Scholz +2004-03-18 05:59 Enrico Scholz - * lib/: syscall_getiattr-v13.hc, syscall_getiattr.c, - syscall_setiattr-v13.hc, syscall_setiattr.c: + * util-vserver/compat.h: fixed broken condition for PURE + define __builtin_expect() when needed - implemented new iattr interface +2004-03-18 05:36 Enrico Scholz -2004-02-19 23:21 Enrico Scholz + * util-vserver/src/vunify.c: cleanups in the verbosity code - * lib/syscall-compat.hc: +2004-03-18 05:35 Enrico Scholz - vc_set_ipv4root_compat(): fixed off-by-one error while checking number - of allowed IPs + * util-vserver/scripts/legacy/vps.pathsubst, + util-vserver/scripts/legacy/vserver: use 'chcontext-compat' + instead of 'chcontext' -2004-02-19 23:19 Enrico Scholz +2004-03-18 05:35 Enrico Scholz - * lib/: fscompat_getiattr-fscompat.hc[DEAD], - fscompat_setiattr-fscompat.hc[DEAD], - syscall_getiattr-fscompat.hc, syscall_setiattr-fscompat.hc: + * util-vserver/scripts/vserver.stop: call isVserverRunning to + cleanup rundir - moved fscompat* files to *iattr-fscompat* and applied the changed iattr interface +2004-03-18 05:35 Enrico Scholz -2004-02-19 23:14 Enrico Scholz + * util-vserver/scripts/vserver-build.functions.pkgmgmt: ignore + candidates for location of pkgmgmt-dir when $ROOTDIR is empty - * lib/createskeleton-full.hc: +2004-03-18 05:33 Enrico Scholz - use new iattr interface + * util-vserver/scripts/vserver-build: cleanups; use full + parenthesis in case ... esac -2004-02-19 23:14 Enrico Scholz +2004-03-18 05:33 Enrico Scholz - * lib/Makefile-files: + * util-vserver/scripts/vserver: implemenented 'pkgmgmt' command - removed the fscompat* files - added *iattr-fscompat files +2004-03-18 05:32 Enrico Scholz -2004-02-19 23:09 Enrico Scholz + * util-vserver/scripts/vrpm: allow both internal and external + packagemanagement - * contrib/manifest.dat.pathsubst: +2004-03-18 05:32 Enrico Scholz - added FEATURES.txt and vcopy + * util-vserver/scripts/vpkg: cleanups; generalized some functions + and moved them into the 'functions' file -2004-02-19 23:08 Enrico Scholz +2004-03-18 05:32 Enrico Scholz - * configure.ac: + * util-vserver/scripts/vapt-get: support both internal and external + packagemanagement - create FEATURES.txt and rearranged code a little bit +2004-03-18 05:31 Enrico Scholz -2004-02-19 23:08 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added $_PKGMGMT + and $_TAR - * Makefile.am: +2004-03-18 05:31 Enrico Scholz - added FEATURES.txt + * util-vserver/scripts/start-vservers: filter out non-matching + vservers *before* adding them to the makefile -2004-02-18 05:50 Enrico Scholz +2004-03-18 05:30 Enrico Scholz - * lib/vserver.h: + * util-vserver/scripts/functions: getVserverStatus(): fix problems + with leading whitespaces in numerical values + pkgmgmt.guessStyle(), pkgmgmt.isInternal(): added - added vc_createSkeleton() plus defines +2004-03-18 05:29 Enrico Scholz -2004-02-18 05:50 Enrico Scholz + * util-vserver/scripts/pkgmgmt: initial checkin - * lib/fscompat_setiattr-fscompat.hc: +2004-03-18 05:29 Enrico Scholz - vc_set_iattr_compat_fscompat(): fixed usage of the mode argument + * util-vserver/scripts/Makefile-files: added pkgmgmt -2004-02-18 05:49 Enrico Scholz +2004-03-18 05:28 Enrico Scholz - * lib_internal/: unify-unify.c, unify.h: + * util-vserver/lib_internal/matchlist-initmanually.c: some cleanups + in the verbosity code - Unify_deUnify(): fixed parameters - Unify_copy(), Unify_setTime(): added prototype +2004-03-18 05:28 Enrico Scholz -2004-02-18 05:48 Enrico Scholz + * util-vserver/lib/getvservercfgstyle.c: filter out relative and + absolute paths; when they are not pointing to + an existing directory, the function fails - * lib_internal/unify-deunify.c: +2004-03-18 05:27 Enrico Scholz - fixed parameters + * util-vserver/ensc_wrappers/wrappers_handler.hc: use + __builtin_expect -2004-02-18 05:48 Enrico Scholz +2004-03-18 05:27 Enrico Scholz - * lib_internal/matchlist.h: + * util-vserver/distrib/defaults/apt/apt.conf: added + '@autogenerated@' tag plus small warning - MatchList_printId(): added prototype +2004-03-18 05:26 Enrico Scholz -2004-02-18 05:47 Enrico Scholz + * util-vserver/contrib/manifest.dat.pathsubst: added pkgmgmt script - * lib_internal/Makefile-files: +2004-03-18 05:26 Enrico Scholz - added unify* and util-* files + * util-vserver/configure.ac: look for tar -2004-02-18 05:46 Enrico Scholz +2004-03-18 05:25 Enrico Scholz - * src/: vunify.c, vunify.h: + * util-vserver/Makefile.am: substitute @TAR@ - cleanups; outsourced a lot to libinternal.a +2004-03-16 14:30 Enrico Scholz -2004-02-18 05:45 Enrico Scholz + * util-vserver/src/chbind.c: use vc_get_nb_ipv4root() instead of + hardcoded '16' value - * src/util.h: +2004-03-16 14:29 Enrico Scholz - cleanups; outsourced some macros/inlines to libinternal.a + * util-vserver/compat.h: CONST: added -2004-02-18 05:44 Enrico Scholz +2004-03-16 14:28 Enrico Scholz - * src/Makefile-files: + * util-vserver/lib/vserver.h: VC_ATTR_CONST: added + vc_get_nb_ipv4root(): added - added vcopy - link the fstool programs against libinternal.a - removed vserver-visitdir +2004-03-16 14:28 Enrico Scholz -2004-02-18 05:43 Enrico Scholz + * util-vserver/lib/Makefile-files: added getnbipv4root.c - * src/.cvsignore: +2004-03-16 14:27 Enrico Scholz - added vcopy + * util-vserver/lib/getnbipv4root.c: initial checkin -2004-02-18 05:43 Enrico Scholz +2004-03-16 04:37 Enrico Scholz - * src/util-safechdir.c[DEAD]: + * util-vserver/scripts/Makefile-files: added the sysvwrappers to + AM_INSTALLCHECK_STD_OPTIONS_EXEMPT - moved into libinternal.a +2004-03-16 04:26 Enrico Scholz -2004-02-18 05:42 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.29.202 - * lib/createskeleton-full.hc, lib/createskeleton-short.hc, - lib/createskeleton.c, lib_internal/matchlist-printid.c, - lib_internal/unify-copy.c, lib_internal/unify-settime.c, - lib_internal/util-dotfile.h, lib_internal/util-safechdir.c, - lib_internal/util-safechdir.h, src/vcopy-init.hc, src/vcopy.c, - src/vserver-visitdir.hc: +2004-03-16 03:51 Enrico Scholz - initial checkin + * util-vserver/sysv/Makefile-files: added vservers-default + removed vservers -2004-02-18 05:41 Enrico Scholz +2004-03-16 03:50 Enrico Scholz - * ensc_wrappers/wrappers-io.hc: + * util-vserver/sysv/vservers.subst: obsoleted by new initscript - rewrote the W*all() function to accept an additional argument holding - the error, instead of giving out the error +2004-03-16 03:49 Enrico Scholz -2004-02-18 05:40 Enrico Scholz + * util-vserver/distrib/redhat/initpre, + util-vserver/lib/isdynamicxid.c, + util-vserver/scripts/vserver-wrapper, + util-vserver/sysv/vservers-default: initial checkin - * lib/Makefile-files: +2004-03-16 03:49 Enrico Scholz - added createskeleton* files + * util-vserver/src/vserver-info.c: implemented INITPID for the + compat API -2004-02-18 05:39 Enrico Scholz +2004-03-16 03:49 Enrico Scholz - * pathconfig.h.pathsubst: + * util-vserver/src/rpm-fake.c: implemented/fixed the non-legacy + part + cleanups - added DEFAULT_PKGSTATEDIR +2004-03-16 03:48 Enrico Scholz -2004-02-18 05:38 Enrico Scholz + * util-vserver/src/rpm-fake-resolver.c: implemented/fixed the + non-legacy part - * compat.h: +2004-03-16 03:48 Enrico Scholz - added PURE + * util-vserver/scripts/vserver.suexec: added internal mode to use + 'suexec' for stopped vservers also -2004-02-18 05:38 Enrico Scholz +2004-03-16 03:47 Enrico Scholz - * configure.ac, Makefile.am: + * util-vserver/scripts/vserver.stop: added a more efficient stop + method for fakeinit vservers - do not redefine 'LIBTOOL'; the '--tag' causes problems on install +2004-03-16 03:47 Enrico Scholz -2004-02-17 20:59 Enrico Scholz + * util-vserver/scripts/vserver.start: finxed incomplete quoting - * configure.ac: +2004-03-16 03:46 Enrico Scholz - call ENSC_DIETLIBC_NEED_COMPAT to determine if '-lcompat' is needed for dietlibc + * util-vserver/scripts/vserver.functions: handle fakeinit + separately + cleanups and fixes in the flag-generation -2004-02-17 20:59 Enrico Scholz +2004-03-16 03:45 Enrico Scholz - * Makefile.am: + * util-vserver/scripts/vserver: added support for an internal + command mode - define $(VSERVER_LDADDS) - generalized some LIBTOOL stuff - do not install libinternal.a anymore +2004-03-16 03:43 Enrico Scholz -2004-02-17 20:58 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added + $_INITSYNC_MINIT_* variables + added $_START_VSERVERS - * tests/Makefile-files: +2004-03-16 03:43 Enrico Scholz - use $(VSERVER_LDADDS) instead of lib/libvserver.la to use '-lcompat' on purpose + * util-vserver/scripts/start-vservers: added ok/passed/failed logic -2004-02-17 20:57 Enrico Scholz +2004-03-16 03:42 Enrico Scholz - * scripts/functions: + * util-vserver/scripts/Makefile-files: ship vsyswrapper again - _pkgMountRPM(): do not mount /proc when it is already mounted +2004-03-16 03:42 Enrico Scholz -2004-02-17 20:56 Enrico Scholz + * util-vserver/lib/vserver.h: vc_is_dynamic_xid(): added - * src/rpm-fake.c: +2004-03-16 03:42 Enrico Scholz - rearranged inclusion of to fix compilation problems - with fc1.90 + * util-vserver/lib/Makefile-files: added isdynamicxid.c -2004-02-17 20:55 Enrico Scholz +2004-03-16 03:41 Enrico Scholz - * src/rebootmgr.c: + * util-vserver/ensc_wrappers/wrappers-vserver.hc: Evc_set_ccaps(): + added - include +2004-03-16 03:41 Enrico Scholz -2004-02-17 20:55 Enrico Scholz + * util-vserver/distrib/redhat/initpost: use internal 'chkconfig' + command - * src/Makefile-files: +2004-03-16 03:40 Enrico Scholz - use $(VSERVER_LDADDS) instead of lib/libvserver.la to use '-lcompat' on purpose - fixed capchroot compilation + * util-vserver/distrib/Makefile.am: added initpre to handle rpm's + misclassification of %_netsharedpath -2004-02-17 20:52 Enrico Scholz +2004-03-16 03:39 Enrico Scholz - * m4/ensc_dietlibc_compat.m4: + * util-vserver/contrib/make-manifest, + util-vserver/contrib/manifest.dat.pathsubst: handle some sysv + files too - initial checkin +2004-03-16 03:39 Enrico Scholz -2004-02-17 20:51 Enrico Scholz + * util-vserver/util-vserver.spec.in: updated the -sysv package - * ensc_vector/testsuite/test1.c, src/testsuite/vunify-functest.c: +2004-03-15 21:41 Enrico Scholz - make non-C99 compilers happy + * util-vserver/src/vcontext.c: cleanups; remove unused code + added '--silentexist' + use context-sync.hc -2004-02-17 03:54 Enrico Scholz +2004-03-15 21:40 Enrico Scholz - * NEWS: + * util-vserver/src/chcontext.c: use code from context-sync.hc - version 0.29.192 +2004-03-15 21:39 Enrico Scholz -2004-02-17 03:46 Enrico Scholz + * util-vserver/src/context-sync.hc: initial checkin - * Makefile.am: +2004-03-15 21:39 Enrico Scholz - added missing backslash + * util-vserver/src/Makefile-files: added context-sync.hc -2004-02-17 03:39 Enrico Scholz +2004-03-15 21:39 Enrico Scholz - * src/: vunify.h, testsuite/Makefile-files, - testsuite/vunify-functest.c: + * util-vserver/scripts/vserver-build.apt-rpm: cleanups; full + parenthesis for case ... esac statements - use new lib_internal/ +2004-03-15 21:38 Enrico Scholz -2004-02-17 03:38 Enrico Scholz + * util-vserver/scripts/vserver: cleanups; full parenthesis for case + ... esac statements + give more helpful error messages - * src/vunify-init.hc: +2004-03-15 21:37 Enrico Scholz - moved most function into lib_internal/ + * util-vserver/lib_internal/jail.h, + util-vserver/lib_internal/jailintotempdir.c: return indication + about place of error -2004-02-17 03:36 Enrico Scholz +2004-03-15 20:01 Enrico Scholz - * src/vunify.c: + * util-vserver/configure.ac: print correct $prefix when '--prefix' + is not specified - use new lib_internal +2004-03-13 03:39 Enrico Scholz -2004-02-17 03:36 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.29.201 - * src/util.h: +2004-03-13 03:39 Enrico Scholz - moved some functions/macros into lib_internal/util-* + * util-vserver/src/vcontext.c: added another #warning -2004-02-17 03:36 Enrico Scholz +2004-03-13 03:23 Enrico Scholz - * src/Makefile-files: + * util-vserver/src/vcontext.c: fixed '--uid' option (it's + required_argument but not no_argument) + drop privileges after migrate() - removed vunify-* files which went into lib_internal +2004-03-13 03:22 Enrico Scholz -2004-02-17 03:35 Enrico Scholz + * util-vserver/scripts/vserver.start: call $_SAVE_CTXINFO until we + have something better - * Makefile.am: +2004-03-13 02:57 Enrico Scholz - added lib_internal/ files + * util-vserver/src/vcontext.c: updated to new kernel behavior -2004-02-17 03:34 Enrico Scholz +2004-03-13 02:56 Enrico Scholz - * src/: vunify-compare.hc[DEAD], vunify-debug.c[DEAD], - vunify-doit.hc[DEAD], vunify-matchlist.c[DEAD], - vunify-matchlist.h[DEAD]: + * util-vserver/src/vattribute.c: renamed set*() to parse*() + set the correct secure attributes + call set_flags/set_ccaps only, when there is something to do - moved functionality into lib_internal library +2004-03-13 02:55 Enrico Scholz -2004-02-17 03:33 Enrico Scholz + * util-vserver/scripts/chcontext, + util-vserver/scripts/vserver.start: applied new CLI - * lib_internal/: Makefile-files, matchlist-appendfiles.c, - matchlist-compare.c, matchlist-destroy.c, matchlist-init.c, - matchlist-initbyvserver.c, matchlist-initmanually.c, - matchlist-initrefserverlist.c, matchlist.h, pathinfo-append.c, - pathinfo-test.c, pathinfo.h, string-destroy.c, string.h, - string.hc, unify-deunify.c, unify-unify.c, unify.h, util-io.h, - util-mem.h: +2004-03-13 02:54 Enrico Scholz - initial checkin + * util-vserver/lib_internal/Makefile-files: added jail* files -2004-02-17 03:32 Enrico Scholz +2004-03-13 02:53 Enrico Scholz - * ensc_wrappers/: wrappers-unistd.hc, wrappers_handler.hc: + * util-vserver/lib_internal/jail.h, + util-vserver/lib_internal/jailintotempdir.c: initial checkin - fixed some 'noreturn' warnings for the execv() functions +2004-03-13 02:52 Enrico Scholz -2004-02-16 20:18 Enrico Scholz + * util-vserver/ensc_wrappers/wrappers-vserver.hc: Evc_get_ccaps(): + added declaration - * contrib/make-manifest: +2004-03-12 19:31 Enrico Scholz - ignore lines beginning with '#' + * util-vserver/src/vuname.c: rewrote it; CLI should be more usable + now -2004-02-16 20:18 Enrico Scholz +2004-03-12 19:30 Enrico Scholz - * contrib/manifest.dat.pathsubst: + * util-vserver/scripts/chcontext, + util-vserver/scripts/vserver.start: use new vuname syntax - set @ENSC_HAVE_*_COMPILER_TRUE@ tags +2004-03-12 06:02 Enrico Scholz -2004-02-16 20:18 Enrico Scholz + * util-vserver/src/vattribute.c: set caps before flags so that caps + can be changed in the same transaction + which deletes 'setup' - * ensc_vector/testsuite/test1.c: +2004-03-12 04:53 Enrico Scholz - #undef NDEBUG + * util-vserver/scripts/vserver.suexec: added some explicit '--' -2004-02-16 20:17 Enrico Scholz +2004-03-12 04:52 Enrico Scholz - * scripts/functions: + * util-vserver/scripts/functions: added some doc + getVserverStatus(): fixed it - use $_READLINK - mount /proc when doing pkg-management +2004-03-12 04:51 Enrico Scholz -2004-02-16 20:17 Enrico Scholz + * util-vserver/src/save_ctxinfo.c: use strncat() instead of + strcat() to enforce correct length - * scripts/util-vserver-vars.pathsubst: +2004-03-12 03:38 Enrico Scholz - added readlink + * util-vserver/NEWS, util-vserver/configure.ac: version 0.29.200 -2004-02-16 20:16 Enrico Scholz +2004-03-12 03:37 Enrico Scholz - * scripts/vrpm-preload: + * util-vserver/scripts/chcontext, + util-vserver/scripts/vserver.start: remove the setup flag - made rpm-flavor configurable (e.g. 'i' for install (default), 'q' for - query, 'd' for database) +2004-03-12 03:37 Enrico Scholz -2004-02-16 20:16 Enrico Scholz + * util-vserver/lib/virtual.h: cleanups - * scripts/vserver-build.functions: +2004-03-12 03:19 Enrico Scholz - register generated files so that they - can be cleaned up when needed + * util-vserver/scripts/chcontext: give '--xid' in migrate case -2004-02-16 20:15 Enrico Scholz +2004-03-12 03:17 Enrico Scholz - * scripts/vserver-build.apt-rpm: + * util-vserver/scripts/chcontext: fixed migrate vs. migrate-self - call rpm.initDB() +2004-03-12 03:13 Enrico Scholz -2004-02-16 20:15 Enrico Scholz + * util-vserver/Makefile.am: added kernel headers - * scripts/vserver-build.functions.rpm: +2004-03-12 03:12 Enrico Scholz - rpm.initDB(): added + * util-vserver/kernel, util-vserver/kernel/context.h, + util-vserver/kernel/inode.h, util-vserver/kernel/legacy.h, + util-vserver/kernel/limit.h, util-vserver/kernel/namespace.h, + util-vserver/kernel/network.h, util-vserver/kernel/sched.h, + util-vserver/kernel/signal.h, util-vserver/kernel/switch.h: + initial checkin -2004-02-16 20:14 Enrico Scholz +2004-03-12 03:02 Enrico Scholz - * scripts/vserver-setup.functions: + * util-vserver/sysv/vprocunhide: do not use /dev/null as lockfile - added --initstyle support (-> /etc/vservers/.../apps/init/style) +2004-03-12 03:02 Enrico Scholz -2004-02-16 20:14 Enrico Scholz + * util-vserver/src/vsched.c: updated to new API - * src/chbind.c: +2004-03-12 03:02 Enrico Scholz - refined test-routine to work in vservers without 'lo' interface + * util-vserver/src/vattribute.c: implemented --secure -2004-02-16 20:14 Enrico Scholz +2004-03-12 03:01 Enrico Scholz - * src/secure-mount.c: + * util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop: allow '--debug' in the + destructors - define MS_REC when needed +2004-03-12 03:00 Enrico Scholz -2004-02-16 20:13 Enrico Scholz + * util-vserver/scripts/vserver.functions: added gentoo startup + style - * configure.ac, src/rpm-fake-resolver.c: +2004-03-12 02:59 Enrico Scholz - added big, fat warning when not using dietlibc + * util-vserver/scripts/chcontext: fixed params + do not call vuname/vattribute when not needed -2004-02-16 19:11 Enrico Scholz +2004-03-12 02:58 Enrico Scholz - * Makefile.am: + * util-vserver/lib/testsuite/flags.c: added testsuite for the flags - added ENSC_HAVE_*_COMPILER_* to pathsubst-rules +2004-03-12 02:58 Enrico Scholz -2004-02-14 02:22 Enrico Scholz + * util-vserver/lib/vserver.h: updated interface + added flags - * scripts/vserver: +2004-03-12 02:58 Enrico Scholz - use isAvoidNamespace() from main-functions file + * util-vserver/lib/virtual.h: use kernel headers -2004-02-14 02:21 Enrico Scholz +2004-03-12 02:57 Enrico Scholz - * scripts/: functions, vserver.functions: + * util-vserver/lib/syscall_getiattr-v13.hc, + util-vserver/lib/syscall_setiattr-v13.hc, + util-vserver/lib/syscall_setsched-v13.hc: updated interface - moved isAvoidNamespace() into main-functions file +2004-03-12 02:56 Enrico Scholz -2004-02-14 02:21 Enrico Scholz + * util-vserver/lib/listparser.hc: added '^' modifier which marks + bit numbers - * m4/ensc_syscallnr.m4: +2004-03-12 02:55 Enrico Scholz - fixed auto-case - improved message + * util-vserver/lib/flags-v13.c: added the flags -2004-02-14 02:20 Enrico Scholz +2004-03-11 04:44 Enrico Scholz - * m4/ensc_kerneldir.m4: + * util-vserver/NEWS, util-vserver/configure.ac: version 0.29.199 - ENSC_KERNEL_HEADERS: made argument optionally +2004-03-11 04:42 Enrico Scholz -2004-02-14 02:19 Enrico Scholz + * util-vserver/src/vuname.c: added more documentation + fixed '--version' conflicts - * contrib/manifest.dat.pathsubst: +2004-03-11 04:41 Enrico Scholz - added clearenv + * util-vserver/src/rpm-fake-resolver.c, + util-vserver/src/rpm-fake.c: implemented most parts of the new + migrate method -2004-02-14 02:19 Enrico Scholz +2004-03-11 04:41 Enrico Scholz - * configure.ac: + * util-vserver/scripts/vserver.start: set context-name - use ENSC_SYSCALLNR() +2004-03-11 04:41 Enrico Scholz -2004-02-14 00:43 Enrico Scholz + * util-vserver/lib/Makefile-files: added getvserverbyctx-* files - * lib/vserver-internal.h: +2004-03-11 04:40 Enrico Scholz - use results from ENSC_SYSCALLNR + * util-vserver/lib/getvserverbyctx.c: implemented new + context-naming method -2004-02-14 00:42 Enrico Scholz +2004-03-11 04:39 Enrico Scholz - * m4/ensc_syscallnr.m4: + * util-vserver/lib/getvserverbyctx-compat.hc, + util-vserver/lib/getvserverbyctx-v13.hc: initial checkin - initial checkin +2004-03-11 04:39 Enrico Scholz -2004-02-12 00:46 Enrico Scholz + * util-vserver/ensc_wrappers/wrappers-vserver.hc: + Evc_set_vhi_name(): added - * src/clearenv.c: +2004-03-10 05:34 Enrico Scholz - use VSERVER_DECLARE_CMD + * util-vserver/doc/configuration.xml: documented 'fstab.local' and + enhanced 'fstab' doc -2004-02-12 00:46 Enrico Scholz +2004-03-10 05:33 Enrico Scholz - * src/.cvsignore: + * util-vserver/scripts/vserver.functions: added support for + 'fstab.local' files - added clearenv +2004-03-10 05:04 Enrico Scholz -2004-02-12 00:39 Enrico Scholz + * util-vserver/sysv/vprocunhide: made it a little bit more portable + by providing own implementations of + RH's /etc/init.d/functions when this file can not be found + (inspired + by a patch from Olivier Poitrey) - * scripts/vserver.start: +2004-03-10 04:55 Enrico Scholz - use clearenv + * util-vserver/scripts/functions: callInNamespace(): call 'shift' + to remove the vserver-name from $@ -2004-02-12 00:39 Enrico Scholz +2004-03-10 02:58 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/doc, util-vserver/doc/.cvsignore: added + configuration.html - made namespace stuff configurable at a global place +2004-03-10 02:49 Enrico Scholz -2004-02-12 00:38 Enrico Scholz + * util-vserver/src/vserver-info.c: added an option the 'CONTEXT' + query so that it can be choosen between + running/non running - * scripts/vrpm-preload: +2004-03-10 02:37 Enrico Scholz - give more rights... (same like at --secure) + * util-vserver/src/vlimit.c, util-vserver/src/vuname.c: prefix + option string for getopt with '+' to avoid option reordering -2004-02-12 00:37 Enrico Scholz +2004-03-10 02:36 Enrico Scholz - * src/Makefile-files, scripts/util-vserver-vars.pathsubst: + * util-vserver/scripts/vapt-get, util-vserver/scripts/vrpm: use + callInNamespace - added clearenv +2004-03-10 02:35 Enrico Scholz -2004-02-12 00:34 Enrico Scholz + * util-vserver/scripts/functions: isAvoidNamespace(): determine + full cfgdir path of vserver before checking for 'namespace' file + callInNamespace(): added - * src/clearenv.c: +2004-03-10 02:34 Enrico Scholz - initial checkin + * util-vserver/scripts/vserver.functions: minor cosmetical + cleanups... -2004-02-10 18:20 Enrico Scholz +2004-03-10 02:34 Enrico Scholz - * src/: chxid.c, setattr.c: + * util-vserver/scripts/chcontext, + util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop, + util-vserver/scripts/vserver.suexec: use '--' delimiter - handle dot-files by default; it does not make sense to use a special - '-a' flag for the set-operations +2004-03-10 02:32 Enrico Scholz -2004-02-10 18:06 Enrico Scholz + * util-vserver/doc/configuration.xml: added/updated some + descriptions - * configure.ac: +2004-03-10 02:32 Enrico Scholz - version 0.28.200 + * util-vserver/doc/configuration-lsd.css: flowers... where are all + the flowers coming from? -2004-02-10 18:05 Enrico Scholz +2004-03-10 02:30 Enrico Scholz - * src/secure-mount.c: + * util-vserver/Makefile.am, util-vserver/contrib/Makefile-files, + util-vserver/doc/Makefile-files, + util-vserver/ensc_vector/Makefile-files, + util-vserver/ensc_vector/testsuite/Makefile-files, + util-vserver/ensc_wrappers/Makefile-files, + util-vserver/lib/Makefile-files, + util-vserver/lib/testsuite/Makefile-files, + util-vserver/lib_internal/Makefile-files, + util-vserver/man/Makefile-files, + util-vserver/scripts/Makefile-files, + util-vserver/src/Makefile-files, + util-vserver/src/testsuite/Makefile-files, + util-vserver/tests/Makefile-files: modernized the Makefiles; use + '+=' where possible to remove complexity + from the toplevel Makefile.am - recognize 'rbind' in fstab - use internal mount(2) on MOVE too +2004-03-09 17:52 Enrico Scholz -2004-02-10 15:22 Enrico Scholz + * util-vserver/scripts/vprocunhide: remove the correct prefix - * scripts/: vserver, vserver.functions, vserver.start: +2004-03-09 16:38 Enrico Scholz - implemented CLONE_NS and --rbind mounting + * util-vserver/scripts/vserver.stop, + util-vserver/scripts/vserver.suexec: use $_CHONTEXT_COMPAT + explicitly -2004-02-10 15:21 Enrico Scholz +2004-03-09 16:38 Enrico Scholz - * src/secure-mount.c: + * util-vserver/scripts/vserver-setup.functions: use/create 'uts' + directory - implemented '--rbind' +2004-03-09 16:37 Enrico Scholz -2004-02-10 13:24 Enrico Scholz + * util-vserver/scripts/chcontext: updated copyright date - * ensc_vector/testsuite/.cvsignore, lib/testsuite/.cvsignore: +2004-03-09 16:37 Enrico Scholz - initial checkin + * util-vserver/doc/configuration.xml: documented the vunify + configuration -2004-02-10 13:22 Enrico Scholz +2004-03-09 14:50 Enrico Scholz - * lib/testsuite/flags.c: + * util-vserver/scripts/chcontext: rewrote the non-legacy part - s!init!fakeinit! +2004-03-09 14:35 Enrico Scholz -2004-02-10 13:18 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: aded + _KEEP_CTX_ALIVE - * configure.ac: +2004-03-09 14:32 Enrico Scholz - version 0.28.199 + * util-vserver/scripts/chcontext: added missing ';' in case + expression + s!_CTX_KEEP_ALIVE!_KEEP_CTX_ALIVE! -2004-02-10 13:18 Enrico Scholz +2004-03-09 04:06 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/NEWS: version 0.29.198 - moved the 'chattr' into the right %post scriptlet +2004-03-09 03:58 Enrico Scholz -2004-02-10 13:17 Enrico Scholz + * util-vserver/scripts/vserver.stop, + util-vserver/scripts/vserver.suexec: removed superfluous '--' - * lib/flags.c: +2004-03-09 03:58 Enrico Scholz - s!init!fakeinit! + * util-vserver/scripts/vserver.start: added explicit cleanup trap + removed superfluous '--' -2004-02-10 03:36 Enrico Scholz +2004-03-09 03:57 Enrico Scholz - * configure.ac: + * util-vserver/scripts/vserver.functions: added some parenthesis - version 0.28.198 +2004-03-09 03:57 Enrico Scholz -2004-02-10 00:53 Enrico Scholz + * util-vserver/scripts/vserver: made 'status' really silent - * contrib/: make-manifest, manifest.dat.pathsubst: +2004-03-09 03:56 Enrico Scholz - moved *.so.* files from -core to -lib + * util-vserver/scripts/start-vservers: initial checkin -2004-02-10 00:52 Enrico Scholz +2004-03-09 03:56 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/scripts/functions: getVserverStatus(): fixed it for + the non-running & non-cleanup case - added -lib subpackage - moved *.so.* files from -core to -lib - removed the '%exclude ...vrpm.8' - added a 'make check' +2004-03-09 03:55 Enrico Scholz -2004-02-10 00:48 Enrico Scholz + * util-vserver/contrib/manifest.dat.pathsubst, + util-vserver/scripts/Makefile-files: added start-vservers - * src/testsuite/.cvsignore: +2004-03-09 03:55 Enrico Scholz - initial checkin + * util-vserver/ensc_wrappers/wrappers.h: fixed typo + fixed overflow -2004-02-10 00:43 Enrico Scholz +2004-03-09 03:54 Enrico Scholz - * ensc_wrappers/wrappers-unistd.hc: + * util-vserver/util-vserver.spec.in: added Requires: make - Eexecvp(): added - added some 'NORETURN' specifiers +2004-03-09 02:01 Enrico Scholz -2004-02-10 00:42 Enrico Scholz + * util-vserver/scripts/vserver: made 'status' silent when + '--silent' is used - * Makefile.am: +2004-03-09 02:01 Enrico Scholz - added lib/testsuite + * util-vserver/lib/apidoc, util-vserver/lib/apidoc/.cvsignore: + added man -2004-02-10 00:42 Enrico Scholz +2004-03-09 02:00 Enrico Scholz - * src/testsuite/vunify-test.sh: + * util-vserver/doc/configuration.html: removed since autogenerated - redirect output to /dev/null +2004-03-09 02:00 Enrico Scholz -2004-02-10 00:41 Enrico Scholz + * util-vserver/doc/configuration-lsd.css: use official HTML 4 + colornames - * src/testsuite/rpm-fake-test.c: +2004-03-09 01:59 Enrico Scholz - fixed compilation warnings + * util-vserver/doc/beautify.xsl, + util-vserver/doc/compatibility-xhtml.xsl, + util-vserver/doc/configuration-xhtml.xsl: use official XHTML + namespace -2004-02-10 00:40 Enrico Scholz +2004-03-09 01:58 Enrico Scholz - * src/testsuite/chcontext-test.c: + * util-vserver/distrib/defaults/rpm/macros, + util-vserver/distrib/redhat/initpost: added hack for + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=117827 - added explicite 'return' for non-C99 compilers +2004-03-08 19:55 Enrico Scholz -2004-02-10 00:40 Enrico Scholz + * util-vserver/m4/ensc_syscallnr.m4: stopped to confuse users with + wrong error messages - * src/testsuite/Makefile-files: +2004-03-08 19:55 Enrico Scholz - added chbind-test + * util-vserver/lib/apidoc/Makefile-files: handle man directory -2004-02-10 00:39 Enrico Scholz +2004-03-08 19:54 Enrico Scholz - * man/Makefile-files: + * util-vserver/lib/apidoc/Doxyfile.in: updated - renoved vrpm.8 for now +2004-03-08 19:53 Enrico Scholz -2004-02-10 00:39 Enrico Scholz + * util-vserver/doc/Makefile-files: filled it with content... - * lib/vserver.h: +2004-03-08 19:52 Enrico Scholz - vc_text2cap(): take 'unsigned int' instead of 'int' argument - vc_textlist2flag(), vc_text2flag(), vc_hiflag2text(): added prototypes + * util-vserver/util-vserver.spec.in: added documentation -2004-02-10 00:38 Enrico Scholz +2004-03-08 18:14 Enrico Scholz - * lib/capabilities.c: + * util-vserver/doc/configuration.xml: documented tty symlink + use documentation.dtd instead of cfgdirdoc.dtd + some small corrections/adjustments - vc_text2cap(): take 'unsigned int' instead of 'int' argument +2004-03-08 18:13 Enrico Scholz -2004-02-10 00:38 Enrico Scholz + * util-vserver/doc/beautify.xsl, + util-vserver/doc/configuration-lsd.css, + util-vserver/doc/configuration-xhtml.xsl, + util-vserver/doc/configuration.html: initial checkin - * lib/Makefile-files: +2004-03-08 18:12 Enrico Scholz - added flags* files - added testsuite + -programs + * util-vserver/doc/compat-xhtml.xsl, + util-vserver/doc/compatibility-xhtml.xsl: renamed + compat-xhtml.xsl to compatibility-xhtml.xsl -2004-02-10 00:36 Enrico Scholz +2004-03-08 18:12 Enrico Scholz - * src/chcontext.c: + * util-vserver/doc/cfgdirdoc.dtd, + util-vserver/doc/configuration.dtd: renamed cfgdirdoc.dtd to + configuration.dtd - setFlags(): use vc_textlist2flag() function - rearranged code to avoid unremovable zombie processes +2004-03-08 08:07 Enrico Scholz -2004-02-10 00:35 Enrico Scholz + * util-vserver/lib/vserver.h: added more doc - * src/: chbind.c, reducecap.c: +2004-03-08 01:22 Enrico Scholz - rewrote it + * util-vserver/lib/testsuite/flags.c: fixed uninitialized variable -2004-02-10 00:35 Enrico Scholz +2004-03-08 00:08 Enrico Scholz - * src/Makefile-files: + * util-vserver/lib/apidoc, util-vserver/lib/apidoc/.cvsignore, + util-vserver/lib/apidoc/Doxyfile.in, + util-vserver/lib/apidoc/Makefile-files: initial checkin - made reducecap & chbind native dietlibc programs +2004-03-08 00:06 Enrico Scholz -2004-02-10 00:30 Enrico Scholz + * util-vserver/scripts/vserver.start: use '--migrate-self' instead + of '--migrate' - * lib/flags.c, lib/flags_list.c, lib/testsuite/Makefile-files, - lib/testsuite/flags.c, src/testsuite/chbind-test.c: +2004-03-07 23:59 Enrico Scholz - initial checkin + * util-vserver/src/vcontext.c: added '--migrate-self' support -2004-02-06 23:50 Enrico Scholz +2004-03-07 23:58 Enrico Scholz - * src/Makefile-files: + * util-vserver/scripts/vserver.functions: use different files for + 'bcap' and 'ccap' for now - added sys_clone.h +2004-03-07 23:58 Enrico Scholz -2004-02-06 23:50 Enrico Scholz + * util-vserver/util-vserver.spec.in: added changelog entry - * util-vserver.spec.in: +2004-03-07 22:43 Enrico Scholz - added 'chattr -t /vservers' + needed Requires: + * util-vserver/src/vunify.h: fixed NONNULL annotations -2004-02-06 23:49 Enrico Scholz +2004-03-07 22:36 Enrico Scholz - * scripts/vserver-build.functions: + * util-vserver/lib/vserver.h: added doxygen annnotations + added special compiler annotations - call 'chattr -t' on newly create vserverdirs - cleanups; parenthesize case-expressions +2004-03-07 22:34 Enrico Scholz -2004-02-06 22:34 Enrico Scholz + * util-vserver/lib/internal.h: added doxygen annnotations + fixed NONNULL statements - * src/util.h: +2004-03-07 22:31 Enrico Scholz - exitLikeProcess(): added NORETURN attribute to prototype + * util-vserver/lib/fmt.h: added doxygen annnotations -2004-02-06 22:33 Enrico Scholz +2004-03-07 22:31 Enrico Scholz - * src/rpm-fake.c: + * util-vserver/lib/Makefile-files: added apidoc directory - cleanups; use sys_clone() +2004-03-07 22:29 Enrico Scholz -2004-02-06 22:33 Enrico Scholz + * util-vserver/configure.ac, util-vserver/util-vserver.spec.in: + added doxygen support - * src/new-namespace.c: +2004-03-07 22:24 Enrico Scholz - cleanups; modernized it + * util-vserver/compat.h: fixed typo in __GNUC_MINOR__ -2004-02-06 22:33 Enrico Scholz +2004-03-07 19:41 Enrico Scholz - * src/Makefile-files: + * util-vserver/src/vattribute.c: use new interface of the list2... + functions + implemented --bcaps and --ccaps - link new-namespace against util-exitlikeprocess - cleanups +2004-03-07 19:41 Enrico Scholz -2004-02-06 22:32 Enrico Scholz + * util-vserver/src/chcontext.c, util-vserver/src/reducecap.c: use + new interface of the list2... functions - * src/sys_clone.h: +2004-03-07 19:40 Enrico Scholz - initial checkin + * util-vserver/scripts/vserver.functions: added + .../interfaces/.../nodev option and deprecated 'only_ip' -2004-02-06 19:15 Enrico Scholz +2004-03-07 19:40 Enrico Scholz - * src/testsuite/Makefile-files: + * util-vserver/lib/testsuite/flags.c: applied new interface - do not call vunify-test when no C99 compiler is available +2004-03-07 19:39 Enrico Scholz -2004-02-06 18:43 Enrico Scholz + * util-vserver/lib/vserver.h: added some documentation + added some flag/caps support functions - * ensc_vector/testsuite/: Makefile-files, test1.c: +2004-03-07 19:39 Enrico Scholz - initial checkin + * util-vserver/lib/virtual.h: renamed scaps to bcaps -2004-02-06 18:43 Enrico Scholz +2004-03-07 19:38 Enrico Scholz - * src/testsuite/vunify-test.sh: + * util-vserver/lib/syscall_setflags.c: added EFAULT check - use '-n' flag +2004-03-07 19:38 Enrico Scholz -2004-02-06 18:42 Enrico Scholz + * util-vserver/lib/syscall_getflags-v13.hc, + util-vserver/lib/syscall_setflags-v13.hc: minor cosmetical + cleanups - * src/vutil.cc: +2004-03-07 19:38 Enrico Scholz - minor cosmetical changes + * util-vserver/lib/listparser.hc: interpret numbers too -2004-02-06 18:42 Enrico Scholz +2004-03-07 19:37 Enrico Scholz - * src/vunify-init.hc: + * util-vserver/lib/internal.h: added the text2value functions - initModeManually(): added missing strdup() +2004-03-07 19:37 Enrico Scholz -2004-02-06 18:41 Enrico Scholz + * util-vserver/lib/flags-v13.c, + util-vserver/lib/flags_list-compat.c, + util-vserver/lib/flags_list-v13.c: cleanups; use modern + methods... - * Makefile.am, ensc_vector/Makefile-files: +2004-03-07 19:35 Enrico Scholz - added ensc_vector testsuite + * util-vserver/lib/bcaps-v13.c, util-vserver/lib/bcaps_list-v13.c, + util-vserver/lib/ccaps-v13.c, util-vserver/lib/ccaps_list-v13.c, + util-vserver/lib/syscall_getccaps-v13.hc, + util-vserver/lib/syscall_getccaps.c, + util-vserver/lib/syscall_setccaps-v13.hc, + util-vserver/lib/syscall_setccaps.c, + util-vserver/lib/val2text-t2v-uint32.c, + util-vserver/lib/val2text-t2v-uint64.c, + util-vserver/lib/val2text-v2t-uint32.c, + util-vserver/lib/val2text-v2t-uint64.c, + util-vserver/lib/val2text.hc: initial checkin -2004-02-06 17:42 Enrico Scholz +2004-03-07 19:35 Enrico Scholz - * ensc_vector/vector-insert.c: + * util-vserver/lib/Makefile-files: added the caps-files + added the val2text-files - fixed it +2004-03-07 19:34 Enrico Scholz -2004-02-06 17:40 Enrico Scholz + * util-vserver/doc/configuration.xml: documented + '.../interfaces/.../nodev' - * src/vserver-stat.c: +2004-03-06 02:02 Enrico Scholz - use ensc_vector - cleanups + * util-vserver/util-vserver.spec.in: s!Require!Requires! -2004-02-06 17:40 Enrico Scholz +2004-03-06 01:54 Enrico Scholz - * src/lsxid.c: + * util-vserver/sysv/vprocunhide: initial checkin - use ensc_vector to cache xid->name mappings +2004-03-06 01:54 Enrico Scholz -2004-02-06 17:39 Enrico Scholz + * util-vserver/sysv/Makefile-files: modernized; use '+=' syntax + added vprocunhide - * src/Makefile-files: +2004-03-06 01:54 Enrico Scholz - link vserver-stat against libensc_vector.a + * util-vserver/src/vuname.c: made it chainable + added '--dir' option -2004-02-06 16:02 Enrico Scholz +2004-03-06 01:53 Enrico Scholz - * doc/configuration.xml: + * util-vserver/src/vlimit.c: cleanups - enumerated possible resources +2004-03-06 01:53 Enrico Scholz -2004-02-06 16:01 Enrico Scholz + * util-vserver/scripts/vserver.start: call vuname - * src/chxid.c: +2004-03-06 01:53 Enrico Scholz - fixed do-display-dir behavior + * util-vserver/scripts/vprocunhide: implemented exclude/include + syntax + fixed exit codes -2004-02-06 15:56 Enrico Scholz +2004-03-06 01:53 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/scripts/util-vserver-vars.pathsubst: added $_VUNAME - _generateFlagOptions(): fixed a case expression; formerly x"foo" == - foo checks which would never succeed +2004-03-06 01:52 Enrico Scholz -2004-02-06 15:53 Enrico Scholz + * util-vserver/doc/configuration.xml: documents uts/ and rlimit/ + subdirs - * src/: chcontext.c, chroot-cat.c, chroot-rm.c, exec-cd.c, - exec-ulimit.c, fstool.c, new-namespace.c, pipe-sync.c, - rpm-fake-resolver.c, save_ctxinfo.c, vps.c, vrsetup.c, - vserver-info.c, vserver-stat.c, vunify-doit.hc, vunify-init.hc, - vunify-matchlist.c, vunify.c, testsuite/rpm-fake-test.c: +2004-03-06 01:52 Enrico Scholz - use new ensc_wrappers/ headers + * util-vserver/distrib/misc/vprocunhide-files: added some files -2004-02-06 15:49 Enrico Scholz +2004-03-06 01:52 Enrico Scholz - * src/Makefile-files: + * util-vserver/util-vserver.spec.in: added vprocunhide initscript - removed wrappers-* - link lsxid against libensc_vector.a +2004-03-06 01:51 Enrico Scholz -2004-02-06 15:48 Enrico Scholz + * util-vserver/Makefile.am: modernized it a little bit; use '+=' + syntax for sysv/ now - * src/: wrappers-dirent.h[DEAD], wrappers-io.h[DEAD], - wrappers-vserver.h[DEAD], wrappers.h[DEAD]: +2004-03-05 22:10 Enrico Scholz - moved and generalized into an own /ensc_wrappers subdir + * util-vserver/scripts/vserver.functions, + util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop, + util-vserver/scripts/vserver.suexec: added support for new + migrate feature -2004-02-06 15:47 Enrico Scholz +2004-03-05 22:09 Enrico Scholz - * ensc_vector/Makefile-files, ensc_vector/vector-clear.c, - ensc_vector/vector-free.c, ensc_vector/vector-init.c, - ensc_vector/vector-insert.c, ensc_vector/vector-internal.h, - ensc_vector/vector-popback.c, ensc_vector/vector-pushback.c, - ensc_vector/vector-resize.c, - ensc_vector/vector-resizeinternal.hc, - ensc_vector/vector-search.c, ensc_vector/vector-sort.c, - ensc_vector/vector-unique.c, ensc_vector/vector.h, - ensc_vector/vector.hc, ensc_wrappers/Makefile-files, - ensc_wrappers/wrappers-clone.hc, - ensc_wrappers/wrappers-dirent.hc, - ensc_wrappers/wrappers-fcntl.hc, ensc_wrappers/wrappers-io.hc, - ensc_wrappers/wrappers-ioctl.hc, - ensc_wrappers/wrappers-iosock.hc, - ensc_wrappers/wrappers-mount.hc, ensc_wrappers/wrappers-pivot.hc, - ensc_wrappers/wrappers-resource.hc, - ensc_wrappers/wrappers-stdlib.hc, - ensc_wrappers/wrappers-unistd.hc, - ensc_wrappers/wrappers-vserver.hc, - ensc_wrappers/wrappers-wait.hc, ensc_wrappers/wrappers.h, - ensc_wrappers/wrappers_handler.hc: + * util-vserver/scripts/util-vserver-vars.pathsubst: added + $_VCONTEXT and $_VLIMIT - initial checkin +2004-03-05 22:09 Enrico Scholz -2004-02-06 15:46 Enrico Scholz + * util-vserver/scripts/functions: isAvoidNamespace(): use + 'vserver-info - FEATURE namespace' inforamtion too - * Makefile.am: +2004-03-05 19:51 Enrico Scholz - added ensc_vector/ & ensc_wrappers/ subdirs and files + * util-vserver/distrib/misc/vprocunhide-files, + util-vserver/scripts/vprocunhide: initial checkin -2004-02-05 23:16 Enrico Scholz +2004-03-05 19:51 Enrico Scholz - * src/setattr.c: + * util-vserver/src/vlimit.c: try to read limits from dir only, when + '--dir' was used - documented --barrier - fixed do-display-dir behavior +2004-03-05 19:50 Enrico Scholz -2004-02-05 05:20 Enrico Scholz + * util-vserver/src/setattr.c: allow '--!...' syntax too - * scripts/vserver.functions: +2004-03-05 19:50 Enrico Scholz - added another path for the template mtab file + * util-vserver/scripts/vserver-build.functions.pkgmgmt: added a + missing '\' -2004-02-05 05:14 Enrico Scholz +2004-03-05 19:49 Enrico Scholz - * NEWS, configure.ac: + * util-vserver/scripts/util-vserver-vars.pathsubst: added setattr + and vprocunhide - version 0.28.195 +2004-03-05 19:48 Enrico Scholz -2004-02-05 05:02 Enrico Scholz + * util-vserver/scripts/Makefile-files: added vprocunhide - * distrib/defaults/apt.conf: +2004-03-05 19:47 Enrico Scholz - initial checkin + * util-vserver/doc/configuration.xml: documented vprocunhide + documentation -2004-02-05 04:43 Enrico Scholz +2004-03-05 19:47 Enrico Scholz - * distrib/Makefile.am: + * util-vserver/distrib/Makefile.am: added vprocunhide-files - added default apt.conf +2004-03-05 19:47 Enrico Scholz -2004-02-05 04:43 Enrico Scholz + * util-vserver/contrib/manifest.dat.pathsubst: added vprocunhide + files - * doc/configuration.xml: +2004-03-05 17:56 Enrico Scholz - documented default apt.conf + * util-vserver/scripts/chcontext, util-vserver/scripts/functions, + util-vserver/scripts/rootshell, util-vserver/scripts/vapt-get, + util-vserver/scripts/vapt-get-worker, util-vserver/scripts/vpkg, + util-vserver/scripts/vpstree, util-vserver/scripts/vrpm, + util-vserver/scripts/vrpm-preload, + util-vserver/scripts/vrpm-worker, util-vserver/scripts/vserver, + util-vserver/scripts/vserver-build, + util-vserver/scripts/vserver-build.apt-rpm, + util-vserver/scripts/vserver-build.debootstrap, + util-vserver/scripts/vserver-build.functions, + util-vserver/scripts/vserver-build.functions.pkgmgmt, + util-vserver/scripts/vserver-build.skeleton, + util-vserver/scripts/vserver-copy, + util-vserver/scripts/vserver.functions, + util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop, + util-vserver/scripts/vservers.grabinfo.sh, + util-vserver/scripts/vsysvwrapper, util-vserver/scripts/vtop: + added some '>&2' -2004-02-05 04:43 Enrico Scholz +2004-03-05 17:24 Enrico Scholz - * lib/syscall-legacy.hc: + * util-vserver, util-vserver/.cvsignore: added FEATURES.txt - minor code cleanups - added a missing '#ifdef ENSC_SYSCALL_TRADITIONAL' +2004-03-05 17:24 Enrico Scholz -2004-02-05 04:42 Enrico Scholz + * util-vserver/lib/testsuite, + util-vserver/lib/testsuite/.cvsignore, + util-vserver/lib/testsuite/Makefile-files: added parselimit - * m4/ensc_syscall.m4: +2004-03-05 17:23 Enrico Scholz - enhanced check by using kernel headers + * util-vserver/src/vlimit.c: added '--dir' parameter + allow command-chaining + support limits with suffixes + make '-c' optionally and assume current ctx by default -2004-02-05 04:42 Enrico Scholz +2004-03-05 17:21 Enrico Scholz - * scripts/vserver-build.functions.apt: + * util-vserver/lib/parselimit.c, + util-vserver/lib/testsuite/parselimit.c: initial checkin - added default apt.conf/vendors.conf files +2004-03-05 17:21 Enrico Scholz -2004-02-05 04:41 Enrico Scholz + * util-vserver/lib/vserver.h: vc_parseLimit(): added prototype - * src/chcontext.c: +2004-03-05 17:20 Enrico Scholz - use sethostname(2)/setdomainname(2) again... + * util-vserver/lib/Makefile-files: added parselimit.c -2004-02-05 00:39 Enrico Scholz +2004-03-05 04:44 Enrico Scholz - * configure.ac: + * util-vserver/src, util-vserver/src/.cvsignore: updated; added + vattribute and keep-ctx-alive - use ENSC_SYSCALL - enhanced diagnostic output +2004-03-05 04:43 Enrico Scholz -2004-02-05 00:38 Enrico Scholz + * util-vserver/src/vcontext.c: implement the vc_set_flags() part - * lib/: syscall-legacy.hc, vserver-internal.h: +2004-03-05 04:43 Enrico Scholz - use ENSC_SYSCALL_TRADITIONAL + * util-vserver/src/vattribute.c: setFlags(): implemented it -2004-02-05 00:38 Enrico Scholz +2004-03-05 04:42 Enrico Scholz - * lib/syscall.c: + * util-vserver/lib_internal/Makefile-files: added util-unixsock.hc - cleanups; do not include "compat.h" anymore explicitly +2004-03-05 04:42 Enrico Scholz -2004-02-05 00:37 Enrico Scholz + * util-vserver/ensc_wrappers/wrappers-vserver.hc: fixed + error-checking - * Makefile.am: +2004-03-05 04:40 Enrico Scholz - added @WGET@ substitution + * util-vserver/lib/getprocentry-legacy.c, + util-vserver/lib/syscall-compat.hc, + util-vserver/lib/syscall_getflags-v13.hc, + util-vserver/lib/syscall_getiattr.c, + util-vserver/lib/syscall_getvxinfo-oldproc.hc, + util-vserver/lib/syscall_getvxinfo.c, + util-vserver/lib/syscall_setflags-v13.hc: return better + errorcodes -2004-02-04 22:26 Enrico Scholz +2004-03-05 04:40 Enrico Scholz - * m4/ensc_syscall.m4: + * util-vserver/ensc_wrappers/wrappers-vserver.hc: fixed copy&paste + error - initial checkin +2004-03-05 04:40 Enrico Scholz -2004-02-04 22:23 Enrico Scholz + * util-vserver/ensc_wrappers/Makefile-files: added + wrappers-socket.hc - * scripts/vpkg: +2004-03-05 04:39 Enrico Scholz - implemented Debian support + * util-vserver/contrib/manifest.dat.pathsubst: added vattribute and + keep-ctx-alive -2004-02-04 22:22 Enrico Scholz +2004-03-05 03:27 Enrico Scholz - * scripts/vserver: + * util-vserver/src/vserver-info.c: added 'FEATURE' tag - cleanups - added '--silent' option +2004-03-05 03:27 Enrico Scholz -2004-02-04 22:21 Enrico Scholz + * util-vserver/src/vcontext.c: added support for external + synchronization - * src/: vunify-init.hc, vunify.c: +2004-03-05 03:27 Enrico Scholz - minor cleanups + * util-vserver/src/reducecap.c: use vc_list2flag_compat() instead + of vc_textlist2flag -2004-02-04 04:28 Enrico Scholz +2004-03-05 03:26 Enrico Scholz - * lib/fscompat_getiattr-v13.hc: + * util-vserver/src/keep-ctx-alive.c, util-vserver/src/vattribute.c: + initial checkin - fixed 'xid' parameter transmission +2004-03-05 03:26 Enrico Scholz -2004-02-04 04:17 Enrico Scholz + * util-vserver/src/fstool.c, util-vserver/src/fstool.h, + util-vserver/src/setattr.c, util-vserver/src/showattr.c: added + support for VC_IATTR_IMMUTABLE flag - * NEWS: +2004-03-05 03:23 Enrico Scholz - version 0.28.193 + * util-vserver/src/enter-namespace.c, + util-vserver/src/new-namespace.c: obsoleted by vnamespace -2004-02-04 04:17 Enrico Scholz +2004-03-05 03:23 Enrico Scholz - * configure.ac: + * util-vserver/src/chcontext.c: use vc_list2flag_compat() instead + of vc_textlist2flag() - added check for wget - version 0.28.193 +2004-03-05 03:22 Enrico Scholz -2004-02-04 04:10 Enrico Scholz + * util-vserver/src/Makefile-files: removed new-namespace and + enter-namespace + added keep-ctx-alive and vattribute + added src_legacy_* variables - * util-vserver.spec.in: +2004-03-05 03:21 Enrico Scholz - added some (Build)Requires: + * util-vserver/scripts/vapt-get, util-vserver/scripts/vrpm, + util-vserver/scripts/vserver: use $_VNAMESPACE instead of + $_NEW_NAMESPACE -2004-02-04 04:10 Enrico Scholz +2004-03-05 03:21 Enrico Scholz - * contrib/manifest.dat.pathsubst: + * util-vserver/scripts/util-vserver-vars.pathsubst: added + $_VATTRIBUTE and $_VNAMESPACE + removed $_NEW_NAMESPACE - added debootstrap files +2004-03-05 03:20 Enrico Scholz -2004-02-04 04:09 Enrico Scholz + * util-vserver/scripts/chcontext: began to implement the new + vcontext part... - * doc/configuration.xml: +2004-03-05 03:20 Enrico Scholz - documented debootstrap configuration + * util-vserver/m4/ensc_syscallnr.m4: use + $ensc_cv_path_kernelheaders instead of $kernelincludedir -2004-02-04 04:07 Enrico Scholz +2004-03-05 03:19 Enrico Scholz - * scripts/vserver-build.debootstrap: + * util-vserver/lib_internal/util.h: include "util-unixsock.h" - fixed path of default-uri file +2004-03-05 03:19 Enrico Scholz -2004-02-04 03:51 Enrico Scholz + * util-vserver/lib_internal/unify-unify.c: use VC_IATTR_IMMUTABLE + flag too - * distrib/misc/debootstrap.uri: +2004-03-05 03:17 Enrico Scholz - initial checkin + * util-vserver/lib_internal/util-unixsock.h: initial checkin -2004-02-04 03:51 Enrico Scholz +2004-03-05 03:17 Enrico Scholz - * distrib/Makefile.am: + * util-vserver/lib/testsuite/flags.c: updated to new flag functions - added debootstrap.uri +2004-03-05 03:16 Enrico Scholz -2004-02-04 03:48 Enrico Scholz + * util-vserver/lib/vserver.h: use uint_leastX_t instead of uintX_t + added -compat versions for the flag-parsers + vc_isSupportedString(): added - * scripts/vserver-setup.functions: +2004-03-05 03:15 Enrico Scholz - use $PKGLIBDEFAULTDIRc + * util-vserver/lib/internal.h: added utilvserver_listparser_uint* + declarations -2004-02-04 03:47 Enrico Scholz +2004-03-05 03:15 Enrico Scholz - * scripts/: vserver-build.apt-rpm, vserver-build.functions, - vserver-build.skeleton: + * util-vserver/lib/fmt-32.c, util-vserver/lib/fmt-64.c, + util-vserver/lib/fmt.h, util-vserver/lib/fmt.hc, + util-vserver/lib/fmtx-32.c, util-vserver/lib/fmtx-64.c, + util-vserver/lib/fmtx.hc: fixed aliased functions; they are now + in the *.c files and will not be + used anymore by every file including 'fmt.h' - cleanups; use 'base.' namespace +2004-03-05 03:13 Enrico Scholz -2004-02-04 03:46 Enrico Scholz + * util-vserver/lib/flags.c, util-vserver/lib/flags_list.c: renamed + to -compat.c - * scripts/vserver-build: +2004-03-05 03:12 Enrico Scholz - added debootstrap + * util-vserver/ensc_wrappers/wrappers-socket.hc, + util-vserver/lib/flags-compat.c, util-vserver/lib/flags-v13.c, + util-vserver/lib/flags_list-compat.c, + util-vserver/lib/flags_list-v13.c, + util-vserver/lib/issupportedstring.c, + util-vserver/lib/listparser.hc, + util-vserver/lib/listparser_uint32.c, + util-vserver/lib/listparser_uint64.c: initial checkin -2004-02-04 03:46 Enrico Scholz +2004-03-05 03:11 Enrico Scholz - * scripts/vpkg: + * util-vserver/lib/Makefile-files: updated to new flags* files + added listparser* files + removed unused statements - added basic support for Debian +2004-03-05 03:10 Enrico Scholz -2004-02-04 03:46 Enrico Scholz + * util-vserver/ensc_wrappers/wrappers.h: added wrappers-socket.hc - * scripts/util-vserver-vars.pathsubst: +2004-03-05 03:10 Enrico Scholz - added $_WGET + * util-vserver/ensc_wrappers/wrappers-iosock.hc: modernized + declarations (use WRAPPER_DECL) + WsendAll(),WrecvAll(): added 'int *err' parameter and do not use + perror() anymore -2004-02-04 03:45 Enrico Scholz +2004-03-05 03:09 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/contrib/manifest.dat.pathsubst: removed + new-namespace and enter-namespace; they are obsoleted by + vnamespace - added debootstrap and pkgmgmt files +2004-03-05 03:08 Enrico Scholz -2004-02-04 03:44 Enrico Scholz + * util-vserver/Makefile.am: added $(src_legacy_*) - * scripts/vserver-build.debootstrap: +2004-03-04 04:05 Enrico Scholz - initial checkin + * util-vserver/m4/ensc_syscallnr.m4: requires AC_PROG_CPP -2004-02-03 23:22 Enrico Scholz +2004-03-04 04:04 Enrico Scholz - * NEWS, configure.ac: + * util-vserver/lib/vserver.h: added VC_IATTR_IMMUTABLE - version 0.28.192 +2004-03-04 04:04 Enrico Scholz -2004-02-03 23:21 Enrico Scholz + * util-vserver/lib/virtual.h: added IATTR_IMMUTABLE - * src/.cvsignore: +2004-03-04 04:04 Enrico Scholz - added 'vuname' + * util-vserver/lib/Makefile-files: do not use -I $kernelincludedir + anymore -2004-02-03 23:19 Enrico Scholz +2004-03-04 03:01 Enrico Scholz - * contrib/: Makefile-files, make-manifest, manifest.dat.pathsubst, - .cvsignore: + * util-vserver/m4/ensc_syscallnr.m4: rewrote it... - initial checkin +2004-03-04 03:00 Enrico Scholz -2004-02-03 22:58 Enrico Scholz + * util-vserver/m4/ensc_cflags.m4, util-vserver/m4/ensc_dietlibc.m4, + util-vserver/m4/ensc_dietlibc_compat.m4, + util-vserver/m4/ensc_fpicsyscall.m4, + util-vserver/m4/ensc_syscall.m4: use unique identifiers - * configure.ac: +2004-02-27 19:58 Enrico Scholz - added more details to the final summary + * util-vserver/NEWS, util-vserver/configure.ac: version 0.29.197 -2004-02-03 22:57 Enrico Scholz +2004-02-27 19:55 Enrico Scholz - * distrib/Makefile.am: + * util-vserver/distrib/redhat/initpost: fixed kernel-pkg + installation + fixed initscript update - added misc/fstab +2004-02-27 19:24 Enrico Scholz -2004-02-03 22:57 Enrico Scholz + * util-vserver/src, util-vserver/src/.cvsignore: added vsched - * scripts/: vserver-build.apt-rpm, vserver-build.functions: +2004-02-27 19:23 Enrico Scholz - splitted some functions into a separate vserver-build.functions.pkgmgmt file - use XXX.yyy namespace-style notation + * util-vserver/lib/testsuite/fmt.c: include -2004-02-03 22:54 Enrico Scholz +2004-02-27 18:58 Enrico Scholz - * scripts/vserver-build.functions.pkgmgmt, - scripts/vserver-build.skeleton, distrib/misc/fstab: + * util-vserver/contrib/manifest.dat.pathsubst: added vsched - initial checkin +2004-02-27 18:57 Enrico Scholz -2004-02-03 22:54 Enrico Scholz + * util-vserver/src/chbind.c: removed unused variable - * scripts/vserver-setup.functions: +2004-02-27 18:57 Enrico Scholz - allow to configure fstab-file + * util-vserver/src/testsuite/rpm-fake-test.c: include -2004-02-03 22:53 Enrico Scholz +2004-02-27 18:57 Enrico Scholz - * scripts/: vserver-build.functions.apt, - vserver-build.functions.rpm: + * util-vserver/src/Makefile-files, util-vserver/src/vsched.c, + util-vserver/src/vschedule.c: renamed vschedule to vsched - splitted some functions into a separate vserver-build.functions.pkgmgmt file - use XXX.yyy namespace-style notation +2004-02-27 18:48 Enrico Scholz -2004-02-03 22:52 Enrico Scholz + * util-vserver/src, util-vserver/src/.cvsignore: added + chcontext-compat and vschedule - * scripts/vserver-build: +2004-02-27 18:46 Enrico Scholz - added skeleton support - fixed help message + * util-vserver/lib/syscall_setsched-v13.hc, + util-vserver/lib/syscall_setsched.c, + util-vserver/src/vschedule.c: initial checkin -2004-02-03 22:52 Enrico Scholz +2004-02-27 18:46 Enrico Scholz - * scripts/vserver: + * util-vserver/src/Makefile-files: added vschedule - added '--debug' option +2004-02-27 18:45 Enrico Scholz -2004-02-03 22:51 Enrico Scholz + * util-vserver/lib/vserver.h: added vc_set_sched declarations - * scripts/util-vserver-vars.pathsubst: +2004-02-27 18:45 Enrico Scholz - added $_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT + * util-vserver/lib/virtual.h: removed 'otpions' field from + vcmd_set_sched_v1 -2004-02-03 22:48 Enrico Scholz +2004-02-27 18:44 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/lib/Makefile-files: added *setsched* files - added vserver-build.skeleton +2004-02-27 18:02 Enrico Scholz -2004-02-03 22:47 Enrico Scholz + * util-vserver/src/chcontext.c: cleanups; applied name-change from + 'chcontext' to 'chcontext-compat' - * src/vkill.c: +2004-02-27 18:02 Enrico Scholz - cleanups; use modern interfaces + * util-vserver/src/Makefile-files: renamed 'chcontext' to + 'chcontext-compat' -2004-02-03 22:47 Enrico Scholz +2004-02-27 18:01 Enrico Scholz - * src/util.h: + * util-vserver/scripts/util-vserver-vars.pathsubst: added + $_CHCONTEXT_COMPAT + updated $_CHCONTEXT - VSERVER_DECLARE_CMD macro: added +2004-02-27 18:01 Enrico Scholz -2004-02-03 22:46 Enrico Scholz + * util-vserver/scripts/functions: isKernelAPI(): added - * src/Makefile-files: +2004-02-27 18:00 Enrico Scholz - added vuname + * util-vserver/lib/issupported.c, util-vserver/scripts/chcontext: + initial checkin -2004-02-03 22:45 Enrico Scholz +2004-02-27 18:00 Enrico Scholz - * src/testsuite/Makefile-files: + * util-vserver/scripts/Makefile-files: added chcontext wrapper - added workaround for automake bug +2004-02-27 17:59 Enrico Scholz -2004-02-03 22:45 Enrico Scholz + * util-vserver/lib/vserver.h: added vc_isSupported() + cleanups - * src/vuname.c: +2004-02-27 17:59 Enrico Scholz - initial checkin + * util-vserver/lib/virtual.h: updated scheduler definitions -2004-02-03 13:59 Enrico Scholz +2004-02-27 17:57 Enrico Scholz - * configure.ac: + * util-vserver/lib/Makefile-files: added issupported.c - use ENSC_C99COMPILER - give out summary at end of ./configure +2004-02-27 17:57 Enrico Scholz -2004-02-03 13:57 Enrico Scholz + * util-vserver/contrib/manifest.dat.pathsubst: added + chcontext-compat - * src/Makefile-files: +2004-02-27 04:44 Enrico Scholz - * added support for ENSC_HAVE_C99_COMPILER and conditionalized build - of 'vunify' - * renamed *_CXX_X_* variables to *_CXX_* + * util-vserver/src/vcontext.c: cleanups; restructured code -2004-02-03 13:55 Enrico Scholz +2004-02-27 04:43 Enrico Scholz - * src/vunify.cc[DEAD]: + * util-vserver/src/new-namespace.c: cleanups; do not include + "stack-start.h" anymore - removed since rewritten in C +2004-02-27 04:42 Enrico Scholz -2004-02-03 13:55 Enrico Scholz + * util-vserver/src, util-vserver/src/.cvsignore, + util-vserver/src/Makefile-files: added vnamespace - * m4/ensc_dietlibc.m4: +2004-02-27 04:42 Enrico Scholz - use 'yes' instead of '1' + * util-vserver/lib/syscall_cleanupnamespace-v13.hc, + util-vserver/lib/syscall_cleanupnamespace.c, + util-vserver/lib/syscall_setnamespace-v13.hc, + util-vserver/lib/syscall_setnamespace.c, + util-vserver/src/vnamespace.c: initial checkin -2004-02-03 13:55 Enrico Scholz +2004-02-27 04:42 Enrico Scholz - * m4/ensc_cxxcompiler.m4: + * util-vserver/src/fakerunlevel.c, + util-vserver/src/rpm-fake-resolver.c, + util-vserver/src/save_ctxinfo.c, util-vserver/src/vrsetup.c, + util-vserver/src/vserver-stat.c: use wrappers with detailed + error-messages - added ENSC_C99COMPILER - added warning-messages +2004-02-27 04:40 Enrico Scholz -2004-02-03 13:54 Enrico Scholz + * util-vserver/lib/testsuite/fmt.c: made non-C99 compilers happy - * lib/: syscall_getvhiname-v13.hc, syscall_setvhiname-v13.hc: +2004-02-27 04:40 Enrico Scholz - #include + * util-vserver/lib/vserver.h: vc_set_namespace(), + vc_cleanup_namespace(): added prototypes -2004-02-02 20:34 Enrico Scholz +2004-02-27 04:40 Enrico Scholz - * doc/compatibility.xml: + * util-vserver/lib/virtual.h: added VCMD_set_namespace and + VCMD_cleanup_namespace declarations - added note about chcontext rewrite +2004-02-27 04:39 Enrico Scholz -2004-02-02 20:34 Enrico Scholz + * util-vserver/lib/Makefile-files: added *setnamespace* and + *cleanupnamespace* files - * configure.ac: +2004-02-27 04:38 Enrico Scholz - added support for olduts API + * util-vserver/ensc_wrappers/wrappers-fcntl.hc, + util-vserver/ensc_wrappers/wrappers-unistd.hc: added some + wrappers with detailed error-messages -2004-02-02 20:33 Enrico Scholz +2004-02-27 04:38 Enrico Scholz - * Makefile.am: + * util-vserver/ensc_wrappers/wrappers.h: added ENSC_DETAIL macros - substitute @PACKAGE@ too +2004-02-27 04:37 Enrico Scholz -2004-02-02 20:32 Enrico Scholz + * util-vserver/distrib/defaults/rpm/macros: added + /etc/rc.d/init.d/halt and /sbin/new-kernel-pkg to %_netsharedpath - * src/testsuite/Makefile-files: +2004-02-27 04:37 Enrico Scholz - added chcontext-test.c + * util-vserver/contrib/manifest.dat.pathsubst: added vcontext and + vnamespace -2004-02-02 20:32 Enrico Scholz +2004-02-26 13:10 Enrico Scholz - * src/testsuite/chcontext-test.c: + * util-vserver/src/util-exitlikeprocess.c: moved to lib_internal/ - initial checkin +2004-02-26 13:10 Enrico Scholz -2004-02-02 20:32 Enrico Scholz + * util-vserver/src/util.h: removed everything an include + only - * src/wrappers.h: +2004-02-26 13:09 Enrico Scholz - added Esetsid() + * util-vserver/src, util-vserver/src/.cvsignore: added vcontext -2004-02-02 20:32 Enrico Scholz +2004-02-26 13:08 Enrico Scholz - * src/wrappers-vserver.h: + * util-vserver/src/chcontext.c, + util-vserver/src/rpm-fake-resolver.c, + util-vserver/src/rpm-fake.c: use VC_DYNAMIC_XID instead of + VC_RANDCTX - return xid_t instead of void +2004-02-26 13:07 Enrico Scholz -2004-02-02 20:31 Enrico Scholz + * util-vserver/lib/syscall_createcontext-v13.hc, + util-vserver/lib/syscall_createcontext.c, + util-vserver/lib/syscall_getflags-v13.hc, + util-vserver/lib/syscall_getflags.c, + util-vserver/lib/syscall_migratecontext-v13.hc, + util-vserver/lib/syscall_migratecontext.c, + util-vserver/lib/syscall_setflags-v13.hc, + util-vserver/lib/syscall_setflags.c, + util-vserver/lib_internal/util-cast.h, + util-vserver/lib_internal/util-commonstrings.h, + util-vserver/lib_internal/util-declarecmd.h, + util-vserver/lib_internal/util-dimof.h, + util-vserver/lib_internal/util-exitlikeprocess.c, + util-vserver/lib_internal/util-exitlikeprocess.h, + util-vserver/lib_internal/util.h, util-vserver/src/vcontext.c: + initial checkin - * src/vserver-stat.c: +2004-02-26 13:06 Enrico Scholz - cleanups - added missing '\n' in error-msg + * util-vserver/src/testsuite/Makefile-files: removed + 'util-exitlikeprocess.c'; link against libinternal.a now -2004-02-02 20:31 Enrico Scholz +2004-02-26 13:06 Enrico Scholz - * src/vserver-info.c: + * util-vserver/src/Makefile-files: added vcontext + removed 'util-exitlikeprocess.c'; link against libinternal.a now - added UTS tag +2004-02-26 13:05 Enrico Scholz -2004-02-02 20:30 Enrico Scholz + * util-vserver/scripts/functions: s!/vservers!$DEFAULT_VSERVERDIR! + (reported in IRC by broo) - * src/reducecap.c: +2004-02-26 13:03 Enrico Scholz - cleanups in the vc_new_s_context() call + * util-vserver/lib_internal/util-mem.h: include -2004-02-02 20:06 Enrico Scholz +2004-02-26 13:03 Enrico Scholz - * src/chcontext.c: + * util-vserver/lib_internal/Makefile-files: added lots of util-* + headers + added util-exitlikeprocess - rewrote and enhanced it +2004-02-26 13:02 Enrico Scholz -2004-02-02 20:05 Enrico Scholz + * util-vserver/lib/vserver.h: * vc_create_context(), + vc_migrate_context(), vc_[sg]et_flags(): added + prototypes plus structures + * use VC_DYNAMIC_XID instead of VC_RANDCTX - * src/Makefile-files: +2004-02-26 13:01 Enrico Scholz - made chcontext a dietlibc program and updated its SOURCES + * util-vserver/lib/vserver-internal.h: added CALL_VC_V13A macro + (for API >= 0x00010012) + use VC_DYNAMIC_XID instead of VC_RANDCTX -2004-02-02 20:00 Enrico Scholz +2004-02-26 13:01 Enrico Scholz - * lib/vserver.h: + * util-vserver/lib/virtual.h: added create+migrate+flags+caps + declarations - return xid_t on vc_new_s_context() - added VHOST/vhi functions and types +2004-02-26 13:00 Enrico Scholz -2004-02-02 19:59 Enrico Scholz + * util-vserver/lib/Makefile-files: added createcontext + + migratecontext + [sg]etflags files - * lib/vserver-internal.h: +2004-02-26 12:59 Enrico Scholz - cleanups - added CALL_VC_OLDUTS() - added VHI_USER2KERNEL/VHI_KERNEL2USER() wrappers + * util-vserver/ensc_wrappers/wrappers-vserver.hc: + Evc_create_context(), Evc_migrate_context(): added + use WRAPPER_DECL instead of UNUSED -2004-02-02 19:58 Enrico Scholz +2004-02-25 11:47 Enrico Scholz - * lib/virtual.h: + * util-vserver/src/vlimit.c: enhanced output + added -nd options + allow literal limits + assume '-H' by default - added VHOST support +2004-02-25 11:46 Enrico Scholz -2004-02-02 19:58 Enrico Scholz + * util-vserver/lib/testsuite, + util-vserver/lib/testsuite/.cvsignore: added 'fmt' - * lib/: syscall_gettaskxid-oldproc.hc, - syscall_getvxinfo-oldproc.hc: +2004-02-25 11:45 Enrico Scholz - renamed *_X to *_oldproc + * util-vserver/src/util.h: include util-perror.h -2004-02-02 19:57 Enrico Scholz +2004-02-25 11:45 Enrico Scholz - * lib/: syscall-compat.hc, syscall-legacy.hc, syscall.c: + * util-vserver/src/chcontext.c, util-vserver/src/secure-mount.c: + use more verbose perror() - fixed vc_new_s_context() to return the context instead of 0/1 +2004-02-25 11:44 Enrico Scholz -2004-02-02 19:55 Enrico Scholz + * util-vserver/lib/testsuite/fmt.c, + util-vserver/lib_internal/util-perror.h: initial checkin - * lib/: fscompat_getiattr-v13.hc, fscompat_setiattr-v13.hc, - syscall_getiattr-v13.hc, syscall_getvxinfo-v13.hc, - syscall_kill-v11.hc, syscall_setiattr-v13.hc: +2004-02-25 11:44 Enrico Scholz - use CTX_USER2KERNEL to wrap xid + * util-vserver/scripts/vserver.functions: added better namespace + supportc -2004-02-02 19:54 Enrico Scholz +2004-02-25 11:43 Enrico Scholz - * lib/capabilities.c: + * util-vserver/lib/testsuite/Makefile-files: added fmt.c - allow both 'CAP_xxx' and 'xxx' +2004-02-25 11:43 Enrico Scholz -2004-02-02 19:36 Enrico Scholz + * util-vserver/lib/fmt.h: fmt_[u]int{32,64}(): added - * lib/Makefile-files: +2004-02-20 23:36 Enrico Scholz - added *vhiname* files + * util-vserver/lib/flags.c: cosmetical cleanups -2004-02-02 19:32 Enrico Scholz +2004-02-20 23:33 Enrico Scholz - * lib/: syscall_getvhiname-olduts.hc, syscall_getvhiname-v13.hc, - syscall_getvhiname.c, syscall_setvhiname-olduts.hc, - syscall_setvhiname-v13.hc, syscall_setvhiname.c: + * util-vserver/lib/flags.c, util-vserver/lib/vserver.h: added + NAMESPACE flag - initial checkin +2004-02-20 21:14 Enrico Scholz -2004-01-29 12:09 Enrico Scholz + * util-vserver/src/Makefile-files: install enter-namespace into + $(sbindir) instead of $(pkglibdir) - * doc/.cvsignore: +2004-02-20 21:08 Enrico Scholz - initial checkin + * util-vserver/src/new-namespace.c: added missing '#include + ' -2004-01-29 12:08 Enrico Scholz +2004-02-20 20:53 Enrico Scholz - * NEWS: + * util-vserver/NEWS, util-vserver/configure.ac: version 0.29.196 - version 0.28.190 +2004-02-20 20:33 Enrico Scholz -2004-01-29 12:07 Enrico Scholz + * util-vserver/src, util-vserver/src/.cvsignore: added + enter-namespace - * Makefile.am: +2004-02-20 20:27 Enrico Scholz - cleanups; use $(SED) instead of sed - fix $pkglibdir in install-data-hook - put some hooks into own targets + * util-vserver/contrib/manifest.dat.pathsubst, + util-vserver/src/Makefile-files: added enter-namespace -2004-01-29 12:06 Enrico Scholz +2004-02-20 20:27 Enrico Scholz - * configure.ac: + * util-vserver/src/enter-namespace.c: initial checkin - added tests for sed and cmp - outsourced ext2fs test (merged from 0.28) +2004-02-20 20:05 Enrico Scholz -2004-01-29 12:05 Enrico Scholz + * util-vserver/src/vlimit.c: merged with 0.29.2 - * src/vserver-stat.c: +2004-02-20 19:06 Enrico Scholz - fixed insert-into-list function - give out warning when vc_get_task_xid() fails + * util-vserver/src/vlimit.c: changed logic to skip entries without + chance for success -2004-01-29 12:04 Enrico Scholz +2004-02-20 19:04 Enrico Scholz - * src/vserver-info.c: + * util-vserver/lib/Makefile-files: cleanups - use DIM_OF() macro - added APIVER tag - fixed help message +2004-02-20 19:03 Enrico Scholz -2004-01-29 12:04 Enrico Scholz + * util-vserver/lib/syscall_rlimit-v11.hc: vc_get_rlimit_mask_v11(): + use correct datastructure - * src/util.h: +2004-02-20 17:59 Enrico Scholz - added DIM_OF() macro + * util-vserver/lib/Makefile-files, util-vserver/lib/virtual.h, + util-vserver/lib/vserver.h: added the enter-namespace stuff -2004-01-29 12:03 Enrico Scholz +2004-02-20 17:58 Enrico Scholz - * src/.cvsignore: + * util-vserver/lib/syscall_enternamespace-v13.hc, + util-vserver/lib/syscall_enternamespace.c: initial checkin - added vrsetup +2004-02-20 17:06 Enrico Scholz -2004-01-29 12:03 Enrico Scholz + * util-vserver/ensc_wrappers/wrappers_handler.hc: added support for + more extensive output - * scripts/: rootshell, vapt-get, vapt-get-worker, vpkg, vpstree, - vrpm, vrpm-preload, vrpm-worker, vserver, vserver-build, - vserver-copy, vservers.grabinfo.sh, vsysvwrapper, vtop, - legacy/distrib-info, legacy/vserver, legacy/vserverkillall: +2004-02-20 17:05 Enrico Scholz - fixed/changed path-detection for $UTIL_VSERVER_VARS + * util-vserver/contrib/manifest.dat.pathsubst: moved vserver-info + into core -2004-01-29 12:02 Enrico Scholz +2004-02-20 17:05 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/lib/vserver-internal.h: VC_ENABLE_API_V13(): + incremented needed API-version - cleanups - do not install util-vserver-vars in SBINDIR anymore +2004-02-20 17:04 Enrico Scholz -2004-01-29 12:01 Enrico Scholz + * util-vserver/lib/syscall_getvxinfo-v13.hc: vc_get_vx_info_v13(): + handle xid==0 and xid==1 case manually - * m4/ensc_e2fscheck.m4: +2004-02-20 17:02 Enrico Scholz - initial checkin + * util-vserver/src/vlimit.c: cleanup output in error-case -2004-01-29 12:00 Enrico Scholz +2004-02-20 17:02 Enrico Scholz - * lib/: ext2fs.h, getversion.c, vserver.h: + * util-vserver/src/stack-start.h: fixed begin of STACK_START for + non-growing stacks - merged with 0.28 +2004-02-20 17:01 Enrico Scholz -2004-01-23 22:07 Enrico Scholz + * util-vserver/src/fakerunlevel.c: use more extensive errormessages + use - * doc/Makefile-files: +2004-02-20 17:01 Enrico Scholz - added some files to doc_DAT + * util-vserver/lib/fscompat_getiattr-v13.hc, + util-vserver/lib/fscompat_getiattr.c, + util-vserver/lib/fscompat_setiattr-v13.hc, + util-vserver/lib/fscompat_setiattr.c: obsoleted -2004-01-23 21:51 Enrico Scholz +2004-02-20 16:59 Enrico Scholz - * configure.ac: + * util-vserver/src/chcontext.c, util-vserver/src/clearenv.c, + util-vserver/src/exec-cd.c, util-vserver/src/exec-ulimit.c, + util-vserver/src/ifspec.c, util-vserver/src/listdevip.c, + util-vserver/src/new-namespace.c, util-vserver/src/reducecap.c, + util-vserver/src/rpm-fake-resolver.c, + util-vserver/src/rpm-fake.c, util-vserver/src/save_ctxinfo.c, + util-vserver/src/secure-mount.c, util-vserver/src/vkill.c: do not + do the lo-check anymore - version 0.27.199 - added check for xsltproc +2004-02-20 16:57 Enrico Scholz -2004-01-23 21:51 Enrico Scholz + * util-vserver/src/chbind.c: use more extensive errormessages + do not do the lo-check anymore - * NEWS: +2004-02-20 02:38 Enrico Scholz - version 0.27.199 + * util-vserver/src/vserver-info.c: fix copy&paste error when giving + out initpid -2004-01-23 21:50 Enrico Scholz +2004-02-19 22:42 Enrico Scholz - * compat.h: + * util-vserver/NEWS: version 0.29.195 - added ENSC_FIX_IOCTL() +2004-02-19 22:32 Enrico Scholz -2004-01-23 21:49 Enrico Scholz + * util-vserver/src/vserver-info.c: added SYSINFO command + internal cleanups - * Makefile.am: +2004-02-19 22:31 Enrico Scholz - added $(doc_DAT) + * util-vserver/m4/ensc_e2fscheck.m4: tell correct packagename for + Debian's e2fsprogs-devel + tell packagename for Mandrake -2004-01-23 21:48 Enrico Scholz +2004-02-19 22:29 Enrico Scholz - * doc/Makefile-files: + * util-vserver/src/chxid.c, util-vserver/src/fstool.c, + util-vserver/src/fstool.h, util-vserver/src/lsxid.c, + util-vserver/src/setattr.c, util-vserver/src/showattr.c: applied + new iattr interface and changed some internal functions - added compat-doc +2004-02-19 22:25 Enrico Scholz -2004-01-23 21:48 Enrico Scholz + * util-vserver/lib_internal/unify-unify.c, + util-vserver/lib_internal/util-safechdir.c: applied new iattr + interface - * doc/: compat-xhtml.xsl, compatibility.dtd, compatibility.xml: +2004-02-19 22:25 Enrico Scholz - initial checkin + * util-vserver/lib/vserver.h: * changed iattr interface + * removed *iattr_compat() functions; functionality is covered by + new + iattr interface already -2004-01-23 21:47 Enrico Scholz +2004-02-19 22:23 Enrico Scholz - * lib/: ioctl-getext2flags.hc, ioctl-getfilecontext.hc, - ioctl-setext2flags.hc, ioctl-setfilecontext.hc, ioctl-setxflg.hc: + * util-vserver/lib/virtual.h: added new iattr definitions - use ENSC_FIX_IOCTL() to fix dietlibc's ioctl() return values +2004-02-19 22:22 Enrico Scholz -2004-01-22 22:35 Enrico Scholz + * util-vserver/lib/syscall_getiattr-v13.hc, + util-vserver/lib/syscall_getiattr.c, + util-vserver/lib/syscall_setiattr-v13.hc, + util-vserver/lib/syscall_setiattr.c: implemented new iattr + interface - * lib/: getversion-internal.hc, syscall-compat.hc, - syscall_getiattr-v13.hc, syscall_gettaskxid-v13.hc, - syscall_getvxinfo-v13.hc, syscall_kill-v11.hc, - syscall_rlimit-v11.hc, syscall_setiattr-v13.hc: +2004-02-19 22:21 Enrico Scholz - use the VCMD_* macros instead of the VC_CMD(...) macros + * util-vserver/lib/syscall-compat.hc: vc_set_ipv4root_compat(): + fixed off-by-one error while checking number + of allowed IPs -2004-01-22 16:42 Enrico Scholz +2004-02-19 22:19 Enrico Scholz - * NEWS, configure.ac: + * util-vserver/lib/fscompat_getiattr-fscompat.hc, + util-vserver/lib/fscompat_setiattr-fscompat.hc, + util-vserver/lib/syscall_getiattr-fscompat.hc, + util-vserver/lib/syscall_setiattr-fscompat.hc: moved fscompat* + files to *iattr-fscompat* and applied the changed iattr interface - version 0.27.198 +2004-02-19 22:14 Enrico Scholz -2004-01-22 16:40 Enrico Scholz + * util-vserver/lib/createskeleton-full.hc: use new iattr interface - * src/vrsetup.c: +2004-02-19 22:14 Enrico Scholz - fixed copyright date + * util-vserver/lib/Makefile-files: removed the fscompat* files + added *iattr-fscompat files -2004-01-22 15:24 Enrico Scholz +2004-02-19 22:09 Enrico Scholz - * src/wrappers.h: + * util-vserver/contrib/manifest.dat.pathsubst: added FEATURES.txt + and vcopy - added Eioctl() wrapper +2004-02-19 22:08 Enrico Scholz -2004-01-22 15:22 Enrico Scholz + * util-vserver/configure.ac: create FEATURES.txt and rearranged + code a little bit - * src/Makefile-files: +2004-02-19 22:08 Enrico Scholz - added vrsetup + * util-vserver/Makefile.am: added FEATURES.txt -2004-01-22 15:22 Enrico Scholz +2004-02-18 04:50 Enrico Scholz - * src/vrsetup.c: + * util-vserver/lib/vserver.h: added vc_createSkeleton() plus + defines - initial checkin +2004-02-18 04:50 Enrico Scholz -2004-01-22 14:43 Enrico Scholz + * util-vserver/lib/fscompat_setiattr-fscompat.hc: + vc_set_iattr_compat_fscompat(): fixed usage of the mode argument - * src/vunify-doit.hc: +2004-02-18 04:49 Enrico Scholz - * provide st_mode at vc_set_iattr_compat() call + * util-vserver/lib_internal/unify-unify.c, + util-vserver/lib_internal/unify.h: Unify_deUnify(): fixed + parameters + Unify_copy(), Unify_setTime(): added prototype -2004-01-22 14:42 Enrico Scholz +2004-02-18 04:48 Enrico Scholz - * src/: lsxid.c, showattr.c: + * util-vserver/lib_internal/unify-deunify.c: fixed parameters - * provide st_mode at vc_set_iattr_compat() call - * do not stop on non-regular files; vc_set_iattr_compat() handles this - already +2004-02-18 04:48 Enrico Scholz -2004-01-22 14:41 Enrico Scholz + * util-vserver/lib_internal/matchlist.h: MatchList_printId(): added + prototype - * src/setattr.c: +2004-02-18 04:47 Enrico Scholz - * removed the race-check; this is done by vc_set_iattr_compat() already - * provide st_mode at vc_set_iattr_compat() call - * do not stop on non-regular files; vc_set_iattr_compat() handles this - already - * moved setFlags() code into handleFile() - * added 'iunlink' option + * util-vserver/lib_internal/Makefile-files: added unify* and util-* + files -2004-01-22 14:40 Enrico Scholz +2004-02-18 04:46 Enrico Scholz - * src/chxid.c: + * util-vserver/src/vunify.c, util-vserver/src/vunify.h: cleanups; + outsourced a lot to libinternal.a - * removed the race-check; this is done by vc_set_iattr_compat() already - * provide st_mode at vc_set_iattr_compat() call - * do not stop on non-regular files; vc_set_iattr_compat() handles this - already - * moved setFile() code into handleFile() +2004-02-18 04:45 Enrico Scholz -2004-01-22 14:38 Enrico Scholz + * util-vserver/src/util.h: cleanups; outsourced some macros/inlines + to libinternal.a - * src/Makefile-files: +2004-02-18 04:44 Enrico Scholz - removed 'vunify' from list of C++ files + * util-vserver/src/Makefile-files: added vcopy + link the fstool programs against libinternal.a + removed vserver-visitdir -2004-01-22 14:37 Enrico Scholz +2004-02-18 04:43 Enrico Scholz - * lib/syscall_gettaskxid-v13.hc: + * util-vserver/src, util-vserver/src/.cvsignore: added vcopy - fixed call +2004-02-18 04:43 Enrico Scholz -2004-01-22 14:36 Enrico Scholz + * util-vserver/src/util-safechdir.c: moved into libinternal.a - * lib/: ioctl-getext2flags.hc, ioctl-getfilecontext.hc, - ioctl-getxflg.hc, ioctl-setext2flags.hc, ioctl-setfilecontext.hc, - ioctl-setxflg.hc: +2004-02-18 04:42 Enrico Scholz - when ioctl() returns a value <-1, assign errno manually and return -1 + * util-vserver/lib/createskeleton-full.hc, + util-vserver/lib/createskeleton-short.hc, + util-vserver/lib/createskeleton.c, + util-vserver/lib_internal/matchlist-printid.c, + util-vserver/lib_internal/unify-copy.c, + util-vserver/lib_internal/unify-settime.c, + util-vserver/lib_internal/util-dotfile.h, + util-vserver/lib_internal/util-safechdir.c, + util-vserver/lib_internal/util-safechdir.h, + util-vserver/src/vcopy-init.hc, util-vserver/src/vcopy.c, + util-vserver/src/vserver-visitdir.hc: initial checkin -2004-01-22 14:35 Enrico Scholz +2004-02-18 04:41 Enrico Scholz - * lib/: syscall_getiattr-v13.hc, syscall_setiattr-v13.hc: + * util-vserver/ensc_wrappers/wrappers-io.hc: rewrote the W*all() + function to accept an additional argument holding + the error, instead of giving out the error - updated to changed API; removed 'dev' field from 'struct vcmd_ctx_iattr_v0' +2004-02-18 04:40 Enrico Scholz -2004-01-22 14:34 Enrico Scholz + * util-vserver/lib/Makefile-files: added createskeleton* files - * lib/virtual.h: +2004-02-18 04:39 Enrico Scholz - updated; removed 'dev' field from 'struct vcmd_ctx_iattr_v0' + * util-vserver/pathconfig.h.pathsubst: added DEFAULT_PKGSTATEDIR -2004-01-22 14:34 Enrico Scholz +2004-02-18 04:39 Enrico Scholz - * lib/vserver-internal.h: + * util-vserver/Makefile.am, util-vserver/configure.ac: do not + redefine 'LIBTOOL'; the '--tag' causes problems on install - CALL_VC(): return ENOSYS in errorcase +2004-02-18 04:38 Enrico Scholz -2004-01-22 14:33 Enrico Scholz + * util-vserver/compat.h: added PURE - * lib/vserver.h: +2004-02-17 19:59 Enrico Scholz - * vc_[sg]et_iattr_compat(): added additional 'mode' parameter to avoid - an additional 'lstat' + * util-vserver/configure.ac: call ENSC_DIETLIBC_NEED_COMPAT to + determine if '-lcompat' is needed for dietlibc -2004-01-22 14:30 Enrico Scholz +2004-02-17 19:59 Enrico Scholz - * lib/: fscompat_getiattr.c, fscompat_setiattr.c: + * util-vserver/Makefile.am: define $(VSERVER_LDADDS) + generalized some LIBTOOL stuff + do not install libinternal.a anymore - * added additional 'mode' parameter to avoid an additional 'lstat' +2004-02-17 19:58 Enrico Scholz -2004-01-22 14:29 Enrico Scholz + * util-vserver/tests/Makefile-files: use $(VSERVER_LDADDS) instead + of lib/libvserver.la to use '-lcompat' on purpose - * lib/: fscompat_getiattr-fscompat.hc, - fscompat_setiattr-fscompat.hc: +2004-02-17 19:57 Enrico Scholz - * added additional 'mode' parameter to avoid an additional 'lstat' - * operate on regular files and directories only + * util-vserver/scripts/functions: _pkgMountRPM(): do not mount + /proc when it is already mounted -2004-01-21 22:32 Enrico Scholz +2004-02-17 19:56 Enrico Scholz - * lib/syscall_gettaskxid-v13.hc: + * util-vserver/src/rpm-fake.c: rearranged inclusion of + to fix compilation problems + with fc1.90 - return VC_NOCTX instead of -1 +2004-02-17 19:55 Enrico Scholz -2004-01-21 20:06 Enrico Scholz + * util-vserver/src/rebootmgr.c: include - * tests/getinitpid.c: +2004-02-17 19:55 Enrico Scholz - updated to new API + * util-vserver/src/Makefile-files: use $(VSERVER_LDADDS) instead of + lib/libvserver.la to use '-lcompat' on purpose + fixed capchroot compilation -2004-01-21 20:06 Enrico Scholz +2004-02-17 19:52 Enrico Scholz - * src/vserver-info.c: + * util-vserver/m4/ensc_dietlibc_compat.m4: initial checkin - added INITPID* and XID tags +2004-02-17 19:51 Enrico Scholz -2004-01-21 20:01 Enrico Scholz + * util-vserver/ensc_vector/testsuite/test1.c, + util-vserver/src/testsuite/vunify-functest.c: make non-C99 + compilers happy - * src/save_ctxinfo.c, src/vps.c, src/vserver-stat.c, - src/wrappers-vserver.h, tests/getctx.c: +2004-02-17 02:54 Enrico Scholz - use vc_get_task_xid() instead of vc_X_getctx() + * util-vserver/NEWS: version 0.29.192 -2004-01-21 19:59 Enrico Scholz +2004-02-17 02:46 Enrico Scholz - * lib/vserver.h: + * util-vserver/Makefile.am: added missing backslash - * vc_get_vx_info(), vc_get_task_xid(): added prototypes plus required - typedefinitions - * vc_X_getctx(), vc_X_getinitpid(): removed since obsoleted by functions - above +2004-02-17 02:39 Enrico Scholz -2004-01-21 19:57 Enrico Scholz + * util-vserver/src/testsuite/Makefile-files, + util-vserver/src/testsuite/vunify-functest.c, + util-vserver/src/vunify.h: use new lib_internal/ - * lib/vserver-internal.h: +2004-02-17 02:38 Enrico Scholz - * added fscompat & oldproc API - * added support for VC_MULTIVERSION_SYSCALL which chooses the optimal - CALL_VC variant - * changed CALL_VC() so that it looks for version greater than requested - one now + * util-vserver/src/vunify-init.hc: moved most function into + lib_internal/ -2004-01-21 19:55 Enrico Scholz +2004-02-17 02:36 Enrico Scholz - * lib/virtual.h: + * util-vserver/src/vunify.c: use new lib_internal - updated; added VINFO commands +2004-02-17 02:36 Enrico Scholz -2004-01-21 19:55 Enrico Scholz + * util-vserver/src/util.h: moved some functions/macros into + lib_internal/util-* - * lib/: syscall_kill.c, syscall_rlimit.c: +2004-02-17 02:36 Enrico Scholz - cleanups; optimize CALL_VC() usage + * util-vserver/src/Makefile-files: removed vunify-* files which + went into lib_internal -2004-01-21 19:54 Enrico Scholz +2004-02-17 02:35 Enrico Scholz - * lib/: fscompat_getiattr.c, fscompat_setiattr.c: + * util-vserver/Makefile.am: added lib_internal/ files - cleanups; use CALL_VC() macro +2004-02-17 02:34 Enrico Scholz -2004-01-21 19:53 Enrico Scholz + * util-vserver/src/vunify-compare.hc, + util-vserver/src/vunify-debug.c, util-vserver/src/vunify-doit.hc, + util-vserver/src/vunify-matchlist.c, + util-vserver/src/vunify-matchlist.h: moved functionality into + lib_internal library - * lib/: checkversion.c, getversion-internal.hc, getversion.c, - ioctl-getext2flags.hc, ioctl-getfilecontext.hc, ioctl-getxflg.hc, - ioctl-setext2flags.hc, ioctl-setfilecontext.hc, ioctl-setxflg.hc, - syscall-compat.hc, syscall.c, syscall_getiattr-v13.hc, - syscall_setiattr-v13.hc: +2004-02-17 02:33 Enrico Scholz - cleanups; fixed/changed "vserver-internal.h" including + * util-vserver/lib_internal, + util-vserver/lib_internal/Makefile-files, + util-vserver/lib_internal/matchlist-appendfiles.c, + util-vserver/lib_internal/matchlist-compare.c, + util-vserver/lib_internal/matchlist-destroy.c, + util-vserver/lib_internal/matchlist-init.c, + util-vserver/lib_internal/matchlist-initbyvserver.c, + util-vserver/lib_internal/matchlist-initmanually.c, + util-vserver/lib_internal/matchlist-initrefserverlist.c, + util-vserver/lib_internal/matchlist.h, + util-vserver/lib_internal/pathinfo-append.c, + util-vserver/lib_internal/pathinfo-test.c, + util-vserver/lib_internal/pathinfo.h, + util-vserver/lib_internal/string-destroy.c, + util-vserver/lib_internal/string.h, + util-vserver/lib_internal/string.hc, + util-vserver/lib_internal/unify-deunify.c, + util-vserver/lib_internal/unify-unify.c, + util-vserver/lib_internal/unify.h, + util-vserver/lib_internal/util-io.h, + util-vserver/lib_internal/util-mem.h: initial checkin -2004-01-21 19:50 Enrico Scholz +2004-02-17 02:32 Enrico Scholz - * lib/Makefile-files: + * util-vserver/ensc_wrappers/wrappers-unistd.hc, + util-vserver/ensc_wrappers/wrappers_handler.hc: fixed some + 'noreturn' warnings for the execv() functions - added get_task_xid & get_vc_info files - removed obsoleted getctx/getinitpid files - renamed some -v11 files to -fscompat +2004-02-16 19:18 Enrico Scholz -2004-01-21 19:48 Enrico Scholz + * util-vserver/contrib/make-manifest: ignore lines beginning with + '#' - * lib/: getctx-compat.hc[DEAD], getctx-legacy.hc[DEAD], - getctx.c[DEAD], getinitpid-compat.hc[DEAD], - getinitpid-legacy.hc[DEAD], getinitpid.c[DEAD]: +2004-02-16 19:18 Enrico Scholz - obsoleted by v13/oldproc functions + * util-vserver/contrib/manifest.dat.pathsubst: set + @ENSC_HAVE_*_COMPILER_TRUE@ tags -2004-01-21 19:47 Enrico Scholz +2004-02-16 19:18 Enrico Scholz - * lib/: fscompat_getiattr-v13.hc, fscompat_setiattr-v13.hc, - syscall_gettaskxid-oldproc.hc, syscall_gettaskxid-v13.hc, - syscall_gettaskxid.c, syscall_getvxinfo-oldproc.hc, - syscall_getvxinfo-v13.hc, syscall_getvxinfo.c: + * util-vserver/ensc_vector/testsuite/test1.c: #undef NDEBUG - initial checkin +2004-02-16 19:17 Enrico Scholz -2004-01-21 19:46 Enrico Scholz + * util-vserver/scripts/functions: use $_READLINK + mount /proc when doing pkg-management - * lib/: fscompat_getiattr-fscompat.hc, - fscompat_getiattr-v11.hc[DEAD], fscompat_setiattr-fscompat.hc, - fscompat_setiattr-v11.hc[DEAD]: +2004-02-16 19:17 Enrico Scholz - renamed *-v11 to *-fscompat + * util-vserver/scripts/util-vserver-vars.pathsubst: added readlink -2004-01-21 19:45 Enrico Scholz +2004-02-16 19:16 Enrico Scholz - * .cvsignore: + * util-vserver/scripts/vrpm-preload: made rpm-flavor configurable + (e.g. 'i' for install (default), 'q' for + query, 'd' for database) - added 'Build-*' +2004-02-16 19:16 Enrico Scholz -2004-01-21 19:43 Enrico Scholz + * util-vserver/scripts/vserver-build.functions: register generated + files so that they + can be cleaned up when needed - * configure.ac: +2004-02-16 19:15 Enrico Scholz - added 'oldproc' API + * util-vserver/scripts/vserver-build.apt-rpm: call rpm.initDB() -2004-01-21 02:35 Enrico Scholz +2004-02-16 19:15 Enrico Scholz - * src/: Makefile-files, vunify-compare.hc, vunify-compare.ic[DEAD], - vunify-doit.hc, vunify-doit.ic[DEAD], vunify-init.hc, - vunify-init.ic[DEAD], vunify.c: + * util-vserver/scripts/vserver-build.functions.rpm: rpm.initDB(): + added - renamed *.ic to *.hc +2004-02-16 19:14 Enrico Scholz -2004-01-21 02:30 Enrico Scholz + * util-vserver/scripts/vserver-setup.functions: added --initstyle + support (-> /etc/vservers/.../apps/init/style) - * src/vunify.h: +2004-02-16 19:14 Enrico Scholz - added changes for new API - added rsSPECIAL reason + * util-vserver/src/chbind.c: refined test-routine to work in + vservers without 'lo' interface -2004-01-21 02:29 Enrico Scholz +2004-02-16 19:14 Enrico Scholz - * src/vunify.c: + * util-vserver/src/secure-mount.c: define MS_REC when needed - added changes for new API +2004-02-16 19:13 Enrico Scholz -2004-01-21 02:27 Enrico Scholz + * util-vserver/configure.ac, util-vserver/src/rpm-fake-resolver.c: + added big, fat warning when not using dietlibc - * src/vunify-doit.ic: +2004-02-16 18:11 Enrico Scholz - updated to new API + * util-vserver/Makefile.am: added ENSC_HAVE_*_COMPILER_* to + pathsubst-rules -2004-01-21 02:27 Enrico Scholz +2004-02-14 01:22 Enrico Scholz - * src/vlimit.c: + * util-vserver/scripts/vserver: use isAvoidNamespace() from + main-functions file - fixed help message +2004-02-14 01:21 Enrico Scholz -2004-01-21 02:25 Enrico Scholz + * util-vserver/scripts/functions, + util-vserver/scripts/vserver.functions: moved isAvoidNamespace() + into main-functions file - * src/: chxid.c, fstool.c, fstool.h, lsxid.c, setattr.c, - showattr.c: +2004-02-14 01:21 Enrico Scholz - updated/enhanced for new API + * util-vserver/m4/ensc_syscallnr.m4: fixed auto-case + improved message -2004-01-21 02:24 Enrico Scholz +2004-02-14 01:20 Enrico Scholz - * lib/virtual.h: + * util-vserver/m4/ensc_kerneldir.m4: ENSC_KERNEL_HEADERS: made + argument optionally - updated +2004-02-14 01:19 Enrico Scholz -2004-01-21 02:19 Enrico Scholz + * util-vserver/contrib/manifest.dat.pathsubst: added clearenv - * lib/vserver-internal.h: +2004-02-14 01:19 Enrico Scholz - added v13 API + * util-vserver/configure.ac: use ENSC_SYSCALLNR() -2004-01-21 02:19 Enrico Scholz +2004-02-13 23:43 Enrico Scholz - * lib/vserver.h: + * util-vserver/lib/vserver-internal.h: use results from + ENSC_SYSCALLNR - added fscompat and v13 functions - removed ioctl functions +2004-02-13 23:42 Enrico Scholz -2004-01-21 02:18 Enrico Scholz + * util-vserver/m4/ensc_syscallnr.m4: initial checkin - * lib/Makefile-files: +2004-02-11 23:46 Enrico Scholz - added fscompat and v13 functions + * util-vserver/src/clearenv.c: use VSERVER_DECLARE_CMD -2004-01-21 02:17 Enrico Scholz +2004-02-11 23:46 Enrico Scholz - * lib/: ioctl-getext2flags.c[DEAD], ioctl-getfilecontext.c[DEAD], - ioctl-setext2flags.c[DEAD], ioctl-setfilecontext.c[DEAD], - ioctl-getext2flags.hc, ioctl-getfilecontext.hc, - ioctl-setext2flags.hc, ioctl-setfilecontext.hc: + * util-vserver/src, util-vserver/src/.cvsignore: added clearenv - do not provide the ioctl-functions anymore; use them only internally - and include them directly. Therefore, renamed them from *.c to *.hc +2004-02-11 23:39 Enrico Scholz -2004-01-21 02:14 Enrico Scholz + * util-vserver/scripts/vserver.start: use clearenv - * lib/: fscompat_getiattr-v11.hc, fscompat_getiattr.c, - fscompat_setiattr-v11.hc, fscompat_setiattr.c, ioctl-getxflg.hc, - ioctl-setxflg.hc, syscall_getiattr-v13.hc, syscall_getiattr.c, - syscall_setiattr-v13.hc, syscall_setiattr.c: +2004-02-11 23:39 Enrico Scholz - initial checkin + * util-vserver/scripts/vserver.functions: made namespace stuff + configurable at a global place -2004-01-21 02:12 Enrico Scholz +2004-02-11 23:38 Enrico Scholz - * configure.ac: + * util-vserver/scripts/vrpm-preload: give more rights... (same like + at --secure) - added v13 & fscompat APIs +2004-02-11 23:37 Enrico Scholz -2004-01-19 19:23 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst, + util-vserver/src/Makefile-files: added clearenv - * distrib/misc/vunify-exclude: +2004-02-11 23:34 Enrico Scholz - added .rpmdb + * util-vserver/src/clearenv.c: initial checkin -2004-01-19 19:22 Enrico Scholz +2004-02-10 17:20 Enrico Scholz - * src/: chxid.c, lsxid.c, setattr.c, showattr.c: + * util-vserver/src/chxid.c, util-vserver/src/setattr.c: handle + dot-files by default; it does not make sense to use a special + '-a' flag for the set-operations - s/S_ISLNK/!S_ISREG/ -> ignore any non-regular files +2004-02-10 17:06 Enrico Scholz -2004-01-19 19:21 Enrico Scholz + * util-vserver/configure.ac: version 0.28.200 - * src/Makefile-files: +2004-02-10 17:05 Enrico Scholz - removed vunify-operations + * util-vserver/src/secure-mount.c: recognize 'rbind' in fstab + use internal mount(2) on MOVE too -2004-01-19 19:19 Enrico Scholz +2004-02-10 14:22 Enrico Scholz - * src/vunify.h: + * util-vserver/scripts/vserver, + util-vserver/scripts/vserver.functions, + util-vserver/scripts/vserver.start: implemented CLONE_NS and + --rbind mounting - cleanups; moved structure declarations from vunify.c into this headerfile +2004-02-10 14:21 Enrico Scholz -2004-01-19 19:16 Enrico Scholz + * util-vserver/src/secure-mount.c: implemented '--rbind' - * src/vunify.c: +2004-02-10 12:24 Enrico Scholz - cleanups - added 'skip_reason' support - added debug output + * util-vserver/ensc_vector/testsuite, + util-vserver/ensc_vector/testsuite/.cvsignore, + util-vserver/lib/testsuite, + util-vserver/lib/testsuite/.cvsignore: initial checkin -2004-01-19 19:14 Enrico Scholz +2004-02-10 12:22 Enrico Scholz - * src/vunify-init.ic: + * util-vserver/lib/flags.c, util-vserver/lib/testsuite/flags.c: + s!init!fakeinit! - added debug output - fixed descriptor leak +2004-02-10 12:18 Enrico Scholz -2004-01-19 19:11 Enrico Scholz + * util-vserver/configure.ac: version 0.28.199 - * src/: vunify-compare.ic, vunify-doit.ic: +2004-02-10 12:18 Enrico Scholz - initial checkin + * util-vserver/util-vserver.spec.in: moved the 'chattr' into the + right %post scriptlet -2004-01-19 19:11 Enrico Scholz +2004-02-10 02:36 Enrico Scholz - * src/: vunify-operations.c[DEAD], vunify-operations.h[DEAD]: + * util-vserver/configure.ac: version 0.28.198 - obsoleted by more straight-forward code +2004-02-09 23:53 Enrico Scholz -2004-01-19 19:04 Enrico Scholz + * util-vserver/contrib/make-manifest, + util-vserver/contrib/manifest.dat.pathsubst: moved *.so.* files + from -core to -lib - * src/vlimit.c: +2004-02-09 23:52 Enrico Scholz - fixed copy&paste error + * util-vserver/util-vserver.spec.in: added -lib subpackage + moved *.so.* files from -core to -lib + removed the '%exclude ...vrpm.8' + added a 'make check' -2004-01-17 06:35 Enrico Scholz +2004-02-09 23:48 Enrico Scholz - * NEWS, configure.ac: + * util-vserver/src/testsuite, + util-vserver/src/testsuite/.cvsignore: initial checkin - version 0.27.196 +2004-02-09 23:43 Enrico Scholz -2004-01-17 06:25 Enrico Scholz + * util-vserver/ensc_wrappers/wrappers-unistd.hc: Eexecvp(): added + added some 'NORETURN' specifiers - * tests/vserver-info.c: +2004-02-09 23:42 Enrico Scholz - updated to new vc_getVserverVdir() API + * util-vserver/Makefile.am: added lib/testsuite -2004-01-17 06:24 Enrico Scholz +2004-02-09 23:42 Enrico Scholz - * src/vunify.c: + * util-vserver/src/testsuite/vunify-test.sh: redirect output to + /dev/null - moved init*() functions to vunify-init.c +2004-02-09 23:41 Enrico Scholz -2004-01-17 06:23 Enrico Scholz + * util-vserver/src/testsuite/rpm-fake-test.c: fixed compilation + warnings - * src/vunify-operations.c: +2004-02-09 23:40 Enrico Scholz - compareUnify(): check mtime too + * util-vserver/src/testsuite/chcontext-test.c: added explicite + 'return' for non-C99 compilers -2004-01-17 06:23 Enrico Scholz +2004-02-09 23:40 Enrico Scholz - * src/vunify-matchlist.h: + * util-vserver/src/testsuite/Makefile-files: added chbind-test - made 'buf' constant +2004-02-09 23:39 Enrico Scholz -2004-01-17 06:22 Enrico Scholz + * util-vserver/man/Makefile-files: renoved vrpm.8 for now - * src/vunify-matchlist.c: +2004-02-09 23:39 Enrico Scholz - allow cmp-pointer to be NULL + * util-vserver/lib/vserver.h: vc_text2cap(): take 'unsigned int' + instead of 'int' argument + vc_textlist2flag(), vc_text2flag(), vc_hiflag2text(): added + prototypes -2004-01-17 06:22 Enrico Scholz +2004-02-09 23:38 Enrico Scholz - * src/vunify-init.ic: + * util-vserver/lib/capabilities.c: vc_text2cap(): take 'unsigned + int' instead of 'int' argument - use VPKG_PROG instead of PKGMGMT_INFO_PROG - register 'vdir' - use default exclude-lists +2004-02-09 23:38 Enrico Scholz -2004-01-17 06:16 Enrico Scholz + * util-vserver/lib/Makefile-files: added flags* files + added testsuite + -programs - * src/vunify-debug.c: +2004-02-09 23:36 Enrico Scholz - added a const_cast + * util-vserver/src/chcontext.c: setFlags(): use vc_textlist2flag() + function + rearranged code to avoid unremovable zombie processes -2004-01-17 06:15 Enrico Scholz +2004-02-09 23:35 Enrico Scholz - * src/vserver-info.c: + * util-vserver/src/chbind.c, util-vserver/src/reducecap.c: rewrote + it - updated VDIR tag to new interface +2004-02-09 23:35 Enrico Scholz -2004-01-17 06:15 Enrico Scholz + * util-vserver/src/Makefile-files: made reducecap & chbind native + dietlibc programs - * scripts/vserver: +2004-02-09 23:30 Enrico Scholz - added 'unify' and 'pkg' commands + * util-vserver/lib/flags.c, util-vserver/lib/flags_list.c, + util-vserver/lib/testsuite, + util-vserver/lib/testsuite/Makefile-files, + util-vserver/lib/testsuite/flags.c, + util-vserver/src/testsuite/chbind-test.c: initial checkin -2004-01-17 06:14 Enrico Scholz +2004-02-06 22:50 Enrico Scholz - * scripts/vpkg: + * util-vserver/src/Makefile-files: added sys_clone.h - initial checkin +2004-02-06 22:50 Enrico Scholz -2004-01-17 06:14 Enrico Scholz + * util-vserver/util-vserver.spec.in: added 'chattr -t /vservers' + + needed Requires: - * scripts/util-vserver-vars.pathsubst: +2004-02-06 22:49 Enrico Scholz - added $_VUNIFY and $_VPKG + * util-vserver/scripts/vserver-build.functions: call 'chattr -t' on + newly create vserverdirs + cleanups; parenthesize case-expressions -2004-01-17 06:13 Enrico Scholz +2004-02-06 21:34 Enrico Scholz - * scripts/: distrib-info[DEAD], legacy/distrib-info: + * util-vserver/src/util.h: exitLikeProcess(): added NORETURN + attribute to prototype - moved distrib-info to legacy/ +2004-02-06 21:33 Enrico Scholz -2004-01-17 06:13 Enrico Scholz + * util-vserver/src/rpm-fake.c: cleanups; use sys_clone() - * scripts/Makefile-files: +2004-02-06 21:33 Enrico Scholz - moved distrib-info to legacy/ - added vpkg + * util-vserver/src/new-namespace.c: cleanups; modernized it -2004-01-17 06:12 Enrico Scholz +2004-02-06 21:33 Enrico Scholz - * lib/: getvservervdir.c, vserver.h: + * util-vserver/src/Makefile-files: link new-namespace against + util-exitlikeprocess + cleanups - added 'physical' parameter to vc_getVserverVdir() which resolves the - complete physical path of the vdir +2004-02-06 21:32 Enrico Scholz -2004-01-17 06:06 Enrico Scholz + * util-vserver/src/sys_clone.h: initial checkin - * distrib/misc/vunify-exclude: +2004-02-06 18:15 Enrico Scholz - initial checkin + * util-vserver/src/testsuite/Makefile-files: do not call + vunify-test when no C99 compiler is available -2004-01-17 06:06 Enrico Scholz +2004-02-06 17:43 Enrico Scholz - * distrib/Makefile.am: + * util-vserver/ensc_vector/testsuite, + util-vserver/ensc_vector/testsuite/Makefile-files, + util-vserver/ensc_vector/testsuite/test1.c: initial checkin - added vunify-exclude +2004-02-06 17:43 Enrico Scholz -2004-01-17 06:05 Enrico Scholz + * util-vserver/src/testsuite/vunify-test.sh: use '-n' flag - * util-vserver.spec.in: +2004-02-06 17:42 Enrico Scholz - use manifest-data for -legacy + * util-vserver/src/vutil.cc: minor cosmetical changes -2004-01-17 06:04 Enrico Scholz +2004-02-06 17:42 Enrico Scholz - * pathconfig.h.pathsubst: + * util-vserver/src/vunify-init.hc: initModeManually(): added + missing strdup() + +2004-02-06 17:41 Enrico Scholz - added VPKG_PROG - minor cleanups + * util-vserver/Makefile.am, + util-vserver/ensc_vector/Makefile-files: added ensc_vector + testsuite -2004-01-16 19:41 Enrico Scholz +2004-02-06 16:42 Enrico Scholz - * src/testsuite/vunify-test.sh: + * util-vserver/ensc_vector/vector-insert.c: fixed it - applied new calling scheme +2004-02-06 16:40 Enrico Scholz -2004-01-16 19:41 Enrico Scholz + * util-vserver/src/vserver-stat.c: use ensc_vector + cleanups - * src/testsuite/vunify-functest.c: +2004-02-06 16:40 Enrico Scholz - added wrapper_exit_code + * util-vserver/src/lsxid.c: use ensc_vector to cache xid->name + mappings -2004-01-16 19:40 Enrico Scholz +2004-02-06 16:39 Enrico Scholz - * src/wrappers.h: + * util-vserver/src/Makefile-files: link vserver-stat against + libensc_vector.a - Elseek(), Emkstemp(): added - Emalloc(), Erealloc(): fixed declarations +2004-02-06 15:02 Enrico Scholz -2004-01-16 19:39 Enrico Scholz + * util-vserver/doc/configuration.xml: enumerated possible resources - * src/: vunify-matchlist.c, vunify-matchlist.h, - vunify-operations.c, vunify.c: +2004-02-06 15:01 Enrico Scholz - added exclude-list support + * util-vserver/src/chxid.c: fixed do-display-dir behavior -2004-01-16 19:04 Enrico Scholz +2004-02-06 14:56 Enrico Scholz - * src/vserver-info.c: + * util-vserver/scripts/vserver.functions: _generateFlagOptions(): + fixed a case expression; formerly x"foo" == + foo checks which would never succeed - added APPDIR tag - made it possible to supply additional paramaters +2004-02-06 14:53 Enrico Scholz -2004-01-16 19:03 Enrico Scholz + * util-vserver/src/chcontext.c, util-vserver/src/chroot-cat.c, + util-vserver/src/chroot-rm.c, util-vserver/src/exec-cd.c, + util-vserver/src/exec-ulimit.c, util-vserver/src/fstool.c, + util-vserver/src/new-namespace.c, util-vserver/src/pipe-sync.c, + util-vserver/src/rpm-fake-resolver.c, + util-vserver/src/save_ctxinfo.c, + util-vserver/src/testsuite/rpm-fake-test.c, + util-vserver/src/vps.c, util-vserver/src/vrsetup.c, + util-vserver/src/vserver-info.c, util-vserver/src/vserver-stat.c, + util-vserver/src/vunify-doit.hc, util-vserver/src/vunify-init.hc, + util-vserver/src/vunify-matchlist.c, util-vserver/src/vunify.c: + use new ensc_wrappers/ headers - * src/: new-namespace.c, rpm-fake.c: +2004-02-06 14:49 Enrico Scholz - do not use CLONE_VFORK in debug mode; lockups with 'strace' are too annoying + * util-vserver/src/Makefile-files: removed wrappers-* + link lsxid against libensc_vector.a -2004-01-16 19:03 Enrico Scholz +2004-02-06 14:48 Enrico Scholz - * src/Makefile-files: + * util-vserver/src/wrappers-dirent.h, + util-vserver/src/wrappers-io.h, + util-vserver/src/wrappers-vserver.h, util-vserver/src/wrappers.h: + moved and generalized into an own /ensc_wrappers subdir - updated vunify setup - added files for vunify +2004-02-06 14:47 Enrico Scholz -2004-01-16 18:59 Enrico Scholz + * util-vserver/ensc_vector, + util-vserver/ensc_vector/Makefile-files, + util-vserver/ensc_vector/vector-clear.c, + util-vserver/ensc_vector/vector-free.c, + util-vserver/ensc_vector/vector-init.c, + util-vserver/ensc_vector/vector-insert.c, + util-vserver/ensc_vector/vector-internal.h, + util-vserver/ensc_vector/vector-popback.c, + util-vserver/ensc_vector/vector-pushback.c, + util-vserver/ensc_vector/vector-resize.c, + util-vserver/ensc_vector/vector-resizeinternal.hc, + util-vserver/ensc_vector/vector-search.c, + util-vserver/ensc_vector/vector-sort.c, + util-vserver/ensc_vector/vector-unique.c, + util-vserver/ensc_vector/vector.h, + util-vserver/ensc_vector/vector.hc, util-vserver/ensc_wrappers, + util-vserver/ensc_wrappers/Makefile-files, + util-vserver/ensc_wrappers/wrappers-clone.hc, + util-vserver/ensc_wrappers/wrappers-dirent.hc, + util-vserver/ensc_wrappers/wrappers-fcntl.hc, + util-vserver/ensc_wrappers/wrappers-io.hc, + util-vserver/ensc_wrappers/wrappers-ioctl.hc, + util-vserver/ensc_wrappers/wrappers-iosock.hc, + util-vserver/ensc_wrappers/wrappers-mount.hc, + util-vserver/ensc_wrappers/wrappers-pivot.hc, + util-vserver/ensc_wrappers/wrappers-resource.hc, + util-vserver/ensc_wrappers/wrappers-stdlib.hc, + util-vserver/ensc_wrappers/wrappers-unistd.hc, + util-vserver/ensc_wrappers/wrappers-vserver.hc, + util-vserver/ensc_wrappers/wrappers-wait.hc, + util-vserver/ensc_wrappers/wrappers.h, + util-vserver/ensc_wrappers/wrappers_handler.hc: initial checkin - * scripts/legacy/.cvsignore, src/vunify-debug.c, - src/vunify-init.ic, src/vunify.h, src/wrappers-io.h: +2004-02-06 14:46 Enrico Scholz - initial checkin + * util-vserver/Makefile.am: added ensc_vector/ & ensc_wrappers/ + subdirs and files -2004-01-16 18:59 Enrico Scholz +2004-02-05 22:16 Enrico Scholz - * scripts/functions: + * util-vserver/src/setattr.c: documented --barrier + fixed do-display-dir behavior - accept vservers beginning with './' +2004-02-05 04:20 Enrico Scholz -2004-01-16 18:57 Enrico Scholz + * util-vserver/scripts/vserver.functions: added another path for + the template mtab file - * lib/vserver.h: +2004-02-05 04:14 Enrico Scholz - added new management functions + doc + * util-vserver/NEWS, util-vserver/configure.ac: version 0.28.195 -2004-01-16 18:57 Enrico Scholz +2004-02-05 04:02 Enrico Scholz - * lib/internal.h: + * util-vserver/distrib/defaults/apt.conf: initial checkin - added utilvserver_isDirectory() prototype +2004-02-05 03:43 Enrico Scholz -2004-01-16 18:57 Enrico Scholz + * util-vserver/distrib/Makefile.am: added default apt.conf - * lib/getvservervdir.c: +2004-02-05 03:43 Enrico Scholz - use utilvserver_isDirectory() + * util-vserver/doc/configuration.xml: documented default apt.conf -2004-01-16 18:56 Enrico Scholz +2004-02-05 03:43 Enrico Scholz - * lib/Makefile-files: + * util-vserver/lib/syscall-legacy.hc: minor code cleanups + added a missing '#ifdef ENSC_SYSCALL_TRADITIONAL' - added new management sources +2004-02-05 03:42 Enrico Scholz -2004-01-16 18:55 Enrico Scholz + * util-vserver/m4/ensc_syscall.m4: enhanced check by using kernel + headers - * lib/: getvserverappdir.c, getvservercfgdir.c, isdirectory.c: +2004-02-05 03:42 Enrico Scholz - initial checkin + * util-vserver/scripts/vserver-build.functions.apt: added default + apt.conf/vendors.conf files -2004-01-16 18:55 Enrico Scholz +2004-02-05 03:41 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/src/chcontext.c: use sethostname(2)/setdomainname(2) + again... - use filelists from contrib/make-manifest +2004-02-04 23:39 Enrico Scholz -2004-01-16 18:53 Enrico Scholz + * util-vserver/configure.ac: use ENSC_SYSCALL + enhanced diagnostic output - * configure.ac: +2004-02-04 23:38 Enrico Scholz - fixed CVS tag + * util-vserver/lib/syscall-legacy.hc, + util-vserver/lib/vserver-internal.h: use ENSC_SYSCALL_TRADITIONAL -2004-01-16 18:52 Enrico Scholz +2004-02-04 23:38 Enrico Scholz - * Makefile.am: + * util-vserver/lib/syscall.c: cleanups; do not include "compat.h" + anymore explicitly - added contrib/ dir - substitute MANDIR too +2004-02-04 23:37 Enrico Scholz -2004-01-14 03:43 Enrico Scholz + * util-vserver/Makefile.am: added @WGET@ substitution - * src/util-exitlikeprocess.c: +2004-02-04 21:26 Enrico Scholz - added missing + * util-vserver/m4/ensc_syscall.m4: initial checkin -2004-01-14 03:33 Enrico Scholz +2004-02-04 21:23 Enrico Scholz - * src/fstool.h: + * util-vserver/scripts/vpkg: implemented Debian support - added 'local_fs' struct-member +2004-02-04 21:22 Enrico Scholz -2004-01-14 03:32 Enrico Scholz + * util-vserver/scripts/vserver: cleanups + added '--silent' option - * src/fstool.c: +2004-02-04 21:22 Enrico Scholz - added support for '-x' (do not cross filesystems) - fixed invocation with directory-name - implemented '-a' (show dot) + * util-vserver/src/vunify-init.hc, util-vserver/src/vunify.c: minor + cleanups -2004-01-14 03:30 Enrico Scholz +2004-02-04 03:28 Enrico Scholz - * src/vps.c: + * util-vserver/lib/fscompat_getiattr-v13.hc: fixed 'xid' parameter + transmission - minor documentation fix +2004-02-04 03:17 Enrico Scholz -2004-01-14 03:30 Enrico Scholz + * util-vserver/NEWS: version 0.28.193 - * src/: chxid.c, lsxid.c, setattr.c, showattr.c: +2004-02-04 03:17 Enrico Scholz - added and documented '-x' switch + * util-vserver/configure.ac: added check for wget + version 0.28.193 -2004-01-14 01:27 Enrico Scholz +2004-02-04 03:10 Enrico Scholz - * src/vps.c: + * util-vserver/util-vserver.spec.in: added some (Build)Requires: - makde it compilable with gcc296 +2004-02-04 03:10 Enrico Scholz -2004-01-14 01:26 Enrico Scholz + * util-vserver/contrib/manifest.dat.pathsubst: added debootstrap + files - * util-vserver.spec.in: +2004-02-04 03:09 Enrico Scholz - added -legacy subpackage + * util-vserver/doc/configuration.xml: documented debootstrap + configuration -2004-01-14 01:05 Enrico Scholz +2004-02-04 03:07 Enrico Scholz - * Makefile.am: + * util-vserver/scripts/vserver-build.debootstrap: fixed path of + default-uri file - removed timestamps in legacy-dir also - substitute LEGACYDIR and PS +2004-02-04 02:51 Enrico Scholz -2004-01-14 01:03 Enrico Scholz + * util-vserver/distrib/misc/debootstrap.uri: initial checkin - * src/vps.c: +2004-02-04 02:51 Enrico Scholz - added native '--version' and '--help' + * util-vserver/distrib/Makefile.am: added debootstrap.uri -2004-01-14 01:02 Enrico Scholz +2004-02-04 02:48 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/scripts/vserver-setup.functions: use + $PKGLIBDEFAULTDIRc - added legacy-scripts to $(scripts_OPTIONS_EXEMPT) - added scripts_legacy_gen_SCRPTS to $(scripts_CLEANFILES) +2004-02-04 02:48 Enrico Scholz -2004-01-14 01:01 Enrico Scholz + * util-vserver/scripts/vserver-build.apt-rpm, + util-vserver/scripts/vserver-build.functions, + util-vserver/scripts/vserver-build.skeleton: cleanups; use + 'base.' namespace - * m4/validate.am: +2004-02-04 02:46 Enrico Scholz - fixed parallel build + * util-vserver/scripts/vserver-build: added debootstrap -2004-01-14 00:38 Enrico Scholz +2004-02-04 02:46 Enrico Scholz - * configure.ac: + * util-vserver/scripts/vpkg: added basic support for Debian - added check for PS +2004-02-04 02:46 Enrico Scholz -2004-01-14 00:37 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added $_WGET - * pathconfig.h.pathsubst: +2004-02-04 02:45 Enrico Scholz - added PS_PROG + * util-vserver/scripts/Makefile-files: added debootstrap and + pkgmgmt files -2004-01-14 00:37 Enrico Scholz +2004-02-04 02:44 Enrico Scholz - * src/.cvsignore: + * util-vserver/scripts/vserver-build.debootstrap: initial checkin - added vps +2004-02-03 22:22 Enrico Scholz -2004-01-14 00:36 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.28.192 - * src/Makefile-files: +2004-02-03 22:21 Enrico Scholz - made vps a dietprog + * util-vserver/src, util-vserver/src/.cvsignore: added 'vuname' -2004-01-14 00:36 Enrico Scholz +2004-02-03 22:20 Enrico Scholz - * lib/getctx.c: + * util-vserver/contrib, util-vserver/contrib/.cvsignore, + util-vserver/contrib/Makefile-files, + util-vserver/contrib/make-manifest, + util-vserver/contrib/manifest.dat.pathsubst: initial checkin - minor code cleanups +2004-02-03 21:58 Enrico Scholz -2004-01-14 00:30 Enrico Scholz + * util-vserver/configure.ac: added more details to the final + summary - * lib/getctx.c: +2004-02-03 21:57 Enrico Scholz - added VC_BE_VALGRIND_FRIENDLY support + * util-vserver/distrib/Makefile.am: added misc/fstab -2004-01-14 00:29 Enrico Scholz +2004-02-03 21:57 Enrico Scholz - * lib/vserver.h: + * util-vserver/scripts/vserver-build.apt-rpm, + util-vserver/scripts/vserver-build.functions, + util-vserver/scripts/vserver-build.functions.apt, + util-vserver/scripts/vserver-build.functions.rpm: splitted some + functions into a separate vserver-build.functions.pkgmgmt file + use XXX.yyy namespace-style notation - vc_get_securecaps(): added prototype +2004-02-03 21:55 Enrico Scholz -2004-01-14 00:29 Enrico Scholz + * util-vserver/distrib/misc/fstab, + util-vserver/scripts/vserver-build.functions.pkgmgmt, + util-vserver/scripts/vserver-build.skeleton: initial checkin - * lib/vserver-internal.h: +2004-02-03 21:54 Enrico Scholz - made CALL_VC-macro a block + * util-vserver/scripts/vserver-setup.functions: allow to configure + fstab-file -2004-01-14 00:28 Enrico Scholz +2004-02-03 21:52 Enrico Scholz - * src/util-exitlikeprocess.c: + * util-vserver/scripts/vserver-build: added skeleton support + fixed help message - include +2004-02-03 21:52 Enrico Scholz -2004-01-14 00:22 Enrico Scholz + * util-vserver/scripts/vserver: added '--debug' option - * scripts/Makefile-files: +2004-02-03 21:51 Enrico Scholz - moved legacy scripts into legacy/ and updated variables + * util-vserver/scripts/util-vserver-vars.pathsubst: added + $_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT -2004-01-14 00:21 Enrico Scholz +2004-02-03 21:48 Enrico Scholz - * scripts/util-vserver-vars.pathsubst: + * util-vserver/scripts/Makefile-files: added vserver-build.skeleton - updated legacy paths +2004-02-03 21:47 Enrico Scholz -2004-01-14 00:21 Enrico Scholz + * util-vserver/src/vkill.c: cleanups; use modern interfaces - * src/Makefile-files: +2004-02-03 21:47 Enrico Scholz - added vps + * util-vserver/src/util.h: VSERVER_DECLARE_CMD macro: added -2004-01-14 00:20 Enrico Scholz +2004-02-03 21:46 Enrico Scholz - * src/util.h: + * util-vserver/src/Makefile-files: added vuname - exitLikeProcess(): added prototype +2004-02-03 21:45 Enrico Scholz -2004-01-14 00:20 Enrico Scholz + * util-vserver/src/testsuite/Makefile-files: added workaround for + automake bug - * src/wrappers.h: +2004-02-03 21:45 Enrico Scholz - Emalloc(), Erealloc(): added + * util-vserver/src/vuname.c: initial checkin -2004-01-14 00:19 Enrico Scholz +2004-02-03 12:59 Enrico Scholz - * src/: util-exitlikeprocess.c, vps.c: + * util-vserver/configure.ac: use ENSC_C99COMPILER + give out summary at end of ./configure - initial checkin +2004-02-03 12:57 Enrico Scholz -2004-01-14 00:18 Enrico Scholz + * util-vserver/src/Makefile-files: * added support for + ENSC_HAVE_C99_COMPILER and conditionalized build + of 'vunify' + * renamed *_CXX_X_* variables to *_CXX_* - * scripts/: save_s_context[DEAD], vps.pathsubst[DEAD], - vserver-legacy[DEAD], vserverkillall[DEAD]: +2004-02-03 12:55 Enrico Scholz - moved into legacy + * util-vserver/src/vunify.cc: removed since rewritten in C -2004-01-14 00:18 Enrico Scholz +2004-02-03 12:55 Enrico Scholz - * scripts/legacy/: save_s_context, vps.pathsubst, vserver, - vserverkillall: + * util-vserver/m4/ensc_dietlibc.m4: use 'yes' instead of '1' - initial checkin (moved from ../) +2004-02-03 12:55 Enrico Scholz -2004-01-13 21:05 Enrico Scholz + * util-vserver/m4/ensc_cxxcompiler.m4: added ENSC_C99COMPILER + added warning-messages - * scripts/vserver-legacy: +2004-02-03 12:54 Enrico Scholz - use 'exec' to call commands on 'suexec' (patch by Alec Thomas) + * util-vserver/lib/syscall_getvhiname-v13.hc, + util-vserver/lib/syscall_setvhiname-v13.hc: #include -2004-01-13 15:57 Enrico Scholz +2004-02-02 19:34 Enrico Scholz - * src/Makefile-files: + * util-vserver/doc/compatibility.xml: added note about chcontext + rewrite - added missing fstool.h header +2004-02-02 19:34 Enrico Scholz -2004-01-13 15:57 Enrico Scholz + * util-vserver/configure.ac: added support for olduts API - * lib/virtual.h: +2004-02-02 19:33 Enrico Scholz - updated (added scheduler stuff) + * util-vserver/Makefile.am: substitute @PACKAGE@ too -2004-01-13 15:56 Enrico Scholz +2004-02-02 19:32 Enrico Scholz - * src/vkill.c: + * util-vserver/src/testsuite/Makefile-files: added chcontext-test.c - removed warnings about unused parameters +2004-02-02 19:32 Enrico Scholz -2004-01-13 15:55 Enrico Scholz + * util-vserver/src/testsuite/chcontext-test.c: initial checkin - * lib/getvserverbyctx.c, lib/getvserverctx.c, src/exec-cd.c, - tests/escaperoot.c, tests/testipc.c, tests/testlimit.c, - tests/testopenf.c: +2004-02-02 19:32 Enrico Scholz - made it compilable with gcc296 + * util-vserver/src/wrappers.h: added Esetsid() -2004-01-13 15:20 Enrico Scholz +2004-02-02 19:32 Enrico Scholz - * Makefile.am: + * util-vserver/src/wrappers-vserver.h: return xid_t instead of void - use $(src_sbin_SCRPTS) +2004-02-02 19:31 Enrico Scholz -2004-01-13 15:19 Enrico Scholz + * util-vserver/src/vserver-stat.c: cleanups + added missing '\n' in error-msg - * lib/vserver.h: +2004-02-02 19:31 Enrico Scholz - added declarations for the ext2fs functions + * util-vserver/src/vserver-info.c: added UTS tag -2004-01-13 15:18 Enrico Scholz +2004-02-02 19:30 Enrico Scholz - * lib/vserver-internal.h: + * util-vserver/src/reducecap.c: cleanups in the vc_new_s_context() + call - added EXT2FS macros +2004-02-02 19:06 Enrico Scholz -2004-01-13 15:18 Enrico Scholz + * util-vserver/src/chcontext.c: rewrote and enhanced it - * lib/fmt.h: +2004-02-02 19:05 Enrico Scholz - fixed xulong/xlong declarations + * util-vserver/src/Makefile-files: made chcontext a dietlibc + program and updated its SOURCES -2004-01-13 15:17 Enrico Scholz +2004-02-02 19:00 Enrico Scholz - * lib/Makefile-files: + * util-vserver/lib/vserver.h: return xid_t on vc_new_s_context() + added VHOST/vhi functions and types - added the ioctl-* files - added ext2fs.h +2004-02-02 18:59 Enrico Scholz -2004-01-13 15:17 Enrico Scholz + * util-vserver/lib/vserver-internal.h: cleanups + added CALL_VC_OLDUTS() + added VHI_USER2KERNEL/VHI_KERNEL2USER() wrappers - * src/.cvsignore: +2004-02-02 18:58 Enrico Scholz - updated + * util-vserver/lib/virtual.h: added VHOST support -2004-01-13 15:16 Enrico Scholz +2004-02-02 18:58 Enrico Scholz - * src/Makefile-files: + * util-vserver/lib/syscall_gettaskxid-oldproc.hc, + util-vserver/lib/syscall_getvxinfo-oldproc.hc: renamed *_X to + *_oldproc - removed ext2fs.h - added the fstools (lsxid,chxid,showattr,setattr) plus deps +2004-02-02 18:57 Enrico Scholz -2004-01-13 15:15 Enrico Scholz + * util-vserver/lib/syscall-compat.hc, + util-vserver/lib/syscall-legacy.hc, util-vserver/lib/syscall.c: + fixed vc_new_s_context() to return the context instead of 0/1 - * src/: chxid.c, fstool.c, fstool.h, lsxid.c, setattr.c, - showattr.c: +2004-02-02 18:55 Enrico Scholz - minor/medium cleanups + * util-vserver/lib/fscompat_getiattr-v13.hc, + util-vserver/lib/fscompat_setiattr-v13.hc, + util-vserver/lib/syscall_getiattr-v13.hc, + util-vserver/lib/syscall_getvxinfo-v13.hc, + util-vserver/lib/syscall_kill-v11.hc, + util-vserver/lib/syscall_setiattr-v13.hc: use CTX_USER2KERNEL to + wrap xid -2004-01-13 15:15 Enrico Scholz +2004-02-02 18:54 Enrico Scholz - * src/fstool-resolvectx.c: + * util-vserver/lib/capabilities.c: allow both 'CAP_xxx' and 'xxx' - initial checkin +2004-02-02 18:36 Enrico Scholz -2004-01-13 14:49 Enrico Scholz + * util-vserver/lib/Makefile-files: added *vhiname* files - * src/showattr.c: +2004-02-02 18:32 Enrico Scholz - rewrote completely + * util-vserver/lib/syscall_getvhiname-olduts.hc, + util-vserver/lib/syscall_getvhiname-v13.hc, + util-vserver/lib/syscall_getvhiname.c, + util-vserver/lib/syscall_setvhiname-olduts.hc, + util-vserver/lib/syscall_setvhiname-v13.hc, + util-vserver/lib/syscall_setvhiname.c: initial checkin -2004-01-13 14:48 Enrico Scholz +2004-01-29 11:09 Enrico Scholz - * lib/ext2fs.h, src/ext2fs.h[DEAD]: + * util-vserver/doc, util-vserver/doc/.cvsignore: initial checkin - moved ext2fs.h from src/ into lib/ directory; we are providing the - needed functionality through libvserver now +2004-01-29 11:08 Enrico Scholz -2004-01-13 14:45 Enrico Scholz + * util-vserver/NEWS: version 0.28.190 - * src/chxid.c, src/fstool.c, src/fstool.h, src/lsxid.c, - src/setattr.c, lib/ioctl-getext2flags.c, - lib/ioctl-getfilecontext.c, lib/ioctl-setext2flags.c, - lib/ioctl-setfilecontext.c: +2004-01-29 11:07 Enrico Scholz - initial checkin + * util-vserver/Makefile.am: cleanups; use $(SED) instead of sed + fix $pkglibdir in install-data-hook + put some hooks into own targets -2004-01-07 16:46 Enrico Scholz +2004-01-29 11:06 Enrico Scholz - * lib/vserver.h: + * util-vserver/configure.ac: added tests for sed and cmp + outsourced ext2fs test (merged from 0.28) - added URL which describes context-creation +2004-01-29 11:05 Enrico Scholz -2004-01-07 16:40 Enrico Scholz + * util-vserver/src/vserver-stat.c: fixed insert-into-list function + give out warning when vc_get_task_xid() fails - * src/chcontext.c: +2004-01-29 11:04 Enrico Scholz - * removed obsolete and unused 'fakeinit' variable - * fixed ctx-creation with fakeinit and static ctx-id's; fakeinit - requires a second call for ctx -2 to take effect + * util-vserver/src/vserver-info.c: use DIM_OF() macro + added APIVER tag + fixed help message -2004-01-05 23:19 Enrico Scholz +2004-01-29 11:04 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/src/util.h: added DIM_OF() macro - added vserver-info +2004-01-29 11:03 Enrico Scholz -2004-01-05 23:19 Enrico Scholz + * util-vserver/src, util-vserver/src/.cvsignore: added vrsetup - * src/.cvsignore: +2004-01-29 11:03 Enrico Scholz - updated + * util-vserver/scripts/legacy/distrib-info, + util-vserver/scripts/legacy/vserver, + util-vserver/scripts/legacy/vserverkillall, + util-vserver/scripts/rootshell, util-vserver/scripts/vapt-get, + util-vserver/scripts/vapt-get-worker, util-vserver/scripts/vpkg, + util-vserver/scripts/vpstree, util-vserver/scripts/vrpm, + util-vserver/scripts/vrpm-preload, + util-vserver/scripts/vrpm-worker, util-vserver/scripts/vserver, + util-vserver/scripts/vserver-build, + util-vserver/scripts/vserver-copy, + util-vserver/scripts/vservers.grabinfo.sh, + util-vserver/scripts/vsysvwrapper, util-vserver/scripts/vtop: + fixed/changed path-detection for $UTIL_VSERVER_VARS -2004-01-05 23:18 Enrico Scholz +2004-01-29 11:02 Enrico Scholz - * src/wrappers.h: + * util-vserver/scripts/Makefile-files: cleanups + do not install util-vserver-vars in SBINDIR anymore - Edup2(): added +2004-01-29 11:01 Enrico Scholz -2004-01-05 23:18 Enrico Scholz + * util-vserver/m4/ensc_e2fscheck.m4: initial checkin - * src/vserver-stat.c: +2004-01-29 11:00 Enrico Scholz - use existing syscall-wrappers instead of checking return-codes manually + * util-vserver/lib/ext2fs.h, util-vserver/lib/getversion.c, + util-vserver/lib/vserver.h: merged with 0.28 -2004-01-05 23:17 Enrico Scholz +2004-01-23 21:07 Enrico Scholz - * src/vserver-info.c: + * util-vserver/doc/Makefile-files: added some files to doc_DAT - initial checkin +2004-01-23 20:51 Enrico Scholz -2004-01-05 23:16 Enrico Scholz + * util-vserver/configure.ac: version 0.27.199 + added check for xsltproc - * src/rpm-fake.c: +2004-01-23 20:51 Enrico Scholz - use fd3 for synchronization with resolver - adding some missing '\n' in messages - ignore empty environment variables too - exitRPMFake(): conditionalized debug-message + * util-vserver/NEWS: version 0.27.199 -2004-01-05 23:15 Enrico Scholz +2004-01-23 20:50 Enrico Scholz - * src/rpm-fake-resolver.c: + * util-vserver/compat.h: added ENSC_FIX_IOCTL() - daemonize(): child waits for parent to finish now - use fd3 for synchronisation - enable fork on default +2004-01-23 20:49 Enrico Scholz -2004-01-05 23:13 Enrico Scholz + * util-vserver/Makefile.am: added $(doc_DAT) - * src/Makefile-files: +2004-01-23 20:48 Enrico Scholz - added vserver-info - minor cosmetical fixes + * util-vserver/doc/Makefile-files: added compat-doc -2004-01-05 23:12 Enrico Scholz +2004-01-23 20:48 Enrico Scholz - * scripts/vserver.stop: + * util-vserver/doc/compat-xhtml.xsl, + util-vserver/doc/compatibility.dtd, + util-vserver/doc/compatibility.xml: initial checkin - fixed error-handling +2004-01-23 20:47 Enrico Scholz -2004-01-05 23:12 Enrico Scholz + * util-vserver/lib/ioctl-getext2flags.hc, + util-vserver/lib/ioctl-getfilecontext.hc, + util-vserver/lib/ioctl-setext2flags.hc, + util-vserver/lib/ioctl-setfilecontext.hc, + util-vserver/lib/ioctl-setxflg.hc: use ENSC_FIX_IOCTL() to fix + dietlibc's ioctl() return values - * scripts/vserver-setup.functions: +2004-01-22 21:35 Enrico Scholz - added '--context' option - minor cosmetical cleanups + * util-vserver/lib/getversion-internal.hc, + util-vserver/lib/syscall-compat.hc, + util-vserver/lib/syscall_getiattr-v13.hc, + util-vserver/lib/syscall_gettaskxid-v13.hc, + util-vserver/lib/syscall_getvxinfo-v13.hc, + util-vserver/lib/syscall_kill-v11.hc, + util-vserver/lib/syscall_rlimit-v11.hc, + util-vserver/lib/syscall_setiattr-v13.hc: use the VCMD_* macros + instead of the VC_CMD(...) macros -2004-01-05 23:11 Enrico Scholz +2004-01-22 15:42 Enrico Scholz - * scripts/vserver-build.functions.apt: + * util-vserver/NEWS, util-vserver/configure.ac: version 0.27.198 - initVariablesApt(): fixed empty function body +2004-01-22 15:40 Enrico Scholz -2004-01-05 22:57 Enrico Scholz + * util-vserver/src/vrsetup.c: fixed copyright date - * scripts/vrpm-preload: +2004-01-22 14:24 Enrico Scholz - major cleanups; use 'vserver-info' to retrieve information about vserver + * util-vserver/src/wrappers.h: added Eioctl() wrapper -2004-01-05 22:57 Enrico Scholz +2004-01-22 14:22 Enrico Scholz - * scripts/vapt-get-worker: + * util-vserver/src/Makefile-files: added vrsetup - removed old, unused debug code +2004-01-22 14:22 Enrico Scholz -2004-01-05 22:56 Enrico Scholz + * util-vserver/src/vrsetup.c: initial checkin - * scripts/: vapt-get, vrpm: +2004-01-22 13:43 Enrico Scholz - use modern '--help' & '--version' output + * util-vserver/src/vunify-doit.hc: * provide st_mode at + vc_set_iattr_compat() call -2004-01-05 22:55 Enrico Scholz +2004-01-22 13:42 Enrico Scholz - * scripts/util-vserver-vars.pathsubst: + * util-vserver/src/lsxid.c, util-vserver/src/showattr.c: * provide + st_mode at vc_set_iattr_compat() call + * do not stop on non-regular files; vc_set_iattr_compat() handles + this + already - added $_VSERVER_INFO +2004-01-22 13:41 Enrico Scholz -2004-01-05 22:55 Enrico Scholz + * util-vserver/src/setattr.c: * removed the race-check; this is + done by vc_set_iattr_compat() already + * provide st_mode at vc_set_iattr_compat() call + * do not stop on non-regular files; vc_set_iattr_compat() handles + this + already + * moved setFlags() code into handleFile() + * added 'iunlink' option - * scripts/functions: +2004-01-22 13:40 Enrico Scholz - getVserverStatus(): fixed usage of 2nd parameter + * util-vserver/src/chxid.c: * removed the race-check; this is done + by vc_set_iattr_compat() already + * provide st_mode at vc_set_iattr_compat() call + * do not stop on non-regular files; vc_set_iattr_compat() handles + this + already + * moved setFile() code into handleFile() -2004-01-05 22:53 Enrico Scholz +2004-01-22 13:38 Enrico Scholz - * lib/: fmtx.hc, getvserverbyctx.c, getvserverctx.c, - vserver-internal.h, vserver.h: + * util-vserver/src/Makefile-files: removed 'vunify' from list of + C++ files - small cosmetical fix +2004-01-22 13:37 Enrico Scholz -2003-12-30 21:15 Enrico Scholz + * util-vserver/lib/syscall_gettaskxid-v13.hc: fixed call - * configure.ac: +2004-01-22 13:36 Enrico Scholz - version 0.27.190 + * util-vserver/lib/ioctl-getext2flags.hc, + util-vserver/lib/ioctl-getfilecontext.hc, + util-vserver/lib/ioctl-getxflg.hc, + util-vserver/lib/ioctl-setext2flags.hc, + util-vserver/lib/ioctl-setfilecontext.hc, + util-vserver/lib/ioctl-setxflg.hc: when ioctl() returns a value + <-1, assign errno manually and return -1 -2003-12-30 20:20 Enrico Scholz +2004-01-22 13:35 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/lib/syscall_getiattr-v13.hc, + util-vserver/lib/syscall_setiattr-v13.hc: updated to changed API; + removed 'dev' field from 'struct vcmd_ctx_iattr_v0' - - since dynamic libraries will be installed now, call /sbin/ldconfig - - other updates... +2004-01-22 13:34 Enrico Scholz -2003-12-30 20:15 Enrico Scholz + * util-vserver/lib/virtual.h: updated; removed 'dev' field from + 'struct vcmd_ctx_iattr_v0' - * src/compat-pivot_root.h: +2004-01-22 13:34 Enrico Scholz - use instead of to fix problems with - RH's headers + * util-vserver/lib/vserver-internal.h: CALL_VC(): return ENOSYS in + errorcase -2003-12-30 19:09 Enrico Scholz +2004-01-22 13:33 Enrico Scholz - * src/testsuite/vunify-test.sh: + * util-vserver/lib/vserver.h: * vc_[sg]et_iattr_compat(): added + additional 'mode' parameter to avoid + an additional 'lstat' - fixed paths +2004-01-22 13:30 Enrico Scholz -2003-12-30 19:08 Enrico Scholz + * util-vserver/lib/fscompat_getiattr.c, + util-vserver/lib/fscompat_setiattr.c: * added additional 'mode' + parameter to avoid an additional 'lstat' - * scripts/vserver.stop: +2004-01-22 13:29 Enrico Scholz - use sendKillSequence instead of ctx-kill + * util-vserver/lib/fscompat_getiattr-fscompat.hc, + util-vserver/lib/fscompat_setiattr-fscompat.hc: * added + additional 'mode' parameter to avoid an additional 'lstat' + * operate on regular files and directories only -2003-12-30 19:08 Enrico Scholz +2004-01-21 21:32 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/lib/syscall_gettaskxid-v13.hc: return VC_NOCTX + instead of -1 - sendKillSequence(): added +2004-01-21 19:06 Enrico Scholz -2003-12-30 19:07 Enrico Scholz + * util-vserver/tests/getinitpid.c: updated to new API - * scripts/util-vserver-vars.pathsubst: +2004-01-21 19:06 Enrico Scholz - removed _CTX_KILL - added _VKILL + * util-vserver/src/vserver-info.c: added INITPID* and XID tags -2003-12-30 19:06 Enrico Scholz +2004-01-21 19:01 Enrico Scholz - * scripts/functions: + * util-vserver/src/save_ctxinfo.c, util-vserver/src/vps.c, + util-vserver/src/vserver-stat.c, + util-vserver/src/wrappers-vserver.h, util-vserver/tests/getctx.c: + use vc_get_task_xid() instead of vc_X_getctx() - getVserverStatus(): fixed usage if ctx - isCtxRunning(): added +2004-01-21 18:59 Enrico Scholz -2003-12-30 18:42 Enrico Scholz + * util-vserver/lib/vserver.h: * vc_get_vx_info(), + vc_get_task_xid(): added prototypes plus required + typedefinitions + * vc_X_getctx(), vc_X_getinitpid(): removed since obsoleted by + functions + above - * Makefile.am: +2004-01-21 18:57 Enrico Scholz - added missing compat-c99.h header-file + * util-vserver/lib/vserver-internal.h: * added fscompat & oldproc + API + * added support for VC_MULTIVERSION_SYSCALL which chooses the + optimal + CALL_VC variant + * changed CALL_VC() so that it looks for version greater than + requested + one now -2003-12-30 18:41 Enrico Scholz +2004-01-21 18:55 Enrico Scholz - * src/chroot-rm.c: + * util-vserver/lib/virtual.h: updated; added VINFO commands - fixed order of chroot() and parameter evaluation so that '--version' - and '--help' are working as non-root also +2004-01-21 18:55 Enrico Scholz -2003-12-30 18:40 Enrico Scholz + * util-vserver/lib/syscall_kill.c, + util-vserver/lib/syscall_rlimit.c: cleanups; optimize CALL_VC() + usage - * src/Makefile-files: +2004-01-21 18:54 Enrico Scholz - added missing headers - removed 'ctx-kill'; it is obsoleted through 'vkill' + * util-vserver/lib/fscompat_getiattr.c, + util-vserver/lib/fscompat_setiattr.c: cleanups; use CALL_VC() + macro -2003-12-30 18:38 Enrico Scholz +2004-01-21 18:53 Enrico Scholz - * src/ctx-kill.c[DEAD]: + * util-vserver/lib/checkversion.c, + util-vserver/lib/getversion-internal.hc, + util-vserver/lib/getversion.c, + util-vserver/lib/ioctl-getext2flags.hc, + util-vserver/lib/ioctl-getfilecontext.hc, + util-vserver/lib/ioctl-getxflg.hc, + util-vserver/lib/ioctl-setext2flags.hc, + util-vserver/lib/ioctl-setfilecontext.hc, + util-vserver/lib/ioctl-setxflg.hc, + util-vserver/lib/syscall-compat.hc, util-vserver/lib/syscall.c, + util-vserver/lib/syscall_getiattr-v13.hc, + util-vserver/lib/syscall_setiattr-v13.hc: cleanups; fixed/changed + "vserver-internal.h" including - replaced by 'vkill' +2004-01-21 18:50 Enrico Scholz -2003-12-30 18:09 Enrico Scholz + * util-vserver/lib/Makefile-files: added get_task_xid & get_vc_info + files + removed obsoleted getctx/getinitpid files + renamed some -v11 files to -fscompat - * compat.h: +2004-01-21 18:48 Enrico Scholz - use results from dietlib's C99 compatibility-check + * util-vserver/lib/getctx-compat.hc, + util-vserver/lib/getctx-legacy.hc, util-vserver/lib/getctx.c, + util-vserver/lib/getinitpid-compat.hc, + util-vserver/lib/getinitpid-legacy.hc, + util-vserver/lib/getinitpid.c: obsoleted by v13/oldproc functions -2003-12-30 18:08 Enrico Scholz +2004-01-21 18:47 Enrico Scholz - * m4/ensc_dietlibc.m4: + * util-vserver/lib/fscompat_getiattr-v13.hc, + util-vserver/lib/fscompat_setiattr-v13.hc, + util-vserver/lib/syscall_gettaskxid-oldproc.hc, + util-vserver/lib/syscall_gettaskxid-v13.hc, + util-vserver/lib/syscall_gettaskxid.c, + util-vserver/lib/syscall_getvxinfo-oldproc.hc, + util-vserver/lib/syscall_getvxinfo-v13.hc, + util-vserver/lib/syscall_getvxinfo.c: initial checkin - added check for C99 compatibility +2004-01-21 18:46 Enrico Scholz -2003-12-30 18:08 Enrico Scholz + * util-vserver/lib/fscompat_getiattr-fscompat.hc, + util-vserver/lib/fscompat_getiattr-v11.hc, + util-vserver/lib/fscompat_setiattr-fscompat.hc, + util-vserver/lib/fscompat_setiattr-v11.hc: renamed *-v11 to + *-fscompat - * m4/ensc_fpicsyscall.m4: +2004-01-21 18:45 Enrico Scholz - fixed AC_LANG_PUSH/POP mismatch + * util-vserver, util-vserver/.cvsignore: added 'Build-*' -2003-12-30 17:26 Enrico Scholz +2004-01-21 18:43 Enrico Scholz - * .cvsignore, lib/.cvsignore, scripts/.cvsignore, src/.cvsignore: + * util-vserver/configure.ac: added 'oldproc' API - updated +2004-01-21 01:35 Enrico Scholz -2003-12-30 17:24 Enrico Scholz + * util-vserver/src/Makefile-files, + util-vserver/src/vunify-compare.hc, + util-vserver/src/vunify-compare.ic, + util-vserver/src/vunify-doit.hc, util-vserver/src/vunify-doit.ic, + util-vserver/src/vunify-init.hc, util-vserver/src/vunify-init.ic, + util-vserver/src/vunify.c: renamed *.ic to *.hc - * lib/syscall_kill-v11.hc, lib/syscall_kill.c, src/vkill.c: +2004-01-21 01:30 Enrico Scholz - merged with 0.26.90 + * util-vserver/src/vunify.h: added changes for new API + added rsSPECIAL reason -2003-12-30 17:22 Enrico Scholz +2004-01-21 01:29 Enrico Scholz - * src/testsuite/rpm-fake-test.sh: + * util-vserver/src/vunify.c: added changes for new API - fixed LD_PRELOAD path +2004-01-21 01:27 Enrico Scholz -2003-12-30 17:22 Enrico Scholz + * util-vserver/src/vunify-doit.ic: updated to new API - * scripts/vserver: +2004-01-21 01:27 Enrico Scholz - updated start/stop help-messages + * util-vserver/src/vlimit.c: fixed help message -2003-12-30 17:21 Enrico Scholz +2004-01-21 01:26 Enrico Scholz - * scripts/functions: + * util-vserver/src/chxid.c, util-vserver/src/fstool.c, + util-vserver/src/fstool.h, util-vserver/src/lsxid.c, + util-vserver/src/setattr.c, util-vserver/src/showattr.c: + updated/enhanced for new API - getAllVservers(): ignore backup vservers +2004-01-21 01:24 Enrico Scholz -2003-12-30 17:20 Enrico Scholz + * util-vserver/lib/virtual.h: updated - * distrib/Makefile.am: +2004-01-21 01:19 Enrico Scholz - fixed multiple 'make install' by using '-f' on 'ln' + * util-vserver/lib/vserver-internal.h: added v13 API -2003-12-30 17:19 Enrico Scholz +2004-01-21 01:19 Enrico Scholz - * configure.ac: + * util-vserver/lib/vserver.h: added fscompat and v13 functions + removed ioctl functions - - merged with 0.26.90 (fixed --enable-apis, renamed ctx_t to xid_t, - renamed syscall, use C++ for ext2fs.h test) - - libtool'ized it +2004-01-21 01:18 Enrico Scholz -2003-12-30 17:04 Enrico Scholz + * util-vserver/lib/Makefile-files: added fscompat and v13 functions - * src/Makefile-files: +2004-01-21 01:17 Enrico Scholz - * added vkill (merged from 0.26.90) - * libtool'ized it + * util-vserver/lib/ioctl-getext2flags.c, + util-vserver/lib/ioctl-getext2flags.hc, + util-vserver/lib/ioctl-getfilecontext.c, + util-vserver/lib/ioctl-getfilecontext.hc, + util-vserver/lib/ioctl-setext2flags.c, + util-vserver/lib/ioctl-setext2flags.hc, + util-vserver/lib/ioctl-setfilecontext.c, + util-vserver/lib/ioctl-setfilecontext.hc: do not provide the + ioctl-functions anymore; use them only internally + and include them directly. Therefore, renamed them from *.c to + *.hc -2003-12-30 17:03 Enrico Scholz +2004-01-21 01:14 Enrico Scholz - * lib/Makefile-files: + * util-vserver/lib/fscompat_getiattr-v11.hc, + util-vserver/lib/fscompat_getiattr.c, + util-vserver/lib/fscompat_setiattr-v11.hc, + util-vserver/lib/fscompat_setiattr.c, + util-vserver/lib/ioctl-getxflg.hc, + util-vserver/lib/ioctl-setxflg.hc, + util-vserver/lib/syscall_getiattr-v13.hc, + util-vserver/lib/syscall_getiattr.c, + util-vserver/lib/syscall_setiattr-v13.hc, + util-vserver/lib/syscall_setiattr.c: initial checkin - * added vc_kill() syscall (merged from 0.26.90) - * libtool'ized it +2004-01-21 01:12 Enrico Scholz -2003-12-30 16:59 Enrico Scholz + * util-vserver/configure.ac: added v13 & fscompat APIs - * Makefile.am: +2004-01-19 18:23 Enrico Scholz - * added legacy-dir (merged from 0.26.90) - * libtool'ized it + * util-vserver/distrib/misc/vunify-exclude: added .rpmdb -2003-12-30 16:56 Enrico Scholz +2004-01-19 18:22 Enrico Scholz - * src/: .cvsignore, ctx-kill.c, rpm-fake-resolver.c, rpm-fake.c, - save_ctxinfo.c, vlimit.c, vserver-stat.c, wrappers-vserver.h: + * util-vserver/src/chxid.c, util-vserver/src/lsxid.c, + util-vserver/src/setattr.c, util-vserver/src/showattr.c: + s/S_ISLNK/!S_ISREG/ -> ignore any non-regular files - merged with 0.26.90 +2004-01-19 18:21 Enrico Scholz -2003-12-30 16:52 Enrico Scholz + * util-vserver/src/Makefile-files: removed vunify-operations - * tests/getctx.c, compat.h, lib/getctx-compat.hc, - lib/getctx-legacy.hc, lib/getctx.c, lib/getversion-internal.hc, - lib/getversion.c, lib/getvserverbyctx.c, lib/getvserverctx.c, - lib/syscall-compat.hc, lib/syscall-legacy.hc, lib/syscall.c, - lib/syscall_rlimit-v11.hc, lib/syscall_rlimit.c, lib/virtual.h, - lib/vserver-internal.h, lib/vserver.h, scripts/Makefile-files, - scripts/vps.pathsubst, scripts/vserver-legacy: +2004-01-19 18:19 Enrico Scholz - merged with 0.26.90 + * util-vserver/src/vunify.h: cleanups; moved structure declarations + from vunify.c into this headerfile -2003-12-29 20:02 uid68581 +2004-01-19 18:16 Enrico Scholz - * src/capchroot.c: + * util-vserver/src/vunify.c: cleanups + added 'skip_reason' support + added debug output - do not use vc_chrootsafe() anymore +2004-01-19 18:14 Enrico Scholz -2003-12-29 20:01 uid68581 + * util-vserver/src/vunify-init.ic: added debug output + fixed descriptor leak - * tests/Makefile-files: +2004-01-19 18:11 Enrico Scholz - removed chrootsafe - libtool'ized + * util-vserver/src/vunify-compare.ic, + util-vserver/src/vunify-doit.ic: initial checkin -2003-12-26 01:49 uid68581 +2004-01-19 18:11 Enrico Scholz - * compat-c99.h, src/testsuite/Makefile-files, - src/testsuite/rpm-fake-test.c, src/testsuite/rpm-fake-test.sh, - src/testsuite/vunify-functest.c, src/testsuite/vunify-test.sh, - src/testsuite/data/rpm-fake-test.inp, - src/testsuite/data/rpm-fake-test.out: + * util-vserver/src/vunify-operations.c, + util-vserver/src/vunify-operations.h: obsoleted by more + straight-forward code - initial checkin +2004-01-19 18:04 Enrico Scholz -2003-12-26 01:49 uid68581 + * util-vserver/src/vlimit.c: fixed copy&paste error - * pathconfig.h.pathsubst: +2004-01-17 05:35 Enrico Scholz - added RESOLVER_PROG + * util-vserver/NEWS, util-vserver/configure.ac: version 0.27.196 -2003-12-26 01:48 uid68581 +2004-01-17 05:25 Enrico Scholz - * scripts/vprofile[DEAD]: + * util-vserver/tests/vserver-info.c: updated to new + vc_getVserverVdir() API - removed since obsoleted +2004-01-17 05:24 Enrico Scholz -2003-12-26 01:48 uid68581 + * util-vserver/src/vunify.c: moved init*() functions to + vunify-init.c - * tests/: escaperoot.c, forkbomb.c, testlimit.c, testopenf.c: +2004-01-17 05:23 Enrico Scholz - used workarounds to make it compilable with non-C99 compilers + * util-vserver/src/vunify-operations.c: compareUnify(): check mtime + too -2003-12-26 01:47 uid68581 +2004-01-17 05:23 Enrico Scholz - * src/wrappers.h: + * util-vserver/src/vunify-matchlist.h: made 'buf' constant - added setgid/setuid/setgroups wrappers +2004-01-17 05:22 Enrico Scholz -2003-12-26 01:47 uid68581 + * util-vserver/src/vunify-matchlist.c: allow cmp-pointer to be NULL - * src/util.h: +2004-01-17 05:22 Enrico Scholz - added Xmemcpy() - added safeChdir() prototype + * util-vserver/src/vunify-init.ic: use VPKG_PROG instead of + PKGMGMT_INFO_PROG + register 'vdir' + use default exclude-lists -2003-12-26 01:46 uid68581 +2004-01-17 05:16 Enrico Scholz - * src/rpm-fake.c: + * util-vserver/src/vunify-debug.c: added a const_cast - rewrote large parts - added NSS functions (getpwnam(), getgrnam(), ...) +2004-01-17 05:15 Enrico Scholz -2003-12-26 01:45 uid68581 + * util-vserver/src/vserver-info.c: updated VDIR tag to new + interface - * src/fakerunlevel.c: +2004-01-17 05:15 Enrico Scholz - use setgroups() also + * util-vserver/scripts/vserver: added 'unify' and 'pkg' commands -2003-12-26 01:45 uid68581 +2004-01-17 05:14 Enrico Scholz - * src/chroot-rm.c: + * util-vserver/scripts/vpkg: initial checkin - added '--help' and '--version' +2004-01-17 05:14 Enrico Scholz -2003-12-26 01:44 uid68581 + * util-vserver/scripts/util-vserver-vars.pathsubst: added $_VUNIFY + and $_VPKG - * src/.cvsignore: +2004-01-17 05:13 Enrico Scholz - added exec-cd and rpm-fake-resolver - removed secure-umount + * util-vserver/scripts/distrib-info, + util-vserver/scripts/legacy/distrib-info: moved distrib-info to + legacy/ -2003-12-26 01:41 uid68581 +2004-01-17 05:13 Enrico Scholz - * src/: exec-cd.c, rpm-fake-resolver.c, vunify-matchlist.c, - vunify-matchlist.h, vunify-operations.c, vunify-operations.h, - vunify.c, wrappers-dirent.h, util-safechdir.c: + * util-vserver/scripts/Makefile-files: moved distrib-info to + legacy/ + added vpkg - initial checkin +2004-01-17 05:12 Enrico Scholz -2003-12-26 01:38 uid68581 + * util-vserver/lib/getvservervdir.c, util-vserver/lib/vserver.h: + added 'physical' parameter to vc_getVserverVdir() which resolves + the + complete physical path of the vdir - * src/Makefile-files: +2004-01-17 05:06 Enrico Scholz - removed secure-umount - added exec-cd - vunify will be a dietlibc program soonly + * util-vserver/distrib/misc/vunify-exclude: initial checkin -2003-12-26 01:34 uid68581 +2004-01-17 05:06 Enrico Scholz - * scripts/: vsysvwrapper, vtop: + * util-vserver/distrib/Makefile.am: added vunify-exclude - fixed quoting +2004-01-17 05:05 Enrico Scholz -2003-12-26 01:34 uid68581 + * util-vserver/util-vserver.spec.in: use manifest-data for -legacy - * scripts/vserver.functions: +2004-01-17 05:04 Enrico Scholz - use 'exec-cd' instead of 'secure-umount' + * util-vserver/pathconfig.h.pathsubst: added VPKG_PROG + minor cleanups -2003-12-26 01:33 uid68581 +2004-01-16 18:41 Enrico Scholz - * scripts/vserver-build.functions.apt: + * util-vserver/src/testsuite/vunify-test.sh: applied new calling + scheme - fixed initVariablesApt() - added support for default apt.conf +2004-01-16 18:41 Enrico Scholz -2003-12-26 01:33 uid68581 + * util-vserver/src/testsuite/vunify-functest.c: added + wrapper_exit_code - * scripts/vserver-build.functions: +2004-01-16 18:40 Enrico Scholz - rename package-cfg directory on '--force' also + * util-vserver/src/wrappers.h: Elseek(), Emkstemp(): added + Emalloc(), Erealloc(): fixed declarations -2003-12-26 01:32 uid68581 +2004-01-16 18:39 Enrico Scholz - * scripts/vserver-build.apt-rpm: + * util-vserver/src/vunify-matchlist.c, + util-vserver/src/vunify-matchlist.h, + util-vserver/src/vunify-operations.c, util-vserver/src/vunify.c: + added exclude-list support - added '--debug' option +2004-01-16 18:04 Enrico Scholz -2003-12-26 01:32 uid68581 + * util-vserver/src/vserver-info.c: added APPDIR tag + made it possible to supply additional paramaters - * scripts/vserver: +2004-01-16 18:03 Enrico Scholz - added package-management options (atleast their documention) + * util-vserver/src/new-namespace.c, util-vserver/src/rpm-fake.c: do + not use CLONE_VFORK in debug mode; lockups with 'strace' are too + annoying -2003-12-26 01:30 uid68581 +2004-01-16 18:03 Enrico Scholz - * scripts/vapt-get-worker: + * util-vserver/src/Makefile-files: updated vunify setup + added files for vunify - set RPM::PM to 'external' +2004-01-16 18:00 Enrico Scholz -2003-12-26 01:29 uid68581 + * util-vserver/lib/getvserverappdir.c, + util-vserver/lib/getvservercfgdir.c, + util-vserver/lib/isdirectory.c, util-vserver/scripts/legacy, + util-vserver/scripts/legacy/.cvsignore, + util-vserver/src/vunify-debug.c, util-vserver/src/vunify-init.ic, + util-vserver/src/vunify.h, util-vserver/src/wrappers-io.h: + initial checkin - * scripts/util-vserver-vars.pathsubst: +2004-01-16 17:59 Enrico Scholz - added _EXEC_CD - removed _SECURE_UMOUNT + * util-vserver/scripts/functions: accept vservers beginning with + './' -2003-12-26 01:29 uid68581 +2004-01-16 17:57 Enrico Scholz - * scripts/: rootshell, vpstree: + * util-vserver/lib/vserver.h: added new management functions + doc - fixed quoting +2004-01-16 17:57 Enrico Scholz -2003-12-26 01:29 uid68581 + * util-vserver/lib/internal.h: added utilvserver_isDirectory() + prototype - * scripts/functions: +2004-01-16 17:57 Enrico Scholz - added support for default apt.conf + * util-vserver/lib/getvservervdir.c: use utilvserver_isDirectory() -2003-12-26 01:23 uid68581 +2004-01-16 17:56 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/lib/Makefile-files: added new management sources - removed vprofile +2004-01-16 17:55 Enrico Scholz -2003-12-26 01:22 uid68581 + * util-vserver/util-vserver.spec.in: use filelists from + contrib/make-manifest - * m4/: ensc_cflags.m4, ensc_dietlibc.m4, ensc_kerneldir.m4, - ensc_release.m4, ensc_uv_vrootdir.m4: +2004-01-16 17:53 Enrico Scholz - fixed broken quoting which is complained by recent automake + * util-vserver/configure.ac: fixed CVS tag -2003-12-26 01:22 uid68581 +2004-01-16 17:52 Enrico Scholz - * lib/: getvserverbyctx.c, getvserverctx.c: + * util-vserver/Makefile.am: added contrib/ dir + substitute MANDIR too - added workarounds for non-C99 compilers +2004-01-14 02:43 Enrico Scholz -2003-12-26 01:21 uid68581 + * util-vserver/src/util-exitlikeprocess.c: added missing - * distrib/defaults/apt/apt.conf: +2004-01-14 02:33 Enrico Scholz - initial checkin + * util-vserver/src/fstool.h: added 'local_fs' struct-member -2003-12-26 01:20 uid68581 +2004-01-14 02:32 Enrico Scholz - * distrib/Makefile.am: + * util-vserver/src/fstool.c: added support for '-x' (do not cross + filesystems) + fixed invocation with directory-name + implemented '-a' (show dot) - added default apt.conf +2004-01-14 02:30 Enrico Scholz -2003-12-26 01:20 uid68581 + * util-vserver/src/vps.c: minor documentation fix - * compat.h: +2004-01-14 02:30 Enrico Scholz - differ between >=3.3 and below at certain options - added 'restrict' workarounds + * util-vserver/src/chxid.c, util-vserver/src/lsxid.c, + util-vserver/src/setattr.c, util-vserver/src/showattr.c: added + and documented '-x' switch -2003-12-26 01:19 uid68581 +2004-01-14 00:27 Enrico Scholz - * Makefile.am: + * util-vserver/src/vps.c: makde it compilable with gcc296 - - removed m4_FILES; it is handled by automake >=2.8 automatically - - added basic test support +2004-01-14 00:26 Enrico Scholz -2003-12-02 03:19 Enrico Scholz + * util-vserver/util-vserver.spec.in: added -legacy subpackage - * scripts/vserver.functions: +2004-01-14 00:05 Enrico Scholz - evaluate CHBIND_OPTS lazily + * util-vserver/Makefile.am: removed timestamps in legacy-dir also + substitute LEGACYDIR and PS -2003-12-02 03:17 Enrico Scholz +2004-01-14 00:03 Enrico Scholz - * lib/getvservername.c: + * util-vserver/src/vps.c: added native '--version' and '--help' - getRecentName(): return basename of directory but not this of the link anymore +2004-01-14 00:02 Enrico Scholz -2003-11-22 03:44 Enrico Scholz + * util-vserver/scripts/Makefile-files: added legacy-scripts to + $(scripts_OPTIONS_EXEMPT) + added scripts_legacy_gen_SCRPTS to $(scripts_CLEANFILES) - * NEWS, configure.ac: +2004-01-14 00:01 Enrico Scholz - version 0.26.193 + * util-vserver/m4/validate.am: fixed parallel build -2003-11-22 03:41 Enrico Scholz +2004-01-13 23:38 Enrico Scholz - * src/ifspec.c, configure.ac, Makefile.am, .cvsignore: + * util-vserver/configure.ac: added check for PS - merged with 0.26 +2004-01-13 23:37 Enrico Scholz -2003-11-22 03:35 Enrico Scholz + * util-vserver/pathconfig.h.pathsubst: added PS_PROG - * Makefile.am: +2004-01-13 23:37 Enrico Scholz - generate some .defaults symlinks + * util-vserver/src, util-vserver/src/.cvsignore: added vps -2003-11-22 03:35 Enrico Scholz +2004-01-13 23:36 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/src/Makefile-files: made vps a dietprog - generate %ghost symlinks in %post - added vlimit - added some .default directories +2004-01-13 23:36 Enrico Scholz -2003-11-22 03:31 Enrico Scholz + * util-vserver/lib/getctx.c: minor code cleanups - * lib/getvserverctx.c: +2004-01-13 23:30 Enrico Scholz - added missing includes + * util-vserver/lib/getctx.c: added VC_BE_VALGRIND_FRIENDLY support -2003-11-22 03:31 Enrico Scholz +2004-01-13 23:29 Enrico Scholz - * scripts/vserver-setup.functions: + * util-vserver/lib/vserver.h: vc_get_securecaps(): added prototype - use '$CONFDIR/.defaults/run.rev' instead of '$PKGSTATEREVDIR' +2004-01-13 23:29 Enrico Scholz -2003-11-20 19:10 Enrico Scholz + * util-vserver/lib/vserver-internal.h: made CALL_VC-macro a block - * util-vserver.spec.in: +2004-01-13 23:28 Enrico Scholz - use 'vservers.rev' directory instead of 'vservers/rev' + * util-vserver/src/util-exitlikeprocess.c: include -2003-11-20 19:09 Enrico Scholz +2004-01-13 23:22 Enrico Scholz - * scripts/vserver-setup.functions: + * util-vserver/scripts/Makefile-files: moved legacy scripts into + legacy/ and updated variables - use PKGSTATEREVDIR +2004-01-13 23:21 Enrico Scholz -2003-11-20 19:09 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: updated legacy + paths - * scripts/.cvsignore: +2004-01-13 23:21 Enrico Scholz - added vps + * util-vserver/src/Makefile-files: added vps -2003-11-20 19:08 Enrico Scholz +2004-01-13 23:20 Enrico Scholz - * Makefile.am: + * util-vserver/src/util.h: exitLikeProcess(): added prototype - added separate 'pkgstaterevdir' variable +2004-01-13 23:20 Enrico Scholz -2003-11-20 19:08 Enrico Scholz + * util-vserver/src/wrappers.h: Emalloc(), Erealloc(): added - * pathconfig.h.pathsubst: +2004-01-13 23:19 Enrico Scholz - added DEFAULT_PKGSTATEREVDIR + * util-vserver/src/util-exitlikeprocess.c, util-vserver/src/vps.c: + initial checkin -2003-11-20 19:07 Enrico Scholz +2004-01-13 23:18 Enrico Scholz - * lib/Makefile-files: + * util-vserver/scripts/save_s_context, + util-vserver/scripts/vps.pathsubst, + util-vserver/scripts/vserver-legacy, + util-vserver/scripts/vserverkillall: moved into legacy - added getvserverctx & getvserverbyctx files - added fmtx* files +2004-01-13 23:18 Enrico Scholz -2003-11-20 19:06 Enrico Scholz + * util-vserver/scripts/legacy, + util-vserver/scripts/legacy/save_s_context, + util-vserver/scripts/legacy/vps.pathsubst, + util-vserver/scripts/legacy/vserver, + util-vserver/scripts/legacy/vserverkillall: initial checkin + (moved from ../) - * lib/syscall-legacy.hc: +2004-01-13 20:05 Enrico Scholz - has_chrootsafe(), call_set_ctxlimit(): removed + * util-vserver/scripts/vserver-legacy: use 'exec' to call commands + on 'suexec' (patch by Alec Thomas) -2003-11-20 19:06 Enrico Scholz +2004-01-13 14:57 Enrico Scholz - * lib/vserver.h: + * util-vserver/src/Makefile-files: added missing fstool.h header - vc_getVserverByCtx(), vc_getVserverCtx(): added +2004-01-13 14:57 Enrico Scholz -2003-11-20 19:05 Enrico Scholz + * util-vserver/lib/virtual.h: updated (added scheduler stuff) - * lib/: fmt.h, fmt.hc: +2004-01-13 14:56 Enrico Scholz - added/use specialized hex-formating functions + * util-vserver/src/vkill.c: removed warnings about unused + parameters -2003-11-20 19:04 Enrico Scholz +2004-01-13 14:56 Enrico Scholz - * lib/: fmt-internal.h, fmtx-32.c, fmtx-64.c, fmtx.hc, - getvserverbyctx.c, getvserverctx.c: + * util-vserver/lib/getvserverbyctx.c, + util-vserver/lib/getvserverctx.c, util-vserver/src/exec-cd.c, + util-vserver/tests/escaperoot.c, util-vserver/tests/testipc.c, + util-vserver/tests/testlimit.c, util-vserver/tests/testopenf.c: + made it compilable with gcc296 - initial checkin +2004-01-13 14:20 Enrico Scholz -2003-11-20 19:03 Enrico Scholz + * util-vserver/Makefile.am: use $(src_sbin_SCRPTS) - * scripts/util-vserver-vars.pathsubst: +2004-01-13 14:19 Enrico Scholz - added PKGSTATEREVDIR + * util-vserver/lib/vserver.h: added declarations for the ext2fs + functions -2003-11-20 19:03 Enrico Scholz +2004-01-13 14:18 Enrico Scholz - * src/vserver-stat.c: + * util-vserver/lib/vserver-internal.h: added EXT2FS macros - rewrote it to - * use the new management function - * remove all traces of printf() - * remove stacked functions +2004-01-13 14:18 Enrico Scholz -2003-11-20 19:01 Enrico Scholz + * util-vserver/lib/fmt.h: fixed xulong/xlong declarations - * src/vlimit.c: +2004-01-13 14:17 Enrico Scholz - use the specialized utilvserver_fmt_xuint64() function + * util-vserver/lib/Makefile-files: added the ioctl-* files + added ext2fs.h -2003-11-20 19:01 Enrico Scholz +2004-01-13 14:17 Enrico Scholz - * src/Makefile-files: + * util-vserver/src, util-vserver/src/.cvsignore: updated - made 'vserver-stat' a dietlibc-compiled program +2004-01-13 14:16 Enrico Scholz -2003-11-20 16:37 Enrico Scholz + * util-vserver/src/Makefile-files: removed ext2fs.h + added the fstools (lsxid,chxid,showattr,setattr) plus deps - * compat.h: +2004-01-13 14:15 Enrico Scholz - define FMT_PREFIX + * util-vserver/src/chxid.c, util-vserver/src/fstool.c, + util-vserver/src/fstool.h, util-vserver/src/lsxid.c, + util-vserver/src/setattr.c, util-vserver/src/showattr.c: + minor/medium cleanups -2003-11-20 16:35 Enrico Scholz +2004-01-13 14:15 Enrico Scholz - * tests/getinitpid.c, tests/getctx.c, src/save_ctxinfo.c, - src/vlimit.c, lib/getprocentry-legacy.c, lib/Makefile-files, - lib/fmt-32.c, lib/fmt-64.c, lib/fmt.h, lib/fmt.hc, - lib/int2str.c[DEAD], lib/internal.h, lib/uint2str.c[DEAD]: + * util-vserver/src/fstool-resolvectx.c: initial checkin - use fmt_*() functions instead of *int2str() +2004-01-13 13:49 Enrico Scholz -2003-11-20 03:26 Enrico Scholz + * util-vserver/src/showattr.c: rewrote completely - * scripts/vps[DEAD]: +2004-01-13 13:48 Enrico Scholz - removed since autogenerated from vps.pathsubst + * util-vserver/lib/ext2fs.h, util-vserver/src/ext2fs.h: moved + ext2fs.h from src/ into lib/ directory; we are providing the + needed functionality through libvserver now -2003-11-19 00:55 Enrico Scholz +2004-01-13 13:46 Enrico Scholz - * distrib/fc1/: apt/rpmpriorities, apt/sources.list, pkgs/01, - pkgs/02: + * util-vserver/lib/ioctl-getext2flags.c, + util-vserver/lib/ioctl-getfilecontext.c, + util-vserver/lib/ioctl-setext2flags.c, + util-vserver/lib/ioctl-setfilecontext.c, + util-vserver/src/chxid.c, util-vserver/src/fstool.c, + util-vserver/src/fstool.h, util-vserver/src/lsxid.c, + util-vserver/src/setattr.c: initial checkin - initial checkin (based on fdr0.95) +2004-01-07 15:46 Enrico Scholz -2003-11-19 00:52 Enrico Scholz + * util-vserver/lib/vserver.h: added URL which describes + context-creation - * distrib/Makefile.am: +2004-01-07 15:40 Enrico Scholz - added Fedora Core 1 - removed Fedora Beta + * util-vserver/src/chcontext.c: * removed obsolete and unused + 'fakeinit' variable + * fixed ctx-creation with fakeinit and static ctx-id's; fakeinit + requires a second call for ctx -2 to take effect -2003-11-19 00:51 Enrico Scholz +2004-01-05 22:19 Enrico Scholz - * scripts/vapt-get: + * util-vserver/util-vserver.spec.in: added vserver-info - do not set $_APT_GET +2004-01-05 22:19 Enrico Scholz -2003-11-19 00:47 Enrico Scholz + * util-vserver/src, util-vserver/src/.cvsignore: updated - * compat.h: +2004-01-05 22:18 Enrico Scholz - merged/added from 0.25 - added workaround for broken 'long long' handling of dietlibc + * util-vserver/src/wrappers.h: Edup2(): added -2003-11-19 00:44 Enrico Scholz +2004-01-05 22:18 Enrico Scholz - * lib/Makefile-files, lib/syscall-compat.hc, - lib/syscall_rlimit-v11.hc, lib/syscall_rlimit.c, lib/virtual.h, - lib/vserver-internal.h, lib/vserver.h, Makefile.am, THANKS, - configure.ac, util-vserver.spec.in: + * util-vserver/src/vserver-stat.c: use existing syscall-wrappers + instead of checking return-codes manually - merged/added from 0.25 +2004-01-05 22:17 Enrico Scholz -2003-11-19 00:40 Enrico Scholz + * util-vserver/src/vserver-info.c: initial checkin - * src/.cvsignore, src/Makefile-files, src/showattr.c, src/vutil.cc, - src/ext2fs.h, src/setctxlimit.c[DEAD], src/vlimit.c, - scripts/vserver-legacy: +2004-01-05 22:16 Enrico Scholz - merged/added from 0.25 + * util-vserver/src/rpm-fake.c: use fd3 for synchronization with + resolver + adding some missing '\n' in messages + ignore empty environment variables too + exitRPMFake(): conditionalized debug-message -2003-11-19 00:22 Enrico Scholz +2004-01-05 22:15 Enrico Scholz - * sysv/: rebootmgr.subst, vservers.subst: + * util-vserver/src/rpm-fake-resolver.c: daemonize(): child waits + for parent to finish now + use fd3 for synchronisation + enable fork on default - merged in changes from 0.25 +2004-01-05 22:13 Enrico Scholz -2003-11-05 00:25 Enrico Scholz + * util-vserver/src/Makefile-files: added vserver-info + minor cosmetical fixes - * NEWS, configure.ac: +2004-01-05 22:12 Enrico Scholz - version 0.24.191 + * util-vserver/scripts/vserver.stop: fixed error-handling -2003-11-05 00:25 Enrico Scholz +2004-01-05 22:12 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/scripts/vserver-setup.functions: added '--context' + option + minor cosmetical cleanups - added '--without dietlibc' option +2004-01-05 22:11 Enrico Scholz -2003-11-05 00:25 Enrico Scholz + * util-vserver/scripts/vserver-build.functions.apt: + initVariablesApt(): fixed empty function body - * m4/ensc_dietlibc.m4: +2004-01-05 21:57 Enrico Scholz - fixed typos ('withval' instead of 'enableval') + * util-vserver/scripts/vrpm-preload: major cleanups; use + 'vserver-info' to retrieve information about vserver -2003-11-05 00:24 Enrico Scholz +2004-01-05 21:57 Enrico Scholz - * lib/: getvservername.c, getvservervdir.c: + * util-vserver/scripts/vapt-get-worker: removed old, unused debug + code - added '#include ' to fix compilation problems with glibc +2004-01-05 21:56 Enrico Scholz -2003-11-04 14:56 Enrico Scholz + * util-vserver/scripts/vapt-get, util-vserver/scripts/vrpm: use + modern '--help' & '--version' output - * NEWS, configure.ac: +2004-01-05 21:55 Enrico Scholz - version 0.24.190 + * util-vserver/scripts/util-vserver-vars.pathsubst: added + $_VSERVER_INFO -2003-11-04 14:55 Enrico Scholz +2004-01-05 21:55 Enrico Scholz - * .cvsignore: + * util-vserver/scripts/functions: getVserverStatus(): fixed usage + of 2nd parameter - added linuxcaps.h (merged from stable) +2004-01-05 21:53 Enrico Scholz -2003-11-04 14:55 Enrico Scholz + * util-vserver/lib/fmtx.hc, util-vserver/lib/getvserverbyctx.c, + util-vserver/lib/getvserverctx.c, + util-vserver/lib/vserver-internal.h, util-vserver/lib/vserver.h: + small cosmetical fix - * Makefile.am: +2003-12-30 20:15 Enrico Scholz - - separated and completed m4_FILES - - added '--show-dead' to cvs2cl params - - fix linuxcaps.h (merged from stable) + * util-vserver/configure.ac: version 0.27.190 -2003-11-04 14:53 Enrico Scholz +2003-12-30 19:20 Enrico Scholz - * lib/getvservercfgstyle.c: + * util-vserver/util-vserver.spec.in: - since dynamic libraries will + be installed now, call /sbin/ldconfig + - other updates... - added some additional logic +2003-12-30 19:15 Enrico Scholz -2003-11-04 14:53 Enrico Scholz + * util-vserver/src/compat-pivot_root.h: use instead + of to fix problems with + RH's headers - * lib/virtual.h: +2003-12-30 18:09 Enrico Scholz - do not include the kernel-header anymore + * util-vserver/src/testsuite/vunify-test.sh: fixed paths -2003-11-04 14:52 Enrico Scholz +2003-12-30 18:08 Enrico Scholz - * scripts/functions: + * util-vserver/scripts/vserver.stop: use sendKillSequence instead + of ctx-kill - - getAllVservers: use _tmp instead of tmp to avoid clashes when caller - wants to have results in 'tmp', fixed array assignment +2003-12-30 18:08 Enrico Scholz -2003-11-04 14:51 Enrico Scholz + * util-vserver/scripts/vserver.functions: sendKillSequence(): added - * src/rebootmgr.c: +2003-12-30 18:07 Enrico Scholz - fixed typo + * util-vserver/scripts/util-vserver-vars.pathsubst: removed + _CTX_KILL + added _VKILL -2003-11-04 14:50 Enrico Scholz +2003-12-30 18:06 Enrico Scholz - * tests/vserver-info.c: + * util-vserver/scripts/functions: getVserverStatus(): fixed usage + if ctx + isCtxRunning(): added - added '--help' and '--version' +2003-12-30 17:42 Enrico Scholz -2003-11-04 02:37 Enrico Scholz + * util-vserver/Makefile.am: added missing compat-c99.h header-file - * configure.ac: +2003-12-30 17:41 Enrico Scholz - merged from SYSCALL_SWITCH + * util-vserver/src/chroot-rm.c: fixed order of chroot() and + parameter evaluation so that '--version' + and '--help' are working as non-root also -2003-11-04 02:31 Enrico Scholz +2003-12-30 17:40 Enrico Scholz - * m4/ensc_changelog.m4: + * util-vserver/src/Makefile-files: added missing headers + removed 'ctx-kill'; it is obsoleted through 'vkill' - merged from SYSCALL_SWITCH +2003-12-30 17:38 Enrico Scholz -2003-11-04 02:06 Enrico Scholz + * util-vserver/src/ctx-kill.c: replaced by 'vkill' - * scripts/distrib-info, scripts/vserver-copy, - scripts/vserver-legacy, scripts/vservers.grabinfo.sh, - src/rebootmgr.c, sysv/Makefile-files, sysv/rebootmgr.subst: +2003-12-30 17:09 Enrico Scholz - merged in changes from 0.23.96 (/vservers -> $DEFAULT_VSERVERDIR) + * util-vserver/compat.h: use results from dietlib's C99 + compatibility-check -2003-11-04 01:59 Enrico Scholz +2003-12-30 17:08 Enrico Scholz - * m4/validate.am: + * util-vserver/m4/ensc_dietlibc.m4: added check for C99 + compatibility - updated from vserver-djinni +2003-12-30 17:08 Enrico Scholz -2003-11-04 01:59 Enrico Scholz + * util-vserver/m4/ensc_fpicsyscall.m4: fixed AC_LANG_PUSH/POP + mismatch - * lib/vserver-internal.h: +2003-12-30 16:26 Enrico Scholz - ignore lower 8bit on version + * util-vserver, util-vserver/.cvsignore, util-vserver/lib, + util-vserver/lib/.cvsignore, util-vserver/scripts, + util-vserver/scripts/.cvsignore, util-vserver/src, + util-vserver/src/.cvsignore: updated -2003-11-03 20:38 Enrico Scholz +2003-12-30 16:24 Enrico Scholz - * util-vserver.spec.in: + * util-vserver/lib/syscall_kill-v11.hc, + util-vserver/lib/syscall_kill.c, util-vserver/src/vkill.c: merged + with 0.26.90 - removed 'vkill' for now - call 'install-vserverdir' +2003-12-30 16:22 Enrico Scholz -2003-11-03 20:37 Enrico Scholz + * util-vserver/src/testsuite/rpm-fake-test.sh: fixed LD_PRELOAD + path - * distrib/redhat/initpost: +2003-12-30 16:22 Enrico Scholz - create /etc/sysconfig/network + * util-vserver/scripts/vserver: updated start/stop help-messages -2003-11-03 20:37 Enrico Scholz +2003-12-30 16:21 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/scripts/functions: getAllVservers(): ignore backup + vservers - - fixed some statements which would fail with 'set -e' - - made 'disableInterface' smart so that it calculates parameters - automatically +2003-12-30 16:20 Enrico Scholz -2003-11-03 20:35 Enrico Scholz + * util-vserver/distrib/Makefile.am: fixed multiple 'make install' + by using '-f' on 'ln' - * scripts/vserver-setup.functions: +2003-12-30 16:19 Enrico Scholz - added support for '--netbcast' + * util-vserver/configure.ac: - merged with 0.26.90 (fixed + --enable-apis, renamed ctx_t to xid_t, + renamed syscall, use C++ for ext2fs.h test) + - libtool'ized it -2003-11-03 20:34 Enrico Scholz +2003-12-30 16:04 Enrico Scholz - * lib/getvservername.c: + * util-vserver/src/Makefile-files: * added vkill (merged from + 0.26.90) + * libtool'ized it - terminate name with '\0' +2003-12-30 16:03 Enrico Scholz -2003-10-30 18:42 Enrico Scholz + * util-vserver/lib/Makefile-files: * added vc_kill() syscall + (merged from 0.26.90) + * libtool'ized it - * scripts/vserver-legacy: +2003-12-30 15:59 Enrico Scholz - merged from 0.23.95: - - reenabled the copy-all mode; can be disabled by setting the - $UTIL_VSERVER_AVOID_COPY environment variable - - use '-HS' ulimit switch for newly created vservers + * util-vserver/Makefile.am: * added legacy-dir (merged from + 0.26.90) + * libtool'ized it -2003-10-30 18:36 Enrico Scholz +2003-12-30 15:56 Enrico Scholz - * Makefile.am: + * util-vserver/compat.h, util-vserver/lib/getctx-compat.hc, + util-vserver/lib/getctx-legacy.hc, util-vserver/lib/getctx.c, + util-vserver/lib/getversion-internal.hc, + util-vserver/lib/getversion.c, + util-vserver/lib/getvserverbyctx.c, + util-vserver/lib/getvserverctx.c, + util-vserver/lib/syscall-compat.hc, + util-vserver/lib/syscall-legacy.hc, util-vserver/lib/syscall.c, + util-vserver/lib/syscall_rlimit-v11.hc, + util-vserver/lib/syscall_rlimit.c, util-vserver/lib/virtual.h, + util-vserver/lib/vserver-internal.h, util-vserver/lib/vserver.h, + util-vserver/scripts/Makefile-files, + util-vserver/scripts/vps.pathsubst, + util-vserver/scripts/vserver-legacy, util-vserver/src, + util-vserver/src/.cvsignore, util-vserver/src/ctx-kill.c, + util-vserver/src/rpm-fake-resolver.c, + util-vserver/src/rpm-fake.c, util-vserver/src/save_ctxinfo.c, + util-vserver/src/vlimit.c, util-vserver/src/vserver-stat.c, + util-vserver/src/wrappers-vserver.h, util-vserver/tests/getctx.c: + merged with 0.26.90 - - large cleanup; use changed variables from scripts/Makefile - - try to keep modes of pathsubstituted files - - create own install-rule for vserver-dir; 'make distcheck' does not - like /vservers... +2003-12-29 19:02 uid68581 -2003-10-30 18:35 Enrico Scholz + * util-vserver/src/capchroot.c: do not use vc_chrootsafe() anymore - * src/reducecap.c: +2003-12-29 19:01 uid68581 - use QUOTACTL (merged from 0.23.94) + * util-vserver/tests/Makefile-files: removed chrootsafe + libtool'ized -2003-10-30 18:34 Enrico Scholz +2003-12-26 00:50 uid68581 - * src/rebootmgr.c: + * util-vserver/compat-c99.h, util-vserver/src/testsuite, + util-vserver/src/testsuite/Makefile-files, + util-vserver/src/testsuite/data, + util-vserver/src/testsuite/data/rpm-fake-test.inp, + util-vserver/src/testsuite/data/rpm-fake-test.out, + util-vserver/src/testsuite/rpm-fake-test.c, + util-vserver/src/testsuite/rpm-fake-test.sh, + util-vserver/src/testsuite/vunify-functest.c, + util-vserver/src/testsuite/vunify-test.sh: initial checkin - use configured SBINDIR instead of hardcoded /usr/sbin +2003-12-26 00:49 uid68581 -2003-10-30 18:34 Enrico Scholz + * util-vserver/pathconfig.h.pathsubst: added RESOLVER_PROG - * src/chcontext.c: +2003-12-26 00:48 uid68581 - added QUOTACTL to 'secure' caps (merged from 0.23.94) + * util-vserver/scripts/vprofile: removed since obsoleted -2003-10-30 18:30 Enrico Scholz +2003-12-26 00:48 uid68581 - * src/Makefile-files: + * util-vserver/tests/escaperoot.c, util-vserver/tests/forkbomb.c, + util-vserver/tests/testlimit.c, util-vserver/tests/testopenf.c: + used workarounds to make it compilable with non-C99 compilers - create 'setattr' program +2003-12-26 00:47 uid68581 -2003-10-30 18:30 Enrico Scholz + * util-vserver/src/wrappers.h: added setgid/setuid/setgroups + wrappers - * scripts/: distrib-info, rootshell, vpstree, vserver-copy, - vsysvwrapper, vtop: +2003-12-26 00:47 uid68581 - merged in changes from 0.24.94 (s!/usr/sbin!$SBINDIR!) + * util-vserver/src/util.h: added Xmemcpy() + added safeChdir() prototype -2003-10-30 18:28 Enrico Scholz +2003-12-26 00:46 uid68581 - * scripts/: vserver.start, vserver.stop: + * util-vserver/src/rpm-fake.c: rewrote large parts + added NSS functions (getpwnam(), getgrnam(), ...) - use 'set -e' instead of 'set +e' +2003-12-26 00:45 uid68581 -2003-10-30 18:28 Enrico Scholz + * util-vserver/src/fakerunlevel.c: use setgroups() also - * scripts/functions: +2003-12-26 00:45 uid68581 - added 'checkComponents()' function + * util-vserver/src/chroot-rm.c: added '--help' and '--version' -2003-10-30 18:27 Enrico Scholz +2003-12-26 00:44 uid68581 - * scripts/vps.pathsubst: + * util-vserver/src, util-vserver/src/.cvsignore: added exec-cd and + rpm-fake-resolver + removed secure-umount - initial check (was: vps) +2003-12-26 00:42 uid68581 -2003-10-30 18:27 Enrico Scholz + * util-vserver/src/exec-cd.c, util-vserver/src/rpm-fake-resolver.c, + util-vserver/src/util-safechdir.c, + util-vserver/src/vunify-matchlist.c, + util-vserver/src/vunify-matchlist.h, + util-vserver/src/vunify-operations.c, + util-vserver/src/vunify-operations.h, util-vserver/src/vunify.c, + util-vserver/src/wrappers-dirent.h: initial checkin - * scripts/vkill[DEAD]: +2003-12-26 00:38 uid68581 - removed; is obsoleted by ctx-kill + * util-vserver/src/Makefile-files: removed secure-umount + added exec-cd + vunify will be a dietlibc program soonly -2003-10-30 18:26 Enrico Scholz +2003-12-26 00:34 uid68581 - * scripts/util-vserver-vars.pathsubst: + * util-vserver/scripts/rootshell, util-vserver/scripts/vpstree, + util-vserver/scripts/vsysvwrapper, util-vserver/scripts/vtop: + fixed quoting - added INITRDDIR, LIBDIR and INCLUDEDIR +2003-12-26 00:34 uid68581 -2003-10-30 18:25 Enrico Scholz + * util-vserver/scripts/vserver.functions: use 'exec-cd' instead of + 'secure-umount' - * scripts/Makefile-files: +2003-12-26 00:33 uid68581 - large cleanup - removed 'vkill' (obsoleted by ctx-kill) - vps is now vps.subst + * util-vserver/scripts/vserver-build.functions.apt: fixed + initVariablesApt() + added support for default apt.conf -2003-10-30 18:21 Enrico Scholz +2003-12-26 00:33 uid68581 - * lib/capabilities.c, lib/vserver.h, man/reducecap.8: + * util-vserver/scripts/vserver-build.functions: rename package-cfg + directory on '--force' also - use CAP_QUOTACTL instead of CAP_OPENDEV +2003-12-26 00:32 uid68581 -2003-10-30 15:38 Enrico Scholz + * util-vserver/scripts/vserver-build.apt-rpm: added '--debug' + option - * Makefile.am: +2003-12-26 00:32 uid68581 - use ENSC_UV_VROOTDIR to set 'vserverdir' - added missing path-substitutions + * util-vserver/scripts/vserver: added package-management options + (atleast their documention) -2003-10-30 15:37 Enrico Scholz +2003-12-26 00:30 uid68581 - * configure.ac: + * util-vserver/scripts/vapt-get-worker: set RPM::PM to 'external' - use ENSC_UV_VROOTDIR to set 'vserverdir' +2003-12-26 00:29 uid68581 -2003-10-30 15:36 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added _EXEC_CD + removed _SECURE_UMOUNT - * m4/ensc_uv_vrootdir.m4: +2003-12-26 00:29 uid68581 - initial checkin + * util-vserver/scripts/functions: added support for default + apt.conf -2003-10-23 22:55 Enrico Scholz +2003-12-26 00:23 uid68581 - * tests/vserver-info.c: + * util-vserver/scripts/Makefile-files: removed vprofile - initial checkin +2003-12-26 00:22 uid68581 -2003-10-23 22:55 Enrico Scholz + * util-vserver/m4/ensc_cflags.m4, util-vserver/m4/ensc_dietlibc.m4, + util-vserver/m4/ensc_kerneldir.m4, + util-vserver/m4/ensc_release.m4, + util-vserver/m4/ensc_uv_vrootdir.m4: fixed broken quoting which + is complained by recent automake - * tests/: Makefile-files, .cvsignore: +2003-12-26 00:22 uid68581 - added vserver-info + * util-vserver/lib/getvserverbyctx.c, + util-vserver/lib/getvserverctx.c: added workarounds for non-C99 + compilers -2003-10-23 22:54 Enrico Scholz +2003-12-26 00:21 uid68581 - * compat.h: + * util-vserver/distrib/defaults/apt, + util-vserver/distrib/defaults/apt/apt.conf: initial checkin - define TEMP_FAILURE_RETRY for dietlibc-compilation +2003-12-26 00:20 uid68581 -2003-10-23 22:54 Enrico Scholz + * util-vserver/distrib/Makefile.am: added default apt.conf - * pathconfig.h.pathsubst: +2003-12-26 00:20 uid68581 - define DEFAULT_VSERVERDIR and DEFAULT_VSERVERPKGDIR + * util-vserver/compat.h: differ between >=3.3 and below at certain + options + added 'restrict' workarounds -2003-10-23 22:53 Enrico Scholz +2003-12-26 00:19 uid68581 - * lib/Makefile-files: + * util-vserver/Makefile.am: - removed m4_FILES; it is handled by + automake >=2.8 automatically + - added basic test support - added files for higher-level management +2003-12-02 02:19 Enrico Scholz -2003-10-23 22:53 Enrico Scholz + * util-vserver/scripts/vserver.functions: evaluate CHBIND_OPTS + lazily - * lib/vserver.h: +2003-12-02 02:17 Enrico Scholz - added functions for vserver-management + * util-vserver/lib/getvservername.c: getRecentName(): return + basename of directory but not this of the link anymore -2003-10-23 22:52 Enrico Scholz +2003-11-22 02:44 Enrico Scholz - * lib/: getvservercfgstyle.c, getvservername.c, getvservervdir.c: + * util-vserver/NEWS, util-vserver/configure.ac: version 0.26.193 - initial checkin +2003-11-22 02:43 Enrico Scholz -2003-10-23 01:23 Enrico Scholz + * util-vserver, util-vserver/.cvsignore, util-vserver/Makefile.am, + util-vserver/configure.ac, util-vserver/src/ifspec.c: merged with + 0.26 - * scripts/: vserver.start, vserver.stop, vserver.suexec: +2003-11-22 02:35 Enrico Scholz - cleanups; go into vserver-dir before *and* after executing scriptlets + * util-vserver/Makefile.am: generate some .defaults symlinks -2003-10-23 01:23 Enrico Scholz +2003-11-22 02:35 Enrico Scholz - * scripts/: vserver-build, vserver-build.functions: + * util-vserver/util-vserver.spec.in: generate %ghost symlinks in + %post + added vlimit + added some .default directories - used $DEFAULT_VSERVERDIR and $DEFAULT_VSERVERPKGDIR instead of the - hardcoded '/vservers' values +2003-11-22 02:31 Enrico Scholz -2003-10-23 00:19 Enrico Scholz + * util-vserver/lib/getvserverctx.c: added missing includes - * util-vserver.spec.in: +2003-11-22 02:31 Enrico Scholz - rewrote it - added -build subpackage + * util-vserver/scripts/vserver-setup.functions: use + '$CONFDIR/.defaults/run.rev' instead of '$PKGSTATEREVDIR' -2003-10-23 00:18 Enrico Scholz +2003-11-20 18:10 Enrico Scholz - * configure.ac: + * util-vserver/util-vserver.spec.in: use 'vservers.rev' directory + instead of 'vservers/rev' - moved ENSC_INITRDDIR, ENSC_RELEASE, ENSC_ENABLE_DIETLIBC and - ENSC_KERNEL_HEADERS checks into own m4/* files +2003-11-20 18:09 Enrico Scholz -2003-10-23 00:17 Enrico Scholz + * util-vserver/scripts/vserver-setup.functions: use PKGSTATEREVDIR - * Makefile.am: +2003-11-20 18:09 Enrico Scholz - renamed sysvdir to initrddir - use $(RELEASE_CPPFLAGS) (-DNDEBUG) - substitute $(vserverdir) and $(vserverpkgdir) - create the $(vserverdir) and $(vserverpkgdir) directories + * util-vserver/scripts, util-vserver/scripts/.cvsignore: added vps -2003-10-23 00:12 Enrico Scholz +2003-11-20 18:08 Enrico Scholz - * distrib/Makefile.am: + * util-vserver/Makefile.am: added separate 'pkgstaterevdir' + variable - added sample 'mtab' file - create the config-dirs +2003-11-20 18:08 Enrico Scholz -2003-10-23 00:12 Enrico Scholz + * util-vserver/pathconfig.h.pathsubst: added DEFAULT_PKGSTATEREVDIR - * distrib/redhat/initpost: +2003-11-20 18:07 Enrico Scholz - $2 is no longer $_VSERVER but the 'util-vserver-vars' file + * util-vserver/lib/Makefile-files: added getvserverctx & + getvserverbyctx files + added fmtx* files -2003-10-23 00:11 Enrico Scholz +2003-11-20 18:06 Enrico Scholz - * distrib/rh9/apt/sources.list: + * util-vserver/lib/syscall-legacy.hc: has_chrootsafe(), + call_set_ctxlimit(): removed - added some mirrors +2003-11-20 18:06 Enrico Scholz -2003-10-23 00:09 Enrico Scholz + * util-vserver/lib/vserver.h: vc_getVserverByCtx(), + vc_getVserverCtx(): added - * m4/ensc_dietlibc.m4, m4/ensc_initrddir.m4, m4/ensc_kerneldir.m4, - m4/ensc_release.m4, distrib/misc/mtab: +2003-11-20 18:05 Enrico Scholz - initial checkin + * util-vserver/lib/fmt.h, util-vserver/lib/fmt.hc: added/use + specialized hex-formating functions -2003-10-23 00:08 Enrico Scholz +2003-11-20 18:04 Enrico Scholz - * scripts/util-vserver-vars.pathsubst: + * util-vserver/lib/fmt-internal.h, util-vserver/lib/fmtx-32.c, + util-vserver/lib/fmtx-64.c, util-vserver/lib/fmtx.hc, + util-vserver/lib/getvserverbyctx.c, + util-vserver/lib/getvserverctx.c: initial checkin - added DEFAULT_VSERVERDIR and DEFAULT_VSERVERPKGDIR +2003-11-20 18:03 Enrico Scholz -2003-10-23 00:08 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added + PKGSTATEREVDIR - * scripts/vserver-build.apt-rpm: +2003-11-20 18:03 Enrico Scholz - call pre/post scriplets with "$UTIL_VSERVER_VARS" as second param - instead of "$_VSERVER" + * util-vserver/src/vserver-stat.c: rewrote it to + * use the new management function + * remove all traces of printf() + * remove stacked functions -2003-10-23 00:07 Enrico Scholz +2003-11-20 18:01 Enrico Scholz - * scripts/vserver-build.functions: + * util-vserver/src/vlimit.c: use the specialized + utilvserver_fmt_xuint64() function - fixed broken quotes +2003-11-20 18:01 Enrico Scholz -2003-10-22 20:34 Enrico Scholz + * util-vserver/src/Makefile-files: made 'vserver-stat' a + dietlibc-compiled program - * scripts/: vserver.functions, vserver.start: +2003-11-20 15:37 Enrico Scholz - - reorganized CHCONTEXT_INIT_OPTS/CHCONTEXT_DISCONNECT: dropped the - separate CHCONTEXT_DISCONNECT variable completetly and put '--flag - fakeinit --disconnect' into CHCONTEXT_INIT_OPTS, which is used by - 'vserver ... start' command only + * util-vserver/compat.h: define FMT_PREFIX -2003-10-22 20:23 Enrico Scholz +2003-11-20 15:37 Enrico Scholz - * src/secure-umount.c: + * util-vserver/lib/Makefile-files, util-vserver/lib/fmt-32.c, + util-vserver/lib/fmt-64.c, util-vserver/lib/fmt.h, + util-vserver/lib/fmt.hc, util-vserver/lib/getprocentry-legacy.c, + util-vserver/lib/int2str.c, util-vserver/lib/internal.h, + util-vserver/lib/uint2str.c, util-vserver/src/save_ctxinfo.c, + util-vserver/src/vlimit.c, util-vserver/tests/getctx.c, + util-vserver/tests/getinitpid.c: use fmt_*() functions instead of + *int2str() - use real 'umount' program to unmount directories +2003-11-20 02:26 Enrico Scholz -2003-10-22 20:22 Enrico Scholz + * util-vserver/scripts/vps: removed since autogenerated from + vps.pathsubst - * src/exec-ulimit.c: +2003-11-18 23:56 Enrico Scholz - added [mMkK] modifies for limits + * util-vserver/distrib/fdr0.95, util-vserver/distrib/rh9.0.93: + obsoleted by fc1 -2003-10-22 20:20 Enrico Scholz +2003-11-18 23:55 Enrico Scholz - * scripts/vserver-build.functions: + * util-vserver/distrib/fc1, util-vserver/distrib/fc1/apt, + util-vserver/distrib/fc1/apt/rpmpriorities, + util-vserver/distrib/fc1/apt/sources.list, + util-vserver/distrib/fc1/pkgs, util-vserver/distrib/fc1/pkgs/01, + util-vserver/distrib/fc1/pkgs/02: initial checkin (based on + fdr0.95) - added support for copying some default files (resolv.conf, localtime, - krb-conf,...) +2003-11-18 23:52 Enrico Scholz -2003-10-22 20:19 Enrico Scholz + * util-vserver/distrib/Makefile.am: added Fedora Core 1 + removed Fedora Beta - * scripts/: vserver-build, vserver-setup.functions: +2003-11-18 23:51 Enrico Scholz - fixed getopt long-option string + * util-vserver/scripts/vapt-get: do not set $_APT_GET -2003-10-22 20:19 Enrico Scholz +2003-11-18 23:47 Enrico Scholz - * scripts/functions: + * util-vserver/compat.h: merged/added from 0.25 + added workaround for broken 'long long' handling of dietlibc - implemented findAndCopy +2003-11-18 23:46 Enrico Scholz -2003-10-21 16:15 Enrico Scholz + * util-vserver/Makefile.am, util-vserver/THANKS, + util-vserver/configure.ac, util-vserver/lib/Makefile-files, + util-vserver/lib/syscall-compat.hc, + util-vserver/lib/syscall_rlimit-v11.hc, + util-vserver/lib/syscall_rlimit.c, util-vserver/lib/virtual.h, + util-vserver/lib/vserver-internal.h, util-vserver/lib/vserver.h, + util-vserver/scripts/vserver-legacy, util-vserver/src, + util-vserver/src/.cvsignore, util-vserver/src/Makefile-files, + util-vserver/src/ext2fs.h, util-vserver/src/setctxlimit.c, + util-vserver/src/showattr.c, util-vserver/src/vlimit.c, + util-vserver/src/vutil.cc, util-vserver/util-vserver.spec.in: + merged/added from 0.25 - * NEWS, configure.ac: +2003-11-18 23:22 Enrico Scholz - version 0.23.194 + * util-vserver/sysv/rebootmgr.subst, + util-vserver/sysv/vservers.subst: merged in changes from 0.25 -2003-10-21 16:15 Enrico Scholz +2003-11-04 23:25 Enrico Scholz - * distrib/Makefile.am: + * util-vserver/NEWS, util-vserver/configure.ac: version 0.24.191 - added scripts to AM_INSTALLCHECK_STD_OPTIONS_EXEMPT +2003-11-04 23:25 Enrico Scholz -2003-10-21 16:14 Enrico Scholz + * util-vserver/util-vserver.spec.in: added '--without dietlibc' + option - * src/exec-ulimit.c: +2003-11-04 23:25 Enrico Scholz - implemented '--help' and '--version' + * util-vserver/m4/ensc_dietlibc.m4: fixed typos ('withval' instead + of 'enableval') -2003-10-21 15:55 Enrico Scholz +2003-11-04 23:24 Enrico Scholz - * src/vbuild.cc: + * util-vserver/lib/getvservername.c, + util-vserver/lib/getvservervdir.c: added '#include ' to + fix compilation problems with glibc - removed warning about unused parameters +2003-11-04 13:56 Enrico Scholz -2003-10-21 15:55 Enrico Scholz + * util-vserver/NEWS, util-vserver/configure.ac: version 0.24.190 - * tests/Makefile-files: +2003-11-04 13:55 Enrico Scholz - renamed to .cc files to .c + * util-vserver, util-vserver/.cvsignore: added linuxcaps.h (merged + from stable) -2003-10-21 15:54 Enrico Scholz +2003-11-04 13:55 Enrico Scholz - * tests/: chrootsafe.c, chrootsafe.cc[DEAD], escaperoot.c, - escaperoot.cc[DEAD], forkbomb.c, forkbomb.cc[DEAD], testipc.c, - testipc.cc[DEAD], testlimit.c, testlimit.cc[DEAD], testopenf.c, - testopenf.cc[DEAD]: + * util-vserver/Makefile.am: - separated and completed m4_FILES + - added '--show-dead' to cvs2cl params + - fix linuxcaps.h (merged from stable) - renamed to .cc files to .c and made some little changes to make them - compilable with C compilers +2003-11-04 13:53 Enrico Scholz -2003-10-21 15:40 Enrico Scholz + * util-vserver/lib/getvservercfgstyle.c: added some additional + logic - * Makefile.am: +2003-11-04 13:53 Enrico Scholz - added new m4/*.m4 macros - added conditional build of CXX files - added support for libtool + * util-vserver/lib/virtual.h: do not include the + kernel-header anymore -2003-10-21 15:35 Enrico Scholz +2003-11-04 13:52 Enrico Scholz - * distrib/redhat/initpost: + * util-vserver/scripts/functions: - getAllVservers: use _tmp + instead of tmp to avoid clashes when caller + wants to have results in 'tmp', fixed array assignment - initial checkin +2003-11-04 13:51 Enrico Scholz -2003-10-21 15:34 Enrico Scholz + * util-vserver/src/rebootmgr.c: fixed typo - * distrib/Makefile.am: +2003-11-04 13:50 Enrico Scholz - added Fedora Core 0.95 - removed Red Hat 9.0.93 - use common redhat/initpost script + * util-vserver/tests/vserver-info.c: added '--help' and '--version' -2003-10-21 15:33 Enrico Scholz +2003-11-04 01:37 Enrico Scholz - * lib/Makefile-files: + * util-vserver/configure.ac: merged from SYSCALL_SWITCH - - use dietlibc compilation only for library-built, but not e.g. when - building object for rpm-fake.so. This is very dark magic... +2003-11-04 01:31 Enrico Scholz -2003-10-21 15:32 Enrico Scholz + * util-vserver/m4/ensc_changelog.m4: merged from SYSCALL_SWITCH - * scripts/Makefile-files: +2003-11-04 01:07 Enrico Scholz - removed vunify.old.sh + * util-vserver/scripts/distrib-info, + util-vserver/scripts/vserver-copy, + util-vserver/scripts/vserver-legacy, + util-vserver/scripts/vservers.grabinfo.sh, + util-vserver/src/rebootmgr.c, util-vserver/sysv/Makefile-files, + util-vserver/sysv/rebootmgr.subst: merged in changes from 0.23.96 + (/vservers -> $DEFAULT_VSERVERDIR) -2003-10-21 15:32 Enrico Scholz +2003-11-04 00:59 Enrico Scholz - * src/Makefile-files: + * util-vserver/m4/validate.am: updated from vserver-djinni - - conditionalized built of C++ programs - - added very dark magic to build everything of rpm-fake.so with '-fPIC' - flag (when possible); on ia32 this will not work/is not necessarily - but x86_64 seems to have problems with current method +2003-11-04 00:59 Enrico Scholz -2003-10-21 15:27 Enrico Scholz + * util-vserver/lib/vserver-internal.h: ignore lower 8bit on version - * configure.ac: +2003-11-03 19:38 Enrico Scholz - added check for C++ compiler - added some CXX flags - use ENSC_FPIC_SYSCALL + * util-vserver/util-vserver.spec.in: removed 'vkill' for now + call 'install-vserverdir' -2003-10-21 15:27 Enrico Scholz +2003-11-03 19:37 Enrico Scholz - * lib/checkversion.c: + * util-vserver/distrib/redhat/initpost: create + /etc/sysconfig/network - fixed stupid thinko (EAGAIN vs. EINVAL) +2003-11-03 19:37 Enrico Scholz -2003-10-21 15:26 Enrico Scholz + * util-vserver/scripts/vserver.functions: - fixed some statements + which would fail with 'set -e' + - made 'disableInterface' smart so that it calculates parameters + automatically - * m4/ensc_cxxcompiler.m4, m4/ensc_fpicsyscall.m4, src/vserver.cc, - src/vserver.hh: +2003-11-03 19:35 Enrico Scholz - initial checkin + * util-vserver/scripts/vserver-setup.functions: added support for + '--netbcast' -2003-10-21 15:25 Enrico Scholz +2003-11-03 19:34 Enrico Scholz - * src/rpm-fake.c: + * util-vserver/lib/getvservername.c: terminate name with '\0' - made it compilabe with non-C99 compilers and older kernels +2003-10-30 17:42 Enrico Scholz -2003-10-21 15:25 Enrico Scholz + * util-vserver/scripts/vserver-legacy: merged from 0.23.95: + - reenabled the copy-all mode; can be disabled by setting the + $UTIL_VSERVER_AVOID_COPY environment variable + - use '-HS' ulimit switch for newly created vservers - * src/secure-mount.c: +2003-10-30 17:36 Enrico Scholz - made it compilabe with non-C99 compilers + * util-vserver/Makefile.am: - large cleanup; use changed variables + from scripts/Makefile + - try to keep modes of pathsubstituted files + - create own install-rule for vserver-dir; 'make distcheck' does + not + like /vservers... -2003-10-21 15:25 Enrico Scholz +2003-10-30 17:35 Enrico Scholz - * src/vbuild.cc: + * util-vserver/src/reducecap.c: use QUOTACTL (merged from 0.23.94) - use 'Vserver' class instead of 'string' - !!BROKE LOTS OF THINGS!! this version does not work yet +2003-10-30 17:34 Enrico Scholz -2003-10-21 15:24 Enrico Scholz + * util-vserver/src/rebootmgr.c: use configured SBINDIR instead of + hardcoded /usr/sbin - * src/vunify.cc: +2003-10-30 17:34 Enrico Scholz - use 'Vserver' class instead of 'string' - use getopt() - reindented large parts + * util-vserver/src/chcontext.c: added QUOTACTL to 'secure' caps + (merged from 0.23.94) -2003-10-21 15:23 Enrico Scholz +2003-10-30 17:30 Enrico Scholz - * src/vutil.cc: + * util-vserver/src/Makefile-files: create 'setattr' program - use 'Vserver' class instead of 'string' - fixed format-string error +2003-10-30 17:30 Enrico Scholz -2003-10-21 15:23 Enrico Scholz + * util-vserver/scripts/distrib-info, + util-vserver/scripts/rootshell, util-vserver/scripts/vpstree, + util-vserver/scripts/vserver-copy, + util-vserver/scripts/vsysvwrapper, util-vserver/scripts/vtop: + merged in changes from 0.24.94 (s!/usr/sbin!$SBINDIR!) - * src/: vutil.p, vutil.h: +2003-10-30 17:29 Enrico Scholz - use 'Vserver' class instead of 'string' + * util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop: use 'set -e' instead of 'set + +e' -2003-10-21 15:22 Enrico Scholz +2003-10-30 17:28 Enrico Scholz - * src/wrappers.h: + * util-vserver/scripts/functions: added 'checkComponents()' + function - make it compilable with non-C99 compilers +2003-10-30 17:27 Enrico Scholz -2003-10-21 01:07 Enrico Scholz + * util-vserver/scripts/vps.pathsubst: initial check (was: vps) - * doc/configuration.xml: +2003-10-30 17:27 Enrico Scholz - documented 'ulimits' directory + * util-vserver/scripts/vkill: removed; is obsoleted by ctx-kill -2003-10-21 00:58 Enrico Scholz +2003-10-30 17:26 Enrico Scholz - * scripts/vunify.old.sh[DEAD]: + * util-vserver/scripts/util-vserver-vars.pathsubst: added + INITRDDIR, LIBDIR and INCLUDEDIR - as the name ('*old*') is saying already: it is old and obsoleted... +2003-10-30 17:25 Enrico Scholz -2003-10-21 00:45 Enrico Scholz + * util-vserver/scripts/Makefile-files: large cleanup + removed 'vkill' (obsoleted by ctx-kill) + vps is now vps.subst - * scripts/: vserver.start, vserver.stop, vserver.suexec: +2003-10-30 17:21 Enrico Scholz - added ulimits support + * util-vserver/lib/capabilities.c, util-vserver/lib/vserver.h, + util-vserver/man/reducecap.8: use CAP_QUOTACTL instead of + CAP_OPENDEV -2003-10-21 00:45 Enrico Scholz +2003-10-30 14:38 Enrico Scholz - * scripts/util-vserver-vars.pathsubst: + * util-vserver/Makefile.am: use ENSC_UV_VROOTDIR to set + 'vserverdir' + added missing path-substitutions - added _EXEC_ULIMIT +2003-10-30 14:37 Enrico Scholz -2003-10-21 00:44 Enrico Scholz + * util-vserver/configure.ac: use ENSC_UV_VROOTDIR to set + 'vserverdir' - * src/exec-ulimit.c: +2003-10-30 14:36 Enrico Scholz - work also, when ulimit-directory does not exist + * util-vserver/m4/ensc_uv_vrootdir.m4: initial checkin -2003-10-21 00:30 Enrico Scholz +2003-10-23 20:55 Enrico Scholz - * src/.cvsignore: + * util-vserver/lib/getvservercfgstyle.c, + util-vserver/lib/getvservername.c, + util-vserver/lib/getvservervdir.c, + util-vserver/tests/vserver-info.c: initial checkin - added exec-ulimit +2003-10-23 20:55 Enrico Scholz -2003-10-21 00:30 Enrico Scholz + * util-vserver/tests, util-vserver/tests/.cvsignore, + util-vserver/tests/Makefile-files: added vserver-info - * src/exec-ulimit.c: +2003-10-23 20:54 Enrico Scholz - initial checkin + * util-vserver/compat.h: define TEMP_FAILURE_RETRY for + dietlibc-compilation -2003-10-21 00:29 Enrico Scholz +2003-10-23 20:54 Enrico Scholz - * src/Makefile-files: + * util-vserver/pathconfig.h.pathsubst: define DEFAULT_VSERVERDIR + and DEFAULT_VSERVERPKGDIR - added exec-ulimit.c +2003-10-23 20:53 Enrico Scholz -2003-10-21 00:29 Enrico Scholz + * util-vserver/lib/Makefile-files: added files for higher-level + management - * src/wrappers.h: +2003-10-23 20:53 Enrico Scholz - Egetrlimit(),Esetrlimit(): added + * util-vserver/lib/vserver.h: added functions for + vserver-management -2003-10-20 23:30 Enrico Scholz +2003-10-22 23:23 Enrico Scholz - * src/reducecap.c: + * util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop, + util-vserver/scripts/vserver.suexec: cleanups; go into + vserver-dir before *and* after executing scriptlets - use capability support from the library as far as possible +2003-10-22 23:23 Enrico Scholz -2003-10-20 23:29 Enrico Scholz + * util-vserver/scripts/vserver-build, + util-vserver/scripts/vserver-build.functions: used + $DEFAULT_VSERVERDIR and $DEFAULT_VSERVERPKGDIR instead of the + hardcoded '/vservers' values - * src/: capchroot.c, chcontext.c: +2003-10-22 22:19 Enrico Scholz - use capability support from the library instead of including - kernel-headers + * util-vserver/util-vserver.spec.in: rewrote it + added -build subpackage -2003-10-20 23:28 Enrico Scholz +2003-10-22 22:18 Enrico Scholz - * lib/capabilities.c: + * util-vserver/configure.ac: moved ENSC_INITRDDIR, ENSC_RELEASE, + ENSC_ENABLE_DIETLIBC and + ENSC_KERNEL_HEADERS checks into own m4/* files - initial checkin +2003-10-22 22:17 Enrico Scholz -2003-10-20 23:28 Enrico Scholz + * util-vserver/Makefile.am: renamed sysvdir to initrddir + use $(RELEASE_CPPFLAGS) (-DNDEBUG) + substitute $(vserverdir) and $(vserverpkgdir) + create the $(vserverdir) and $(vserverpkgdir) directories - * lib/vserver.h: +2003-10-22 22:12 Enrico Scholz - added capability support + * util-vserver/distrib/Makefile.am: added sample 'mtab' file + create the config-dirs -2003-10-20 23:28 Enrico Scholz +2003-10-22 22:12 Enrico Scholz - * lib/Makefile-files: + * util-vserver/distrib/redhat/initpost: $2 is no longer $_VSERVER + but the 'util-vserver-vars' file - added support for '-DNDEBUG' in the library - added capability.c +2003-10-22 22:11 Enrico Scholz -2003-10-20 23:28 Enrico Scholz + * util-vserver/distrib/rh9/apt/sources.list: added some mirrors - * configure.ac: +2003-10-22 22:10 Enrico Scholz - added support for '-DNDEBUG' in the library + * util-vserver/distrib/fdr0.95, util-vserver/distrib/fdr0.95/apt, + util-vserver/distrib/fdr0.95/apt/rpmpriorities, + util-vserver/distrib/fdr0.95/apt/sources.list, + util-vserver/distrib/fdr0.95/pkgs, + util-vserver/distrib/fdr0.95/pkgs/01, + util-vserver/distrib/fdr0.95/pkgs/02, util-vserver/distrib/misc, + util-vserver/distrib/misc/mtab, util-vserver/m4/ensc_dietlibc.m4, + util-vserver/m4/ensc_initrddir.m4, + util-vserver/m4/ensc_kerneldir.m4, + util-vserver/m4/ensc_release.m4: initial checkin -2003-10-20 20:08 Enrico Scholz +2003-10-22 22:08 Enrico Scholz - * Makefile.am: + * util-vserver/scripts/util-vserver-vars.pathsubst: added + DEFAULT_VSERVERDIR and DEFAULT_VSERVERPKGDIR - added PKGSTATEDIR substitution +2003-10-22 22:08 Enrico Scholz -2003-10-20 20:06 Enrico Scholz + * util-vserver/scripts/vserver-build.apt-rpm: call pre/post + scriplets with "$UTIL_VSERVER_VARS" as second param + instead of "$_VSERVER" - * scripts/vserver-build.apt-rpm, scripts/vserver-build.functions, - scripts/vserver-build.functions.apt, - scripts/vserver-build.functions.rpm, - scripts/vserver-setup.functions, doc/cfgdirdoc.dtd, - doc/configuration.xml: +2003-10-22 22:07 Enrico Scholz - initial checkin + * util-vserver/scripts/vserver-build.functions: fixed broken quotes -2003-10-20 20:06 Enrico Scholz +2003-10-22 18:34 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/scripts/vserver.functions, + util-vserver/scripts/vserver.start: - reorganized + CHCONTEXT_INIT_OPTS/CHCONTEXT_DISCONNECT: dropped the + separate CHCONTEXT_DISCONNECT variable completetly and put + '--flag + fakeinit --disconnect' into CHCONTEXT_INIT_OPTS, which is used by + 'vserver ... start' command only - - removed vserver-init file - - added vserver-build* files +2003-10-22 18:23 Enrico Scholz -2003-10-20 20:05 Enrico Scholz + * util-vserver/src/secure-umount.c: use real 'umount' program to + unmount directories - * scripts/util-vserver-vars.pathsubst: +2003-10-22 18:22 Enrico Scholz - - added PKGSTATEDIR, RUNDIR, LIB_VSERVER_SETUP_FUNCTIONS, - LIB_VSERVER_BUILD_FUNCTIONS* and _VSERVER variables - - added WORKAROUND_APT_DBPATH variable + * util-vserver/src/exec-ulimit.c: added [mMkK] modifies for limits -2003-10-20 20:04 Enrico Scholz +2003-10-22 18:22 Enrico Scholz - * scripts/vserver-build: + * util-vserver/scripts/vserver-build, + util-vserver/scripts/vserver-setup.functions: fixed getopt + long-option string - implemented it... +2003-10-22 18:20 Enrico Scholz -2003-10-20 20:04 Enrico Scholz + * util-vserver/scripts/vserver-build.functions: added support for + copying some default files (resolv.conf, localtime, + krb-conf,...) - * scripts/vserver: +2003-10-22 18:19 Enrico Scholz - added '--sync' and '--verbose' options - sync the 'stop' stage on restart - fixed invocation of 'vserver-build' + * util-vserver/scripts/functions: implemented findAndCopy -2003-10-20 20:02 Enrico Scholz +2003-10-21 14:15 Enrico Scholz - * scripts/: vapt-get, vrpm: + * util-vserver/NEWS, util-vserver/configure.ac: version 0.23.194 - made it more mature by using arrays for the vserver-list +2003-10-21 14:15 Enrico Scholz -2003-10-20 20:01 Enrico Scholz + * util-vserver/distrib/Makefile.am: added scripts to + AM_INSTALLCHECK_STD_OPTIONS_EXEMPT - * scripts/vserver.functions: +2003-10-21 14:14 Enrico Scholz - - moved getFileValue/getFileArray from 'vserver.functions' into 'functions' + * util-vserver/src/exec-ulimit.c: implemented '--help' and + '--version' -2003-10-20 20:00 Enrico Scholz +2003-10-21 13:55 Enrico Scholz - * scripts/functions: + * util-vserver/src/vbuild.cc: removed warning about unused + parameters - - moved getFileValue/getFileArray from 'vserver.functions' into 'functions' - - implemented '/' style vserver specification - - made getAllVservers more mature by using arrays +2003-10-21 13:55 Enrico Scholz -2003-10-20 19:57 Enrico Scholz + * util-vserver/tests/Makefile-files: renamed to .cc files to .c - * scripts/vserver-init[DEAD]: +2003-10-21 13:54 Enrico Scholz - moved 'vserver-init' functionality into the more general vserver-build* - files + * util-vserver/tests/chrootsafe.c, + util-vserver/tests/chrootsafe.cc, + util-vserver/tests/escaperoot.c, + util-vserver/tests/escaperoot.cc, util-vserver/tests/forkbomb.c, + util-vserver/tests/forkbomb.cc, util-vserver/tests/testipc.c, + util-vserver/tests/testipc.cc, util-vserver/tests/testlimit.c, + util-vserver/tests/testlimit.cc, util-vserver/tests/testopenf.c, + util-vserver/tests/testopenf.cc: renamed to .cc files to .c and + made some little changes to make them + compilable with C compilers -2003-10-18 04:31 Enrico Scholz +2003-10-21 13:40 Enrico Scholz - * configure.ac: + * util-vserver/Makefile.am: added new m4/*.m4 macros + added conditional build of CXX files + added support for libtool - gnit'ified +2003-10-21 13:35 Enrico Scholz -2003-10-18 04:31 Enrico Scholz + * util-vserver/distrib/redhat, + util-vserver/distrib/redhat/initpost: initial checkin - * src/.cvsignore: +2003-10-21 13:34 Enrico Scholz - added pipe-sync + * util-vserver/distrib/Makefile.am: added Fedora Core 0.95 + removed Red Hat 9.0.93 + use common redhat/initpost script -2003-10-18 04:30 Enrico Scholz +2003-10-21 13:33 Enrico Scholz - * src/Makefile-files: + * util-vserver/lib/Makefile-files: - use dietlibc compilation only + for library-built, but not e.g. when + building object for rpm-fake.so. This is very dark magic... - gnit'ified - added pipe-sync +2003-10-21 13:32 Enrico Scholz -2003-10-18 04:30 Enrico Scholz + * util-vserver/scripts/Makefile-files: removed vunify.old.sh - * src/chroot-cat.c: +2003-10-21 13:32 Enrico Scholz - minor cosmetical changes + * util-vserver/src/Makefile-files: - conditionalized built of C++ + programs + - added very dark magic to build everything of rpm-fake.so with + '-fPIC' + flag (when possible); on ia32 this will not work/is not + necessarily + but x86_64 seems to have problems with current method -2003-10-18 04:29 Enrico Scholz +2003-10-21 13:27 Enrico Scholz - * src/chroot-rm.c: + * util-vserver/configure.ac: added check for C++ compiler + added some CXX flags + use ENSC_FPIC_SYSCALL - use "wrapper.h" +2003-10-21 13:27 Enrico Scholz -2003-10-18 04:26 Enrico Scholz + * util-vserver/lib/checkversion.c: fixed stupid thinko (EAGAIN vs. + EINVAL) - * src/wrappers.h: +2003-10-21 13:26 Enrico Scholz - Eunlink(): added + * util-vserver/m4/ensc_cxxcompiler.m4, + util-vserver/m4/ensc_fpicsyscall.m4, util-vserver/src/vserver.cc, + util-vserver/src/vserver.hh: initial checkin -2003-10-18 04:25 Enrico Scholz +2003-10-21 13:25 Enrico Scholz - * scripts/util-vserver-vars.pathsubst: + * util-vserver/src/rpm-fake.c: made it compilabe with non-C99 + compilers and older kernels - added $_VSERVER_BUILD +2003-10-21 13:25 Enrico Scholz -2003-10-18 04:25 Enrico Scholz + * util-vserver/src/secure-mount.c: made it compilabe with non-C99 + compilers - * scripts/vserver: +2003-10-21 13:25 Enrico Scholz - added help/version - added 'build' option - made 'running' silently + * util-vserver/src/vbuild.cc: use 'Vserver' class instead of + 'string' + !!BROKE LOTS OF THINGS!! this version does not work yet -2003-10-18 04:24 Enrico Scholz +2003-10-21 13:24 Enrico Scholz - * src/pipe-sync.c, scripts/vserver-build: + * util-vserver/src/vunify.cc: use 'Vserver' class instead of + 'string' + use getopt() + reindented large parts - initial checkin +2003-10-21 13:23 Enrico Scholz -2003-10-18 04:23 Enrico Scholz + * util-vserver/src/vutil.cc: use 'Vserver' class instead of + 'string' + fixed format-string error - * Makefile.am: +2003-10-21 13:23 Enrico Scholz - - gnit'ified it + * util-vserver/src/vutil.h, util-vserver/src/vutil.p: use 'Vserver' + class instead of 'string' -2003-10-18 04:23 Enrico Scholz +2003-10-21 13:22 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/src/wrappers.h: make it compilable with non-C99 + compilers - - gnit'ified it - - added vserver-build +2003-10-20 23:07 Enrico Scholz -2003-10-18 04:22 Enrico Scholz + * util-vserver/doc/configuration.xml: documented 'ulimits' + directory - * sysv/Makefile-files: +2003-10-20 22:58 Enrico Scholz - gnit'ified it + * util-vserver/scripts/vunify.old.sh: as the name ('*old*') is + saying already: it is old and obsoleted... -2003-10-18 03:54 Enrico Scholz +2003-10-20 22:45 Enrico Scholz - * lib/checkversion.c: + * util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop, + util-vserver/scripts/vserver.suexec: added ulimits support - restored compatibility for case when old syscall interface uses the - new syscall-number (merged from SYSCALL_SWITCH branch) +2003-10-20 22:45 Enrico Scholz -2003-10-17 23:07 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added + _EXEC_ULIMIT - * configure.ac: +2003-10-20 22:44 Enrico Scholz - add '#include "compat.h'" at bottom of config.h - version 0.23.191 + * util-vserver/src/exec-ulimit.c: work also, when ulimit-directory + does not exist -2003-10-17 23:06 Enrico Scholz +2003-10-20 22:30 Enrico Scholz - * Makefile.am: + * util-vserver/src, util-vserver/src/.cvsignore: added exec-ulimit - cleaned up pathsubst rule +2003-10-20 22:30 Enrico Scholz -2003-10-17 23:05 Enrico Scholz + * util-vserver/src/exec-ulimit.c: initial checkin - * scripts/util-vserver-vars.pathsubst: +2003-10-20 22:29 Enrico Scholz - added _CHROOT_CAT + * util-vserver/src/Makefile-files: added exec-ulimit.c -2003-10-17 23:05 Enrico Scholz +2003-10-20 22:29 Enrico Scholz - * scripts/vserver-init: + * util-vserver/src/wrappers.h: Egetrlimit(),Esetrlimit(): added - create link to reverse ctx->vserver mapping +2003-10-20 21:30 Enrico Scholz -2003-10-17 23:05 Enrico Scholz + * util-vserver/src/reducecap.c: use capability support from the + library as far as possible - * scripts/vserver.functions: +2003-10-20 21:29 Enrico Scholz - - removed '#! /bin/bash' header - - added separate CHCONTEXT_DISCONNECT option - - use default runlevels only when sysv init-style is used - - create/empty mtab file before mounting the vserver + * util-vserver/src/capchroot.c, util-vserver/src/chcontext.c: use + capability support from the library instead of including + kernel-headers -2003-10-17 23:03 Enrico Scholz +2003-10-20 21:28 Enrico Scholz - * scripts/vserver.start: + * util-vserver/lib/capabilities.c: initial checkin - - removed '#! /bin/bash' header - - added separate CHCONTEXT_DISCONNECT option +2003-10-20 21:28 Enrico Scholz -2003-10-17 23:03 Enrico Scholz + * util-vserver/lib/vserver.h: added capability support - * scripts/vserver.stop: +2003-10-20 21:28 Enrico Scholz - - removed '#! /bin/bash' header - - disable interfaces when vserver is not running + * util-vserver/lib/Makefile-files: added support for '-DNDEBUG' in + the library + added capability.c -2003-10-17 23:02 Enrico Scholz +2003-10-20 21:28 Enrico Scholz - * scripts/vserver.suexec: + * util-vserver/configure.ac: added support for '-DNDEBUG' in the + library - removed '#! /bin/bash' header +2003-10-20 18:08 Enrico Scholz -2003-10-17 23:02 Enrico Scholz + * util-vserver/Makefile.am: added PKGSTATEDIR substitution - * src/.cvsignore: +2003-10-20 18:07 Enrico Scholz - added chroot-cat + * util-vserver/doc/cfgdirdoc.dtd, + util-vserver/doc/configuration.xml, + util-vserver/scripts/vserver-build.apt-rpm, + util-vserver/scripts/vserver-build.functions, + util-vserver/scripts/vserver-build.functions.apt, + util-vserver/scripts/vserver-build.functions.rpm, + util-vserver/scripts/vserver-setup.functions: initial checkin -2003-10-17 23:02 Enrico Scholz +2003-10-20 18:06 Enrico Scholz - * sysv/vservers.subst: + * util-vserver/scripts/Makefile-files: - removed vserver-init file + - added vserver-build* files - stop vservers only, when they do not have the ONSTOP flag +2003-10-20 18:05 Enrico Scholz -2003-10-17 23:01 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: - added + PKGSTATEDIR, RUNDIR, LIB_VSERVER_SETUP_FUNCTIONS, + LIB_VSERVER_BUILD_FUNCTIONS* and _VSERVER variables + - added WORKAROUND_APT_DBPATH variable - * sysv/Makefile-files: +2003-10-20 18:04 Enrico Scholz - removed some noise from the substrule + * util-vserver/scripts/vserver-build: implemented it... -2003-10-17 22:31 Enrico Scholz +2003-10-20 18:04 Enrico Scholz - * src/Makefile-files: + * util-vserver/scripts/vserver: added '--sync' and '--verbose' + options + sync the 'stop' stage on restart + fixed invocation of 'vserver-build' - added chroot-cat +2003-10-20 18:02 Enrico Scholz -2003-10-17 22:31 Enrico Scholz + * util-vserver/scripts/vapt-get, util-vserver/scripts/vrpm: made it + more mature by using arrays for the vserver-list - * src/chroot-cat.c: +2003-10-20 18:01 Enrico Scholz - initial checkin + * util-vserver/scripts/vserver.functions: - moved + getFileValue/getFileArray from 'vserver.functions' into + 'functions' -2003-10-17 22:31 Enrico Scholz +2003-10-20 18:00 Enrico Scholz - * src/wrappers.h: + * util-vserver/scripts/functions: - moved getFileValue/getFileArray + from 'vserver.functions' into 'functions' + - implemented '/' style vserver specification + - made getAllVservers more mature by using arrays - Ereadlink(), Esymlink(): added +2003-10-20 17:57 Enrico Scholz -2003-10-17 22:30 Enrico Scholz + * util-vserver/scripts/vserver-init: moved 'vserver-init' + functionality into the more general vserver-build* + files - * src/wrappers-vserver.h: +2003-10-18 02:31 Enrico Scholz - - added Evc_X_getctx() wrapper + * util-vserver/configure.ac: gnit'ified -2003-10-17 22:30 Enrico Scholz +2003-10-18 02:31 Enrico Scholz - * src/secure-mount.c: + * util-vserver/src, util-vserver/src/.cvsignore: added pipe-sync - - removed '#include '; it's now in global - - fixed problems with dietlibc's strtok_r() implementation - - do not set '-o <...>' mount-flag when 'defaults' is the only flag +2003-10-18 02:30 Enrico Scholz -2003-10-17 22:29 Enrico Scholz + * util-vserver/src/Makefile-files: gnit'ified + added pipe-sync - * src/save_ctxinfo.c: +2003-10-18 02:30 Enrico Scholz - - removed '#include '; it's now in global - - use "wrappers.h" functions - - implemented reverse-symlink file + * util-vserver/src/chroot-cat.c: minor cosmetical changes -2003-10-17 22:27 Enrico Scholz +2003-10-18 02:29 Enrico Scholz - * lib/: getctx.c, getinitpid.c, getprocentry-legacy.c: + * util-vserver/src/chroot-rm.c: use "wrapper.h" - - moved pid==0 handling into getprocentry-legacy.c and access /proc/self - instead of /proc/ there; this solves problems when 'fakeinit' - flag is used - - removed '#include '; it's now in global +2003-10-18 02:26 Enrico Scholz -2003-10-17 02:46 Enrico Scholz + * util-vserver/src/wrappers.h: Eunlink(): added - * scripts/Makefile-files: +2003-10-18 02:25 Enrico Scholz - added vserver-legacy and vserver.suexec + * util-vserver/scripts/util-vserver-vars.pathsubst: added + $_VSERVER_BUILD -2003-10-17 02:45 Enrico Scholz +2003-10-18 02:25 Enrico Scholz - * src/ctx-kill.c: + * util-vserver/scripts/vserver: added help/version + added 'build' option + made 'running' silently - kill init-pid - more sanity checks +2003-10-18 02:24 Enrico Scholz -2003-10-17 02:45 Enrico Scholz + * util-vserver/scripts/vserver-build, util-vserver/src/pipe-sync.c: + initial checkin - * scripts/vserver.stop: +2003-10-18 02:23 Enrico Scholz - added support for kill-signal sequence + * util-vserver/Makefile.am: - gnit'ified it -2003-10-17 02:44 Enrico Scholz +2003-10-18 02:23 Enrico Scholz - * scripts/vserver.functions: + * util-vserver/scripts/Makefile-files: - gnit'ified it + - added vserver-build - added getEnterShell() function - added support for kill-signal sequence +2003-10-18 02:22 Enrico Scholz -2003-10-17 02:43 Enrico Scholz + * util-vserver/sysv/Makefile-files: gnit'ified it - * scripts/vserver: +2003-10-18 01:54 Enrico Scholz - - added legacy support - - added support for suexec,restart,condrestart,exec,chkconfig,enter,running - and status + * util-vserver/lib/checkversion.c: restored compatibility for case + when old syscall interface uses the + new syscall-number (merged from SYSCALL_SWITCH branch) -2003-10-17 02:42 Enrico Scholz +2003-10-17 21:07 Enrico Scholz - * scripts/util-vserver-vars.pathsubst: + * util-vserver/configure.ac: add '#include "compat.h'" at bottom of + config.h + version 0.23.191 - added _CTX_KILL, _FILETIME and _VSERVER_LEGACY +2003-10-17 21:06 Enrico Scholz -2003-10-17 02:42 Enrico Scholz + * util-vserver/Makefile.am: cleaned up pathsubst rule - * scripts/: vserver-legacy, vserver.suexec: +2003-10-17 21:05 Enrico Scholz - initial checkin + * util-vserver/scripts/util-vserver-vars.pathsubst: added + _CHROOT_CAT -2003-10-16 17:10 Enrico Scholz +2003-10-17 21:05 Enrico Scholz - * tests/.cvsignore: + * util-vserver/scripts/vserver-init: create link to reverse + ctx->vserver mapping - added getinitpid +2003-10-17 21:05 Enrico Scholz -2003-10-16 17:09 Enrico Scholz + * util-vserver/scripts/vserver.functions: - removed '#! /bin/bash' + header + - added separate CHCONTEXT_DISCONNECT option + - use default runlevels only when sysv init-style is used + - create/empty mtab file before mounting the vserver - * lib/Makefile-files: +2003-10-17 21:03 Enrico Scholz - added int2str.c + * util-vserver/scripts/vserver.start: - removed '#! /bin/bash' + header + - added separate CHCONTEXT_DISCONNECT option -2003-10-16 17:08 Enrico Scholz +2003-10-17 21:03 Enrico Scholz - * lib/internal.h: + * util-vserver/scripts/vserver.stop: - removed '#! /bin/bash' + header + - disable interfaces when vserver is not running - added utilvserver_int2str() +2003-10-17 21:02 Enrico Scholz -2003-10-16 17:08 Enrico Scholz + * util-vserver/scripts/vserver.suexec: removed '#! /bin/bash' + header - * lib/int2str.c, tests/getinitpid.c: +2003-10-17 21:02 Enrico Scholz - initial checkin + * util-vserver/src, util-vserver/src/.cvsignore: added chroot-cat -2003-10-16 17:07 Enrico Scholz +2003-10-17 21:02 Enrico Scholz - * tests/getctx.c: + * util-vserver/sysv/vservers.subst: stop vservers only, when they + do not have the ONSTOP flag - removed all traces of +2003-10-17 21:01 Enrico Scholz -2003-10-16 17:07 Enrico Scholz + * util-vserver/sysv/Makefile-files: removed some noise from the + substrule - * tests/Makefile-files: +2003-10-17 20:31 Enrico Scholz - generalized building with dietlibc - added getinitpid + * util-vserver/src/Makefile-files: added chroot-cat -2003-10-16 16:49 Enrico Scholz +2003-10-17 20:31 Enrico Scholz - * Makefile.am, src/Makefile-files: + * util-vserver/src/chroot-cat.c: initial checkin - generalized building with dietlibc +2003-10-17 20:31 Enrico Scholz -2003-10-16 16:06 Enrico Scholz + * util-vserver/src/wrappers.h: Ereadlink(), Esymlink(): added - * lib/Makefile-files: +2003-10-17 20:30 Enrico Scholz - added getinitpid* files - added getprocentry* files - added utils-legacy.h + * util-vserver/src/wrappers-vserver.h: - added Evc_X_getctx() + wrapper -2003-10-16 16:02 Enrico Scholz +2003-10-17 20:30 Enrico Scholz - * lib/: getinitpid-compat.hc, getinitpid-legacy.hc, getinitpid.c, - getprocentry-legacy.c, utils-legacy.h: + * util-vserver/src/secure-mount.c: - removed '#include '; + it's now in global + - fixed problems with dietlibc's strtok_r() implementation + - do not set '-o <...>' mount-flag when 'defaults' is the only + flag - initial checkin +2003-10-17 20:29 Enrico Scholz -2003-10-16 16:02 Enrico Scholz + * util-vserver/src/save_ctxinfo.c: - removed '#include '; + it's now in global + - use "wrappers.h" functions + - implemented reverse-symlink file - * src/save_ctxinfo.c, tests/getctx.c: +2003-10-17 20:27 Enrico Scholz - s!vc_X_getcctx()!vc_X_getctx(0)! + * util-vserver/lib/getctx.c, util-vserver/lib/getinitpid.c, + util-vserver/lib/getprocentry-legacy.c: - moved pid==0 handling + into getprocentry-legacy.c and access /proc/self + instead of /proc/ there; this solves problems when + 'fakeinit' + flag is used + - removed '#include '; it's now in global -2003-10-16 16:01 Enrico Scholz +2003-10-17 00:46 Enrico Scholz - * lib/vserver.h: + * util-vserver/scripts/Makefile-files: added vserver-legacy and + vserver.suexec - added vc_X_getinitpid() pseudo-syscall - removed vc_X_getcctx() since it is obsoleted by vc_X_getctx(0) now +2003-10-17 00:45 Enrico Scholz -2003-10-16 16:00 Enrico Scholz + * util-vserver/src/ctx-kill.c: kill init-pid + more sanity checks - * lib/syscall-legacy.hc: +2003-10-17 00:45 Enrico Scholz - removed all traces of usage + * util-vserver/scripts/vserver.stop: added support for kill-signal + sequence -2003-10-16 15:59 Enrico Scholz +2003-10-17 00:44 Enrico Scholz - * lib/getctx.c: + * util-vserver/scripts/vserver.functions: added getEnterShell() + function + added support for kill-signal sequence - cleanups - recognize pid==0 as current pid +2003-10-17 00:43 Enrico Scholz -2003-10-16 15:59 Enrico Scholz + * util-vserver/scripts/vserver: - added legacy support + - added support for + suexec,restart,condrestart,exec,chkconfig,enter,running + and status - * lib/getctx-legacy.hc: +2003-10-17 00:42 Enrico Scholz - use new utilvserver_getProcEntry() function - recall vc_X_getctx_legacy() automatically when buffersize was too small + * util-vserver/scripts/util-vserver-vars.pathsubst: added + _CTX_KILL, _FILETIME and _VSERVER_LEGACY -2003-10-16 04:45 Enrico Scholz +2003-10-17 00:42 Enrico Scholz - * Makefile.am: + * util-vserver/scripts/vserver-legacy, + util-vserver/scripts/vserver.suexec: initial checkin - added substitution for UMOUNT +2003-10-16 15:10 Enrico Scholz -2003-10-16 04:45 Enrico Scholz + * util-vserver/tests, util-vserver/tests/.cvsignore: added + getinitpid - * src/.cvsignore: +2003-10-16 15:09 Enrico Scholz - updated + * util-vserver/lib/Makefile-files: added int2str.c -2003-10-16 04:45 Enrico Scholz +2003-10-16 15:08 Enrico Scholz - * src/secure-mount.c: + * util-vserver/lib/internal.h: added utilvserver_int2str() - small signed/unsigned fixes for pedantic warning setups - give '--help' message out on fd 1 instead of 2 +2003-10-16 15:08 Enrico Scholz -2003-10-16 04:44 Enrico Scholz + * util-vserver/lib/int2str.c, util-vserver/tests/getinitpid.c: + initial checkin - * src/save_ctxinfo.c: +2003-10-16 15:07 Enrico Scholz - small signed/unsigned fixes for pedantic warning setups + * util-vserver/tests/getctx.c: removed all traces of -2003-10-16 04:44 Enrico Scholz +2003-10-16 15:07 Enrico Scholz - * src/new-namespace.c: + * util-vserver/tests/Makefile-files: generalized building with + dietlibc + added getinitpid - use "wrappers.h" - use STACK_START macro +2003-10-16 14:49 Enrico Scholz -2003-10-16 04:43 Enrico Scholz + * util-vserver/Makefile.am, util-vserver/src/Makefile-files: + generalized building with dietlibc - * src/listdevip.c: +2003-10-16 14:06 Enrico Scholz - small fixes for pedantic warning-setups + * util-vserver/lib/Makefile-files: added getinitpid* files + added getprocentry* files + added utils-legacy.h -2003-10-16 04:39 Enrico Scholz +2003-10-16 14:02 Enrico Scholz - * src/: ctx-kill.c, compat-pivot_root.h, secure-umount.c, - stack-start.h, wrappers-vserver.h, wrappers.h: + * util-vserver/lib/getinitpid-compat.hc, + util-vserver/lib/getinitpid-legacy.hc, + util-vserver/lib/getinitpid.c, + util-vserver/lib/getprocentry-legacy.c, + util-vserver/lib/utils-legacy.h: initial checkin - initial checkin +2003-10-16 14:02 Enrico Scholz -2003-10-16 04:38 Enrico Scholz + * util-vserver/src/save_ctxinfo.c, util-vserver/tests/getctx.c: + s!vc_X_getcctx()!vc_X_getctx(0)! - * src/Makefile-files: +2003-10-16 14:01 Enrico Scholz - added secure-umount + ctx-kill programs - added lots of headers - generalized dietlibc handling + * util-vserver/lib/vserver.h: added vc_X_getinitpid() + pseudo-syscall + removed vc_X_getcctx() since it is obsoleted by vc_X_getctx(0) + now -2003-10-16 04:36 Enrico Scholz +2003-10-16 14:00 Enrico Scholz - * scripts/: vserver, vserver.functions, vserver.start, - vserver.stop, functions: + * util-vserver/lib/syscall-legacy.hc: removed all traces of + usage - basic 'vserver ... start|stop' function should work now... +2003-10-16 13:59 Enrico Scholz -2003-10-16 04:34 Enrico Scholz + * util-vserver/lib/getctx.c: cleanups + recognize pid==0 as current pid - * scripts/util-vserver-vars.pathsubst: +2003-10-16 13:59 Enrico Scholz - added _SECURE_UMOUNT and _UMOUNT + * util-vserver/lib/getctx-legacy.hc: use new + utilvserver_getProcEntry() function + recall vc_X_getctx_legacy() automatically when buffersize was too + small -2003-10-16 04:34 Enrico Scholz +2003-10-16 02:45 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/Makefile.am: added substitution for UMOUNT - added vservers.{functions,stop} +2003-10-16 02:45 Enrico Scholz -2003-10-16 04:33 Enrico Scholz + * util-vserver/src, util-vserver/src/.cvsignore: updated - * lib/vserver.h: +2003-10-16 02:45 Enrico Scholz - added lots of S_CTX_INFO_* macros + * util-vserver/src/secure-mount.c: small signed/unsigned fixes for + pedantic warning setups + give '--help' message out on fd 1 instead of 2 -2003-10-16 04:32 Enrico Scholz +2003-10-16 02:44 Enrico Scholz - * lib/Makefile-files: + * util-vserver/src/save_ctxinfo.c: small signed/unsigned fixes for + pedantic warning setups - added missing 'lib/internal.h' +2003-10-16 02:44 Enrico Scholz -2003-10-16 04:31 Enrico Scholz + * util-vserver/src/new-namespace.c: use "wrappers.h" + use STACK_START macro - * pathconfig.h.pathsubst: +2003-10-16 02:43 Enrico Scholz - added UMOUNT_PROG macro + * util-vserver/src/listdevip.c: small fixes for pedantic + warning-setups -2003-10-16 04:31 Enrico Scholz +2003-10-16 02:42 Enrico Scholz - * configure.ac: + * util-vserver/src/compat-pivot_root.h, + util-vserver/src/ctx-kill.c, util-vserver/src/secure-umount.c, + util-vserver/src/stack-start.h, + util-vserver/src/wrappers-vserver.h, util-vserver/src/wrappers.h: + initial checkin - added check for UMOUNT - added pedantic warn-flags - added template for HAVE_GROWING_STACK check +2003-10-16 02:38 Enrico Scholz -2003-10-16 04:29 Enrico Scholz + * util-vserver/src/Makefile-files: added secure-umount + ctx-kill + programs + added lots of headers + generalized dietlibc handling - * compat.h: +2003-10-16 02:36 Enrico Scholz - do '#undef inline' for '--std=c99' dietlibc compilations + * util-vserver/scripts/functions, util-vserver/scripts/vserver, + util-vserver/scripts/vserver.functions, + util-vserver/scripts/vserver.start, + util-vserver/scripts/vserver.stop: basic 'vserver ... start|stop' + function should work now... -2003-10-14 20:51 Enrico Scholz +2003-10-16 02:34 Enrico Scholz - * src/rpm-fake.c: + * util-vserver/scripts/util-vserver-vars.pathsubst: added + _SECURE_UMOUNT and _UMOUNT - use vc_init_internal_legacy() to initialize legacy-lib without parsing - /proc +2003-10-16 02:34 Enrico Scholz -2003-10-14 20:48 Enrico Scholz + * util-vserver/scripts/Makefile-files: added + vservers.{functions,stop} - * lib/syscall-legacy.hc: +2003-10-16 02:33 Enrico Scholz - added inofficial vc_init_internal_legacy() function + * util-vserver/lib/vserver.h: added lots of S_CTX_INFO_* macros -2003-10-14 20:47 Enrico Scholz +2003-10-16 02:32 Enrico Scholz - * lib/: getctx-legacy.hc, syscall.c: + * util-vserver/lib/Makefile-files: added missing 'lib/internal.h' - include "internal.h" +2003-10-16 02:31 Enrico Scholz -2003-10-14 20:46 Enrico Scholz + * util-vserver/pathconfig.h.pathsubst: added UMOUNT_PROG macro - * lib/: internal.h, vserver-internal.h: +2003-10-16 02:31 Enrico Scholz - moved declarations of general functions from vserver-internal.h into - internal.h + * util-vserver/configure.ac: added check for UMOUNT + added pedantic warn-flags + added template for HAVE_GROWING_STACK check -2003-10-14 18:20 Enrico Scholz +2003-10-16 02:29 Enrico Scholz - * lib/: getversion-internal.hc, int2str.c[DEAD], internal.h[DEAD], - syscall.c: + * util-vserver/compat.h: do '#undef inline' for '--std=c99' + dietlibc compilations - Merged with SYSCALL_SWITCH branch (sswitch_merge tag) +2003-10-14 18:51 Enrico Scholz -2003-10-14 18:09 Enrico Scholz + * util-vserver/src/rpm-fake.c: use vc_init_internal_legacy() to + initialize legacy-lib without parsing + /proc - * lib/vserver.h: +2003-10-14 18:48 Enrico Scholz - fixed vc_X_getcctx() + * util-vserver/lib/syscall-legacy.hc: added inofficial + vc_init_internal_legacy() function -2003-10-14 17:59 Enrico Scholz +2003-10-14 18:47 Enrico Scholz - * src/Makefile-files, src/rpm-fake.c, src/save_ctxinfo.c, - tests/getctx.c: + * util-vserver/lib/getctx-legacy.hc, util-vserver/lib/syscall.c: + include "internal.h" - Merged with SYSCALL_SWITCH branch (sswitch_merge tag) +2003-10-14 18:46 Enrico Scholz -2003-10-14 17:40 Enrico Scholz + * util-vserver/lib/internal.h, util-vserver/lib/vserver-internal.h: + moved declarations of general functions from vserver-internal.h + into + internal.h - * .cvsignore, Makefile.am, NEWS, compat.h, configure.ac, - util-vserver.spec.in, lib/Makefile-files, lib/checkversion.c, - lib/getctx-compat.hc, lib/getctx-legacy.hc, lib/getctx.c, - lib/getversion-internal.hc, lib/getversion.c, - lib/safechroot-internal.hc, lib/syscall-compat.hc, - lib/syscall-legacy.hc, lib/syscall.c, lib/uint2str.c, - lib/virtual.h, lib/vserver-internal.h, lib/vserver.h, - scripts/.cvsignore, src/Makefile-files, src/capchroot.c, - src/chbind.c, src/chcontext.c, src/rebootmgr.c, src/reducecap.c, - src/vserver-stat.c, sysv/Makefile-files, tests/chrootsafe.cc: +2003-10-14 16:20 Enrico Scholz - Merged with SYSCALL_SWITCH branch (sswitch_merge tag) + * util-vserver/lib/getversion-internal.hc, + util-vserver/lib/int2str.c, util-vserver/lib/internal.h, + util-vserver/lib/syscall.c: Merged with SYSCALL_SWITCH branch + (sswitch_merge tag) -2003-10-13 22:21 Enrico Scholz +2003-10-14 16:09 Enrico Scholz - * configure.ac: + * util-vserver/lib/vserver.h: fixed vc_X_getcctx() - added rcs2log support - added checks for MS_MOVE and ctx_t - define UTMP_GID as 22 for now +2003-10-14 15:59 Enrico Scholz -2003-10-13 22:04 Enrico Scholz + * util-vserver/src/Makefile-files, util-vserver/src/rpm-fake.c, + util-vserver/src/save_ctxinfo.c, util-vserver/tests/getctx.c: + Merged with SYSCALL_SWITCH branch (sswitch_merge tag) - * Makefile.am: +2003-10-14 15:40 Enrico Scholz - added $(lib_XHDRS) and compat.h - create /var/run/vservers on 'make install' - use m4/pkgconfig.am + * util-vserver, util-vserver/.cvsignore, util-vserver/Makefile.am, + util-vserver/NEWS, util-vserver/compat.h, + util-vserver/configure.ac, util-vserver/lib/Makefile-files, + util-vserver/lib/checkversion.c, + util-vserver/lib/getctx-compat.hc, + util-vserver/lib/getctx-legacy.hc, util-vserver/lib/getctx.c, + util-vserver/lib/getversion-internal.hc, + util-vserver/lib/getversion.c, + util-vserver/lib/safechroot-internal.hc, + util-vserver/lib/syscall-compat.hc, + util-vserver/lib/syscall-legacy.hc, util-vserver/lib/syscall.c, + util-vserver/lib/uint2str.c, util-vserver/lib/virtual.h, + util-vserver/lib/vserver-internal.h, util-vserver/lib/vserver.h, + util-vserver/scripts, util-vserver/scripts/.cvsignore, + util-vserver/src/Makefile-files, util-vserver/src/capchroot.c, + util-vserver/src/chbind.c, util-vserver/src/chcontext.c, + util-vserver/src/rebootmgr.c, util-vserver/src/reducecap.c, + util-vserver/src/vserver-stat.c, + util-vserver/sysv/Makefile-files, + util-vserver/tests/chrootsafe.cc, + util-vserver/util-vserver.spec.in: Merged with SYSCALL_SWITCH + branch (sswitch_merge tag) -2003-10-13 21:55 Enrico Scholz +2003-10-13 20:21 Enrico Scholz - * src/fakerunlevel.c: + * util-vserver/configure.ac: added rcs2log support + added checks for MS_MOVE and ctx_t + define UTMP_GID as 22 for now - made it secure (go into chroot before accessing file) - dietlibc'ized - other cleanups +2003-10-13 20:04 Enrico Scholz -2003-10-13 21:54 Enrico Scholz + * util-vserver/Makefile.am: added $(lib_XHDRS) and compat.h + create /var/run/vservers on 'make install' + use m4/pkgconfig.am - * src/Makefile-files: +2003-10-13 19:55 Enrico Scholz - - added chroot-rm - - compile fakerunlevel with dietlibc + * util-vserver/src/fakerunlevel.c: made it secure (go into chroot + before accessing file) + dietlibc'ized + other cleanups -2003-10-13 21:53 Enrico Scholz +2003-10-13 19:54 Enrico Scholz - * scripts/vserver.start: + * util-vserver/src/Makefile-files: - added chroot-rm + - compile fakerunlevel with dietlibc - made it working... +2003-10-13 19:53 Enrico Scholz -2003-10-13 21:53 Enrico Scholz + * util-vserver/scripts/vserver.start: made it working... - * scripts/vserver-init: +2003-10-13 19:53 Enrico Scholz - - removed unused variables - - added lockfile-creation - - create symlink from /var/lib/rpm to $rpmdb_path (until all apt-versions + * util-vserver/scripts/vserver-init: - removed unused variables + - added lockfile-creation + - create symlink from /var/lib/rpm to $rpmdb_path (until all + apt-versions are having the %_dbpath patch) -2003-10-13 21:51 Enrico Scholz - - * scripts/util-vserver-vars.pathsubst: - - added variables for _CHROOT_RM and _FAKE_RUNLEVEL +2003-10-13 19:51 Enrico Scholz -2003-10-13 21:51 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added variables + for _CHROOT_RM and _FAKE_RUNLEVEL - * scripts/functions: +2003-10-13 19:51 Enrico Scholz - use new secure-mount syntax + * util-vserver/scripts/functions: use new secure-mount syntax -2003-10-13 21:50 Enrico Scholz +2003-10-13 19:50 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/scripts/Makefile-files: added statements to install + vserver.start - added statements to install vserver.start +2003-10-13 19:50 Enrico Scholz -2003-10-13 21:50 Enrico Scholz + * util-vserver/m4/pkgconfig.am: initial checkin - * m4/pkgconfig.am: +2003-10-13 19:50 Enrico Scholz - initial checkin + * util-vserver/m4/changelog.am: conditionalize RCS2LOG variant also -2003-10-13 21:50 Enrico Scholz +2003-10-13 19:46 Enrico Scholz - * m4/changelog.am: + * util-vserver/lib/vserver.h: removed ctx_t typedef; this must be + now done by each package + inidividually. For util-vserver, the declaration is in compat.h + and detection in configure.ac - conditionalize RCS2LOG variant also +2003-10-13 19:45 Enrico Scholz -2003-10-13 21:46 Enrico Scholz + * util-vserver/lib, util-vserver/lib/.cvsignore, util-vserver/src, + util-vserver/src/.cvsignore: updated - * lib/vserver.h: +2003-10-13 19:45 Enrico Scholz - removed ctx_t typedef; this must be now done by each package - inidividually. For util-vserver, the declaration is in compat.h - and detection in configure.ac + * util-vserver/lib/util-vserver.pc.subst, + util-vserver/src/chroot-rm.c: initial checkin -2003-10-13 21:45 Enrico Scholz +2003-10-13 19:44 Enrico Scholz - * lib/.cvsignore, src/.cvsignore: + * util-vserver/compat.h, util-vserver/src/compat.h: moved compat.h + from src/ to toplevel-dir - updated +2003-10-13 19:41 Enrico Scholz -2003-10-13 21:45 Enrico Scholz + * util-vserver/lib/getctx.c, util-vserver/lib/syscall.c, + util-vserver/src/capchroot.c, util-vserver/src/chbind.c, + util-vserver/src/chcontext.c, util-vserver/src/reducecap.c, + util-vserver/src/save_ctxinfo.c, util-vserver/src/secure-mount.c, + util-vserver/src/setctxlimit.c, util-vserver/tests/chrootsafe.cc, + util-vserver/tests/getctx.c: include "compat.h" - * lib/util-vserver.pc.subst, src/chroot-rm.c: +2003-10-13 19:39 Enrico Scholz - initial checkin + * util-vserver/lib/Makefile-files: added PGKCONFIG_FILES -2003-10-13 21:44 Enrico Scholz +2003-10-09 23:07 Enrico Scholz - * compat.h, src/compat.h[DEAD]: + * util-vserver/src/compat.h: initial checkin - moved compat.h from src/ to toplevel-dir +2003-10-09 23:07 Enrico Scholz -2003-10-13 21:39 Enrico Scholz + * util-vserver/configure.ac: use absolute default-path for + /bin/mount since it is required by + execv() in secure-mount - * lib/getctx.c, lib/syscall.c, src/capchroot.c, src/chbind.c, - src/chcontext.c, src/reducecap.c, src/save_ctxinfo.c, - src/secure-mount.c, src/setctxlimit.c, tests/chrootsafe.cc, - tests/getctx.c: +2003-10-09 23:06 Enrico Scholz - include "compat.h" + * util-vserver/pathconfig.h.pathsubst: added MOUNT_PROG -2003-10-13 21:39 Enrico Scholz +2003-10-09 23:06 Enrico Scholz - * lib/Makefile-files: + * util-vserver/tests/getctx.c: added '#include ' - added PGKCONFIG_FILES +2003-10-09 23:05 Enrico Scholz -2003-10-10 01:07 Enrico Scholz - - * src/compat.h: - - initial checkin - -2003-10-10 01:07 Enrico Scholz - - * configure.ac: - - use absolute default-path for /bin/mount since it is required by - execv() in secure-mount - -2003-10-10 01:06 Enrico Scholz - - * pathconfig.h.pathsubst: - - added MOUNT_PROG - -2003-10-10 01:06 Enrico Scholz - - * tests/getctx.c: - - added '#include ' - -2003-10-10 01:05 Enrico Scholz - - * src/util.h: - - - added *_cast macros - - mark writeStr() as __attribute__((__unused__)) to prevent compiler + * util-vserver/src/util.h: - added *_cast macros + - mark writeStr() as __attribute__((__unused__)) to prevent + compiler warnings - - fixed off-by-one error in WRITE_MSG - -2003-10-10 01:04 Enrico Scholz - - * src/secure-mount.c: + - fixed off-by-one error in WRITE_MSG - rewrote it completely; it emulates now nearly the usual mount(8) - functionality but provides the enhanced '--secure', '--chdir ...', - ... options which are needed for vservers +2003-10-09 23:04 Enrico Scholz -2003-10-09 03:52 Enrico Scholz + * util-vserver/src/secure-mount.c: rewrote it completely; it + emulates now nearly the usual mount(8) + functionality but provides the enhanced '--secure', '--chdir + ...', + ... options which are needed for vservers - * doc/cfg.txt: +2003-10-09 01:52 Enrico Scholz - added documentation about and basic vserver-variables + * util-vserver/doc/cfg.txt: added documentation about + and basic vserver-variables -2003-10-09 03:47 Enrico Scholz +2003-10-09 01:47 Enrico Scholz - * scripts/vserver.start: + * util-vserver/scripts/vserver.start: initial checkin - initial checkin +2003-10-09 01:47 Enrico Scholz -2003-10-09 03:47 Enrico Scholz + * util-vserver/scripts/vserver: complete rewrite - * scripts/vserver: +2003-10-09 01:46 Enrico Scholz - complete rewrite + * util-vserver/Makefile.am: added some standard-tools to the + %.pathsubst rules -2003-10-09 03:46 Enrico Scholz +2003-10-09 01:45 Enrico Scholz - * Makefile.am: + * util-vserver/configure.ac: added checks for some standard-tools - added some standard-tools to the %.pathsubst rules +2003-10-09 01:45 Enrico Scholz -2003-10-09 03:45 Enrico Scholz + * util-vserver/tests, util-vserver/tests/.cvsignore, + util-vserver/tests/Makefile-files: added getctx - * configure.ac: +2003-10-09 01:45 Enrico Scholz - added checks for some standard-tools + * util-vserver/src/Makefile-files: added save_ctxinfo and + mask2prefix -2003-10-09 03:45 Enrico Scholz +2003-10-09 01:42 Enrico Scholz - * tests/Makefile-files: + * util-vserver/src, util-vserver/src/.cvsignore: added mask2prefix + and save_ctxinfo - added getctx +2003-10-09 01:41 Enrico Scholz -2003-10-09 03:45 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added CVS tags - * src/Makefile-files: +2003-10-09 01:41 Enrico Scholz - added save_ctxinfo and mask2prefix + * util-vserver/lib/getctx.c, util-vserver/lib/int2str.c, + util-vserver/lib/internal.h, util-vserver/src/mask2prefix.c, + util-vserver/src/save_ctxinfo.c, util-vserver/tests/getctx.c: + initial checkin -2003-10-09 03:42 Enrico Scholz +2003-10-09 01:40 Enrico Scholz - * tests/.cvsignore: + * util-vserver/scripts/util-vserver-vars.pathsubst: added + _CAPCHROOT, _CHBIND, _CHCONTEXT, _MASK2PREFIX, _SAVE_S_CONTEXT, + _SAVE_CTXINFO, _VPS and standard-tool macros - added getctx +2003-10-09 01:38 Enrico Scholz -2003-10-09 03:42 Enrico Scholz + * util-vserver/scripts/functions: added isVserverRunning function - * src/.cvsignore: +2003-10-09 01:38 Enrico Scholz - added mask2prefix and save_ctxinfo + * util-vserver/lib/vserver.h: added CTX_NOCTX macro + added getctx()/getcctx() functions + added ctx_t datatype -2003-10-09 03:41 Enrico Scholz +2003-10-09 01:37 Enrico Scholz - * scripts/util-vserver-vars.pathsubst: + * util-vserver/lib/Makefile-files: added getctx and int2str + + helper headers - added CVS tags +2003-10-06 22:38 Enrico Scholz -2003-10-09 03:41 Enrico Scholz + * util-vserver/distrib/Makefile.am: added install-rules for the + distributions - * src/mask2prefix.c, src/save_ctxinfo.c, tests/getctx.c: +2003-10-06 22:37 Enrico Scholz - initial checkin + * util-vserver/distrib/rh9/apt, + util-vserver/distrib/rh9/apt/rpmpriorities, + util-vserver/distrib/rh9/apt/sources.list: initial checkin -2003-10-09 03:40 Enrico Scholz +2003-10-06 19:49 Enrico Scholz - * scripts/util-vserver-vars.pathsubst: + * util-vserver/util-vserver.spec.in: - fixed Source0 URL + - added -sysv and -devel subpackages + - moved /etc/init.d to %_initrddir - added _CAPCHROOT, _CHBIND, _CHCONTEXT, _MASK2PREFIX, _SAVE_S_CONTEXT, - _SAVE_CTXINFO, _VPS and standard-tool macros +2003-10-06 19:48 Enrico Scholz -2003-10-09 03:38 Enrico Scholz + * util-vserver/Makefile.am: - added more pathsubst variables + - added $(scripts_DTA) - * scripts/functions: +2003-10-06 19:46 Enrico Scholz - added isVserverRunning function + * util-vserver/distrib/defaults/rpm/macros: added notes regarding + %_install_langs and added some other "main"-languages -2003-10-09 03:38 Enrico Scholz +2003-10-06 19:44 Enrico Scholz - * lib/vserver.h: + * util-vserver/doc/cfg.txt: added apps/vunify documentation - added CTX_NOCTX macro - added getctx()/getcctx() functions - added ctx_t datatype +2003-10-06 19:44 Enrico Scholz -2003-10-09 03:37 Enrico Scholz - - * lib/Makefile-files: - - added getctx and int2str + helper headers - -2003-10-09 03:36 Enrico Scholz - - * lib/: getctx.c, int2str.c, internal.h: - - initial checkin - -2003-10-07 00:38 Enrico Scholz - - * distrib/Makefile.am: - - added install-rules for the distributions - -2003-10-07 00:37 Enrico Scholz - - * distrib/rh9/apt/: rpmpriorities, sources.list: - - initial checkin - -2003-10-06 21:49 Enrico Scholz - - * util-vserver.spec.in: - - - fixed Source0 URL - - added -sysv and -devel subpackages - - moved /etc/init.d to %_initrddir - -2003-10-06 21:48 Enrico Scholz - - * Makefile.am: - - - added more pathsubst variables - - added $(scripts_DTA) - -2003-10-06 21:46 Enrico Scholz - - * distrib/defaults/rpm/macros: - - added notes regarding %_install_langs and added some other "main"-languages - -2003-10-06 21:44 Enrico Scholz - - * doc/cfg.txt: - - added apps/vunify documentation - -2003-10-06 21:44 Enrico Scholz - - * scripts/vserver-init: - - - added metadata to track if root-/pkgcfgbase-links shall be made + * util-vserver/scripts/vserver-init: - added metadata to track if + root-/pkgcfgbase-links shall be made relative - - added gpg-key import - - create dev/pts directory - -2003-10-06 21:42 Enrico Scholz - - * scripts/vapt-get: - - improved '--help'/'--version' messages - -2003-10-06 21:42 Enrico Scholz - - * scripts/util-vserver-vars.pathsubst: - - added PACKAGE_* variables - made DISTRIBDIR "$PKGLIBDIR/distributions" (instead of "$PKGLIBDIR") - added _VRPM - reordered the _* variables alphabetically + - added gpg-key import + - create dev/pts directory -2003-10-06 21:40 Enrico Scholz +2003-10-06 19:42 Enrico Scholz - * scripts/Makefile-files: + * util-vserver/scripts/vapt-get: improved '--help'/'--version' + messages - installed missing files (functions, vapt-get*, vrpm*) +2003-10-06 19:42 Enrico Scholz -2003-10-02 17:35 Enrico Scholz + * util-vserver/scripts/util-vserver-vars.pathsubst: added PACKAGE_* + variables + made DISTRIBDIR "$PKGLIBDIR/distributions" (instead of + "$PKGLIBDIR") + added _VRPM + reordered the _* variables alphabetically - * src/secure-mount.c: +2003-10-06 19:40 Enrico Scholz - rewrote it completely + * util-vserver/scripts/Makefile-files: installed missing files + (functions, vapt-get*, vrpm*) -2003-10-02 17:35 Enrico Scholz +2003-10-02 15:35 Enrico Scholz - * src/rpm-fake.c: + * util-vserver/src/secure-mount.c: rewrote it completely - - set default-signal handler for SIGCHLD - - minor cosmetical cleanups - - use wait4(2) instead of waitpid(2) +2003-10-02 15:35 Enrico Scholz -2003-10-02 17:28 Enrico Scholz + * util-vserver/src/rpm-fake.c: - set default-signal handler for + SIGCHLD + - minor cosmetical cleanups + - use wait4(2) instead of waitpid(2) - * scripts/vserver-init: +2003-10-02 15:28 Enrico Scholz - - renamed 'makeInode' to 'makeDevEntry' which is more flexible - - added workaround for + * util-vserver/scripts/vserver-init: - renamed 'makeInode' to + 'makeDevEntry' which is more flexible + - added workaround for https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=106057 - - content of *all* rpm and apt template directories will be copied now - - use '-y' flag on 'apt-get' invocation + - content of *all* rpm and apt template directories will be + copied now + - use '-y' flag on 'apt-get' invocation -2003-10-02 17:25 Enrico Scholz +2003-10-02 15:25 Enrico Scholz - * scripts/vrpm-preload: + * util-vserver/scripts/vapt-get, util-vserver/scripts/vrpm, + util-vserver/scripts/vrpm-worker: minor cosmetical cleanups - minor cosmetical cleanups - added copyright +2003-10-02 15:25 Enrico Scholz -2003-10-02 17:24 Enrico Scholz + * util-vserver/scripts/vrpm-preload: minor cosmetical cleanups + added copyright - * scripts/vapt-get-worker: +2003-10-02 15:24 Enrico Scholz - minor cosmetical cleanups - removed debug code + * util-vserver/scripts/vapt-get-worker: minor cosmetical cleanups + removed debug code -2003-10-02 17:23 Enrico Scholz +2003-10-02 15:23 Enrico Scholz - * scripts/: vapt-get, vrpm, vrpm-worker: - - minor cosmetical cleanups - -2003-10-02 17:23 Enrico Scholz - - * scripts/: functions, util-vserver-vars.pathsubst: - - added workaround for https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=106057 - -2003-10-01 12:48 Enrico Scholz - - * .cvsignore: - - updated to reflect changes in CVSROOT/cvsignores - -2003-10-01 12:44 Enrico Scholz + * util-vserver/scripts/functions, + util-vserver/scripts/util-vserver-vars.pathsubst: added + workaround for + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=106057 - * man/Makefile-files: +2003-10-01 10:48 Enrico Scholz - removed last traces of newvserver + * util-vserver, util-vserver/.cvsignore: updated to reflect changes + in CVSROOT/cvsignores -2003-10-01 12:43 Enrico Scholz +2003-10-01 10:44 Enrico Scholz - * m4/changelog.am, configure.ac: + * util-vserver/man/Makefile-files: removed last traces of + newvserver - added cvs2cl support +2003-10-01 10:43 Enrico Scholz -2003-10-01 12:43 Enrico Scholz + * util-vserver/configure.ac, util-vserver/m4/changelog.am: added + cvs2cl support - * scripts/Makefile-files: +2003-10-01 10:43 Enrico Scholz - - changed pathsubst rules so that files will not be updated on every + * util-vserver/scripts/Makefile-files: - changed pathsubst rules so + that files will not be updated on every 'make' anymore -2003-10-01 12:42 Enrico Scholz - - * Makefile.am: +2003-10-01 10:42 Enrico Scholz - - added cvs2cl support - - changed pathsubst rules so that files will not be updated on every + * util-vserver/Makefile.am: - added cvs2cl support + - changed pathsubst rules so that files will not be updated on + every 'make' anymore -2003-10-01 02:55 Enrico Scholz - - * src/rpm-fake.c: - - explicitly cast result of dlsym() to prevent compiler warnings - -2003-10-01 02:54 Enrico Scholz - - * src/new-namespace.c: - - small fix in error-message - -2003-10-01 02:47 Enrico Scholz +2003-10-01 00:55 Enrico Scholz - * src/rebootmgr.c: + * util-vserver/src/rpm-fake.c: explicitly cast result of dlsym() to + prevent compiler warnings - fixed small size_t vs. socklen_t type-clash +2003-10-01 00:54 Enrico Scholz -2003-10-01 02:23 Enrico Scholz + * util-vserver/src/new-namespace.c: small fix in error-message - * Makefile.am, configure.ac, .cvsignore: +2003-10-01 00:50 Enrico Scholz - renamed vserver.spec.in to util-vserver.spec.in + * util-vserver/src/rebootmgr.c: fixed small size_t vs. socklen_t + type-clash -2003-10-01 02:18 Enrico Scholz +2003-10-01 00:23 Enrico Scholz - * newvserver.defaults[DEAD], man/newvserver.8[DEAD]: + * util-vserver, util-vserver/.cvsignore, util-vserver/Makefile.am, + util-vserver/configure.ac: renamed vserver.spec.in to + util-vserver.spec.in - removed since linuxconf support was dropped +2003-10-01 00:20 Enrico Scholz -2003-10-01 01:52 Enrico Scholz + * util-vserver/man/newvserver.8, util-vserver/newvserver.defaults: + removed since linuxconf support was dropped - * util-vserver.spec.in, vserver.spec.in[DEAD]: +2003-09-30 23:52 Enrico Scholz - renamed vserver.spec.in to util-vserver.spec.in and updated it + * util-vserver/util-vserver.spec.in, util-vserver/vserver.spec.in: + renamed vserver.spec.in to util-vserver.spec.in and updated it -2003-09-30 22:46 Enrico Scholz +2003-09-30 20:46 Enrico Scholz - * src/: new-namespace.c, secure-mount.c: + * util-vserver/src/new-namespace.c, + util-vserver/src/secure-mount.c: modified showVersion() to show + current version instead of an hardcoded + value - modified showVersion() to show current version instead of an hardcoded - value +2003-09-30 20:28 Enrico Scholz -2003-09-30 22:28 Enrico Scholz + * util-vserver, util-vserver/.cvsignore: updated - * .cvsignore: +2003-09-30 20:27 Enrico Scholz - updated + * util-vserver/Makefile.am: added general rule for %.pathsubst + files + updated file-lists -2003-09-30 22:27 Enrico Scholz +2003-09-30 20:26 Enrico Scholz - * Makefile.am: + * util-vserver/configure.ac: added distrib/Makefile - added general rule for %.pathsubst files - updated file-lists +2003-09-30 20:26 Enrico Scholz -2003-09-30 22:26 Enrico Scholz + * util-vserver/pathconfig.h.pathsubst: initial checkin - * configure.ac: +2003-09-30 20:24 Enrico Scholz - added distrib/Makefile - -2003-09-30 22:26 Enrico Scholz - - * pathconfig.h.pathsubst: - - initial checkin - -2003-09-30 22:24 Enrico Scholz - - * scripts/Makefile-files: - - - renamed util-vserver-vars.subst to util-vserver-vars.pathsubst; this + * util-vserver/scripts/Makefile-files: - renamed + util-vserver-vars.subst to util-vserver-vars.pathsubst; this makes it easier to use general makefile-rules - - removed the old rules for util-vserver-vars - -2003-09-30 22:23 Enrico Scholz - - * scripts/: util-vserver-vars.pathsubst, - util-vserver-vars.subst[DEAD]: + - removed the old rules for util-vserver-vars - renamed util-vserver-vars.subst to util-vserver-vars.pathsubst; this - makes it easier to use general makefile-rules +2003-09-30 20:23 Enrico Scholz -2003-09-30 22:16 Enrico Scholz - - * src/: capchroot.c, chbind.c, chcontext.c, fakerunlevel.c, - filetime.c, ifspec.c, rebootmgr.c, reducecap.c, setctxlimit.c, - showperm.c, vdu.c, vreboot.c, vserver-stat.c: + * util-vserver/scripts/util-vserver-vars.pathsubst, + util-vserver/scripts/util-vserver-vars.subst: renamed + util-vserver-vars.subst to util-vserver-vars.pathsubst; this + makes it easier to use general makefile-rules - include +2003-09-30 20:16 Enrico Scholz -2003-09-30 22:13 Enrico Scholz + * util-vserver/src/capchroot.c, util-vserver/src/chbind.c, + util-vserver/src/chcontext.c, util-vserver/src/fakerunlevel.c, + util-vserver/src/filetime.c, util-vserver/src/ifspec.c, + util-vserver/src/rebootmgr.c, util-vserver/src/reducecap.c, + util-vserver/src/setctxlimit.c, util-vserver/src/showperm.c, + util-vserver/src/vdu.c, util-vserver/src/vreboot.c, + util-vserver/src/vserver-stat.c: include - * src/: vbuild.cc, vcheck.cc, vfiles.cc, vunify.cc, vutil.cc: +2003-09-30 20:13 Enrico Scholz - - renamed 'PACKAGE' class to 'Package' to avoid naming-clashes with + * util-vserver/src/vbuild.cc, util-vserver/src/vcheck.cc, + util-vserver/src/vfiles.cc, util-vserver/src/vunify.cc, + util-vserver/src/vutil.cc: - renamed 'PACKAGE' class to 'Package' + to avoid naming-clashes with the standard autoconf macro - - include - -2003-09-30 22:12 Enrico Scholz - - * src/: vutil.h, vutil.p: + - include - renamed 'PACKAGE' class to 'Package' to avoid naming-clashes with the - standard autoconf macro +2003-09-30 20:12 Enrico Scholz -2003-09-30 21:25 Enrico Scholz + * util-vserver/src/vutil.h, util-vserver/src/vutil.p: renamed + 'PACKAGE' class to 'Package' to avoid naming-clashes with the + standard autoconf macro - * src/rpm-fake.c: +2003-09-30 19:25 Enrico Scholz - - removed debug-output - - do not fail on umount() errors; CLONE_NEWNS has unexpected/strange + * util-vserver/src/rpm-fake.c: - removed debug-output + - do not fail on umount() errors; CLONE_NEWNS has + unexpected/strange behavior in combination with chroot() so that mountpoints within chroots *can* disappear automatically -2003-09-30 21:12 Enrico Scholz - - * Makefile.am: - - use recursive make for distrib: added it to SUBDIRS and remove old - $(distrib_*) variables - -2003-09-30 20:17 Enrico Scholz - - * distrib/.cvsignore: - - initial checkin - -2003-09-30 20:11 Enrico Scholz - - * distrib/: Makefile-files[DEAD], Makefile.am, - install-mdk8.2[DEAD], install-post.sh[DEAD], - install-pre.sh[DEAD], install-rh7.2[DEAD], install-rh7.3[DEAD], - install-rh8.0[DEAD], install-rh9.0[DEAD], mdk8.2-minimum[DEAD], - rh7.3-minimum[DEAD], rh8.0-minimum[DEAD], rh9.0-minimum[DEAD], - sample.conf[DEAD], sample.sh[DEAD], defaults/devs, - defaults/rpm/macros, rh9/pkgs/01, rh9/pkgs/02: - - Replaced the install-* and *-minimum files with configuration files - for the new vserver-init tool in the scripts directory. To ease the - 'install:'-make target, it is necessarily to use recursive make for - this directory. - -2003-09-30 18:01 Enrico Scholz - - * configure.ac: - - added dietlibc support - version 0.23.89.1 - -2003-09-30 18:00 Enrico Scholz - - * .cvsignore: - - added Makefile - -2003-09-30 17:59 Enrico Scholz - - * scripts/.cvsignore, scripts/functions, scripts/vapt-get, - scripts/vapt-get-worker, scripts/vrpm-preload, - scripts/vrpm-worker, scripts/vserver-init, src/.cvsignore, - src/new-namespace.c, src/rpm-fake.c, src/secure-mount.c, - src/util.h, lib/.cvsignore, sysv/.cvsignore, tests/.cvsignore: - - initial checkin - -2003-09-30 17:58 Enrico Scholz - - * Makefile.am: - - updated to new -devel branch - added dietlibc support - -2003-09-30 17:58 Enrico Scholz - - * src/Makefile-files: - - added secure-mount, new-namespace and rpm-fake.so rules - -2003-09-30 17:56 Enrico Scholz - - * scripts/vrpm: - - replaced with new version - -2003-09-30 17:56 Enrico Scholz - - * scripts/util-vserver-vars.subst: - - added more variables - -2003-09-30 17:56 Enrico Scholz - - * scripts/Makefile-files: - - added more substitutions - -2003-09-30 14:42 Enrico Scholz - - * doc/cfg.txt: - - initial checkin - -2003-09-30 00:01 Enrico Scholz +2003-09-30 19:12 Enrico Scholz - * doc/intro.txt, lib/Makefile-files, lib/syscall.c, lib/vserver.h, - m4/changelog.am, m4/ensc_cflags.m4, m4/gpgsig.am, m4/validate.am, - man/Makefile-files, man/chbind.8, man/chcontext.8, - man/distrib-info.8, man/newvserver.8, man/rebootmgr.8, - man/reducecap.8, man/vps.8, man/vpstree.8, man/vrpm.8, - man/vserver-copy.8, man/vserver-stat.8, man/vserver.8, - man/vtop.8, scripts/Makefile-files, scripts/distrib-info, - scripts/rootshell, scripts/save_s_context, - scripts/util-vserver-vars.subst, scripts/vkill, scripts/vprofile, - scripts/vps, scripts/vpstree, scripts/vrpm, scripts/vserver, - scripts/vserver-copy, scripts/vserverkillall, - scripts/vservers.grabinfo.sh, scripts/vsysvwrapper, scripts/vtop, - scripts/vunify.old.sh, src/Makefile-files, src/capchroot.c, - src/chbind.c, src/chcontext.c, src/fakerunlevel.c, - src/filetime.c, src/ifspec.c, src/listdevip.c, - src/parserpmdump.c, src/readlink.c, src/rebootmgr.c, - src/reducecap.c, src/setctxlimit.c, src/showattr.c, - src/showperm.c, src/vbuild.cc, src/vcheck.cc, src/vdu.c, - src/vfiles.cc, src/vreboot.c, src/vserver-stat.c, src/vunify.cc, - src/vutil.cc, src/vutil.h, src/vutil.p, sysv/Makefile-files, - sysv/rebootmgr.subst, sysv/v_gated.subst, sysv/v_httpd.subst, - sysv/v_named.subst, sysv/v_portmap.subst, sysv/v_sendmail.subst, - sysv/v_smb.subst, sysv/v_sshd.subst, sysv/v_xinetd.subst, - sysv/vservers.conf, sysv/vservers.subst, tests/Makefile-files, - tests/chrootsafe.cc, tests/escaperoot.cc, tests/forkbomb.cc, - tests/testipc.cc, tests/testlimit.cc, tests/testopenf.cc, - vserver.spec.in, distrib/Makefile-files, distrib/install-mdk8.2, - distrib/install-post.sh, distrib/install-pre.sh, - distrib/install-rh7.2, distrib/install-rh7.3, - distrib/install-rh8.0, distrib/install-rh9.0, - distrib/mdk8.2-minimum, distrib/rh7.3-minimum, - distrib/rh8.0-minimum, distrib/rh9.0-minimum, - distrib/sample.conf, distrib/sample.sh, doc/FAQ.txt, - doc/Makefile-files, doc/changelog.txt, .cvsignore, AUTHORS, - Makefile.am, NEWS, README, THANKS, configure.ac, - newvserver.defaults: + * util-vserver/Makefile.am: use recursive make for distrib: added + it to SUBDIRS and remove old + $(distrib_*) variables - initial checkin +2003-09-30 18:17 Enrico Scholz + + * util-vserver/distrib, util-vserver/distrib/.cvsignore: initial + checkin + +2003-09-30 18:11 Enrico Scholz + + * util-vserver/distrib/Makefile-files, + util-vserver/distrib/Makefile.am, util-vserver/distrib/defaults, + util-vserver/distrib/defaults/devs, + util-vserver/distrib/defaults/rpm, + util-vserver/distrib/defaults/rpm/macros, + util-vserver/distrib/install-mdk8.2, + util-vserver/distrib/install-post.sh, + util-vserver/distrib/install-pre.sh, + util-vserver/distrib/install-rh7.2, + util-vserver/distrib/install-rh7.3, + util-vserver/distrib/install-rh8.0, + util-vserver/distrib/install-rh9.0, + util-vserver/distrib/mdk8.2-minimum, + util-vserver/distrib/rh7.3-minimum, + util-vserver/distrib/rh8.0-minimum, util-vserver/distrib/rh9, + util-vserver/distrib/rh9.0-minimum, + util-vserver/distrib/rh9.0.93, util-vserver/distrib/rh9.0.93/apt, + util-vserver/distrib/rh9.0.93/apt/rpmpriorities, + util-vserver/distrib/rh9.0.93/apt/sources.list, + util-vserver/distrib/rh9.0.93/pkgs, + util-vserver/distrib/rh9.0.93/pkgs/01, + util-vserver/distrib/rh9.0.93/pkgs/02, + util-vserver/distrib/rh9/pkgs, util-vserver/distrib/rh9/pkgs/01, + util-vserver/distrib/rh9/pkgs/02, + util-vserver/distrib/sample.conf, util-vserver/distrib/sample.sh: + Replaced the install-* and *-minimum files with configuration + files + for the new vserver-init tool in the scripts directory. To ease + the + 'install:'-make target, it is necessarily to use recursive make + for + this directory. + +2003-09-30 16:01 Enrico Scholz + + * util-vserver/configure.ac: added dietlibc support + version 0.23.89.1 + +2003-09-30 16:00 Enrico Scholz + + * util-vserver, util-vserver/.cvsignore: added Makefile + +2003-09-30 15:59 Enrico Scholz + + * util-vserver/lib, util-vserver/lib/.cvsignore, + util-vserver/scripts, util-vserver/scripts/.cvsignore, + util-vserver/scripts/functions, util-vserver/scripts/vapt-get, + util-vserver/scripts/vapt-get-worker, + util-vserver/scripts/vrpm-preload, + util-vserver/scripts/vrpm-worker, + util-vserver/scripts/vserver-init, util-vserver/src, + util-vserver/src/.cvsignore, util-vserver/src/new-namespace.c, + util-vserver/src/rpm-fake.c, util-vserver/src/secure-mount.c, + util-vserver/src/util.h, util-vserver/sysv, + util-vserver/sysv/.cvsignore, util-vserver/tests, + util-vserver/tests/.cvsignore: initial checkin + +2003-09-30 15:58 Enrico Scholz + + * util-vserver/Makefile.am: updated to new -devel branch + added dietlibc support + +2003-09-30 15:58 Enrico Scholz + + * util-vserver/src/Makefile-files: added secure-mount, + new-namespace and rpm-fake.so rules + +2003-09-30 15:56 Enrico Scholz + + * util-vserver/scripts/vrpm: replaced with new version + +2003-09-30 15:56 Enrico Scholz + + * util-vserver/scripts/util-vserver-vars.subst: added more + variables + +2003-09-30 15:56 Enrico Scholz + + * util-vserver/scripts/Makefile-files: added more substitutions + +2003-09-30 12:42 Enrico Scholz + + * util-vserver/doc/cfg.txt: initial checkin + +2003-09-29 22:01 Enrico Scholz + + * util-vserver, util-vserver/.cvsignore, util-vserver/AUTHORS, + util-vserver/Makefile.am, util-vserver/NEWS, util-vserver/README, + util-vserver/THANKS, util-vserver/configure.ac, + util-vserver/distrib, util-vserver/distrib/Makefile-files, + util-vserver/distrib/install-mdk8.2, + util-vserver/distrib/install-post.sh, + util-vserver/distrib/install-pre.sh, + util-vserver/distrib/install-rh7.2, + util-vserver/distrib/install-rh7.3, + util-vserver/distrib/install-rh8.0, + util-vserver/distrib/install-rh9.0, + util-vserver/distrib/mdk8.2-minimum, + util-vserver/distrib/rh7.3-minimum, + util-vserver/distrib/rh8.0-minimum, + util-vserver/distrib/rh9.0-minimum, + util-vserver/distrib/sample.conf, util-vserver/distrib/sample.sh, + util-vserver/doc, util-vserver/doc/FAQ.txt, + util-vserver/doc/Makefile-files, util-vserver/doc/changelog.txt, + util-vserver/doc/intro.txt, util-vserver/lib, + util-vserver/lib/Makefile-files, util-vserver/lib/syscall.c, + util-vserver/lib/vserver.h, util-vserver/m4, + util-vserver/m4/changelog.am, util-vserver/m4/ensc_cflags.m4, + util-vserver/m4/gpgsig.am, util-vserver/m4/validate.am, + util-vserver/man, util-vserver/man/Makefile-files, + util-vserver/man/chbind.8, util-vserver/man/chcontext.8, + util-vserver/man/distrib-info.8, util-vserver/man/newvserver.8, + util-vserver/man/rebootmgr.8, util-vserver/man/reducecap.8, + util-vserver/man/vps.8, util-vserver/man/vpstree.8, + util-vserver/man/vrpm.8, util-vserver/man/vserver-copy.8, + util-vserver/man/vserver-stat.8, util-vserver/man/vserver.8, + util-vserver/man/vtop.8, util-vserver/newvserver.defaults, + util-vserver/scripts, util-vserver/scripts/Makefile-files, + util-vserver/scripts/distrib-info, + util-vserver/scripts/rootshell, + util-vserver/scripts/save_s_context, + util-vserver/scripts/util-vserver-vars.subst, + util-vserver/scripts/vkill, util-vserver/scripts/vprofile, + util-vserver/scripts/vps, util-vserver/scripts/vpstree, + util-vserver/scripts/vrpm, util-vserver/scripts/vserver, + util-vserver/scripts/vserver-copy, + util-vserver/scripts/vserverkillall, + util-vserver/scripts/vservers.grabinfo.sh, + util-vserver/scripts/vsysvwrapper, util-vserver/scripts/vtop, + util-vserver/scripts/vunify.old.sh, util-vserver/src, + util-vserver/src/Makefile-files, util-vserver/src/capchroot.c, + util-vserver/src/chbind.c, util-vserver/src/chcontext.c, + util-vserver/src/fakerunlevel.c, util-vserver/src/filetime.c, + util-vserver/src/ifspec.c, util-vserver/src/listdevip.c, + util-vserver/src/parserpmdump.c, util-vserver/src/readlink.c, + util-vserver/src/rebootmgr.c, util-vserver/src/reducecap.c, + util-vserver/src/setctxlimit.c, util-vserver/src/showattr.c, + util-vserver/src/showperm.c, util-vserver/src/vbuild.cc, + util-vserver/src/vcheck.cc, util-vserver/src/vdu.c, + util-vserver/src/vfiles.cc, util-vserver/src/vreboot.c, + util-vserver/src/vserver-stat.c, util-vserver/src/vunify.cc, + util-vserver/src/vutil.cc, util-vserver/src/vutil.h, + util-vserver/src/vutil.p, util-vserver/sysv, + util-vserver/sysv/Makefile-files, + util-vserver/sysv/rebootmgr.subst, + util-vserver/sysv/v_gated.subst, util-vserver/sysv/v_httpd.subst, + util-vserver/sysv/v_named.subst, + util-vserver/sysv/v_portmap.subst, + util-vserver/sysv/v_sendmail.subst, + util-vserver/sysv/v_smb.subst, util-vserver/sysv/v_sshd.subst, + util-vserver/sysv/v_xinetd.subst, + util-vserver/sysv/vservers.conf, + util-vserver/sysv/vservers.subst, util-vserver/tests, + util-vserver/tests/Makefile-files, + util-vserver/tests/chrootsafe.cc, + util-vserver/tests/escaperoot.cc, util-vserver/tests/forkbomb.cc, + util-vserver/tests/testipc.cc, util-vserver/tests/testlimit.cc, + util-vserver/tests/testopenf.cc, util-vserver/vserver.spec.in: + initial checkin + +2003-09-29 22:01 + + * branches, tags, .: New repository initialized by cvs2svn. diff --git a/INSTALL b/INSTALL index 56b077d..23e5f25 100644 --- a/INSTALL +++ b/INSTALL @@ -102,16 +102,16 @@ for another architecture. Installation Names ================== -By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PREFIX'. +By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PREFIX', the package will -use PREFIX as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular @@ -159,7 +159,7 @@ where SYSTEM can have one of these forms: need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will +use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a diff --git a/Makefile.am b/Makefile.am index 068605c..2dc9a8f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ -## $Id: Makefile.am,v 1.70 2005/07/03 17:51:00 ensc Exp $ +## $Id: Makefile.am 2482 2007-01-29 23:37:07Z dhozac $ -# Copyright (C) 2003,2004 Enrico Scholz +# Copyright (C) 2003,2004,2005,2006 Enrico Scholz # # 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 @@ -20,8 +20,8 @@ ACLOCAL_AMFLAGS = -I m4 SUBDIRS = . distrib -CVS2CL_AMFLAGS = $(CVS2CL_TAG) -U cvsusers.map --show-dead -S --no-wrap -CVS2CL_ALLFLAGS := $(CVS2CL_AMFLAGS) $(CVS2CL_FLAGS) +SVN2CL_AMFLAGS = $(SVN2CL_TAG) --authors=svnusers.map +SVN2CL_ALLFLAGS := $(SVN2CL_AMFLAGS) $(SVN2CL_FLAGS) confdir = $(sysconfdir)/vservers confdefaultsdir = $(confdir)/.defaults @@ -53,36 +53,12 @@ sysconf_DATA = DIETPROGS = $(LIBENSCVECTOR_DIET) -BUILT_SOURCES = pathconfig.h linuxvirtual.h \ +BUILT_SOURCES = pathconfig.h \ .fixups man_MANS = -kernel_HDRS = kernel/context.h \ - kernel/context_cmd.h \ - kernel/cvirt.h \ - kernel/cvirt_cmd.h \ - kernel/cvirt_def.h \ - kernel/debug.h \ - kernel/debug_cmd.h \ - kernel/dlimit.h \ - kernel/dlimit_cmd.h \ - kernel/inode.h \ - kernel/inode_cmd.h \ - kernel/legacy.h \ - kernel/limit.h \ - kernel/limit_cmd.h \ - kernel/limit_def.h \ - kernel/namespace.h \ - kernel/namespace_cmd.h \ - kernel/network.h \ - kernel/network_cmd.h \ - kernel/sched.h \ - kernel/sched_cmd.h \ - kernel/sched_def.h \ - kernel/signal_cmd.h \ - kernel/switch.h \ - kernel/xid.h +kernel_HDRS = $(wildcard kernel/*.h) EXTRA_PROGRAMS = @@ -127,23 +103,16 @@ endif VSERVER_LDADDS = $(LIBVSERVER) $(DIET_COMPAT_LDADDS) silent.%: FORCE - @t=$$(mktemp /tmp/build.XXXXXX) && \ - $(MAKE) '$*' -s 2>$$t >/dev/null && \ - ( cat $$t | \ - grep -v ': In function' | \ - grep -v 'your code still has assertions enabled' | \ - grep -v ' is obsoleted' | \ - grep -v 'warning: #warning'; \ - rm -f $$t || : ) - - -linuxvirtual.h: -if ENSC_ENABLE_INTERNAL_HEADERS - ln -sf '$(top_srcdir)/lib/virtual.h' '$@' -else - ln -sf '$(kernelincludedir)/linux/virtual.h' '$@' && test -e '$@' || \ - ln -sf '$(top_srcdir)/lib/virtual.h' '$@' -endif + @t=$$($(MKTEMP) -d /tmp/build.XXXXXX) && \ + trap "rm -rf $$t" EXIT && \ + mkfifo $$t/fifo && \ + ( grep --line-buffered -v \ + -e ': In function' \ + -e 'your code still has assertions enabled' \ + -e ' is obsoleted' \ + -e 'warning: #warning' <$$t/fifo & ) && \ + exec 2>$$t/fifo && \ + $(MAKE) '$*' -s >/dev/null pathsubst_RULES = s!@'PKGLIBDIR'@!$(pkglibdir)!g; \ s!@'LEGACYDIR'@!$(legacydir)!g; \ @@ -151,6 +120,7 @@ pathsubst_RULES = s!@'PKGLIBDIR'@!$(pkglibdir)!g; \ s!@'CONFDIR'@!$(confdir)!g; \ s!@'SYSCONFDIR'@!$(sysconfdir)!g; \ s!@'PKGSTATEDIR'@!$(pkgstatedir)!g; \ + s!@'PKGCACHEDIR'@!$(pkgcachedir)!g; \ s!@'PKGSTATEREVDIR'@!$(pkgstaterevdir)!g; \ s!@'VSERVERDIR'@!$(vserverdir)!g; \ s!@'VSERVERPKGDIR'@!$(vserverpkgdir)!g; \ @@ -187,6 +157,7 @@ pathconfig.h: .pathconfig.h.pathsubst.stamp @chmod a-w '$*' @touch '$@' +pkgcachedir = $(localstatedir)/cache/vservers pkgstatedir = $(localstatedir)/run/vservers pkgstaterevdir = $(confdefaultsdir)/run.rev vserverpkgdir = $(vserverdir)/.pkg @@ -203,10 +174,12 @@ update-doc: doc install-data-hook: install-fix-script-paths install-create-dirs install-create-dirs: - $(mkinstalldirs) -m 755 $(DESTDIR)$(pkgstatedir) $(DESTDIR)$(pkgstatedir).rev $(DESTDIR)$(vshelperstatedir) - $(mkinstalldirs) -m 755 $(DESTDIR)$(confdefaultsdir) - f=$(DESTDIR)$(confdefaultsdir)/vdirbase; test -e "$$f" || ln -sf '$(vserverdir)' "$$f" - f=$(DESTDIR)$(pkgstaterevdir); test -e "$$f" || ln -sf '$(pkgstatedir).rev' "$$f" + $(mkinstalldirs) -m 0755 $(DESTDIR)$(pkgstatedir) $(DESTDIR)$(pkgstatedir).rev $(DESTDIR)$(vshelperstatedir) + $(mkinstalldirs) -m 0700 $(DESTDIR)$(pkgcachedir) + $(mkinstalldirs) -m 0755 $(DESTDIR)$(confdefaultsdir) + f=$(DESTDIR)$(confdefaultsdir)/vdirbase; test -e "$$f" || ln -sf '$(vserverdir)' "$$f" + f=$(DESTDIR)$(confdefaultsdir)/cachebase; test -e "$$f" || ln -sf '$(pkgcachedir)' "$$f" + f=$(DESTDIR)$(pkgstaterevdir); test -e "$$f" || ln -sf '$(pkgstatedir).rev' "$$f" install-fix-script-paths: test "/usr/lib/util-vserver" = "$(pkglibdir)" || \ @@ -263,6 +236,7 @@ include $(top_srcdir)/ensc_wrappers/Makefile-files include $(top_srcdir)/ensc_fmt/Makefile-files include $(top_srcdir)/lib_internal/Makefile-files include $(top_srcdir)/vserver-start/Makefile-files +include $(top_srcdir)/gentoo/Makefile-files include $(top_srcdir)/m4/gpgsig.am include $(top_srcdir)/m4/validate.am diff --git a/Makefile.in b/Makefile.in index 216d348..7895288 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -14,7 +14,7 @@ @SET_MAKE@ -# Copyright (C) 2003,2004 Enrico Scholz +# Copyright (C) 2003,2004,2005,2006 Enrico Scholz # # 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 @@ -36,8 +36,6 @@ -SOURCES = $(nodist_lib_dietlibc_not_enabled_error_a_SOURCES) $(nodist_lib_glibc_not_enabled_error_a_SOURCES) $(lib_libvserver_a_SOURCES) $(lib_internal_libinternal_diet_a_SOURCES) $(lib_internal_libinternal_glibc_a_SOURCES) $(libensc_vector_diet_a_SOURCES) $(libensc_vector_glibc_a_SOURCES) $(lib_libvserver_la_SOURCES) $(src_rpm_fake_la_SOURCES) $(ensc_vector_testsuite_test1_SOURCES) $(ensc_vector_testsuite_test2_SOURCES) $(lib_testsuite_cflags_SOURCES) $(lib_testsuite_fmt_SOURCES) $(lib_testsuite_parselimit_SOURCES) $(lib_testsuite_personality_SOURCES) $(lib_internal_testsuite_command_SOURCES) $(lib_internal_testsuite_copy_SOURCES) $(lib_internal_testsuite_filecfg_ml_SOURCES) $(lib_internal_testsuite_sigbus_SOURCES) $(src_capchroot_SOURCES) $(src_chain_echo_SOURCES) $(src_chbind_SOURCES) $(src_chcontext_compat_SOURCES) src/check-unixfile.c $(src_chroot_sh_SOURCES) $(src_chxid_SOURCES) $(src_exec_cd_SOURCES) $(src_exec_ulimit_SOURCES) $(src_fakerunlevel_SOURCES) $(src_filetime_SOURCES) $(src_ifspec_SOURCES) $(src_keep_ctx_alive_SOURCES) $(src_listdevip_SOURCES) $(src_lockfile_SOURCES) $(src_lsxid_SOURCES) $(src_mask2prefix_SOURCES) $(src_parserpmdump_SOURCES) $(src_readlink_SOURCES) $(src_rebootmgr_SOURCES) $(src_reducecap_SOURCES) $(src_rpm_fake_resolver_SOURCES) $(src_save_ctxinfo_SOURCES) $(src_secure_mount_SOURCES) $(src_setattr_SOURCES) $(src_showattr_SOURCES) src/showperm.c src/sigexec.c $(src_testsuite_chbind_test_SOURCES) $(src_testsuite_chcontext_test_SOURCES) $(src_testsuite_rpm_fake_test_SOURCES) $(src_testsuite_vunify_functest_SOURCES) $(src_vattribute_SOURCES) $(src_vbuild_SOURCES) $(src_vcontext_SOURCES) $(src_vcopy_SOURCES) $(src_vdlimit_SOURCES) $(src_vdu_SOURCES) $(src_vhashify_SOURCES) $(src_vkill_SOURCES) $(src_vlimit_SOURCES) $(src_vnamespace_SOURCES) $(src_vps_SOURCES) $(src_vreboot_SOURCES) src/vrsetup.c $(src_vsched_SOURCES) $(src_vserver_info_SOURCES) $(src_vserver_stat_SOURCES) $(src_vsh_SOURCES) $(src_vshelper_sync_SOURCES) $(src_vuname_SOURCES) $(src_vunify_SOURCES) $(src_vwait_SOURCES) $(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) $(tests_getctx_SOURCES) $(tests_getinitpid_SOURCES) $(tests_testipc_SOURCES) $(tests_testlimit_SOURCES) $(tests_testopenf_SOURCES) $(tests_vserver_info_SOURCES) $(vserver_start_vserver_start_bin_SOURCES) - srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ @@ -68,25 +66,27 @@ pkglib_PROGRAMS = src/capchroot$(EXEEXT) src/chain-echo$(EXEEXT) \ src/save_ctxinfo$(EXEEXT) src/secure-mount$(EXEEXT) \ src/mask2prefix$(EXEEXT) src/exec-ulimit$(EXEEXT) \ src/rpm-fake-resolver$(EXEEXT) src/vshelper-sync$(EXEEXT) \ - src/sigexec$(EXEEXT) $(am__EXEEXT_8) $(am__EXEEXT_9) \ - $(am__EXEEXT_10) $(am__EXEEXT_11) + src/sigexec$(EXEEXT) src/chbind-compat$(EXEEXT) \ + src/vsysctl$(EXEEXT) $(am__EXEEXT_8) $(am__EXEEXT_1) \ + $(am__EXEEXT_9) $(am__EXEEXT_10) legacy_PROGRAMS = src/ifspec$(EXEEXT) src/listdevip$(EXEEXT) \ src/parserpmdump$(EXEEXT) src/rebootmgr$(EXEEXT) \ src/showperm$(EXEEXT) src/vreboot$(EXEEXT) -sbin_PROGRAMS = src/chbind$(EXEEXT) src/exec-cd$(EXEEXT) \ - src/lsxid$(EXEEXT) src/chxid$(EXEEXT) src/vps$(EXEEXT) \ - src/showattr$(EXEEXT) src/setattr$(EXEEXT) \ - src/reducecap$(EXEEXT) src/vdu$(EXEEXT) \ +sbin_PROGRAMS = src/exec-cd$(EXEEXT) src/lsxid$(EXEEXT) \ + src/chxid$(EXEEXT) src/vps$(EXEEXT) src/showattr$(EXEEXT) \ + src/setattr$(EXEEXT) src/reducecap$(EXEEXT) src/vdu$(EXEEXT) \ src/vattribute$(EXEEXT) src/vcontext$(EXEEXT) \ src/vlimit$(EXEEXT) src/vkill$(EXEEXT) src/vnamespace$(EXEEXT) \ src/vrsetup$(EXEEXT) src/vsched$(EXEEXT) \ src/vserver-stat$(EXEEXT) src/vserver-info$(EXEEXT) \ src/vuname$(EXEEXT) src/vsh$(EXEEXT) src/vwait$(EXEEXT) \ - $(am__EXEEXT_12) $(am__EXEEXT_13) + src/ncontext$(EXEEXT) src/nattribute$(EXEEXT) \ + src/naddress$(EXEEXT) src/vdevmap$(EXEEXT) $(am__EXEEXT_11) \ + $(am__EXEEXT_12) noinst_PROGRAMS = tests/escaperoot$(EXEEXT) tests/forkbomb$(EXEEXT) \ tests/testipc$(EXEEXT) tests/testlimit$(EXEEXT) \ tests/testopenf$(EXEEXT) $(am__EXEEXT_6) -EXTRA_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) +EXTRA_PROGRAMS = $(am__EXEEXT_1) check_PROGRAMS = lib/testsuite/cflags$(EXEEXT) \ lib/testsuite/personality$(EXEEXT) lib/testsuite/fmt$(EXEEXT) \ lib/testsuite/parselimit$(EXEEXT) $(am__EXEEXT_3) \ @@ -105,6 +105,7 @@ DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \ $(top_srcdir)/ensc_fmt/Makefile-files \ $(top_srcdir)/ensc_vector/Makefile-files \ $(top_srcdir)/ensc_wrappers/Makefile-files \ + $(top_srcdir)/gentoo/Makefile-files \ $(top_srcdir)/lib/Makefile-files \ $(top_srcdir)/lib/apidoc/Doxyfile.in \ $(top_srcdir)/lib_internal/Makefile-files \ @@ -134,21 +135,38 @@ DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \ @ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@am__append_3 = src/vhashify @ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__append_4 = src/vhashify @ENSC_HAVE_C99_COMPILER_TRUE@am__append_5 = src/vdlimit -@HAVE_XSLTP_TRUE@am__append_6 = $(doc_gen_DOCS) -@HAVE_XSLTPROC_TRUE@@HAVE_XSLTP_FALSE@am__append_7 = $(doc_gen_DOCS) -@ENSC_USE_GLIBC_TRUE@am__append_8 = $(LIBENSCVECTOR_GLIBC) -@ENSC_USE_DIETLIBC_TRUE@am__append_9 = $(LIBENSCVECTOR_DIET) -@USE_DIETLIBC_TRUE@am__append_10 = $(LIBINTERNAL_DIET) -@ENSC_HAVE_C99_COMPILER_TRUE@am__append_11 = lib_internal/testsuite/filecfg-ml \ +@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__append_6 = src/testsuite/hashcalc \ +@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@ src/testsuite/hashcalc-plain + +@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__append_7 = src/testsuite/hashcalc-plain.sh \ +@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@ src/testsuite/hashcalc.sh + +@HAVE_XSLTP_TRUE@am__append_8 = $(doc_gen_DOCS) +@HAVE_XSLTPROC_TRUE@@HAVE_XSLTP_FALSE@am__append_9 = $(doc_gen_DOCS) +@HAVE_SYSV_INIT_TRUE@am__append_10 = $(sysv_conf_DTA) +@HAVE_SYSV_INIT_TRUE@am__append_11 = $(sysv_src_SCRPTS) \ +@HAVE_SYSV_INIT_TRUE@ $(sysv_gen_SCRPTS) + +@ENSC_USE_GLIBC_TRUE@am__append_12 = $(LIBENSCVECTOR_GLIBC) +@ENSC_USE_DIETLIBC_TRUE@am__append_13 = $(LIBENSCVECTOR_DIET) +@USE_DIETLIBC_TRUE@am__append_14 = $(LIBINTERNAL_DIET) +@ENSC_HAVE_C99_COMPILER_TRUE@am__append_15 = lib_internal/testsuite/filecfg-ml \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/copy \ -@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/isnumber \ +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/isnumber-gnu \ +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus \ +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus-gnu -@ENSC_HAVE_C99_COMPILER_TRUE@am__append_12 = lib_internal/testsuite/filecfg-ml \ +@ENSC_HAVE_C99_COMPILER_TRUE@am__append_16 = lib_internal/testsuite/filecfg-ml \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/copy-check \ -@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus - -@ENSC_HAVE_C99_COMPILER_TRUE@am__append_13 = vserver-start/vserver.start.bin -@ENSC_HAVE_C99_COMPILER_TRUE@am__append_14 = vserver-start/vserver.start.bin +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/isnumber \ +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/isnumber-gnu \ +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus \ +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus-gnu + +@ENSC_HAVE_C99_COMPILER_TRUE@am__append_17 = vserver-start/vserver.start.bin +@ENSC_HAVE_C99_COMPILER_TRUE@am__append_18 = vserver-start/vserver.start.bin +@HAVE_GENTOO_INIT_TRUE@am__append_19 = $(gentoo_src_SCRPTS) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ensc_cflags.m4 \ @@ -158,7 +176,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ensc_cflags.m4 \ $(top_srcdir)/m4/ensc_dietlibc_compat.m4 \ $(top_srcdir)/m4/ensc_e2fscheck.m4 \ $(top_srcdir)/m4/ensc_initrddir.m4 \ - $(top_srcdir)/m4/ensc_kerneldir.m4 \ $(top_srcdir)/m4/ensc_pathprog.m4 \ $(top_srcdir)/m4/ensc_personality.m4 \ $(top_srcdir)/m4/ensc_release.m4 \ @@ -205,7 +222,7 @@ lib_glibc_not_enabled_error_a_OBJECTS = \ lib_libvserver_a_AR = $(AR) $(ARFLAGS) lib_libvserver_a_LIBADD = am__lib_libvserver_a_SOURCES_DIST = lib/syscall.c lib/checkversion.c \ - lib/isdirectory.c lib/isfile.c lib/islink.c \ + lib/checkconfig.c lib/isdirectory.c lib/isfile.c lib/islink.c \ lib/getnbipv4root.c lib/getversion.c lib/capabilities.c \ lib/getfilecontext.c lib/getinsecurebcaps.c lib/getxidtype.c \ lib/isdynamicxid.c lib/issupported.c lib/issupportedstring.c \ @@ -216,15 +233,16 @@ am__lib_libvserver_a_SOURCES_DIST = lib/syscall.c lib/checkversion.c \ lib/val2text-v2t-uint32.c lib/val2text-v2t-uint64.c \ lib/parselimit.c lib/planetlab.c lib/getprocentry-legacy.c \ lib/cflags-compat.c lib/cflags_list-compat.c \ - lib/createskeleton.c lib/getvserverbyctx.c \ - lib/getvserverbyctx-compat.hc lib/getvserverbyctx-v13.hc \ - lib/getvservercfgstyle.c lib/getvserverappdir.c \ - lib/getvservercfgdir.c lib/getvserverctx.c \ - lib/getvservername.c lib/getvservervdir.c lib/xidopt2xid.c \ - lib/syscall_rlimit.c lib/syscall_rlimit-v11.hc \ - lib/syscall_kill.c lib/syscall_kill-v11.hc \ - lib/syscall_ctxcreate.c lib/syscall_ctxcreate-v13.hc \ - lib/syscall_ctxmigrate.c lib/syscall_ctxmigrate-v13.hc \ + lib/comparevserverbyid.c lib/createskeleton.c \ + lib/getvserverbyctx.c lib/getvserverbyctx-compat.hc \ + lib/getvserverbyctx-v13.hc lib/getvservercfgstyle.c \ + lib/getvserverappdir.c lib/getvservercfgdir.c \ + lib/getvserverctx.c lib/getvservername.c lib/getvservervdir.c \ + lib/xidopt2xid.c lib/nidopt2nid.c lib/syscall_rlimit.c \ + lib/syscall_rlimit-v11.hc lib/syscall_kill.c \ + lib/syscall_kill-v11.hc lib/syscall_ctxcreate.c \ + lib/syscall_ctxcreate-v13.hc lib/syscall_ctxmigrate.c \ + lib/syscall_ctxmigrate-v13.hc \ lib/syscall_cleanupnamespace-v13.hc \ lib/syscall_cleanupnamespace.c \ lib/syscall_enternamespace-v13.hc lib/syscall_enternamespace.c \ @@ -251,25 +269,37 @@ am__lib_libvserver_a_SOURCES_DIST = lib/syscall.c lib/checkversion.c \ lib/syscall_setnamespace.c lib/syscall_setncaps-net.hc \ lib/syscall_setncaps.c lib/syscall_setnflags-net.hc \ lib/syscall_setnflags.c lib/syscall_setsched-v13.hc \ - lib/syscall_setsched.c lib/syscall_setvhiname-olduts.hc \ - lib/syscall_setvhiname-v13.hc lib/syscall_setvhiname.c \ - lib/syscall_waitexit.c lib/syscall_waitexit-v13.hc \ - lib/bcaps-v13.c lib/bcaps_list-v13.c lib/ccaps-v13.c \ - lib/ccaps_list-v13.c lib/cflags-v13.c lib/cflags_list-v13.c \ - lib/ncaps-net.c lib/ncaps_list-net.c lib/nflags-net.c \ - lib/nflags_list-net.c lib/syscall_adddlimit-v13.hc \ - lib/syscall_adddlimit.c lib/syscall_getdlimit-v13.hc \ - lib/syscall_getdlimit.c lib/syscall_remdlimit-v13.hc \ - lib/syscall_remdlimit.c lib/syscall_setdlimit-v13.hc \ - lib/syscall_setdlimit.c ensc_fmt/fmt-32.c ensc_fmt/fmt-64.c \ - ensc_fmt/fmtx-32.c ensc_fmt/fmtx-64.c ensc_fmt/fmt-tai64n.c \ - ensc_fmt/fmt.h ensc_fmt/fmt.hc ensc_fmt/fmtx.hc \ - ensc_fmt/fmt-internal.h + lib/syscall_setsched-v13obs.hc lib/syscall_setsched.c \ + lib/syscall_setvhiname-olduts.hc lib/syscall_setvhiname-v13.hc \ + lib/syscall_setvhiname.c lib/syscall_waitexit.c \ + lib/syscall_waitexit-v13.hc lib/bcaps-v13.c \ + lib/bcaps_list-v13.c lib/ccaps-v13.c lib/ccaps_list-v13.c \ + lib/cflags-v13.c lib/cflags_list-v13.c lib/ncaps-net.c \ + lib/ncaps_list-net.c lib/nflags-net.c lib/nflags_list-net.c \ + lib/syscall_adddlimit-v13.hc lib/syscall_adddlimit.c \ + lib/syscall_getdlimit-v13.hc lib/syscall_getdlimit.c \ + lib/syscall_remdlimit-v13.hc lib/syscall_remdlimit.c \ + lib/syscall_setdlimit-v13.hc lib/syscall_setdlimit.c \ + lib/syscall_setccaps-v21.hc lib/syscall_setsched-v21.hc \ + lib/syscall_rlimitstat.c lib/syscall_rlimitstat-v21.hc \ + lib/syscall_resetminmax.c lib/syscall_resetminmax-v21.hc \ + lib/syscall_getvci.c lib/syscall_getvci-v21.hc \ + lib/syscall_virtstat.c lib/syscall_virtstat-v21.hc \ + lib/syscall_ctxstat.c lib/syscall_ctxstat-v21.hc \ + lib/syscall_getspacemask.c lib/syscall_getspacemask-v21.hc \ + lib/syscall_enternamespace-v21.hc \ + lib/syscall_setnamespace-v21.hc lib/syscall_ctxmigrate-v21.hc \ + lib/syscall_setmapping.c lib/syscall_setmapping-v21.hc \ + lib/syscall_schedinfo.c lib/syscall_schedinfo-v21.hc \ + ensc_fmt/fmt-32.c ensc_fmt/fmt-64.c ensc_fmt/fmtx-32.c \ + ensc_fmt/fmtx-64.c ensc_fmt/fmt-tai64n.c ensc_fmt/fmt.h \ + ensc_fmt/fmt.hc ensc_fmt/fmtx.hc ensc_fmt/fmt-internal.h am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = lib/lib_libvserver_a-getprocentry-legacy.$(OBJEXT) am__objects_2 = lib/lib_libvserver_a-cflags-compat.$(OBJEXT) \ lib/lib_libvserver_a-cflags_list-compat.$(OBJEXT) -am__objects_3 = lib/lib_libvserver_a-createskeleton.$(OBJEXT) \ +am__objects_3 = lib/lib_libvserver_a-comparevserverbyid.$(OBJEXT) \ + lib/lib_libvserver_a-createskeleton.$(OBJEXT) \ lib/lib_libvserver_a-getvserverbyctx.$(OBJEXT) \ lib/lib_libvserver_a-getvservercfgstyle.$(OBJEXT) \ lib/lib_libvserver_a-getvserverappdir.$(OBJEXT) \ @@ -277,7 +307,8 @@ am__objects_3 = lib/lib_libvserver_a-createskeleton.$(OBJEXT) \ lib/lib_libvserver_a-getvserverctx.$(OBJEXT) \ lib/lib_libvserver_a-getvservername.$(OBJEXT) \ lib/lib_libvserver_a-getvservervdir.$(OBJEXT) \ - lib/lib_libvserver_a-xidopt2xid.$(OBJEXT) + lib/lib_libvserver_a-xidopt2xid.$(OBJEXT) \ + lib/lib_libvserver_a-nidopt2nid.$(OBJEXT) am__objects_4 = lib/lib_libvserver_a-syscall_rlimit.$(OBJEXT) \ lib/lib_libvserver_a-syscall_kill.$(OBJEXT) @ENSC_HAVE_C99_COMPILER_TRUE@am__objects_5 = lib/lib_libvserver_a-syscall_adddlimit.$(OBJEXT) \ @@ -322,13 +353,22 @@ am__objects_6 = lib/lib_libvserver_a-syscall_ctxcreate.$(OBJEXT) \ lib/lib_libvserver_a-nflags-net.$(OBJEXT) \ lib/lib_libvserver_a-nflags_list-net.$(OBJEXT) \ $(am__objects_5) -am__objects_7 = ensc_fmt/lib_libvserver_a-fmt-32.$(OBJEXT) \ +am__objects_7 = lib/lib_libvserver_a-syscall_rlimitstat.$(OBJEXT) \ + lib/lib_libvserver_a-syscall_resetminmax.$(OBJEXT) \ + lib/lib_libvserver_a-syscall_getvci.$(OBJEXT) \ + lib/lib_libvserver_a-syscall_virtstat.$(OBJEXT) \ + lib/lib_libvserver_a-syscall_ctxstat.$(OBJEXT) \ + lib/lib_libvserver_a-syscall_getspacemask.$(OBJEXT) \ + lib/lib_libvserver_a-syscall_setmapping.$(OBJEXT) \ + lib/lib_libvserver_a-syscall_schedinfo.$(OBJEXT) +am__objects_8 = ensc_fmt/lib_libvserver_a-fmt-32.$(OBJEXT) \ ensc_fmt/lib_libvserver_a-fmt-64.$(OBJEXT) \ ensc_fmt/lib_libvserver_a-fmtx-32.$(OBJEXT) \ ensc_fmt/lib_libvserver_a-fmtx-64.$(OBJEXT) \ ensc_fmt/lib_libvserver_a-fmt-tai64n.$(OBJEXT) -am__objects_8 = lib/lib_libvserver_a-syscall.$(OBJEXT) \ +am__objects_9 = lib/lib_libvserver_a-syscall.$(OBJEXT) \ lib/lib_libvserver_a-checkversion.$(OBJEXT) \ + lib/lib_libvserver_a-checkconfig.$(OBJEXT) \ lib/lib_libvserver_a-isdirectory.$(OBJEXT) \ lib/lib_libvserver_a-isfile.$(OBJEXT) \ lib/lib_libvserver_a-islink.$(OBJEXT) \ @@ -354,8 +394,8 @@ am__objects_8 = lib/lib_libvserver_a-syscall.$(OBJEXT) \ lib/lib_libvserver_a-parselimit.$(OBJEXT) \ lib/lib_libvserver_a-planetlab.$(OBJEXT) $(am__objects_1) \ $(am__objects_2) $(am__objects_3) $(am__objects_4) \ - $(am__objects_6) $(am__objects_7) -am_lib_libvserver_a_OBJECTS = $(am__objects_8) + $(am__objects_6) $(am__objects_7) $(am__objects_8) +am_lib_libvserver_a_OBJECTS = $(am__objects_9) lib_libvserver_a_OBJECTS = $(am_lib_libvserver_a_OBJECTS) lib_internal_libinternal_diet_a_AR = $(AR) $(ARFLAGS) lib_internal_libinternal_diet_a_LIBADD = @@ -375,8 +415,9 @@ am__lib_internal_libinternal_diet_a_SOURCES_DIST = \ lib_internal/unify-isiunlinkable.c \ lib_internal/util-canonify.c \ lib_internal/util-exitlikeprocess.c \ - lib_internal/util-isnumber.c lib_internal/util-lockfile.c \ - lib_internal/util-safechdir.c \ + lib_internal/util-isnumber.hc lib_internal/util-isnumber.c \ + lib_internal/util-isnumberunsigned.c \ + lib_internal/util-lockfile.c lib_internal/util-safechdir.c \ lib_internal/command-appendparameter.c \ lib_internal/command-setparams.c lib_internal/command-exec.c \ lib_internal/command-free.c lib_internal/command-init.c \ @@ -387,20 +428,20 @@ am__lib_internal_libinternal_diet_a_SOURCES_DIST = \ lib_internal/filecfg-readentrystr.c \ lib_internal/matchlist-initbyvserver.c \ lib_internal/matchvserverinfo-init.c lib_internal/unify-copy.c -am__objects_9 = lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.$(OBJEXT) \ +am__objects_10 = lib_internal/lib_internal_libinternal_diet_a-command-appendparameter.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-command-setparams.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-command-exec.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-command-free.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-command-init.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-command-reset.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-command-wait.$(OBJEXT) -@ENSC_HAVE_C99_COMPILER_TRUE@am__objects_10 = lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.$(OBJEXT) \ +@ENSC_HAVE_C99_COMPILER_TRUE@am__objects_11 = lib_internal/lib_internal_libinternal_diet_a-filecfg-iteratemultiline.$(OBJEXT) \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_diet_a-filecfg-readentryflag.$(OBJEXT) \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_diet_a-filecfg-readentrystr.$(OBJEXT) \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_diet_a-matchlist-initbyvserver.$(OBJEXT) \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_diet_a-matchvserverinfo-init.$(OBJEXT) \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_diet_a-unify-copy.$(OBJEXT) -am__objects_11 = lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.$(OBJEXT) \ +am__objects_12 = lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-jailintotempdir.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-matchlist-appendfiles.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-matchlist-compare.$(OBJEXT) \ @@ -420,10 +461,11 @@ am__objects_11 = lib_internal/lib_internal_libinternal_diet_a-errinfo-writeerrno lib_internal/lib_internal_libinternal_diet_a-util-canonify.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-util-isnumber.$(OBJEXT) \ + lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-util-lockfile.$(OBJEXT) \ lib_internal/lib_internal_libinternal_diet_a-util-safechdir.$(OBJEXT) \ - $(am__objects_9) $(am__objects_10) -am_lib_internal_libinternal_diet_a_OBJECTS = $(am__objects_11) + $(am__objects_10) $(am__objects_11) +am_lib_internal_libinternal_diet_a_OBJECTS = $(am__objects_12) lib_internal_libinternal_diet_a_OBJECTS = \ $(am_lib_internal_libinternal_diet_a_OBJECTS) lib_internal_libinternal_glibc_a_AR = $(AR) $(ARFLAGS) @@ -444,8 +486,9 @@ am__lib_internal_libinternal_glibc_a_SOURCES_DIST = \ lib_internal/unify-isiunlinkable.c \ lib_internal/util-canonify.c \ lib_internal/util-exitlikeprocess.c \ - lib_internal/util-isnumber.c lib_internal/util-lockfile.c \ - lib_internal/util-safechdir.c \ + lib_internal/util-isnumber.hc lib_internal/util-isnumber.c \ + lib_internal/util-isnumberunsigned.c \ + lib_internal/util-lockfile.c lib_internal/util-safechdir.c \ lib_internal/command-appendparameter.c \ lib_internal/command-setparams.c lib_internal/command-exec.c \ lib_internal/command-free.c lib_internal/command-init.c \ @@ -456,20 +499,20 @@ am__lib_internal_libinternal_glibc_a_SOURCES_DIST = \ lib_internal/filecfg-readentrystr.c \ lib_internal/matchlist-initbyvserver.c \ lib_internal/matchvserverinfo-init.c lib_internal/unify-copy.c -am__objects_12 = lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.$(OBJEXT) \ +am__objects_13 = lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-command-setparams.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-command-exec.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-command-free.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-command-init.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-command-reset.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-command-wait.$(OBJEXT) -@ENSC_HAVE_C99_COMPILER_TRUE@am__objects_13 = lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.$(OBJEXT) \ +@ENSC_HAVE_C99_COMPILER_TRUE@am__objects_14 = lib_internal/lib_internal_libinternal_glibc_a-filecfg-iteratemultiline.$(OBJEXT) \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentryflag.$(OBJEXT) \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_glibc_a-filecfg-readentrystr.$(OBJEXT) \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_glibc_a-matchlist-initbyvserver.$(OBJEXT) \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_glibc_a-matchvserverinfo-init.$(OBJEXT) \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/lib_internal_libinternal_glibc_a-unify-copy.$(OBJEXT) -am__objects_14 = lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.$(OBJEXT) \ +am__objects_15 = lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrno.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-jailintotempdir.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-matchlist-appendfiles.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-matchlist-compare.$(OBJEXT) \ @@ -489,15 +532,16 @@ am__objects_14 = lib_internal/lib_internal_libinternal_glibc_a-errinfo-writeerrn lib_internal/lib_internal_libinternal_glibc_a-util-canonify.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.$(OBJEXT) \ + lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.$(OBJEXT) \ lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.$(OBJEXT) \ - $(am__objects_12) $(am__objects_13) -am_lib_internal_libinternal_glibc_a_OBJECTS = $(am__objects_14) + $(am__objects_13) $(am__objects_14) +am_lib_internal_libinternal_glibc_a_OBJECTS = $(am__objects_15) lib_internal_libinternal_glibc_a_OBJECTS = \ $(am_lib_internal_libinternal_glibc_a_OBJECTS) libensc_vector_diet_a_AR = $(AR) $(ARFLAGS) libensc_vector_diet_a_LIBADD = -am__objects_15 = \ +am__objects_16 = \ ensc_vector/libensc_vector_diet_a-vector-clear.$(OBJEXT) \ ensc_vector/libensc_vector_diet_a-vector-foreach.$(OBJEXT) \ ensc_vector/libensc_vector_diet_a-vector-free.$(OBJEXT) \ @@ -518,11 +562,11 @@ am__objects_15 = \ ensc_vector/libensc_vector_diet_a-list-insertinternal.$(OBJEXT) \ ensc_vector/libensc_vector_diet_a-list-search.$(OBJEXT) \ ensc_vector/libensc_vector_diet_a-list-searchselforg.$(OBJEXT) -am_libensc_vector_diet_a_OBJECTS = $(am__objects_15) +am_libensc_vector_diet_a_OBJECTS = $(am__objects_16) libensc_vector_diet_a_OBJECTS = $(am_libensc_vector_diet_a_OBJECTS) libensc_vector_glibc_a_AR = $(AR) $(ARFLAGS) libensc_vector_glibc_a_LIBADD = -am__objects_16 = \ +am__objects_17 = \ ensc_vector/libensc_vector_glibc_a-vector-clear.$(OBJEXT) \ ensc_vector/libensc_vector_glibc_a-vector-foreach.$(OBJEXT) \ ensc_vector/libensc_vector_glibc_a-vector-free.$(OBJEXT) \ @@ -543,14 +587,14 @@ am__objects_16 = \ ensc_vector/libensc_vector_glibc_a-list-insertinternal.$(OBJEXT) \ ensc_vector/libensc_vector_glibc_a-list-search.$(OBJEXT) \ ensc_vector/libensc_vector_glibc_a-list-searchselforg.$(OBJEXT) -am_libensc_vector_glibc_a_OBJECTS = $(am__objects_16) +am_libensc_vector_glibc_a_OBJECTS = $(am__objects_17) libensc_vector_glibc_a_OBJECTS = $(am_libensc_vector_glibc_a_OBJECTS) libLTLIBRARIES_INSTALL = $(INSTALL) pkglibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) $(pkglib_LTLIBRARIES) lib_libvserver_la_LIBADD = am__lib_libvserver_la_SOURCES_DIST = lib/syscall.c lib/checkversion.c \ - lib/isdirectory.c lib/isfile.c lib/islink.c \ + lib/checkconfig.c lib/isdirectory.c lib/isfile.c lib/islink.c \ lib/getnbipv4root.c lib/getversion.c lib/capabilities.c \ lib/getfilecontext.c lib/getinsecurebcaps.c lib/getxidtype.c \ lib/isdynamicxid.c lib/issupported.c lib/issupportedstring.c \ @@ -561,15 +605,16 @@ am__lib_libvserver_la_SOURCES_DIST = lib/syscall.c lib/checkversion.c \ lib/val2text-v2t-uint32.c lib/val2text-v2t-uint64.c \ lib/parselimit.c lib/planetlab.c lib/getprocentry-legacy.c \ lib/cflags-compat.c lib/cflags_list-compat.c \ - lib/createskeleton.c lib/getvserverbyctx.c \ - lib/getvserverbyctx-compat.hc lib/getvserverbyctx-v13.hc \ - lib/getvservercfgstyle.c lib/getvserverappdir.c \ - lib/getvservercfgdir.c lib/getvserverctx.c \ - lib/getvservername.c lib/getvservervdir.c lib/xidopt2xid.c \ - lib/syscall_rlimit.c lib/syscall_rlimit-v11.hc \ - lib/syscall_kill.c lib/syscall_kill-v11.hc \ - lib/syscall_ctxcreate.c lib/syscall_ctxcreate-v13.hc \ - lib/syscall_ctxmigrate.c lib/syscall_ctxmigrate-v13.hc \ + lib/comparevserverbyid.c lib/createskeleton.c \ + lib/getvserverbyctx.c lib/getvserverbyctx-compat.hc \ + lib/getvserverbyctx-v13.hc lib/getvservercfgstyle.c \ + lib/getvserverappdir.c lib/getvservercfgdir.c \ + lib/getvserverctx.c lib/getvservername.c lib/getvservervdir.c \ + lib/xidopt2xid.c lib/nidopt2nid.c lib/syscall_rlimit.c \ + lib/syscall_rlimit-v11.hc lib/syscall_kill.c \ + lib/syscall_kill-v11.hc lib/syscall_ctxcreate.c \ + lib/syscall_ctxcreate-v13.hc lib/syscall_ctxmigrate.c \ + lib/syscall_ctxmigrate-v13.hc \ lib/syscall_cleanupnamespace-v13.hc \ lib/syscall_cleanupnamespace.c \ lib/syscall_enternamespace-v13.hc lib/syscall_enternamespace.c \ @@ -596,24 +641,36 @@ am__lib_libvserver_la_SOURCES_DIST = lib/syscall.c lib/checkversion.c \ lib/syscall_setnamespace.c lib/syscall_setncaps-net.hc \ lib/syscall_setncaps.c lib/syscall_setnflags-net.hc \ lib/syscall_setnflags.c lib/syscall_setsched-v13.hc \ - lib/syscall_setsched.c lib/syscall_setvhiname-olduts.hc \ - lib/syscall_setvhiname-v13.hc lib/syscall_setvhiname.c \ - lib/syscall_waitexit.c lib/syscall_waitexit-v13.hc \ - lib/bcaps-v13.c lib/bcaps_list-v13.c lib/ccaps-v13.c \ - lib/ccaps_list-v13.c lib/cflags-v13.c lib/cflags_list-v13.c \ - lib/ncaps-net.c lib/ncaps_list-net.c lib/nflags-net.c \ - lib/nflags_list-net.c lib/syscall_adddlimit-v13.hc \ - lib/syscall_adddlimit.c lib/syscall_getdlimit-v13.hc \ - lib/syscall_getdlimit.c lib/syscall_remdlimit-v13.hc \ - lib/syscall_remdlimit.c lib/syscall_setdlimit-v13.hc \ - lib/syscall_setdlimit.c ensc_fmt/fmt-32.c ensc_fmt/fmt-64.c \ - ensc_fmt/fmtx-32.c ensc_fmt/fmtx-64.c ensc_fmt/fmt-tai64n.c \ - ensc_fmt/fmt.h ensc_fmt/fmt.hc ensc_fmt/fmtx.hc \ - ensc_fmt/fmt-internal.h -am__objects_17 = lib/lib_libvserver_la-getprocentry-legacy.lo -am__objects_18 = lib/lib_libvserver_la-cflags-compat.lo \ + lib/syscall_setsched-v13obs.hc lib/syscall_setsched.c \ + lib/syscall_setvhiname-olduts.hc lib/syscall_setvhiname-v13.hc \ + lib/syscall_setvhiname.c lib/syscall_waitexit.c \ + lib/syscall_waitexit-v13.hc lib/bcaps-v13.c \ + lib/bcaps_list-v13.c lib/ccaps-v13.c lib/ccaps_list-v13.c \ + lib/cflags-v13.c lib/cflags_list-v13.c lib/ncaps-net.c \ + lib/ncaps_list-net.c lib/nflags-net.c lib/nflags_list-net.c \ + lib/syscall_adddlimit-v13.hc lib/syscall_adddlimit.c \ + lib/syscall_getdlimit-v13.hc lib/syscall_getdlimit.c \ + lib/syscall_remdlimit-v13.hc lib/syscall_remdlimit.c \ + lib/syscall_setdlimit-v13.hc lib/syscall_setdlimit.c \ + lib/syscall_setccaps-v21.hc lib/syscall_setsched-v21.hc \ + lib/syscall_rlimitstat.c lib/syscall_rlimitstat-v21.hc \ + lib/syscall_resetminmax.c lib/syscall_resetminmax-v21.hc \ + lib/syscall_getvci.c lib/syscall_getvci-v21.hc \ + lib/syscall_virtstat.c lib/syscall_virtstat-v21.hc \ + lib/syscall_ctxstat.c lib/syscall_ctxstat-v21.hc \ + lib/syscall_getspacemask.c lib/syscall_getspacemask-v21.hc \ + lib/syscall_enternamespace-v21.hc \ + lib/syscall_setnamespace-v21.hc lib/syscall_ctxmigrate-v21.hc \ + lib/syscall_setmapping.c lib/syscall_setmapping-v21.hc \ + lib/syscall_schedinfo.c lib/syscall_schedinfo-v21.hc \ + ensc_fmt/fmt-32.c ensc_fmt/fmt-64.c ensc_fmt/fmtx-32.c \ + ensc_fmt/fmtx-64.c ensc_fmt/fmt-tai64n.c ensc_fmt/fmt.h \ + ensc_fmt/fmt.hc ensc_fmt/fmtx.hc ensc_fmt/fmt-internal.h +am__objects_18 = lib/lib_libvserver_la-getprocentry-legacy.lo +am__objects_19 = lib/lib_libvserver_la-cflags-compat.lo \ lib/lib_libvserver_la-cflags_list-compat.lo -am__objects_19 = lib/lib_libvserver_la-createskeleton.lo \ +am__objects_20 = lib/lib_libvserver_la-comparevserverbyid.lo \ + lib/lib_libvserver_la-createskeleton.lo \ lib/lib_libvserver_la-getvserverbyctx.lo \ lib/lib_libvserver_la-getvservercfgstyle.lo \ lib/lib_libvserver_la-getvserverappdir.lo \ @@ -621,14 +678,15 @@ am__objects_19 = lib/lib_libvserver_la-createskeleton.lo \ lib/lib_libvserver_la-getvserverctx.lo \ lib/lib_libvserver_la-getvservername.lo \ lib/lib_libvserver_la-getvservervdir.lo \ - lib/lib_libvserver_la-xidopt2xid.lo -am__objects_20 = lib/lib_libvserver_la-syscall_rlimit.lo \ + lib/lib_libvserver_la-xidopt2xid.lo \ + lib/lib_libvserver_la-nidopt2nid.lo +am__objects_21 = lib/lib_libvserver_la-syscall_rlimit.lo \ lib/lib_libvserver_la-syscall_kill.lo -@ENSC_HAVE_C99_COMPILER_TRUE@am__objects_21 = lib/lib_libvserver_la-syscall_adddlimit.lo \ +@ENSC_HAVE_C99_COMPILER_TRUE@am__objects_22 = lib/lib_libvserver_la-syscall_adddlimit.lo \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib/lib_libvserver_la-syscall_getdlimit.lo \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib/lib_libvserver_la-syscall_remdlimit.lo \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib/lib_libvserver_la-syscall_setdlimit.lo -am__objects_22 = lib/lib_libvserver_la-syscall_ctxcreate.lo \ +am__objects_23 = lib/lib_libvserver_la-syscall_ctxcreate.lo \ lib/lib_libvserver_la-syscall_ctxmigrate.lo \ lib/lib_libvserver_la-syscall_cleanupnamespace.lo \ lib/lib_libvserver_la-syscall_enternamespace.lo \ @@ -664,14 +722,23 @@ am__objects_22 = lib/lib_libvserver_la-syscall_ctxcreate.lo \ lib/lib_libvserver_la-ncaps-net.lo \ lib/lib_libvserver_la-ncaps_list-net.lo \ lib/lib_libvserver_la-nflags-net.lo \ - lib/lib_libvserver_la-nflags_list-net.lo $(am__objects_21) -am__objects_23 = ensc_fmt/lib_libvserver_la-fmt-32.lo \ + lib/lib_libvserver_la-nflags_list-net.lo $(am__objects_22) +am__objects_24 = lib/lib_libvserver_la-syscall_rlimitstat.lo \ + lib/lib_libvserver_la-syscall_resetminmax.lo \ + lib/lib_libvserver_la-syscall_getvci.lo \ + lib/lib_libvserver_la-syscall_virtstat.lo \ + lib/lib_libvserver_la-syscall_ctxstat.lo \ + lib/lib_libvserver_la-syscall_getspacemask.lo \ + lib/lib_libvserver_la-syscall_setmapping.lo \ + lib/lib_libvserver_la-syscall_schedinfo.lo +am__objects_25 = ensc_fmt/lib_libvserver_la-fmt-32.lo \ ensc_fmt/lib_libvserver_la-fmt-64.lo \ ensc_fmt/lib_libvserver_la-fmtx-32.lo \ ensc_fmt/lib_libvserver_la-fmtx-64.lo \ ensc_fmt/lib_libvserver_la-fmt-tai64n.lo -am__objects_24 = lib/lib_libvserver_la-syscall.lo \ +am__objects_26 = lib/lib_libvserver_la-syscall.lo \ lib/lib_libvserver_la-checkversion.lo \ + lib/lib_libvserver_la-checkconfig.lo \ lib/lib_libvserver_la-isdirectory.lo \ lib/lib_libvserver_la-isfile.lo \ lib/lib_libvserver_la-islink.lo \ @@ -695,35 +762,39 @@ am__objects_24 = lib/lib_libvserver_la-syscall.lo \ lib/lib_libvserver_la-val2text-v2t-uint32.lo \ lib/lib_libvserver_la-val2text-v2t-uint64.lo \ lib/lib_libvserver_la-parselimit.lo \ - lib/lib_libvserver_la-planetlab.lo $(am__objects_17) \ - $(am__objects_18) $(am__objects_19) $(am__objects_20) \ - $(am__objects_22) $(am__objects_23) -am_lib_libvserver_la_OBJECTS = $(am__objects_24) + lib/lib_libvserver_la-planetlab.lo $(am__objects_18) \ + $(am__objects_19) $(am__objects_20) $(am__objects_21) \ + $(am__objects_23) $(am__objects_24) $(am__objects_25) +am_lib_libvserver_la_OBJECTS = $(am__objects_26) lib_libvserver_la_OBJECTS = $(am_lib_libvserver_la_OBJECTS) am__DEPENDENCIES_1 = lib/libvserver.la src_rpm_fake_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_src_rpm_fake_la_OBJECTS = src/src_rpm_fake_la-rpm-fake.lo src_rpm_fake_la_OBJECTS = $(am_src_rpm_fake_la_OBJECTS) am__EXEEXT_1 = -am__EXEEXT_2 = src/vbuild$(EXEEXT) -am__EXEEXT_3 = src/testsuite/rpm-fake-test$(EXEEXT) +@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_2 = src/testsuite/hashcalc$(EXEEXT) \ +@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@ src/testsuite/hashcalc-plain$(EXEEXT) +am__EXEEXT_3 = src/testsuite/rpm-fake-test$(EXEEXT) $(am__EXEEXT_2) am__EXEEXT_4 = src/testsuite/vunify-functest$(EXEEXT) \ src/testsuite/chcontext-test$(EXEEXT) \ src/testsuite/chbind-test$(EXEEXT) @ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_5 = lib_internal/testsuite/filecfg-ml$(EXEEXT) \ @ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/copy$(EXEEXT) \ -@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus$(EXEEXT) +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/isnumber$(EXEEXT) \ +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/isnumber-gnu$(EXEEXT) \ +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus$(EXEEXT) \ +@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus-gnu$(EXEEXT) legacyPROGRAMS_INSTALL = $(INSTALL_PROGRAM) am__EXEEXT_6 = tests/getctx$(EXEEXT) tests/getinitpid$(EXEEXT) \ tests/vserver-info$(EXEEXT) -am__EXEEXT_7 = src/vunify$(EXEEXT) src/vcopy$(EXEEXT) +am__EXEEXT_7 = src/vunify$(EXEEXT) src/vcopy$(EXEEXT) \ + src/vclone$(EXEEXT) @ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_8 = $(am__EXEEXT_7) -@ENSC_HAVE_CXX_COMPILER_TRUE@am__EXEEXT_9 = $(am__EXEEXT_2) -@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_10 = src/vhashify$(EXEEXT) -@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_11 = vserver-start/vserver.start.bin$(EXEEXT) +@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_9 = src/vhashify$(EXEEXT) +@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_10 = vserver-start/vserver.start.bin$(EXEEXT) pkglibPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -@ENSC_HAVE_CXX_COMPILER_TRUE@am__EXEEXT_12 = $(am__EXEEXT_1) -@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_13 = src/vdlimit$(EXEEXT) +@ENSC_HAVE_CXX_COMPILER_TRUE@am__EXEEXT_11 = $(am__EXEEXT_1) +@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_12 = src/vdlimit$(EXEEXT) sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(legacy_PROGRAMS) $(noinst_PROGRAMS) $(pkglib_PROGRAMS) \ $(sbin_PROGRAMS) @@ -787,41 +858,57 @@ lib_internal_testsuite_filecfg_ml_OBJECTS = \ $(am_lib_internal_testsuite_filecfg_ml_OBJECTS) lib_internal_testsuite_filecfg_ml_DEPENDENCIES = \ $(am__DEPENDENCIES_7) +am_lib_internal_testsuite_isnumber_OBJECTS = \ + lib_internal/testsuite/isnumber.$(OBJEXT) +lib_internal_testsuite_isnumber_OBJECTS = \ + $(am_lib_internal_testsuite_isnumber_OBJECTS) +@USE_DIETLIBC_FALSE@am__DEPENDENCIES_8 = \ +@USE_DIETLIBC_FALSE@ lib-dietlibc-not-enabled-error.a +@USE_DIETLIBC_TRUE@am__DEPENDENCIES_8 = \ +@USE_DIETLIBC_TRUE@ lib_internal/libinternal-diet.a +@USE_DIETLIBC_FALSE@am__DEPENDENCIES_9 = $(am__DEPENDENCIES_7) +@USE_DIETLIBC_TRUE@am__DEPENDENCIES_9 = $(am__DEPENDENCIES_8) +lib_internal_testsuite_isnumber_DEPENDENCIES = $(am__DEPENDENCIES_9) +am_lib_internal_testsuite_isnumber_gnu_OBJECTS = \ + lib_internal/testsuite/isnumber.$(OBJEXT) +lib_internal_testsuite_isnumber_gnu_OBJECTS = \ + $(am_lib_internal_testsuite_isnumber_gnu_OBJECTS) +lib_internal_testsuite_isnumber_gnu_DEPENDENCIES = \ + $(am__DEPENDENCIES_7) am_lib_internal_testsuite_sigbus_OBJECTS = \ lib_internal/testsuite/sigbus.$(OBJEXT) lib_internal_testsuite_sigbus_OBJECTS = \ $(am_lib_internal_testsuite_sigbus_OBJECTS) lib_internal_testsuite_sigbus_LDADD = $(LDADD) +am_lib_internal_testsuite_sigbus_gnu_OBJECTS = \ + lib_internal/testsuite/sigbus.$(OBJEXT) +lib_internal_testsuite_sigbus_gnu_OBJECTS = \ + $(am_lib_internal_testsuite_sigbus_gnu_OBJECTS) +lib_internal_testsuite_sigbus_gnu_LDADD = $(LDADD) am_src_capchroot_OBJECTS = src/capchroot.$(OBJEXT) src_capchroot_OBJECTS = $(am_src_capchroot_OBJECTS) -am__DEPENDENCIES_8 = -am__DEPENDENCIES_9 = $(am__DEPENDENCIES_6) $(am__DEPENDENCIES_8) -src_capchroot_DEPENDENCIES = $(am__DEPENDENCIES_9) +am__DEPENDENCIES_10 = +am__DEPENDENCIES_11 = $(am__DEPENDENCIES_6) $(am__DEPENDENCIES_10) +src_capchroot_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_chain_echo_OBJECTS = src/chain-echo.$(OBJEXT) src_chain_echo_OBJECTS = $(am_src_chain_echo_OBJECTS) src_chain_echo_LDADD = $(LDADD) -am_src_chbind_OBJECTS = src/chbind.$(OBJEXT) -src_chbind_OBJECTS = $(am_src_chbind_OBJECTS) -src_chbind_DEPENDENCIES = $(am__DEPENDENCIES_9) +am_src_chbind_compat_OBJECTS = src/chbind.$(OBJEXT) +src_chbind_compat_OBJECTS = $(am_src_chbind_compat_OBJECTS) +src_chbind_compat_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_chcontext_compat_OBJECTS = src/chcontext.$(OBJEXT) src_chcontext_compat_OBJECTS = $(am_src_chcontext_compat_OBJECTS) -@USE_DIETLIBC_FALSE@am__DEPENDENCIES_10 = \ -@USE_DIETLIBC_FALSE@ lib-dietlibc-not-enabled-error.a -@USE_DIETLIBC_TRUE@am__DEPENDENCIES_10 = \ -@USE_DIETLIBC_TRUE@ lib_internal/libinternal-diet.a -@USE_DIETLIBC_FALSE@am__DEPENDENCIES_11 = $(am__DEPENDENCIES_7) -@USE_DIETLIBC_TRUE@am__DEPENDENCIES_11 = $(am__DEPENDENCIES_10) -src_chcontext_compat_DEPENDENCIES = $(am__DEPENDENCIES_9) \ - $(am__DEPENDENCIES_11) +src_chcontext_compat_DEPENDENCIES = $(am__DEPENDENCIES_11) \ + $(am__DEPENDENCIES_9) src_check_unixfile_SOURCES = src/check-unixfile.c src_check_unixfile_OBJECTS = src/check-unixfile.$(OBJEXT) src_check_unixfile_LDADD = $(LDADD) am_src_chroot_sh_OBJECTS = src/chroot-sh.$(OBJEXT) src_chroot_sh_OBJECTS = $(am_src_chroot_sh_OBJECTS) -src_chroot_sh_LDADD = $(LDADD) +src_chroot_sh_DEPENDENCIES = $(am__DEPENDENCIES_9) am_src_chxid_OBJECTS = src/fstool.$(OBJEXT) src/chxid.$(OBJEXT) src_chxid_OBJECTS = $(am_src_chxid_OBJECTS) -src_chxid_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9) +src_chxid_DEPENDENCIES = $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_11) am_src_exec_cd_OBJECTS = src/exec-cd.$(OBJEXT) src_exec_cd_OBJECTS = $(am_src_exec_cd_OBJECTS) src_exec_cd_LDADD = $(LDADD) @@ -833,13 +920,13 @@ src_fakerunlevel_OBJECTS = $(am_src_fakerunlevel_OBJECTS) src_fakerunlevel_LDADD = $(LDADD) am_src_filetime_OBJECTS = src/filetime.$(OBJEXT) src_filetime_OBJECTS = $(am_src_filetime_OBJECTS) -src_filetime_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_filetime_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_ifspec_OBJECTS = src/ifspec.$(OBJEXT) src_ifspec_OBJECTS = $(am_src_ifspec_OBJECTS) src_ifspec_LDADD = $(LDADD) am_src_keep_ctx_alive_OBJECTS = src/keep-ctx-alive.$(OBJEXT) src_keep_ctx_alive_OBJECTS = $(am_src_keep_ctx_alive_OBJECTS) -src_keep_ctx_alive_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_keep_ctx_alive_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_listdevip_OBJECTS = src/listdevip.$(OBJEXT) src_listdevip_OBJECTS = $(am_src_listdevip_OBJECTS) src_listdevip_LDADD = $(LDADD) @@ -848,11 +935,22 @@ src_lockfile_OBJECTS = $(am_src_lockfile_OBJECTS) src_lockfile_LDADD = $(LDADD) am_src_lsxid_OBJECTS = src/fstool.$(OBJEXT) src/lsxid.$(OBJEXT) src_lsxid_OBJECTS = $(am_src_lsxid_OBJECTS) -src_lsxid_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9) \ +src_lsxid_DEPENDENCIES = $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_11) \ $(am__DEPENDENCIES_4) am_src_mask2prefix_OBJECTS = src/mask2prefix.$(OBJEXT) src_mask2prefix_OBJECTS = $(am_src_mask2prefix_OBJECTS) src_mask2prefix_LDADD = $(LDADD) +am_src_naddress_OBJECTS = src/naddress.$(OBJEXT) +src_naddress_OBJECTS = $(am_src_naddress_OBJECTS) +src_naddress_DEPENDENCIES = $(am__DEPENDENCIES_11) \ + $(am__DEPENDENCIES_9) +am_src_nattribute_OBJECTS = src/nattribute.$(OBJEXT) +src_nattribute_OBJECTS = $(am_src_nattribute_OBJECTS) +src_nattribute_DEPENDENCIES = $(am__DEPENDENCIES_11) +am_src_ncontext_OBJECTS = src/ncontext.$(OBJEXT) +src_ncontext_OBJECTS = $(am_src_ncontext_OBJECTS) +src_ncontext_DEPENDENCIES = $(am__DEPENDENCIES_11) \ + $(am__DEPENDENCIES_9) am_src_parserpmdump_OBJECTS = src/parserpmdump.$(OBJEXT) src_parserpmdump_OBJECTS = $(am_src_parserpmdump_OBJECTS) src_parserpmdump_LDADD = $(LDADD) @@ -864,24 +962,24 @@ src_rebootmgr_OBJECTS = $(am_src_rebootmgr_OBJECTS) src_rebootmgr_LDADD = $(LDADD) am_src_reducecap_OBJECTS = src/reducecap.$(OBJEXT) src_reducecap_OBJECTS = $(am_src_reducecap_OBJECTS) -src_reducecap_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_reducecap_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_rpm_fake_resolver_OBJECTS = src/rpm-fake-resolver.$(OBJEXT) src_rpm_fake_resolver_OBJECTS = $(am_src_rpm_fake_resolver_OBJECTS) -src_rpm_fake_resolver_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_rpm_fake_resolver_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_save_ctxinfo_OBJECTS = src/save_ctxinfo.$(OBJEXT) src_save_ctxinfo_OBJECTS = $(am_src_save_ctxinfo_OBJECTS) -src_save_ctxinfo_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_save_ctxinfo_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_secure_mount_OBJECTS = src/secure-mount.$(OBJEXT) src_secure_mount_OBJECTS = $(am_src_secure_mount_OBJECTS) -src_secure_mount_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_secure_mount_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_setattr_OBJECTS = src/fstool.$(OBJEXT) src/setattr.$(OBJEXT) src_setattr_OBJECTS = $(am_src_setattr_OBJECTS) -src_setattr_DEPENDENCIES = $(am__DEPENDENCIES_11) \ - $(am__DEPENDENCIES_9) +src_setattr_DEPENDENCIES = $(am__DEPENDENCIES_9) \ + $(am__DEPENDENCIES_11) am_src_showattr_OBJECTS = src/fstool.$(OBJEXT) src/showattr.$(OBJEXT) src_showattr_OBJECTS = $(am_src_showattr_OBJECTS) -src_showattr_DEPENDENCIES = $(am__DEPENDENCIES_11) \ - $(am__DEPENDENCIES_9) +src_showattr_DEPENDENCIES = $(am__DEPENDENCIES_9) \ + $(am__DEPENDENCIES_11) src_showperm_SOURCES = src/showperm.c src_showperm_OBJECTS = src/showperm.$(OBJEXT) src_showperm_LDADD = $(LDADD) @@ -898,7 +996,29 @@ am_src_testsuite_chcontext_test_OBJECTS = \ src_testsuite_chcontext_test_OBJECTS = \ $(am_src_testsuite_chcontext_test_OBJECTS) src_testsuite_chcontext_test_DEPENDENCIES = lib/libvserver.la \ - $(am__DEPENDENCIES_11) + $(am__DEPENDENCIES_9) +am_src_testsuite_hashcalc_OBJECTS = src/testsuite/hashcalc.$(OBJEXT) +src_testsuite_hashcalc_OBJECTS = $(am_src_testsuite_hashcalc_OBJECTS) +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_DEPENDENCIES = \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_7) \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_2) \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_1) +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_DEPENDENCIES = \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_9) \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_4) \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_11) +am_src_testsuite_hashcalc_plain_OBJECTS = \ + src/testsuite/hashcalc-plain.$(OBJEXT) +src_testsuite_hashcalc_plain_OBJECTS = \ + $(am_src_testsuite_hashcalc_plain_OBJECTS) +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_plain_DEPENDENCIES = \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_7) \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_2) \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_1) +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_plain_DEPENDENCIES = \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_9) \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_4) \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_11) am_src_testsuite_rpm_fake_test_OBJECTS = \ src/testsuite/rpm-fake-test.$(OBJEXT) src_testsuite_rpm_fake_test_OBJECTS = \ @@ -907,27 +1027,30 @@ src_testsuite_rpm_fake_test_LDADD = $(LDADD) am_src_testsuite_vunify_functest_OBJECTS = src/testsuite/src_testsuite_vunify_functest-vunify-functest.$(OBJEXT) src_testsuite_vunify_functest_OBJECTS = \ $(am_src_testsuite_vunify_functest_OBJECTS) -src_testsuite_vunify_functest_DEPENDENCIES = $(am__DEPENDENCIES_11) +src_testsuite_vunify_functest_DEPENDENCIES = $(am__DEPENDENCIES_9) am_src_vattribute_OBJECTS = src/vattribute.$(OBJEXT) src_vattribute_OBJECTS = $(am_src_vattribute_OBJECTS) -src_vattribute_DEPENDENCIES = $(am__DEPENDENCIES_9) -am_src_vbuild_OBJECTS = src/vbuild.$(OBJEXT) src/vutil.$(OBJEXT) \ - src/vserver.$(OBJEXT) -src_vbuild_OBJECTS = $(am_src_vbuild_OBJECTS) -src_vbuild_LDADD = $(LDADD) -am_src_vcontext_OBJECTS = src/vcontext.$(OBJEXT) +src_vattribute_DEPENDENCIES = $(am__DEPENDENCIES_11) +am_src_vclone_OBJECTS = src/vclone.$(OBJEXT) +src_vclone_OBJECTS = $(am_src_vclone_OBJECTS) +src_vclone_DEPENDENCIES = $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_11) +am_src_vcontext_OBJECTS = src/vcontext.$(OBJEXT) src/vlogin.$(OBJEXT) src_vcontext_OBJECTS = $(am_src_vcontext_OBJECTS) -src_vcontext_DEPENDENCIES = $(am__DEPENDENCIES_9) \ - $(am__DEPENDENCIES_11) +src_vcontext_DEPENDENCIES = $(am__DEPENDENCIES_11) \ + $(am__DEPENDENCIES_9) am_src_vcopy_OBJECTS = src/vcopy.$(OBJEXT) src_vcopy_OBJECTS = $(am_src_vcopy_OBJECTS) -src_vcopy_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9) +src_vcopy_DEPENDENCIES = $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_11) +am_src_vdevmap_OBJECTS = src/vdevmap.$(OBJEXT) +src_vdevmap_OBJECTS = $(am_src_vdevmap_OBJECTS) +src_vdevmap_DEPENDENCIES = $(am__DEPENDENCIES_11) \ + $(am__DEPENDENCIES_9) am_src_vdlimit_OBJECTS = src/vdlimit.$(OBJEXT) src_vdlimit_OBJECTS = $(am_src_vdlimit_OBJECTS) -src_vdlimit_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_vdlimit_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_vdu_OBJECTS = src/vdu.$(OBJEXT) src_vdu_OBJECTS = $(am_src_vdu_OBJECTS) -src_vdu_LDADD = $(LDADD) +src_vdu_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9) am_src_vhashify_OBJECTS = src/vhashify.$(OBJEXT) src_vhashify_OBJECTS = $(am_src_vhashify_OBJECTS) @ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_vhashify_DEPENDENCIES = \ @@ -935,22 +1058,22 @@ src_vhashify_OBJECTS = $(am_src_vhashify_OBJECTS) @ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_2) \ @ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_1) @ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_vhashify_DEPENDENCIES = \ -@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_11) \ +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_9) \ @ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_4) \ -@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_9) +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_11) am_src_vkill_OBJECTS = src/src_vkill-vkill.$(OBJEXT) src_vkill_OBJECTS = $(am_src_vkill_OBJECTS) -src_vkill_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_vkill_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_vlimit_OBJECTS = src/vlimit.$(OBJEXT) src_vlimit_OBJECTS = $(am_src_vlimit_OBJECTS) -src_vlimit_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_vlimit_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_vnamespace_OBJECTS = src/vnamespace.$(OBJEXT) src_vnamespace_OBJECTS = $(am_src_vnamespace_OBJECTS) -src_vnamespace_DEPENDENCIES = $(am__DEPENDENCIES_9) \ - $(am__DEPENDENCIES_11) +src_vnamespace_DEPENDENCIES = $(am__DEPENDENCIES_11) \ + $(am__DEPENDENCIES_9) am_src_vps_OBJECTS = src/vps.$(OBJEXT) src_vps_OBJECTS = $(am_src_vps_OBJECTS) -src_vps_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9) +src_vps_DEPENDENCIES = $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_11) am_src_vreboot_OBJECTS = src/vreboot.$(OBJEXT) src_vreboot_OBJECTS = $(am_src_vreboot_OBJECTS) src_vreboot_LDADD = $(LDADD) @@ -959,30 +1082,33 @@ src_vrsetup_OBJECTS = src/vrsetup.$(OBJEXT) src_vrsetup_LDADD = $(LDADD) am_src_vsched_OBJECTS = src/vsched.$(OBJEXT) src_vsched_OBJECTS = $(am_src_vsched_OBJECTS) -src_vsched_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_vsched_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9) am_src_vserver_info_OBJECTS = src/vserver-info.$(OBJEXT) src_vserver_info_OBJECTS = $(am_src_vserver_info_OBJECTS) -src_vserver_info_DEPENDENCIES = $(am__DEPENDENCIES_11) \ - $(am__DEPENDENCIES_9) +src_vserver_info_DEPENDENCIES = $(am__DEPENDENCIES_9) \ + $(am__DEPENDENCIES_11) am_src_vserver_stat_OBJECTS = src/vserver-stat.$(OBJEXT) src_vserver_stat_OBJECTS = $(am_src_vserver_stat_OBJECTS) -src_vserver_stat_DEPENDENCIES = $(am__DEPENDENCIES_11) \ - $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_4) +src_vserver_stat_DEPENDENCIES = $(am__DEPENDENCIES_9) \ + $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_4) am_src_vsh_OBJECTS = src/vsh.$(OBJEXT) src_vsh_OBJECTS = $(am_src_vsh_OBJECTS) -src_vsh_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_vsh_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_vshelper_sync_OBJECTS = src/vshelper-sync.$(OBJEXT) src_vshelper_sync_OBJECTS = $(am_src_vshelper_sync_OBJECTS) src_vshelper_sync_LDADD = $(LDADD) +am_src_vsysctl_OBJECTS = src/vsysctl.$(OBJEXT) +src_vsysctl_OBJECTS = $(am_src_vsysctl_OBJECTS) +src_vsysctl_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_vuname_OBJECTS = src/vuname.$(OBJEXT) src_vuname_OBJECTS = $(am_src_vuname_OBJECTS) -src_vuname_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_vuname_DEPENDENCIES = $(am__DEPENDENCIES_11) am_src_vunify_OBJECTS = src/vunify.$(OBJEXT) src_vunify_OBJECTS = $(am_src_vunify_OBJECTS) -src_vunify_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_9) +src_vunify_DEPENDENCIES = $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_11) am_src_vwait_OBJECTS = src/vwait.$(OBJEXT) src_vwait_OBJECTS = $(am_src_vwait_OBJECTS) -src_vwait_DEPENDENCIES = $(am__DEPENDENCIES_9) +src_vwait_DEPENDENCIES = $(am__DEPENDENCIES_11) am_tests_escaperoot_OBJECTS = tests/escaperoot.$(OBJEXT) tests_escaperoot_OBJECTS = $(am_tests_escaperoot_OBJECTS) tests_escaperoot_LDADD = $(LDADD) @@ -991,10 +1117,10 @@ tests_forkbomb_OBJECTS = $(am_tests_forkbomb_OBJECTS) tests_forkbomb_LDADD = $(LDADD) am_tests_getctx_OBJECTS = tests/getctx.$(OBJEXT) tests_getctx_OBJECTS = $(am_tests_getctx_OBJECTS) -tests_getctx_DEPENDENCIES = $(am__DEPENDENCIES_9) +tests_getctx_DEPENDENCIES = $(am__DEPENDENCIES_11) am_tests_getinitpid_OBJECTS = tests/getinitpid.$(OBJEXT) tests_getinitpid_OBJECTS = $(am_tests_getinitpid_OBJECTS) -tests_getinitpid_DEPENDENCIES = $(am__DEPENDENCIES_9) +tests_getinitpid_DEPENDENCIES = $(am__DEPENDENCIES_11) am_tests_testipc_OBJECTS = tests/testipc.$(OBJEXT) tests_testipc_OBJECTS = $(am_tests_testipc_OBJECTS) tests_testipc_LDADD = $(LDADD) @@ -1006,7 +1132,7 @@ tests_testopenf_OBJECTS = $(am_tests_testopenf_OBJECTS) tests_testopenf_LDADD = $(LDADD) am_tests_vserver_info_OBJECTS = tests/vserver-info.$(OBJEXT) tests_vserver_info_OBJECTS = $(am_tests_vserver_info_OBJECTS) -tests_vserver_info_DEPENDENCIES = $(am__DEPENDENCIES_9) +tests_vserver_info_DEPENDENCIES = $(am__DEPENDENCIES_11) am_vserver_start_vserver_start_bin_OBJECTS = \ vserver-start/main.$(OBJEXT) vserver-start/mount.$(OBJEXT) \ vserver-start/defaulttty.$(OBJEXT) \ @@ -1021,8 +1147,8 @@ am_vserver_start_vserver_start_bin_OBJECTS = \ vserver-start/configuration-init.$(OBJEXT) vserver_start_vserver_start_bin_OBJECTS = \ $(am_vserver_start_vserver_start_bin_OBJECTS) -vserver_start_vserver_start_bin_DEPENDENCIES = $(am__DEPENDENCIES_9) \ - $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_4) +vserver_start_vserver_start_bin_DEPENDENCIES = $(am__DEPENDENCIES_11) \ + $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_4) initrdSCRIPT_INSTALL = $(INSTALL_SCRIPT) legacySCRIPT_INSTALL = $(INSTALL_SCRIPT) pkglibSCRIPT_INSTALL = $(INSTALL_SCRIPT) @@ -1040,14 +1166,6 @@ LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CXXFLAGS) $(CXXFLAGS) -CXXLD = $(CXX) -CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ - $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(nodist_lib_dietlibc_not_enabled_error_a_SOURCES) \ $(nodist_lib_glibc_not_enabled_error_a_SOURCES) \ $(lib_libvserver_a_SOURCES) \ @@ -1064,33 +1182,41 @@ SOURCES = $(nodist_lib_dietlibc_not_enabled_error_a_SOURCES) \ $(lib_internal_testsuite_command_SOURCES) \ $(lib_internal_testsuite_copy_SOURCES) \ $(lib_internal_testsuite_filecfg_ml_SOURCES) \ + $(lib_internal_testsuite_isnumber_SOURCES) \ + $(lib_internal_testsuite_isnumber_gnu_SOURCES) \ $(lib_internal_testsuite_sigbus_SOURCES) \ + $(lib_internal_testsuite_sigbus_gnu_SOURCES) \ $(src_capchroot_SOURCES) $(src_chain_echo_SOURCES) \ - $(src_chbind_SOURCES) $(src_chcontext_compat_SOURCES) \ + $(src_chbind_compat_SOURCES) $(src_chcontext_compat_SOURCES) \ src/check-unixfile.c $(src_chroot_sh_SOURCES) \ $(src_chxid_SOURCES) $(src_exec_cd_SOURCES) \ $(src_exec_ulimit_SOURCES) $(src_fakerunlevel_SOURCES) \ $(src_filetime_SOURCES) $(src_ifspec_SOURCES) \ $(src_keep_ctx_alive_SOURCES) $(src_listdevip_SOURCES) \ $(src_lockfile_SOURCES) $(src_lsxid_SOURCES) \ - $(src_mask2prefix_SOURCES) $(src_parserpmdump_SOURCES) \ - $(src_readlink_SOURCES) $(src_rebootmgr_SOURCES) \ - $(src_reducecap_SOURCES) $(src_rpm_fake_resolver_SOURCES) \ - $(src_save_ctxinfo_SOURCES) $(src_secure_mount_SOURCES) \ - $(src_setattr_SOURCES) $(src_showattr_SOURCES) src/showperm.c \ - src/sigexec.c $(src_testsuite_chbind_test_SOURCES) \ + $(src_mask2prefix_SOURCES) $(src_naddress_SOURCES) \ + $(src_nattribute_SOURCES) $(src_ncontext_SOURCES) \ + $(src_parserpmdump_SOURCES) $(src_readlink_SOURCES) \ + $(src_rebootmgr_SOURCES) $(src_reducecap_SOURCES) \ + $(src_rpm_fake_resolver_SOURCES) $(src_save_ctxinfo_SOURCES) \ + $(src_secure_mount_SOURCES) $(src_setattr_SOURCES) \ + $(src_showattr_SOURCES) src/showperm.c src/sigexec.c \ + $(src_testsuite_chbind_test_SOURCES) \ $(src_testsuite_chcontext_test_SOURCES) \ + $(src_testsuite_hashcalc_SOURCES) \ + $(src_testsuite_hashcalc_plain_SOURCES) \ $(src_testsuite_rpm_fake_test_SOURCES) \ $(src_testsuite_vunify_functest_SOURCES) \ - $(src_vattribute_SOURCES) $(src_vbuild_SOURCES) \ + $(src_vattribute_SOURCES) $(src_vclone_SOURCES) \ $(src_vcontext_SOURCES) $(src_vcopy_SOURCES) \ - $(src_vdlimit_SOURCES) $(src_vdu_SOURCES) \ - $(src_vhashify_SOURCES) $(src_vkill_SOURCES) \ - $(src_vlimit_SOURCES) $(src_vnamespace_SOURCES) \ - $(src_vps_SOURCES) $(src_vreboot_SOURCES) src/vrsetup.c \ - $(src_vsched_SOURCES) $(src_vserver_info_SOURCES) \ - $(src_vserver_stat_SOURCES) $(src_vsh_SOURCES) \ - $(src_vshelper_sync_SOURCES) $(src_vuname_SOURCES) \ + $(src_vdevmap_SOURCES) $(src_vdlimit_SOURCES) \ + $(src_vdu_SOURCES) $(src_vhashify_SOURCES) \ + $(src_vkill_SOURCES) $(src_vlimit_SOURCES) \ + $(src_vnamespace_SOURCES) $(src_vps_SOURCES) \ + $(src_vreboot_SOURCES) src/vrsetup.c $(src_vsched_SOURCES) \ + $(src_vserver_info_SOURCES) $(src_vserver_stat_SOURCES) \ + $(src_vsh_SOURCES) $(src_vshelper_sync_SOURCES) \ + $(src_vsysctl_SOURCES) $(src_vuname_SOURCES) \ $(src_vunify_SOURCES) $(src_vwait_SOURCES) \ $(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) \ $(tests_getctx_SOURCES) $(tests_getinitpid_SOURCES) \ @@ -1112,33 +1238,41 @@ DIST_SOURCES = $(am__lib_libvserver_a_SOURCES_DIST) \ $(lib_internal_testsuite_command_SOURCES) \ $(lib_internal_testsuite_copy_SOURCES) \ $(lib_internal_testsuite_filecfg_ml_SOURCES) \ + $(lib_internal_testsuite_isnumber_SOURCES) \ + $(lib_internal_testsuite_isnumber_gnu_SOURCES) \ $(lib_internal_testsuite_sigbus_SOURCES) \ + $(lib_internal_testsuite_sigbus_gnu_SOURCES) \ $(src_capchroot_SOURCES) $(src_chain_echo_SOURCES) \ - $(src_chbind_SOURCES) $(src_chcontext_compat_SOURCES) \ + $(src_chbind_compat_SOURCES) $(src_chcontext_compat_SOURCES) \ src/check-unixfile.c $(src_chroot_sh_SOURCES) \ $(src_chxid_SOURCES) $(src_exec_cd_SOURCES) \ $(src_exec_ulimit_SOURCES) $(src_fakerunlevel_SOURCES) \ $(src_filetime_SOURCES) $(src_ifspec_SOURCES) \ $(src_keep_ctx_alive_SOURCES) $(src_listdevip_SOURCES) \ $(src_lockfile_SOURCES) $(src_lsxid_SOURCES) \ - $(src_mask2prefix_SOURCES) $(src_parserpmdump_SOURCES) \ - $(src_readlink_SOURCES) $(src_rebootmgr_SOURCES) \ - $(src_reducecap_SOURCES) $(src_rpm_fake_resolver_SOURCES) \ - $(src_save_ctxinfo_SOURCES) $(src_secure_mount_SOURCES) \ - $(src_setattr_SOURCES) $(src_showattr_SOURCES) src/showperm.c \ - src/sigexec.c $(src_testsuite_chbind_test_SOURCES) \ + $(src_mask2prefix_SOURCES) $(src_naddress_SOURCES) \ + $(src_nattribute_SOURCES) $(src_ncontext_SOURCES) \ + $(src_parserpmdump_SOURCES) $(src_readlink_SOURCES) \ + $(src_rebootmgr_SOURCES) $(src_reducecap_SOURCES) \ + $(src_rpm_fake_resolver_SOURCES) $(src_save_ctxinfo_SOURCES) \ + $(src_secure_mount_SOURCES) $(src_setattr_SOURCES) \ + $(src_showattr_SOURCES) src/showperm.c src/sigexec.c \ + $(src_testsuite_chbind_test_SOURCES) \ $(src_testsuite_chcontext_test_SOURCES) \ + $(src_testsuite_hashcalc_SOURCES) \ + $(src_testsuite_hashcalc_plain_SOURCES) \ $(src_testsuite_rpm_fake_test_SOURCES) \ $(src_testsuite_vunify_functest_SOURCES) \ - $(src_vattribute_SOURCES) $(src_vbuild_SOURCES) \ + $(src_vattribute_SOURCES) $(src_vclone_SOURCES) \ $(src_vcontext_SOURCES) $(src_vcopy_SOURCES) \ - $(src_vdlimit_SOURCES) $(src_vdu_SOURCES) \ - $(src_vhashify_SOURCES) $(src_vkill_SOURCES) \ - $(src_vlimit_SOURCES) $(src_vnamespace_SOURCES) \ - $(src_vps_SOURCES) $(src_vreboot_SOURCES) src/vrsetup.c \ - $(src_vsched_SOURCES) $(src_vserver_info_SOURCES) \ - $(src_vserver_stat_SOURCES) $(src_vsh_SOURCES) \ - $(src_vshelper_sync_SOURCES) $(src_vuname_SOURCES) \ + $(src_vdevmap_SOURCES) $(src_vdlimit_SOURCES) \ + $(src_vdu_SOURCES) $(src_vhashify_SOURCES) \ + $(src_vkill_SOURCES) $(src_vlimit_SOURCES) \ + $(src_vnamespace_SOURCES) $(src_vps_SOURCES) \ + $(src_vreboot_SOURCES) src/vrsetup.c $(src_vsched_SOURCES) \ + $(src_vserver_info_SOURCES) $(src_vserver_stat_SOURCES) \ + $(src_vsh_SOURCES) $(src_vshelper_sync_SOURCES) \ + $(src_vsysctl_SOURCES) $(src_vuname_SOURCES) \ $(src_vunify_SOURCES) $(src_vwait_SOURCES) \ $(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) \ $(tests_getctx_SOURCES) $(tests_getinitpid_SOURCES) \ @@ -1183,6 +1317,7 @@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +BZIP2 = @BZIP2@ CAT = @CAT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -1190,10 +1325,9 @@ CFLAGS = @CFLAGS@ CHOWN = @CHOWN@ CMP = @CMP@ CP = @CP@ +CPIO = @CPIO@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CVS2CL = @CVS2CL@ -CVS2CL_TAG = @CVS2CL_TAG@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -1230,12 +1364,16 @@ ENV = @ENV@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +FILE = @FILE@ GPG_KEY = @GPG_KEY@ GREP = @GREP@ -HAVE_CVS2CL_FALSE = @HAVE_CVS2CL_FALSE@ -HAVE_CVS2CL_TRUE = @HAVE_CVS2CL_TRUE@ -HAVE_RCS2LOG_FALSE = @HAVE_RCS2LOG_FALSE@ -HAVE_RCS2LOG_TRUE = @HAVE_RCS2LOG_TRUE@ +GZIP = @GZIP@ +HAVE_GENTOO_INIT_FALSE = @HAVE_GENTOO_INIT_FALSE@ +HAVE_GENTOO_INIT_TRUE = @HAVE_GENTOO_INIT_TRUE@ +HAVE_SVN2CL_FALSE = @HAVE_SVN2CL_FALSE@ +HAVE_SVN2CL_TRUE = @HAVE_SVN2CL_TRUE@ +HAVE_SYSV_INIT_FALSE = @HAVE_SYSV_INIT_FALSE@ +HAVE_SYSV_INIT_TRUE = @HAVE_SYSV_INIT_TRUE@ HAVE_XSLTPROC_FALSE = @HAVE_XSLTPROC_FALSE@ HAVE_XSLTPROC_TRUE = @HAVE_XSLTPROC_TRUE@ HAVE_XSLTP_FALSE = @HAVE_XSLTP_FALSE@ @@ -1282,16 +1420,18 @@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -RCS2LOG = @RCS2LOG@ RELEASE_CPPFLAGS = @RELEASE_CPPFLAGS@ +RESTORE = @RESTORE@ RM = @RM@ RMDIR = @RMDIR@ RMMOD = @RMMOD@ +RSYNC = @RSYNC@ SED = @SED@ SET_MAKE = @SET_MAKE@ SH = @SH@ SHELL = @SHELL@ STRIP = @STRIP@ +SVN2CL = @SVN2CL@ TAC = @TAC@ TAR = @TAR@ TOUCH = @TOUCH@ @@ -1339,7 +1479,6 @@ includedir = @includedir@ infodir = @infodir@ initrddir = @initrddir@ install_sh = @install_sh@ -kernelincludedir = @kernelincludedir@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ @@ -1359,8 +1498,8 @@ target_alias = @target_alias@ vserverdir = @vserverdir@ ACLOCAL_AMFLAGS = -I m4 SUBDIRS = . distrib -CVS2CL_AMFLAGS = $(CVS2CL_TAG) -U cvsusers.map --show-dead -S --no-wrap -CVS2CL_ALLFLAGS := $(CVS2CL_AMFLAGS) $(CVS2CL_FLAGS) +SVN2CL_AMFLAGS = $(SVN2CL_TAG) --authors=svnusers.map +SVN2CL_ALLFLAGS := $(SVN2CL_AMFLAGS) $(SVN2CL_FLAGS) confdir = $(sysconfdir)/vservers confdefaultsdir = $(confdir)/.defaults sbincfgdir = $(sbindir) @@ -1368,13 +1507,13 @@ legacydir = $(pkglibdir)/legacy include_HEADERS = lib/vserver.h noinst_HEADERS = $(ENSC_VECTOR_HDRS) compat.h compat-c99.h \ lib/syscall-compat.hc lib/syscall-legacy.hc \ - lib/createskeleton-full.hc lib/createskeleton-short.hc \ - lib/fmt.h lib/getversion-internal.hc \ - lib/safechroot-internal.hc lib/ioctl-getext2flags.hc \ - lib/ioctl-getfilecontext.hc lib/ioctl-setext2flags.hc \ - lib/ioctl-setfilecontext.hc lib/ioctl-getxflg.hc \ - lib/ioctl-setxflg.hc lib/ext2fs.h lib/listparser.hc \ - lib/val2text.hc lib/virtual.h lib/internal.h \ + lib/syscall-fallback.h lib/createskeleton-full.hc \ + lib/createskeleton-short.hc lib/fmt.h \ + lib/getversion-internal.hc lib/safechroot-internal.hc \ + lib/ioctl-getext2flags.hc lib/ioctl-getfilecontext.hc \ + lib/ioctl-setext2flags.hc lib/ioctl-setfilecontext.hc \ + lib/ioctl-getxflg.hc lib/ioctl-setxflg.hc lib/ext2fs.h \ + lib/listparser.hc lib/val2text.hc lib/virtual.h lib/internal.h \ lib/syscall-alternative.h lib/syscall-wrap.h \ lib/utils-legacy.h lib/planetlab.h lib/vserver-internal.h \ src/capability-compat.h src/util.h src/fstool.h \ @@ -1390,8 +1529,10 @@ noinst_HEADERS = $(ENSC_VECTOR_HDRS) compat.h compat-c99.h \ ensc_wrappers/wrappers-pivot.hc \ ensc_wrappers/wrappers-resource.hc \ ensc_wrappers/wrappers-socket.hc \ + ensc_wrappers/wrappers-stat.hc \ ensc_wrappers/wrappers-stdlib.hc \ ensc_wrappers/wrappers-string.hc \ + ensc_wrappers/wrappers-termios.hc \ ensc_wrappers/wrappers-unistd.hc \ ensc_wrappers/wrappers-vserver.hc \ ensc_wrappers/wrappers-wait.hc ensc_wrappers/wrappers.h \ @@ -1409,7 +1550,7 @@ noinst_HEADERS = $(ENSC_VECTOR_HDRS) compat.h compat-c99.h \ lib_internal/util-perror.h lib_internal/util-safechdir.h \ lib_internal/util-unixsock.h lib_internal/string.hc noinst_LIBRARIES = $(ENSC_VECTOR_LIBS) $(LIBINTERNAL_GLIBC) \ - $(am__append_10) + $(am__append_14) lib_LIBRARIES = $(am__append_2) lib_LTLIBRARIES = $(LIBVSERVER_GLIBC) pkglib_LTLIBRARIES = src/rpm-fake.la @@ -1421,55 +1562,36 @@ legacy_SCRIPTS = $(scripts_legacy_src_SCRPTS) \ sbin_SCRIPTS = $(scripts_sbin_src_PRGS) $(scripts_sbin_gen_PRGS) \ $(scripts_legacy_src_PRGS) noinst_DATA = $(contrib_gen_DTA) -initrd_SCRIPTS = $(sysv_src_SCRPTS) $(sysv_gen_SCRPTS) -sysconf_DATA = $(sysv_conf_DTA) +initrd_SCRIPTS = $(am__append_11) $(am__append_19) +sysconf_DATA = $(am__append_10) DIETPROGS = $(LIBENSCVECTOR_DIET) lib/lib_libvserver_a-% \ - lib/testsuite/cflags lib/testsuite/personality \ - lib/testsuite/fmt src/chcontext-compat src/capchroot \ - src/chain-echo src/check-unixfile src/chroot-sh src/filetime \ - src/lockfile src/readlink src/secure-mount src/save_ctxinfo \ - src/mask2prefix src/chbind src/exec-cd src/fakerunlevel \ + ensc_fmt/lib_libvserver_a-% lib/testsuite/cflags \ + lib/testsuite/personality lib/testsuite/fmt \ + src/chcontext-compat src/capchroot src/chain-echo \ + src/check-unixfile src/chroot-sh src/filetime src/lockfile \ + src/readlink src/secure-mount src/save_ctxinfo src/mask2prefix \ + src/chbind-compat src/exec-cd src/fakerunlevel \ src/keep-ctx-alive src/exec-ulimit src/vps src/lsxid src/chxid \ src/reducecap src/showattr src/setattr src/sigexec \ src/vattribute src/vlimit src/vnamespace src/vunify src/vuname \ src/rpm-fake-resolver src/vcontext src/vcopy src/vkill \ src/vsched src/vshelper-sync src/vrsetup src/vserver-stat \ - src/vserver-info src/vdlimit src/vsh src/vwait $(am__append_3) \ - $(tests_dietprogs) lib_internal/libinternal-diet.a \ - $(am__append_13) -BUILT_SOURCES = pathconfig.h linuxvirtual.h \ + src/vserver-info src/vdlimit src/vsh src/vdu src/vwait \ + src/ncontext src/nattribute src/naddress src/vdevmap \ + src/vsysctl src/vclone $(am__append_3) $(tests_dietprogs) \ + lib_internal/libinternal-diet.a \ + lib_internal/testsuite/isnumber lib_internal/testsuite/sigbus \ + $(am__append_17) +BUILT_SOURCES = pathconfig.h \ .fixups man_MANS = $(man_pages) -kernel_HDRS = kernel/context.h \ - kernel/context_cmd.h \ - kernel/cvirt.h \ - kernel/cvirt_cmd.h \ - kernel/cvirt_def.h \ - kernel/debug.h \ - kernel/debug_cmd.h \ - kernel/dlimit.h \ - kernel/dlimit_cmd.h \ - kernel/inode.h \ - kernel/inode_cmd.h \ - kernel/legacy.h \ - kernel/limit.h \ - kernel/limit_cmd.h \ - kernel/limit_def.h \ - kernel/namespace.h \ - kernel/namespace_cmd.h \ - kernel/network.h \ - kernel/network_cmd.h \ - kernel/sched.h \ - kernel/sched_cmd.h \ - kernel/sched_def.h \ - kernel/signal_cmd.h \ - kernel/switch.h \ - kernel/xid.h - +kernel_HDRS = $(wildcard kernel/*.h) EXTRA_DIST = pathconfig.h.pathsubst util-vserver.spec THANKS \ REQUIREMENTS $(kernel_HDRS) lib/apidoc/list2xxx.syntax \ - $(src_testsuite_check_src_SCRPTS) $(doc_compatibility_SRCS) \ + $(src_testsuite_check_src_SCRPTS) src/testsuite/vunify-test.sh \ + src/testsuite/hashcalc.sh src/testsuite/hashcalc-plain.sh \ + src/testsuite/vwait-test.sh $(doc_compatibility_SRCS) \ $(doc_configuration_SRCS) $(doc_old_doc) $(doc_gen_DOCS) \ $(man_pages) $(scripts_pkglib_src_DTA) \ $(scripts_pkglib_src_SCRPTS) $(scripts_legacy_src_SCRPTS) \ @@ -1480,9 +1602,10 @@ EXTRA_DIST = pathconfig.h.pathsubst util-vserver.spec THANKS \ $(sysv_src_SCRPTS) $(sysv_conf_DTA) $(contrib_subst_SRCS) \ contrib/make-manifest contrib/yum-2.2.1-chroot.patch \ contrib/yum-2.3.2-chroot.patch contrib/yum-2.3.3-chroot.patch \ - contrib/yum-2.3.4-chroot.patch \ - lib_internal/testsuite/copy-check $(addsuffix .pc.subst, \ - $(PKGCONFIG_FILES)) + contrib/yum-2.3.4-chroot.patch contrib/yum-2.6.0-chroot.patch \ + contrib/yum-2.9.6-chroot.patch contrib/yum-3.0.3-chroot.patch \ + lib_internal/testsuite/copy-check $(gentoo_src_SCRPTS) \ + $(addsuffix .pc.subst, $(PKGCONFIG_FILES)) check_SCRIPTS = $(src_testsuite_check_src_SCRPTS) \ $(src_testsuite_check_gen_SCRPTS) TESTS_DEBUG = no @@ -1491,7 +1614,7 @@ TESTS = lib/testsuite/cflags lib/testsuite/personality \ $(src_testsuite_check_active_PRGS) \ $(src_testsuite_check_src_SCRPTS) \ $(src_testsuite_check_gen_SCRPTS) ensc_vector/testsuite/test1 \ - ensc_vector/testsuite/test2 $(am__append_12) + ensc_vector/testsuite/test2 $(am__append_16) TESTS_ENVIRONMENT = \ ensc_use_expensive_tests="$(ENSC_USE_EXPENSIVE_TESTS)" \ ensc_test_debug="$(TESTS_DEBUG)" \ @@ -1503,7 +1626,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/lib -I $(top_srcdir)/ensc_wrappers \ CLEANFILES = $(BUILT_SOURCES) .*.pathsubst.stamp */.*.pathsubst.stamp \ */*/.*.pathsubst.stamp pathconfig.h .fixups lib/libvserver.la \ lib/libvserver.a lib/apidoc/.apidoc doc/*.raw.html* \ - doc/*.html.tmp $(am__append_6) $(am__append_7) \ + doc/*.html.tmp $(am__append_8) $(am__append_9) \ $(scripts_pkglib_gen_DTA) $(scripts_sbin_gen_PRGS) \ $(scripts_sbincfg_gen_DTA) $(scripts_legacy_gen_SCRPTS) \ $(sysv_gen_SCRPTS) $(contrib_gen_DTA) libensc_vector-diet.a \ @@ -1512,17 +1635,17 @@ CLEANFILES = $(BUILT_SOURCES) .*.pathsubst.stamp */.*.pathsubst.stamp \ $(PKGCONFIG_FILES)) DISTCLEANFILES = FEATURES.txt AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = src/parserpmdump src/showperm \ - src/vbuild src/vcheck src/vreboot src/save_ctxinfo \ - src/mask2prefix src/ifspec src/rebootmgr src/vdu src/vfiles \ - scripts/vapt-get-worker scripts/vrpm-worker \ - scripts/vyum-worker scripts/vrpm-preload \ + src/vcheck src/vreboot src/save_ctxinfo src/mask2prefix \ + src/ifspec src/rebootmgr src/vfiles scripts/vapt-get-worker \ + scripts/vrpm-worker scripts/vyum-worker scripts/vrpm-preload \ scripts/save_s_context scripts/vservers.grabinfo.sh \ scripts/vpstree scripts/vserver-wrapper scripts/vsysvwrapper \ scripts/vtop scripts/legacy/distrib-info scripts/legacy/vps \ scripts/legacy/save_s_context scripts/legacy/vserver \ scripts/legacy/rootshell scripts/legacy/vserver-copy \ scripts/legacy/vserverkillall $(sysv_src_SCRPTS) \ - $(sysv_gen_SCRPTS) vserver-start/vserver.start.bin + $(sysv_gen_SCRPTS) vserver-start/vserver.start.bin \ + $(gentoo_src_SCRPTS) @USE_DIETLIBC_TRUE@DIET_CC := $(DIET) $(DIETFLAGS) $(CC) @USE_DIETLIBC_FALSE@VSERVER_LDFLGS := @USE_DIETLIBC_TRUE@VSERVER_LDFLGS := -static @@ -1535,6 +1658,7 @@ pathsubst_RULES = s!@'PKGLIBDIR'@!$(pkglibdir)!g; \ s!@'CONFDIR'@!$(confdir)!g; \ s!@'SYSCONFDIR'@!$(sysconfdir)!g; \ s!@'PKGSTATEDIR'@!$(pkgstatedir)!g; \ + s!@'PKGCACHEDIR'@!$(pkgcachedir)!g; \ s!@'PKGSTATEREVDIR'@!$(pkgstaterevdir)!g; \ s!@'VSERVERDIR'@!$(vserverdir)!g; \ s!@'VSERVERPKGDIR'@!$(vserverpkgdir)!g; \ @@ -1556,6 +1680,7 @@ pathsubst_RULES = s!@'PKGLIBDIR'@!$(pkglibdir)!g; \ s!@'ENSC_HAVE_CXX_COMPILER_FALSE'@!\@ENSC_HAVE_CXX_COMPILER_FALSE@ !g; \ $(ENSC_PATHPROG_SED) +pkgcachedir = $(localstatedir)/cache/vservers pkgstatedir = $(localstatedir)/run/vservers pkgstaterevdir = $(confdefaultsdir)/run.rev vserverpkgdir = $(vserverdir)/.pkg @@ -1576,7 +1701,8 @@ lib_compat_SRCS = lib/cflags-compat.c \ lib/cflags_list-compat.c lib_legacy_SRCS = lib/getprocentry-legacy.c -lib_management_SRCS = lib/createskeleton.c \ +lib_management_SRCS = lib/comparevserverbyid.c \ + lib/createskeleton.c \ lib/getvserverbyctx.c \ lib/getvserverbyctx-compat.hc \ lib/getvserverbyctx-v13.hc \ @@ -1586,7 +1712,8 @@ lib_management_SRCS = lib/createskeleton.c \ lib/getvserverctx.c \ lib/getvservername.c \ lib/getvservervdir.c \ - lib/xidopt2xid.c + lib/xidopt2xid.c \ + lib/nidopt2nid.c lib_v11_SRCS = lib/syscall_rlimit.c \ lib/syscall_rlimit-v11.hc \ @@ -1621,16 +1748,40 @@ lib_v13_SRCS = lib/syscall_ctxcreate.c lib/syscall_ctxcreate-v13.hc \ lib/syscall_setnamespace.c lib/syscall_setncaps-net.hc \ lib/syscall_setncaps.c lib/syscall_setnflags-net.hc \ lib/syscall_setnflags.c lib/syscall_setsched-v13.hc \ - lib/syscall_setsched.c lib/syscall_setvhiname-olduts.hc \ - lib/syscall_setvhiname-v13.hc lib/syscall_setvhiname.c \ - lib/syscall_waitexit.c lib/syscall_waitexit-v13.hc \ - lib/bcaps-v13.c lib/bcaps_list-v13.c lib/ccaps-v13.c \ - lib/ccaps_list-v13.c lib/cflags-v13.c lib/cflags_list-v13.c \ - lib/ncaps-net.c lib/ncaps_list-net.c lib/nflags-net.c \ - lib/nflags_list-net.c $(am__append_1) + lib/syscall_setsched-v13obs.hc lib/syscall_setsched.c \ + lib/syscall_setvhiname-olduts.hc lib/syscall_setvhiname-v13.hc \ + lib/syscall_setvhiname.c lib/syscall_waitexit.c \ + lib/syscall_waitexit-v13.hc lib/bcaps-v13.c \ + lib/bcaps_list-v13.c lib/ccaps-v13.c lib/ccaps_list-v13.c \ + lib/cflags-v13.c lib/cflags_list-v13.c lib/ncaps-net.c \ + lib/ncaps_list-net.c lib/nflags-net.c lib/nflags_list-net.c \ + $(am__append_1) +lib_v21_SRCS = lib/syscall_setccaps-v21.hc \ + lib/syscall_setsched-v21.hc \ + lib/syscall_rlimitstat.c \ + lib/syscall_rlimitstat-v21.hc \ + lib/syscall_resetminmax.c \ + lib/syscall_resetminmax-v21.hc \ + lib/syscall_getvci.c \ + lib/syscall_getvci-v21.hc \ + lib/syscall_virtstat.c \ + lib/syscall_virtstat-v21.hc \ + lib/syscall_ctxstat.c \ + lib/syscall_ctxstat-v21.hc \ + lib/syscall_getspacemask.c \ + lib/syscall_getspacemask-v21.hc \ + lib/syscall_enternamespace-v21.hc \ + lib/syscall_setnamespace-v21.hc \ + lib/syscall_ctxmigrate-v21.hc \ + lib/syscall_setmapping.c \ + lib/syscall_setmapping-v21.hc \ + lib/syscall_schedinfo.c \ + lib/syscall_schedinfo-v21.hc + PKGCONFIG_FILES = lib/util-vserver lib_SRCS = lib/syscall.c \ lib/checkversion.c \ + lib/checkconfig.c \ lib/isdirectory.c \ lib/isfile.c \ lib/islink.c \ @@ -1660,6 +1811,7 @@ lib_SRCS = lib/syscall.c \ $(lib_management_SRCS) \ $(lib_v11_SRCS) \ $(lib_v13_SRCS) \ + $(lib_v21_SRCS) \ $(ensc_fmt_SRCS) LIBVSERVER_GLIBC = lib/libvserver.la @@ -1689,28 +1841,28 @@ lib_testsuite_parselimit_LDADD = $(LIBVSERVER) lib_testsuite_parselimit_LDFLAGS = $(VSERVER_LDFLGS) lib_testsuite_parselimit_CPPFLAGS = $(AM_CPPFLAGS) -DENSC_TESTSUITE src_sbin_CXX_PROGS = -src_pkglib_CXX_PROGS = src/vbuild -src_pkglib_C99_PROGS = src/vunify src/vcopy +src_pkglib_C99_PROGS = src/vunify src/vcopy src/vclone src_capchroot_SOURCES = src/capchroot.c src_capchroot_LDADD = $(VSERVER_LDADDS) src_capchroot_LDFLAGS = $(VSERVER_LDFLGS) -src_chbind_SOURCES = src/chbind.c -src_chbind_LDADD = $(VSERVER_LDADDS) -src_chbind_LDFLAGS = $(VSERVER_LDFLGS) +src_chbind_compat_SOURCES = src/chbind.c +src_chbind_compat_LDADD = $(VSERVER_LDADDS) +src_chbind_compat_LDFLAGS = $(VSERVER_LDFLGS) src_chcontext_compat_SOURCES = src/chcontext.c src_chcontext_compat_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) src_chcontext_compat_LDFLAGS = $(VSERVER_LDFLGS) -src_vcontext_SOURCES = src/vcontext.c +src_vcontext_SOURCES = src/vcontext.c src/vlogin.c src_vcontext_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) src_vcontext_LDFLAGS = $(VSERVER_LDFLGS) src_vsched_SOURCES = src/vsched.c -src_vsched_LDADD = $(VSERVER_LDADDS) +src_vsched_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) src_vsched_LDFLAGS = $(VSERVER_LDFLGS) src_filetime_SOURCES = src/filetime.c src_filetime_LDADD = $(VSERVER_LDADDS) src_filetime_LDFLAGS = $(VSERVER_LDFLGS) src_chain_echo_SOURCES = src/chain-echo.c src_chroot_sh_SOURCES = src/chroot-sh.c +src_chroot_sh_LDADD = $(LIBINTERNAL) src_exec_cd_SOURCES = src/exec-cd.c src_fakerunlevel_SOURCES = src/fakerunlevel.c src_ifspec_SOURCES = src/ifspec.c @@ -1726,7 +1878,7 @@ src_reducecap_LDADD = $(VSERVER_LDADDS) src_reducecap_LDFLAGS = $(VSERVER_LDFLGS) src_vkill_SOURCES = src/vkill.c src_vkill_LDADD = $(VSERVER_LDADDS) -src_vkill_LDFLAGS = $(VSERVER_LDFLGS) +src_vkill_LDFLAGS = $(VSERVER_LDFLGS) $(LIBINTERNAL) src_vkill_CPPFLAGS = $(AM_CPPFLAGS) -DLEGACYDIR=\"$(legacydir)\" src_vlimit_SOURCES = src/vlimit.c src_vlimit_LDADD = $(VSERVER_LDADDS) @@ -1735,6 +1887,8 @@ src_save_ctxinfo_SOURCES = src/save_ctxinfo.c src_save_ctxinfo_LDADD = $(VSERVER_LDADDS) src_save_ctxinfo_LDFLAGS = $(VSERVER_LDFLGS) src_vdu_SOURCES = src/vdu.c +src_vdu_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) +src_vdu_LDFLAGS = $(VSERVER_LDFLGS) src_vreboot_SOURCES = src/vreboot.c src_secure_mount_SOURCES = src/secure-mount.c src_secure_mount_LDADD = $(VSERVER_LDADDS) @@ -1758,7 +1912,6 @@ src_vserver_info_LDFLAGS = $(VSERVER_LDFLGS) src_vserver_stat_SOURCES = src/vserver-stat.c src_vserver_stat_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS) $(LIBENSCVECTOR) src_vserver_stat_LDFLAGS = $(VSERVER_LDFLGS) -src_vbuild_SOURCES = src/vbuild.cc src/vutil.cc src/vserver.cc src_lsxid_SOURCES = src/fstool.c src/lsxid.c src_lsxid_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS) $(LIBENSCVECTOR) src_lsxid_LDFLAGS = $(VSERVER_LDFLGS) @@ -1801,6 +1954,24 @@ src_vsh_LDFLAGS = $(VSERVER_LDFLGS) src_vwait_SOURCES = src/vwait.c src_vwait_LDADD = $(VSERVER_LDADDS) src_vwait_LDFLAGS = $(VSERVER_LDFLGS) +src_ncontext_SOURCES = src/ncontext.c +src_ncontext_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) +src_ncontext_LDFLAGS = $(VSERVER_LDFLGS) +src_nattribute_SOURCES = src/nattribute.c +src_nattribute_LDADD = $(VSERVER_LDADDS) +src_nattribute_LDFLAGS = $(VSERVER_LDFLGS) +src_naddress_SOURCES = src/naddress.c +src_naddress_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) +src_naddress_LDFLAGS = $(VSERVER_LDFLGS) +src_vdevmap_SOURCES = src/vdevmap.c +src_vdevmap_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) +src_vdevmap_LDFLAGS = $(VSERVER_LDFLGS) +src_vsysctl_SOURCES = src/vsysctl.c +src_vsysctl_LDADD = $(VSERVER_LDADDS) +src_vsysctl_LDFLAGS = $(VSERVER_LDFLGS) +src_vclone_SOURCES = src/vclone.c +src_vclone_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS) +src_vclone_LDFLAGS = $(VSERVER_LDLFGS) @ENSC_HAVE_C99_COMPILER_FALSE@src_sbin_C99_X_PROGS = @ENSC_HAVE_C99_COMPILER_TRUE@src_sbin_C99_X_PROGS = $(src_sbin_C99_PROGS) @ENSC_HAVE_C99_COMPILER_FALSE@src_pkglib_C99_X_PROGS = @@ -1813,9 +1984,12 @@ src_testsuite_check_active_PRGS = src/testsuite/vunify-functest \ src/testsuite/chcontext-test \ src/testsuite/chbind-test -src_testsuite_check_passive_PRGS = src/testsuite/rpm-fake-test +src_testsuite_check_passive_PRGS = src/testsuite/rpm-fake-test \ + $(am__append_6) @ENSC_HAVE_C99_COMPILER_FALSE@src_testsuite_check_src_C99_SCRPTS = -@ENSC_HAVE_C99_COMPILER_TRUE@src_testsuite_check_src_C99_SCRPTS = src/testsuite/vunify-test.sh +@ENSC_HAVE_C99_COMPILER_TRUE@src_testsuite_check_src_C99_SCRPTS = \ +@ENSC_HAVE_C99_COMPILER_TRUE@ src/testsuite/vunify-test.sh \ +@ENSC_HAVE_C99_COMPILER_TRUE@ $(am__append_7) src_testsuite_check_src_SCRPTS = $(src_testsuite_check_src_C99_SCRPTS) src_testsuite_check_gen_SCRPTS = src_testsuite_rpm_fake_test_SOURCES = src/testsuite/rpm-fake-test.c @@ -1826,6 +2000,16 @@ src_testsuite_chcontext_test_SOURCES = src/testsuite/chcontext-test.c src_testsuite_chcontext_test_LDADD = lib/libvserver.la $(LIBINTERNAL) src_testsuite_chbind_test_SOURCES = src/testsuite/chbind-test.c src_testsuite_chbind_test_LDADD = lib/libvserver.la +src_testsuite_hashcalc_SOURCES = src/testsuite/hashcalc.c +src_testsuite_hashcalc_plain_SOURCES = src/testsuite/hashcalc-plain.c +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS) +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_LDFLAGS = +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_LDFLAGS = $(VSERVER_LDFLGS) +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS) +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_plain_LDFLAGS = +@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_plain_LDFLAGS = $(VSERVER_LDFLGS) src_testsuite_CPPFLAGS = -I $(top_srcdir)/src -D ENSC_TESTSUITE doc_old_doc = doc/intro.txt XSLT_AMFLAGS = --stringparam confdir '$(sysconfdir)/vservers' @@ -1837,7 +2021,8 @@ doc_configuration_SRCS = doc/configuration.xml \ doc/configuration.xsd \ doc/configuration.dtd \ doc/configuration.css \ - doc/configuration-xhtml.xsl + doc/configuration-xhtml.xsl \ + doc/configuration-wiki.xsl doc_compatibility_SRCS = doc/compatibility.xml \ doc/compatibility.dtd \ @@ -1856,11 +2041,16 @@ man_pages = man/chbind.8 \ man/vtop.8 scripts_pkglib_src_DTA = scripts/functions \ + scripts/magic.mime \ scripts/vserver-build.apt-rpm \ scripts/vserver-build.skeleton \ scripts/vserver-build.debootstrap \ + scripts/vserver-build.fai \ scripts/vserver-build.rpm \ scripts/vserver-build.yum \ + scripts/vserver-build.template \ + scripts/vserver-build.rsync \ + scripts/vserver-build.clone \ scripts/vserver-build.functions \ scripts/vserver-build.functions.apt \ scripts/vserver-build.functions.rpm \ @@ -1870,7 +2060,9 @@ scripts_pkglib_src_DTA = scripts/functions \ scripts/vserver.functions \ scripts/vserver.start \ scripts/vserver.stop \ - scripts/vserver.suexec + scripts/vserver.suexec \ + scripts/vserver.delete \ + scripts/vserver-init.functions scripts_pkglib_gen_DTA = scripts/util-vserver-vars scripts_pkglib_src_SCRPTS = scripts/pkgmgmt \ @@ -1895,14 +2087,19 @@ scripts_legacy_src_SCRPTS = scripts/legacy/save_s_context \ scripts_legacy_gen_SCRPTS = scripts/legacy/vps scripts_legacy_src_PRGS = scripts/legacy/vserver-copy -scripts_sbin_src_PRGS = scripts/chcontext \ +scripts_sbin_src_PRGS = scripts/chbind \ + scripts/chcontext \ scripts/vapt-get \ + scripts/vdispatch-conf \ + scripts/vemerge \ + scripts/vesync \ scripts/vpstree \ scripts/vrpm \ scripts/vserver \ scripts/vsomething \ scripts/vtop \ scripts/vcached \ + scripts/vupdateworld \ scripts/vuseradd \ scripts/vuserdel \ scripts/vyum @@ -1934,7 +2131,8 @@ tests_vserver_info_LDFLAGS = $(VSERVER_LDFLGS) sysv_src_SCRPTS = sysv/rebootmgr \ sysv/vprocunhide \ sysv/vservers-default \ - sysv/vservers-legacy + sysv/vservers-legacy \ + sysv/util-vserver sysv_gen_SCRPTS = sysv/v_gated \ sysv/v_httpd \ @@ -1985,7 +2183,7 @@ libensc_vector_glibc_a_SOURCES = $(ENSC_VECTOR_SRCS) libensc_vector_glibc_a_CPPFLAGS = $(AM_CPPFLAGS) libensc_vector_diet_a_SOURCES = $(ENSC_VECTOR_SRCS) libensc_vector_diet_a_CPPFLAGS = $(AM_CPPFLAGS) -ENSC_VECTOR_LIBS = $(am__append_8) $(am__append_9) +ENSC_VECTOR_LIBS = $(am__append_12) $(am__append_13) @ENSC_USE_GLIBC_FALSE@LIBENSCVECTOR_GLIBC = lib-glibc-not-enabled-error.a @ENSC_USE_GLIBC_TRUE@LIBENSCVECTOR_GLIBC = libensc_vector-glibc.a @ENSC_USE_DIETLIBC_FALSE@LIBENSCVECTOR_DIET = lib-dietlibc-not-enabled-error.a @@ -2050,7 +2248,9 @@ lib_internal_libinternal_common_SRCS = \ lib_internal/unify-isiunlinkable.c \ lib_internal/util-canonify.c \ lib_internal/util-exitlikeprocess.c \ + lib_internal/util-isnumber.hc \ lib_internal/util-isnumber.c \ + lib_internal/util-isnumberunsigned.c \ lib_internal/util-lockfile.c \ lib_internal/util-safechdir.c \ $(command_SRCS) \ @@ -2072,7 +2272,12 @@ lib_internal_testsuite_filecfg_ml_SOURCES = lib_internal/testsuite/filecfg-ml.c lib_internal_testsuite_filecfg_ml_LDADD = $(LIBINTERNAL_GLIBC) lib_internal_testsuite_copy_SOURCES = lib_internal/testsuite/copy.c lib_internal_testsuite_copy_LDADD = $(LIBINTERNAL_GLIBC) +lib_internal_testsuite_isnumber_SOURCES = lib_internal/testsuite/isnumber.c +lib_internal_testsuite_isnumber_LDADD = $(LIBINTERNAL) +lib_internal_testsuite_isnumber_gnu_SOURCES = lib_internal/testsuite/isnumber.c +lib_internal_testsuite_isnumber_gnu_LDADD = $(LIBINTERNAL_GLIBC) lib_internal_testsuite_sigbus_SOURCES = lib_internal/testsuite/sigbus.c +lib_internal_testsuite_sigbus_gnu_SOURCES = lib_internal/testsuite/sigbus.c vserver_start_vserver_start_bin_SOURCES = \ vserver-start/main.c \ vserver-start/mount.c \ @@ -2101,10 +2306,25 @@ vserver_start_vserver_start_bin_LDADD = $(VSERVER_LDADDS) \ $(LIBENSCVECTOR) vserver_start_vserver_start_bin_LDFLAGS = $(VSERVER_LDFLGS) +gentoo_src_SCRPTS = gentoo/vprocunhide \ + gentoo/vservers.default \ + gentoo/util-vserver + BAD_INC_PATHS = /usr/include|/usr/local/include BAD_LIB_PATHS = /usr/lib pkgconfdir = $(libdir)/pkgconfig pkgconf_DATA = $(addsuffix .pc, $(PKGCONFIG_FILES)) +pkgconf_SUBST = s!@'PACKAGE'@!$(PACKAGE)!g; \ + s!@'VERSION'@!$(VERSION)!g; \ + s!@'prefix'@!$(prefix)!g; \ + s!@'exec_prefix'@!$(exec_prefix)!g; \ + s!@'libdir'@!$(libdir)!g; \ + s!@'includedir'@!$(includedir)!g; \ + s!@'libflags"@!$${libflags}$(pkgconf_LIBFLAGS)!g;"' \ + s!@'incflags"@!$${incflags}$(pkgconf_INCFLAGS)!g;"' \ + s!@'pkgincflags"@!$${pkgincflags}$(pkgconf_PKGINCFLAGS)!g;"' \ + s!@'pkgincludedir'@!$(pkgincludedir)!g + @ENSC_USE_GLIBC_FALSE@nodist_lib_glibc_not_enabled_error_a_SOURCES = \ @ENSC_USE_GLIBC_FALSE@ lib-glibc-not-enabled-error.c @@ -2112,10 +2332,10 @@ all: $(BUILT_SOURCES) config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -.SUFFIXES: .c .cc .lo .o .obj +.SUFFIXES: .c .lo .o .obj am--refresh: @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/lib/Makefile-files $(srcdir)/lib/apidoc/Makefile-files $(srcdir)/lib/testsuite/Makefile-files $(top_srcdir)/src/Makefile-files $(top_srcdir)/src/testsuite/Makefile-files $(top_srcdir)/doc/Makefile-files $(top_srcdir)/man/Makefile-files $(top_srcdir)/scripts/Makefile-files $(top_srcdir)/tests/Makefile-files $(top_srcdir)/sysv/Makefile-files $(top_srcdir)/contrib/Makefile-files $(top_srcdir)/ensc_vector/Makefile-files $(srcdir)/ensc_vector/testsuite/Makefile-files $(top_srcdir)/ensc_wrappers/Makefile-files $(top_srcdir)/ensc_fmt/Makefile-files $(top_srcdir)/lib_internal/Makefile-files $(top_srcdir)/lib_internal/testsuite/Makefile-files $(top_srcdir)/vserver-start/Makefile-files $(top_srcdir)/m4/gpgsig.am $(top_srcdir)/m4/validate.am $(top_srcdir)/m4/changelog.am $(top_srcdir)/m4/pkgconfig.am $(top_srcdir)/m4/libsel.am $(top_srcdir)/m4/install-notify.am $(am__configure_deps) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/lib/Makefile-files $(srcdir)/lib/apidoc/Makefile-files $(srcdir)/lib/testsuite/Makefile-files $(top_srcdir)/src/Makefile-files $(top_srcdir)/src/testsuite/Makefile-files $(top_srcdir)/doc/Makefile-files $(top_srcdir)/man/Makefile-files $(top_srcdir)/scripts/Makefile-files $(top_srcdir)/tests/Makefile-files $(top_srcdir)/sysv/Makefile-files $(top_srcdir)/contrib/Makefile-files $(top_srcdir)/ensc_vector/Makefile-files $(srcdir)/ensc_vector/testsuite/Makefile-files $(top_srcdir)/ensc_wrappers/Makefile-files $(top_srcdir)/ensc_fmt/Makefile-files $(top_srcdir)/lib_internal/Makefile-files $(top_srcdir)/lib_internal/testsuite/Makefile-files $(top_srcdir)/vserver-start/Makefile-files $(top_srcdir)/gentoo/Makefile-files $(top_srcdir)/m4/gpgsig.am $(top_srcdir)/m4/validate.am $(top_srcdir)/m4/changelog.am $(top_srcdir)/m4/pkgconfig.am $(top_srcdir)/m4/libsel.am $(top_srcdir)/m4/install-notify.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -2217,6 +2437,8 @@ lib/lib_libvserver_a-syscall.$(OBJEXT): lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_a-checkversion.$(OBJEXT): lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_a-checkconfig.$(OBJEXT): lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_a-isdirectory.$(OBJEXT): lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_a-isfile.$(OBJEXT): lib/$(am__dirstamp) \ @@ -2271,6 +2493,8 @@ lib/lib_libvserver_a-cflags-compat.$(OBJEXT): lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_a-cflags_list-compat.$(OBJEXT): \ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_a-comparevserverbyid.$(OBJEXT): \ + lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_a-createskeleton.$(OBJEXT): lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_a-getvserverbyctx.$(OBJEXT): lib/$(am__dirstamp) \ @@ -2289,6 +2513,8 @@ lib/lib_libvserver_a-getvservervdir.$(OBJEXT): lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_a-xidopt2xid.$(OBJEXT): lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_a-nidopt2nid.$(OBJEXT): lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_a-syscall_rlimit.$(OBJEXT): lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_a-syscall_kill.$(OBJEXT): lib/$(am__dirstamp) \ @@ -2375,6 +2601,22 @@ lib/lib_libvserver_a-syscall_remdlimit.$(OBJEXT): lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_a-syscall_setdlimit.$(OBJEXT): lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_a-syscall_rlimitstat.$(OBJEXT): \ + lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_a-syscall_resetminmax.$(OBJEXT): \ + lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_a-syscall_getvci.$(OBJEXT): lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_a-syscall_virtstat.$(OBJEXT): lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_a-syscall_ctxstat.$(OBJEXT): lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_a-syscall_getspacemask.$(OBJEXT): \ + lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_a-syscall_setmapping.$(OBJEXT): \ + lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_a-syscall_schedinfo.$(OBJEXT): lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) ensc_fmt/$(am__dirstamp): @$(mkdir_p) ensc_fmt @: > ensc_fmt/$(am__dirstamp) @@ -2461,6 +2703,9 @@ lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.$(OBJEXT): \ lib_internal/lib_internal_libinternal_diet_a-util-isnumber.$(OBJEXT): \ lib_internal/$(am__dirstamp) \ lib_internal/$(DEPDIR)/$(am__dirstamp) +lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.$(OBJEXT): \ + lib_internal/$(am__dirstamp) \ + lib_internal/$(DEPDIR)/$(am__dirstamp) lib_internal/lib_internal_libinternal_diet_a-util-lockfile.$(OBJEXT): \ lib_internal/$(am__dirstamp) \ lib_internal/$(DEPDIR)/$(am__dirstamp) @@ -2570,6 +2815,9 @@ lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.$(OBJEXT): \ lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.$(OBJEXT): \ lib_internal/$(am__dirstamp) \ lib_internal/$(DEPDIR)/$(am__dirstamp) +lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.$(OBJEXT): \ + lib_internal/$(am__dirstamp) \ + lib_internal/$(DEPDIR)/$(am__dirstamp) lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.$(OBJEXT): \ lib_internal/$(am__dirstamp) \ lib_internal/$(DEPDIR)/$(am__dirstamp) @@ -2811,6 +3059,8 @@ lib/lib_libvserver_la-syscall.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_la-checkversion.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_la-checkconfig.lo: lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_la-isdirectory.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_la-isfile.lo: lib/$(am__dirstamp) \ @@ -2865,6 +3115,8 @@ lib/lib_libvserver_la-cflags-compat.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_la-cflags_list-compat.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_la-comparevserverbyid.lo: lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_la-createskeleton.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_la-getvserverbyctx.lo: lib/$(am__dirstamp) \ @@ -2883,6 +3135,8 @@ lib/lib_libvserver_la-getvservervdir.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_la-xidopt2xid.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_la-nidopt2nid.lo: lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_la-syscall_rlimit.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_la-syscall_kill.lo: lib/$(am__dirstamp) \ @@ -2969,6 +3223,22 @@ lib/lib_libvserver_la-syscall_remdlimit.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lib/lib_libvserver_la-syscall_setdlimit.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_la-syscall_rlimitstat.lo: lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_la-syscall_resetminmax.lo: lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_la-syscall_getvci.lo: lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_la-syscall_virtstat.lo: lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_la-syscall_ctxstat.lo: lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_la-syscall_getspacemask.lo: lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_la-syscall_setmapping.lo: lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) +lib/lib_libvserver_la-syscall_schedinfo.lo: lib/$(am__dirstamp) \ + lib/$(DEPDIR)/$(am__dirstamp) ensc_fmt/lib_libvserver_la-fmt-32.lo: ensc_fmt/$(am__dirstamp) \ ensc_fmt/$(DEPDIR)/$(am__dirstamp) ensc_fmt/lib_libvserver_la-fmt-64.lo: ensc_fmt/$(am__dirstamp) \ @@ -3209,12 +3479,24 @@ lib_internal/testsuite/filecfg-ml.$(OBJEXT): \ lib_internal/testsuite/filecfg-ml$(EXEEXT): $(lib_internal_testsuite_filecfg_ml_OBJECTS) $(lib_internal_testsuite_filecfg_ml_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp) @rm -f lib_internal/testsuite/filecfg-ml$(EXEEXT) $(LINK) $(lib_internal_testsuite_filecfg_ml_LDFLAGS) $(lib_internal_testsuite_filecfg_ml_OBJECTS) $(lib_internal_testsuite_filecfg_ml_LDADD) $(LIBS) +lib_internal/testsuite/isnumber.$(OBJEXT): \ + lib_internal/testsuite/$(am__dirstamp) \ + lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp) +lib_internal/testsuite/isnumber$(EXEEXT): $(lib_internal_testsuite_isnumber_OBJECTS) $(lib_internal_testsuite_isnumber_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp) + @rm -f lib_internal/testsuite/isnumber$(EXEEXT) + $(LINK) $(lib_internal_testsuite_isnumber_LDFLAGS) $(lib_internal_testsuite_isnumber_OBJECTS) $(lib_internal_testsuite_isnumber_LDADD) $(LIBS) +lib_internal/testsuite/isnumber-gnu$(EXEEXT): $(lib_internal_testsuite_isnumber_gnu_OBJECTS) $(lib_internal_testsuite_isnumber_gnu_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp) + @rm -f lib_internal/testsuite/isnumber-gnu$(EXEEXT) + $(LINK) $(lib_internal_testsuite_isnumber_gnu_LDFLAGS) $(lib_internal_testsuite_isnumber_gnu_OBJECTS) $(lib_internal_testsuite_isnumber_gnu_LDADD) $(LIBS) lib_internal/testsuite/sigbus.$(OBJEXT): \ lib_internal/testsuite/$(am__dirstamp) \ lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp) lib_internal/testsuite/sigbus$(EXEEXT): $(lib_internal_testsuite_sigbus_OBJECTS) $(lib_internal_testsuite_sigbus_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp) @rm -f lib_internal/testsuite/sigbus$(EXEEXT) $(LINK) $(lib_internal_testsuite_sigbus_LDFLAGS) $(lib_internal_testsuite_sigbus_OBJECTS) $(lib_internal_testsuite_sigbus_LDADD) $(LIBS) +lib_internal/testsuite/sigbus-gnu$(EXEEXT): $(lib_internal_testsuite_sigbus_gnu_OBJECTS) $(lib_internal_testsuite_sigbus_gnu_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp) + @rm -f lib_internal/testsuite/sigbus-gnu$(EXEEXT) + $(LINK) $(lib_internal_testsuite_sigbus_gnu_LDFLAGS) $(lib_internal_testsuite_sigbus_gnu_OBJECTS) $(lib_internal_testsuite_sigbus_gnu_LDADD) $(LIBS) src/capchroot.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/capchroot$(EXEEXT): $(src_capchroot_OBJECTS) $(src_capchroot_DEPENDENCIES) src/$(am__dirstamp) @@ -3227,9 +3509,9 @@ src/chain-echo$(EXEEXT): $(src_chain_echo_OBJECTS) $(src_chain_echo_DEPENDENCIES $(LINK) $(src_chain_echo_LDFLAGS) $(src_chain_echo_OBJECTS) $(src_chain_echo_LDADD) $(LIBS) src/chbind.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) -src/chbind$(EXEEXT): $(src_chbind_OBJECTS) $(src_chbind_DEPENDENCIES) src/$(am__dirstamp) - @rm -f src/chbind$(EXEEXT) - $(LINK) $(src_chbind_LDFLAGS) $(src_chbind_OBJECTS) $(src_chbind_LDADD) $(LIBS) +src/chbind-compat$(EXEEXT): $(src_chbind_compat_OBJECTS) $(src_chbind_compat_DEPENDENCIES) src/$(am__dirstamp) + @rm -f src/chbind-compat$(EXEEXT) + $(LINK) $(src_chbind_compat_LDFLAGS) $(src_chbind_compat_OBJECTS) $(src_chbind_compat_LDADD) $(LIBS) src/chcontext.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/chcontext-compat$(EXEEXT): $(src_chcontext_compat_OBJECTS) $(src_chcontext_compat_DEPENDENCIES) src/$(am__dirstamp) @@ -3300,6 +3582,21 @@ src/mask2prefix.$(OBJEXT): src/$(am__dirstamp) \ src/mask2prefix$(EXEEXT): $(src_mask2prefix_OBJECTS) $(src_mask2prefix_DEPENDENCIES) src/$(am__dirstamp) @rm -f src/mask2prefix$(EXEEXT) $(LINK) $(src_mask2prefix_LDFLAGS) $(src_mask2prefix_OBJECTS) $(src_mask2prefix_LDADD) $(LIBS) +src/naddress.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/naddress$(EXEEXT): $(src_naddress_OBJECTS) $(src_naddress_DEPENDENCIES) src/$(am__dirstamp) + @rm -f src/naddress$(EXEEXT) + $(LINK) $(src_naddress_LDFLAGS) $(src_naddress_OBJECTS) $(src_naddress_LDADD) $(LIBS) +src/nattribute.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/nattribute$(EXEEXT): $(src_nattribute_OBJECTS) $(src_nattribute_DEPENDENCIES) src/$(am__dirstamp) + @rm -f src/nattribute$(EXEEXT) + $(LINK) $(src_nattribute_LDFLAGS) $(src_nattribute_OBJECTS) $(src_nattribute_LDADD) $(LIBS) +src/ncontext.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/ncontext$(EXEEXT): $(src_ncontext_OBJECTS) $(src_ncontext_DEPENDENCIES) src/$(am__dirstamp) + @rm -f src/ncontext$(EXEEXT) + $(LINK) $(src_ncontext_LDFLAGS) $(src_ncontext_OBJECTS) $(src_ncontext_LDADD) $(LIBS) src/parserpmdump.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/parserpmdump$(EXEEXT): $(src_parserpmdump_OBJECTS) $(src_parserpmdump_DEPENDENCIES) src/$(am__dirstamp) @@ -3371,6 +3668,16 @@ src/testsuite/chcontext-test.$(OBJEXT): src/testsuite/$(am__dirstamp) \ src/testsuite/chcontext-test$(EXEEXT): $(src_testsuite_chcontext_test_OBJECTS) $(src_testsuite_chcontext_test_DEPENDENCIES) src/testsuite/$(am__dirstamp) @rm -f src/testsuite/chcontext-test$(EXEEXT) $(LINK) $(src_testsuite_chcontext_test_LDFLAGS) $(src_testsuite_chcontext_test_OBJECTS) $(src_testsuite_chcontext_test_LDADD) $(LIBS) +src/testsuite/hashcalc.$(OBJEXT): src/testsuite/$(am__dirstamp) \ + src/testsuite/$(DEPDIR)/$(am__dirstamp) +src/testsuite/hashcalc$(EXEEXT): $(src_testsuite_hashcalc_OBJECTS) $(src_testsuite_hashcalc_DEPENDENCIES) src/testsuite/$(am__dirstamp) + @rm -f src/testsuite/hashcalc$(EXEEXT) + $(LINK) $(src_testsuite_hashcalc_LDFLAGS) $(src_testsuite_hashcalc_OBJECTS) $(src_testsuite_hashcalc_LDADD) $(LIBS) +src/testsuite/hashcalc-plain.$(OBJEXT): src/testsuite/$(am__dirstamp) \ + src/testsuite/$(DEPDIR)/$(am__dirstamp) +src/testsuite/hashcalc-plain$(EXEEXT): $(src_testsuite_hashcalc_plain_OBJECTS) $(src_testsuite_hashcalc_plain_DEPENDENCIES) src/testsuite/$(am__dirstamp) + @rm -f src/testsuite/hashcalc-plain$(EXEEXT) + $(LINK) $(src_testsuite_hashcalc_plain_LDFLAGS) $(src_testsuite_hashcalc_plain_OBJECTS) $(src_testsuite_hashcalc_plain_LDADD) $(LIBS) src/testsuite/rpm-fake-test.$(OBJEXT): src/testsuite/$(am__dirstamp) \ src/testsuite/$(DEPDIR)/$(am__dirstamp) src/testsuite/rpm-fake-test$(EXEEXT): $(src_testsuite_rpm_fake_test_OBJECTS) $(src_testsuite_rpm_fake_test_DEPENDENCIES) src/testsuite/$(am__dirstamp) @@ -3387,16 +3694,15 @@ src/vattribute.$(OBJEXT): src/$(am__dirstamp) \ src/vattribute$(EXEEXT): $(src_vattribute_OBJECTS) $(src_vattribute_DEPENDENCIES) src/$(am__dirstamp) @rm -f src/vattribute$(EXEEXT) $(LINK) $(src_vattribute_LDFLAGS) $(src_vattribute_OBJECTS) $(src_vattribute_LDADD) $(LIBS) -src/vbuild.$(OBJEXT): src/$(am__dirstamp) \ +src/vclone.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) -src/vutil.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) -src/vserver.$(OBJEXT): src/$(am__dirstamp) \ - src/$(DEPDIR)/$(am__dirstamp) -src/vbuild$(EXEEXT): $(src_vbuild_OBJECTS) $(src_vbuild_DEPENDENCIES) src/$(am__dirstamp) - @rm -f src/vbuild$(EXEEXT) - $(CXXLINK) $(src_vbuild_LDFLAGS) $(src_vbuild_OBJECTS) $(src_vbuild_LDADD) $(LIBS) +src/vclone$(EXEEXT): $(src_vclone_OBJECTS) $(src_vclone_DEPENDENCIES) src/$(am__dirstamp) + @rm -f src/vclone$(EXEEXT) + $(LINK) $(src_vclone_LDFLAGS) $(src_vclone_OBJECTS) $(src_vclone_LDADD) $(LIBS) src/vcontext.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) +src/vlogin.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) src/vcontext$(EXEEXT): $(src_vcontext_OBJECTS) $(src_vcontext_DEPENDENCIES) src/$(am__dirstamp) @rm -f src/vcontext$(EXEEXT) $(LINK) $(src_vcontext_LDFLAGS) $(src_vcontext_OBJECTS) $(src_vcontext_LDADD) $(LIBS) @@ -3404,6 +3710,11 @@ src/vcopy.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) src/vcopy$(EXEEXT): $(src_vcopy_OBJECTS) $(src_vcopy_DEPENDENCIES) src/$(am__dirstamp) @rm -f src/vcopy$(EXEEXT) $(LINK) $(src_vcopy_LDFLAGS) $(src_vcopy_OBJECTS) $(src_vcopy_LDADD) $(LIBS) +src/vdevmap.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/vdevmap$(EXEEXT): $(src_vdevmap_OBJECTS) $(src_vdevmap_DEPENDENCIES) src/$(am__dirstamp) + @rm -f src/vdevmap$(EXEEXT) + $(LINK) $(src_vdevmap_LDFLAGS) $(src_vdevmap_OBJECTS) $(src_vdevmap_LDADD) $(LIBS) src/vdlimit.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/vdlimit$(EXEEXT): $(src_vdlimit_OBJECTS) $(src_vdlimit_DEPENDENCIES) src/$(am__dirstamp) @@ -3471,6 +3782,11 @@ src/vshelper-sync.$(OBJEXT): src/$(am__dirstamp) \ src/vshelper-sync$(EXEEXT): $(src_vshelper_sync_OBJECTS) $(src_vshelper_sync_DEPENDENCIES) src/$(am__dirstamp) @rm -f src/vshelper-sync$(EXEEXT) $(LINK) $(src_vshelper_sync_LDFLAGS) $(src_vshelper_sync_OBJECTS) $(src_vshelper_sync_LDADD) $(LIBS) +src/vsysctl.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/vsysctl$(EXEEXT): $(src_vsysctl_OBJECTS) $(src_vsysctl_DEPENDENCIES) src/$(am__dirstamp) + @rm -f src/vsysctl$(EXEEXT) + $(LINK) $(src_vsysctl_LDFLAGS) $(src_vsysctl_OBJECTS) $(src_vsysctl_LDADD) $(LIBS) src/vuname.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/vuname$(EXEEXT): $(src_vuname_OBJECTS) $(src_vuname_DEPENDENCIES) src/$(am__dirstamp) @@ -3774,7 +4090,9 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_a-cflags-v13.$(OBJEXT) -rm -f lib/lib_libvserver_a-cflags_list-compat.$(OBJEXT) -rm -f lib/lib_libvserver_a-cflags_list-v13.$(OBJEXT) + -rm -f lib/lib_libvserver_a-checkconfig.$(OBJEXT) -rm -f lib/lib_libvserver_a-checkversion.$(OBJEXT) + -rm -f lib/lib_libvserver_a-comparevserverbyid.$(OBJEXT) -rm -f lib/lib_libvserver_a-createskeleton.$(OBJEXT) -rm -f lib/lib_libvserver_a-getfilecontext.$(OBJEXT) -rm -f lib/lib_libvserver_a-getinsecurebcaps.$(OBJEXT) @@ -3801,6 +4119,7 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_a-ncaps_list-net.$(OBJEXT) -rm -f lib/lib_libvserver_a-nflags-net.$(OBJEXT) -rm -f lib/lib_libvserver_a-nflags_list-net.$(OBJEXT) + -rm -f lib/lib_libvserver_a-nidopt2nid.$(OBJEXT) -rm -f lib/lib_libvserver_a-parselimit.$(OBJEXT) -rm -f lib/lib_libvserver_a-personalityflag.$(OBJEXT) -rm -f lib/lib_libvserver_a-personalityflag_list.$(OBJEXT) @@ -3812,6 +4131,7 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_a-syscall_cleanupnamespace.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_ctxcreate.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_ctxmigrate.$(OBJEXT) + -rm -f lib/lib_libvserver_a-syscall_ctxstat.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_enternamespace.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_getccaps.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_getcflags.$(OBJEXT) @@ -3820,8 +4140,10 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_a-syscall_getncaps.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_getnflags.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_getnxinfo.$(OBJEXT) + -rm -f lib/lib_libvserver_a-syscall_getspacemask.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_gettasknid.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_gettaskxid.$(OBJEXT) + -rm -f lib/lib_libvserver_a-syscall_getvci.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_getvhiname.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_getvxinfo.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_kill.$(OBJEXT) @@ -3830,16 +4152,21 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_a-syscall_netmigrate.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_netremove.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_remdlimit.$(OBJEXT) + -rm -f lib/lib_libvserver_a-syscall_resetminmax.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_rlimit.$(OBJEXT) + -rm -f lib/lib_libvserver_a-syscall_rlimitstat.$(OBJEXT) + -rm -f lib/lib_libvserver_a-syscall_schedinfo.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_setccaps.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_setcflags.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_setdlimit.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_setiattr.$(OBJEXT) + -rm -f lib/lib_libvserver_a-syscall_setmapping.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_setnamespace.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_setncaps.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_setnflags.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_setsched.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_setvhiname.$(OBJEXT) + -rm -f lib/lib_libvserver_a-syscall_virtstat.$(OBJEXT) -rm -f lib/lib_libvserver_a-syscall_waitexit.$(OBJEXT) -rm -f lib/lib_libvserver_a-val2text-t2v-uint32.$(OBJEXT) -rm -f lib/lib_libvserver_a-val2text-t2v-uint64.$(OBJEXT) @@ -3864,8 +4191,12 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_la-cflags_list-compat.lo -rm -f lib/lib_libvserver_la-cflags_list-v13.$(OBJEXT) -rm -f lib/lib_libvserver_la-cflags_list-v13.lo + -rm -f lib/lib_libvserver_la-checkconfig.$(OBJEXT) + -rm -f lib/lib_libvserver_la-checkconfig.lo -rm -f lib/lib_libvserver_la-checkversion.$(OBJEXT) -rm -f lib/lib_libvserver_la-checkversion.lo + -rm -f lib/lib_libvserver_la-comparevserverbyid.$(OBJEXT) + -rm -f lib/lib_libvserver_la-comparevserverbyid.lo -rm -f lib/lib_libvserver_la-createskeleton.$(OBJEXT) -rm -f lib/lib_libvserver_la-createskeleton.lo -rm -f lib/lib_libvserver_la-getfilecontext.$(OBJEXT) @@ -3918,6 +4249,8 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_la-nflags-net.lo -rm -f lib/lib_libvserver_la-nflags_list-net.$(OBJEXT) -rm -f lib/lib_libvserver_la-nflags_list-net.lo + -rm -f lib/lib_libvserver_la-nidopt2nid.$(OBJEXT) + -rm -f lib/lib_libvserver_la-nidopt2nid.lo -rm -f lib/lib_libvserver_la-parselimit.$(OBJEXT) -rm -f lib/lib_libvserver_la-parselimit.lo -rm -f lib/lib_libvserver_la-personalityflag.$(OBJEXT) @@ -3940,6 +4273,8 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_la-syscall_ctxcreate.lo -rm -f lib/lib_libvserver_la-syscall_ctxmigrate.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_ctxmigrate.lo + -rm -f lib/lib_libvserver_la-syscall_ctxstat.$(OBJEXT) + -rm -f lib/lib_libvserver_la-syscall_ctxstat.lo -rm -f lib/lib_libvserver_la-syscall_enternamespace.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_enternamespace.lo -rm -f lib/lib_libvserver_la-syscall_getccaps.$(OBJEXT) @@ -3956,10 +4291,14 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_la-syscall_getnflags.lo -rm -f lib/lib_libvserver_la-syscall_getnxinfo.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_getnxinfo.lo + -rm -f lib/lib_libvserver_la-syscall_getspacemask.$(OBJEXT) + -rm -f lib/lib_libvserver_la-syscall_getspacemask.lo -rm -f lib/lib_libvserver_la-syscall_gettasknid.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_gettasknid.lo -rm -f lib/lib_libvserver_la-syscall_gettaskxid.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_gettaskxid.lo + -rm -f lib/lib_libvserver_la-syscall_getvci.$(OBJEXT) + -rm -f lib/lib_libvserver_la-syscall_getvci.lo -rm -f lib/lib_libvserver_la-syscall_getvhiname.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_getvhiname.lo -rm -f lib/lib_libvserver_la-syscall_getvxinfo.$(OBJEXT) @@ -3976,8 +4315,14 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_la-syscall_netremove.lo -rm -f lib/lib_libvserver_la-syscall_remdlimit.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_remdlimit.lo + -rm -f lib/lib_libvserver_la-syscall_resetminmax.$(OBJEXT) + -rm -f lib/lib_libvserver_la-syscall_resetminmax.lo -rm -f lib/lib_libvserver_la-syscall_rlimit.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_rlimit.lo + -rm -f lib/lib_libvserver_la-syscall_rlimitstat.$(OBJEXT) + -rm -f lib/lib_libvserver_la-syscall_rlimitstat.lo + -rm -f lib/lib_libvserver_la-syscall_schedinfo.$(OBJEXT) + -rm -f lib/lib_libvserver_la-syscall_schedinfo.lo -rm -f lib/lib_libvserver_la-syscall_setccaps.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_setccaps.lo -rm -f lib/lib_libvserver_la-syscall_setcflags.$(OBJEXT) @@ -3986,6 +4331,8 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_la-syscall_setdlimit.lo -rm -f lib/lib_libvserver_la-syscall_setiattr.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_setiattr.lo + -rm -f lib/lib_libvserver_la-syscall_setmapping.$(OBJEXT) + -rm -f lib/lib_libvserver_la-syscall_setmapping.lo -rm -f lib/lib_libvserver_la-syscall_setnamespace.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_setnamespace.lo -rm -f lib/lib_libvserver_la-syscall_setncaps.$(OBJEXT) @@ -3996,6 +4343,8 @@ mostlyclean-compile: -rm -f lib/lib_libvserver_la-syscall_setsched.lo -rm -f lib/lib_libvserver_la-syscall_setvhiname.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_setvhiname.lo + -rm -f lib/lib_libvserver_la-syscall_virtstat.$(OBJEXT) + -rm -f lib/lib_libvserver_la-syscall_virtstat.lo -rm -f lib/lib_libvserver_la-syscall_waitexit.$(OBJEXT) -rm -f lib/lib_libvserver_la-syscall_waitexit.lo -rm -f lib/lib_libvserver_la-val2text-t2v-uint32.$(OBJEXT) @@ -4045,6 +4394,7 @@ mostlyclean-compile: -rm -f lib_internal/lib_internal_libinternal_diet_a-util-canonify.$(OBJEXT) -rm -f lib_internal/lib_internal_libinternal_diet_a-util-exitlikeprocess.$(OBJEXT) -rm -f lib_internal/lib_internal_libinternal_diet_a-util-isnumber.$(OBJEXT) + -rm -f lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.$(OBJEXT) -rm -f lib_internal/lib_internal_libinternal_diet_a-util-lockfile.$(OBJEXT) -rm -f lib_internal/lib_internal_libinternal_diet_a-util-safechdir.$(OBJEXT) -rm -f lib_internal/lib_internal_libinternal_glibc_a-command-appendparameter.$(OBJEXT) @@ -4080,11 +4430,13 @@ mostlyclean-compile: -rm -f lib_internal/lib_internal_libinternal_glibc_a-util-canonify.$(OBJEXT) -rm -f lib_internal/lib_internal_libinternal_glibc_a-util-exitlikeprocess.$(OBJEXT) -rm -f lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.$(OBJEXT) + -rm -f lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.$(OBJEXT) -rm -f lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.$(OBJEXT) -rm -f lib_internal/lib_internal_libinternal_glibc_a-util-safechdir.$(OBJEXT) -rm -f lib_internal/testsuite/command.$(OBJEXT) -rm -f lib_internal/testsuite/copy.$(OBJEXT) -rm -f lib_internal/testsuite/filecfg-ml.$(OBJEXT) + -rm -f lib_internal/testsuite/isnumber.$(OBJEXT) -rm -f lib_internal/testsuite/sigbus.$(OBJEXT) -rm -f src/capchroot.$(OBJEXT) -rm -f src/chain-echo.$(OBJEXT) @@ -4104,6 +4456,9 @@ mostlyclean-compile: -rm -f src/lockfile.$(OBJEXT) -rm -f src/lsxid.$(OBJEXT) -rm -f src/mask2prefix.$(OBJEXT) + -rm -f src/naddress.$(OBJEXT) + -rm -f src/nattribute.$(OBJEXT) + -rm -f src/ncontext.$(OBJEXT) -rm -f src/parserpmdump.$(OBJEXT) -rm -f src/readlink.$(OBJEXT) -rm -f src/rebootmgr.$(OBJEXT) @@ -4120,16 +4475,20 @@ mostlyclean-compile: -rm -f src/src_vkill-vkill.$(OBJEXT) -rm -f src/testsuite/chbind-test.$(OBJEXT) -rm -f src/testsuite/chcontext-test.$(OBJEXT) + -rm -f src/testsuite/hashcalc-plain.$(OBJEXT) + -rm -f src/testsuite/hashcalc.$(OBJEXT) -rm -f src/testsuite/rpm-fake-test.$(OBJEXT) -rm -f src/testsuite/src_testsuite_vunify_functest-vunify-functest.$(OBJEXT) -rm -f src/vattribute.$(OBJEXT) - -rm -f src/vbuild.$(OBJEXT) + -rm -f src/vclone.$(OBJEXT) -rm -f src/vcontext.$(OBJEXT) -rm -f src/vcopy.$(OBJEXT) + -rm -f src/vdevmap.$(OBJEXT) -rm -f src/vdlimit.$(OBJEXT) -rm -f src/vdu.$(OBJEXT) -rm -f src/vhashify.$(OBJEXT) -rm -f src/vlimit.$(OBJEXT) + -rm -f src/vlogin.$(OBJEXT) -rm -f src/vnamespace.$(OBJEXT) -rm -f src/vps.$(OBJEXT) -rm -f src/vreboot.$(OBJEXT) @@ -4137,12 +4496,11 @@ mostlyclean-compile: -rm -f src/vsched.$(OBJEXT) -rm -f src/vserver-info.$(OBJEXT) -rm -f src/vserver-stat.$(OBJEXT) - -rm -f src/vserver.$(OBJEXT) -rm -f src/vsh.$(OBJEXT) -rm -f src/vshelper-sync.$(OBJEXT) + -rm -f src/vsysctl.$(OBJEXT) -rm -f src/vuname.$(OBJEXT) -rm -f src/vunify.$(OBJEXT) - -rm -f src/vutil.$(OBJEXT) -rm -f src/vwait.$(OBJEXT) -rm -f tests/escaperoot.$(OBJEXT) -rm -f tests/forkbomb.$(OBJEXT) @@ -4232,7 +4590,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-cflags-v13.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-cflags_list-compat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-cflags_list-v13.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-checkconfig.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-checkversion.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-comparevserverbyid.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getfilecontext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-getinsecurebcaps.Po@am__quote@ @@ -4259,6 +4619,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-ncaps_list-net.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-nflags-net.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-nflags_list-net.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-nidopt2nid.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-parselimit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-personalityflag.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-personalityflag_list.Po@am__quote@ @@ -4270,6 +4631,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_cleanupnamespace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxcreate.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxmigrate.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_enternamespace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getccaps.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getcflags.Po@am__quote@ @@ -4278,8 +4640,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getncaps.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getnflags.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getnxinfo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getspacemask.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_gettasknid.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_gettaskxid.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getvci.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getvhiname.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getvxinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_kill.Po@am__quote@ @@ -4288,16 +4652,21 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_netmigrate.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_netremove.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_remdlimit.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_resetminmax.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimitstat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setccaps.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setcflags.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setdlimit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setiattr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setmapping.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setnamespace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setncaps.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setnflags.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setsched.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setvhiname.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_virtstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_waitexit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-val2text-t2v-uint64.Po@am__quote@ @@ -4313,7 +4682,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-cflags-v13.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-cflags_list-compat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-cflags_list-v13.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-checkconfig.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-checkversion.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-comparevserverbyid.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-createskeleton.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getfilecontext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-getinsecurebcaps.Plo@am__quote@ @@ -4340,6 +4711,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-ncaps_list-net.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-nflags-net.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-nflags_list-net.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-nidopt2nid.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-parselimit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-personalityflag.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-personalityflag_list.Plo@am__quote@ @@ -4351,6 +4723,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_cleanupnamespace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxcreate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxmigrate.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxstat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_enternamespace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getccaps.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getcflags.Plo@am__quote@ @@ -4359,8 +4732,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getncaps.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getnflags.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getnxinfo.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getspacemask.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_gettasknid.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_gettaskxid.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getvci.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getvhiname.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getvxinfo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_kill.Plo@am__quote@ @@ -4369,16 +4744,21 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_netmigrate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_netremove.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_remdlimit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_resetminmax.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimitstat.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_schedinfo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setccaps.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setcflags.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setdlimit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setiattr.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setmapping.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setnamespace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setncaps.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setnflags.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setsched.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setvhiname.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_virtstat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_waitexit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-val2text-t2v-uint64.Plo@am__quote@ @@ -4422,6 +4802,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-canonify.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-exitlikeprocess.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumber.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumberunsigned.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-safechdir.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-command-appendparameter.Po@am__quote@ @@ -4457,11 +4838,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-canonify.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-exitlikeprocess.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumber.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumberunsigned.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-safechdir.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/command.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/copy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/filecfg-ml.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/isnumber.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/sigbus.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/capchroot.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/chain-echo.Po@am__quote@ @@ -4481,6 +4864,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/lockfile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/lsxid.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/mask2prefix.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/naddress.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/nattribute.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/ncontext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/parserpmdump.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/readlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/rebootmgr.Po@am__quote@ @@ -4495,13 +4881,15 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_rpm_fake_la-rpm-fake.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_vkill-vkill.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vattribute.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vbuild.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vclone.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vcontext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vcopy.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vdevmap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vdlimit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vdu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vhashify.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vlimit.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vlogin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vnamespace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vps.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vreboot.Po@am__quote@ @@ -4509,15 +4897,16 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vsched.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vserver-info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vserver-stat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vserver.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vsh.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vshelper-sync.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vsysctl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vuname.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vunify.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vutil.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vwait.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/chbind-test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/chcontext-test.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/hashcalc-plain.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/hashcalc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/rpm-fake-test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/escaperoot.Po@am__quote@ @@ -4594,6 +4983,20 @@ lib/lib_libvserver_a-checkversion.obj: lib/checkversion.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-checkversion.obj `if test -f 'lib/checkversion.c'; then $(CYGPATH_W) 'lib/checkversion.c'; else $(CYGPATH_W) '$(srcdir)/lib/checkversion.c'; fi` +lib/lib_libvserver_a-checkconfig.o: lib/checkconfig.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-checkconfig.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-checkconfig.Tpo" -c -o lib/lib_libvserver_a-checkconfig.o `test -f 'lib/checkconfig.c' || echo '$(srcdir)/'`lib/checkconfig.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-checkconfig.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-checkconfig.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-checkconfig.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/checkconfig.c' object='lib/lib_libvserver_a-checkconfig.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-checkconfig.o `test -f 'lib/checkconfig.c' || echo '$(srcdir)/'`lib/checkconfig.c + +lib/lib_libvserver_a-checkconfig.obj: lib/checkconfig.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-checkconfig.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-checkconfig.Tpo" -c -o lib/lib_libvserver_a-checkconfig.obj `if test -f 'lib/checkconfig.c'; then $(CYGPATH_W) 'lib/checkconfig.c'; else $(CYGPATH_W) '$(srcdir)/lib/checkconfig.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-checkconfig.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-checkconfig.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-checkconfig.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/checkconfig.c' object='lib/lib_libvserver_a-checkconfig.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-checkconfig.obj `if test -f 'lib/checkconfig.c'; then $(CYGPATH_W) 'lib/checkconfig.c'; else $(CYGPATH_W) '$(srcdir)/lib/checkconfig.c'; fi` + lib/lib_libvserver_a-isdirectory.o: lib/isdirectory.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-isdirectory.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Tpo" -c -o lib/lib_libvserver_a-isdirectory.o `test -f 'lib/isdirectory.c' || echo '$(srcdir)/'`lib/isdirectory.c; \ @am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-isdirectory.Tpo"; exit 1; fi @@ -4972,6 +5375,20 @@ lib/lib_libvserver_a-cflags_list-compat.obj: lib/cflags_list-compat.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-cflags_list-compat.obj `if test -f 'lib/cflags_list-compat.c'; then $(CYGPATH_W) 'lib/cflags_list-compat.c'; else $(CYGPATH_W) '$(srcdir)/lib/cflags_list-compat.c'; fi` +lib/lib_libvserver_a-comparevserverbyid.o: lib/comparevserverbyid.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-comparevserverbyid.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-comparevserverbyid.Tpo" -c -o lib/lib_libvserver_a-comparevserverbyid.o `test -f 'lib/comparevserverbyid.c' || echo '$(srcdir)/'`lib/comparevserverbyid.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-comparevserverbyid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-comparevserverbyid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-comparevserverbyid.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/comparevserverbyid.c' object='lib/lib_libvserver_a-comparevserverbyid.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-comparevserverbyid.o `test -f 'lib/comparevserverbyid.c' || echo '$(srcdir)/'`lib/comparevserverbyid.c + +lib/lib_libvserver_a-comparevserverbyid.obj: lib/comparevserverbyid.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-comparevserverbyid.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-comparevserverbyid.Tpo" -c -o lib/lib_libvserver_a-comparevserverbyid.obj `if test -f 'lib/comparevserverbyid.c'; then $(CYGPATH_W) 'lib/comparevserverbyid.c'; else $(CYGPATH_W) '$(srcdir)/lib/comparevserverbyid.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-comparevserverbyid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-comparevserverbyid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-comparevserverbyid.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/comparevserverbyid.c' object='lib/lib_libvserver_a-comparevserverbyid.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-comparevserverbyid.obj `if test -f 'lib/comparevserverbyid.c'; then $(CYGPATH_W) 'lib/comparevserverbyid.c'; else $(CYGPATH_W) '$(srcdir)/lib/comparevserverbyid.c'; fi` + lib/lib_libvserver_a-createskeleton.o: lib/createskeleton.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-createskeleton.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Tpo" -c -o lib/lib_libvserver_a-createskeleton.o `test -f 'lib/createskeleton.c' || echo '$(srcdir)/'`lib/createskeleton.c; \ @am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-createskeleton.Tpo"; exit 1; fi @@ -5098,6 +5515,20 @@ lib/lib_libvserver_a-xidopt2xid.obj: lib/xidopt2xid.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-xidopt2xid.obj `if test -f 'lib/xidopt2xid.c'; then $(CYGPATH_W) 'lib/xidopt2xid.c'; else $(CYGPATH_W) '$(srcdir)/lib/xidopt2xid.c'; fi` +lib/lib_libvserver_a-nidopt2nid.o: lib/nidopt2nid.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-nidopt2nid.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-nidopt2nid.Tpo" -c -o lib/lib_libvserver_a-nidopt2nid.o `test -f 'lib/nidopt2nid.c' || echo '$(srcdir)/'`lib/nidopt2nid.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-nidopt2nid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-nidopt2nid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-nidopt2nid.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/nidopt2nid.c' object='lib/lib_libvserver_a-nidopt2nid.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-nidopt2nid.o `test -f 'lib/nidopt2nid.c' || echo '$(srcdir)/'`lib/nidopt2nid.c + +lib/lib_libvserver_a-nidopt2nid.obj: lib/nidopt2nid.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-nidopt2nid.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-nidopt2nid.Tpo" -c -o lib/lib_libvserver_a-nidopt2nid.obj `if test -f 'lib/nidopt2nid.c'; then $(CYGPATH_W) 'lib/nidopt2nid.c'; else $(CYGPATH_W) '$(srcdir)/lib/nidopt2nid.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-nidopt2nid.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-nidopt2nid.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-nidopt2nid.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/nidopt2nid.c' object='lib/lib_libvserver_a-nidopt2nid.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-nidopt2nid.obj `if test -f 'lib/nidopt2nid.c'; then $(CYGPATH_W) 'lib/nidopt2nid.c'; else $(CYGPATH_W) '$(srcdir)/lib/nidopt2nid.c'; fi` + lib/lib_libvserver_a-syscall_rlimit.o: lib/syscall_rlimit.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_rlimit.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo" -c -o lib/lib_libvserver_a-syscall_rlimit.o `test -f 'lib/syscall_rlimit.c' || echo '$(srcdir)/'`lib/syscall_rlimit.c; \ @am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Tpo"; exit 1; fi @@ -5700,6 +6131,118 @@ lib/lib_libvserver_a-syscall_setdlimit.obj: lib/syscall_setdlimit.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setdlimit.obj `if test -f 'lib/syscall_setdlimit.c'; then $(CYGPATH_W) 'lib/syscall_setdlimit.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setdlimit.c'; fi` +lib/lib_libvserver_a-syscall_rlimitstat.o: lib/syscall_rlimitstat.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_rlimitstat.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimitstat.Tpo" -c -o lib/lib_libvserver_a-syscall_rlimitstat.o `test -f 'lib/syscall_rlimitstat.c' || echo '$(srcdir)/'`lib/syscall_rlimitstat.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimitstat.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimitstat.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimitstat.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_rlimitstat.c' object='lib/lib_libvserver_a-syscall_rlimitstat.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_rlimitstat.o `test -f 'lib/syscall_rlimitstat.c' || echo '$(srcdir)/'`lib/syscall_rlimitstat.c + +lib/lib_libvserver_a-syscall_rlimitstat.obj: lib/syscall_rlimitstat.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_rlimitstat.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimitstat.Tpo" -c -o lib/lib_libvserver_a-syscall_rlimitstat.obj `if test -f 'lib/syscall_rlimitstat.c'; then $(CYGPATH_W) 'lib/syscall_rlimitstat.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_rlimitstat.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimitstat.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimitstat.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimitstat.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_rlimitstat.c' object='lib/lib_libvserver_a-syscall_rlimitstat.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_rlimitstat.obj `if test -f 'lib/syscall_rlimitstat.c'; then $(CYGPATH_W) 'lib/syscall_rlimitstat.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_rlimitstat.c'; fi` + +lib/lib_libvserver_a-syscall_resetminmax.o: lib/syscall_resetminmax.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_resetminmax.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_resetminmax.Tpo" -c -o lib/lib_libvserver_a-syscall_resetminmax.o `test -f 'lib/syscall_resetminmax.c' || echo '$(srcdir)/'`lib/syscall_resetminmax.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_resetminmax.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_resetminmax.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_resetminmax.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_resetminmax.c' object='lib/lib_libvserver_a-syscall_resetminmax.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_resetminmax.o `test -f 'lib/syscall_resetminmax.c' || echo '$(srcdir)/'`lib/syscall_resetminmax.c + +lib/lib_libvserver_a-syscall_resetminmax.obj: lib/syscall_resetminmax.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_resetminmax.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_resetminmax.Tpo" -c -o lib/lib_libvserver_a-syscall_resetminmax.obj `if test -f 'lib/syscall_resetminmax.c'; then $(CYGPATH_W) 'lib/syscall_resetminmax.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_resetminmax.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_resetminmax.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_resetminmax.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_resetminmax.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_resetminmax.c' object='lib/lib_libvserver_a-syscall_resetminmax.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_resetminmax.obj `if test -f 'lib/syscall_resetminmax.c'; then $(CYGPATH_W) 'lib/syscall_resetminmax.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_resetminmax.c'; fi` + +lib/lib_libvserver_a-syscall_getvci.o: lib/syscall_getvci.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getvci.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvci.Tpo" -c -o lib/lib_libvserver_a-syscall_getvci.o `test -f 'lib/syscall_getvci.c' || echo '$(srcdir)/'`lib/syscall_getvci.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvci.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvci.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvci.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getvci.c' object='lib/lib_libvserver_a-syscall_getvci.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getvci.o `test -f 'lib/syscall_getvci.c' || echo '$(srcdir)/'`lib/syscall_getvci.c + +lib/lib_libvserver_a-syscall_getvci.obj: lib/syscall_getvci.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getvci.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvci.Tpo" -c -o lib/lib_libvserver_a-syscall_getvci.obj `if test -f 'lib/syscall_getvci.c'; then $(CYGPATH_W) 'lib/syscall_getvci.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getvci.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvci.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvci.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getvci.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getvci.c' object='lib/lib_libvserver_a-syscall_getvci.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getvci.obj `if test -f 'lib/syscall_getvci.c'; then $(CYGPATH_W) 'lib/syscall_getvci.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getvci.c'; fi` + +lib/lib_libvserver_a-syscall_virtstat.o: lib/syscall_virtstat.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_virtstat.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_virtstat.Tpo" -c -o lib/lib_libvserver_a-syscall_virtstat.o `test -f 'lib/syscall_virtstat.c' || echo '$(srcdir)/'`lib/syscall_virtstat.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_virtstat.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_virtstat.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_virtstat.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_virtstat.c' object='lib/lib_libvserver_a-syscall_virtstat.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_virtstat.o `test -f 'lib/syscall_virtstat.c' || echo '$(srcdir)/'`lib/syscall_virtstat.c + +lib/lib_libvserver_a-syscall_virtstat.obj: lib/syscall_virtstat.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_virtstat.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_virtstat.Tpo" -c -o lib/lib_libvserver_a-syscall_virtstat.obj `if test -f 'lib/syscall_virtstat.c'; then $(CYGPATH_W) 'lib/syscall_virtstat.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_virtstat.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_virtstat.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_virtstat.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_virtstat.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_virtstat.c' object='lib/lib_libvserver_a-syscall_virtstat.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_virtstat.obj `if test -f 'lib/syscall_virtstat.c'; then $(CYGPATH_W) 'lib/syscall_virtstat.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_virtstat.c'; fi` + +lib/lib_libvserver_a-syscall_ctxstat.o: lib/syscall_ctxstat.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_ctxstat.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxstat.Tpo" -c -o lib/lib_libvserver_a-syscall_ctxstat.o `test -f 'lib/syscall_ctxstat.c' || echo '$(srcdir)/'`lib/syscall_ctxstat.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxstat.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxstat.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxstat.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_ctxstat.c' object='lib/lib_libvserver_a-syscall_ctxstat.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_ctxstat.o `test -f 'lib/syscall_ctxstat.c' || echo '$(srcdir)/'`lib/syscall_ctxstat.c + +lib/lib_libvserver_a-syscall_ctxstat.obj: lib/syscall_ctxstat.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_ctxstat.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxstat.Tpo" -c -o lib/lib_libvserver_a-syscall_ctxstat.obj `if test -f 'lib/syscall_ctxstat.c'; then $(CYGPATH_W) 'lib/syscall_ctxstat.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_ctxstat.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxstat.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxstat.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_ctxstat.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_ctxstat.c' object='lib/lib_libvserver_a-syscall_ctxstat.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_ctxstat.obj `if test -f 'lib/syscall_ctxstat.c'; then $(CYGPATH_W) 'lib/syscall_ctxstat.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_ctxstat.c'; fi` + +lib/lib_libvserver_a-syscall_getspacemask.o: lib/syscall_getspacemask.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getspacemask.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getspacemask.Tpo" -c -o lib/lib_libvserver_a-syscall_getspacemask.o `test -f 'lib/syscall_getspacemask.c' || echo '$(srcdir)/'`lib/syscall_getspacemask.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getspacemask.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getspacemask.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getspacemask.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getspacemask.c' object='lib/lib_libvserver_a-syscall_getspacemask.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getspacemask.o `test -f 'lib/syscall_getspacemask.c' || echo '$(srcdir)/'`lib/syscall_getspacemask.c + +lib/lib_libvserver_a-syscall_getspacemask.obj: lib/syscall_getspacemask.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getspacemask.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_getspacemask.Tpo" -c -o lib/lib_libvserver_a-syscall_getspacemask.obj `if test -f 'lib/syscall_getspacemask.c'; then $(CYGPATH_W) 'lib/syscall_getspacemask.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getspacemask.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getspacemask.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_getspacemask.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_getspacemask.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getspacemask.c' object='lib/lib_libvserver_a-syscall_getspacemask.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getspacemask.obj `if test -f 'lib/syscall_getspacemask.c'; then $(CYGPATH_W) 'lib/syscall_getspacemask.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getspacemask.c'; fi` + +lib/lib_libvserver_a-syscall_setmapping.o: lib/syscall_setmapping.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setmapping.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setmapping.Tpo" -c -o lib/lib_libvserver_a-syscall_setmapping.o `test -f 'lib/syscall_setmapping.c' || echo '$(srcdir)/'`lib/syscall_setmapping.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setmapping.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setmapping.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setmapping.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setmapping.c' object='lib/lib_libvserver_a-syscall_setmapping.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setmapping.o `test -f 'lib/syscall_setmapping.c' || echo '$(srcdir)/'`lib/syscall_setmapping.c + +lib/lib_libvserver_a-syscall_setmapping.obj: lib/syscall_setmapping.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setmapping.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_setmapping.Tpo" -c -o lib/lib_libvserver_a-syscall_setmapping.obj `if test -f 'lib/syscall_setmapping.c'; then $(CYGPATH_W) 'lib/syscall_setmapping.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setmapping.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setmapping.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_setmapping.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_setmapping.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setmapping.c' object='lib/lib_libvserver_a-syscall_setmapping.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setmapping.obj `if test -f 'lib/syscall_setmapping.c'; then $(CYGPATH_W) 'lib/syscall_setmapping.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setmapping.c'; fi` + +lib/lib_libvserver_a-syscall_schedinfo.o: lib/syscall_schedinfo.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_schedinfo.o -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Tpo" -c -o lib/lib_libvserver_a-syscall_schedinfo.o `test -f 'lib/syscall_schedinfo.c' || echo '$(srcdir)/'`lib/syscall_schedinfo.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_schedinfo.c' object='lib/lib_libvserver_a-syscall_schedinfo.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_schedinfo.o `test -f 'lib/syscall_schedinfo.c' || echo '$(srcdir)/'`lib/syscall_schedinfo.c + +lib/lib_libvserver_a-syscall_schedinfo.obj: lib/syscall_schedinfo.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_schedinfo.obj -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Tpo" -c -o lib/lib_libvserver_a-syscall_schedinfo.obj `if test -f 'lib/syscall_schedinfo.c'; then $(CYGPATH_W) 'lib/syscall_schedinfo.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_schedinfo.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Tpo" "lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Po"; else rm -f "lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_schedinfo.c' object='lib/lib_libvserver_a-syscall_schedinfo.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_schedinfo.obj `if test -f 'lib/syscall_schedinfo.c'; then $(CYGPATH_W) 'lib/syscall_schedinfo.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_schedinfo.c'; fi` + ensc_fmt/lib_libvserver_a-fmt-32.o: ensc_fmt/fmt-32.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmt-32.o -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Tpo" -c -o ensc_fmt/lib_libvserver_a-fmt-32.o `test -f 'ensc_fmt/fmt-32.c' || echo '$(srcdir)/'`ensc_fmt/fmt-32.c; \ @am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Po"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Tpo"; exit 1; fi @@ -6050,6 +6593,20 @@ lib_internal/lib_internal_libinternal_diet_a-util-isnumber.obj: lib_internal/uti @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-isnumber.obj `if test -f 'lib_internal/util-isnumber.c'; then $(CYGPATH_W) 'lib_internal/util-isnumber.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-isnumber.c'; fi` +lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.o: lib_internal/util-isnumberunsigned.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumberunsigned.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.o `test -f 'lib_internal/util-isnumberunsigned.c' || echo '$(srcdir)/'`lib_internal/util-isnumberunsigned.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumberunsigned.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumberunsigned.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumberunsigned.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-isnumberunsigned.c' object='lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.o `test -f 'lib_internal/util-isnumberunsigned.c' || echo '$(srcdir)/'`lib_internal/util-isnumberunsigned.c + +lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.obj: lib_internal/util-isnumberunsigned.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumberunsigned.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.obj `if test -f 'lib_internal/util-isnumberunsigned.c'; then $(CYGPATH_W) 'lib_internal/util-isnumberunsigned.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-isnumberunsigned.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumberunsigned.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumberunsigned.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-isnumberunsigned.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-isnumberunsigned.c' object='lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_diet_a-util-isnumberunsigned.obj `if test -f 'lib_internal/util-isnumberunsigned.c'; then $(CYGPATH_W) 'lib_internal/util-isnumberunsigned.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-isnumberunsigned.c'; fi` + lib_internal/lib_internal_libinternal_diet_a-util-lockfile.o: lib_internal/util-lockfile.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_diet_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_diet_a-util-lockfile.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Tpo" -c -o lib_internal/lib_internal_libinternal_diet_a-util-lockfile.o `test -f 'lib_internal/util-lockfile.c' || echo '$(srcdir)/'`lib_internal/util-lockfile.c; \ @am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_diet_a-util-lockfile.Tpo"; exit 1; fi @@ -6540,6 +7097,20 @@ lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.obj: lib_internal/ut @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-isnumber.obj `if test -f 'lib_internal/util-isnumber.c'; then $(CYGPATH_W) 'lib_internal/util-isnumber.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-isnumber.c'; fi` +lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.o: lib_internal/util-isnumberunsigned.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumberunsigned.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.o `test -f 'lib_internal/util-isnumberunsigned.c' || echo '$(srcdir)/'`lib_internal/util-isnumberunsigned.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumberunsigned.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumberunsigned.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumberunsigned.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-isnumberunsigned.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.o `test -f 'lib_internal/util-isnumberunsigned.c' || echo '$(srcdir)/'`lib_internal/util-isnumberunsigned.c + +lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.obj: lib_internal/util-isnumberunsigned.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.obj -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumberunsigned.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.obj `if test -f 'lib_internal/util-isnumberunsigned.c'; then $(CYGPATH_W) 'lib_internal/util-isnumberunsigned.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-isnumberunsigned.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumberunsigned.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumberunsigned.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-isnumberunsigned.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/util-isnumberunsigned.c' object='lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/lib_internal_libinternal_glibc_a-util-isnumberunsigned.obj `if test -f 'lib_internal/util-isnumberunsigned.c'; then $(CYGPATH_W) 'lib_internal/util-isnumberunsigned.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/util-isnumberunsigned.c'; fi` + lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.o: lib_internal/util-lockfile.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_libinternal_glibc_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.o -MD -MP -MF "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Tpo" -c -o lib_internal/lib_internal_libinternal_glibc_a-util-lockfile.o `test -f 'lib_internal/util-lockfile.c' || echo '$(srcdir)/'`lib_internal/util-lockfile.c; \ @am__fastdepCC_TRUE@ then mv -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Tpo" "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Po"; else rm -f "lib_internal/$(DEPDIR)/lib_internal_libinternal_glibc_a-util-lockfile.Tpo"; exit 1; fi @@ -7324,6 +7895,13 @@ lib/lib_libvserver_la-checkversion.lo: lib/checkversion.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-checkversion.lo `test -f 'lib/checkversion.c' || echo '$(srcdir)/'`lib/checkversion.c +lib/lib_libvserver_la-checkconfig.lo: lib/checkconfig.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-checkconfig.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-checkconfig.Tpo" -c -o lib/lib_libvserver_la-checkconfig.lo `test -f 'lib/checkconfig.c' || echo '$(srcdir)/'`lib/checkconfig.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-checkconfig.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-checkconfig.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-checkconfig.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/checkconfig.c' object='lib/lib_libvserver_la-checkconfig.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-checkconfig.lo `test -f 'lib/checkconfig.c' || echo '$(srcdir)/'`lib/checkconfig.c + lib/lib_libvserver_la-isdirectory.lo: lib/isdirectory.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-isdirectory.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-isdirectory.Tpo" -c -o lib/lib_libvserver_la-isdirectory.lo `test -f 'lib/isdirectory.c' || echo '$(srcdir)/'`lib/isdirectory.c; \ @am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-isdirectory.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-isdirectory.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-isdirectory.Tpo"; exit 1; fi @@ -7513,6 +8091,13 @@ lib/lib_libvserver_la-cflags_list-compat.lo: lib/cflags_list-compat.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-cflags_list-compat.lo `test -f 'lib/cflags_list-compat.c' || echo '$(srcdir)/'`lib/cflags_list-compat.c +lib/lib_libvserver_la-comparevserverbyid.lo: lib/comparevserverbyid.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-comparevserverbyid.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-comparevserverbyid.Tpo" -c -o lib/lib_libvserver_la-comparevserverbyid.lo `test -f 'lib/comparevserverbyid.c' || echo '$(srcdir)/'`lib/comparevserverbyid.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-comparevserverbyid.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-comparevserverbyid.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-comparevserverbyid.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/comparevserverbyid.c' object='lib/lib_libvserver_la-comparevserverbyid.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-comparevserverbyid.lo `test -f 'lib/comparevserverbyid.c' || echo '$(srcdir)/'`lib/comparevserverbyid.c + lib/lib_libvserver_la-createskeleton.lo: lib/createskeleton.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-createskeleton.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-createskeleton.Tpo" -c -o lib/lib_libvserver_la-createskeleton.lo `test -f 'lib/createskeleton.c' || echo '$(srcdir)/'`lib/createskeleton.c; \ @am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-createskeleton.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-createskeleton.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-createskeleton.Tpo"; exit 1; fi @@ -7576,6 +8161,13 @@ lib/lib_libvserver_la-xidopt2xid.lo: lib/xidopt2xid.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-xidopt2xid.lo `test -f 'lib/xidopt2xid.c' || echo '$(srcdir)/'`lib/xidopt2xid.c +lib/lib_libvserver_la-nidopt2nid.lo: lib/nidopt2nid.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-nidopt2nid.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-nidopt2nid.Tpo" -c -o lib/lib_libvserver_la-nidopt2nid.lo `test -f 'lib/nidopt2nid.c' || echo '$(srcdir)/'`lib/nidopt2nid.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-nidopt2nid.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-nidopt2nid.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-nidopt2nid.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/nidopt2nid.c' object='lib/lib_libvserver_la-nidopt2nid.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-nidopt2nid.lo `test -f 'lib/nidopt2nid.c' || echo '$(srcdir)/'`lib/nidopt2nid.c + lib/lib_libvserver_la-syscall_rlimit.lo: lib/syscall_rlimit.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_rlimit.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimit.Tpo" -c -o lib/lib_libvserver_la-syscall_rlimit.lo `test -f 'lib/syscall_rlimit.c' || echo '$(srcdir)/'`lib/syscall_rlimit.c; \ @am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimit.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimit.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimit.Tpo"; exit 1; fi @@ -7877,6 +8469,62 @@ lib/lib_libvserver_la-syscall_setdlimit.lo: lib/syscall_setdlimit.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setdlimit.lo `test -f 'lib/syscall_setdlimit.c' || echo '$(srcdir)/'`lib/syscall_setdlimit.c +lib/lib_libvserver_la-syscall_rlimitstat.lo: lib/syscall_rlimitstat.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_rlimitstat.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimitstat.Tpo" -c -o lib/lib_libvserver_la-syscall_rlimitstat.lo `test -f 'lib/syscall_rlimitstat.c' || echo '$(srcdir)/'`lib/syscall_rlimitstat.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimitstat.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimitstat.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimitstat.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_rlimitstat.c' object='lib/lib_libvserver_la-syscall_rlimitstat.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_rlimitstat.lo `test -f 'lib/syscall_rlimitstat.c' || echo '$(srcdir)/'`lib/syscall_rlimitstat.c + +lib/lib_libvserver_la-syscall_resetminmax.lo: lib/syscall_resetminmax.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_resetminmax.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_resetminmax.Tpo" -c -o lib/lib_libvserver_la-syscall_resetminmax.lo `test -f 'lib/syscall_resetminmax.c' || echo '$(srcdir)/'`lib/syscall_resetminmax.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_resetminmax.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_resetminmax.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_resetminmax.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_resetminmax.c' object='lib/lib_libvserver_la-syscall_resetminmax.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_resetminmax.lo `test -f 'lib/syscall_resetminmax.c' || echo '$(srcdir)/'`lib/syscall_resetminmax.c + +lib/lib_libvserver_la-syscall_getvci.lo: lib/syscall_getvci.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getvci.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvci.Tpo" -c -o lib/lib_libvserver_la-syscall_getvci.lo `test -f 'lib/syscall_getvci.c' || echo '$(srcdir)/'`lib/syscall_getvci.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvci.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvci.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getvci.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getvci.c' object='lib/lib_libvserver_la-syscall_getvci.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getvci.lo `test -f 'lib/syscall_getvci.c' || echo '$(srcdir)/'`lib/syscall_getvci.c + +lib/lib_libvserver_la-syscall_virtstat.lo: lib/syscall_virtstat.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_virtstat.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_virtstat.Tpo" -c -o lib/lib_libvserver_la-syscall_virtstat.lo `test -f 'lib/syscall_virtstat.c' || echo '$(srcdir)/'`lib/syscall_virtstat.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_virtstat.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_virtstat.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_virtstat.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_virtstat.c' object='lib/lib_libvserver_la-syscall_virtstat.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_virtstat.lo `test -f 'lib/syscall_virtstat.c' || echo '$(srcdir)/'`lib/syscall_virtstat.c + +lib/lib_libvserver_la-syscall_ctxstat.lo: lib/syscall_ctxstat.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_ctxstat.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxstat.Tpo" -c -o lib/lib_libvserver_la-syscall_ctxstat.lo `test -f 'lib/syscall_ctxstat.c' || echo '$(srcdir)/'`lib/syscall_ctxstat.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxstat.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxstat.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_ctxstat.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_ctxstat.c' object='lib/lib_libvserver_la-syscall_ctxstat.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_ctxstat.lo `test -f 'lib/syscall_ctxstat.c' || echo '$(srcdir)/'`lib/syscall_ctxstat.c + +lib/lib_libvserver_la-syscall_getspacemask.lo: lib/syscall_getspacemask.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getspacemask.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_getspacemask.Tpo" -c -o lib/lib_libvserver_la-syscall_getspacemask.lo `test -f 'lib/syscall_getspacemask.c' || echo '$(srcdir)/'`lib/syscall_getspacemask.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getspacemask.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_getspacemask.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_getspacemask.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getspacemask.c' object='lib/lib_libvserver_la-syscall_getspacemask.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getspacemask.lo `test -f 'lib/syscall_getspacemask.c' || echo '$(srcdir)/'`lib/syscall_getspacemask.c + +lib/lib_libvserver_la-syscall_setmapping.lo: lib/syscall_setmapping.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_setmapping.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_setmapping.Tpo" -c -o lib/lib_libvserver_la-syscall_setmapping.lo `test -f 'lib/syscall_setmapping.c' || echo '$(srcdir)/'`lib/syscall_setmapping.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setmapping.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_setmapping.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_setmapping.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setmapping.c' object='lib/lib_libvserver_la-syscall_setmapping.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setmapping.lo `test -f 'lib/syscall_setmapping.c' || echo '$(srcdir)/'`lib/syscall_setmapping.c + +lib/lib_libvserver_la-syscall_schedinfo.lo: lib/syscall_schedinfo.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_schedinfo.lo -MD -MP -MF "lib/$(DEPDIR)/lib_libvserver_la-syscall_schedinfo.Tpo" -c -o lib/lib_libvserver_la-syscall_schedinfo.lo `test -f 'lib/syscall_schedinfo.c' || echo '$(srcdir)/'`lib/syscall_schedinfo.c; \ +@am__fastdepCC_TRUE@ then mv -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_schedinfo.Tpo" "lib/$(DEPDIR)/lib_libvserver_la-syscall_schedinfo.Plo"; else rm -f "lib/$(DEPDIR)/lib_libvserver_la-syscall_schedinfo.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_schedinfo.c' object='lib/lib_libvserver_la-syscall_schedinfo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_schedinfo.lo `test -f 'lib/syscall_schedinfo.c' || echo '$(srcdir)/'`lib/syscall_schedinfo.c + ensc_fmt/lib_libvserver_la-fmt-32.lo: ensc_fmt/fmt-32.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_la-fmt-32.lo -MD -MP -MF "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Tpo" -c -o ensc_fmt/lib_libvserver_la-fmt-32.lo `test -f 'ensc_fmt/fmt-32.c' || echo '$(srcdir)/'`ensc_fmt/fmt-32.c; \ @am__fastdepCC_TRUE@ then mv -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Tpo" "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Plo"; else rm -f "ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Tpo"; exit 1; fi @@ -8003,30 +8651,6 @@ src/src_vkill-vkill.obj: src/vkill.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vkill_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_vkill-vkill.obj `if test -f 'src/vkill.c'; then $(CYGPATH_W) 'src/vkill.c'; else $(CYGPATH_W) '$(srcdir)/src/vkill.c'; fi` -.cc.o: -@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \ -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< - -.cc.obj: -@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`; \ -@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCXX_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.cc.lo: -@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`; \ -@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \ -@am__fastdepCXX_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Plo"; else rm -f "$$depbase.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< - mostlyclean-libtool: -rm -f *.lo @@ -8367,7 +8991,7 @@ distdir: $(DISTFILES) esac $(am__remove_distdir) mkdir $(distdir) - $(mkdir_p) $(distdir)/. $(distdir)/contrib $(distdir)/doc $(distdir)/ensc_fmt $(distdir)/ensc_vector $(distdir)/ensc_vector/testsuite $(distdir)/ensc_wrappers $(distdir)/kernel $(distdir)/lib $(distdir)/lib/apidoc $(distdir)/lib/testsuite $(distdir)/lib_internal $(distdir)/lib_internal/testsuite $(distdir)/m4 $(distdir)/man $(distdir)/scripts $(distdir)/scripts/legacy $(distdir)/src $(distdir)/src/testsuite $(distdir)/sysv $(distdir)/tests $(distdir)/vserver-start + $(mkdir_p) $(distdir)/. $(distdir)/contrib $(distdir)/doc $(distdir)/ensc_fmt $(distdir)/ensc_vector $(distdir)/ensc_vector/testsuite $(distdir)/ensc_wrappers $(distdir)/gentoo $(distdir)/kernel $(distdir)/lib $(distdir)/lib/apidoc $(distdir)/lib/testsuite $(distdir)/lib_internal $(distdir)/lib_internal/testsuite $(distdir)/m4 $(distdir)/man $(distdir)/scripts $(distdir)/scripts/legacy $(distdir)/src $(distdir)/src/testsuite $(distdir)/sysv $(distdir)/tests $(distdir)/vserver-start @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ @@ -8688,19 +9312,16 @@ uninstall-man: uninstall-man8 silent.%: FORCE - @t=$$(mktemp /tmp/build.XXXXXX) && \ - $(MAKE) '$*' -s 2>$$t >/dev/null && \ - ( cat $$t | \ - grep -v ': In function' | \ - grep -v 'your code still has assertions enabled' | \ - grep -v ' is obsoleted' | \ - grep -v 'warning: #warning'; \ - rm -f $$t || : ) - -linuxvirtual.h: -@ENSC_ENABLE_INTERNAL_HEADERS_TRUE@ ln -sf '$(top_srcdir)/lib/virtual.h' '$@' -@ENSC_ENABLE_INTERNAL_HEADERS_FALSE@ ln -sf '$(kernelincludedir)/linux/virtual.h' '$@' && test -e '$@' || \ -@ENSC_ENABLE_INTERNAL_HEADERS_FALSE@ ln -sf '$(top_srcdir)/lib/virtual.h' '$@' + @t=$$($(MKTEMP) -d /tmp/build.XXXXXX) && \ + trap "rm -rf $$t" EXIT && \ + mkfifo $$t/fifo && \ + ( grep --line-buffered -v \ + -e ': In function' \ + -e 'your code still has assertions enabled' \ + -e ' is obsoleted' \ + -e 'warning: #warning' <$$t/fifo & ) && \ + exec 2>$$t/fifo && \ + $(MAKE) '$*' -s >/dev/null pathconfig.h: .pathconfig.h.pathsubst.stamp .%.pathsubst.stamp: %.pathsubst Makefile @@ -8723,10 +9344,12 @@ update-doc: doc install-data-hook: install-fix-script-paths install-create-dirs install-create-dirs: - $(mkinstalldirs) -m 755 $(DESTDIR)$(pkgstatedir) $(DESTDIR)$(pkgstatedir).rev $(DESTDIR)$(vshelperstatedir) - $(mkinstalldirs) -m 755 $(DESTDIR)$(confdefaultsdir) - f=$(DESTDIR)$(confdefaultsdir)/vdirbase; test -e "$$f" || ln -sf '$(vserverdir)' "$$f" - f=$(DESTDIR)$(pkgstaterevdir); test -e "$$f" || ln -sf '$(pkgstatedir).rev' "$$f" + $(mkinstalldirs) -m 0755 $(DESTDIR)$(pkgstatedir) $(DESTDIR)$(pkgstatedir).rev $(DESTDIR)$(vshelperstatedir) + $(mkinstalldirs) -m 0700 $(DESTDIR)$(pkgcachedir) + $(mkinstalldirs) -m 0755 $(DESTDIR)$(confdefaultsdir) + f=$(DESTDIR)$(confdefaultsdir)/vdirbase; test -e "$$f" || ln -sf '$(vserverdir)' "$$f" + f=$(DESTDIR)$(confdefaultsdir)/cachebase; test -e "$$f" || ln -sf '$(pkgcachedir)' "$$f" + f=$(DESTDIR)$(pkgstaterevdir); test -e "$$f" || ln -sf '$(pkgstatedir).rev' "$$f" install-fix-script-paths: test "/usr/lib/util-vserver" = "$(pkglibdir)" || \ @@ -8840,14 +9463,10 @@ distclean-uptodate: ChangeLog.sed: test "$(srcdir)" != "." -@HAVE_CVS2CL_TRUE@ChangeLog: Makefile -@HAVE_CVS2CL_TRUE@ if test "$(srcdir)" = "." -a -d CVS; then \ -@HAVE_CVS2CL_TRUE@ $(CVS2CL) $(CVS2CL_ALLFLAGS) -f $@; \ -@HAVE_CVS2CL_TRUE@ fi -@HAVE_CVS2CL_FALSE@@HAVE_RCS2LOG_TRUE@ChangeLog: ChangeLog.sed Makefile -@HAVE_CVS2CL_FALSE@@HAVE_RCS2LOG_TRUE@ if test "$(srcdir)" = "." -a -d CVS; then \ -@HAVE_CVS2CL_FALSE@@HAVE_RCS2LOG_TRUE@ $(RCS2LOG) -l 0 -c /dev/stdout | sed -f $< >$@; \ -@HAVE_CVS2CL_FALSE@@HAVE_RCS2LOG_TRUE@ fi +@HAVE_SVN2CL_TRUE@ChangeLog: Makefile +@HAVE_SVN2CL_TRUE@ if test "$(srcdir)" = "." -a -d .svn; then \ +@HAVE_SVN2CL_TRUE@ $(SVN2CL) $(SVN2CL_ALLFLAGS) -o $@; \ +@HAVE_SVN2CL_TRUE@ fi .PHONY: ChangeLog @@ -8865,17 +9484,7 @@ ChangeLog.sed: $(BAD_INC_PATHS)) incflags=;; \ *) incflags='-I$${includedir} ';; \ esac; \ - sed -e 's!@'PACKAGE'@!$(PACKAGE)!g; \ - s!@'VERSION'@!$(VERSION)!g; \ - s!@'prefix'@!$(prefix)!g; \ - s!@'exec_prefix'@!$(exec_prefix)!g; \ - s!@'libdir'@!$(libdir)!g; \ - s!@'includedir'@!$(includedir)!g; \ - s!@'libflags"@!$${libflags}$(pkgconf_LIBFLAGS)!g;"' \ - s!@'incflags"@!$${incflags}$(pkgconf_INCFLAGS)!g;"' \ - s!@'pkgincflags"@!$${pkgincflags}$(pkgconf_PKGINCFLAGS)!g;"' \ - s!@'pkgincludedir'@!$(pkgincludedir)!g' \ - $< >$@ + sed -e '$(pkgconf_SUBST)' $< >$@ test -z "$(CHMOD_REFERENCE)" || $(CHMOD_REFERENCE) '$<' '$@' chmod a-w $@ diff --git a/NEWS b/NEWS index 4b844e3..dc4d47e 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,89 @@ -version 0.30.208 +version 0.30.213 +================ + - added support for the device mapping feature present in development + kernels. + + - further improved Gentoo support, again thanks to Benedikt Böhm. + + - support persistent contexts. + + - add another initscript that creates directories, configures vshelper + as well as kills all contexts. + + - new vserver-stat implementation, which uses the accounting APIs + available in Linux-VServer 2.2. + + - added support for setting sysctl values in the guest configuration. + + - added a clone build method, which simply links already unified files. + + - implement dynamic contexts in userspace, generating a static one + during vserver ... build. + + - fix the endless loop in vlogin. + + - fix Ubuntu builds. + + - improved support for Debian Etch, thanks to Benedikt Böhm. + + - added CentOS 5. + + - use the state change helper to try to cleanup after us if the guest + exited on its own. + +version 0.30.212 +================ + - support for the Linux-VServer 2.1 API has been implemented. + + - the scheduler configuration has been split up into multiple files. + + - namespace cleanup is enabled by default. This can be disabled by + touch ${sysconfdir}/vservers/.defaults/nonamespace-cleanup + + - all unset ulimits are now reset to infinity, so limits are no longer + inherited from the host. + + - much improved Gentoo support, thanks to Benedikt Böhm. + +version 0.30.211 +================ + + - novlandev is now the default. To reenable the old behaviour of + creating VLAN interfaces where used, touch + ${sysconfdir}/vservers/.defaults/interfaces/vlandev. + + - vshelper now works correctly with the kernel legacy support turned + off. + + - vlogin provides a terminal proxy which allocates a new psuedo-tty + on the inside when you enter a guest. + + - and lots of other features/fixes, see ChangeLog. + + +version 0.30.210 +================ + + - LEGACY BREAKAGE: by default, only recent kernel APIs will be + supported so you have to make sure to use at least the vs2.0.1 + kernel patch. With older kernels, you have to call 'configure' + with '--enable-apis=NOLEGACY'. Some programs will not work anymore + with the default settings; these ones are: + + + capchroot + * chcontext-context + * reducecap + + - dlimit support was integrated into the standard vserver + operations. Thanks to Daniel Hokka Zakrisson for his patch. + + - recent kernel API is now used for setting up the network + contexts. So it should be now possible to use a kernel compiled + without CONFIG_VSERVER_LEGACYNET. Thanks to Daniel Hokka Zakrisson + for his patch. . + + +version 0.30.209 ================ - large revamping... diff --git a/README b/README index 7733231..e99e999 100644 --- a/README +++ b/README @@ -187,4 +187,4 @@ development 2.6 kernel patch. -## $Id: README,v 1.7 2005/01/27 19:07:05 ensc Exp $ +## $Id: README 2283 2006-09-10 17:07:57Z hollow $ diff --git a/THANKS b/THANKS index a4232db..5a47f91 100644 --- a/THANKS +++ b/THANKS @@ -10,5 +10,15 @@ Sam Vilain, Olivier Poitrey for his work on the XML/XSD based documentation format +Herbert Poetzl, + for providing the alternative syscall.h implementation + +Daniel Hokka Zakrisson + for his patches which add support for non-legacy network functionality + and much better dlimit support + +Benedikt Böhm + for the much improved Gentoo support + all the other people, who contributed to the original 'vserver' package diff --git a/aclocal.m4 b/aclocal.m4 index e9bebff..a4f9921 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.9.5 -*- Autoconf -*- +# generated automatically by aclocal 1.9.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005 Free Software Foundation, Inc. @@ -13,7 +13,7 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# serial 47 AC_PROG_LIBTOOL +# serial 48 AC_PROG_LIBTOOL # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) @@ -143,7 +143,7 @@ rm="rm -f" default_ofile=libtool can_build_shared=yes -# All known linkers require a `.a' archive for static linking (except M$VC, +# All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" @@ -163,6 +163,7 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" @@ -182,10 +183,10 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" @@ -233,6 +234,9 @@ AC_DEFUN([_LT_AC_SYS_COMPILER], # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_AC_SYS_COMPILER @@ -261,7 +265,7 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` AC_DEFUN([_LT_COMPILER_BOILERPLATE], [ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ])# _LT_COMPILER_BOILERPLATE @@ -274,7 +278,7 @@ $rm conftest* AC_DEFUN([_LT_LINKER_BOILERPLATE], [ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ])# _LT_LINKER_BOILERPLATE @@ -359,8 +363,8 @@ if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string="`eval $cmd`") 2>/dev/null && - echo_test_string="`eval $cmd`" && + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break @@ -529,7 +533,7 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - case "`/usr/bin/file conftest.o`" in + case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) @@ -580,6 +584,22 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) CFLAGS="$SAVE_CFLAGS" fi ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], [*-*-cygwin* | *-*-mingw* | *-*-pw32*) AC_CHECK_TOOL(DLLTOOL, dlltool, false) @@ -611,7 +631,7 @@ AC_CACHE_CHECK([$1], [$2], # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) @@ -622,9 +642,9 @@ AC_CACHE_CHECK([$1], [$2], if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp - $SED '/^$/d' conftest.err >conftest.er2 - if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi @@ -650,13 +670,13 @@ AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], LDFLAGS="$LDFLAGS $3" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The compiler can only warn and ignore the option if not recognized + # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD - $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp - $SED '/^$/d' conftest.err >conftest.er2 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi @@ -725,25 +745,42 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else - lt_cv_sys_max_cmd_len=65536 # usable default for *BSD + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 - # + # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but @@ -775,7 +812,7 @@ fi # _LT_AC_CHECK_DLFCN -# -------------------- +# ------------------ AC_DEFUN([_LT_AC_CHECK_DLFCN], [AC_CHECK_HEADERS(dlfcn.h)dnl ])# _LT_AC_CHECK_DLFCN @@ -783,7 +820,7 @@ AC_DEFUN([_LT_AC_CHECK_DLFCN], # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ------------------------------------------------------------------ +# --------------------------------------------------------------------- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "$cross_compiling" = yes; then : @@ -849,17 +886,19 @@ int main () else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } + else + puts (dlerror ()); exit (status); }] EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; - x$lt_unknown|x*) $3 ;; + x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed @@ -871,7 +910,7 @@ rm -fr conftest* # AC_LIBTOOL_DLOPEN_SELF -# ------------------- +# ---------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "x$enable_dlopen" != xyes; then @@ -942,7 +981,7 @@ else test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" @@ -955,7 +994,7 @@ else ]) if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_AC_TRY_DLOPEN_SELF( @@ -1003,7 +1042,7 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) @@ -1015,13 +1054,13 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp - $SED '/^$/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi - chmod u+w . + chmod u+w . 2>&AS_MESSAGE_LOG_FD $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation @@ -1281,7 +1320,8 @@ cygwin* | mingw* | pw32*) dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' @@ -1334,7 +1374,7 @@ darwin* | rhapsody*) soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` @@ -1372,7 +1412,14 @@ kfreebsd*-gnu) freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) @@ -1394,10 +1441,15 @@ freebsd* | dragonfly*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; - *) # from 3.2 on + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; esac ;; @@ -1417,7 +1469,7 @@ hpux9* | hpux10* | hpux11*) version_type=sunos need_lib_prefix=no need_version=no - case "$host_cpu" in + case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes @@ -1457,6 +1509,18 @@ hpux9* | hpux10* | hpux11*) postinstall_cmds='chmod 555 $lib' ;; +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; @@ -1533,7 +1597,7 @@ linux*) # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi @@ -1595,8 +1659,13 @@ nto-qnx*) openbsd*) version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no - need_version=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH @@ -1634,13 +1703,6 @@ osf3* | osf4* | osf5*) sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - solaris*) version_type=linux need_lib_prefix=no @@ -1666,7 +1728,7 @@ sunos4*) need_version=yes ;; -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) +sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -1699,6 +1761,29 @@ sysv4*MP*) fi ;; +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -1712,6 +1797,11 @@ uts4*) esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi ])# AC_LIBTOOL_SYS_DYNAMIC_LINKER @@ -1736,6 +1826,9 @@ if test -f "$ltmain" && test -n "$tagnames"; then AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) fi fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. @@ -1826,7 +1919,7 @@ AC_DEFUN([AC_LIBTOOL_DLOPEN], # AC_LIBTOOL_WIN32_DLL # -------------------- -# declare package support for building win32 dll's +# declare package support for building win32 DLLs AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_WIN32_DLL @@ -1864,7 +1957,7 @@ AC_ARG_ENABLE([shared], # AC_DISABLE_SHARED # ----------------- -#- set the default shared flag to --disable-shared +# set the default shared flag to --disable-shared AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_SHARED(no) @@ -2000,7 +2093,7 @@ dnl not every word. This closes a longstanding sh security hole. if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then @@ -2110,7 +2203,7 @@ AC_CACHE_VAL(lt_cv_path_LD, if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. + # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 &1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" break ;; *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac ;; esac - esac - fi + fi + done + IFS="$lt_save_ifs" done - IFS="$lt_save_ifs" test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi]) NM="$lt_cv_path_NM" @@ -2430,13 +2534,13 @@ esac # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl convenience library and # LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL -# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If -# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will -# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with -# '${top_srcdir}/' (note the single quotes!). If your package is not -# flat and you're not using automake, define top_builddir and -# top_srcdir appropriately in the Makefiles. +# --enable-ltdl-convenience to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# it is assumed to be `libltdl'. LIBLTDL will be prefixed with +# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' +# (note the single quotes!). If your package is not flat and you're not +# using automake, define top_builddir and top_srcdir appropriately in +# the Makefiles. AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl case $enable_ltdl_convenience in @@ -2455,13 +2559,13 @@ AC_DEFUN([AC_LIBLTDL_CONVENIENCE], # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl installable library and # LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-install to the configure arguments. Note that LIBLTDL -# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If -# DIRECTORY is not provided and an installed libltdl is not found, it is -# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' -# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single -# quotes!). If your package is not flat and you're not using automake, -# define top_builddir and top_srcdir appropriately in the Makefiles. +# --enable-ltdl-install to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# and an installed libltdl is not found, it is assumed to be `libltdl'. +# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and top_srcdir +# appropriately in the Makefiles. # In the future, this macro may have to be called after AC_PROG_LIBTOOL. AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl @@ -2504,7 +2608,7 @@ _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) ])# _LT_AC_LANG_CXX # _LT_AC_PROG_CXXCPP -# --------------- +# ------------------ AC_DEFUN([_LT_AC_PROG_CXXCPP], [ AC_REQUIRE([AC_PROG_CXX]) @@ -2553,7 +2657,7 @@ _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) # AC_LIBTOOL_RC -# -------------- +# ------------- # enable support for Windows resource files AC_DEFUN([AC_LIBTOOL_RC], [AC_REQUIRE([LT_AC_PROG_RC]) @@ -2590,37 +2694,6 @@ _LT_AC_SYS_COMPILER _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE -# -# Check for any special shared library compilation flags. -# -_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= -if test "$GCC" = no; then - case $host_os in - sco3.2v5*) - _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' - ;; - esac -fi -if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then - AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) - if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ ]]" >/dev/null; then : - else - AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) - _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no - fi -fi - - -# -# Check to make sure the static flag actually works. -# -AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], - _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), - $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), - [], - [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) - - AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) @@ -2629,9 +2702,9 @@ AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_SYS_LIB_STRIP -AC_LIBTOOL_DLOPEN_SELF($1) +AC_LIBTOOL_DLOPEN_SELF -# Report which librarie types wil actually be built +# Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) @@ -2640,7 +2713,7 @@ test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. -case "$host_os" in +case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then @@ -2690,6 +2763,7 @@ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= @@ -2707,7 +2781,7 @@ _LT_AC_TAGVAR(postdeps, $1)= _LT_AC_TAGVAR(compiler_lib_search_path, $1)= # Source file extension for C++ test sources. -ac_ext=cc +ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o @@ -2717,7 +2791,7 @@ _LT_AC_TAGVAR(objext, $1)=$objext lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' +lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_AC_SYS_COMPILER @@ -2736,12 +2810,12 @@ lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else - unset lt_cv_prog_gnu_ld + $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else - unset lt_cv_path_LD + $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} @@ -2836,6 +2910,7 @@ case $host_os in ;; esac done + ;; esac exp_sym_flag='-bexport' @@ -2873,6 +2948,7 @@ case $host_os in _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi + ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then @@ -2904,12 +2980,12 @@ case $host_os in _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX @@ -2918,16 +2994,26 @@ case $host_os in # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - _LT_AC_TAGVAR(always_export_symbols, $1)=yes # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds it's shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + chorus*) case $cc_basename in *) @@ -2937,7 +3023,6 @@ case $host_os in esac ;; - cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. @@ -2947,7 +3032,7 @@ case $host_os in _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then @@ -2956,13 +3041,13 @@ case $host_os in echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) - case "$host_os" in + case $host_os in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' ;; @@ -3000,7 +3085,7 @@ case $host_os in _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else @@ -3013,7 +3098,7 @@ case $host_os in output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; @@ -3093,34 +3178,23 @@ case $host_os in ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then - case "$host_cpu" in - hppa*64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - ia64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; *) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi - case "$host_cpu" in - hppa*64*) + case $host_cpu in + hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; - ia64*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, @@ -3135,9 +3209,12 @@ case $host_os in _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC*) - case "$host_cpu" in - hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' @@ -3156,9 +3233,12 @@ case $host_os in *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then - case "$host_cpu" in - ia64*|hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' @@ -3172,6 +3252,20 @@ case $host_os in ;; esac ;; + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; irix5* | irix6*) case $cc_basename in CC*) @@ -3252,12 +3346,12 @@ case $host_os in ;; pgCC*) # Portland Group C++ compiler - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ @@ -3454,19 +3548,6 @@ case $host_os in # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; - sco*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; sunos4*) case $cc_basename in CC*) @@ -3489,10 +3570,11 @@ case $host_os in case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -3512,15 +3594,7 @@ case $host_os in esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -3566,8 +3640,59 @@ case $host_os in ;; esac ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac ;; tandem*) case $cc_basename in @@ -3604,8 +3729,6 @@ AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -AC_LIBTOOL_SYS_LIB_STRIP -AC_LIBTOOL_DLOPEN_SELF($1) AC_LIBTOOL_CONFIG($1) @@ -3623,7 +3746,7 @@ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld ])# AC_LIBTOOL_LANG_CXX_CONFIG # AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) -# ------------------------ +# ------------------------------------ # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary @@ -3677,7 +3800,7 @@ if AC_TRY_EVAL(ac_compile); then # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. - output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" + output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in @@ -3753,13 +3876,37 @@ fi $rm -f confest.$objext +# PORTME: override above test on systems where it is broken +ifelse([$1],[CXX], +[case $host_os in +interix3*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_AC_TAGVAR(predep_objects,$1)= + _LT_AC_TAGVAR(postdep_objects,$1)= + _LT_AC_TAGVAR(postdeps,$1)= + ;; + +solaris*) + case $cc_basename in + CC*) + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + _LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun' + ;; + esac + ;; +esac +]) + case " $_LT_AC_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac ])# AC_LIBTOOL_POSTDEP_PREDEP # AC_LIBTOOL_LANG_F77_CONFIG -# ------------------------ +# -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. @@ -3822,7 +3969,7 @@ test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. -case "$host_os" in +case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then @@ -3843,8 +3990,6 @@ AC_MSG_CHECKING([whether to build static libraries]) test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - _LT_AC_TAGVAR(GCC, $1)="$G77" _LT_AC_TAGVAR(LD, $1)="$LD" @@ -3854,8 +3999,6 @@ AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -AC_LIBTOOL_SYS_LIB_STRIP - AC_LIBTOOL_CONFIG($1) @@ -3912,8 +4055,6 @@ AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -AC_LIBTOOL_SYS_LIB_STRIP -AC_LIBTOOL_DLOPEN_SELF($1) AC_LIBTOOL_CONFIG($1) @@ -3923,7 +4064,7 @@ CC="$lt_save_CC" # AC_LIBTOOL_LANG_RC_CONFIG -# -------------------------- +# ------------------------- # Ensure that the configuration vars for the Windows resource compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. @@ -3986,7 +4127,7 @@ if test -f "$ltmain"; then # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ @@ -4155,12 +4296,18 @@ AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + # A language-specific compiler. CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) # Is the compiler the GNU C compiler? with_gcc=$_LT_AC_TAGVAR(GCC, $1) +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + # An ERE matcher. EGREP=$lt_EGREP @@ -4294,11 +4441,11 @@ striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. -predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) +predep_objects=\`echo $lt_[]_LT_AC_TAGVAR(predep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. -postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) +postdep_objects=\`echo $lt_[]_LT_AC_TAGVAR(postdep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. @@ -4310,7 +4457,7 @@ postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) # The library search path used internally by the compiler when linking # a shared library. -compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) +compiler_lib_search_path=\`echo $lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -4390,7 +4537,7 @@ variables_saved_for_relink="$variables_saved_for_relink" link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) # Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec @@ -4528,9 +4675,18 @@ irix* | nonstopux*) osf*) symcode='[[BCDEGQRST]]' ;; -solaris* | sysv5*) +solaris*) symcode='[[BDRT]]' ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; sysv4) symcode='[[DFNSTU]]' ;; @@ -4713,6 +4869,10 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) # DJGPP does not support shared libraries at all _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic @@ -4721,7 +4881,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. - case "$host_cpu" in + case $host_cpu in hppa*64*|ia64*) ;; *) @@ -4782,15 +4942,15 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) case $cc_basename in CC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - case "$host_cpu" in + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in hppa*64*|ia64*) # +Z the default ;; @@ -4803,6 +4963,10 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) ;; esac ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) @@ -4831,7 +4995,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) # Portland Group C++ compiler. _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ @@ -4882,15 +5046,6 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) ;; psos*) ;; - sco*) - case $cc_basename in - CC*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - *) - ;; - esac - ;; solaris*) case $cc_basename in CC*) @@ -4932,7 +5087,14 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) ;; esac ;; - unixware*) + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac ;; vxworks*) ;; @@ -4979,6 +5141,11 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. @@ -4995,7 +5162,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. - case "$host_cpu" in + case $host_cpu in hppa*64*|ia64*) # +Z the default ;; @@ -5042,7 +5209,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. - case "$host_cpu" in + case $host_cpu in hppa*64*|ia64*) # +Z the default ;; @@ -5072,12 +5239,12 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; - pgcc* | pgf77* | pgf90*) + pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' @@ -5093,11 +5260,6 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - sco3.2v5*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' - ;; - solaris*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' @@ -5115,7 +5277,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + sysv4 | sysv4.2uw2* | sysv4.3*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' @@ -5128,6 +5290,12 @@ AC_MSG_CHECKING([for $compiler option to produce PIC]) fi ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + unicos*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no @@ -5160,7 +5328,7 @@ if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi -case "$host_os" in +case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= @@ -5169,6 +5337,16 @@ case "$host_os" in _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" ;; esac + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) ]) @@ -5247,6 +5425,10 @@ ifelse([$1],[CXX],[ with_gnu_ld=no fi ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; openbsd*) with_gnu_ld=no ;; @@ -5256,7 +5438,7 @@ ifelse([$1],[CXX],[ if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' - + # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. @@ -5277,7 +5459,7 @@ ifelse([$1],[CXX],[ *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac - + # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) @@ -5331,7 +5513,7 @@ EOF _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then @@ -5340,22 +5522,38 @@ EOF echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' ;; - pgf77* | pgf90* ) # Portland Group f77 and f90 compilers - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - tmp_addflag=' -fpic -Mnomain' ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 @@ -5386,7 +5584,7 @@ EOF fi ;; - solaris* | sysv5*) + solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 @@ -5407,6 +5605,33 @@ EOF fi ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + sunos4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= @@ -5440,7 +5665,7 @@ EOF # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported @@ -5474,6 +5699,7 @@ EOF break fi done + ;; esac exp_sym_flag='-bexport' @@ -5511,6 +5737,7 @@ EOF _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi + ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then @@ -5523,11 +5750,11 @@ EOF # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else - if test "$aix_use_runtimelinking" = yes; then + if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' - fi + fi fi fi @@ -5541,12 +5768,12 @@ EOF # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX @@ -5555,13 +5782,11 @@ EOF # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - _LT_AC_TAGVAR(always_export_symbols, $1)=yes # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds it's shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; @@ -5600,7 +5825,7 @@ EOF ;; darwin* | rhapsody*) - case "$host_os" in + case $host_os in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' ;; @@ -5629,7 +5854,7 @@ EOF output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else @@ -5638,7 +5863,7 @@ EOF output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; @@ -5702,47 +5927,62 @@ EOF _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; - hpux10* | hpux11*) + hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else - case "$host_cpu" in - hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; - ia64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - ;; *) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' @@ -5844,14 +6084,6 @@ EOF _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; - sco3.2v5*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - solaris*) _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' if test "$GCC" = yes; then @@ -5937,36 +6169,45 @@ EOF fi ;; - sysv4.2uw2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; + runpath_var='LD_RUN_PATH' - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi - runpath_var='LD_RUN_PATH' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; - sysv5*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi ;; uts4*) @@ -5984,11 +6225,6 @@ EOF AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - # # Do we need to explicitly link libc? # @@ -6016,6 +6252,7 @@ x|xyes) libobjs=conftest.$ac_objext deplibs= wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= @@ -6136,6 +6373,7 @@ do done done done +IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris @@ -6168,6 +6406,7 @@ for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do done ]) SED=$lt_cv_path_SED +AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ]) @@ -6188,7 +6427,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.9.5])]) + [AM_AUTOMAKE_VERSION([1.9.6])]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- @@ -6925,7 +7164,7 @@ AC_DEFUN([AM_PATH_PYTHON], dnl $prefix/lib/site-python in 1.4 to $prefix/lib/python1.5/site-packages dnl in 1.5. m4_define_default([_AM_PYTHON_INTERPRETER_LIST], - [python python2 python2.4 python2.3 python2.2 dnl + [python python2 python2.5 python2.4 python2.3 python2.2 dnl python2.1 python2.0 python1.6 python1.5]) m4_if([$1],[],[ @@ -7253,7 +7492,6 @@ m4_include([m4/ensc_dietlibc.m4]) m4_include([m4/ensc_dietlibc_compat.m4]) m4_include([m4/ensc_e2fscheck.m4]) m4_include([m4/ensc_initrddir.m4]) -m4_include([m4/ensc_kerneldir.m4]) m4_include([m4/ensc_pathprog.m4]) m4_include([m4/ensc_personality.m4]) m4_include([m4/ensc_release.m4]) diff --git a/compat-c99.h b/compat-c99.h index 7f3c566..25e24d8 100644 --- a/compat-c99.h +++ b/compat-c99.h @@ -1,4 +1,4 @@ -// $Id: compat-c99.h,v 1.1 2003/12/26 00:49:32 uid68581 Exp $ --*- c -*-- +// $Id: compat-c99.h 2283 2006-09-10 17:07:57Z hollow $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/compat.h b/compat.h index 225af24..dc3a7e6 100644 --- a/compat.h +++ b/compat.h @@ -1,4 +1,4 @@ -// $Id: compat.h,v 1.17 2004/04/22 20:47:31 ensc Exp $ --*- c++ -*-- +// $Id: compat.h 2283 2006-09-10 17:07:57Z hollow $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/compile b/compile index ad57e2f..1b1d232 100755 --- a/compile +++ b/compile @@ -1,7 +1,7 @@ #! /bin/sh # Wrapper for compilers which do not understand `-c -o'. -scriptversion=2005-02-03.08 +scriptversion=2005-05-14.22 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # Written by Tom Tromey . @@ -18,7 +18,7 @@ scriptversion=2005-02-03.08 # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a diff --git a/config.guess b/config.guess index 2fc3acc..917bbc5 100755 --- a/config.guess +++ b/config.guess @@ -1,9 +1,9 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -timestamp='2003-06-17' +timestamp='2005-07-08' # 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 @@ -17,13 +17,15 @@ timestamp='2003-06-17' # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # # 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. + # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. @@ -53,7 +55,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -66,11 +68,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -123,7 +125,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ;' +esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) @@ -136,13 +138,6 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -## for Red Hat Linux -if test -f /etc/redhat-release ; then - VENDOR=redhat ; -else - VENDOR= ; -fi - # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in @@ -203,50 +198,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerppc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU @@ -284,42 +258,49 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac + # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms - exit 0 ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix - exit 0 ;; + exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 - exit 0 ;; + exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 - exit 0;; + exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; + exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; + exit ;; *:OS/390:*:*) echo i370-ibm-openedition - exit 0 ;; + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp - exit 0;; + exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then @@ -327,32 +308,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in else echo pyramid-pyramid-bsd fi - exit 0 ;; + exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit 0 ;; + exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; + sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -361,10 +342,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; + exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 @@ -376,10 +357,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo sparc-sun-sunos${UNAME_RELEASE} ;; esac - exit 0 ;; + exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -390,37 +371,40 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; + exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit 0 ;; + exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; + exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -444,32 +428,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; + exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax - exit 0 ;; + exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix - exit 0 ;; + exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit 0 ;; + exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit 0 ;; + exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` @@ -485,29 +470,29 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi - exit 0 ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit 0 ;; + exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit 0 ;; + exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit 0 ;; + exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; + exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix - exit 0 ;; + exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` @@ -515,7 +500,7 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build @@ -530,14 +515,18 @@ EOF exit(0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo rs6000-ibm-aix3.2.5 + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi - exit 0 ;; + exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then @@ -551,28 +540,28 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:*:*) echo rs6000-ibm-aix - exit 0 ;; + exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 - exit 0 ;; + exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 + exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit 0 ;; + exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit 0 ;; + exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit 0 ;; + exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit 0 ;; + exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in @@ -634,9 +623,19 @@ EOF esac if [ ${HP_ARCH} = "hppa2.0w" ] then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else @@ -644,11 +643,11 @@ EOF fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -676,150 +675,166 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 - exit 0 ;; + exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd - exit 0 ;; + exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit 0 ;; + exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix - exit 0 ;; + exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf - exit 0 ;; + exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit 0 ;; + exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi - exit 0 ;; + exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit 0 ;; + exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit 0 ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit 0 ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit 0 ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit 0 ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; + exit ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; + exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; + exit ;; x86:Interix*:[34]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit 0 ;; + exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix - exit 0 ;; + exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; + exit ;; + amd64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin - exit 0 ;; + exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; *:GNU:*:*) + # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; + exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu - exit 0 ;; + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu - exit 0 ;; + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -837,7 +852,7 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build @@ -856,14 +871,14 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; ppc:Linux:*:*) - echo powerpc-${VENDOR:-unknown}-linux-gnu - exit 0 ;; + echo powerpc-unknown-linux-gnu + exit ;; ppc64:Linux:*:*) - echo powerpc64-${VENDOR:-unknown}-linux-gnu - exit 0 ;; + echo powerpc64-unknown-linux-gnu + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -877,7 +892,7 @@ EOF objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -885,25 +900,25 @@ EOF PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac - exit 0 ;; + exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu - exit 0 ;; + exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu - exit 0 ;; + echo ${UNAME_MACHINE}-ibm-linux + exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; x86_64:Linux:*:*) - echo x86_64-${VENDOR:-unknown}-linux-gnu - exit 0 ;; + echo x86_64-unknown-linux-gnu + exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -921,15 +936,15 @@ EOF ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; + exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; + exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; + exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build @@ -952,17 +967,23 @@ EOF LIBC=gnuaout #endif #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 - exit 0 ;; + exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... @@ -970,24 +991,27 @@ EOF # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; + exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; + exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; + exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; + exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then @@ -995,15 +1019,16 @@ EOF else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit 0 ;; - i*86:*:5:[78]*) + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; + exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi - exit 0 ;; + exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit 0 ;; + exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv - exit 0 ;; + exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; + && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit 0 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; + exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -1095,68 +1120,73 @@ EOF else echo ns32k-sni-sysv fi - exit 0 ;; + exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 - exit 0 ;; + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit 0 ;; + exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit 0 ;; + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos - exit 0 ;; + exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; + exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 - exit 0 ;; + exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi - exit 0 ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos - exit 0 ;; + exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos - exit 0 ;; + exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos - exit 0 ;; + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Darwin:*:*) - case `uname -p` in + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; + unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit 0 ;; + exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then @@ -1164,22 +1194,25 @@ EOF UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; + exit ;; *:QNX:*:4*) echo i386-pc-qnx - exit 0 ;; - NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux - exit 0 ;; + exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv - exit 0 ;; + exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 @@ -1190,28 +1223,44 @@ EOF UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; + exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 - exit 0 ;; + exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex - exit 0 ;; + exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 - exit 0 ;; + exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 - exit 0 ;; + exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 - exit 0 ;; + exit ;; *:ITS:*:*) echo pdp10-unknown-its - exit 0 ;; + exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1243,7 +1292,7 @@ main () #endif #if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); + printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) @@ -1332,11 +1381,12 @@ main () } EOF -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) @@ -1345,22 +1395,22 @@ then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd - exit 0 ;; + exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; c34*) echo c34-convex-bsd - exit 0 ;; + exit ;; c38*) echo c38-convex-bsd - exit 0 ;; + exit ;; c4*) echo c4-convex-bsd - exit 0 ;; + exit ;; esac fi @@ -1371,7 +1421,9 @@ This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from - ftp://ftp.gnu.org/pub/gnu/config/ + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess +and + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub If the version you run ($0) is already up to date, please send the following data and any information you think might be diff --git a/config.h.in b/config.h.in index 0f11d78..4cbac65 100644 --- a/config.h.in +++ b/config.h.in @@ -3,6 +3,9 @@ /* Define to 1 if dietlibc supports C99 */ #undef ENSC_DIETLIBC_C99 +/* Define to 1 if dietlibc declares syscall */ +#undef ENSC_DIETLIBC_HAS_SYSCALL + /* define when is usable */ #undef ENSC_HAVE_EXT2FS_EXT2_FS_H @@ -139,6 +142,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if you have the `util' library (-lutil). */ +#undef HAVE_LIBUTIL + /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H @@ -226,6 +232,12 @@ /* Enable support for API of vserver 1.3.x */ #undef VC_ENABLE_API_V13 +/* Enable support for some obsoleted API of vserver 1.3.x */ +#undef VC_ENABLE_API_V13OBS + +/* Enable support for API of vserver 2.1.x */ +#undef VC_ENABLE_API_V21 + /* Version number of package */ #undef VERSION @@ -233,7 +245,7 @@ #undef _FILE_OFFSET_BITS -#if defined(__pic__) && defined(__i386) && !defined(ENSC_SYSCALL_TRADITIONAL) +#if defined(__pic__) && defined(__i386) && !defined(ENSC_SYSCALL_TRADITIONAL) && !defined(ENSC_USE_ALTERNATIVE_SYSCALL_MACROS) # define ENSC_SYSCALL_TRADITIONAL 1 #endif diff --git a/config.sub b/config.sub index 6b2ff9f..1c366df 100755 --- a/config.sub +++ b/config.sub @@ -1,9 +1,9 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -timestamp='2003-06-18' +timestamp='2005-07-08' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -21,14 +21,15 @@ timestamp='2003-06-18' # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# # 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. + # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # @@ -70,7 +71,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -83,11 +84,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -99,7 +100,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. echo $1 - exit 0;; + exit ;; * ) break ;; @@ -118,7 +119,8 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ + kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -144,7 +146,7 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) + -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; @@ -228,14 +230,16 @@ case $basic_machine in | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ - | ip2k \ - | m32r | m68000 | m68k | m88k | mcore \ + | ip2k | iq2000 \ + | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -244,31 +248,37 @@ case $basic_machine in | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | ms1 \ | msp430 \ | ns16k | ns32k \ - | openrisc | or32 \ + | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | s390 | s390x \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ + | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ - | x86 | xscale | xstormy16 | xtensa \ + | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; + m32c) + basic_machine=$basic_machine-unknown + ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown @@ -296,19 +306,19 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ - | bs2000-* \ + | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | cydra-* \ + | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* \ - | m32r-* \ + | ip2k-* | iq2000-* \ + | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -317,34 +327,40 @@ case $basic_machine in | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | ms1-* \ | msp430-* \ - | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | s390-* | s390x-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ + | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; + m32c-*) + ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) @@ -361,6 +377,9 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -378,6 +397,9 @@ case $basic_machine in amd64) basic_machine=x86_64-pc ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv @@ -437,12 +459,27 @@ case $basic_machine in basic_machine=j90-cray os=-unicos ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; @@ -465,6 +502,10 @@ case $basic_machine in basic_machine=m88k-motorola os=-sysv3 ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx @@ -643,10 +684,6 @@ case $basic_machine in mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; monitor) basic_machine=m68k-rom68k os=-coff @@ -727,10 +764,6 @@ case $basic_machine in np1) basic_machine=np1-gould ;; - nv1) - basic_machine=nv1-cray - os=-unicosmp - ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -738,9 +771,12 @@ case $basic_machine in basic_machine=hppa1.1-oki os=-proelf ;; - or32 | or32-*) + openrisc | openrisc-*) basic_machine=or32-unknown - os=-coff + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson @@ -833,6 +869,12 @@ case $basic_machine in rtpc | rtpc-*) basic_machine=romp-ibm ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; sa29200) basic_machine=a29k-amd os=-udi @@ -956,6 +998,10 @@ case $basic_machine in tower | tower-32) basic_machine=m68k-ncr ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; udi29k) basic_machine=a29k-amd os=-udi @@ -999,6 +1045,10 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; xps | xps100) basic_machine=xps100-honeywell ;; @@ -1029,6 +1079,9 @@ case $basic_machine in romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1045,12 +1098,9 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; @@ -1124,19 +1174,21 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1154,12 +1206,15 @@ case $os in os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; @@ -1172,6 +1227,9 @@ case $os in -opened*) os=-openedition ;; + -os400*) + os=-os400 + ;; -wince*) os=-wince ;; @@ -1193,6 +1251,9 @@ case $os in -atheos*) os=-atheos ;; + -syllable*) + os=-syllable + ;; -386bsd) os=-bsd ;; @@ -1215,6 +1276,9 @@ case $os in -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; @@ -1251,6 +1315,9 @@ case $os in -kaos*) os=-kaos ;; + -zvmoe) + os=-zvmoe + ;; -none) ;; *) @@ -1282,9 +1349,9 @@ case $basic_machine in arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff - ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1328,9 +1395,15 @@ case $basic_machine in *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; @@ -1463,9 +1536,15 @@ case $basic_machine in -mvs* | -opened*) vendor=ibm ;; + -os400*) + vendor=ibm + ;; -ptx*) vendor=sequent ;; + -tpf*) + vendor=ibm + ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; @@ -1490,7 +1569,7 @@ case $basic_machine in esac echo $basic_machine$os -exit 0 +exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff --git a/configure b/configure index b8d8757..3f23f01 100755 --- a/configure +++ b/configure @@ -1,8 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for util-vserver 0.30.208. +# Generated by GNU Autoconf 2.59 for util-vserver 0.30.213. # -# Report bugs to . +# Report bugs to . # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation @@ -287,8 +287,8 @@ if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string="`eval $cmd`") 2>/dev/null && - echo_test_string="`eval $cmd`" && + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break @@ -423,9 +423,9 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='util-vserver' PACKAGE_TARNAME='util-vserver' -PACKAGE_VERSION='0.30.208' -PACKAGE_STRING='util-vserver 0.30.208' -PACKAGE_BUGREPORT='enrico.scholz@informatik.tu-chemnitz.de' +PACKAGE_VERSION='0.30.213' +PACKAGE_STRING='util-vserver 0.30.213' +PACKAGE_BUGREPORT='vserver@list.linux-vserver.org' ac_unique_file="src/capchroot.c" # Factoring default headers for most tests. @@ -465,7 +465,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os GPG_KEY CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S PYTHON PYTHON_VERSION PYTHON_PREFIX PYTHON_EXEC_PREFIX PYTHON_PLATFORM pythondir pkgpythondir pyexecdir pkgpyexecdir ENSC_HAVE_CXX_COMPILER_TRUE ENSC_HAVE_CXX_COMPILER_FALSE ENSC_HAVE_C99_COMPILER_TRUE ENSC_HAVE_C99_COMPILER_FALSE ENSC_PATHPROG_SED CAT CHOWN CMP CP DIRNAME EGREP ENV GREP LN MKDIR MKFIFO MKTEMP MOUNT MV NICE PS RM RMDIR SED SH TAC TAR TOUCH TTY UMOUNT WC IP IPTABLES MODPROBE NAMEIF NOHUP RMMOD VCONFIG WGET DOXYGEN XSLTP XSLTPROC HAVE_XSLTP_TRUE HAVE_XSLTP_FALSE HAVE_XSLTPROC_TRUE HAVE_XSLTPROC_FALSE LIB_DEBUG_CPPFLAGS ENSC_USE_EXPENSIVE_TESTS initrddir RELEASE_CPPFLAGS DIET DIETFLAGS USE_DIETLIBC_TRUE USE_DIETLIBC_FALSE USE_DIETLIBC_COMPAT_TRUE USE_DIETLIBC_COMPAT_FALSE ENSC_USE_DIETLIBC_TRUE ENSC_USE_DIETLIBC_FALSE ENSC_USE_GLIBC_TRUE ENSC_USE_GLIBC_FALSE ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL kernelincludedir vserverdir CVS2CL_TAG CVS2CL HAVE_CVS2CL_TRUE HAVE_CVS2CL_FALSE RCS2LOG HAVE_RCS2LOG_TRUE HAVE_RCS2LOG_FALSE ENSC_ENABLE_INTERNAL_HEADERS_TRUE ENSC_ENABLE_INTERNAL_HEADERS_FALSE ENSC_HAVE_BEECRYPT_TRUE ENSC_HAVE_BEECRYPT_FALSE ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os GPG_KEY CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S PYTHON PYTHON_VERSION PYTHON_PREFIX PYTHON_EXEC_PREFIX PYTHON_PLATFORM pythondir pkgpythondir pyexecdir pkgpyexecdir ENSC_HAVE_CXX_COMPILER_TRUE ENSC_HAVE_CXX_COMPILER_FALSE ENSC_HAVE_C99_COMPILER_TRUE ENSC_HAVE_C99_COMPILER_FALSE ENSC_PATHPROG_SED CAT CHOWN CMP CP DIRNAME EGREP ENV GREP LN MKDIR MKFIFO MKTEMP MOUNT MV NICE PS RM RMDIR SED SH TAC TAR TOUCH TTY UMOUNT WC IP IPTABLES MODPROBE NAMEIF NOHUP RMMOD VCONFIG WGET FILE GZIP BZIP2 CPIO RESTORE RSYNC DOXYGEN XSLTP XSLTPROC HAVE_XSLTP_TRUE HAVE_XSLTP_FALSE HAVE_XSLTPROC_TRUE HAVE_XSLTPROC_FALSE LIB_DEBUG_CPPFLAGS ENSC_USE_EXPENSIVE_TESTS initrddir RELEASE_CPPFLAGS CPP DIET DIETFLAGS USE_DIETLIBC_TRUE USE_DIETLIBC_FALSE USE_DIETLIBC_COMPAT_TRUE USE_DIETLIBC_COMPAT_FALSE ENSC_USE_DIETLIBC_TRUE ENSC_USE_DIETLIBC_FALSE ENSC_USE_GLIBC_TRUE ENSC_USE_GLIBC_FALSE ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL vserverdir SVN2CL HAVE_SVN2CL_TRUE HAVE_SVN2CL_FALSE ENSC_ENABLE_INTERNAL_HEADERS_TRUE ENSC_ENABLE_INTERNAL_HEADERS_FALSE ENSC_HAVE_BEECRYPT_TRUE ENSC_HAVE_BEECRYPT_FALSE ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE HAVE_GENTOO_INIT_TRUE HAVE_GENTOO_INIT_FALSE HAVE_SYSV_INIT_TRUE HAVE_SYSV_INIT_FALSE LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -930,6 +930,10 @@ ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP ac_env_DIET_set=${DIET+set} ac_env_DIET_value=$DIET ac_cv_env_DIET_set=${DIET+set} @@ -938,10 +942,6 @@ ac_env_DIETFLAGS_set=${DIETFLAGS+set} ac_env_DIETFLAGS_value=$DIETFLAGS ac_cv_env_DIETFLAGS_set=${DIETFLAGS+set} ac_cv_env_DIETFLAGS_value=$DIETFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} @@ -962,7 +962,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures util-vserver 0.30.208 to adapt to many kinds of systems. +\`configure' configures util-vserver 0.30.213 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1028,7 +1028,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of util-vserver 0.30.208:";; + short | recursive ) echo "Configuration of util-vserver 0.30.213:";; esac cat <<\_ACEOF @@ -1043,15 +1043,15 @@ Optional Features: disable certain extra optimizations (default: no) --enable-lib-debug enable additional debug code in library (default: no) - --disable-expensive-tests + --enable-expensive-tests disable tests which might be expensive on some systems (default: no) --enable-release enable release mode (default: no) - --disable-dietlibc do not use dietlibc resp. enforce its usage (with - --enable-dietlibc) (default: autodetect dietlibc) --disable-alternative-syscalls do not use the alternative _syscallX macros provided by Herbert Poetzl (default: use them) + --disable-dietlibc do not use dietlibc resp. enforce its usage (with + --enable-dietlibc) (default: autodetect dietlibc) --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] @@ -1063,25 +1063,25 @@ Optional Features: use vserver specific headers from the kernel instead of the shipped versions (default: no) --enable-apis=APIS enable support for the given apis; possible values - are: legacy,compat,v11,v13,fscompat,net,ALL - (default: all except 'legacy') + are: legacy,compat,v11,fscompat,v13obs,v13,net, + ALL,NOLEGACY (default: v13,net,v21) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-initrddir use as directory for SysV init-files (default: $sysconfdir/init.d) + --with-syscall=METHOD call syscall(2) with the specified METHOD; valid + values are 'fast', 'traditional' and 'auto' + (default: auto) --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] - --with-kerneldir=DIR assume kernelsources in DIR (default: - /lib/modules//build) --with-vrootdir=DIR place vservers under DIR (default: /vservers) - --with-syscall=METHOD call syscall(2) with the specified METHOD; valid - values are 'fast', 'traditional' and 'auto' - (default: auto) + --with-initscripts=TYPE force host initscripts; valid values are 'gentoo' + and 'sysv' (default: guess) Some influential environment variables: CXX C++ compiler command @@ -1092,9 +1092,9 @@ Some influential environment variables: headers in a nonstandard directory CC C compiler command CFLAGS C compiler flags + CPP C preprocessor DIET The 'diet' wrapper (default: diet) DIETFLAGS Flags passed to the 'diet' wrapper (default: -O) - CPP C preprocessor CXXCPP C++ preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags @@ -1102,7 +1102,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF fi @@ -1198,7 +1198,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -util-vserver configure 0.30.208 +util-vserver configure 0.30.213 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -1212,7 +1212,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by util-vserver $as_me 0.30.208, which was +It was created by util-vserver $as_me 0.30.213, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1859,7 +1859,7 @@ fi # Define the identity of the package. PACKAGE='util-vserver' - VERSION='0.30.208' + VERSION='0.30.213' cat >>confdefs.h <<_ACEOF @@ -3872,7 +3872,7 @@ if test "${am_cv_pathless_PYTHON+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - for am_cv_pathless_PYTHON in python python2 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 none; do + for am_cv_pathless_PYTHON in python python2 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 none; do test "$am_cv_pathless_PYTHON" = none && break prog="import sys, string # split strings by '.' and convert to numeric. Append some zeros @@ -4266,6 +4266,10 @@ Can not find the 'awk' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${AWK}"; then + AWK=`readlink -f "${AWK}"` + fi + test "${AWK}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'AWK'@!${AWK}!g;" test "${AWK}" @@ -4347,6 +4351,10 @@ Can not find the 'cat' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${CAT}"; then + CAT=`readlink -f "${CAT}"` + fi + test "${CAT}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'CAT'@!${CAT}!g;" test "${CAT}" @@ -4428,6 +4436,10 @@ Can not find the 'chown' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${CHOWN}"; then + CHOWN=`readlink -f "${CHOWN}"` + fi + test "${CHOWN}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'CHOWN'@!${CHOWN}!g;" test "${CHOWN}" @@ -4509,6 +4521,10 @@ Can not find the 'cmp' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${CMP}"; then + CMP=`readlink -f "${CMP}"` + fi + test "${CMP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'CMP'@!${CMP}!g;" test "${CMP}" @@ -4590,6 +4606,10 @@ Can not find the 'cp' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${CP}"; then + CP=`readlink -f "${CP}"` + fi + test "${CP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'CP'@!${CP}!g;" test "${CP}" @@ -4671,6 +4691,10 @@ Can not find the 'dirname' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${DIRNAME}"; then + DIRNAME=`readlink -f "${DIRNAME}"` + fi + test "${DIRNAME}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'DIRNAME'@!${DIRNAME}!g;" test "${DIRNAME}" @@ -4752,6 +4776,10 @@ Can not find the 'egrep' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${EGREP}"; then + EGREP=`readlink -f "${EGREP}"` + fi + test "${EGREP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'EGREP'@!${EGREP}!g;" test "${EGREP}" @@ -4833,6 +4861,10 @@ Can not find the 'env' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${ENV}"; then + ENV=`readlink -f "${ENV}"` + fi + test "${ENV}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'ENV'@!${ENV}!g;" test "${ENV}" @@ -4914,6 +4946,10 @@ Can not find the 'grep' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${GREP}"; then + GREP=`readlink -f "${GREP}"` + fi + test "${GREP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'GREP'@!${GREP}!g;" test "${GREP}" @@ -4995,6 +5031,10 @@ Can not find the 'ln' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${LN}"; then + LN=`readlink -f "${LN}"` + fi + test "${LN}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'LN'@!${LN}!g;" test "${LN}" @@ -5076,6 +5116,10 @@ Can not find the 'mkdir' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${MKDIR}"; then + MKDIR=`readlink -f "${MKDIR}"` + fi + test "${MKDIR}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MKDIR'@!${MKDIR}!g;" test "${MKDIR}" @@ -5157,6 +5201,10 @@ Can not find the 'mkfifo' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${MKFIFO}"; then + MKFIFO=`readlink -f "${MKFIFO}"` + fi + test "${MKFIFO}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MKFIFO'@!${MKFIFO}!g;" test "${MKFIFO}" @@ -5238,6 +5286,10 @@ Can not find the 'mktemp' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${MKTEMP}"; then + MKTEMP=`readlink -f "${MKTEMP}"` + fi + test "${MKTEMP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MKTEMP'@!${MKTEMP}!g;" test "${MKTEMP}" @@ -5319,6 +5371,10 @@ Can not find the 'mount' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${MOUNT}"; then + MOUNT=`readlink -f "${MOUNT}"` + fi + test "${MOUNT}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MOUNT'@!${MOUNT}!g;" test "${MOUNT}" @@ -5400,6 +5456,10 @@ Can not find the 'mv' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${MV}"; then + MV=`readlink -f "${MV}"` + fi + test "${MV}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MV'@!${MV}!g;" test "${MV}" @@ -5481,6 +5541,10 @@ Can not find the 'nice' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${NICE}"; then + NICE=`readlink -f "${NICE}"` + fi + test "${NICE}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'NICE'@!${NICE}!g;" test "${NICE}" @@ -5562,6 +5626,10 @@ Can not find the 'ps' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${PS}"; then + PS=`readlink -f "${PS}"` + fi + test "${PS}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'PS'@!${PS}!g;" test "${PS}" @@ -5643,6 +5711,10 @@ Can not find the 'rm' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${RM}"; then + RM=`readlink -f "${RM}"` + fi + test "${RM}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'RM'@!${RM}!g;" test "${RM}" @@ -5724,6 +5796,10 @@ Can not find the 'rmdir' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${RMDIR}"; then + RMDIR=`readlink -f "${RMDIR}"` + fi + test "${RMDIR}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'RMDIR'@!${RMDIR}!g;" test "${RMDIR}" @@ -5805,6 +5881,10 @@ Can not find the 'sed' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${SED}"; then + SED=`readlink -f "${SED}"` + fi + test "${SED}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'SED'@!${SED}!g;" test "${SED}" @@ -5886,6 +5966,10 @@ Can not find the 'sh' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${SH}"; then + SH=`readlink -f "${SH}"` + fi + test "${SH}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'SH'@!${SH}!g;" test "${SH}" @@ -5967,6 +6051,10 @@ Can not find the 'tac' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${TAC}"; then + TAC=`readlink -f "${TAC}"` + fi + test "${TAC}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'TAC'@!${TAC}!g;" test "${TAC}" @@ -6048,6 +6136,10 @@ Can not find the 'tar' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${TAR}"; then + TAR=`readlink -f "${TAR}"` + fi + test "${TAR}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'TAR'@!${TAR}!g;" test "${TAR}" @@ -6129,6 +6221,10 @@ Can not find the 'touch' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${TOUCH}"; then + TOUCH=`readlink -f "${TOUCH}"` + fi + test "${TOUCH}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'TOUCH'@!${TOUCH}!g;" test "${TOUCH}" @@ -6210,6 +6306,10 @@ Can not find the 'tty' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${TTY}"; then + TTY=`readlink -f "${TTY}"` + fi + test "${TTY}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'TTY'@!${TTY}!g;" test "${TTY}" @@ -6291,6 +6391,10 @@ Can not find the 'umount' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${UMOUNT}"; then + UMOUNT=`readlink -f "${UMOUNT}"` + fi + test "${UMOUNT}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'UMOUNT'@!${UMOUNT}!g;" test "${UMOUNT}" @@ -6372,6 +6476,10 @@ Can not find the 'wc' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${WC}"; then + WC=`readlink -f "${WC}"` + fi + test "${WC}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'WC'@!${WC}!g;" test "${WC}" @@ -6455,6 +6563,10 @@ Usually, this tool is shipped in the 'iproute' or 'iproute2' package of your dis fi fi + if test -e "${IP}"; then + IP=`readlink -f "${IP}"` + fi + test "${IP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'IP'@!${IP}!g;" test "${IP}" @@ -6536,6 +6648,10 @@ Can not find the 'iptables' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${IPTABLES}"; then + IPTABLES=`readlink -f "${IPTABLES}"` + fi + test "${IPTABLES}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'IPTABLES'@!${IPTABLES}!g;" test "${IPTABLES}" @@ -6617,6 +6733,10 @@ Can not find the 'modprobe' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${MODPROBE}"; then + MODPROBE=`readlink -f "${MODPROBE}"` + fi + test "${MODPROBE}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'MODPROBE'@!${MODPROBE}!g;" test "${MODPROBE}" @@ -6698,6 +6818,10 @@ Can not find the 'nameif' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${NAMEIF}"; then + NAMEIF=`readlink -f "${NAMEIF}"` + fi + test "${NAMEIF}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'NAMEIF'@!${NAMEIF}!g;" test "${NAMEIF}" @@ -6779,6 +6903,10 @@ Can not find the 'nohup' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${NOHUP}"; then + NOHUP=`readlink -f "${NOHUP}"` + fi + test "${NOHUP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'NOHUP'@!${NOHUP}!g;" test "${NOHUP}" @@ -6860,6 +6988,10 @@ Can not find the 'rmmod' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${RMMOD}"; then + RMMOD=`readlink -f "${RMMOD}"` + fi + test "${RMMOD}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'RMMOD'@!${RMMOD}!g;" test "${RMMOD}" @@ -6941,6 +7073,10 @@ See http://www.candelatech.com/~greear/vlan.html; usually this tool is shipped i fi fi + if test -e "${VCONFIG}"; then + VCONFIG=`readlink -f "${VCONFIG}"` + fi + test "${VCONFIG}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'VCONFIG'@!${VCONFIG}!g;" test "${VCONFIG}" @@ -7022,6 +7158,10 @@ Can not find the 'wget' tool within '${ensc_searchpath:-$PATH}'. fi fi + if test -e "${WGET}"; then + WGET=`readlink -f "${WGET}"` + fi + test "${WGET}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'WGET'@!${WGET}!g;" test "${WGET}" @@ -7029,8 +7169,7 @@ Can not find the 'wget' tool within '${ensc_searchpath:-$PATH}'. - - if test -z ":"; then + if test -z "file"; then rq=true else rq=false @@ -7039,21 +7178,21 @@ Can not find the 'wget' tool within '${ensc_searchpath:-$PATH}'. if $rq; then ensc_dflt= else - ensc_dflt=":" + ensc_dflt="file" fi - for ac_prog in doxygen + for ac_prog in file do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_DOXYGEN+set}" = set; then +if test "${ac_cv_path_FILE+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - case $DOXYGEN in + case $FILE in [\\/]* | ?:[\\/]*) - ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. + ac_cv_path_FILE="$FILE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7063,7 +7202,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + ac_cv_path_FILE="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -7073,45 +7212,49 @@ done ;; esac fi -DOXYGEN=$ac_cv_path_DOXYGEN +FILE=$ac_cv_path_FILE -if test -n "$DOXYGEN"; then - echo "$as_me:$LINENO: result: $DOXYGEN" >&5 -echo "${ECHO_T}$DOXYGEN" >&6 +if test -n "$FILE"; then + echo "$as_me:$LINENO: result: $FILE" >&5 +echo "${ECHO_T}$FILE" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi - test -n "$DOXYGEN" && break + test -n "$FILE" && break done -test -n "$DOXYGEN" || DOXYGEN="$ensc_dflt" +test -n "$FILE" || FILE="$ensc_dflt" - if test -z "${DOXYGEN}" && $rq; then + if test -z "${FILE}" && $rq; then if test -z ""; then - { { echo "$as_me:$LINENO: error: Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'." >&5 -echo "$as_me: error: Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'." >&2;} + { { echo "$as_me:$LINENO: error: Can not find the 'file' tool within '${ensc_searchpath:-$PATH}'." >&5 +echo "$as_me: error: Can not find the 'file' tool within '${ensc_searchpath:-$PATH}'." >&2;} { (exit 1); exit 1; }; } else { { echo "$as_me:$LINENO: error: -Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'. +Can not find the 'file' tool within '${ensc_searchpath:-$PATH}'. " >&5 echo "$as_me: error: -Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'. +Can not find the 'file' tool within '${ensc_searchpath:-$PATH}'. " >&2;} { (exit 1); exit 1; }; } fi fi - test "${DOXYGEN}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'DOXYGEN'@!${DOXYGEN}!g;" + if test -e "${FILE}"; then + FILE=`readlink -f "${FILE}"` + fi - test "${DOXYGEN}" + test "${FILE}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'FILE'@!${FILE}!g;" + test "${FILE}" - if test -z ":"; then + + if test -z "gzip"; then rq=true else rq=false @@ -7120,21 +7263,21 @@ Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'. if $rq; then ensc_dflt= else - ensc_dflt=":" + ensc_dflt="gzip" fi - for ac_prog in xsltp + for ac_prog in gzip do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_XSLTP+set}" = set; then +if test "${ac_cv_path_GZIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - case $XSLTP in + case $GZIP in [\\/]* | ?:[\\/]*) - ac_cv_path_XSLTP="$XSLTP" # Let the user override the test with a path. + ac_cv_path_GZIP="$GZIP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7144,7 +7287,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_XSLTP="$as_dir/$ac_word$ac_exec_ext" + ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -7154,45 +7297,49 @@ done ;; esac fi -XSLTP=$ac_cv_path_XSLTP +GZIP=$ac_cv_path_GZIP -if test -n "$XSLTP"; then - echo "$as_me:$LINENO: result: $XSLTP" >&5 -echo "${ECHO_T}$XSLTP" >&6 +if test -n "$GZIP"; then + echo "$as_me:$LINENO: result: $GZIP" >&5 +echo "${ECHO_T}$GZIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi - test -n "$XSLTP" && break + test -n "$GZIP" && break done -test -n "$XSLTP" || XSLTP="$ensc_dflt" +test -n "$GZIP" || GZIP="$ensc_dflt" - if test -z "${XSLTP}" && $rq; then + if test -z "${GZIP}" && $rq; then if test -z ""; then - { { echo "$as_me:$LINENO: error: Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'." >&5 -echo "$as_me: error: Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'." >&2;} + { { echo "$as_me:$LINENO: error: Can not find the 'gzip' tool within '${ensc_searchpath:-$PATH}'." >&5 +echo "$as_me: error: Can not find the 'gzip' tool within '${ensc_searchpath:-$PATH}'." >&2;} { (exit 1); exit 1; }; } else { { echo "$as_me:$LINENO: error: -Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'. +Can not find the 'gzip' tool within '${ensc_searchpath:-$PATH}'. " >&5 echo "$as_me: error: -Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'. +Can not find the 'gzip' tool within '${ensc_searchpath:-$PATH}'. " >&2;} { (exit 1); exit 1; }; } fi fi - test "${XSLTP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'XSLTP'@!${XSLTP}!g;" + if test -e "${GZIP}"; then + GZIP=`readlink -f "${GZIP}"` + fi - test "${XSLTP}" + test "${GZIP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'GZIP'@!${GZIP}!g;" + test "${GZIP}" - if test -z ":"; then + + if test -z "bzip2"; then rq=true else rq=false @@ -7201,21 +7348,21 @@ Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'. if $rq; then ensc_dflt= else - ensc_dflt=":" + ensc_dflt="bzip2" fi - for ac_prog in xsltproc + for ac_prog in bzip2 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_XSLTPROC+set}" = set; then +if test "${ac_cv_path_BZIP2+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - case $XSLTPROC in + case $BZIP2 in [\\/]* | ?:[\\/]*) - ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path. + ac_cv_path_BZIP2="$BZIP2" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7225,7 +7372,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext" + ac_cv_path_BZIP2="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -7235,477 +7382,609 @@ done ;; esac fi -XSLTPROC=$ac_cv_path_XSLTPROC +BZIP2=$ac_cv_path_BZIP2 -if test -n "$XSLTPROC"; then - echo "$as_me:$LINENO: result: $XSLTPROC" >&5 -echo "${ECHO_T}$XSLTPROC" >&6 +if test -n "$BZIP2"; then + echo "$as_me:$LINENO: result: $BZIP2" >&5 +echo "${ECHO_T}$BZIP2" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi - test -n "$XSLTPROC" && break + test -n "$BZIP2" && break done -test -n "$XSLTPROC" || XSLTPROC="$ensc_dflt" +test -n "$BZIP2" || BZIP2="$ensc_dflt" - if test -z "${XSLTPROC}" && $rq; then + if test -z "${BZIP2}" && $rq; then if test -z ""; then - { { echo "$as_me:$LINENO: error: Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'." >&5 -echo "$as_me: error: Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'." >&2;} + { { echo "$as_me:$LINENO: error: Can not find the 'bzip2' tool within '${ensc_searchpath:-$PATH}'." >&5 +echo "$as_me: error: Can not find the 'bzip2' tool within '${ensc_searchpath:-$PATH}'." >&2;} { (exit 1); exit 1; }; } else { { echo "$as_me:$LINENO: error: -Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'. +Can not find the 'bzip2' tool within '${ensc_searchpath:-$PATH}'. " >&5 echo "$as_me: error: -Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'. +Can not find the 'bzip2' tool within '${ensc_searchpath:-$PATH}'. " >&2;} { (exit 1); exit 1; }; } fi fi - test "${XSLTPROC}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'XSLTPROC'@!${XSLTPROC}!g;" + if test -e "${BZIP2}"; then + BZIP2=`readlink -f "${BZIP2}"` + fi - test "${XSLTPROC}" + test "${BZIP2}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'BZIP2'@!${BZIP2}!g;" + test "${BZIP2}" -if test "$XSLTP" != ':'; then - HAVE_XSLTP_TRUE= - HAVE_XSLTP_FALSE='#' -else - HAVE_XSLTP_TRUE='#' - HAVE_XSLTP_FALSE= -fi + if test -z "cpio"; then + rq=true + else + rq=false + fi + if $rq; then + ensc_dflt= + else + ensc_dflt="cpio" + fi -if test "$XSLTPROC" != ':'; then - HAVE_XSLTPROC_TRUE= - HAVE_XSLTPROC_FALSE='#' + for ac_prog in cpio +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_CPIO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - HAVE_XSLTPROC_TRUE='#' - HAVE_XSLTPROC_FALSE= + case $CPIO in + [\\/]* | ?:[\\/]*) + ac_cv_path_CPIO="$CPIO" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $ensc_searchpath +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_CPIO="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + ;; +esac fi +CPIO=$ac_cv_path_CPIO +if test -n "$CPIO"; then + echo "$as_me:$LINENO: result: $CPIO" >&5 +echo "${ECHO_T}$CPIO" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + test -n "$CPIO" && break +done +test -n "$CPIO" || CPIO="$ensc_dflt" + if test -z "${CPIO}" && $rq; then + if test -z ""; then + { { echo "$as_me:$LINENO: error: Can not find the 'cpio' tool within '${ensc_searchpath:-$PATH}'." >&5 +echo "$as_me: error: Can not find the 'cpio' tool within '${ensc_searchpath:-$PATH}'." >&2;} + { (exit 1); exit 1; }; } + else + { { echo "$as_me:$LINENO: error: +Can not find the 'cpio' tool within '${ensc_searchpath:-$PATH}'. +" >&5 +echo "$as_me: error: +Can not find the 'cpio' tool within '${ensc_searchpath:-$PATH}'. +" >&2;} + { (exit 1); exit 1; }; } + fi + fi - warn_flags="-Werror -W" - echo "$as_me:$LINENO: checking whether the C-compiler accepts ${warn_flags}" >&5 -echo $ECHO_N "checking whether the C-compiler accepts ${warn_flags}... $ECHO_C" >&6 - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test -e "${CPIO}"; then + CPIO=`readlink -f "${CPIO}"` + fi - __ensc_check_warnflags_old_CFLAGS="${CFLAGS}" - CFLAGS="$warn_flags" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -inline static void f(){} -int -main () -{ + test "${CPIO}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'CPIO'@!${CPIO}!g;" - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ensc_sys_compilerwarnflags_C=${warn_flags} -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + test "${CPIO}" -ensc_sys_compilerwarnflags_C= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - CFLAGS="$__ensc_check_warnflags_old_CFLAGS" - if test x"${ensc_sys_compilerwarnflags_C}" = x; then - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + + if test -z "restore"; then + rq=true else - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + rq=false fi + if $rq; then + ensc_dflt= + else + ensc_dflt="restore" + fi + for ac_prog in restore +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_RESTORE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $RESTORE in + [\\/]* | ?:[\\/]*) + ac_cv_path_RESTORE="$RESTORE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $ensc_searchpath +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_RESTORE="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + ;; +esac +fi +RESTORE=$ac_cv_path_RESTORE - -echo 'void f(){}' > conftest.c - for i in -std=c99 -Wall -pedantic -W - do - echo "$as_me:$LINENO: checking whether $CC accepts $i" >&5 -echo $ECHO_N "checking whether $CC accepts $i... $ECHO_C" >&6 - if test -z "`${CC} ${ensc_sys_compilerwarnflags_C} $i -c conftest.c 2>&1`" - then - CFLAGS="${CFLAGS} $i" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 +if test -n "$RESTORE"; then + echo "$as_me:$LINENO: result: $RESTORE" >&5 +echo "${ECHO_T}$RESTORE" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 - fi - done - rm -f conftest.c conftest.o +fi + test -n "$RESTORE" && break +done +test -n "$RESTORE" || RESTORE="$ensc_dflt" - warn_flags="-Werror -W" - echo "$as_me:$LINENO: checking whether the C++-compiler accepts ${warn_flags}" >&5 -echo $ECHO_N "checking whether the C++-compiler accepts ${warn_flags}... $ECHO_C" >&6 - ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + if test -z "${RESTORE}" && $rq; then + if test -z ""; then + { { echo "$as_me:$LINENO: error: Can not find the 'restore' tool within '${ensc_searchpath:-$PATH}'." >&5 +echo "$as_me: error: Can not find the 'restore' tool within '${ensc_searchpath:-$PATH}'." >&2;} + { (exit 1); exit 1; }; } + else + { { echo "$as_me:$LINENO: error: +Can not find the 'restore' tool within '${ensc_searchpath:-$PATH}'. +" >&5 +echo "$as_me: error: +Can not find the 'restore' tool within '${ensc_searchpath:-$PATH}'. +" >&2;} + { (exit 1); exit 1; }; } + fi + fi - __ensc_check_warnflags_old_CFLAGS="${CXXFLAGS}" - CXXFLAGS="$warn_flags" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -inline static void f(){} -int -main () -{ + if test -e "${RESTORE}"; then + RESTORE=`readlink -f "${RESTORE}"` + fi - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ensc_sys_compilerwarnflags_CXX=${warn_flags} -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + test "${RESTORE}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'RESTORE'@!${RESTORE}!g;" -ensc_sys_compilerwarnflags_CXX= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + test "${RESTORE}" - CXXFLAGS="$__ensc_check_warnflags_old_CFLAGS" - if test x"${ensc_sys_compilerwarnflags_CXX}" = x; then - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + + + if test -z "rsync"; then + rq=true else - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + rq=false fi + if $rq; then + ensc_dflt= + else + ensc_dflt="rsync" + fi + for ac_prog in rsync +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_RSYNC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $RSYNC in + [\\/]* | ?:[\\/]*) + ac_cv_path_RSYNC="$RSYNC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $ensc_searchpath +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_RSYNC="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + ;; +esac +fi +RSYNC=$ac_cv_path_RSYNC - - echo 'void f(){}' > conftest.cc - for i in -ansi -Wall -pedantic -W -fmessage-length=0 - do - echo "$as_me:$LINENO: checking whether $CXX accepts $i" >&5 -echo $ECHO_N "checking whether $CXX accepts $i... $ECHO_C" >&6 - if test -z "`${CXX} ${ensc_sys_compilerwarnflags_CXX} $i -c conftest.cc 2>&1`" - then - CXXFLAGS="${CXXFLAGS} $i" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 +if test -n "$RSYNC"; then + echo "$as_me:$LINENO: result: $RSYNC" >&5 +echo "${ECHO_T}$RSYNC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 - fi - done - rm -f conftest.cc conftest.o +fi + test -n "$RSYNC" && break +done +test -n "$RSYNC" || RSYNC="$ensc_dflt" -echo "$as_me:$LINENO: checking whether to enable extra optimizations" >&5 -echo $ECHO_N "checking whether to enable extra optimizations... $ECHO_C" >&6 -# Check whether --enable-extra-optimizations or --disable-extra-optimizations was given. -if test "${enable_extra_optimizations+set}" = set; then - enableval="$enable_extra_optimizations" - case "$enableval" in - (yes) use_extra_optimizations=1;; - (no) use_extra_optimizations=;; - (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for '--disable-extra-optimizations'" >&5 -echo "$as_me: error: '$enableval' is not a valid value for '--disable-extra-optimizations'" >&2;} - { (exit 1); exit 1; }; };; - esac -else - use_extra_optimizations=1 -fi; -if test x"$use_extra_optimizations" = x; then - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -else - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + if test -z "${RSYNC}" && $rq; then + if test -z ""; then + { { echo "$as_me:$LINENO: error: Can not find the 'rsync' tool within '${ensc_searchpath:-$PATH}'." >&5 +echo "$as_me: error: Can not find the 'rsync' tool within '${ensc_searchpath:-$PATH}'." >&2;} + { (exit 1); exit 1; }; } + else + { { echo "$as_me:$LINENO: error: +Can not find the 'rsync' tool within '${ensc_searchpath:-$PATH}'. +" >&5 +echo "$as_me: error: +Can not find the 'rsync' tool within '${ensc_searchpath:-$PATH}'. +" >&2;} + { (exit 1); exit 1; }; } + fi + fi + if test -e "${RSYNC}"; then + RSYNC=`readlink -f "${RSYNC}"` + fi + test "${RSYNC}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'RSYNC'@!${RSYNC}!g;" -echo 'void f(){}' > conftest.c - for i in -funit-at-a-time - do - echo "$as_me:$LINENO: checking whether $CC accepts $i" >&5 -echo $ECHO_N "checking whether $CC accepts $i... $ECHO_C" >&6 - if test -z "`${CC} ${ensc_sys_compilerwarnflags_C} $i -c conftest.c 2>&1`" - then - CFLAGS="${CFLAGS} $i" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - fi - done - rm -f conftest.c conftest.o + test "${RSYNC}" - echo 'void f(){}' > conftest.cc - for i in -funit-at-a-time - do - echo "$as_me:$LINENO: checking whether $CXX accepts $i" >&5 -echo $ECHO_N "checking whether $CXX accepts $i... $ECHO_C" >&6 - if test -z "`${CXX} ${ensc_sys_compilerwarnflags_CXX} $i -c conftest.cc 2>&1`" - then - CXXFLAGS="${CXXFLAGS} $i" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - fi - done - rm -f conftest.cc conftest.o -fi - -echo "$as_me:$LINENO: checking whether to enable debug-code in library" >&5 -echo $ECHO_N "checking whether to enable debug-code in library... $ECHO_C" >&6 -# Check whether --enable-lib-debug or --disable-lib-debug was given. -if test "${enable_lib_debug+set}" = set; then - enableval="$enable_lib_debug" - case "$enableval" in - (yes) use_lib_debug=1;; - (no) use_lib_debug=;; - (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for '--enable-lib-debug'" >&5 -echo "$as_me: error: '$enableval' is not a valid value for '--enable-lib-debug'" >&2;} - { (exit 1); exit 1; }; };; - esac -else - use_lib_debug= -fi; + if test -z ":"; then + rq=true + else + rq=false + fi -if test x"$use_lib_debug" = x; then - LIB_DEBUG_CPPFLAGS=-DNDEBUG + if $rq; then + ensc_dflt= + else + ensc_dflt=":" + fi - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + for ac_prog in doxygen +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_DOXYGEN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else + case $DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $ensc_searchpath +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + ;; +esac fi +DOXYGEN=$ac_cv_path_DOXYGEN -echo "$as_me:$LINENO: checking whether to enable expensive tests" >&5 -echo $ECHO_N "checking whether to enable expensive tests... $ECHO_C" >&6 -# Check whether --enable-expensive-tests or --disable-expensive-tests was given. -if test "${enable_expensive_tests+set}" = set; then - enableval="$enable_expensive_tests" - case "$enableval" in - (yes|no) use_expensive_tests=$enableval;; - (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for '--disable-expensive-tests'" >&5 -echo "$as_me: error: '$enableval' is not a valid value for '--disable-expensive-tests'" >&2;} - { (exit 1); exit 1; }; };; - esac +if test -n "$DOXYGEN"; then + echo "$as_me:$LINENO: result: $DOXYGEN" >&5 +echo "${ECHO_T}$DOXYGEN" >&6 else - use_expensive_tests=yes -fi; -echo "$as_me:$LINENO: result: $use_expensive_tests" >&5 -echo "${ECHO_T}$use_expensive_tests" >&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi -ENSC_USE_EXPENSIVE_TESTS="$use_expensive_tests" + test -n "$DOXYGEN" && break +done +test -n "$DOXYGEN" || DOXYGEN="$ensc_dflt" + if test -z "${DOXYGEN}" && $rq; then + if test -z ""; then + { { echo "$as_me:$LINENO: error: Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'." >&5 +echo "$as_me: error: Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'." >&2;} + { (exit 1); exit 1; }; } + else + { { echo "$as_me:$LINENO: error: +Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'. +" >&5 +echo "$as_me: error: +Can not find the 'doxygen' tool within '${ensc_searchpath:-$PATH}'. +" >&2;} + { (exit 1); exit 1; }; } + fi + fi + if test -e "${DOXYGEN}"; then + DOXYGEN=`readlink -f "${DOXYGEN}"` + fi - echo "$as_me:$LINENO: checking for declarations in " >&5 -echo $ECHO_N "checking for declarations in ... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: " >&5 -echo "${ECHO_T}" >&6 + test "${DOXYGEN}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'DOXYGEN'@!${DOXYGEN}!g;" - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + test "${DOXYGEN}" - echo "$as_me:$LINENO: checking whether MMAP_PAGE_ZERO is declared" >&5 -echo $ECHO_N "checking whether MMAP_PAGE_ZERO is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_MMAP_PAGE_ZERO+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -#ifndef MMAP_PAGE_ZERO - char *p = (char *) MMAP_PAGE_ZERO; -#endif + if test -z ":"; then + rq=true + else + rq=false + fi - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_MMAP_PAGE_ZERO=yes + if $rq; then + ensc_dflt= + else + ensc_dflt=":" + fi + + for ac_prog in xsltp +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_XSLTP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + case $XSLTP in + [\\/]* | ?:[\\/]*) + ac_cv_path_XSLTP="$XSLTP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $ensc_searchpath +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_XSLTP="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done -ac_cv_have_decl_MMAP_PAGE_ZERO=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ;; +esac fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_MMAP_PAGE_ZERO" >&5 -echo "${ECHO_T}$ac_cv_have_decl_MMAP_PAGE_ZERO" >&6 -if test $ac_cv_have_decl_MMAP_PAGE_ZERO = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_MMAP_PAGE_ZERO 1 -_ACEOF - +XSLTP=$ac_cv_path_XSLTP +if test -n "$XSLTP"; then + echo "$as_me:$LINENO: result: $XSLTP" >&5 +echo "${ECHO_T}$XSLTP" >&6 else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_MMAP_PAGE_ZERO 0 -_ACEOF - - + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -echo "$as_me:$LINENO: checking whether ADDR_LIMIT_32BIT is declared" >&5 -echo $ECHO_N "checking whether ADDR_LIMIT_32BIT is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_ADDR_LIMIT_32BIT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include + test -n "$XSLTP" && break +done +test -n "$XSLTP" || XSLTP="$ensc_dflt" -int -main () -{ -#ifndef ADDR_LIMIT_32BIT - char *p = (char *) ADDR_LIMIT_32BIT; -#endif - ; - return 0; -} + if test -z "${XSLTP}" && $rq; then + if test -z ""; then + { { echo "$as_me:$LINENO: error: Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'." >&5 +echo "$as_me: error: Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'." >&2;} + { (exit 1); exit 1; }; } + else + { { echo "$as_me:$LINENO: error: +Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'. +" >&5 +echo "$as_me: error: +Can not find the 'xsltp' tool within '${ensc_searchpath:-$PATH}'. +" >&2;} + { (exit 1); exit 1; }; } + fi + fi + + if test -e "${XSLTP}"; then + XSLTP=`readlink -f "${XSLTP}"` + fi + + test "${XSLTP}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'XSLTP'@!${XSLTP}!g;" + + test "${XSLTP}" + + + + + if test -z ":"; then + rq=true + else + rq=false + fi + + if $rq; then + ensc_dflt= + else + ensc_dflt=":" + fi + + for ac_prog in xsltproc +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_XSLTPROC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $XSLTPROC in + [\\/]* | ?:[\\/]*) + ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $ensc_searchpath +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + ;; +esac +fi +XSLTPROC=$ac_cv_path_XSLTPROC + +if test -n "$XSLTPROC"; then + echo "$as_me:$LINENO: result: $XSLTPROC" >&5 +echo "${ECHO_T}$XSLTPROC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$XSLTPROC" && break +done +test -n "$XSLTPROC" || XSLTPROC="$ensc_dflt" + + + if test -z "${XSLTPROC}" && $rq; then + if test -z ""; then + { { echo "$as_me:$LINENO: error: Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'." >&5 +echo "$as_me: error: Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'." >&2;} + { (exit 1); exit 1; }; } + else + { { echo "$as_me:$LINENO: error: +Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'. +" >&5 +echo "$as_me: error: +Can not find the 'xsltproc' tool within '${ensc_searchpath:-$PATH}'. +" >&2;} + { (exit 1); exit 1; }; } + fi + fi + + if test -e "${XSLTPROC}"; then + XSLTPROC=`readlink -f "${XSLTPROC}"` + fi + + test "${XSLTPROC}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'XSLTPROC'@!${XSLTPROC}!g;" + + test "${XSLTPROC}" + + + + +if test "$XSLTP" != ':'; then + HAVE_XSLTP_TRUE= + HAVE_XSLTP_FALSE='#' +else + HAVE_XSLTP_TRUE='#' + HAVE_XSLTP_FALSE= +fi + + + +if test "$XSLTPROC" != ':'; then + HAVE_XSLTPROC_TRUE= + HAVE_XSLTPROC_FALSE='#' +else + HAVE_XSLTPROC_TRUE='#' + HAVE_XSLTPROC_FALSE= +fi + + +if test x"$prefix" = x/; then + prefix= +fi + + + + warn_flags="-Werror -W" + echo "$as_me:$LINENO: checking whether the C-compiler accepts ${warn_flags}" >&5 +echo $ECHO_N "checking whether the C-compiler accepts ${warn_flags}... $ECHO_C" >&6 + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + __ensc_check_warnflags_old_CFLAGS="${CFLAGS}" + CFLAGS="$warn_flags" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +inline static void f(){} +int +main () +{ + + ; + return 0; +} _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 @@ -7729,52 +8008,74 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_have_decl_ADDR_LIMIT_32BIT=yes + ensc_sys_compilerwarnflags_C=${warn_flags} else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_ADDR_LIMIT_32BIT=no +ensc_sys_compilerwarnflags_C= fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_ADDR_LIMIT_32BIT" >&5 -echo "${ECHO_T}$ac_cv_have_decl_ADDR_LIMIT_32BIT" >&6 -if test $ac_cv_have_decl_ADDR_LIMIT_32BIT = yes; then + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_ADDR_LIMIT_32BIT 1 -_ACEOF + CFLAGS="$__ensc_check_warnflags_old_CFLAGS" + + if test x"${ensc_sys_compilerwarnflags_C}" = x; then + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + else + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + fi -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_ADDR_LIMIT_32BIT 0 -_ACEOF -fi -echo "$as_me:$LINENO: checking whether SHORT_INODE is declared" >&5 -echo $ECHO_N "checking whether SHORT_INODE is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_SHORT_INODE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF + +echo 'void f(){}' > conftest.c + for i in -std=c99 -Wall -pedantic -W + do + echo "$as_me:$LINENO: checking whether $CC accepts $i" >&5 +echo $ECHO_N "checking whether $CC accepts $i... $ECHO_C" >&6 + if test -z "`${CC} ${ensc_sys_compilerwarnflags_C} $i -c conftest.c 2>&1`" + then + CFLAGS="${CFLAGS} $i" + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + done + rm -f conftest.c conftest.o + + + + warn_flags="-Werror -W" + echo "$as_me:$LINENO: checking whether the C++-compiler accepts ${warn_flags}" >&5 +echo $ECHO_N "checking whether the C++-compiler accepts ${warn_flags}... $ECHO_C" >&6 + ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + __ensc_check_warnflags_old_CFLAGS="${CXXFLAGS}" + CXXFLAGS="$warn_flags" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -#include - - +inline static void f(){} int main () { -#ifndef SHORT_INODE - char *p = (char *) SHORT_INODE; -#endif ; return 0; @@ -7789,7 +8090,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 @@ -7802,34 +8103,179 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_have_decl_SHORT_INODE=yes + ensc_sys_compilerwarnflags_CXX=${warn_flags} else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_SHORT_INODE=no +ensc_sys_compilerwarnflags_CXX= fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_SHORT_INODE" >&5 -echo "${ECHO_T}$ac_cv_have_decl_SHORT_INODE" >&6 -if test $ac_cv_have_decl_SHORT_INODE = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_SHORT_INODE 1 -_ACEOF + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + CXXFLAGS="$__ensc_check_warnflags_old_CFLAGS" + + if test x"${ensc_sys_compilerwarnflags_CXX}" = x; then + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + else + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + fi + + + + + + echo 'void f(){}' > conftest.cc + for i in -ansi -Wall -pedantic -W -fmessage-length=0 + do + echo "$as_me:$LINENO: checking whether $CXX accepts $i" >&5 +echo $ECHO_N "checking whether $CXX accepts $i... $ECHO_C" >&6 + if test -z "`${CXX} ${ensc_sys_compilerwarnflags_CXX} $i -c conftest.cc 2>&1`" + then + CXXFLAGS="${CXXFLAGS} $i" + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + done + rm -f conftest.cc conftest.o + + +echo "$as_me:$LINENO: checking whether to enable extra optimizations" >&5 +echo $ECHO_N "checking whether to enable extra optimizations... $ECHO_C" >&6 +# Check whether --enable-extra-optimizations or --disable-extra-optimizations was given. +if test "${enable_extra_optimizations+set}" = set; then + enableval="$enable_extra_optimizations" + case "$enableval" in + (yes) use_extra_optimizations=1;; + (no) use_extra_optimizations=;; + (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for '--disable-extra-optimizations'" >&5 +echo "$as_me: error: '$enableval' is not a valid value for '--disable-extra-optimizations'" >&2;} + { (exit 1); exit 1; }; };; + esac +else + use_extra_optimizations=1 +fi; + +if test x"$use_extra_optimizations" = x; then + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +else + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + + + +echo 'void f(){}' > conftest.c + for i in -funit-at-a-time + do + echo "$as_me:$LINENO: checking whether $CC accepts $i" >&5 +echo $ECHO_N "checking whether $CC accepts $i... $ECHO_C" >&6 + if test -z "`${CC} ${ensc_sys_compilerwarnflags_C} $i -c conftest.c 2>&1`" + then + CFLAGS="${CFLAGS} $i" + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + done + rm -f conftest.c conftest.o -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_SHORT_INODE 0 -_ACEOF + + echo 'void f(){}' > conftest.cc + for i in -funit-at-a-time + do + echo "$as_me:$LINENO: checking whether $CXX accepts $i" >&5 +echo $ECHO_N "checking whether $CXX accepts $i... $ECHO_C" >&6 + if test -z "`${CXX} ${ensc_sys_compilerwarnflags_CXX} $i -c conftest.cc 2>&1`" + then + CXXFLAGS="${CXXFLAGS} $i" + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + done + rm -f conftest.cc conftest.o + fi -echo "$as_me:$LINENO: checking whether WHOLE_SECONDS is declared" >&5 -echo $ECHO_N "checking whether WHOLE_SECONDS is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_WHOLE_SECONDS+set}" = set; then + +echo "$as_me:$LINENO: checking whether to enable debug-code in library" >&5 +echo $ECHO_N "checking whether to enable debug-code in library... $ECHO_C" >&6 +# Check whether --enable-lib-debug or --disable-lib-debug was given. +if test "${enable_lib_debug+set}" = set; then + enableval="$enable_lib_debug" + case "$enableval" in + (yes) use_lib_debug=1;; + (no) use_lib_debug=;; + (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for '--enable-lib-debug'" >&5 +echo "$as_me: error: '$enableval' is not a valid value for '--enable-lib-debug'" >&2;} + { (exit 1); exit 1; }; };; + esac +else + use_lib_debug= +fi; + +if test x"$use_lib_debug" = x; then + LIB_DEBUG_CPPFLAGS=-DNDEBUG + + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +else + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +fi + +echo "$as_me:$LINENO: checking whether to enable expensive tests" >&5 +echo $ECHO_N "checking whether to enable expensive tests... $ECHO_C" >&6 +# Check whether --enable-expensive-tests or --disable-expensive-tests was given. +if test "${enable_expensive_tests+set}" = set; then + enableval="$enable_expensive_tests" + case "$enableval" in + (yes|no) use_expensive_tests=$enableval;; + (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for '--enable-expensive-tests'" >&5 +echo "$as_me: error: '$enableval' is not a valid value for '--enable-expensive-tests'" >&2;} + { (exit 1); exit 1; }; };; + esac +else + use_expensive_tests=no +fi; +echo "$as_me:$LINENO: result: $use_expensive_tests" >&5 +echo "${ECHO_T}$use_expensive_tests" >&6 + +ENSC_USE_EXPENSIVE_TESTS="$use_expensive_tests" + + + + + echo "$as_me:$LINENO: checking for declarations in " >&5 +echo $ECHO_N "checking for declarations in ... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: " >&5 +echo "${ECHO_T}" >&6 + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + echo "$as_me:$LINENO: checking whether MMAP_PAGE_ZERO is declared" >&5 +echo $ECHO_N "checking whether MMAP_PAGE_ZERO is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_MMAP_PAGE_ZERO+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -7845,8 +8291,8 @@ cat >>conftest.$ac_ext <<_ACEOF int main () { -#ifndef WHOLE_SECONDS - char *p = (char *) WHOLE_SECONDS; +#ifndef MMAP_PAGE_ZERO + char *p = (char *) MMAP_PAGE_ZERO; #endif ; @@ -7875,34 +8321,34 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_have_decl_WHOLE_SECONDS=yes + ac_cv_have_decl_MMAP_PAGE_ZERO=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_WHOLE_SECONDS=no +ac_cv_have_decl_MMAP_PAGE_ZERO=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_WHOLE_SECONDS" >&5 -echo "${ECHO_T}$ac_cv_have_decl_WHOLE_SECONDS" >&6 -if test $ac_cv_have_decl_WHOLE_SECONDS = yes; then +echo "$as_me:$LINENO: result: $ac_cv_have_decl_MMAP_PAGE_ZERO" >&5 +echo "${ECHO_T}$ac_cv_have_decl_MMAP_PAGE_ZERO" >&6 +if test $ac_cv_have_decl_MMAP_PAGE_ZERO = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_WHOLE_SECONDS 1 +#define HAVE_DECL_MMAP_PAGE_ZERO 1 _ACEOF else cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_WHOLE_SECONDS 0 +#define HAVE_DECL_MMAP_PAGE_ZERO 0 _ACEOF fi -echo "$as_me:$LINENO: checking whether STICKY_TIMEOUTS is declared" >&5 -echo $ECHO_N "checking whether STICKY_TIMEOUTS is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_STICKY_TIMEOUTS+set}" = set; then +echo "$as_me:$LINENO: checking whether ADDR_LIMIT_32BIT is declared" >&5 +echo $ECHO_N "checking whether ADDR_LIMIT_32BIT is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_ADDR_LIMIT_32BIT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -7918,8 +8364,8 @@ cat >>conftest.$ac_ext <<_ACEOF int main () { -#ifndef STICKY_TIMEOUTS - char *p = (char *) STICKY_TIMEOUTS; +#ifndef ADDR_LIMIT_32BIT + char *p = (char *) ADDR_LIMIT_32BIT; #endif ; @@ -7948,34 +8394,34 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_have_decl_STICKY_TIMEOUTS=yes + ac_cv_have_decl_ADDR_LIMIT_32BIT=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_STICKY_TIMEOUTS=no +ac_cv_have_decl_ADDR_LIMIT_32BIT=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_STICKY_TIMEOUTS" >&5 -echo "${ECHO_T}$ac_cv_have_decl_STICKY_TIMEOUTS" >&6 -if test $ac_cv_have_decl_STICKY_TIMEOUTS = yes; then +echo "$as_me:$LINENO: result: $ac_cv_have_decl_ADDR_LIMIT_32BIT" >&5 +echo "${ECHO_T}$ac_cv_have_decl_ADDR_LIMIT_32BIT" >&6 +if test $ac_cv_have_decl_ADDR_LIMIT_32BIT = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STICKY_TIMEOUTS 1 +#define HAVE_DECL_ADDR_LIMIT_32BIT 1 _ACEOF else cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STICKY_TIMEOUTS 0 +#define HAVE_DECL_ADDR_LIMIT_32BIT 0 _ACEOF fi -echo "$as_me:$LINENO: checking whether ADDR_LIMIT_3GB is declared" >&5 -echo $ECHO_N "checking whether ADDR_LIMIT_3GB is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_ADDR_LIMIT_3GB+set}" = set; then +echo "$as_me:$LINENO: checking whether SHORT_INODE is declared" >&5 +echo $ECHO_N "checking whether SHORT_INODE is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_SHORT_INODE+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -7991,8 +8437,8 @@ cat >>conftest.$ac_ext <<_ACEOF int main () { -#ifndef ADDR_LIMIT_3GB - char *p = (char *) ADDR_LIMIT_3GB; +#ifndef SHORT_INODE + char *p = (char *) SHORT_INODE; #endif ; @@ -8021,37 +8467,34 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_have_decl_ADDR_LIMIT_3GB=yes + ac_cv_have_decl_SHORT_INODE=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_ADDR_LIMIT_3GB=no +ac_cv_have_decl_SHORT_INODE=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_ADDR_LIMIT_3GB" >&5 -echo "${ECHO_T}$ac_cv_have_decl_ADDR_LIMIT_3GB" >&6 -if test $ac_cv_have_decl_ADDR_LIMIT_3GB = yes; then +echo "$as_me:$LINENO: result: $ac_cv_have_decl_SHORT_INODE" >&5 +echo "${ECHO_T}$ac_cv_have_decl_SHORT_INODE" >&6 +if test $ac_cv_have_decl_SHORT_INODE = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_ADDR_LIMIT_3GB 1 +#define HAVE_DECL_SHORT_INODE 1 _ACEOF else cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_ADDR_LIMIT_3GB 0 +#define HAVE_DECL_SHORT_INODE 0 _ACEOF fi - - - - echo "$as_me:$LINENO: checking whether PER_LINUX is declared" >&5 -echo $ECHO_N "checking whether PER_LINUX is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_PER_LINUX+set}" = set; then +echo "$as_me:$LINENO: checking whether WHOLE_SECONDS is declared" >&5 +echo $ECHO_N "checking whether WHOLE_SECONDS is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_WHOLE_SECONDS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -8067,8 +8510,8 @@ cat >>conftest.$ac_ext <<_ACEOF int main () { -#ifndef PER_LINUX - char *p = (char *) PER_LINUX; +#ifndef WHOLE_SECONDS + char *p = (char *) WHOLE_SECONDS; #endif ; @@ -8097,34 +8540,34 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_have_decl_PER_LINUX=yes + ac_cv_have_decl_WHOLE_SECONDS=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_PER_LINUX=no +ac_cv_have_decl_WHOLE_SECONDS=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_LINUX" >&5 -echo "${ECHO_T}$ac_cv_have_decl_PER_LINUX" >&6 -if test $ac_cv_have_decl_PER_LINUX = yes; then +echo "$as_me:$LINENO: result: $ac_cv_have_decl_WHOLE_SECONDS" >&5 +echo "${ECHO_T}$ac_cv_have_decl_WHOLE_SECONDS" >&6 +if test $ac_cv_have_decl_WHOLE_SECONDS = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PER_LINUX 1 +#define HAVE_DECL_WHOLE_SECONDS 1 _ACEOF else cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PER_LINUX 0 +#define HAVE_DECL_WHOLE_SECONDS 0 _ACEOF fi -echo "$as_me:$LINENO: checking whether PER_LINUX_32BIT is declared" >&5 -echo $ECHO_N "checking whether PER_LINUX_32BIT is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_PER_LINUX_32BIT+set}" = set; then +echo "$as_me:$LINENO: checking whether STICKY_TIMEOUTS is declared" >&5 +echo $ECHO_N "checking whether STICKY_TIMEOUTS is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_STICKY_TIMEOUTS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -8140,9 +8583,231 @@ cat >>conftest.$ac_ext <<_ACEOF int main () { -#ifndef PER_LINUX_32BIT - char *p = (char *) PER_LINUX_32BIT; -#endif +#ifndef STICKY_TIMEOUTS + char *p = (char *) STICKY_TIMEOUTS; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl_STICKY_TIMEOUTS=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl_STICKY_TIMEOUTS=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_STICKY_TIMEOUTS" >&5 +echo "${ECHO_T}$ac_cv_have_decl_STICKY_TIMEOUTS" >&6 +if test $ac_cv_have_decl_STICKY_TIMEOUTS = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STICKY_TIMEOUTS 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STICKY_TIMEOUTS 0 +_ACEOF + + +fi +echo "$as_me:$LINENO: checking whether ADDR_LIMIT_3GB is declared" >&5 +echo $ECHO_N "checking whether ADDR_LIMIT_3GB is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_ADDR_LIMIT_3GB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include + + +int +main () +{ +#ifndef ADDR_LIMIT_3GB + char *p = (char *) ADDR_LIMIT_3GB; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl_ADDR_LIMIT_3GB=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl_ADDR_LIMIT_3GB=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_ADDR_LIMIT_3GB" >&5 +echo "${ECHO_T}$ac_cv_have_decl_ADDR_LIMIT_3GB" >&6 +if test $ac_cv_have_decl_ADDR_LIMIT_3GB = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ADDR_LIMIT_3GB 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ADDR_LIMIT_3GB 0 +_ACEOF + + +fi + + + + echo "$as_me:$LINENO: checking whether PER_LINUX is declared" >&5 +echo $ECHO_N "checking whether PER_LINUX is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_PER_LINUX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include + + +int +main () +{ +#ifndef PER_LINUX + char *p = (char *) PER_LINUX; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl_PER_LINUX=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl_PER_LINUX=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_PER_LINUX" >&5 +echo "${ECHO_T}$ac_cv_have_decl_PER_LINUX" >&6 +if test $ac_cv_have_decl_PER_LINUX = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PER_LINUX 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PER_LINUX 0 +_ACEOF + + +fi +echo "$as_me:$LINENO: checking whether PER_LINUX_32BIT is declared" >&5 +echo $ECHO_N "checking whether PER_LINUX_32BIT is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_PER_LINUX_32BIT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include + + +int +main () +{ +#ifndef PER_LINUX_32BIT + char *p = (char *) PER_LINUX_32BIT; +#endif ; return 0; @@ -9647,309 +10312,324 @@ fi; echo "${ECHO_T}$ensc_release_mode" >&6 - -case $host_cpu in - (i*86|athlon) min_diet_ver=0.25;; - (ia64|hppa*) min_diet_ver=0.29;; - (*) min_diet_ver=0.28;; -esac - - - echo "$as_me:$LINENO: checking whether to enable dietlibc" >&5 -echo $ECHO_N "checking whether to enable dietlibc... $ECHO_C" >&6 - - - - - : ${DIET:=diet} - : ${DIETFLAGS=-Os} - - # Check whether --enable-dietlibc or --disable-dietlibc was given. -if test "${enable_dietlibc+set}" = set; then - enableval="$enable_dietlibc" - case "$enableval" in - (yes) use_dietlibc=forced;; - (no) use_dietlibc=forced_no;; - (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for --enable-dietlibc" >&5 -echo "$as_me: error: '$enableval' is not a valid value for --enable-dietlibc" >&2;} - { (exit 1); exit 1; }; };; - esac -else - which "$DIET" >/dev/null 2>/dev/null && use_dietlibc=detected || use_dietlibc=detected_no -fi; - - if test "$use_dietlibc" = detected -a "$min_diet_ver"; then - _dietlibc_ver=$($DIET -v 2>&1 | sed '1p;d') - _dietlibc_ver=${_dietlibc_ver##*diet version } - _dietlibc_ver=${_dietlibc_ver##*dietlibc-} - _dietlibc_ver_maj=${_dietlibc_ver%%.*} - _dietlibc_ver_min=${_dietlibc_ver##*.} - _dietlibc_ver_min=${_dietlibc_ver_min%%[!0-9]*} - _dietlibc_cmp="$min_diet_ver" - _dietlibc_cmp_maj=${_dietlibc_cmp%%.*} - _dietlibc_cmp_min=${_dietlibc_cmp##*.} - - ENSC_VERSION_DIETLIBC=$_dietlibc_ver_maj.$_dietlibc_ver_min - - let _dietlibc_ver=_dietlibc_ver_maj*1000+_dietlibc_ver_min 2>/dev/null || _dietlibc_ver=0 - let _dietlibc_cmp=_dietlibc_cmp_maj*1000+_dietlibc_cmp_min - - test $_dietlibc_ver -ge $_dietlibc_cmp || use_dietlibc=detected_old - else - ENSC_VERSION_DIETLIBC= - _dietlibc_ver=-1 - fi - - ENSC_VERSION_DIETLIBC_NUM=$_dietlibc_ver - ensc_have_dietlibc=no - - case x"$use_dietlibc" in - xdetected) - - -if true; then - USE_DIETLIBC_TRUE= - USE_DIETLIBC_FALSE='#' -else - USE_DIETLIBC_TRUE='#' - USE_DIETLIBC_FALSE= -fi - - echo "$as_me:$LINENO: result: yes (autodetected, $ENSC_VERSION_DIETLIBC)" >&5 -echo "${ECHO_T}yes (autodetected, $ENSC_VERSION_DIETLIBC)" >&6 - ensc_have_dietlibc=yes - ;; - xforced) - - -if true; then - USE_DIETLIBC_TRUE= - USE_DIETLIBC_FALSE='#' -else - USE_DIETLIBC_TRUE='#' - USE_DIETLIBC_FALSE= -fi - - echo "$as_me:$LINENO: result: yes (forced)" >&5 -echo "${ECHO_T}yes (forced)" >&6 - ensc_have_dietlibc=yes - ;; - xdetected_no) - - -if false; then - USE_DIETLIBC_TRUE= - USE_DIETLIBC_FALSE='#' -else - USE_DIETLIBC_TRUE='#' - USE_DIETLIBC_FALSE= -fi - - echo "$as_me:$LINENO: result: no (detected)" >&5 -echo "${ECHO_T}no (detected)" >&6 - ;; - xdetected_old) - - -if false; then - USE_DIETLIBC_TRUE= - USE_DIETLIBC_FALSE='#' -else - USE_DIETLIBC_TRUE='#' - USE_DIETLIBC_FALSE= -fi - - echo "$as_me:$LINENO: result: no (too old; $min_diet_ver+ required, $ENSC_VERSION_DIETLIBC found)" >&5 -echo "${ECHO_T}no (too old; $min_diet_ver+ required, $ENSC_VERSION_DIETLIBC found)" >&6 - ;; - xforced_no) - - -if false; then - USE_DIETLIBC_TRUE= - USE_DIETLIBC_FALSE='#' -else - USE_DIETLIBC_TRUE='#' - USE_DIETLIBC_FALSE= -fi - - echo "$as_me:$LINENO: result: no (forced)" >&5 -echo "${ECHO_T}no (forced)" >&6 - ;; - *) - { { echo "$as_me:$LINENO: error: internal error, use_dietlibc was \"$use_dietlibc\"" >&5 -echo "$as_me: error: internal error, use_dietlibc was \"$use_dietlibc\"" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - - if test x"$ensc_have_dietlibc" != xno; then - - - - - echo "$as_me:$LINENO: checking whether dietlibc supports C99" >&5 -echo $ECHO_N "checking whether dietlibc supports C99... $ECHO_C" >&6 -if test "${ensc_cv_c_dietlibc_c99+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - _ensc_dietlibc_c99_old_CFLAGS=$CFLAGS - _ensc_dietlibc_c99_old_CC=$CC - - CFLAGS="-std=c99" - CC="${DIET:-diet} $CC" - - ac_ext=c +# HACK: This needs to be before ENSC_DIETLIBC_NEED_COMPAT, or the alternative +# syscalls will never be enabled for glibc. +ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* */ +echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - - cat >conftest.$ac_ext <<_ACEOF + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - #include - #include - #if defined(inline) - # error 'inline' badly defined - #endif - volatile uint64_t a; + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ensc_cv_c_dietlibc_c99=yes + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ensc_cv_c_dietlibc_c99=no + ac_cpp_err=yes fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ensc_cv_c_dietlibc_c99='skipped (compiler does not support C99)' + # Passes both tests. +ac_preproc_ok=: +break fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +rm -f conftest.err conftest.$ac_ext +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi - CC=$_ensc_dietlibc_c99_old_CC - CFLAGS=$_ensc_dietlibc_c99_old_CFLAGS + done + ac_cv_prog_CPP=$CPP fi -echo "$as_me:$LINENO: result: $ensc_cv_c_dietlibc_c99" >&5 -echo "${ECHO_T}$ensc_cv_c_dietlibc_c99" >&6 - - if test x"$ensc_cv_c_dietlibc_c99" = xyes; then - cat >>confdefs.h <<\_ACEOF -#define ENSC_DIETLIBC_C99 1 + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6 +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error _ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - fi + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext - fi + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext -if test x"$ensc_have_dietlibc" = xno; then - { echo "$as_me:$LINENO: WARNING: *** ***" >&5 -echo "$as_me: WARNING: *** ***" >&2;} - { echo "$as_me:$LINENO: WARNING: *** it is strongly recommended to link util-vserver against ***" >&5 -echo "$as_me: WARNING: *** it is strongly recommended to link util-vserver against ***" >&2;} - { echo "$as_me:$LINENO: WARNING: *** dietlibc; glibc's NSS functions are very unreliable in ***" >&5 -echo "$as_me: WARNING: *** dietlibc; glibc's NSS functions are very unreliable in ***" >&2;} - { echo "$as_me:$LINENO: WARNING: *** chroot() environments, so you have to expect problems ***" >&5 -echo "$as_me: WARNING: *** chroot() environments, so you have to expect problems ***" >&2;} - { echo "$as_me:$LINENO: WARNING: *** there. ***" >&5 -echo "$as_me: WARNING: *** there. ***" >&2;} - { echo "$as_me:$LINENO: WARNING: *** ***" >&5 -echo "$as_me: WARNING: *** ***" >&2;} +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -if false; then - USE_DIETLIBC_COMPAT_TRUE= - USE_DIETLIBC_COMPAT_FALSE='#' +echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6 +if test "${ac_cv_prog_egrep+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - USE_DIETLIBC_COMPAT_TRUE='#' - USE_DIETLIBC_COMPAT_FALSE= + if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi fi +echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 +echo "${ECHO_T}$ac_cv_prog_egrep" >&6 + EGREP=$ac_cv_prog_egrep + + + + + + echo "$as_me:$LINENO: checking for number of syscall 'vserver'" >&5 +echo $ECHO_N "checking for number of syscall 'vserver'... $ECHO_C" >&6 +if test "${ensc_cv_value_syscall_vserver+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - # HACK: libtool does not have cmdline options to build only - # dynamic libraries; this can be done with the - # '--disable-static' ./configure option only. As our static - # libraries will be build with dietlibc, we have to do set - # this option which is evaluated by 'AC_PROG_LIBTOOL' - # below. Therefore, this macro must not be called earlier. - enable_static=no + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF + +#ifdef ENSC_SYSCALL_FALLBACK +# include ENSC_SYSCALL_FALLBACK +#else +# include +#endif +#ifdef __NR_vserver +ensc_syscall_tmp_nr=__NR_vserver; +ensc_syscall_tmp_src=ENSC_MARK +#endif + +_ACEOF + ensc_syscall_tmp_nr= + ensc_syscall_tmp_src= + test x"$ensc_syscall_tmp_nr" != x || \ + eval $($CPP $CPPFLAGS -D ENSC_MARK='glibc' conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[1-9][0-9]*;|src=.*)$') + test x"$ensc_syscall_tmp_nr" != x -o x'lib/syscall-fallback.h' = x || \ + eval $($CPP $CPPFLAGS -D ENSC_MARK='fallback' -D ENSC_SYSCALL_FALLBACK='"lib/syscall-fallback.h"' conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[1-9][0-9]*;|src=.*)$') + test "$ensc_syscall_tmp_nr" || { + ensc_syscall_tmp_nr=273 + ensc_syscall_tmp_src=default + } + + if test x"$ensc_syscall_tmp_nr" = x; then + { { echo "$as_me:$LINENO: error: Can not determine value of __NR_vserver; please verify your glibc/kernelheaders, and/or set CPPFLAGS='-D__NR_vserver=' environment when calling configure." >&5 +echo "$as_me: error: Can not determine value of __NR_vserver; please verify your glibc/kernelheaders, and/or set CPPFLAGS='-D__NR_vserver=' environment when calling configure." >&2;} + { (exit 1); exit 1; }; } + fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + ensc_cv_value_syscall_vserver="$ensc_syscall_tmp_nr/$ensc_syscall_tmp_src" + +fi +echo "$as_me:$LINENO: result: $ensc_cv_value_syscall_vserver" >&5 +echo "${ECHO_T}$ensc_cv_value_syscall_vserver" >&6 + ensc_syscall_tmp_nr=${ensc_cv_value_syscall_vserver%/*} + ensc_syscall_tmp_src=${ensc_cv_value_syscall_vserver#*/} + if test x"$ensc_syscall_tmp_src" != x'glibc'; then +cat >>confdefs.h <<_ACEOF +#define ENSC_SYSCALL__NR_vserver $ensc_syscall_tmp_nr +_ACEOF - if test "$host_cpu" = x86_64 -a $ENSC_VERSION_DIETLIBC_NUM -le 0027; then - { echo "$as_me:$LINENO: WARNING: *** ***" >&5 -echo "$as_me: WARNING: *** ***" >&2;} - { echo "$as_me:$LINENO: WARNING: *** dietlibc<=0.27 is known to be broken for x86_64 systems ***" >&5 -echo "$as_me: WARNING: *** dietlibc<=0.27 is known to be broken for x86_64 systems ***" >&2;} - { echo "$as_me:$LINENO: WARNING: *** please make sure that at least the environ.S fix is applied ***" >&5 -echo "$as_me: WARNING: *** please make sure that at least the environ.S fix is applied ***" >&2;} - { echo "$as_me:$LINENO: WARNING: *** and lib/__nice.c added ***" >&5 -echo "$as_me: WARNING: *** and lib/__nice.c added ***" >&2;} - { echo "$as_me:$LINENO: WARNING: *** ***" >&5 -echo "$as_me: WARNING: *** ***" >&2;} fi @@ -9982,23 +10662,35 @@ echo "${ECHO_T}$ensc_use_alternative_syscall_macros" >&6 - echo "$as_me:$LINENO: checking whether dietlibc needs '-lcompat'" >&5 -echo $ECHO_N "checking whether dietlibc needs '-lcompat'... $ECHO_C" >&6 -if test "${ensc_cv_c_dietlibc_compat+set}" = set; then + echo "$as_me:$LINENO: checking for syscall(2) invocation method" >&5 +echo $ECHO_N "checking for syscall(2) invocation method... $ECHO_C" >&6 + +# Check whether --with-syscall or --without-syscall was given. +if test "${with_syscall+set}" = set; then + withval="$with_syscall" + +else + with_syscall=auto +fi; + echo "$as_me:$LINENO: result: $with_syscall" >&5 +echo "${ECHO_T}$with_syscall" >&6 + + case x"$with_syscall" in + (xauto) + echo "$as_me:$LINENO: checking which syscall(2) invocation works" >&5 +echo $ECHO_N "checking which syscall(2) invocation works... $ECHO_C" >&6 +if test "${ensc_cv_test_syscall+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_ext=c + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - ensc_dietlibc_need_compat_old_CC=$CC - CC="${DIET:-diet} $CC" - cat >conftest.$ac_ext <<_ACEOF - - /* confdefs.h. */ + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF @@ -10007,12 +10699,12 @@ cat >>conftest.$ac_ext <<_ACEOF #include "$srcdir/lib/syscall-wrap.h" #include -#define __NR_foo0 42 -#define __NR_foo1 42 -#define __NR_foo2 42 -#define __NR_foo3 42 -#define __NR_foo4 42 -#define __NR_foo5 42 +#define __NR_foo0 300 +#define __NR_foo1 301 +#define __NR_foo2 302 +#define __NR_foo3 303 +#define __NR_foo4 304 +#define __NR_foo5 305 inline static _syscall0(int, foo0) inline static _syscall1(int, foo1, int, a) inline static _syscall2(int, foo2, int, a, int, b) @@ -10020,17 +10712,19 @@ inline static _syscall3(int, foo3, int, a, int, b, int, c) inline static _syscall4(int, foo4, int, a, int, b, int, c, int, d) inline static _syscall5(int, foo5, int, a, int, b, int, c, int, d, int, e) -int -main () -{ -foo0(); foo1(0); foo2(0,0); foo3(0,0,0); foo4(0,0,0,0); foo5(0,0,0,0,0); - ; - return 0; +int main() { + return foo0() || \ + foo1(1) || \ + foo2(1,2) || \ + foo3(1,2,3) || \ + foo4(1,2,3,4) || \ + foo5(1,2,3,4,5); } + _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 @@ -10044,23 +10738,22 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ensc_cv_c_dietlibc_compat=no + ensc_cv_test_syscall=fast else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ensc_cv_c_dietlibc_compat=yes +ensc_cv_test_syscall=traditional fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CC=$ensc_dietlibc_need_compat_old_CC - ac_ext=c +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -10068,693 +10761,445 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi -echo "$as_me:$LINENO: result: $ensc_cv_c_dietlibc_compat" >&5 -echo "${ECHO_T}$ensc_cv_c_dietlibc_compat" >&6 +echo "$as_me:$LINENO: result: $ensc_cv_test_syscall" >&5 +echo "${ECHO_T}$ensc_cv_test_syscall" >&6 + with_syscall=$ensc_cv_test_syscall + ;; + (xfast|xtraditional) + ;; + *) + { { echo "$as_me:$LINENO: error: '$with_syscall' is not a valid value for '--with-syscall'" >&5 +echo "$as_me: error: '$with_syscall' is not a valid value for '--with-syscall'" >&2;} + { (exit 1); exit 1; }; } + ;; + esac - if test x"USE_DIETLIBC_COMPAT" != x; then + if test x"$with_syscall $ensc_use_alternative_syscall_macros" = 'xfast yes'; then + with_syscall='alternative' + fi + if test x"$with_syscall" = xtraditional; then -if test x"$ensc_cv_c_dietlibc_compat" = xyes; then - USE_DIETLIBC_COMPAT_TRUE= - USE_DIETLIBC_COMPAT_FALSE='#' +cat >>confdefs.h <<\_ACEOF +#define ENSC_SYSCALL_TRADITIONAL 1 +_ACEOF + + fi + + + + + + +case $host_cpu in + (i*86|athlon) min_diet_ver=0.25;; + (ia64|hppa*) min_diet_ver=0.29;; + (sparc*) min_diet_ver=0.30;; + (x86_64) min_diet_ver=0.27;; + (*) min_diet_ver=0.28;; +esac + + + echo "$as_me:$LINENO: checking whether to enable dietlibc" >&5 +echo $ECHO_N "checking whether to enable dietlibc... $ECHO_C" >&6 + + + + + : ${DIET:=diet} + : ${DIETFLAGS=-Os} + + # Check whether --enable-dietlibc or --disable-dietlibc was given. +if test "${enable_dietlibc+set}" = set; then + enableval="$enable_dietlibc" + case "$enableval" in + (yes) use_dietlibc=forced;; + (no) use_dietlibc=forced_no;; + (*) { { echo "$as_me:$LINENO: error: '$enableval' is not a valid value for --enable-dietlibc" >&5 +echo "$as_me: error: '$enableval' is not a valid value for --enable-dietlibc" >&2;} + { (exit 1); exit 1; }; };; + esac else - USE_DIETLIBC_COMPAT_TRUE='#' - USE_DIETLIBC_COMPAT_FALSE= -fi + which "$DIET" >/dev/null 2>/dev/null && use_dietlibc=detected || use_dietlibc=detected_no +fi; - fi + if test "$use_dietlibc" = detected -a "$min_diet_ver"; then + _dietlibc_ver=$($DIET -v 2>&1 | sed '1p;d') + _dietlibc_ver=${_dietlibc_ver##*diet version } + _dietlibc_ver=${_dietlibc_ver##*dietlibc-} + _dietlibc_ver_maj=${_dietlibc_ver%%.*} + _dietlibc_ver_min=${_dietlibc_ver##*.} + _dietlibc_ver_min=${_dietlibc_ver_min%%[!0-9]*} + _dietlibc_cmp="$min_diet_ver" + _dietlibc_cmp_maj=${_dietlibc_cmp%%.*} + _dietlibc_cmp_min=${_dietlibc_cmp##*.} -fi + ENSC_VERSION_DIETLIBC=$_dietlibc_ver_maj.$_dietlibc_ver_min + let _dietlibc_ver=_dietlibc_ver_maj*1000+_dietlibc_ver_min 2>/dev/null || _dietlibc_ver=0 + let _dietlibc_cmp=_dietlibc_cmp_maj*1000+_dietlibc_cmp_min + test $_dietlibc_ver -ge $_dietlibc_cmp || use_dietlibc=detected_old + else + ENSC_VERSION_DIETLIBC= + _dietlibc_ver=-1 + fi -if test x"$ensc_have_dietlibc" = xyes; then - ENSC_USE_DIETLIBC_TRUE= - ENSC_USE_DIETLIBC_FALSE='#' + ENSC_VERSION_DIETLIBC_NUM=$_dietlibc_ver + ensc_have_dietlibc=no + + case x"$use_dietlibc" in + xdetected) + + +if true; then + USE_DIETLIBC_TRUE= + USE_DIETLIBC_FALSE='#' else - ENSC_USE_DIETLIBC_TRUE='#' - ENSC_USE_DIETLIBC_FALSE= + USE_DIETLIBC_TRUE='#' + USE_DIETLIBC_FALSE= fi + echo "$as_me:$LINENO: result: yes (autodetected, $ENSC_VERSION_DIETLIBC)" >&5 +echo "${ECHO_T}yes (autodetected, $ENSC_VERSION_DIETLIBC)" >&6 + ensc_have_dietlibc=yes + ;; + xforced) if true; then - ENSC_USE_GLIBC_TRUE= - ENSC_USE_GLIBC_FALSE='#' + USE_DIETLIBC_TRUE= + USE_DIETLIBC_FALSE='#' else - ENSC_USE_GLIBC_TRUE='#' - ENSC_USE_GLIBC_FALSE= + USE_DIETLIBC_TRUE='#' + USE_DIETLIBC_FALSE= fi + echo "$as_me:$LINENO: result: yes (forced)" >&5 +echo "${ECHO_T}yes (forced)" >&6 + ensc_have_dietlibc=yes + ;; + xdetected_no) -# HACK: see comments at 'enable_static' above -# Check whether --enable-shared or --disable-shared was given. -if test "${enable_shared+set}" = set; then - enableval="$enable_shared" - p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi; -# Check whether --enable-static or --disable-static was given. -if test "${enable_static+set}" = set; then - enableval="$enable_static" - p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac +if false; then + USE_DIETLIBC_TRUE= + USE_DIETLIBC_FALSE='#' else - enable_static=yes -fi; + USE_DIETLIBC_TRUE='#' + USE_DIETLIBC_FALSE= +fi -# Check whether --enable-fast-install or --disable-fast-install was given. -if test "${enable_fast_install+set}" = set; then - enableval="$enable_fast_install" - p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi; + echo "$as_me:$LINENO: result: no (detected)" >&5 +echo "${ECHO_T}no (detected)" >&6 + ;; + xdetected_old) -echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 -echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 -if test "${lt_cv_path_SED+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + +if false; then + USE_DIETLIBC_TRUE= + USE_DIETLIBC_FALSE='#' else - # Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done - -fi - -SED=$lt_cv_path_SED -echo "$as_me:$LINENO: result: $SED" >&5 -echo "${ECHO_T}$SED" >&6 - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi + USE_DIETLIBC_TRUE='#' + USE_DIETLIBC_FALSE= fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep + echo "$as_me:$LINENO: result: no (too old; $min_diet_ver+ required, $ENSC_VERSION_DIETLIBC found)" >&5 +echo "${ECHO_T}no (too old; $min_diet_ver+ required, $ENSC_VERSION_DIETLIBC found)" >&6 + ;; + xforced_no) -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi; -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + echo "$as_me:$LINENO: result: no (forced)" >&5 +echo "${ECHO_T}no (forced)" >&6 + ;; + *) + { { echo "$as_me:$LINENO: error: internal error, use_dietlibc was \"$use_dietlibc\"" >&5 +echo "$as_me: error: internal error, use_dietlibc was \"$use_dietlibc\"" >&2;} { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 -with_gnu_ld=$lt_cv_prog_gnu_ld + ;; + esac + if test x"$ensc_have_dietlibc" != xno; then -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 -if test "${lt_cv_ld_reload_flag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_ld_reload_flag='-r' -fi -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - darwin*) - if test "$GCC" = yes; then - reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 -if test "${lt_cv_path_NM+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/${ac_tool_prefix}nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - esac - fi - done - IFS="$lt_save_ifs" - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi -fi -echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -echo "${ECHO_T}$lt_cv_path_NM" >&6 -NM="$lt_cv_path_NM" -echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 -echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 -if test "${lt_cv_deplibs_check_method+set}" = set; then + + echo "$as_me:$LINENO: checking whether dietlibc supports C99" >&5 +echo $ECHO_N "checking whether dietlibc supports C99... $ECHO_C" >&6 +if test "${ensc_cv_c_dietlibc_c99+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. -case $host_os in -aix4* | aix5*) - lt_cv_deplibs_check_method=pass_all - ;; + _ensc_dietlibc_c99_old_CFLAGS=$CFLAGS + _ensc_dietlibc_c99_old_CC=$CC -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump'. - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | kfreebsd*-gnu | dragonfly*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; + CFLAGS="-std=c99" + CC="${DIET:-diet} $CC" -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case "$host_cpu" in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; + cat >conftest.$ac_ext <<_ACEOF +/* */ +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; + cat >conftest.$ac_ext <<_ACEOF -# This must be Linux ELF. -linux*) - lt_cv_deplibs_check_method=pass_all - ;; + #include + #include + #if defined(inline) + # error 'inline' badly defined + #endif + volatile uint64_t a; -netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ensc_cv_c_dietlibc_c99=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; +ensc_cv_c_dietlibc_c99=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -nto-qnx*) - lt_cv_deplibs_check_method=unknown - ;; +ensc_cv_c_dietlibc_c99='skipped (compiler does not support C99)' +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; + CC=$_ensc_dietlibc_c99_old_CC + CFLAGS=$_ensc_dietlibc_c99_old_CFLAGS -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; +fi +echo "$as_me:$LINENO: result: $ensc_cv_c_dietlibc_c99" >&5 +echo "${ECHO_T}$ensc_cv_c_dietlibc_c99" >&6 -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; + if test x"$ensc_cv_c_dietlibc_c99" = xyes; then + cat >>confdefs.h <<\_ACEOF +#define ENSC_DIETLIBC_C99 1 +_ACEOF -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; + fi -sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -fi -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown + echo "$as_me:$LINENO: checking whether dietlibc declares syscall" >&5 +echo $ECHO_N "checking whether dietlibc declares syscall... $ECHO_C" >&6 +if test "${ensc_cv_c_dietlibc_syscall+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} + _ensc_dietlibc_syscall_old_CC="$CC" + CC="${DIET:-diet} $CC" -# Allow CC to be a program name with arguments. -compiler=$CC + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" + cat >conftest.$ac_ext <<_ACEOF -fi; -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + #include + long int syscall(long int __sysno, ...); -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line 10651 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; + (exit $ac_status); }; }; then + ensc_cv_c_dietlibc_syscall=no +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 -if test "${lt_cv_cc_needs_belf+set}" = set; then +ensc_cv_c_dietlibc_syscall=yes +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + CC="$_ensc_dietlibc_syscall_old_CC" + +fi +echo "$as_me:$LINENO: result: $ensc_cv_c_dietlibc_syscall" >&5 +echo "${ECHO_T}$ensc_cv_c_dietlibc_syscall" >&6 + + if test x"$ensc_cv_c_dietlibc_syscall" = xyes; then + cat >>confdefs.h <<\_ACEOF +#define ENSC_DIETLIBC_HAS_SYSCALL 1 +_ACEOF + + fi + + fi + + +if test x"$ensc_have_dietlibc" = xno; then + { echo "$as_me:$LINENO: WARNING: *** ***" >&5 +echo "$as_me: WARNING: *** ***" >&2;} + { echo "$as_me:$LINENO: WARNING: *** it is strongly recommended to link util-vserver against ***" >&5 +echo "$as_me: WARNING: *** it is strongly recommended to link util-vserver against ***" >&2;} + { echo "$as_me:$LINENO: WARNING: *** dietlibc; glibc's NSS functions are very unreliable in ***" >&5 +echo "$as_me: WARNING: *** dietlibc; glibc's NSS functions are very unreliable in ***" >&2;} + { echo "$as_me:$LINENO: WARNING: *** chroot() environments, so you have to expect problems ***" >&5 +echo "$as_me: WARNING: *** chroot() environments, so you have to expect problems ***" >&2;} + { echo "$as_me:$LINENO: WARNING: *** there. ***" >&5 +echo "$as_me: WARNING: *** there. ***" >&2;} + { echo "$as_me:$LINENO: WARNING: *** ***" >&5 +echo "$as_me: WARNING: *** ***" >&2;} + + +if false; then + USE_DIETLIBC_COMPAT_TRUE= + USE_DIETLIBC_COMPAT_FALSE='#' +else + USE_DIETLIBC_COMPAT_TRUE='#' + USE_DIETLIBC_COMPAT_FALSE= +fi + +else + # HACK: libtool does not have cmdline options to build only + # dynamic libraries; this can be done with the + # '--disable-static' ./configure option only. As our static + # libraries will be build with dietlibc, we have to do set + # this option which is evaluated by 'AC_PROG_LIBTOOL' + # below. Therefore, this macro must not be called earlier. + enable_static=no + + + + + echo "$as_me:$LINENO: checking whether dietlibc needs '-lcompat'" >&5 +echo $ECHO_N "checking whether dietlibc needs '-lcompat'... $ECHO_C" >&6 +if test "${ensc_cv_c_dietlibc_compat+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_ext=c + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ + ensc_dietlibc_need_compat_old_CC=$CC + CC="${DIET:-diet} $CC" + cat >conftest.$ac_ext <<_ACEOF + + /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +#include "$srcdir/lib/syscall-wrap.h" +#include + +#define __NR_foo0 42 +#define __NR_foo1 42 +#define __NR_foo2 42 +#define __NR_foo3 42 +#define __NR_foo4 42 +#define __NR_foo5 42 +inline static _syscall0(int, foo0) +inline static _syscall1(int, foo1, int, a) +inline static _syscall2(int, foo2, int, a, int, b) +inline static _syscall3(int, foo3, int, a, int, b, int, c) +inline static _syscall4(int, foo4, int, a, int, b, int, c, int, d) +inline static _syscall5(int, foo5, int, a, int, b, int, c, int, d, int, e) + int main () { - +foo0(); foo1(0); foo2(0,0); foo3(0,0,0); foo4(0,0,0,0); foo5(0,0,0,0,0); ; return 0; } @@ -10781,536 +11226,719 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - lt_cv_cc_needs_belf=yes + ensc_cv_c_dietlibc_compat=no else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -lt_cv_cc_needs_belf=no +ensc_cv_c_dietlibc_compat=yes fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - ac_ext=c + CC=$ensc_dietlibc_need_compat_old_CC + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu + fi -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; +echo "$as_me:$LINENO: result: $ensc_cv_c_dietlibc_compat" >&5 +echo "${ECHO_T}$ensc_cv_c_dietlibc_compat" >&6 -esac + if test x"USE_DIETLIBC_COMPAT" != x; then -need_locks="$enable_libtool_lock" +if test x"$ensc_cv_c_dietlibc_compat" = xyes; then + USE_DIETLIBC_COMPAT_TRUE= + USE_DIETLIBC_COMPAT_FALSE='#' +else + USE_DIETLIBC_COMPAT_TRUE='#' + USE_DIETLIBC_COMPAT_FALSE= +fi + + fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + +if test x"$ensc_have_dietlibc" = xyes; then + ENSC_USE_DIETLIBC_TRUE= + ENSC_USE_DIETLIBC_FALSE='#' else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes + ENSC_USE_DIETLIBC_TRUE='#' + ENSC_USE_DIETLIBC_FALSE= fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi + +if true; then + ENSC_USE_GLIBC_TRUE= + ENSC_USE_GLIBC_FALSE='#' else - ac_cpp_err=yes + ENSC_USE_GLIBC_TRUE='#' + ENSC_USE_GLIBC_FALSE= fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi +# HACK: see comments at 'enable_static' above +# Check whether --enable-shared or --disable-shared was given. +if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi; - done - ac_cv_prog_CPP=$CPP +# Check whether --enable-static or --disable-static was given. +if test "${enable_static+set}" = set; then + enableval="$enable_static" + p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi; -fi - CPP=$ac_cv_prog_CPP +# Check whether --enable-fast-install or --disable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval="$enable_fast_install" + p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac else - ac_cv_prog_CPP=$CPP -fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes + enable_fast_install=yes +fi; + +echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 +if test "${lt_cv_path_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break fi -else - ac_cpp_err=yes + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done + fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext +SED=$lt_cv_path_SED - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +echo "$as_me:$LINENO: result: $SED" >&5 +echo "${ECHO_T}$SED" >&6 - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : +# Check whether --with-gnu-ld or --without-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval="$with_gnu_ld" + test "$withval" = no || with_gnu_ld=yes else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + with_gnu_ld=no +fi; +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 +else + echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then +if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no + lt_cv_path_LD="$LD" # Let the user override the test with a path. fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no fi -rm -f conftest* +LD="$lt_cv_path_LD" +if test -n "$LD"; then + echo "$as_me:$LINENO: result: $LD" >&5 +echo "${ECHO_T}$LD" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_header_stdc=no + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 +with_gnu_ld=$lt_cv_prog_gnu_ld -fi -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : +echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 +if test "${lt_cv_ld_reload_flag+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif + lt_cv_ld_reload_flag='-r' +fi +echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : +echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 +echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 +if test "${lt_cv_path_NM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - fi +echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +echo "${ECHO_T}$lt_cv_path_NM" >&6 +NM="$lt_cv_path_NM" -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - +echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 +echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 +if test "${lt_cv_deplibs_check_method+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. +case $host_os in +aix4* | aix5*) + lt_cv_deplibs_check_method=pass_all + ;; +beos*) + lt_cv_deplibs_check_method=pass_all + ;; +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump'. + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; +freebsd* | kfreebsd*-gnu | dragonfly*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; -eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +interix3*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; -fi +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; -done +# This must be Linux ELF. +linux*) + lt_cv_deplibs_check_method=pass_all + ;; +netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac -for ac_header in dlfcn.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Check whether --enable-libtool-lock or --disable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval="$enable_libtool_lock" + +fi; +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 11828 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 +if test "${lt_cv_cc_needs_belf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> + +int +main () +{ + + ; + return 0; +} _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 @@ -11324,480 +11952,256 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_header_compiler=yes + lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no +lt_cv_cc_needs_belf=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 +fi +echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + rm -rf conftest* + ;; - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------------------ ## -## Report this to enrico.scholz@informatik.tu-chemnitz.de ## -## ------------------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -fi - -done +need_locks="$enable_libtool_lock" -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 -echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 -if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then +echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - # Broken: fails on valid input. -continue +ac_cv_header_stdc=no fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include + _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : else - ac_cpp_err=yes + ac_cv_header_stdc=no fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +rm -f conftest* - # Passes both tests. -ac_preproc_ok=: -break fi -rm -f conftest.err conftest.$ac_ext -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include - done - ac_cv_prog_CXXCPP=$CXXCPP +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* fi - CXXCPP=$ac_cv_prog_CXXCPP + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : else - ac_cv_prog_CXXCPP=$CXXCPP -fi -echo "$as_me:$LINENO: result: $CXXCPP" >&5 -echo "${ECHO_T}$CXXCPP" >&6 -ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then : else - echo "$as_me: failed program was:" >&5 + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - # Broken: fails on valid input. -continue +( exit $ac_status ) +ac_cv_header_stdc=no fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF fi -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$F77"; then - ac_cv_prog_F77="$F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done +# On IRIX 5.3, sys/types and inttypes.h are conflicting. -fi -fi -F77=$ac_cv_prog_F77 -if test -n "$F77"; then - echo "$as_me:$LINENO: result: $F77" >&5 -echo "${ECHO_T}$F77" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - test -n "$F77" && break - done -fi -if test -z "$F77"; then - ac_ct_F77=$F77 - for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_F77"; then - ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_F77="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -fi -fi -ac_ct_F77=$ac_cv_prog_ac_ct_F77 -if test -n "$ac_ct_F77"; then - echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 -echo "${ECHO_T}$ac_ct_F77" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - test -n "$ac_ct_F77" && break -done - F77=$ac_ct_F77 -fi -# Provide some information about the compiler. -echo "$as_me:11765:" \ - "checking for Fortran 77 compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -rm -f a.out -# If we don't use `.F' as extension, the preprocessor is not run on the -# input file. (Note that this only needs to work for GNU compilers.) -ac_save_ext=$ac_ext -ac_ext=F -echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 -if test "${ac_cv_f77_compiler_gnu+set}" = set; then + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - program main -#ifndef __GNUC__ - choke me -#endif +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default - end +#include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 @@ -11808,7 +12212,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 @@ -11821,33 +12225,51 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_compiler_gnu=yes + eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_compiler_gnu=no +eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_f77_compiler_gnu=$ac_compiler_gnu +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF fi -echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 -ac_ext=$ac_save_ext -ac_test_FFLAGS=${FFLAGS+set} -ac_save_FFLAGS=$FFLAGS -FFLAGS= -echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 -echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_f77_g+set}" = set; then + +done + + + +for ac_header in dlfcn.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - FFLAGS=-g + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - program main - - end +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 @@ -11858,7 +12280,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_f77_werror_flag" + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 @@ -11871,426 +12293,362 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_prog_f77_g=yes + ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_prog_f77_g=no +ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 -echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 -if test "$ac_test_FFLAGS" = set; then - FFLAGS=$ac_save_FFLAGS -elif test $ac_cv_prog_f77_g = yes; then - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-g -O2" +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else - FFLAGS="-g" + ac_cpp_err= fi else - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-O2" - else - FFLAGS= - fi + ac_cpp_err=yes fi - -G77=`test $ac_compiler_gnu = yes && echo yes` -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! - -# find the maximum length of command line arguments -echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 -echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 -if test "${lt_cv_sys_max_cmd_len+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes else - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for *BSD - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes ;; - *) - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ - = "XX$teststring") >/dev/null 2>&1 && - new_result=`expr "X$teststring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - teststring= - # Add a significant safety factor because C++ compilers can tack on massive - # amounts of additional arguments before passing them to the linker. - # It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## --------------------------------------------- ## +## Report this to vserver@list.linux-vserver.org ## +## --------------------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6 + eval "$as_ac_Header=\$ac_header_preproc" fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF +fi +done -# Check for command to grab the raw symbol name followed by C symbol from nm. -echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 -echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32*) - symcode='[ABCDGISTW]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -linux*) - if test "$host_cpu" = ia64; then - symcode='[ABCDGIRSTW]' - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris* | sysv5*) - symcode='[BDRT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if grep ' nm_test_var$' "$nlist" >/dev/null; then - if grep ' nm_test_func$' "$nlist" >/dev/null; then - cat < conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' - - cat <> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 +echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include #else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[] = -{ -EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} +# include #endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else - lt_cv_sys_global_symbol_pipe= + ac_cpp_err= fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - echo "$as_me:$LINENO: result: failed" >&5 -echo "${ECHO_T}failed" >&6 else - echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&6 + ac_cpp_err=yes fi - -echo "$as_me:$LINENO: checking for objdir" >&5 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6 -if test "${lt_cv_objdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs +if test -z "$ac_cpp_err"; then + : else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -echo "${ECHO_T}$lt_cv_objdir" >&6 -objdir=$lt_cv_objdir - + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e 1s/^X//' -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' + done + ac_cv_prog_CXXCPP=$CXXCPP -# Same as above, but do not quote variable references. -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +echo "$as_me:$LINENO: result: $CXXCPP" >&5 +echo "${ECHO_T}$CXXCPP" >&6 +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -# Constants: -rm="rm -f" + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext -# Global variables: -default_ofile=libtool -can_build_shared=yes +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -with_gnu_ld="$lt_cv_prog_gnu_ld" +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +fi + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 + for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AR+set}" = set; then +if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. + if test -n "$F77"; then + ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -12299,7 +12657,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" + ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -12308,27 +12666,31 @@ done fi fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 +F77=$ac_cv_prog_F77 +if test -n "$F77"; then + echo "$as_me:$LINENO: result: $F77" >&5 +echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi + test -n "$F77" && break + done fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 +if test -z "$F77"; then + ac_ct_F77=$F77 + for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then +if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. + if test -n "$ac_ct_F77"; then + ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -12337,2660 +12699,3280 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="ar" + ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done - test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -echo "${ECHO_T}$ac_ct_AR" >&6 +ac_ct_F77=$ac_cv_prog_ac_ct_F77 +if test -n "$ac_ct_F77"; then + echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 +echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi - AR=$ac_ct_AR -else - AR="$ac_cv_prog_AR" + test -n "$ac_ct_F77" && break +done + + F77=$ac_ct_F77 fi -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then + +# Provide some information about the compiler. +echo "$as_me:12728:" \ + "checking for Fortran 77 compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +rm -f a.out + +# If we don't use `.F' as extension, the preprocessor is not run on the +# input file. (Note that this only needs to work for GNU compilers.) +ac_save_ext=$ac_ext +ac_ext=F +echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 +if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done + cat >conftest.$ac_ext <<_ACEOF + program main +#ifndef __GNUC__ + choke me +#endif -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 + end +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_compiler_gnu=no fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then +echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 +ac_ext=$ac_save_ext +ac_test_FFLAGS=${FFLAGS+set} +ac_save_FFLAGS=$FFLAGS +FFLAGS= +echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 +echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. + FFLAGS=-g +cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_f77_g=yes else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" +ac_cv_prog_f77_g=no fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 +echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 +echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 +if test "$ac_test_FFLAGS" = set; then + FFLAGS=$ac_save_FFLAGS +elif test $ac_cv_prog_f77_g = yes; then + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-g -O2" + else + FFLAGS="-g" + fi else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-O2" + else + FFLAGS= + fi fi - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -fi +G77=`test $ac_compiler_gnu = yes && echo yes` +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! + +# find the maximum length of command line arguments +echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 +if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done + i=0 + teststring="ABCD" - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; - STRIP=$ac_ct_STRIP -else - STRIP="$ac_cv_prog_STRIP" -fi + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; -old_CC="$CC" -old_CFLAGS="$CFLAGS" + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$SED" && SED=sed -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi ;; *) - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + teststring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +fi -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +if test -n $lt_cv_sys_max_cmd_len ; then + echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <&2 + echo "$as_me:$LINENO: result: none" >&5 +echo "${ECHO_T}none" >&6 +fi -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - echo "$as_me:$LINENO: checking for file" >&5 -echo $ECHO_N "checking for file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then +# Check for command to grab the raw symbol name followed by C symbol from nm. +echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <&2 -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - else - MAGIC_CMD=: - fi -fi +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32*) + symcode='[ABCDGISTW]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDGIRSTW]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; esac -enable_dlopen=no -enable_win32_dll=no - -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" - -fi; -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - - -# Check whether --with-pic or --without-pic was given. -if test "${with_pic+set}" = set; then - withval="$with_pic" - pic_mode="$withval" -else - pic_mode=default -fi; -test -z "$pic_mode" && pic_mode=default - -# Use C for the default configuration in the libtool script -tagname= -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac -# Source file extension for C test sources. -ac_ext=c +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do -# Object file extension for compiled C test sources. -objext=o -objext=$objext + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;\n" + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}\n' + # Check to see that the pipe works correctly. + pipe_works=no + rm -f conftest* + cat > conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi -# Allow CC to be a program name with arguments. -compiler=$CC + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -printf "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif -ac_outfile=conftest.$ac_objext -printf "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* -# -# Check for any special shared library compilation flags. -# -lt_prog_cc_shlib= -if test "$GCC" = no; then - case $host_os in - sco3.2v5*) - lt_prog_cc_shlib='-belf' - ;; - esac -fi -if test -n "$lt_prog_cc_shlib"; then - { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5 -echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;} - if echo "$old_CC $old_CFLAGS " | grep "[ ]$lt_prog_cc_shlib[ ]" >/dev/null; then : + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break else - { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 -echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} - lt_cv_prog_cc_can_build_shared=no + lt_cv_sys_global_symbol_pipe= fi -fi +done +fi -# -# Check to make sure the static flag actually works. -# -echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6 -if test "${lt_prog_compiler_static_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + echo "$as_me:$LINENO: result: failed" >&5 +echo "${ECHO_T}failed" >&6 else - lt_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_prog_compiler_static" - printf "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp - $SED '/^$/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_static_works=yes - fi - else - lt_prog_compiler_static_works=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - + echo "$as_me:$LINENO: result: ok" >&5 +echo "${ECHO_T}ok" >&6 fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 -if test x"$lt_prog_compiler_static_works" = xyes; then - : +echo "$as_me:$LINENO: checking for objdir" >&5 +echo $ECHO_N "checking for objdir... $ECHO_C" >&6 +if test "${lt_cv_objdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - lt_prog_compiler_static= + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null fi +echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +echo "${ECHO_T}$lt_cv_objdir" >&6 +objdir=$lt_cv_objdir -lt_prog_compiler_no_builtin_flag= -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' -echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then +# Same as above, but do not quote variable references. +double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12863: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:12867: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp - $SED '/^$/d' conftest.err >conftest.er2 - if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6 else - : + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done -lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= + test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +echo "${ECHO_T}$ac_ct_AR" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi -echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 + AR=$ac_ct_AR +else + AR="$ac_cv_prog_AR" +fi - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done - beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; + test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; + RANLIB=$ac_ct_RANLIB +else + RANLIB="$ac_cv_prog_RANLIB" +fi - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic='-qnocommon' - lt_prog_compiler_wl='-Wl,' - ;; - esac - ;; +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi - mingw* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case "$host_cpu" in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; + test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; + STRIP=$ac_ct_STRIP +else + STRIP="$ac_cv_prog_STRIP" +fi - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - linux*) - case $cc_basename in - icc* | ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - pgcc* | pgf77* | pgf90*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-static' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - esac - ;; +old_CC="$CC" +old_CFLAGS="$CFLAGS" - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o - sco3.2v5*) - lt_prog_compiler_pic='-Kpic' - lt_prog_compiler_static='-dn' - ;; +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac fi - ;; + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + echo "$as_me:$LINENO: checking for file" >&5 +echo $ECHO_N "checking for file... $ECHO_C" >&6 +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 - *) - lt_prog_compiler_can_build_shared=no - ;; - esac +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + else + MAGIC_CMD=: fi +fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic" >&6 + fi + ;; +esac -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then +enable_dlopen=no +enable_win32_dll=no -echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 -if test "${lt_prog_compiler_pic_works+set}" = set; then +# Check whether --enable-libtool-lock or --disable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval="$enable_libtool_lock" + +fi; +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + + +# Check whether --with-pic or --without-pic was given. +if test "${with_pic+set}" = set; then + withval="$with_pic" + pic_mode="$withval" +else + pic_mode=default +fi; +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* + +ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* + + + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + +echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - lt_prog_compiler_pic_works=no + lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13125: $lt_compile\"" >&5) + (eval echo "\"\$as_me:13791: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:13129: \$? = $ac_status" >&5 + echo "$as_me:13795: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp - $SED '/^$/d' conftest.err >conftest.er2 - if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_pic_works=yes + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi -echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 +echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 -if test x"$lt_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no + : fi fi -case "$host_os" in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_prog_compiler_c_o=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13187: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:13191: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp - $SED '/^$/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 +lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= +echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6 - if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' -echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; - runpath_var= - allow_undefined_flag= - enable_shared_with_static_runtimes=no - archive_cmds= - archive_expsym_cmds= - old_archive_From_new_cmds= - old_archive_from_expsyms_cmds= - export_dynamic_flag_spec= - whole_archive_flag_spec= - thread_safe_flag_spec= - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= - hardcode_libdir_separator= - hardcode_direct=no - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - link_all_deplibs=unknown - hardcode_automatic=no - module_cmds= - module_expsym_cmds= - always_export_symbols=no - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - # Just being paranoid about ensuring that cc_basename is set. - for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - openbsd*) - with_gnu_ld=no - ;; - esac + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; - ld_shlibs=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <&2 + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; -EOF + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic fi ;; - amigaos*) - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs=no + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac ;; - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' else - ld_shlibs=no + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic='-qnocommon' + lt_prog_compiler_wl='-Wl,' + ;; + esac + ;; - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' - else - ld_shlibs=no - fi + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' ;; linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec= - ;; - pgf77* | pgf90* ) # Portland Group f77 and f90 compilers - whole_archive_flag_spec= - tmp_addflag=' -fpic -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + esac + ;; - if test $supports_anon_versioning = yes; then - archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - $echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - else - ld_shlibs=no - fi + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' ;; - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac ;; - solaris* | sysv5*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <&2 + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' fi ;; - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no ;; - esac - if test "$ld_shlibs" = no; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' ;; - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - esac +echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic" >&6 - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. +echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 +if test "${lt_prog_compiler_pic_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:14059: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:14063: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works=yes + fi + fi + $rm conftest* - archive_cmds='' - hardcode_direct=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes +fi +echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct=yes - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ +if test x"$lt_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 +if test "${lt_prog_compiler_static_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + lt_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works=yes + fi + else + lt_prog_compiler_static_works=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ +echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 -int -main () -{ +if test x"$lt_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'`; fi +echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + lt_cv_prog_compiler_c_o=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols=yes - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec=' ' - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:14163: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:14167: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* - amigaos*) - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; +fi +echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=yes - ;; +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6 + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi - darwin* | rhapsody*) - case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' - link_all_deplibs=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' - module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs=no - ;; - esac +echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 + + runpath_var= + allow_undefined_flag= + enable_shared_with_static_runtimes=no + archive_cmds= + archive_expsym_cmds= + old_archive_From_new_cmds= + old_archive_from_expsyms_cmds= + export_dynamic_flag_spec= + whole_archive_flag_spec= + thread_safe_flag_spec= + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_direct=no + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + link_all_deplibs=unknown + hardcode_automatic=no + module_cmds= + module_expsym_cmds= + always_export_symbols=no + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi ;; - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; + hardcode_minus_L=yes - freebsd1*) + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. ld_shlibs=no ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi ;; - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi ;; - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | kfreebsd*-gnu | dragonfly*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes + interix3*) + hardcode_direct=no hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi else - archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + ld_shlibs=no fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' ;; - hpux10* | hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' - ;; - *) - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - ;; - esac + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi - if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' - hardcode_libdir_separator=: - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - ia64*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=no - hardcode_shlibpath_var=no + ;; - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - *) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - export_dynamic_flag_spec='${wl}-E' + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <&2 - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld='-rpath $libdir' + ld_shlibs=no fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - link_all_deplibs=yes ;; - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac ;; - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; - openbsd*) - hardcode_direct=yes - hardcode_shlibpath_var=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac + ld_shlibs=no fi ;; + esac - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: ;; - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' fi - hardcode_libdir_separator=: - ;; - sco3.2v5*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes - solaris*) - no_undefined_flag=' -z text' if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine linker options so we - # cannot just pass the convience library names through - # without $wl, iff we do not link with $LD. - # Luckily, gcc supports the same syntax we need for Sun Studio. - # Supported since Solaris 2.6 (maybe 2.5.1?) - case $wlarc in - '') - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; - *) - whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; - esac ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct=yes + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; +int +main () +{ - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then - sysv4.2uw2*) - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - sysv5*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec= - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi ;; - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no ;; - *) - ld_shlibs=no + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic ;; - esac - fi -echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -echo "${ECHO_T}$ld_shlibs" >&6 -test "$ld_shlibs" = no && can_build_shared=no + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='' + link_all_deplibs=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. + freebsd1*) + ld_shlibs=no ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 - $rm conftest* - printf "$lt_simple_compile_test_code" > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc=no - else - archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 -echo "${ECHO_T}$archive_cmds_need_lc" >&6 + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no ;; - esac - fi - ;; -esac -echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else - can_build_shared=no + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + hardcode_direct=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes fi ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + export_dynamic_flag_spec='${wl}-E' -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld='-rpath $libdir' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + link_all_deplibs=yes + ;; - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + + openbsd*) + hardcode_direct=yes + hardcode_shlibpath_var=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac fi ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; - esac - ;; - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' - # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. - if test "$GCC" = yes; then - sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` - else - sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' - fi - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; -freebsd1*) - dynamic_linker=no - ;; + solaris*) + no_undefined_flag=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; + *) + whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + link_all_deplibs=yes + ;; -kfreebsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - esac - ;; -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case "$host_cpu" in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; + ld_shlibs=no + ;; esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; + fi -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; +echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +echo "${ECHO_T}$ld_shlibs" >&6 +test "$ld_shlibs" = no && can_build_shared=no -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes - # find out which ABI we are using - libsuff= - case "$host_cpu" in - x86_64*|s390x*|powerpc64*) - echo '#line 14572 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.$ac_objext` in - *64-bit*) - libsuff=64 - sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" - ;; - esac - fi - rm -rf conftest* - ;; - esac - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +echo "${ECHO_T}$archive_cmds_need_lc" >&6 + ;; + esac fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' ;; +esac -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' +echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown -nto-qnx*) +case $host_os in +aix3*) version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes ;; -openbsd*) - version_type=sunos +aix4* | aix5*) + version_type=linux need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH else - shlibpath_overrides_runpath=yes + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH fi ;; -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH ;; -solaris*) +bsdi[45]*) version_type=linux - need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs ;; -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; -uts4*) +dgux*) version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; -*) +freebsd1*) dynamic_linker=no ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var" || \ - test "X$hardcode_automatic" = "Xyes" ; then +kfreebsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action" >&5 -echo "${ECHO_T}$hardcode_action" >&6 + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; -if test "$hardcode_action" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' ;; esac -fi + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; +irix5* | irix6* | nonstopux*) case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + # find out which ABI we are using + libsuff= + case "$host_cpu" in + x86_64*|s390x*|powerpc64*) + echo '#line 15632 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *64-bit*) + libsuff=64 + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + ;; + esac + fi + rm -rf conftest* + ;; + esac - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" + fi -fi + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; - ;; +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; -#ifdef __STDC__ -# include -#else -# include -#endif +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; -#undef shl_load +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6 +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || \ + test -n "$runpath_var" || \ + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +echo "$as_me:$LINENO: result: $hardcode_action" >&5 +echo "${ECHO_T}$hardcode_action" >&6 + +if test "$hardcode_action" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + +striplib= +old_striplib= +echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + ;; + *) + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + ;; + esac +fi + +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus -} +extern "C" #endif - +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlopen (); int main () { -return f != shl_load; +dlopen (); ; return 0; } @@ -15017,25 +15999,129 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes + ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_shl_load=no +ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + echo "$as_me:$LINENO: checking for shl_load" >&5 +echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 +if test "${ac_cv_func_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shl_load to an innocuous variant, in case declares shl_load. + For example, HP-UX 11i declares gettimeofday. */ +#define shl_load innocuous_shl_load + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shl_load (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shl_load + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shl_load (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_shl_load) || defined (__stub___shl_load) +choke me +#else +char (*f) () = shl_load; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != shl_load; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_shl_load=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +echo "${ECHO_T}$ac_cv_func_shl_load" >&6 +if test $ac_cv_func_shl_load = yes; then + lt_cv_dlopen="shl_load" +else + echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" @@ -15424,7 +16510,7 @@ fi test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" @@ -15440,7 +16526,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null + (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=no ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed @@ -15526,7 +16614,7 @@ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then @@ -15538,7 +16626,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null + (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed @@ -15642,7 +16732,7 @@ echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi -# Report which librarie types wil actually be built +# Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 @@ -15654,7 +16744,7 @@ test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. -case "$host_os" in +case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then @@ -15692,7 +16782,7 @@ if test -f "$ltmain"; then # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ @@ -15858,12 +16948,18 @@ AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + # An ERE matcher. EGREP=$lt_EGREP @@ -15997,11 +17093,11 @@ striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. -predep_objects=$lt_predep_objects +predep_objects=\`echo $lt_predep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. -postdep_objects=$lt_postdep_objects +postdep_objects=\`echo $lt_postdep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. @@ -16013,7 +17109,7 @@ postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -16093,7 +17189,7 @@ variables_saved_for_relink="$variables_saved_for_relink" link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec @@ -16188,6 +17284,9 @@ echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. @@ -16240,6 +17339,7 @@ hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= @@ -16257,7 +17357,7 @@ postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. -ac_ext=cc +ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o @@ -16267,13 +17367,16 @@ objext_CXX=$objext lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *) { return(0); }\n' +lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + # Allow CC to be a program name with arguments. compiler=$CC @@ -16281,13 +17384,13 @@ compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* @@ -16302,12 +17405,12 @@ lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else - unset lt_cv_prog_gnu_ld + $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else - unset lt_cv_path_LD + $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} @@ -16393,7 +17496,7 @@ else if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. + # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. + # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 conftest.$ac_ext <<_ACEOF @@ -16702,16 +17807,26 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_CXX=yes # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_CXX=' ' + whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + chorus*) case $cc_basename in *) @@ -16721,7 +17836,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac ;; - cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. @@ -16731,7 +17845,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then @@ -16740,13 +17854,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) - case "$host_os" in + case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; @@ -16784,7 +17898,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else @@ -16797,7 +17911,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; @@ -16877,33 +17991,22 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' - hardcode_libdir_separator_CXX=: - ;; - ia64*) - hardcode_libdir_flag_spec_CXX='-L$libdir' ;; *) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi - case "$host_cpu" in - hppa*64*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - ;; - ia64*) + case $host_cpu in + hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. ;; *) hardcode_direct_CXX=yes @@ -16919,9 +18022,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ld_shlibs_CXX=no ;; aCC*) - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' @@ -16940,9 +18046,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then - case "$host_cpu" in - ia64*|hppa*64*) - archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' @@ -16956,6 +18065,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; esac ;; + interix3*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; irix5* | irix6*) case $cc_basename in CC*) @@ -17036,12 +18159,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; pgCC*) # Portland Group C++ compiler - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ @@ -17238,19 +18361,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; - sco*) - archive_cmds_need_lc_CXX=no - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; sunos4*) case $cc_basename in CC*) @@ -17273,10 +18383,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no @@ -17296,15 +18407,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac link_all_deplibs_CXX=yes - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -17350,8 +18453,59 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; esac ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac ;; tandem*) case $cc_basename in @@ -17408,7 +18562,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. - output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" + output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in @@ -17484,6 +18638,29 @@ fi $rm -f confest.$objext +# PORTME: override above test on systems where it is broken +case $host_os in +interix3*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +solaris*) + case $cc_basename in + CC*) + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + postdeps_CXX='-lCstd -lCrun' + ;; + esac + ;; +esac + + case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac @@ -17531,6 +18708,10 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic @@ -17539,7 +18720,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. - case "$host_cpu" in + case $host_cpu in hppa*64*|ia64*) ;; *) @@ -17600,15 +18781,15 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" - case "$host_cpu" in + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in hppa*64*|ia64*) # +Z the default ;; @@ -17621,6 +18802,10 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 ;; esac ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) @@ -17649,7 +18834,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' - lt_prog_compiler_static_CXX='-static' + lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ @@ -17700,15 +18885,6 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 ;; psos*) ;; - sco*) - case $cc_basename in - CC*) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - *) - ;; - esac - ;; solaris*) case $cc_basename in CC*) @@ -17750,7 +18926,14 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 ;; esac ;; - unixware*) + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac ;; vxworks*) ;; @@ -17783,20 +18966,20 @@ else # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17789: $lt_compile\"" >&5) + (eval echo "\"\$as_me:18972: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:17793: \$? = $ac_status" >&5 + echo "$as_me:18976: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp - $SED '/^$/d' conftest.err >conftest.er2 - if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi @@ -17817,7 +19000,7 @@ else fi fi -case "$host_os" in +case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= @@ -17827,6 +19010,48 @@ case "$host_os" in ;; esac +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 +if test "${lt_prog_compiler_static_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_CXX=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_CXX=yes + fi + else + lt_prog_compiler_static_works_CXX=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 + +if test x"$lt_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then @@ -17845,25 +19070,25 @@ else # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17851: $lt_compile\"" >&5) + (eval echo "\"\$as_me:19076: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:17855: \$? = $ac_status" >&5 + echo "$as_me:19080: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp - $SED '/^$/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi - chmod u+w . + chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation @@ -17929,11 +19154,6 @@ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - # # Do we need to explicitly link libc? # @@ -17966,6 +19186,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= @@ -18126,7 +19347,8 @@ cygwin* | mingw* | pw32*) dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' @@ -18179,7 +19401,7 @@ darwin* | rhapsody*) soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` @@ -18217,7 +19439,14 @@ kfreebsd*-gnu) freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) @@ -18239,10 +19468,15 @@ freebsd* | dragonfly*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; - *) # from 3.2 on + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; esac ;; @@ -18262,7 +19496,7 @@ hpux9* | hpux10* | hpux11*) version_type=sunos need_lib_prefix=no need_version=no - case "$host_cpu" in + case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes @@ -18302,6 +19536,18 @@ hpux9* | hpux10* | hpux11*) postinstall_cmds='chmod 555 $lib' ;; +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; @@ -18363,7 +19609,7 @@ linux*) libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) - echo '#line 18366 "configure"' > conftest.$ac_ext + echo '#line 19612 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -18382,7 +19628,7 @@ linux*) # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi @@ -18444,8 +19690,13 @@ nto-qnx*) openbsd*) version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no - need_version=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH @@ -18483,13 +19734,6 @@ osf3* | osf4* | osf5*) sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - solaris*) version_type=linux need_lib_prefix=no @@ -18515,7 +19759,7 @@ sunos4*) need_version=yes ;; -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) +sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -18548,6 +19792,29 @@ sysv4*MP*) fi ;; +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -18563,6 +19830,11 @@ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= @@ -18600,1276 +19872,447 @@ elif test "$shlibpath_overrides_runpath" = yes || enable_fast_install=needless fi -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_CXX \ + CC_CXX \ + LD_CXX \ + lt_prog_compiler_wl_CXX \ + lt_prog_compiler_pic_CXX \ + lt_prog_compiler_static_CXX \ + lt_prog_compiler_no_builtin_flag_CXX \ + export_dynamic_flag_spec_CXX \ + thread_safe_flag_spec_CXX \ + whole_archive_flag_spec_CXX \ + enable_shared_with_static_runtimes_CXX \ + old_archive_cmds_CXX \ + old_archive_from_new_cmds_CXX \ + predep_objects_CXX \ + postdep_objects_CXX \ + predeps_CXX \ + postdeps_CXX \ + compiler_lib_search_path_CXX \ + archive_cmds_CXX \ + archive_expsym_cmds_CXX \ + postinstall_cmds_CXX \ + postuninstall_cmds_CXX \ + old_archive_from_expsyms_cmds_CXX \ + allow_undefined_flag_CXX \ + no_undefined_flag_CXX \ + export_symbols_cmds_CXX \ + hardcode_libdir_flag_spec_CXX \ + hardcode_libdir_flag_spec_ld_CXX \ + hardcode_libdir_separator_CXX \ + hardcode_automatic_CXX \ + module_cmds_CXX \ + module_expsym_cmds_CXX \ + lt_cv_prog_compiler_c_o_CXX \ + exclude_expsyms_CXX \ + include_expsyms_CXX; do - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; + case $var in + old_archive_cmds_CXX | \ + old_archive_from_new_cmds_CXX | \ + archive_cmds_CXX | \ + archive_expsym_cmds_CXX | \ + module_cmds_CXX | \ + module_expsym_cmds_CXX | \ + old_archive_from_expsyms_cmds_CXX | \ + export_symbols_cmds_CXX | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; +cfgfile="$ofile" - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared -fi +# Whether or not to build static libraries. +build_old_libs=$enable_static - ;; +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install -#ifdef __STDC__ -# include -#else -# include -#endif +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os -#undef shl_load +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif +# An echo program that does not interpret backslashes. +echo=$lt_echo -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS -ac_cv_func_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ +# A C compiler. +LTCC=$lt_LTCC -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen +# A language-specific compiler. +CC=$lt_compiler_CXX -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ +# Is the compiler the GNU C compiler? +with_gcc=$GCC_CXX -#ifdef __STDC__ -# include -#else -# include -#endif +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` -#undef dlopen +# An ERE matcher. +EGREP=$lt_EGREP -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif +# The linker used to build libraries. +LD=$lt_LD_CXX -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +# Whether we need hard or soft links. +LN_S=$lt_LN_S -ac_cv_func_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ +# A BSD-compatible nm program. +NM=$lt_NM -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +# A symbol stripping program +STRIP=$lt_STRIP -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +# Used on cygwin: assembler. +AS="$AS" -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi +# The name of the directory that contains temporary libtool files. +objdir=$objdir +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds -fi +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX +# Object file suffix (normally "o"). +objext="$ac_objext" -fi +# Old archive suffix (normally "a"). +libext="$libext" +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' -fi +# Executable file suffix (normally ""). +exeext="$exeext" +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX +pic_mode=$pic_mode -fi +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX -fi +# Must we lock files when doing compilation? +need_locks=$lt_need_locks - ;; - esac +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi +# Do we need a version for libraries? +need_version=$need_version - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" +# Whether dlopen is supported. +dlopen_support=$enable_dlopen - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX -#include +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX -#ifdef __cplusplus -extern "C" void exit (int); -#endif +# Library versioning type. +version_type=$version_type -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; +# Format of library name prefix. +libname_spec=$lt_libname_spec - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_CXX +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds -#include +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=\`echo $lt_predep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` -#ifdef __cplusplus -extern "C" void exit (int); -#endif +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=\`echo $lt_postdep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_CXX - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_CXX - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 - fi +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_CXX \ - CC_CXX \ - LD_CXX \ - lt_prog_compiler_wl_CXX \ - lt_prog_compiler_pic_CXX \ - lt_prog_compiler_static_CXX \ - lt_prog_compiler_no_builtin_flag_CXX \ - export_dynamic_flag_spec_CXX \ - thread_safe_flag_spec_CXX \ - whole_archive_flag_spec_CXX \ - enable_shared_with_static_runtimes_CXX \ - old_archive_cmds_CXX \ - old_archive_from_new_cmds_CXX \ - predep_objects_CXX \ - postdep_objects_CXX \ - predeps_CXX \ - postdeps_CXX \ - compiler_lib_search_path_CXX \ - archive_cmds_CXX \ - archive_expsym_cmds_CXX \ - postinstall_cmds_CXX \ - postuninstall_cmds_CXX \ - old_archive_from_expsyms_cmds_CXX \ - allow_undefined_flag_CXX \ - no_undefined_flag_CXX \ - export_symbols_cmds_CXX \ - hardcode_libdir_flag_spec_CXX \ - hardcode_libdir_flag_spec_ld_CXX \ - hardcode_libdir_separator_CXX \ - hardcode_automatic_CXX \ - module_cmds_CXX \ - module_expsym_cmds_CXX \ - lt_cv_prog_compiler_c_o_CXX \ - exclude_expsyms_CXX \ - include_expsyms_CXX; do +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds - case $var in - old_archive_cmds_CXX | \ - old_archive_from_new_cmds_CXX | \ - archive_cmds_CXX | \ - archive_expsym_cmds_CXX | \ - module_cmds_CXX | \ - module_expsym_cmds_CXX | \ - old_archive_from_expsyms_cmds_CXX | \ - export_symbols_cmds_CXX | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe -cfgfile="$ofile" +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# This is the shared library runtime path variable. +runpath_var=$runpath_var -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL +# This is the shared library path variable. +shlibpath_var=$shlibpath_var -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath -# Whether or not to build static libraries. -build_old_libs=$enable_static +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_CXX +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_CXX -# An echo program that does not interpret backslashes. -echo=$lt_echo +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX -# A C compiler. -LTCC=$lt_LTCC +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_CXX -# A language-specific compiler. -CC=$lt_compiler_CXX +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" -# Is the compiler the GNU C compiler? -with_gcc=$GCC_CXX +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX -# An ERE matcher. -EGREP=$lt_EGREP +# Compile-time system search path for libraries +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` -# The linker used to build libraries. -LD=$lt_LD_CXX +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec -# Whether we need hard or soft links. -LN_S=$lt_LN_S +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_CXX" -# A BSD-compatible nm program. -NM=$lt_NM +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX -# A symbol stripping program -STRIP=$lt_STRIP +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX -# Used on cygwin: assembler. -AS="$AS" +# ### END LIBTOOL TAG CONFIG: $tagname -# The name of the directory that contains temporary libtool files. -objdir=$objdir +__EOF__ -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_CXX +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi -# Object file suffix (normally "o"). -objext="$ac_objext" -# Old archive suffix (normally "a"). -libext="$libext" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -# Executable file suffix (normally ""). -exeext="$exeext" + else + tagname="" + fi + ;; -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_CXX -pic_mode=$pic_mode + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_CXX - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_CXX -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_CXX -archive_expsym_cmds=$lt_archive_expsym_cmds_CXX -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_CXX -module_expsym_cmds=$lt_module_expsym_cmds_CXX - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_CXX - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_CXX - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_CXX - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_CXX - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_CXX - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_CXX - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_CXX - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_CXX - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_CXX - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_CXX - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path_CXX" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_CXX - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_CXX - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_CXX - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_CXX - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC=$lt_save_CC -LDCXX=$LD -LD=$lt_save_LD -GCC=$lt_save_GCC -with_gnu_ldcxx=$with_gnu_ld -with_gnu_ld=$lt_save_with_gnu_ld -lt_cv_path_LDCXX=$lt_cv_path_LD -lt_cv_path_LD=$lt_save_path_LD -lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld -lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld - - else - tagname="" - fi - ;; - - F77) - if test -n "$F77" && test "X$F77" != "Xno"; then - -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no @@ -19909,6 +20352,9 @@ lt_simple_link_test_code=" program t\n end\n" # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + # Allow CC to be a program name with arguments. compiler=$CC @@ -19916,13 +20362,13 @@ compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* @@ -19954,7 +20400,7 @@ test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. -case "$host_os" in +case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then @@ -19978,8 +20424,6 @@ test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 -test "$ld_shlibs_F77" = no && can_build_shared=no - GCC_F77="$G77" LD_F77="$LD" @@ -20026,6 +20470,11 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 lt_prog_compiler_pic_F77='-fno-common' ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. @@ -20042,7 +20491,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. - case "$host_cpu" in + case $host_cpu in hppa*64*|ia64*) # +Z the default ;; @@ -20089,7 +20538,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. - case "$host_cpu" in + case $host_cpu in hppa*64*|ia64*) # +Z the default ;; @@ -20119,12 +20568,12 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; - pgcc* | pgf77* | pgf90*) + pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' - lt_prog_compiler_static_F77='-static' + lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' @@ -20140,11 +20589,6 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 lt_prog_compiler_static_F77='-non_shared' ;; - sco3.2v5*) - lt_prog_compiler_pic_F77='-Kpic' - lt_prog_compiler_static_F77='-dn' - ;; - solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' @@ -20162,7 +20606,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 lt_prog_compiler_static_F77='-Bstatic' ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' @@ -20175,6 +20619,12 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 fi ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no @@ -20214,20 +20664,20 @@ else # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:20220: $lt_compile\"" >&5) + (eval echo "\"\$as_me:20670: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:20224: \$? = $ac_status" >&5 + echo "$as_me:20674: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp - $SED '/^$/d' conftest.err >conftest.er2 - if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi @@ -20248,7 +20698,7 @@ else fi fi -case "$host_os" in +case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= @@ -20258,10 +20708,52 @@ case "$host_os" in ;; esac -echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 -if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" +echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 +if test "${lt_prog_compiler_static_works_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_F77=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_F77=yes + fi + else + lt_prog_compiler_static_works_F77=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 + +if test x"$lt_prog_compiler_static_works_F77" = xyes; then + : +else + lt_prog_compiler_static_F77= +fi + + +echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 +if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null @@ -20276,25 +20768,25 @@ else # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:20282: $lt_compile\"" >&5) + (eval echo "\"\$as_me:20774: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:20286: \$? = $ac_status" >&5 + echo "$as_me:20778: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp - $SED '/^$/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi - chmod u+w . + chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation @@ -20390,6 +20882,10 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` with_gnu_ld=no fi ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; openbsd*) with_gnu_ld=no ;; @@ -20474,7 +20970,7 @@ EOF export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then @@ -20483,22 +20979,38 @@ EOF echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; + interix3*) + hardcode_direct_F77=no + hardcode_shlibpath_var_F77=no + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + export_dynamic_flag_spec_F77='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - whole_archive_flag_spec_F77= + whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' ;; - pgf77* | pgf90* ) # Portland Group f77 and f90 compilers - whole_archive_flag_spec_F77= - tmp_addflag=' -fpic -Mnomain' ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 @@ -20529,7 +21041,7 @@ EOF fi ;; - solaris* | sysv5*) + solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 @@ -20550,6 +21062,33 @@ EOF fi ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs_F77=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + esac + ;; + sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= @@ -20583,7 +21122,7 @@ EOF # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported @@ -20617,6 +21156,7 @@ EOF break fi done + ;; esac exp_sym_flag='-bexport' @@ -20654,6 +21194,7 @@ EOF hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi + ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then @@ -20666,11 +21207,11 @@ EOF # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else - if test "$aix_use_runtimelinking" = yes; then + if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' - fi + fi fi fi @@ -20725,12 +21266,12 @@ rm -f conftest.err conftest.$ac_objext \ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" + archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF @@ -20780,13 +21321,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_F77=yes # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_F77=' ' + whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; @@ -20825,7 +21364,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; darwin* | rhapsody*) - case "$host_os" in + case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; @@ -20854,7 +21393,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else @@ -20863,7 +21402,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; @@ -20927,47 +21466,62 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi export_dynamic_flag_spec_F77='${wl}-E' ;; - hpux10* | hpux11*) + hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) + archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + + hardcode_direct_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; + ia64*) + archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + case $host_cpu in + hppa*64*) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + + case $host_cpu in + hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - ;; - ia64*) - hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes ;; *) - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' @@ -21069,14 +21623,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_separator_F77=: ;; - sco3.2v5*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - export_dynamic_flag_spec_F77='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then @@ -21162,36 +21708,45 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi fi ;; - sysv4.2uw2*) - archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_minus_L_F77=no + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + no_undefined_flag_F77='${wl}-z,text' + archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; + runpath_var='LD_RUN_PATH' - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag_F77='${wl}-z ${wl}text' if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else - archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_F77=no ;; - sysv5*) - no_undefined_flag_F77=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec_F77= + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_F77='${wl}-z,text' + allow_undefined_flag_F77='${wl}-z,nodefs' + archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no + hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_F77=':' + link_all_deplibs_F77=yes + export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi ;; uts4*) @@ -21210,11 +21765,6 @@ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - # # Do we need to explicitly link libc? # @@ -21247,6 +21797,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 + pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= @@ -21407,7 +21958,8 @@ cygwin* | mingw* | pw32*) dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' @@ -21460,7 +22012,7 @@ darwin* | rhapsody*) soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` @@ -21498,7 +22050,14 @@ kfreebsd*-gnu) freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) @@ -21520,10 +22079,15 @@ freebsd* | dragonfly*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; - *) # from 3.2 on + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; esac ;; @@ -21543,7 +22107,7 @@ hpux9* | hpux10* | hpux11*) version_type=sunos need_lib_prefix=no need_version=no - case "$host_cpu" in + case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes @@ -21583,6 +22147,18 @@ hpux9* | hpux10* | hpux11*) postinstall_cmds='chmod 555 $lib' ;; +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; @@ -21644,7 +22220,7 @@ linux*) libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) - echo '#line 21647 "configure"' > conftest.$ac_ext + echo '#line 22223 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -21663,7 +22239,7 @@ linux*) # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi @@ -21725,8 +22301,13 @@ nto-qnx*) openbsd*) version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no - need_version=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH @@ -21764,13 +22345,6 @@ osf3* | osf4* | osf5*) sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - solaris*) version_type=linux need_lib_prefix=no @@ -21796,7 +22370,7 @@ sunos4*) need_version=yes ;; -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) +sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -21829,6 +22403,29 @@ sysv4*MP*) fi ;; +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -21844,6 +22441,11 @@ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= @@ -21881,36 +22483,6 @@ elif test "$shlibpath_overrides_runpath" = yes || enable_fast_install=needless fi -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - - # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh @@ -21925,7 +22497,7 @@ if test -f "$ltmain"; then # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ @@ -22043,12 +22615,18 @@ AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + # An ERE matcher. EGREP=$lt_EGREP @@ -22182,11 +22760,11 @@ striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. -predep_objects=$lt_predep_objects_F77 +predep_objects=\`echo $lt_predep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. -postdep_objects=$lt_postdep_objects_F77 +postdep_objects=\`echo $lt_postdep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. @@ -22198,7 +22776,7 @@ postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_F77 +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -22278,7 +22856,7 @@ variables_saved_for_relink="$variables_saved_for_relink" link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec @@ -22353,6 +22931,9 @@ lt_simple_link_test_code='public class conftest { public static void main(String # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + # Allow CC to be a program name with arguments. compiler=$CC @@ -22360,13 +22941,13 @@ compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* @@ -22414,20 +22995,20 @@ else # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:22420: $lt_compile\"" >&5) + (eval echo "\"\$as_me:23001: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:22424: \$? = $ac_status" >&5 + echo "$as_me:23005: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp - $SED '/^$/d' conftest.err >conftest.er2 - if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi @@ -22488,6 +23069,11 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 lt_prog_compiler_pic_GCJ='-fno-common' ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. @@ -22504,7 +23090,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. - case "$host_cpu" in + case $host_cpu in hppa*64*|ia64*) # +Z the default ;; @@ -22551,7 +23137,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. - case "$host_cpu" in + case $host_cpu in hppa*64*|ia64*) # +Z the default ;; @@ -22581,12 +23167,12 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; - pgcc* | pgf77* | pgf90*) + pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' - lt_prog_compiler_static_GCJ='-static' + lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' @@ -22602,11 +23188,6 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 lt_prog_compiler_static_GCJ='-non_shared' ;; - sco3.2v5*) - lt_prog_compiler_pic_GCJ='-Kpic' - lt_prog_compiler_static_GCJ='-dn' - ;; - solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' @@ -22624,7 +23205,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 lt_prog_compiler_static_GCJ='-Bstatic' ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' @@ -22637,6 +23218,12 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 fi ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no @@ -22676,20 +23263,20 @@ else # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:22682: $lt_compile\"" >&5) + (eval echo "\"\$as_me:23269: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:22686: \$? = $ac_status" >&5 + echo "$as_me:23273: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp - $SED '/^$/d' conftest.err >conftest.er2 - if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi @@ -22710,7 +23297,7 @@ else fi fi -case "$host_os" in +case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= @@ -22720,6 +23307,48 @@ case "$host_os" in ;; esac +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" +echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 +if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_GCJ=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_GCJ=yes + fi + else + lt_prog_compiler_static_works_GCJ=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 + +if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then + : +else + lt_prog_compiler_static_GCJ= +fi + + echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then @@ -22738,25 +23367,25 @@ else # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:22744: $lt_compile\"" >&5) + (eval echo "\"\$as_me:23373: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:22748: \$? = $ac_status" >&5 + echo "$as_me:23377: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp - $SED '/^$/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi - chmod u+w . + chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation @@ -22852,6 +23481,10 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` with_gnu_ld=no fi ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; openbsd*) with_gnu_ld=no ;; @@ -22936,7 +23569,7 @@ EOF export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then @@ -22945,22 +23578,38 @@ EOF echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; + interix3*) + hardcode_direct_GCJ=no + hardcode_shlibpath_var_GCJ=no + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + export_dynamic_flag_spec_GCJ='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - whole_archive_flag_spec_GCJ= + whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' ;; - pgf77* | pgf90* ) # Portland Group f77 and f90 compilers - whole_archive_flag_spec_GCJ= - tmp_addflag=' -fpic -Mnomain' ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 @@ -22991,7 +23640,7 @@ EOF fi ;; - solaris* | sysv5*) + solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 @@ -23012,6 +23661,33 @@ EOF fi ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs_GCJ=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + esac + ;; + sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= @@ -23045,7 +23721,7 @@ EOF # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported @@ -23079,6 +23755,7 @@ EOF break fi done + ;; esac exp_sym_flag='-bexport' @@ -23116,6 +23793,7 @@ EOF hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi + ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then @@ -23128,11 +23806,11 @@ EOF # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else - if test "$aix_use_runtimelinking" = yes; then + if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' - fi + fi fi fi @@ -23197,12 +23875,12 @@ rm -f conftest.err conftest.$ac_objext \ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" + archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF @@ -23262,13 +23940,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' - # -bexpall does not export symbols beginning with underscore (_) - always_export_symbols_GCJ=yes # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_GCJ=' ' + whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes - # This is similar to how AIX traditionally builds it's shared libraries. - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; @@ -23307,7 +23983,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; darwin* | rhapsody*) - case "$host_os" in + case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; @@ -23336,7 +24012,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else @@ -23345,7 +24021,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; @@ -23409,47 +24085,62 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi export_dynamic_flag_spec_GCJ='${wl}-E' ;; - hpux10* | hpux11*) + hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*|ia64*) + archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + + hardcode_direct_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; + ia64*) + archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else - case "$host_cpu" in - hppa*64*|ia64*) - archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + case $host_cpu in + hppa*64*) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + + case $host_cpu in + hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' - hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; - ia64*) - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - ;; *) - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' @@ -23551,14 +24242,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_separator_GCJ=: ;; - sco3.2v5*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - export_dynamic_flag_spec_GCJ='${wl}-Bexport' - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then @@ -23644,36 +24327,45 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi fi ;; - sysv4.2uw2*) - archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=no + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + no_undefined_flag_GCJ='${wl}-z,text' + archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; + runpath_var='LD_RUN_PATH' - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) - no_undefined_flag_GCJ='${wl}-z ${wl}text' if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else - archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_GCJ=no ;; - sysv5*) - no_undefined_flag_GCJ=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec_GCJ= + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_GCJ='${wl}-z,text' + allow_undefined_flag_GCJ='${wl}-z,nodefs' + archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no + hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_GCJ=':' + link_all_deplibs_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi ;; uts4*) @@ -23692,11 +24384,6 @@ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - # # Do we need to explicitly link libc? # @@ -23729,6 +24416,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >& libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ + pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= @@ -23889,7 +24577,8 @@ cygwin* | mingw* | pw32*) dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' @@ -23942,7 +24631,7 @@ darwin* | rhapsody*) soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` @@ -23980,7 +24669,14 @@ kfreebsd*-gnu) freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) @@ -24002,10 +24698,15 @@ freebsd* | dragonfly*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; - *) # from 3.2 on + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; esac ;; @@ -24025,7 +24726,7 @@ hpux9* | hpux10* | hpux11*) version_type=sunos need_lib_prefix=no need_version=no - case "$host_cpu" in + case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes @@ -24063,1139 +24764,342 @@ hpux9* | hpux10* | hpux11*) esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # find out which ABI we are using - libsuff= - case "$host_cpu" in - x86_64*|s390x*|powerpc64*) - echo '#line 24129 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.$ac_objext` in - *64-bit*) - libsuff=64 - sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" - ;; - esac - fi - rm -rf conftest* - ;; - esac - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -knetbsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='GNU ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6 -test "$dynamic_linker" = no && can_build_shared=no - -echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 -hardcode_action_GCJ= -if test -n "$hardcode_libdir_flag_spec_GCJ" || \ - test -n "$runpath_var_GCJ" || \ - test "X$hardcode_automatic_GCJ" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_GCJ" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && - test "$hardcode_minus_L_GCJ" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_GCJ=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_GCJ=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_GCJ=unsupported -fi -echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 -echo "${ECHO_T}$hardcode_action_GCJ" >&6 - -if test "$hardcode_action_GCJ" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - ;; - *) - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 -if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -char (*f) () = shl_load; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shl_load; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6 -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main () -{ -shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_shl_load=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_shl_load=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" -else - echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 -if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -char (*f) () = dlopen; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != dlopen; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6 -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main () -{ -dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_svld_dlopen=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_svld_dlopen=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main () -{ -dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dld_dld_link=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dld_dld_link=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" -fi - - -fi - - -fi - - -fi + ;; +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; -fi +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; -fi +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + # find out which ABI we are using + libsuff= + case "$host_cpu" in + x86_64*|s390x*|powerpc64*) + echo '#line 24842 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *64-bit*) + libsuff=64 + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + ;; + esac + fi + rm -rf conftest* ;; esac - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' fi -fi -rm -fr conftest* - + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; -fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6 +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; - if test "x$lt_cv_dlopen_self" = xyes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext < -#endif +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; -#include +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; -#ifdef __cplusplus -extern "C" void exit (int); -#endif +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; esac - else : - # compilation failed - lt_cv_dlopen_self_static=no fi -fi -rm -fr conftest* + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; +*) + dynamic_linker=no + ;; +esac +echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6 +test "$dynamic_linker" = no && can_build_shared=no +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi -echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 - fi - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac +echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 +hardcode_action_GCJ= +if test -n "$hardcode_libdir_flag_spec_GCJ" || \ + test -n "$runpath_var_GCJ" || \ + test "X$hardcode_automatic_GCJ" = "Xyes" ; then - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac + # We can hardcode non-existant directories. + if test "$hardcode_direct_GCJ" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && + test "$hardcode_minus_L_GCJ" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_GCJ=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_GCJ=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_GCJ=unsupported +fi +echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 +echo "${ECHO_T}$hardcode_action_GCJ" >&6 - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac +if test "$hardcode_action_GCJ" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless fi @@ -25212,7 +25116,7 @@ if test -f "$ltmain"; then # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ @@ -25330,12 +25234,18 @@ AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + # An ERE matcher. EGREP=$lt_EGREP @@ -25469,11 +25379,11 @@ striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. -predep_objects=$lt_predep_objects_GCJ +predep_objects=\`echo $lt_predep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. -postdep_objects=$lt_postdep_objects_GCJ +postdep_objects=\`echo $lt_postdep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. @@ -25485,7 +25395,7 @@ postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -25565,7 +25475,7 @@ variables_saved_for_relink="$variables_saved_for_relink" link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec @@ -25639,6 +25549,9 @@ lt_simple_link_test_code="$lt_simple_compile_test_code" # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + # Allow CC to be a program name with arguments. compiler=$CC @@ -25646,13 +25559,13 @@ compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* @@ -25687,7 +25600,7 @@ if test -f "$ltmain"; then # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ @@ -25805,12 +25718,18 @@ AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + # An ERE matcher. EGREP=$lt_EGREP @@ -25944,11 +25863,11 @@ striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. -predep_objects=$lt_predep_objects_RC +predep_objects=\`echo $lt_predep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. -postdep_objects=$lt_postdep_objects_RC +postdep_objects=\`echo $lt_postdep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. @@ -25960,7 +25879,7 @@ postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_RC +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -26040,7 +25959,7 @@ variables_saved_for_relink="$variables_saved_for_relink" link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec @@ -26147,61 +26066,7 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - echo "$as_me:$LINENO: checking for linux kernel dir" >&5 -echo $ECHO_N "checking for linux kernel dir... $ECHO_C" >&6 -if test "${ensc_cv_path_kerneldir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - -# Check whether --with-kerneldir or --without-kerneldir was given. -if test "${with_kerneldir+set}" = set; then - withval="$with_kerneldir" - case "$withval" in - yes|no) { { echo "$as_me:$LINENO: error: '$withval' is not a valid value for kerneldir" >&5 -echo "$as_me: error: '$withval' is not a valid value for kerneldir" >&2;} - { (exit 1); exit 1; }; };; - *) ensc_cv_path_kerneldir=$withval;; - esac -else - ensc_cv_path_kerneldir= - for i in /lib/modules/$(uname -r)/build /usr/src/linux /usr; do - test -e $i/include/linux/version.h && { ensc_cv_path_kerneldir=$i; break; } - done -fi; - -fi -echo "$as_me:$LINENO: result: $ensc_cv_path_kerneldir" >&5 -echo "${ECHO_T}$ensc_cv_path_kerneldir" >&6 - - test "$ensc_cv_path_kerneldir" -a -e "$ensc_cv_path_kerneldir"/include/linux/version.h || { - { { echo "$as_me:$LINENO: error: Can not find kernelsources" >&5 -echo "$as_me: error: Can not find kernelsources" >&2;} - { (exit 1); exit 1; }; } - } - - - - - echo "$as_me:$LINENO: checking for linux kernel headers" >&5 -echo $ECHO_N "checking for linux kernel headers... $ECHO_C" >&6 -if test "${ensc_cv_path_kernelheaders+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - ensc_cv_path_kernelheaders=$ensc_cv_path_kerneldir/include - -fi -echo "$as_me:$LINENO: result: $ensc_cv_path_kernelheaders" >&5 -echo "${ECHO_T}$ensc_cv_path_kernelheaders" >&6 - - if test x"kernelincludedir" != x; then - kernelincludedir=$ensc_cv_path_kernelheaders - - fi - - + echo "$as_me:$LINENO: checking which vserver-rootdir is to use" >&5 echo $ECHO_N "checking which vserver-rootdir is to use... $ECHO_C" >&6 @@ -26226,73 +26091,17 @@ echo "${ECHO_T}$ensc_uv_path_vrootdir" >&6 fi - if test x"trunk" != x; then - CVS2CL_TAG='-F trunk' - - fi - - for ac_prog in cvs2cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CVS2CL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CVS2CL"; then - ac_cv_prog_CVS2CL="$CVS2CL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CVS2CL="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CVS2CL=$ac_cv_prog_CVS2CL -if test -n "$CVS2CL"; then - echo "$as_me:$LINENO: result: $CVS2CL" >&5 -echo "${ECHO_T}$CVS2CL" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CVS2CL" && break -done - - - -if test x"$CVS2CL" != x; then - HAVE_CVS2CL_TRUE= - HAVE_CVS2CL_FALSE='#' -else - HAVE_CVS2CL_TRUE='#' - HAVE_CVS2CL_FALSE= -fi - - - for ac_prog in rcs2log + for ac_prog in svn2cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RCS2LOG+set}" = set; then +if test "${ac_cv_prog_SVN2CL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$RCS2LOG"; then - ac_cv_prog_RCS2LOG="$RCS2LOG" # Let the user override the test. + if test -n "$SVN2CL"; then + ac_cv_prog_SVN2CL="$SVN2CL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -26301,7 +26110,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RCS2LOG="$ac_prog" + ac_cv_prog_SVN2CL="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -26310,26 +26119,26 @@ done fi fi -RCS2LOG=$ac_cv_prog_RCS2LOG -if test -n "$RCS2LOG"; then - echo "$as_me:$LINENO: result: $RCS2LOG" >&5 -echo "${ECHO_T}$RCS2LOG" >&6 +SVN2CL=$ac_cv_prog_SVN2CL +if test -n "$SVN2CL"; then + echo "$as_me:$LINENO: result: $SVN2CL" >&5 +echo "${ECHO_T}$SVN2CL" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi - test -n "$RCS2LOG" && break + test -n "$SVN2CL" && break done -if test x"$RCS2LOG" != x; then - HAVE_RCS2LOG_TRUE= - HAVE_RCS2LOG_FALSE='#' +if test x"$SVN2CL" != x; then + HAVE_SVN2CL_TRUE= + HAVE_SVN2CL_FALSE='#' else - HAVE_RCS2LOG_TRUE='#' - HAVE_RCS2LOG_FALSE= + HAVE_SVN2CL_TRUE='#' + HAVE_SVN2CL_FALSE= fi @@ -26363,283 +26172,115 @@ fi echo "$as_me:$LINENO: result: $enable_internal_headers" >&5 echo "${ECHO_T}$enable_internal_headers" >&6 -echo "$as_me:$LINENO: checking for supported APIs" >&5 -echo $ECHO_N "checking for supported APIs... $ECHO_C" >&6 -# Check whether --enable-apis or --disable-apis was given. -if test "${enable_apis+set}" = set; then - enableval="$enable_apis" - -else - enable_apis=compat,v11,v13,fscompat,net -fi; - -test x"$enable_apis" != xALL || enable_apis='legacy,compat,v11,v13,fscompat,net' -enable_api_oldproc= -enable_api_olduts= -old_IFS=$IFS -IFS=,; -for i in $enable_apis; do - case "$i" in - (compat) -cat >>confdefs.h <<\_ACEOF -#define VC_ENABLE_API_COMPAT 1 -_ACEOF - - enable_api_oldproc=1 - enable_api_olduts=1 - ;; - (legacy) -cat >>confdefs.h <<\_ACEOF -#define VC_ENABLE_API_LEGACY 1 -_ACEOF - - enable_api_old_proc=1 - enable_api_olduts=1 - ;; - (v11) -cat >>confdefs.h <<\_ACEOF -#define VC_ENABLE_API_V11 1 -_ACEOF - - enable_api_oldproc=1 - enable_api_olduts=1 - ;; - (v13) -cat >>confdefs.h <<\_ACEOF -#define VC_ENABLE_API_V13 1 -_ACEOF -;; - (net) -cat >>confdefs.h <<\_ACEOF -#define VC_ENABLE_API_NET 1 -_ACEOF -;; - (fscompat) -cat >>confdefs.h <<\_ACEOF -#define VC_ENABLE_API_FSCOMPAT 1 -_ACEOF -;; - (*) { { echo "$as_me:$LINENO: error: '$i' is not a supported API" >&5 -echo "$as_me: error: '$i' is not a supported API" >&2;} - { (exit 1); exit 1; }; };; - esac -done -IFS=$old_IFS -if test x"$enable_api_oldproc" != x; then - -cat >>confdefs.h <<\_ACEOF -#define VC_ENABLE_API_OLDPROC 1 -_ACEOF - - enable_apis="$enable_apis,oldproc" -fi -if test x"$enable_api_olduts" != x; then - -cat >>confdefs.h <<\_ACEOF -#define VC_ENABLE_API_OLDUTS 1 -_ACEOF - - enable_apis="$enable_apis,olduts" -fi -echo "$as_me:$LINENO: result: $enable_apis" >&5 -echo "${ECHO_T}$enable_apis" >&6 - - - - - - - - echo "$as_me:$LINENO: checking for number of syscall 'vserver'" >&5 -echo $ECHO_N "checking for number of syscall 'vserver'... $ECHO_C" >&6 -if test "${ensc_cv_value_syscall_vserver+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF - -#include -#ifdef __NR_vserver -ensc_syscall_tmp_nr=__NR_vserver; -ensc_syscall_tmp_src=ENSC_MARK -#endif - -_ACEOF - ensc_syscall_tmp_nr= - ensc_syscall_tmp_src= - test "$ensc_syscall_tmp_nr" || \ - eval $($CPP $CPPFLAGS -D ENSC_MARK='glibc' conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[1-9][0-9]*;|src=.*)$') - test "$ensc_syscall_tmp_nr" || \ - eval $($CPP $CPPFLAGS -D ENSC_MARK='kernel' -I $ensc_cv_path_kernelheaders conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[1-9][0-9]*;|src=.*)$') - test "$ensc_syscall_tmp_nr" || { - ensc_syscall_tmp_nr=273 - ensc_syscall_tmp_src=default - } - - if test x"$ensc_syscall_tmp_nr" = x; then - { { echo "$as_me:$LINENO: error: Can not determine value of __NR_vserver; please verify your glibc/kernelheaders, and/or set CPPFLAGS='-D__NR_vserver=' environment when calling configure." >&5 -echo "$as_me: error: Can not determine value of __NR_vserver; please verify your glibc/kernelheaders, and/or set CPPFLAGS='-D__NR_vserver=' environment when calling configure." >&2;} - { (exit 1); exit 1; }; } - fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - ensc_cv_value_syscall_vserver="$ensc_syscall_tmp_nr/$ensc_syscall_tmp_src" -fi -echo "$as_me:$LINENO: result: $ensc_cv_value_syscall_vserver" >&5 -echo "${ECHO_T}$ensc_cv_value_syscall_vserver" >&6 - ensc_syscall_tmp_nr=${ensc_cv_value_syscall_vserver%/*} - ensc_syscall_tmp_src=${ensc_cv_value_syscall_vserver#*/} - if test x"$ensc_syscall_tmp_src" != x'glibc'; then -cat >>confdefs.h <<_ACEOF -#define ENSC_SYSCALL__NR_vserver $ensc_syscall_tmp_nr -_ACEOF - fi - echo "$as_me:$LINENO: checking for syscall(2) invocation method" >&5 -echo $ECHO_N "checking for syscall(2) invocation method... $ECHO_C" >&6 -# Check whether --with-syscall or --without-syscall was given. -if test "${with_syscall+set}" = set; then - withval="$with_syscall" -else - with_syscall=auto -fi; - echo "$as_me:$LINENO: result: $with_syscall" >&5 -echo "${ECHO_T}$with_syscall" >&6 - case x"$with_syscall" in - (xauto) - echo "$as_me:$LINENO: checking which syscall(2) invocation works" >&5 -echo $ECHO_N "checking which syscall(2) invocation works... $ECHO_C" >&6 -if test "${ensc_cv_test_syscall+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include "$srcdir/lib/syscall-wrap.h" -#include -#define __NR_foo0 300 -#define __NR_foo1 301 -#define __NR_foo2 302 -#define __NR_foo3 303 -#define __NR_foo4 304 -#define __NR_foo5 305 -inline static _syscall0(int, foo0) -inline static _syscall1(int, foo1, int, a) -inline static _syscall2(int, foo2, int, a, int, b) -inline static _syscall3(int, foo3, int, a, int, b, int, c) -inline static _syscall4(int, foo4, int, a, int, b, int, c, int, d) -inline static _syscall5(int, foo5, int, a, int, b, int, c, int, d, int, e) -int main() { - return foo0() || \ - foo1(1) || \ - foo2(1,2) || \ - foo3(1,2,3) || \ - foo4(1,2,3,4) || \ - foo5(1,2,3,4,5); -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ensc_cv_test_syscall=fast -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -ensc_cv_test_syscall=traditional -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +echo "$as_me:$LINENO: checking for supported APIs" >&5 +echo $ECHO_N "checking for supported APIs... $ECHO_C" >&6 +# Check whether --enable-apis or --disable-apis was given. +if test "${enable_apis+set}" = set; then + enableval="$enable_apis" +else + enable_apis=v13,net,v21 +fi; -fi -echo "$as_me:$LINENO: result: $ensc_cv_test_syscall" >&5 -echo "${ECHO_T}$ensc_cv_test_syscall" >&6 - with_syscall=$ensc_cv_test_syscall - ;; - (xfast|xtraditional) - ;; - *) - { { echo "$as_me:$LINENO: error: '$with_syscall' is not a valid value for '--with-syscall'" >&5 -echo "$as_me: error: '$with_syscall' is not a valid value for '--with-syscall'" >&2;} - { (exit 1); exit 1; }; } - ;; - esac +test x"$enable_apis" != xALL || enable_apis='legacy,compat,v11,fscompat,v13obs,v13,net,v21' +test x"$enable_apis" != xNOLEGACY || enable_apis='compat,v11,fscompat,v13,net,v21' +enable_api_oldproc= +enable_api_olduts= +old_IFS=$IFS +IFS=,; - if test x"$with_syscall $ensc_use_alternative_syscall_macros" = 'xfast yes'; then - with_syscall='alternative' - fi +for i in $enable_apis; do + case "$i" in + (compat) cat >>confdefs.h <<\_ACEOF +#define VC_ENABLE_API_COMPAT 1 +_ACEOF - if test x"$with_syscall" = xtraditional; then + enable_api_oldproc=${enable_api_oldproc:-1} + enable_api_olduts=${enable_api_olduts:-1} + ;; + (legacy) cat >>confdefs.h <<\_ACEOF +#define VC_ENABLE_API_LEGACY 1 +_ACEOF -cat >>confdefs.h <<\_ACEOF -#define ENSC_SYSCALL_TRADITIONAL 1 + enable_api_oldproc=${enable_api_oldproc:-1} + enable_api_olduts=${enable_api_olduts:-1} + ;; + (v11) cat >>confdefs.h <<\_ACEOF +#define VC_ENABLE_API_V11 1 _ACEOF - fi + enable_api_oldproc=${enable_api_oldproc:-1} + enable_api_olduts=${enable_api_olduts:-1} + ;; + (fscompat) cat >>confdefs.h <<\_ACEOF +#define VC_ENABLE_API_FSCOMPAT 1 +_ACEOF +;; + (v13obs) cat >>confdefs.h <<\_ACEOF +#define VC_ENABLE_API_V13OBS 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define VC_ENABLE_API_V13 1 +_ACEOF +;; + (v13) cat >>confdefs.h <<\_ACEOF +#define VC_ENABLE_API_V13 1 +_ACEOF +;; + (net) cat >>confdefs.h <<\_ACEOF +#define VC_ENABLE_API_NET 1 +_ACEOF +;; + (v21) cat >>confdefs.h <<\_ACEOF +#define VC_ENABLE_API_V21 1 +_ACEOF +;; + (oldproc) enable_api_oldproc=2;; + (olduts) enable_api_olduts=2;; + (*) { { echo "$as_me:$LINENO: error: '$i' is not a supported API" >&5 +echo "$as_me: error: '$i' is not a supported API" >&2;} + { (exit 1); exit 1; }; };; + esac +done +IFS=$old_IFS +if test x"$enable_api_oldproc" != x; then + cat >>confdefs.h <<\_ACEOF +#define VC_ENABLE_API_OLDPROC 1 +_ACEOF + test x"$enable_api_oldproc" != x2 && enable_apis="$enable_apis,oldproc" +fi +if test x"$enable_api_olduts" != x; then + cat >>confdefs.h <<\_ACEOF +#define VC_ENABLE_API_OLDUTS 1 +_ACEOF + test x"$enable_api_olduts" != x2 && enable_apis="$enable_apis,olduts" +fi +echo "$as_me:$LINENO: result: $enable_apis" >&5 +echo "${ECHO_T}$enable_apis" >&6 @@ -26859,9 +26500,9 @@ echo "$as_me: WARNING: ext2fs/ext2_fs.h: proceeding with the preprocessor's resu echo "$as_me: WARNING: ext2fs/ext2_fs.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------------------------ ## -## Report this to enrico.scholz@informatik.tu-chemnitz.de ## -## ------------------------------------------------------ ## +## --------------------------------------------- ## +## Report this to vserver@list.linux-vserver.org ## +## --------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -27013,9 +26654,9 @@ echo "$as_me: WARNING: linux/ext2_fs.h: proceeding with the preprocessor's resul echo "$as_me: WARNING: linux/ext2_fs.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------------------------ ## -## Report this to enrico.scholz@informatik.tu-chemnitz.de ## -## ------------------------------------------------------ ## +## --------------------------------------------- ## +## Report this to vserver@list.linux-vserver.org ## +## --------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -27058,7 +26699,7 @@ the following reasons: * kernel headers are broken (e.g. these of linux 2.6 are known to be) and you do not have e2fsprogs headers installed; please try to install - e2fsprogs-devel (for Red Hat), or - - libext2fs2-devel (for Mandrake), or + - lib*ext2fs2-devel (for Mandriva), or - e2fslibs-dev (for Debian) in this case. @@ -27086,7 +26727,7 @@ the following reasons: * kernel headers are broken (e.g. these of linux 2.6 are known to be) and you do not have e2fsprogs headers installed; please try to install - e2fsprogs-devel (for Red Hat), or - - libext2fs2-devel (for Mandrake), or + - lib*ext2fs2-devel (for Mandriva), or - e2fslibs-dev (for Debian) in this case. @@ -27545,9 +27186,9 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >& echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------------------------ ## -## Report this to enrico.scholz@informatik.tu-chemnitz.de ## -## ------------------------------------------------------ ## +## --------------------------------------------- ## +## Report this to vserver@list.linux-vserver.org ## +## --------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -27574,6 +27215,188 @@ fi done +if test x"$ensc_have_dietlibc" = xno; then + echo "$as_me:$LINENO: checking for openpty" >&5 +echo $ECHO_N "checking for openpty... $ECHO_C" >&6 +if test "${ac_cv_func_openpty+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define openpty to an innocuous variant, in case declares openpty. + For example, HP-UX 11i declares gettimeofday. */ +#define openpty innocuous_openpty + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char openpty (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef openpty + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char openpty (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_openpty) || defined (__stub___openpty) +choke me +#else +char (*f) () = openpty; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != openpty; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_openpty=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_openpty=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_openpty" >&5 +echo "${ECHO_T}$ac_cv_func_openpty" >&6 +if test $ac_cv_func_openpty = yes; then + : +else + +echo "$as_me:$LINENO: checking for openpty in -lutil" >&5 +echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6 +if test "${ac_cv_lib_util_openpty+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char openpty (); +int +main () +{ +openpty (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_util_openpty=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_util_openpty=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_util_openpty" >&5 +echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6 +if test $ac_cv_lib_util_openpty = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBUTIL 1 +_ACEOF + + LIBS="-lutil $LIBS" + +else + { { echo "$as_me:$LINENO: error: +**** +**** openpty could not be found +****" >&5 +echo "$as_me: error: +**** +**** openpty could not be found +****" >&2;} + { (exit 1); exit 1; }; } +fi + +fi + +fi + if test x"$ensc_cv_c99_c99compiler" = xyes; then ensc_have_beecrypt=yes @@ -27697,9 +27520,9 @@ echo "$as_me: WARNING: beecrypt/beecrypt.h: proceeding with the preprocessor's r echo "$as_me: WARNING: beecrypt/beecrypt.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX -## ------------------------------------------------------ ## -## Report this to enrico.scholz@informatik.tu-chemnitz.de ## -## ------------------------------------------------------ ## +## --------------------------------------------- ## +## Report this to vserver@list.linux-vserver.org ## +## --------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -27836,6 +27659,54 @@ fi +echo "$as_me:$LINENO: checking for host initscripts" >&5 +echo $ECHO_N "checking for host initscripts... $ECHO_C" >&6 + +# Check whether --with-initscripts or --without-initscripts was given. +if test "${with_initscripts+set}" = set; then + withval="$with_initscripts" + + case "$withval" in + gentoo) ensc_with_init=gentoo;; + sysv) ensc_with_init=sysv;; + *) { { echo "$as_me:$LINENO: error: invalid initscripts value, only gentoo and sysv are supported" >&5 +echo "$as_me: error: invalid initscripts value, only gentoo and sysv are supported" >&2;} + { (exit 1); exit 1; }; };; + esac + +else + + if test -e /etc/gentoo-release; then + ensc_with_init=gentoo + else + ensc_with_init=sysv + fi + +fi; +echo "$as_me:$LINENO: result: $ensc_with_init" >&5 +echo "${ECHO_T}$ensc_with_init" >&6 + + +if test x"$ensc_with_init" = xgentoo; then + HAVE_GENTOO_INIT_TRUE= + HAVE_GENTOO_INIT_FALSE='#' +else + HAVE_GENTOO_INIT_TRUE='#' + HAVE_GENTOO_INIT_FALSE= +fi + + + +if test x"$ensc_with_init" = xsysv; then + HAVE_SYSV_INIT_TRUE= + HAVE_SYSV_INIT_FALSE='#' +else + HAVE_SYSV_INIT_TRUE='#' + HAVE_SYSV_INIT_FALSE= +fi + + + cat >>confdefs.h <<\_ACEOF #define UTMP_GID 22 @@ -28083,17 +27954,10 @@ echo "$as_me: error: conditional \"ENSC_USE_GLIBC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi -if test -z "${HAVE_CVS2CL_TRUE}" && test -z "${HAVE_CVS2CL_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_CVS2CL\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_CVS2CL\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_RCS2LOG_TRUE}" && test -z "${HAVE_RCS2LOG_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_RCS2LOG\" was never defined. +if test -z "${HAVE_SVN2CL_TRUE}" && test -z "${HAVE_SVN2CL_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"HAVE_SVN2CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_RCS2LOG\" was never defined. +echo "$as_me: error: conditional \"HAVE_SVN2CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi @@ -28115,6 +27979,20 @@ if test -z "${ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE}" && test -z "${ENSC_CAN_BEEC { { echo "$as_me:$LINENO: error: conditional \"ENSC_CAN_BEECRYPT_WITH_DIETLIBC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ENSC_CAN_BEECRYPT_WITH_DIETLIBC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${HAVE_GENTOO_INIT_TRUE}" && test -z "${HAVE_GENTOO_INIT_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"HAVE_GENTOO_INIT\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"HAVE_GENTOO_INIT\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${HAVE_SYSV_INIT_TRUE}" && test -z "${HAVE_SYSV_INIT_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"HAVE_SYSV_INIT\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"HAVE_SYSV_INIT\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi @@ -28141,7 +28019,6 @@ Paths: cfg-Directory: $sysconfdir/vservers initrd-Directory: $initrddir pkgstate-Directory: $localstatedir/run/vservers - Kernelheaders: $kernelincludedir vserver-Rootdir: $vserverdir " echo "$FEATURES_TXT" >FEATURES.txt @@ -28417,7 +28294,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by util-vserver $as_me 0.30.208, which was +This file was extended by util-vserver $as_me 0.30.213, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -28480,7 +28357,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -util-vserver config.status 0.30.208 +util-vserver config.status 0.30.213 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" @@ -28786,6 +28663,12 @@ s,@NOHUP@,$NOHUP,;t t s,@RMMOD@,$RMMOD,;t t s,@VCONFIG@,$VCONFIG,;t t s,@WGET@,$WGET,;t t +s,@FILE@,$FILE,;t t +s,@GZIP@,$GZIP,;t t +s,@BZIP2@,$BZIP2,;t t +s,@CPIO@,$CPIO,;t t +s,@RESTORE@,$RESTORE,;t t +s,@RSYNC@,$RSYNC,;t t s,@DOXYGEN@,$DOXYGEN,;t t s,@XSLTP@,$XSLTP,;t t s,@XSLTPROC@,$XSLTPROC,;t t @@ -28797,6 +28680,7 @@ s,@LIB_DEBUG_CPPFLAGS@,$LIB_DEBUG_CPPFLAGS,;t t s,@ENSC_USE_EXPENSIVE_TESTS@,$ENSC_USE_EXPENSIVE_TESTS,;t t s,@initrddir@,$initrddir,;t t s,@RELEASE_CPPFLAGS@,$RELEASE_CPPFLAGS,;t t +s,@CPP@,$CPP,;t t s,@DIET@,$DIET,;t t s,@DIETFLAGS@,$DIETFLAGS,;t t s,@USE_DIETLIBC_TRUE@,$USE_DIETLIBC_TRUE,;t t @@ -28812,27 +28696,25 @@ s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@CPP@,$CPP,;t t s,@CXXCPP@,$CXXCPP,;t t s,@F77@,$F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@LIBTOOL@,$LIBTOOL,;t t -s,@kernelincludedir@,$kernelincludedir,;t t s,@vserverdir@,$vserverdir,;t t -s,@CVS2CL_TAG@,$CVS2CL_TAG,;t t -s,@CVS2CL@,$CVS2CL,;t t -s,@HAVE_CVS2CL_TRUE@,$HAVE_CVS2CL_TRUE,;t t -s,@HAVE_CVS2CL_FALSE@,$HAVE_CVS2CL_FALSE,;t t -s,@RCS2LOG@,$RCS2LOG,;t t -s,@HAVE_RCS2LOG_TRUE@,$HAVE_RCS2LOG_TRUE,;t t -s,@HAVE_RCS2LOG_FALSE@,$HAVE_RCS2LOG_FALSE,;t t +s,@SVN2CL@,$SVN2CL,;t t +s,@HAVE_SVN2CL_TRUE@,$HAVE_SVN2CL_TRUE,;t t +s,@HAVE_SVN2CL_FALSE@,$HAVE_SVN2CL_FALSE,;t t s,@ENSC_ENABLE_INTERNAL_HEADERS_TRUE@,$ENSC_ENABLE_INTERNAL_HEADERS_TRUE,;t t s,@ENSC_ENABLE_INTERNAL_HEADERS_FALSE@,$ENSC_ENABLE_INTERNAL_HEADERS_FALSE,;t t s,@ENSC_HAVE_BEECRYPT_TRUE@,$ENSC_HAVE_BEECRYPT_TRUE,;t t s,@ENSC_HAVE_BEECRYPT_FALSE@,$ENSC_HAVE_BEECRYPT_FALSE,;t t s,@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@,$ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE,;t t s,@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@,$ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE,;t t +s,@HAVE_GENTOO_INIT_TRUE@,$HAVE_GENTOO_INIT_TRUE,;t t +s,@HAVE_GENTOO_INIT_FALSE@,$HAVE_GENTOO_INIT_FALSE,;t t +s,@HAVE_SYSV_INIT_TRUE@,$HAVE_SYSV_INIT_TRUE,;t t +s,@HAVE_SYSV_INIT_FALSE@,$HAVE_SYSV_INIT_FALSE,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF diff --git a/configure.ac b/configure.ac index b5c0f5e..dad7f3d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -dnl $Id: configure.ac,v 1.97 2005/07/15 20:25:06 ensc Exp $ +dnl $Id: configure.ac 2539 2007-05-02 20:11:40Z dhozac $ dnl Copyright (C) 2003,2004 Enrico Scholz dnl @@ -24,7 +24,7 @@ dnl distribution terms that you use for the rest of that program. dnl AC_PREREQ(2.57) -AC_INIT(util-vserver, 0.30.208, enrico.scholz@informatik.tu-chemnitz.de) +AC_INIT(util-vserver, 0.30.213, vserver@list.linux-vserver.org) AC_CONFIG_SRCDIR([src/capchroot.c]) AC_CONFIG_HEADER([config.h]) @@ -57,6 +57,12 @@ ENSC_PATHPROG(NOHUP, nohup) ENSC_PATHPROG(RMMOD, rmmod) ENSC_PATHPROG(VCONFIG, vconfig,, [See http://www.candelatech.com/~greear/vlan.html; usually this tool is shipped in the 'vconfig' or 'vlan' package of your distribution]) ENSC_PATHPROG(WGET, wget) +ENSC_PATHPROG(FILE, file, [file]) +ENSC_PATHPROG(GZIP, gzip, [gzip]) +ENSC_PATHPROG(BZIP2, bzip2, [bzip2]) +ENSC_PATHPROG(CPIO, cpio, [cpio]) +ENSC_PATHPROG(RESTORE, restore, [restore]) +ENSC_PATHPROG(RSYNC, rsync, [rsync]) ENSC_PATHPROG(DOXYGEN, doxygen, [:]) ENSC_PATHPROG(XSLTP, xsltp, [:]) @@ -65,7 +71,10 @@ ENSC_PATHPROG(XSLTPROC, xsltproc, [:]) AM_CONDITIONAL(HAVE_XSLTP, test "$XSLTP" != ':') AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != ':') - + +if test x"$prefix" = x/; then + prefix= +fi ENSC_CHECK_CC_FLAG([-std=c99 -Wall -pedantic -W]) ENSC_CHECK_CXX_FLAG([-ansi -Wall -pedantic -W -fmessage-length=0]) @@ -110,13 +119,13 @@ fi AC_MSG_CHECKING([whether to enable expensive tests]) AC_ARG_ENABLE([expensive-tests], - [AC_HELP_STRING([--disable-expensive-tests], + [AC_HELP_STRING([--enable-expensive-tests], [disable tests which might be expensive on some systems (default: no)])], [case "$enableval" in (yes|no) use_expensive_tests=$enableval;; - (*) AC_MSG_ERROR(['$enableval' is not a valid value for '--disable-expensive-tests']);; + (*) AC_MSG_ERROR(['$enableval' is not a valid value for '--enable-expensive-tests']);; esac], - [ use_expensive_tests=yes ]) + [ use_expensive_tests=no ]) AC_MSG_RESULT($use_expensive_tests) AC_SUBST(ENSC_USE_EXPENSIVE_TESTS, "$use_expensive_tests") @@ -129,6 +138,11 @@ AC_ARG_VAR(CC, [The C compiler]) ENSC_INITRDDIR(initrddir) ENSC_RELEASE(RELEASE_CPPFLAGS) +# HACK: This needs to be before ENSC_DIETLIBC_NEED_COMPAT, or the alternative +# syscalls will never be enabled for glibc. +ENSC_SYSCALLNR(vserver,273,[lib/syscall-fallback.h]) +ENSC_SYSCALL + dnl ########################### dnl dnl {some dietlibc related tests @@ -137,6 +151,8 @@ dnl case $host_cpu in (i*86|athlon) min_diet_ver=0.25;; (ia64|hppa*) min_diet_ver=0.29;; + (sparc*) min_diet_ver=0.30;; + (x86_64) min_diet_ver=0.27;; (*) min_diet_ver=0.28;; esac @@ -159,7 +175,6 @@ else # below. Therefore, this macro must not be called earlier. enable_static=no - ENSC_DIETLIBC_SANITYCHECK ENSC_DIETLIBC_NEED_COMPAT(USE_DIETLIBC_COMPAT) fi @@ -174,9 +189,8 @@ dnl dnl ########################## -ENSC_KERNEL_HEADERS(kernelincludedir) ENSC_UV_VROOTDIR(vserverdir) -ENSC_CHANGELOG([trunk]) +ENSC_CHANGELOG dnl ########################## @@ -204,46 +218,64 @@ dnl ########################## dnl dnl {Check for the APIs to be used dnl +AH_TEMPLATE(VC_ENABLE_API_COMPAT, [Enable support for compatibility syscall API]) +AH_TEMPLATE(VC_ENABLE_API_LEGACY, [Enable support for old, /proc parsing API]) +AH_TEMPLATE(VC_ENABLE_API_V11, [Enable support for API of vserver 1.1.x]) +AH_TEMPLATE(VC_ENABLE_API_FSCOMPAT, [Enable support for filesystem compatibility API]) +AH_TEMPLATE(VC_ENABLE_API_V13OBS, [Enable support for some obsoleted API of vserver 1.3.x]) +AH_TEMPLATE(VC_ENABLE_API_V13, [Enable support for API of vserver 1.3.x]) +AH_TEMPLATE(VC_ENABLE_API_NET, [Enable support for network context API]) +AH_TEMPLATE(VC_ENABLE_API_V21, [Enable support for API of vserver 2.1.x]) +AH_TEMPLATE(VC_ENABLE_API_OLDPROC, [Enable API for a backward compatible /proc parsing]) +AH_TEMPLATE(VC_ENABLE_API_OLDUTS, [Enable API for a backward compatible uts handling]) + AC_MSG_CHECKING([for supported APIs]) AC_ARG_ENABLE([apis], [AC_HELP_STRING([--enable-apis=APIS], - [enable support for the given apis; possible values are: legacy,compat,v11,v13,fscompat,net,ALL (default: all except 'legacy')])], + [enable support for the given apis; possible values are: legacy,compat,v11,fscompat,v13obs,v13,net, ALL,NOLEGACY (default: v13,net,v21)])], [], - [enable_apis=compat,v11,v13,fscompat,net]) + [enable_apis=v13,net,v21]) -test x"$enable_apis" != xALL || enable_apis='legacy,compat,v11,v13,fscompat,net' +test x"$enable_apis" != xALL || enable_apis='legacy,compat,v11,fscompat,v13obs,v13,net,v21' +test x"$enable_apis" != xNOLEGACY || enable_apis='compat,v11,fscompat,v13,net,v21' enable_api_oldproc= enable_api_olduts= old_IFS=$IFS IFS=,; + for i in $enable_apis; do case "$i" in - (compat) AC_DEFINE(VC_ENABLE_API_COMPAT, 1, [Enable support for compatibility syscall API]) - enable_api_oldproc=1 - enable_api_olduts=1 + (compat) AC_DEFINE(VC_ENABLE_API_COMPAT, 1) + enable_api_oldproc=${enable_api_oldproc:-1} + enable_api_olduts=${enable_api_olduts:-1} ;; - (legacy) AC_DEFINE(VC_ENABLE_API_LEGACY, 1, [Enable support for old, /proc parsing API]) - enable_api_old_proc=1 - enable_api_olduts=1 + (legacy) AC_DEFINE(VC_ENABLE_API_LEGACY, 1) + enable_api_oldproc=${enable_api_oldproc:-1} + enable_api_olduts=${enable_api_olduts:-1} ;; - (v11) AC_DEFINE(VC_ENABLE_API_V11, 1, [Enable support for API of vserver 1.1.x]) - enable_api_oldproc=1 - enable_api_olduts=1 + (v11) AC_DEFINE(VC_ENABLE_API_V11, 1) + enable_api_oldproc=${enable_api_oldproc:-1} + enable_api_olduts=${enable_api_olduts:-1} ;; - (v13) AC_DEFINE(VC_ENABLE_API_V13, 1, [Enable support for API of vserver 1.3.x]);; - (net) AC_DEFINE(VC_ENABLE_API_NET, 1, [Enable support for network context API]);; - (fscompat) AC_DEFINE(VC_ENABLE_API_FSCOMPAT, 1, [Enable support for filesystem compatibility API]);; + (fscompat) AC_DEFINE(VC_ENABLE_API_FSCOMPAT, 1);; + (v13obs) AC_DEFINE(VC_ENABLE_API_V13OBS, 1) + AC_DEFINE(VC_ENABLE_API_V13, 1);; + (v13) AC_DEFINE(VC_ENABLE_API_V13, 1);; + (net) AC_DEFINE(VC_ENABLE_API_NET, 1);; + (v21) AC_DEFINE(VC_ENABLE_API_V21, 1);; + (oldproc) enable_api_oldproc=2;; + (olduts) enable_api_olduts=2;; (*) AC_MSG_ERROR(['$i' is not a supported API]);; esac done IFS=$old_IFS if test x"$enable_api_oldproc" != x; then - AC_DEFINE(VC_ENABLE_API_OLDPROC, 1, [Enable API for a backward compatible /proc parsing]) - enable_apis="$enable_apis,oldproc" + AC_DEFINE(VC_ENABLE_API_OLDPROC, 1) + test x"$enable_api_oldproc" != x2 && enable_apis="$enable_apis,oldproc" fi if test x"$enable_api_olduts" != x; then - AC_DEFINE(VC_ENABLE_API_OLDUTS, 1, [Enable API for a backward compatible uts handling]) - enable_apis="$enable_apis,olduts" + AC_DEFINE(VC_ENABLE_API_OLDUTS, 1) + test x"$enable_api_olduts" != x2 && enable_apis="$enable_apis,olduts" fi AC_MSG_RESULT([$enable_apis]) dnl @@ -252,8 +284,6 @@ dnl dnl ########################## -ENSC_SYSCALLNR(vserver,273) -ENSC_SYSCALL ENSC_CHECK_EXT2FS_HEADER AC_CHECK_FUNCS([vserver]) AC_CHECK_DECLS(MS_MOVE,,,[#include ]) @@ -262,6 +292,14 @@ AC_CHECK_TYPES(nid_t,,,[#include ]) AC_CHECK_HEADERS([sys/capability.h]) +dnl vlogin might need -lutil +if test x"$ensc_have_dietlibc" = xno; then + AC_CHECK_FUNC([openpty],, [AC_CHECK_LIB([util], [openpty],, [AC_MSG_ERROR([ +**** +**** openpty could not be found +****])])]) +fi + dnl ######################## dnl @@ -299,6 +337,26 @@ dnl dnl ######################## +dnl Check what distro this is, use Gentoo initscripts if appropriate +AC_MSG_CHECKING([for host initscripts]) +AC_ARG_WITH(initscripts, AC_HELP_STRING([--with-initscripts=TYPE], [force host initscripts; valid values are 'gentoo' and 'sysv' (default: guess)]), [ + case "$withval" in + gentoo) ensc_with_init=gentoo;; + sysv) ensc_with_init=sysv;; + *) AC_MSG_ERROR([invalid initscripts value, only gentoo and sysv are supported]);; + esac + ], [ + if test -e /etc/gentoo-release; then + ensc_with_init=gentoo + else + ensc_with_init=sysv + fi + ]) +AC_MSG_RESULT([$ensc_with_init]) +AM_CONDITIONAL(HAVE_GENTOO_INIT, test x"$ensc_with_init" = xgentoo) +AM_CONDITIONAL(HAVE_SYSV_INIT, test x"$ensc_with_init" = xsysv) + + dnl BIG HACK! Do some autodetection here! AC_DEFINE(UTMP_GID, [22], [The utmp gid-number]) @@ -348,7 +406,6 @@ Paths: cfg-Directory: $sysconfdir/vservers initrd-Directory: $initrddir pkgstate-Directory: $localstatedir/run/vservers - Kernelheaders: $kernelincludedir vserver-Rootdir: $vserverdir " echo "$FEATURES_TXT" >FEATURES.txt diff --git a/contrib/Makefile-files b/contrib/Makefile-files index 10315af..9a9189b 100644 --- a/contrib/Makefile-files +++ b/contrib/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.5 2005/07/15 16:25:39 ensc Exp $ -*- makefile -*- +## $Id: Makefile-files 2457 2007-01-18 07:56:35Z ensc $ -*- makefile -*- ## Copyright (C) 2004 Enrico Scholz ## @@ -30,6 +30,9 @@ EXTRA_DIST += $(contrib_subst_SRCS) \ contrib/yum-2.2.1-chroot.patch \ contrib/yum-2.3.2-chroot.patch \ contrib/yum-2.3.3-chroot.patch \ - contrib/yum-2.3.4-chroot.patch + contrib/yum-2.3.4-chroot.patch \ + contrib/yum-2.6.0-chroot.patch \ + contrib/yum-2.9.6-chroot.patch \ + contrib/yum-3.0.3-chroot.patch contrib/manifest.dat: contrib/.manifest.dat.pathsubst.stamp diff --git a/contrib/manifest.dat.pathsubst b/contrib/manifest.dat.pathsubst index 6cad263..7e8461d 100644 --- a/contrib/manifest.dat.pathsubst +++ b/contrib/manifest.dat.pathsubst @@ -5,19 +5,26 @@ base @PKGLIBDIR@/functions build @PKGLIBDIR@/vserver-build.apt-rpm build @PKGLIBDIR@/vserver-build.skeleton build @PKGLIBDIR@/vserver-build.debootstrap +build @PKGLIBDIR@/vserver-build.fai build @PKGLIBDIR@/vserver-build.yum build @PKGLIBDIR@/vserver-build.rpm +build @PKGLIBDIR@/vserver-build.template +build @PKGLIBDIR@/vserver-build.rsync +build @PKGLIBDIR@/vserver-build.clone build @PKGLIBDIR@/vserver-build.functions build @PKGLIBDIR@/vserver-build.functions.apt build @PKGLIBDIR@/vserver-build.functions.rpm build @PKGLIBDIR@/vserver-build.functions.yum build @PKGLIBDIR@/vserver-build.functions.pkgmgmt build @PKGLIBDIR@/vserver-setup.functions +build @PKGLIBDIR@/magic.mime base @PKGLIBDIR@/vserver.functions base @PKGLIBDIR@/vserver.start @ENSC_HAVE_C99_COMPILER_TRUE@base @PKGLIBDIR@/vserver.start.bin base @PKGLIBDIR@/vserver.stop base @PKGLIBDIR@/vserver.suexec +base @PKGLIBDIR@/vserver.delete +sysv @PKGLIBDIR@/vserver-init.functions core @PKGLIBDIR@/util-vserver-vars build @PKGLIBDIR@/rpm-fake.so legacy @LEGACYDIR@/save_s_context @@ -35,12 +42,16 @@ legacy @LEGACYDIR@/vreboot core @PKGLIBDIR@/FEATURES.txt base @PKGLIBDIR@/defaults/mtab base @PKGLIBDIR@/defaults/vprocunhide-files +base @PKGLIBDIR@/defaults/environment build @PKGLIBDIR@/defaults/fstab build @PKGLIBDIR@/defaults/debootstrap.uri +build @PKGLIBDIR@/defaults/context.start +build @PKGLIBDIR@/defaults/debootstrap.mirror @ENSC_HAVE_C99_COMPILER_TRUE@build @PKGLIBDIR@/defaults/vunify-exclude base @PKGLIBDIR@/capchroot base @PKGLIBDIR@/chain-echo core @PKGLIBDIR@/chcontext-compat +core @PKGLIBDIR@/chbind-compat base @PKGLIBDIR@/check-unixfile base @PKGLIBDIR@/chroot-sh base @PKGLIBDIR@/exec-ulimit @@ -66,10 +77,12 @@ build @PKGLIBDIR@/vserver-build sysv @PKGLIBDIR@/vserver-wrapper base @PKGLIBDIR@/vshelper base @PKGLIBDIR@/vshelper-sync +base @PKGLIBDIR@/vsysctl sysv @PKGLIBDIR@/vsysvwrapper @ENSC_HAVE_C99_COMPILER_TRUE@build @PKGLIBDIR@/vcopy @ENSC_HAVE_C99_COMPILER_TRUE@build @PKGLIBDIR@/vunify @ENSC_HAVE_C99_COMPILER_TRUE@build @PKGLIBDIR@/vhashify +@ENSC_HAVE_C99_COMPILER_TRUE@build @PKGLIBDIR@/vclone base @PKGLIBDIR@/vservers.grabinfo.sh build @PKGLIBDIR@/distributions devel @LIBDIR@/pkgconfig/util-vserver.pc @@ -78,18 +91,24 @@ core @SBINDIR@/chcontext core @SBINDIR@/chxid base @SBINDIR@/exec-cd core @SBINDIR@/lsxid +core @SBINDIR@/naddress +core @SBINDIR@/nattribute +core @SBINDIR@/ncontext core @SBINDIR@/reducecap core @SBINDIR@/setattr core @SBINDIR@/showattr build @SBINDIR@/vapt-get -build @SBINDIR@/vyum core @SBINDIR@/vattribute core @SBINDIR@/vcontext +core @SBINDIR@/vdevmap +build @SBINDIR@/vdispatch-conf core @SBINDIR@/vdlimit -core @SBINDIR@/vnamespace base @SBINDIR@/vdu +build @SBINDIR@/vemerge +build @SBINDIR@/vesync core @SBINDIR@/vkill core @SBINDIR@/vlimit +core @SBINDIR@/vnamespace base @SBINDIR@/vps base @SBINDIR@/vpstree build @SBINDIR@/vrpm @@ -102,13 +121,15 @@ base @SBINDIR@/vserver-stat base @SBINDIR@/vsomething base @SBINDIR@/vtop core @SBINDIR@/vuname +build @SBINDIR@/vupdateworld core @SBINDIR@/vwait +build @SBINDIR@/vyum devel @INCLUDEDIR@/vserver.h core @MANDIR@/*/chbind* core @MANDIR@/*/chcontext* core @MANDIR@/*/reducecap* legacy @MANDIR@/*/distrib-info* -build @MANDIR@/*/vserver-copy* +legacy @MANDIR@/*/vserver-copy* legacy @MANDIR@/*/rebootmgr* legacy @MANDIR@/*/vps.* base @MANDIR@/*/vpstree.* @@ -125,6 +146,7 @@ legacy @CONFIG@ @INITRDDIR@/v_sshd legacy @CONFIG@ @INITRDDIR@/v_xinetd sysv @CONFIG@ @INITRDDIR@/vprocunhide sysv @CONFIG@ @INITRDDIR@/vservers-default +sysv @CONFIG@ @INITRDDIR@/util-vserver legacy @CONFIG@ @INITRDDIR@/rebootmgr legacy @CONFIG@ @INITRDDIR@/vservers-legacy legacy @CONFIG_NOREPLACE@ @SYSCONFDIR@/vservers.conf @@ -139,4 +161,3 @@ core @SBINDIR@/vcached core @SYSCONFDIR@/cron.d/vcached core @SYSCONFDIR@/logrotate.d/vcached legacy @PKGLIBDIR@/defaults/sample.conf -@ENSC_HAVE_CXX_COMPILER_TRUE@legacy @PKGLIBDIR@/vbuild diff --git a/contrib/yum-2.6.0-chroot.patch b/contrib/yum-2.6.0-chroot.patch new file mode 100644 index 0000000..1122668 --- /dev/null +++ b/contrib/yum-2.6.0-chroot.patch @@ -0,0 +1,183 @@ +--- yum-2.6.0/docs/yum.conf.5.chroot 2006-03-07 04:40:08.000000000 +0100 ++++ yum-2.6.0/docs/yum.conf.5 2006-03-26 13:21:35.000000000 +0200 +@@ -23,8 +23,10 @@ + following options: + + .IP \fBcachedir\fR +-Directory where yum should store its cache and db files. The default is +-`/var/cache/yum'. ++Directory where yum should store its cache and db files. The default ++is `/var/cache/yum'. Unless the prefixes `hostfs://' or `chrootfs://' ++are used, some magic will be applied to determine the real path in ++combination with `--installroot'. + + .IP \fBkeepcache\fR + Either `1' or `0'. Determines whether or not yum keeps the cache +@@ -40,6 +42,10 @@ + repositories defined in /etc/yum.conf to form the complete set of repositories + that yum will use. + ++Unless the prefixes `hostfs://' or `chrootfs://' are used, some magic ++will be applied to determine the real path in combination with ++`--installroot'. ++ + .IP \fBdebuglevel\fR + Debug message output level. Practical range is 0\-10. Default is `2'. + +@@ -47,7 +53,10 @@ + Error message output level. Practical range is 0\-10. Default is `2'. + + .IP \fBlogfile\fR +-Full directory and file name for where yum should write its log file. ++Full directory and file name for where yum should write its log ++file. Unless the prefixes `hostfs://' or `chrootfs://' are used, ++some magic will be applied to determine the real path in combination ++with `--installroot'. + + .IP \fBgpgcheck\fR + Either `1' or `0'. This tells yum whether or not it should perform a GPG +--- yum-2.6.0/yum/__init__.py.chroot 2006-03-07 05:38:00.000000000 +0100 ++++ yum-2.6.0/yum/__init__.py 2006-03-26 13:21:35.000000000 +0200 +@@ -125,8 +125,7 @@ + # (typically /etc/yum.repos.d and /etc/yum/repos.d) + parser = config.IncludedDirConfigParser(vars=self.yumvar) + for reposdir in self.conf.reposdir: +- if os.path.exists(self.conf.installroot+'/'+reposdir): +- reposdir = self.conf.installroot + '/' + reposdir ++ reposdir = self.conf.getRootedPath(reposdir) + + if os.path.isdir(reposdir): + #XXX: why can't we just pass the list of files? +@@ -482,16 +481,14 @@ + + self.log(2, 'Finished') + +- def doLock(self, lockfile): ++ def doLock(self): + """perform the yum locking, raise yum-based exceptions, not OSErrors""" + + # if we're not root then we don't lock - just return nicely + if self.conf.uid != 0: + return + +- root = self.conf.installroot +- lockfile = root + '/' + lockfile # lock in the chroot +- lockfile = os.path.normpath(lockfile) # get rid of silly preceding extra / ++ lockfile = self.conf.lockfile + + mypid=str(os.getpid()) + while not self._lock(lockfile, mypid, 0644): +@@ -515,15 +518,14 @@ + msg = 'Existing lock %s: another copy is running. Aborting.' % lockfile + raise Errors.LockError(0, msg) + +- def doUnlock(self, lockfile): ++ def doUnlock(self): + """do the unlock for yum""" + + # if we're not root then we don't lock - just return nicely + if self.conf.uid != 0: + return + +- root = self.conf.installroot +- lockfile = root + '/' + lockfile # lock in the chroot ++ lockfile=self.conf.lockfile + + self._unlock(lockfile) + +--- yum-2.6.0/yum/config.py.chroot 2006-03-07 04:40:08.000000000 +0100 ++++ yum-2.6.0/yum/config.py 2006-03-26 13:22:41.000000000 +0200 +@@ -450,6 +450,27 @@ + else: + raise Errors.ConfigError, 'No such option %s' % option + ++ def getRootedPath(self, path, enforce_default=False, defaults_to_host=False): ++ instroot = getattr(self, 'installroot', None) ++ if instroot==None: ++ return path ++ ++ if path.startswith('hostfs://'): res = path[9:] ++ elif path.startswith('chrootfs://'): res = instroot + '/' + path[11:] ++ else: ++ tmp = instroot + '/' +path ++ ++ if enforce_default: ++ if defaults_to_host: res = path ++ else: res = tmp ++ else: ++ if os.path.exists(tmp): res = tmp ++ elif defaults_to_host: res = path ++ else: res = tmp ++ ++ return res ++ ++ + class EarlyConf(BaseConfig): + ''' + Configuration option definitions for yum.conf's [main] section that are +@@ -474,6 +495,7 @@ + cachedir = Option('/var/cache/yum') + keepcache = BoolOption(True) + logfile = Option('/var/log/yum.log') ++ lockfile = Option('/var/run/yum.pid') + reposdir = ListOption(['/etc/yum/repos.d', '/etc/yum.repos.d']) + syslog_ident = Option() + syslog_facility = Option('LOG_DAEMON') +@@ -580,9 +602,9 @@ + yumconf.populate(confparser, 'main') + + # Apply the installroot to directory options +- for option in ('cachedir', 'logfile'): ++ for option in ('cachedir', 'logfile', 'lockfile'): + path = getattr(yumconf, option) +- setattr(yumconf, option, yumconf.installroot + path) ++ setattr(yumconf, option, yumconf.getRootedPath(path)) + + # Check that plugin paths are all absolute + for path in yumconf.pluginpath: +--- yum-2.6.0/cli.py.chroot 2006-02-22 22:16:13.000000000 +0100 ++++ yum-2.6.0/cli.py 2006-03-26 13:21:35.000000000 +0200 +@@ -112,7 +112,7 @@ + action="store_true", default=False, + help="run entirely from cache, don't update cache") + self.optparser.add_option("-c", "", dest="conffile", action="store", +- default='/etc/yum.conf', help="config file location", ++ default=None, help="config file location", + metavar=' [config file]') + self.optparser.add_option("-R", "", dest="sleeptime", action="store", + type='int', default=None, help="maximum command wait time", +@@ -165,9 +165,12 @@ + try: + # If the conf file is inside the installroot - use that. + # otherwise look for it in the normal root +- if opts.installroot: +- if os.access(opts.installroot+'/'+opts.conffile, os.R_OK): ++ if opts.conffile==None: ++ opts.conffile = '/etc/yum.conf' ++ if opts.installroot and os.access(opts.installroot+'/'+opts.conffile, os.R_OK): + opts.conffile = opts.installroot+'/'+opts.conffile ++ ++ if opts.installroot: + root=opts.installroot + else: + root = '/' +--- yum-2.6.0/yummain.py.chroot 2005-12-13 09:35:41.000000000 +0100 ++++ yum-2.6.0/yummain.py 2006-03-26 13:21:35.000000000 +0200 +@@ -60,7 +60,7 @@ + def unlock(): + try: + base.closeRpmDB() +- base.doUnlock(YUM_PID_FILE) ++ base.doUnlock() + except Errors.LockError, e: + sys.exit(200) + +@@ -83,7 +83,7 @@ + except Errors.YumBaseError, e: + exFatal(e) + try: +- base.doLock(YUM_PID_FILE) ++ base.doLock() + except Errors.LockError, e: + base.errorlog(0,'%s' % e.msg) + sys.exit(200) diff --git a/contrib/yum-2.9.6-chroot.patch b/contrib/yum-2.9.6-chroot.patch new file mode 100644 index 0000000..56b8410 --- /dev/null +++ b/contrib/yum-2.9.6-chroot.patch @@ -0,0 +1,187 @@ +diff -Nurp yum-2.9.6.orig/cli.py yum-2.9.6/cli.py +--- yum-2.9.6.orig/cli.py 2006-09-06 06:15:49.000000000 +0200 ++++ yum-2.9.6/cli.py 2006-09-25 09:08:06.000000000 +0200 +@@ -123,7 +123,7 @@ yum [options] < update | install | info + action="store_true", default=False, + help="run entirely from cache, don't update cache") + self.optparser.add_option("-c", "", dest="conffile", action="store", +- default='/etc/yum.conf', help="config file location", ++ default=None, help="config file location", + metavar=' [config file]') + self.optparser.add_option("-R", "", dest="sleeptime", action="store", + type='int', default=None, help="maximum command wait time", +@@ -175,9 +175,12 @@ yum [options] < update | install | info + + # If the conf file is inside the installroot - use that. + # otherwise look for it in the normal root +- if opts.installroot: +- if os.access(opts.installroot+'/'+opts.conffile, os.R_OK): ++ if opts.conffile==None: ++ opts.conffile = '/etc/yum.conf' ++ if opts.installroot and os.access(opts.installroot+'/'+opts.conffile, os.R_OK): + opts.conffile = opts.installroot+'/'+opts.conffile ++ ++ if opts.installroot: + root=opts.installroot + else: + root = '/' +diff -Nurp yum-2.9.6.orig/docs/yum.conf.5 yum-2.9.6/docs/yum.conf.5 +--- yum-2.9.6.orig/docs/yum.conf.5 2006-06-19 03:28:22.000000000 +0200 ++++ yum-2.9.6/docs/yum.conf.5 2006-09-25 09:02:50.000000000 +0200 +@@ -23,8 +23,10 @@ The [main] section must exist for yum to + following options: + + .IP \fBcachedir\fR +-Directory where yum should store its cache and db files. The default is +-`/var/cache/yum'. ++Directory where yum should store its cache and db files. The default ++is `/var/cache/yum'. Unless the prefixes `hostfs://' or `chrootfs://' ++are used, some magic will be applied to determine the real path in ++combination with `--installroot'. + + .IP \fBkeepcache\fR + Either `1' or `0'. Determines whether or not yum keeps the cache +@@ -40,6 +42,10 @@ documented in \fB[repository] options\fR + repositories defined in /etc/yum.conf to form the complete set of repositories + that yum will use. + ++Unless the prefixes `hostfs://' or `chrootfs://' are used, some magic ++will be applied to determine the real path in combination with ++`--installroot'. ++ + .IP \fBdebuglevel\fR + Debug message output level. Practical range is 0\-10. Default is `2'. + +@@ -47,7 +53,10 @@ Debug message output level. Practical ra + Error message output level. Practical range is 0\-10. Default is `2'. + + .IP \fBlogfile\fR +-Full directory and file name for where yum should write its log file. ++Full directory and file name for where yum should write its log ++file. Unless the prefixes `hostfs://' or `chrootfs://' are used, ++some magic will be applied to determine the real path in combination ++with `--installroot'. + + .IP \fBgpgcheck\fR + Either `1' or `0'. This tells yum whether or not it should perform a GPG +diff -Nurp yum-2.9.6.orig/yum/config.py yum-2.9.6/yum/config.py +--- yum-2.9.6.orig/yum/config.py 2006-06-19 03:28:22.000000000 +0200 ++++ yum-2.9.6/yum/config.py 2006-09-25 09:12:36.000000000 +0200 +@@ -481,6 +481,26 @@ class StartupConf(BaseConfig): + pluginpath = ListOption(['/usr/lib/yum-plugins']) + pluginconfpath = ListOption(['/etc/yum/pluginconf.d']) + ++ def getRootedPath(self, path, enforce_default=False, defaults_to_host=False): ++ instroot = getattr(self, 'installroot', None) ++ if instroot==None: ++ return path ++ ++ if path.startswith('hostfs://'): res = path[9:] ++ elif path.startswith('chrootfs://'): res = instroot + '/' + path[11:] ++ else: ++ tmp = instroot + '/' + path ++ ++ if enforce_default: ++ if defaults_to_host: res = path ++ else: res = tmp ++ else: ++ if os.path.exists(tmp): res = tmp ++ elif defaults_to_host: res = path ++ else: res = tmp ++ ++ return res ++ + class YumConf(StartupConf): + ''' + Configuration option definitions for yum.conf\'s [main] section. +@@ -493,6 +513,7 @@ class YumConf(StartupConf): + cachedir = Option('/var/cache/yum') + keepcache = BoolOption(True) + logfile = Option('/var/log/yum.log') ++ lockfile = Option('/var/run/yum.pid') + reposdir = ListOption(['/etc/yum/repos.d', '/etc/yum.repos.d']) + syslog_ident = Option() + syslog_facility = Option('LOG_DAEMON') +@@ -616,9 +637,9 @@ def readMainConfig(startupconf): + yumconf.populate(startupconf._parser, 'main') + + # Apply the installroot to directory options +- for option in ('cachedir', 'logfile'): ++ for option in ('cachedir', 'logfile', 'lockfile'): + path = getattr(yumconf, option) +- setattr(yumconf, option, yumconf.installroot + path) ++ setattr(yumconf, option, yumconf.getRootedPath(path)) + + # Add in some extra attributes which aren't actually configuration values + yumconf.yumvar = vars +diff -Nurp yum-2.9.6.orig/yum/__init__.py yum-2.9.6/yum/__init__.py +--- yum-2.9.6.orig/yum/__init__.py 2006-09-06 06:18:20.000000000 +0200 ++++ yum-2.9.6/yum/__init__.py 2006-09-25 09:02:50.000000000 +0200 +@@ -171,8 +171,7 @@ class YumBase(depsolve.Depsolve): + # (typically /etc/yum.repos.d and /etc/yum/repos.d) + parser = config.IncludedDirConfigParser(vars=self.yumvar) + for reposdir in self.conf.reposdir: +- if os.path.exists(self.conf.installroot+'/'+reposdir): +- reposdir = self.conf.installroot + '/' + reposdir ++ reposdir = self.conf.getRootedPath(reposdir) + + if os.path.isdir(reposdir): + #XXX: why can't we just pass the list of files? +@@ -502,16 +501,14 @@ class YumBase(depsolve.Depsolve): + + self.verbose_logger.log(logginglevels.INFO_2, 'Finished') + +- def doLock(self, lockfile): ++ def doLock(self): + """perform the yum locking, raise yum-based exceptions, not OSErrors""" + + # if we're not root then we don't lock - just return nicely + if self.conf.uid != 0: + return + +- root = self.conf.installroot +- lockfile = root + '/' + lockfile # lock in the chroot +- lockfile = os.path.normpath(lockfile) # get rid of silly preceding extra / ++ lockfile = self.conf.lockfile + + mypid=str(os.getpid()) + while not self._lock(lockfile, mypid, 0644): +@@ -537,15 +540,14 @@ class YumBase(depsolve.Depsolve): + msg = 'Existing lock %s: another copy is running. Aborting.' % lockfile + raise Errors.LockError(0, msg) + +- def doUnlock(self, lockfile): ++ def doUnlock(self): + """do the unlock for yum""" + + # if we're not root then we don't lock - just return nicely + if self.conf.uid != 0: + return + +- root = self.conf.installroot +- lockfile = root + '/' + lockfile # lock in the chroot ++ lockfile=self.conf.lockfile + + self._unlock(lockfile) + +diff -Nurp yum-2.9.6.orig/yummain.py yum-2.9.6/yummain.py +--- yum-2.9.6.orig/yummain.py 2006-08-19 22:04:33.000000000 +0200 ++++ yum-2.9.6/yummain.py 2006-09-25 09:02:50.000000000 +0200 +@@ -62,7 +62,7 @@ def main(args): + def unlock(): + try: + base.closeRpmDB() +- base.doUnlock(YUM_PID_FILE) ++ base.doUnlock() + except Errors.LockError, e: + sys.exit(200) + +@@ -88,7 +88,7 @@ def main(args): + except Errors.YumBaseError, e: + exFatal(e) + try: +- base.doLock(YUM_PID_FILE) ++ base.doLock() + except Errors.LockError, e: + logger.critical('%s', e.msg) + sys.exit(200) diff --git a/depcomp b/depcomp index ffcd540..04701da 100755 --- a/depcomp +++ b/depcomp @@ -1,7 +1,7 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2005-02-09.22 +scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. @@ -17,8 +17,8 @@ scriptversion=2005-02-09.22 # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -467,7 +467,8 @@ cpp) done "$@" -E | - sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" diff --git a/distrib/Makefile.am b/distrib/Makefile.am index 2368029..852d2e0 100644 --- a/distrib/Makefile.am +++ b/distrib/Makefile.am @@ -21,16 +21,22 @@ distribdir = $(pkglibdir)/distributions confdistribdir = $(confdir)/.distributions confdefaultsdir = $(confdir)/.defaults -defaults_DATA = misc/debootstrap.uri \ +defaults_DATA = misc/debootstrap.mirror \ + misc/debootstrap.uri \ misc/fstab \ misc/mtab \ misc/vprocunhide-files \ misc/vunify-exclude \ + misc/environment \ + misc/context.start \ sample.conf nobase_distrib_SCRIPTS = redhat/initpost \ redhat/initpre \ - redhat/rc.sysinit + redhat/rc.sysinit \ + gentoo/initpost \ + gentoo/initpre \ + etch/initpost nobase_distrib_DATA = defaults/devs \ defaults/apt.conf \ @@ -41,19 +47,34 @@ nobase_distrib_DATA = defaults/devs \ fc1/apt/rpmpriorities fc1/pkgs/01 fc1/pkgs/02 \ fc2/apt/rpmpriorities fc2/pkgs/01 fc2/pkgs/02 \ fc3/apt/rpmpriorities fc3/pkgs/01 fc3/pkgs/02 fc3/pkgs/03 \ - fc3/yum/yum.conf $(wildcard fc3/yum.repos.d/fedora*.repo) \ + fc3/yum/yum.conf $(wildcard fc3/yum.repos.d/*.repo) \ $(wildcard fc3/rpmlist.d/*.lst) $(wildcard fc3/rpmlist.d/*.opt) \ fc4/apt/rpmpriorities fc4/pkgs/01 fc4/pkgs/02 fc4/pkgs/03 \ - fc4/yum/yum.conf $(wildcard fc4/yum.repos.d/fedora*.repo) \ + fc4/yum/yum.conf $(wildcard fc4/yum.repos.d/*.repo) \ $(wildcard fc4/rpmlist.d/*.lst) $(wildcard fc4/rpmlist.d/*.opt) \ + fc5/apt/rpmpriorities fc5/pkgs/01 fc5/pkgs/02 fc5/pkgs/03 \ + fc5/yum/yum.conf $(wildcard fc5/yum.repos.d/*.repo) \ + $(wildcard fc5/rpmlist.d/*.lst) $(wildcard fc5/rpmlist.d/*.opt) \ + fc6/apt/rpmpriorities fc6/pkgs/01 fc6/pkgs/02 fc6/pkgs/03 \ + fc6/yum/yum.conf $(wildcard fc6/yum.repos.d/*.repo) \ + $(wildcard fc6/rpmlist.d/*.lst) $(wildcard fc6/rpmlist.d/*.opt) \ + centos4/pkgs/01 centos4/pkgs/02 centos4/pkgs/03 \ + centos4/yum/yum.conf $(wildcard centos4/yum.repos.d/*.repo) \ + centos5/pkgs/01 centos5/pkgs/02 centos5/pkgs/03 \ + centos5/yum/yum.conf $(wildcard centos5/yum.repos.d/*.repo) \ suse91/apt/rpmpriorities suse91/pkgs/01 suse91/pkgs/02 \ - suse91/rpm/macros + suse91/rpm/macros \ + gentoo/init-vserver.sh gentoo/net.vserver \ + gentoo/reboot.sh gentoo/shutdown.sh \ + etch/vserver-config.sh nobase_confdistrib_DATA = rh9/apt/sources.list \ fc1/apt/sources.list \ fc2/apt/sources.list \ fc3/apt/sources.list \ fc4/apt/sources.list \ + fc5/apt/sources.list \ + fc6/apt/sources.list \ suse91/apt/sources.list AM_INSTALLCHECK_STD_OPTIONS_EXEMPT \ @@ -64,7 +85,7 @@ EXTRA_DIST = $(nobase_distrib_DATA) \ $(nobase_confdistrib_DATA) \ $(defaults_DATA) -redhat_style = rh9 fc1 fc2 fc3 fc4 +redhat_style = rh9 fc1 fc2 fc3 fc4 fc5 fc6 centos4 centos5 install-exec-hook: install-notify-xtra install-data-hook: install-data-xtras diff --git a/distrib/Makefile.in b/distrib/Makefile.in index 344547c..e5f098f 100644 --- a/distrib/Makefile.in +++ b/distrib/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -48,7 +48,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ensc_cflags.m4 \ $(top_srcdir)/m4/ensc_dietlibc_compat.m4 \ $(top_srcdir)/m4/ensc_e2fscheck.m4 \ $(top_srcdir)/m4/ensc_initrddir.m4 \ - $(top_srcdir)/m4/ensc_kerneldir.m4 \ $(top_srcdir)/m4/ensc_pathprog.m4 \ $(top_srcdir)/m4/ensc_personality.m4 \ $(top_srcdir)/m4/ensc_release.m4 \ @@ -88,6 +87,7 @@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +BZIP2 = @BZIP2@ CAT = @CAT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -95,10 +95,9 @@ CFLAGS = @CFLAGS@ CHOWN = @CHOWN@ CMP = @CMP@ CP = @CP@ +CPIO = @CPIO@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CVS2CL = @CVS2CL@ -CVS2CL_TAG = @CVS2CL_TAG@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -135,12 +134,16 @@ ENV = @ENV@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +FILE = @FILE@ GPG_KEY = @GPG_KEY@ GREP = @GREP@ -HAVE_CVS2CL_FALSE = @HAVE_CVS2CL_FALSE@ -HAVE_CVS2CL_TRUE = @HAVE_CVS2CL_TRUE@ -HAVE_RCS2LOG_FALSE = @HAVE_RCS2LOG_FALSE@ -HAVE_RCS2LOG_TRUE = @HAVE_RCS2LOG_TRUE@ +GZIP = @GZIP@ +HAVE_GENTOO_INIT_FALSE = @HAVE_GENTOO_INIT_FALSE@ +HAVE_GENTOO_INIT_TRUE = @HAVE_GENTOO_INIT_TRUE@ +HAVE_SVN2CL_FALSE = @HAVE_SVN2CL_FALSE@ +HAVE_SVN2CL_TRUE = @HAVE_SVN2CL_TRUE@ +HAVE_SYSV_INIT_FALSE = @HAVE_SYSV_INIT_FALSE@ +HAVE_SYSV_INIT_TRUE = @HAVE_SYSV_INIT_TRUE@ HAVE_XSLTPROC_FALSE = @HAVE_XSLTPROC_FALSE@ HAVE_XSLTPROC_TRUE = @HAVE_XSLTPROC_TRUE@ HAVE_XSLTP_FALSE = @HAVE_XSLTP_FALSE@ @@ -187,16 +190,18 @@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ -RCS2LOG = @RCS2LOG@ RELEASE_CPPFLAGS = @RELEASE_CPPFLAGS@ +RESTORE = @RESTORE@ RM = @RM@ RMDIR = @RMDIR@ RMMOD = @RMMOD@ +RSYNC = @RSYNC@ SED = @SED@ SET_MAKE = @SET_MAKE@ SH = @SH@ SHELL = @SHELL@ STRIP = @STRIP@ +SVN2CL = @SVN2CL@ TAC = @TAC@ TAR = @TAR@ TOUCH = @TOUCH@ @@ -244,7 +249,6 @@ includedir = @includedir@ infodir = @infodir@ initrddir = @initrddir@ install_sh = @install_sh@ -kernelincludedir = @kernelincludedir@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ @@ -267,16 +271,22 @@ defaultsdir = $(pkglibdir)/defaults distribdir = $(pkglibdir)/distributions confdistribdir = $(confdir)/.distributions confdefaultsdir = $(confdir)/.defaults -defaults_DATA = misc/debootstrap.uri \ +defaults_DATA = misc/debootstrap.mirror \ + misc/debootstrap.uri \ misc/fstab \ misc/mtab \ misc/vprocunhide-files \ misc/vunify-exclude \ + misc/environment \ + misc/context.start \ sample.conf nobase_distrib_SCRIPTS = redhat/initpost \ redhat/initpre \ - redhat/rc.sysinit + redhat/rc.sysinit \ + gentoo/initpost \ + gentoo/initpre \ + etch/initpost nobase_distrib_DATA = defaults/devs \ defaults/apt.conf \ @@ -287,19 +297,34 @@ nobase_distrib_DATA = defaults/devs \ fc1/apt/rpmpriorities fc1/pkgs/01 fc1/pkgs/02 \ fc2/apt/rpmpriorities fc2/pkgs/01 fc2/pkgs/02 \ fc3/apt/rpmpriorities fc3/pkgs/01 fc3/pkgs/02 fc3/pkgs/03 \ - fc3/yum/yum.conf $(wildcard fc3/yum.repos.d/fedora*.repo) \ + fc3/yum/yum.conf $(wildcard fc3/yum.repos.d/*.repo) \ $(wildcard fc3/rpmlist.d/*.lst) $(wildcard fc3/rpmlist.d/*.opt) \ fc4/apt/rpmpriorities fc4/pkgs/01 fc4/pkgs/02 fc4/pkgs/03 \ - fc4/yum/yum.conf $(wildcard fc4/yum.repos.d/fedora*.repo) \ + fc4/yum/yum.conf $(wildcard fc4/yum.repos.d/*.repo) \ $(wildcard fc4/rpmlist.d/*.lst) $(wildcard fc4/rpmlist.d/*.opt) \ + fc5/apt/rpmpriorities fc5/pkgs/01 fc5/pkgs/02 fc5/pkgs/03 \ + fc5/yum/yum.conf $(wildcard fc5/yum.repos.d/*.repo) \ + $(wildcard fc5/rpmlist.d/*.lst) $(wildcard fc5/rpmlist.d/*.opt) \ + fc6/apt/rpmpriorities fc6/pkgs/01 fc6/pkgs/02 fc6/pkgs/03 \ + fc6/yum/yum.conf $(wildcard fc6/yum.repos.d/*.repo) \ + $(wildcard fc6/rpmlist.d/*.lst) $(wildcard fc6/rpmlist.d/*.opt) \ + centos4/pkgs/01 centos4/pkgs/02 centos4/pkgs/03 \ + centos4/yum/yum.conf $(wildcard centos4/yum.repos.d/*.repo) \ + centos5/pkgs/01 centos5/pkgs/02 centos5/pkgs/03 \ + centos5/yum/yum.conf $(wildcard centos5/yum.repos.d/*.repo) \ suse91/apt/rpmpriorities suse91/pkgs/01 suse91/pkgs/02 \ - suse91/rpm/macros + suse91/rpm/macros \ + gentoo/init-vserver.sh gentoo/net.vserver \ + gentoo/reboot.sh gentoo/shutdown.sh \ + etch/vserver-config.sh nobase_confdistrib_DATA = rh9/apt/sources.list \ fc1/apt/sources.list \ fc2/apt/sources.list \ fc3/apt/sources.list \ fc4/apt/sources.list \ + fc5/apt/sources.list \ + fc6/apt/sources.list \ suse91/apt/sources.list EXTRA_DIST = $(nobase_distrib_DATA) \ @@ -307,7 +332,7 @@ EXTRA_DIST = $(nobase_distrib_DATA) \ $(nobase_confdistrib_DATA) \ $(defaults_DATA) -redhat_style = rh9 fc1 fc2 fc3 fc4 +redhat_style = rh9 fc1 fc2 fc3 fc4 fc5 fc6 centos4 centos5 all: all-am .SUFFIXES: @@ -454,7 +479,7 @@ CTAGS: distdir: $(DISTFILES) - $(mkdir_p) $(distdir)/../m4 $(distdir)/defaults $(distdir)/defaults/apt $(distdir)/defaults/rpm $(distdir)/fc1/apt $(distdir)/fc1/pkgs $(distdir)/fc2/apt $(distdir)/fc2/pkgs $(distdir)/fc3/apt $(distdir)/fc3/pkgs $(distdir)/fc3/rpmlist.d $(distdir)/fc3/yum $(distdir)/fc3/yum.repos.d $(distdir)/fc4/apt $(distdir)/fc4/pkgs $(distdir)/fc4/rpmlist.d $(distdir)/fc4/yum $(distdir)/fc4/yum.repos.d $(distdir)/misc $(distdir)/redhat $(distdir)/rh9/apt $(distdir)/rh9/pkgs $(distdir)/suse91/apt $(distdir)/suse91/pkgs $(distdir)/suse91/rpm $(distdir)/template + $(mkdir_p) $(distdir)/../m4 $(distdir)/centos4/pkgs $(distdir)/centos4/yum $(distdir)/centos4/yum.repos.d $(distdir)/centos5/pkgs $(distdir)/centos5/yum $(distdir)/centos5/yum.repos.d $(distdir)/defaults $(distdir)/defaults/apt $(distdir)/defaults/rpm $(distdir)/etch $(distdir)/fc1/apt $(distdir)/fc1/pkgs $(distdir)/fc2/apt $(distdir)/fc2/pkgs $(distdir)/fc3/apt $(distdir)/fc3/pkgs $(distdir)/fc3/rpmlist.d $(distdir)/fc3/yum $(distdir)/fc3/yum.repos.d $(distdir)/fc4/apt $(distdir)/fc4/pkgs $(distdir)/fc4/rpmlist.d $(distdir)/fc4/yum $(distdir)/fc4/yum.repos.d $(distdir)/fc5/apt $(distdir)/fc5/pkgs $(distdir)/fc5/rpmlist.d $(distdir)/fc5/yum $(distdir)/fc5/yum.repos.d $(distdir)/fc6/apt $(distdir)/fc6/pkgs $(distdir)/fc6/rpmlist.d $(distdir)/fc6/yum $(distdir)/fc6/yum.repos.d $(distdir)/gentoo $(distdir)/misc $(distdir)/redhat $(distdir)/rh9/apt $(distdir)/rh9/pkgs $(distdir)/suse91/apt $(distdir)/suse91/pkgs $(distdir)/suse91/rpm $(distdir)/template @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ diff --git a/distrib/centos4/pkgs/01 b/distrib/centos4/pkgs/01 new file mode 100644 index 0000000..1a5ef72 --- /dev/null +++ b/distrib/centos4/pkgs/01 @@ -0,0 +1 @@ +glibc diff --git a/distrib/centos4/pkgs/02 b/distrib/centos4/pkgs/02 new file mode 100644 index 0000000..9ec5d2b --- /dev/null +++ b/distrib/centos4/pkgs/02 @@ -0,0 +1,3 @@ +--reinstall + +filesystem diff --git a/distrib/centos4/pkgs/03 b/distrib/centos4/pkgs/03 new file mode 100644 index 0000000..64ab4a7 --- /dev/null +++ b/distrib/centos4/pkgs/03 @@ -0,0 +1,2 @@ +coreutils +setup diff --git a/distrib/centos4/yum.repos.d/CentOS-Base.repo b/distrib/centos4/yum.repos.d/CentOS-Base.repo new file mode 100644 index 0000000..5c1dae3 --- /dev/null +++ b/distrib/centos4/yum.repos.d/CentOS-Base.repo @@ -0,0 +1,50 @@ +[base] +name=CentOS-4 - Base +baseurl=http://mirror.centos.org/centos/4/os/$basearch/ +gpgcheck=1 +gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 + +#released updates +[update] +name=CentOS-4 - Updates +baseurl=http://mirror.centos.org/centos/4/updates/$basearch/ +gpgcheck=1 +gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 + +#packages used/produced in the build but not released +[addons] +name=CentOS-4 - Addons +baseurl=http://mirror.centos.org/centos/4/addons/$basearch/ +gpgcheck=1 +gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 + +#additional packages that may be useful +[extras] +name=CentOS-4 - Extras +baseurl=http://mirror.centos.org/centos/4/extras/$basearch/ +gpgcheck=1 +gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 + +#additional packages that extend functionality of existing packages +[centosplus] +name=CentOS-4 - Plus +baseurl=http://mirror.centos.org/centos/4/centosplus/$basearch/ +gpgcheck=1 +enabled=0 +gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 + +#contrib - packages by Centos Users +[contrib] +name=CentOS-4 - Contrib +baseurl=http://mirror.centos.org/centos/4/contrib/$basearch/ +gpgcheck=1 +enabled=0 +gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 + +#packages in testing +[testing] +name=CentOS-4 - Testing +baseurl=http://mirror.centos.org/centos/4/testing/$basearch/ +gpgcheck=1 +enabled=0 +gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 diff --git a/distrib/centos4/yum/yum.conf b/distrib/centos4/yum/yum.conf new file mode 100644 index 0000000..952f111 --- /dev/null +++ b/distrib/centos4/yum/yum.conf @@ -0,0 +1,10 @@ +[main] +cachedir=@YUMCACHEDIR@ +reposdir=@YUMETCDIR@/yum.repos.d +debuglevel=1 +logfile=@YUMLOGDIR@/log +lockfile=@YUMLOCKDIR@/yum.pid +pkgpolicy=newest +distroverpkg=centos-release +installonlypkgs= +exactarch=0 diff --git a/distrib/fc3/yum/yum.conf b/distrib/fc3/yum/yum.conf index 814df15..1d21cd1 100644 --- a/distrib/fc3/yum/yum.conf +++ b/distrib/fc3/yum/yum.conf @@ -6,3 +6,5 @@ logfile=@YUMLOGDIR@/log lockfile=@YUMLOCKDIR@/yum.pid pkgpolicy=newest distroverpkg=fedora-release +installonlypkgs= +exactarch=0 diff --git a/distrib/fc4/yum/yum.conf b/distrib/fc4/yum/yum.conf index 814df15..1d21cd1 100644 --- a/distrib/fc4/yum/yum.conf +++ b/distrib/fc4/yum/yum.conf @@ -6,3 +6,5 @@ logfile=@YUMLOGDIR@/log lockfile=@YUMLOCKDIR@/yum.pid pkgpolicy=newest distroverpkg=fedora-release +installonlypkgs= +exactarch=0 diff --git a/distrib/fc5/apt/rpmpriorities b/distrib/fc5/apt/rpmpriorities new file mode 100644 index 0000000..f4a90e2 --- /dev/null +++ b/distrib/fc5/apt/rpmpriorities @@ -0,0 +1,7 @@ +Essential: + basesystem + coreutils + filesystem + glibc + setup + fedora-release diff --git a/distrib/fc5/apt/sources.list b/distrib/fc5/apt/sources.list new file mode 100644 index 0000000..b833d31 --- /dev/null +++ b/distrib/fc5/apt/sources.list @@ -0,0 +1,7 @@ +# rpm http://ftp.ultra.csn.tu-chemnitz.de/pub/mirror/fedora/core/.apt 3/i386 os patches updates + +# rpm ftp://ftp.ussg.iu.edu/pub/linux/fedora/fedora/fedora 3/i386 os updates +# rpm ftp://ftp.tu-chemnitz.de/pub/linux/fedora/fedora 3/i386 os updates +# rpm http://mirrors.usc.edu/pub/linux/fedora/fedora/fedora 3/i386 os updates +# rpm http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/fedora/fedora 3/i386 os updates +# rpm http://download.fedora.us/fedora/fedora 3/i386 os updates diff --git a/distrib/fc5/pkgs/01 b/distrib/fc5/pkgs/01 new file mode 100644 index 0000000..1a5ef72 --- /dev/null +++ b/distrib/fc5/pkgs/01 @@ -0,0 +1 @@ +glibc diff --git a/distrib/fc5/pkgs/02 b/distrib/fc5/pkgs/02 new file mode 100644 index 0000000..9ec5d2b --- /dev/null +++ b/distrib/fc5/pkgs/02 @@ -0,0 +1,3 @@ +--reinstall + +filesystem diff --git a/distrib/fc5/pkgs/03 b/distrib/fc5/pkgs/03 new file mode 100644 index 0000000..218b1e6 --- /dev/null +++ b/distrib/fc5/pkgs/03 @@ -0,0 +1,2 @@ +coreutils +initscripts diff --git a/distrib/fc5/rpmlist.d/00.lst b/distrib/fc5/rpmlist.d/00.lst new file mode 100644 index 0000000..85a9617 --- /dev/null +++ b/distrib/fc5/rpmlist.d/00.lst @@ -0,0 +1,7 @@ +basesystem-*.rpm +filesystem-*.rpm +glibc-common-*.rpm +glibc-[0-9]*.rpm +libgcc-[0-9]*.rpm +setup-*.rpm +tzdata-*.rpm diff --git a/distrib/fc5/yum.repos.d/fedora-core.repo b/distrib/fc5/yum.repos.d/fedora-core.repo new file mode 100644 index 0000000..7a5101a --- /dev/null +++ b/distrib/fc5/yum.repos.d/fedora-core.repo @@ -0,0 +1,21 @@ +[core] +name=Fedora Core 5 - $basearch +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/5/$basearch/os/ +mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-5 +enabled=1 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY + +[core-debuginfo] +name=Fedora Core 5 - $basearch - Debug +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/5/$basearch/debug/ +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY + +[core-source] +name=Fedora Core 5 - Source +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/5/source/SRPMS/ +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY diff --git a/distrib/fc5/yum.repos.d/fedora-development.repo b/distrib/fc5/yum.repos.d/fedora-development.repo new file mode 100644 index 0000000..12ea285 --- /dev/null +++ b/distrib/fc5/yum.repos.d/fedora-development.repo @@ -0,0 +1,44 @@ +# These packages are untested and still under development. This +# repository is used for updates to test releases, and for +# development of new releases. +# +# This repository can see significant daily turnover and major +# functionality changes which cause unexpected problems with other +# development packages. Please use these packages if you want to work +# with the Fedora developers by testing these new development packages. +# +# fedora-test-list@redhat.com is available as a discussion forum for +# testing and troubleshooting for development packages in conjunction +# with new test releases. +# +# fedora-devel-list@redhat.com is available as a discussion forum for +# testing and troubleshooting for development packages in conjunction +# with developing new releases. +# +# More information is available at http://fedoraproject.org/wiki/Testing +# +# Reproducible and reportable issues should be filed at +# http://bugzilla.redhat.com/. +# +# Product: Fedora Core +# Version: devel + +[development] +name=Fedora Core - Development +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/ +mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-rawhide +enabled=0 +gpgcheck=0 + +[development-debuginfo] +name=Fedora Core - Development - Debug +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/debug/ +enabled=0 +gpgcheck=0 + +[development-source] +name=Fedora Core - Development - Source +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/SRPMS/ +enabled=0 +gpgcheck=0 + diff --git a/distrib/fc5/yum.repos.d/fedora-extras-development.repo b/distrib/fc5/yum.repos.d/fedora-extras-development.repo new file mode 100644 index 0000000..7c87c3e --- /dev/null +++ b/distrib/fc5/yum.repos.d/fedora-extras-development.repo @@ -0,0 +1,21 @@ +[extras-development] +name=Fedora Extras - Development Tree +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/development/$basearch/ +mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-extras-devel +enabled=0 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 + +[extras-development-debuginfo] +name=Fedora Extras - Development - Debug +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/development/$basearch/debug/ +enabled=0 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 + +[extras-development-source] +name=Fedora Extras - Development - Source +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/development/SRPMS/ +enabled=0 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 diff --git a/distrib/fc5/yum.repos.d/fedora-extras.repo b/distrib/fc5/yum.repos.d/fedora-extras.repo new file mode 100644 index 0000000..480a6eb --- /dev/null +++ b/distrib/fc5/yum.repos.d/fedora-extras.repo @@ -0,0 +1,21 @@ +[extras] +name=Fedora Extras 5 - $basearch +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/5/$basearch/ +mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-extras-5 +enabled=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 + +[extras-debuginfo] +name=Fedora Extras 5 - $basearch - Debug +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/5/$basearch/debug/ +enabled=0 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 + +[extras-source] +name=Fedora Extras 5 - Source +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/5/SRPMS/ +enabled=0 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 diff --git a/distrib/fc5/yum.repos.d/fedora-legacy.repo b/distrib/fc5/yum.repos.d/fedora-legacy.repo new file mode 100644 index 0000000..724155a --- /dev/null +++ b/distrib/fc5/yum.repos.d/fedora-legacy.repo @@ -0,0 +1,13 @@ +[legacy-updates] +name=Fedora Legacy 5 - $basearch - Updates +mirrorlist=http://fedora.redhat.com/download/mirrors/legacy-updates-released-fc5 +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora-legacy + +[legacy-testing] +name=Fedora Legacy 5 - $basearch - Updates Testing +mirrorlist=http://fedora.redhat.com/download/mirrors/legacy-updates-testing-fc5 +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora-legacy diff --git a/distrib/fc5/yum.repos.d/fedora-updates-testing.repo b/distrib/fc5/yum.repos.d/fedora-updates-testing.repo new file mode 100644 index 0000000..7ee19f3 --- /dev/null +++ b/distrib/fc5/yum.repos.d/fedora-updates-testing.repo @@ -0,0 +1,21 @@ +[updates-testing] +name=Fedora Core 5 - $basearch - Test Updates +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/5/$basearch/ +mirrorlist=http://fedora.redhat.com/download/mirrors/updates-testing-fc5 +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora-test + +[updates-testing-debuginfo] +name=Fedora Core 5 - $basearch - Test Updates Debug +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/5/$basearch/debug/ +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora-test + +[updates-testing-source] +name=Fedora Core 5 - Test Updates Source +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/5/SRPMS/ +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora-test diff --git a/distrib/fc5/yum.repos.d/fedora-updates.repo b/distrib/fc5/yum.repos.d/fedora-updates.repo new file mode 100644 index 0000000..e25ebf7 --- /dev/null +++ b/distrib/fc5/yum.repos.d/fedora-updates.repo @@ -0,0 +1,21 @@ +[updates] +name=Fedora Core 5 - $basearch - Updates +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/5/$basearch/ +mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc5 +enabled=1 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora + +[updates-debuginfo] +name=Fedora Core 5 - $basearch - Updates - Debug +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/5/$basearch/debug/ +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora + +[updates-source] +name=Fedora Core 5 - Updates Source +baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/5/SRPMS/ +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/5/$basearch/os/RPM-GPG-KEY-fedora diff --git a/distrib/fc5/yum/yum.conf b/distrib/fc5/yum/yum.conf new file mode 100644 index 0000000..1d21cd1 --- /dev/null +++ b/distrib/fc5/yum/yum.conf @@ -0,0 +1,10 @@ +[main] +cachedir=@YUMCACHEDIR@ +reposdir=@YUMETCDIR@/yum.repos.d +debuglevel=1 +logfile=@YUMLOGDIR@/log +lockfile=@YUMLOCKDIR@/yum.pid +pkgpolicy=newest +distroverpkg=fedora-release +installonlypkgs= +exactarch=0 diff --git a/distrib/fc6/apt/rpmpriorities b/distrib/fc6/apt/rpmpriorities new file mode 100644 index 0000000..f4a90e2 --- /dev/null +++ b/distrib/fc6/apt/rpmpriorities @@ -0,0 +1,7 @@ +Essential: + basesystem + coreutils + filesystem + glibc + setup + fedora-release diff --git a/distrib/fc6/apt/sources.list b/distrib/fc6/apt/sources.list new file mode 100644 index 0000000..b833d31 --- /dev/null +++ b/distrib/fc6/apt/sources.list @@ -0,0 +1,7 @@ +# rpm http://ftp.ultra.csn.tu-chemnitz.de/pub/mirror/fedora/core/.apt 3/i386 os patches updates + +# rpm ftp://ftp.ussg.iu.edu/pub/linux/fedora/fedora/fedora 3/i386 os updates +# rpm ftp://ftp.tu-chemnitz.de/pub/linux/fedora/fedora 3/i386 os updates +# rpm http://mirrors.usc.edu/pub/linux/fedora/fedora/fedora 3/i386 os updates +# rpm http://sunsite.informatik.rwth-aachen.de/ftp/pub/Linux/fedora/fedora 3/i386 os updates +# rpm http://download.fedora.us/fedora/fedora 3/i386 os updates diff --git a/distrib/fc6/pkgs/01 b/distrib/fc6/pkgs/01 new file mode 100644 index 0000000..1a5ef72 --- /dev/null +++ b/distrib/fc6/pkgs/01 @@ -0,0 +1 @@ +glibc diff --git a/distrib/fc6/pkgs/02 b/distrib/fc6/pkgs/02 new file mode 100644 index 0000000..9ec5d2b --- /dev/null +++ b/distrib/fc6/pkgs/02 @@ -0,0 +1,3 @@ +--reinstall + +filesystem diff --git a/distrib/fc6/pkgs/03 b/distrib/fc6/pkgs/03 new file mode 100644 index 0000000..218b1e6 --- /dev/null +++ b/distrib/fc6/pkgs/03 @@ -0,0 +1,2 @@ +coreutils +initscripts diff --git a/distrib/fc6/rpmlist.d/00.lst b/distrib/fc6/rpmlist.d/00.lst new file mode 100644 index 0000000..85a9617 --- /dev/null +++ b/distrib/fc6/rpmlist.d/00.lst @@ -0,0 +1,7 @@ +basesystem-*.rpm +filesystem-*.rpm +glibc-common-*.rpm +glibc-[0-9]*.rpm +libgcc-[0-9]*.rpm +setup-*.rpm +tzdata-*.rpm diff --git a/distrib/fc6/yum.repos.d/fedora-core.repo b/distrib/fc6/yum.repos.d/fedora-core.repo new file mode 100644 index 0000000..56b4318 --- /dev/null +++ b/distrib/fc6/yum.repos.d/fedora-core.repo @@ -0,0 +1,23 @@ +[core] +name=Fedora Core 6 - $basearch +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/6/$basearch/os/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=core-6&arch=$basearch +enabled=1 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY + +[core-debuginfo] +name=Fedora Core 6 - $basearch - Debug +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/6/$basearch/debug/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=core-debug-6&arch=$basearch +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY + +[core-source] +name=Fedora Core 6 - Source +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/6/source/SRPMS/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=core-source-6&arch=$basearch +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY diff --git a/distrib/fc6/yum.repos.d/fedora-development.repo b/distrib/fc6/yum.repos.d/fedora-development.repo new file mode 100644 index 0000000..6dd04d7 --- /dev/null +++ b/distrib/fc6/yum.repos.d/fedora-development.repo @@ -0,0 +1,46 @@ +# These packages are untested and still under development. This +# repository is used for updates to test releases, and for +# development of new releases. +# +# This repository can see significant daily turnover and major +# functionality changes which cause unexpected problems with other +# development packages. Please use these packages if you want to work +# with the Fedora developers by testing these new development packages. +# +# fedora-test-list@redhat.com is available as a discussion forum for +# testing and troubleshooting for development packages in conjunction +# with new test releases. +# +# fedora-devel-list@redhat.com is available as a discussion forum for +# testing and troubleshooting for development packages in conjunction +# with developing new releases. +# +# More information is available at http://fedoraproject.org/wiki/Testing +# +# Reproducible and reportable issues should be filed at +# http://bugzilla.redhat.com/. +# +# Product: Fedora Core +# Version: devel + +[development] +name=Fedora Core - Development +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/os/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch +enabled=0 +gpgcheck=0 + +[development-debuginfo] +name=Fedora Core - Development - Debug +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/debug/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide-debug&arch=$basearch +enabled=0 +gpgcheck=0 + +[development-source] +name=Fedora Core - Development - Source +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/development/source/SRPMS/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide-source&arch=$basearch +enabled=0 +gpgcheck=0 + diff --git a/distrib/fc6/yum.repos.d/fedora-extras-development.repo b/distrib/fc6/yum.repos.d/fedora-extras-development.repo new file mode 100644 index 0000000..4f2a5fc --- /dev/null +++ b/distrib/fc6/yum.repos.d/fedora-extras-development.repo @@ -0,0 +1,34 @@ +# These packages are untested and still under development. This +# repository is used for updates to test releases, and for +# development of new releases. +# +# This repository can see significant daily turnover and major +# functionality changes which cause unexpected problems with other +# development packages. Please use these packages if you want to work +# with the Fedora developers by testing these new development packages. +# +# More information is available at http://fedoraproject.org/wiki/Testing + +[extras-development] +name=Fedora Extras - Development Tree +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/development/$basearch/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=extras-devel&arch=$basearch +enabled=0 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 + +[extras-development-debuginfo] +name=Fedora Extras - Development - Debug +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/development/$basearch/debug/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=extras-devel-debug&arch=$basearch +enabled=0 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 + +[extras-development-source] +name=Fedora Extras - Development - Source +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/development/SRPMS/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=extras-devel-source&arch=$basearch +enabled=0 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 diff --git a/distrib/fc6/yum.repos.d/fedora-extras.repo b/distrib/fc6/yum.repos.d/fedora-extras.repo new file mode 100644 index 0000000..b7d42ad --- /dev/null +++ b/distrib/fc6/yum.repos.d/fedora-extras.repo @@ -0,0 +1,23 @@ +[extras] +name=Fedora Extras 6 - $basearch +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/6/$basearch/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=extras-6&arch=$basearch +enabled=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 + +[extras-debuginfo] +name=Fedora Extras 6 - $basearch - Debug +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/6/$basearch/debug/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=extras-debug-6&arch=$basearch +enabled=0 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 + +[extras-source] +name=Fedora Extras 6 - Source +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/6/SRPMS/ +mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=extras-source-6&arch=$basearch +enabled=0 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora-extras +gpgcheck=1 diff --git a/distrib/fc6/yum.repos.d/fedora-legacy.repo b/distrib/fc6/yum.repos.d/fedora-legacy.repo new file mode 100644 index 0000000..1dc6e2d --- /dev/null +++ b/distrib/fc6/yum.repos.d/fedora-legacy.repo @@ -0,0 +1,13 @@ +[legacy-updates] +name=Fedora Legacy 6 - $basearch - Updates +mirrorlist=http://fedora.redhat.com/Download/mirrors/legacy-updates-released-fc6 +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora-legacy + +[legacy-testing] +name=Fedora Legacy 6 - $basearch - Updates Testing +mirrorlist=http://fedora.redhat.com/Download/mirrors/legacy-updates-testing-fc6 +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora-legacy diff --git a/distrib/fc6/yum.repos.d/fedora-updates-testing.repo b/distrib/fc6/yum.repos.d/fedora-updates-testing.repo new file mode 100644 index 0000000..8cdaf84 --- /dev/null +++ b/distrib/fc6/yum.repos.d/fedora-updates-testing.repo @@ -0,0 +1,23 @@ +[updates-testing] +name=Fedora Core 6 - $basearch - Test Updates +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/6/$basearch/ +mirrorlist=http://fedora.redhat.com/Download/mirrors/updates-testing-fc6 +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora-test + +[updates-testing-debuginfo] +name=Fedora Core 6 - $basearch - Test Updates Debug +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/6/$basearch/debug/ +mirrorlist=http://fedora.redhat.com/Download/mirrors/updates-testing-debug-fc6 +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora-test + +[updates-testing-source] +name=Fedora Core 6 - Test Updates Source +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/6/SRPMS/ +mirrorlist=http://fedora.redhat.com/Download/mirrors/updates-testing-source-fc6 +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora-test diff --git a/distrib/fc6/yum.repos.d/fedora-updates.repo b/distrib/fc6/yum.repos.d/fedora-updates.repo new file mode 100644 index 0000000..fd4db84 --- /dev/null +++ b/distrib/fc6/yum.repos.d/fedora-updates.repo @@ -0,0 +1,23 @@ +[updates] +name=Fedora Core 6 - $basearch - Updates +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/6/$basearch/ +mirrorlist=http://fedora.redhat.com/Download/mirrors/updates-released-fc6 +enabled=1 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora + +[updates-debuginfo] +name=Fedora Core 6 - $basearch - Updates - Debug +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/6/$basearch/debug/ +mirrorlist=http://fedora.redhat.com/Download/mirrors/updates-released-debug-fc6 +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora + +[updates-source] +name=Fedora Core 6 - Updates Source +#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/6/SRPMS/ +mirrorlist=http://fedora.redhat.com/Download/mirrors/updates-released-source-fc6 +enabled=0 +gpgcheck=1 +gpgkey=http://redhat.download.fedoraproject.org/pub/fedora/linux/core/6/$basearch/os/RPM-GPG-KEY-fedora diff --git a/distrib/fc6/yum/yum.conf b/distrib/fc6/yum/yum.conf new file mode 100644 index 0000000..1d21cd1 --- /dev/null +++ b/distrib/fc6/yum/yum.conf @@ -0,0 +1,10 @@ +[main] +cachedir=@YUMCACHEDIR@ +reposdir=@YUMETCDIR@/yum.repos.d +debuglevel=1 +logfile=@YUMLOGDIR@/log +lockfile=@YUMLOCKDIR@/yum.pid +pkgpolicy=newest +distroverpkg=fedora-release +installonlypkgs= +exactarch=0 diff --git a/distrib/gentoo/init-vserver.sh b/distrib/gentoo/init-vserver.sh new file mode 100644 index 0000000..e628d9f --- /dev/null +++ b/distrib/gentoo/init-vserver.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# +# Copyright (C) 2006 Benedikt Boehm +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# +# BIG FAT WARNING: +# +# Do not remove this file if you are using gentoo init style! +# Your vserver will not boot anymore! +# +# You have been warned... +# + +RUNLEVEL=1 /sbin/rc sysinit || exit 1 +/sbin/rc boot || exit 1 +/sbin/rc ${1:-default} +exit 0 diff --git a/distrib/gentoo/initpost b/distrib/gentoo/initpost new file mode 100755 index 0000000..af89200 --- /dev/null +++ b/distrib/gentoo/initpost @@ -0,0 +1,129 @@ +#!/bin/bash + +# Copyright (C) 2006 Benedikt Boehm +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +## Called as: initpost + +# finish notice from initpre +echo "ok" + + +#setup environment +cfgdir="$1" +vdir="$cfgdir"/vdir +. "$2" + + +# go to vdir for chroot-sh +pushd "$vdir" &>/dev/null + + +# helper for sed in chroot +chrootsed() { + local file="$1" + shift + + sedtmp=$($_MKTEMP chrootsed.XXXXXX) + + $_CHROOT_SH cat "$file" | $_SED "$@" > $sedtmp + $_CHROOT_SH truncate "$file" < $sedtmp + + $_RM -f $sedtmp +} + + +# portage stuff +$_CHROOT_SH mkdir /usr 2>/dev/null || : +$_CHROOT_SH mkdir /usr/portage 2>/dev/null || : +$_CHROOT_SH mkdir /usr/portage/distfiles 2>/dev/null || : + + +# gentoo initstyle magic +initstyle=sysv +test -e "$cfgdir"/apps/init/style && initstyle=$(<"$cfgdir"/apps/init/style) + +if test "$initstyle" == "gentoo"; then + echo ">>> Installing special init-style magic ... " + + $_CAT "$__DISTRIBDIR"/gentoo/init-vserver.sh | \ + $_CHROOT_SH truncate /lib/rcscripts/sh/init-vserver.sh + $_CHROOT_SH chmod 0755 /lib/rcscripts/sh/init-vserver.sh + + $_CAT "$__DISTRIBDIR"/gentoo/reboot.sh | \ + $_CHROOT_SH truncate /etc/init.d/reboot.sh + $_CHROOT_SH chmod 0755 /etc/init.d/reboot.sh + + $_CAT "$__DISTRIBDIR"/gentoo/shutdown.sh | \ + $_CHROOT_SH truncate /etc/init.d/shutdown.sh + $_CHROOT_SH chmod 0755 /etc/init.d/shutdown.sh + + echo "!!!" + echo "!!! You have to install a service (e.g. syslog/cron) and add it to the" + echo "!!! default runlevel before you start the guest the first time!" + echo "!!! Otherwise the guest will die as soon as it has finished booting." + echo "!!!" + echo "!!! Consult the Gentoo Handbook on how to chroot and install" + echo "!!! packages into the guest environment." + echo "!!!" +fi + + +# unneeded runlevel scripts +echo ">>> Fixing default runlevel scripts ... " +$_CHROOT_SH rm /etc/runlevels/boot/{clock,consolefont,keymaps,modules,net.lo} 2>/dev/null || : +$_CHROOT_SH rm /etc/runlevels/default/{hdparm,netmount} 2>/dev/null || : + + +# setting hostname +if test -r "$cfgdir"/uts/nodename && $_CHROOT_SH testfile /etc/conf.d/hostname; then + echo ">>> Setting hostname ... " + chrootsed /etc/conf.d/hostname \ + -e "s:HOSTNAME=\"\(.*\)\":HOSTNAME=\"$(< "$cfgdir"/uts/nodename)\":" +fi + + +# fix syslog-ng.conf +if $_CHROOT_SH testfile /etc/syslog-ng/syslog-ng.conf; then + echo ">>> Fixing syslog-ng.conf ... " + chrootsed /etc/syslog-ng/syslog-ng.conf \ + -e 's:pipe("/proc/kmsg"); ::' \ + -e 's:\(.*console_all.*\):#\1:g' +fi + + +# fix gettys in inittab +if $_CHROOT_SH testfile /etc/inittab; then + echo ">>> Fixing inittab ... " + chrootsed /etc/inittab \ + -e 's/\(^[^#].*getty.*$\)/#\1/' +fi + + +# fix fstab for checkfs/localmount in baselayout-2 +# (does not affect any previous versions) +echo ">>> Fixing fstab ... " +echo "/dev/hdv1 / ufs defaults 0 0" | $_CHROOT_SH truncate /etc/fstab + + +# always satisfy net dependency in baselayout-2 +# (does not affect any previous versions) +echo ">>> Providing dummy net dependency ... " +$_CAT "$__DISTRIBDIR"/gentoo/net.vserver | \ +$_CHROOT_SH truncate /etc/init.d/net.vserver +$_CHROOT_SH chmod 0755 /etc/init.d/net.vserver +$_CHROOT_SH link /etc/init.d/net.vserver /etc/runlevels/boot/net.vserver + +popd &>/dev/null diff --git a/distrib/gentoo/initpre b/distrib/gentoo/initpre new file mode 100755 index 0000000..4a66bf5 --- /dev/null +++ b/distrib/gentoo/initpre @@ -0,0 +1,65 @@ +#!/bin/bash + +# Copyright (C) 2006 Benedikt Boehm +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +## Called as: initpost + +vdir="$1"/vdir +. "$2" + +# portage stuff +echo ">>> Adding shared /usr/portage to fstab ... " + +hash portageq &>/dev/null + +if test $? -eq 0; then + _PORTDIR=$(portageq portdir) + _DISTDIR=$(portageq distdir) +else + _PORTDIR=/usr/portage + _DISTDIR=/usr/portage/distfiles +fi + +if test -d $_PORTDIR; then + ( echo + echo "# shared portage tree" + echo "${_PORTDIR} /usr/portage none bind,ro 0 0" + ) >> "$1"/fstab +else + echo "!!! Cannot find a portage tree! You should definitely use a" + echo "!!! shared portage tree if you have multiple Gentoo guests!" +fi + +if test -d $_DISTDIR; then + echo "${_DISTDIR} /usr/portage/distfiles none bind,rw 0 0" >> "$1"/fstab +else + echo "!!! Cannot find distfiles directory! You should definitely use a" + echo "!!! shared distfiles directory if you have multiple Gentoo guests!" +fi + + +# initstyle sanity +initstyle=sysv +test -e "$1"/apps/init/style && initstyle=$(<"$1"/apps/init/style) + +echo ">>> Checking init-style ... $initstyle" + +if test "$initstyle" != "gentoo" -a "$initstyle" != "plain"; then + echo "!!! The init-style you specified is not supported for Gentoo" + echo "!!! Please use one of: plain, gentoo" +fi + +echo -n ">>> Unpacking template ... " diff --git a/distrib/misc/debootstrap.uri b/distrib/misc/debootstrap.uri index 0f64170..2e2a542 100644 --- a/distrib/misc/debootstrap.uri +++ b/distrib/misc/debootstrap.uri @@ -1 +1 @@ -http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.3.1.4_all.deb +http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.3.3.3_all.deb diff --git a/distrib/misc/environment b/distrib/misc/environment new file mode 100644 index 0000000..a0d39c8 --- /dev/null +++ b/distrib/misc/environment @@ -0,0 +1 @@ +PATH=/bin:/usr/bin:/sbin:/usr/sbin diff --git a/distrib/misc/vprocunhide-files b/distrib/misc/vprocunhide-files index ec35834..f42f798 100644 --- a/distrib/misc/vprocunhide-files +++ b/distrib/misc/vprocunhide-files @@ -5,7 +5,6 @@ -/proc/sys/dev/ /proc/sysvipc/ /proc/tty/ -/proc/cmdline /proc/cpuinfo /proc/crypto /proc/devices @@ -27,4 +26,5 @@ /proc/stat /proc/swaps /proc/uptime +-/proc/cmdline /proc/version diff --git a/distrib/redhat/initpost b/distrib/redhat/initpost index f281656..4157a2b 100755 --- a/distrib/redhat/initpost +++ b/distrib/redhat/initpost @@ -40,6 +40,24 @@ function subst rm -f $tmp } +vserver=$1 + +## Do some magic to set the vserver into a defined state +$_VSERVER "$vserver" stop &>/dev/null || : +$_VSERVER "$vserver" start --rescue --rescue-init bash -c ' + exec >/dev/null + exec 2>/dev/null + + set -x + f=/tmp/startwait + trap "rm -f $f" EXIT + mkfifo $f + ( sleep 15; kill -s 9 -- -1 ) & + cat "$f" >/dev/null + kill -s 9 -- -1 + wait +' + pushd "$vdir"/etc/init.d &>/dev/null || pushd "$vdir"/etc/rc.d/init.d &>/dev/null || exit 1 @@ -49,12 +67,11 @@ pushd "$vdir"/etc/init.d &>/dev/null || functions|halt|killall|single) ;; syslog) ;; *) - $_VSERVER ----insecure "$1" chkconfig "$i" off + $_VSERVER "$1" chkconfig "$i" off ;; esac done - relink /bin/true halt popd >/dev/null pushd "$vdir"/sbin &>/dev/null @@ -70,11 +87,20 @@ pushd "$vdir" &>/dev/null popd >/dev/null pushd "$vdir" &>/dev/null + cat </dev/null + +$_VSERVER "$vserver" exec bash -c ': >/tmp/startwait' &>/dev/null || : +$_VSERVER "$vserver" stop &>/dev/null || : diff --git a/doc/Makefile-files b/doc/Makefile-files index aec2757..5354f9d 100644 --- a/doc/Makefile-files +++ b/doc/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.12 2005/03/19 01:59:47 ensc Exp $ -*- makefile -*- +## $Id: Makefile-files 2338 2006-09-28 22:39:19Z dhozac $ -*- makefile -*- ## Copyright (C) 2003 Enrico Scholz ## @@ -29,7 +29,8 @@ doc_configuration_SRCS = doc/configuration.xml \ doc/configuration.xsd \ doc/configuration.dtd \ doc/configuration.css \ - doc/configuration-xhtml.xsl + doc/configuration-xhtml.xsl \ + doc/configuration-wiki.xsl doc_compatibility_SRCS = doc/compatibility.xml \ doc/compatibility.dtd \ diff --git a/doc/configuration-wiki.xsl b/doc/configuration-wiki.xsl new file mode 100644 index 0000000..11fe172 --- /dev/null +++ b/doc/configuration-wiki.xsl @@ -0,0 +1,335 @@ + + + + + + + + +

The contents of the directory

+ This page is automatically created by XSL transformation of configuration.xml. Additions, corrections, etc. should be made in that file, not in the Wiki page. + + + Directory names are written in bold letters. + + Boolean files are files without content. Only existence matters. + + Scalar files are files with only one line (one value). + + List files are files with multiple values. One value per line. + + Hash files are files with multiple key/value pairs. One key/value pair per line. + + Symbolic names (variables) are written in italic letters. + + + Directories are marked with a trailing / and bold letters. + + Scripts are marked with a trailing superscript *. + + Hash files (with key/value pairs) are marked with a trailing superscript #. + + Boolean files (without content) are marked with a trailing superscript 0. + + Scalar files (with only one line) are marked with a trailing superscript 1. + + List files (with multiple lines) are marked with a trailing superscript min - max sequence, where min is the minimum and max the maximum number of lines. + + Symlinks are marked with a trailing superscript @. + + Data files have no special mark up. + + Symbolic names (variables) are written in italic letters. + + + + + + +
+ + + + +
    + + + + +
+
+
+ + + + + + + + + + + + + + + + +
  • + + + script + + +
  • +
    + + + +
  • + + + hash + + +
  • +
    + + + +
  • + + + file + + +
  • +
    + + + +
  • + + + data + + +
  • +
    + + + +
  • + + + list + + +
  • +
    + + + +
  • + + + symlink + + +
  • +
    + + + +
  • + + + boolean + + +
  • +
    + + + +
  • + + + directory + + + + + / + +
  • +
    + + + / + + + + + + + + + + ''' + /'''' + + + ''' + + + + + /''' + @ + 0 + + + 0 + - + + + + 1 + * + # + + ??? + + + + + + +
    + + + + + + + + + + + + +
    + + + + +
      +
        + Allowed values: + + + +
      +
    +
    + + + + + + + + +
      +
        + + + +
      +
    +
    + + + + + + + +
      +
        + +
      +
    +
    + + +
      +
        + +
      +
    +
    + + +
      +
        + Possible values: + + + +
      +
    +
    + + + + + + + + +
      +
        + Will be called with the following parameters: + +
      +
    +
    + + + + + + + + +
    +
    + + +
        ; Default :
    +
    " + + +
        ; Since Version :
    +
    + + + + '''' + + [] +
    +
    + + + + [[# + + + |]] + + [file://] + +
    diff --git a/doc/configuration-xhtml.xsl b/doc/configuration-xhtml.xsl index 7965f19..107b057 100644 --- a/doc/configuration-xhtml.xsl +++ b/doc/configuration-xhtml.xsl @@ -19,11 +19,11 @@ The <xsl:value-of select="$confdir"/> directory - + - +

    The content of the directory

    diff --git a/doc/configuration.html b/doc/configuration.html index e82d9e8..ccaff8e 100644 --- a/doc/configuration.html +++ b/doc/configuration.html @@ -4,11 +4,11 @@ The /etc/vservers directory - + - +

    The content of the /etc/vservers directory

    @@ -17,6 +17,44 @@ /etc/vservers/.defaults
      +
    • + cachebase +
      +
      +A link to the directory which will hold cached information about +vservers. +
      +
    • +
    • + context.dynamic +
      +
      +If this file exists, kernel-side dynamic contexts will be used by the "vserver +... build" command. Otherwise a context will be generated, based on the +contents of context.next. +
      +
    • +
    • + context.next +
      +
      +The context id to use for the next guest created by "vserver ... build". +
      +
    • +
    • + fstab +
      +
      +The default fstab file to put in newly built guests. +
      +
    • +
    • + namespace-cleanup-skip +
      +
      +List of paths to skip during namespace cleanup. +
      +
    • nonamespace
      @@ -27,6 +65,15 @@ there. In this mode the /vservers directory must have the 'barrier' attribute. Else, common chroot(2) exploits are possible. + +
    • +
    • + nonamespace-cleanup +
      +
      +Disable namespace cleanup globally. It can be overridden for a single vserver +by setting the namespace-cleanup flag +there.
    • @@ -40,6 +87,15 @@ to VSERVER mapping; Under kernel 2.6 it is unused. NOTE: this link exists in 0.30.202+ only; in previous versions it was a vserver specific setting. + +
    • +
    • + shell +
      +
      +Contains the pathname of the shell which will be used by the "vserver +... enter" command. Can be overridden by the +per-guest shell.
    • @@ -51,6 +107,19 @@ a vserver specific setting. /etc/vservers/.defaults/apps
        +
      • + /etc/vservers/.defaults/apps/build +
        +
          +
        • + options +
          +
          +A list of default options to supply to vserver ... build, one option per line. +
          +
        • +
        +
      • /etc/vservers/.defaults/apps/debootstrap
        @@ -76,6 +145,14 @@ from this uri and install it at a temporary place. /etc/vservers/.defaults/apps/init
          +
        • + environment +
          +
          +The environment to set when starting guests. Contains one VAR=VAL +pair per line. +
          +
        • tty
          @@ -103,6 +180,65 @@ distribution specific configuration file.
      • +
      • + /etc/vservers/.defaults/apps/vdevmap +
        +
          +
        • + /etc/vservers/.defaults/apps/vdevmap/x +
          +
          'x' is an arbitrary name, replace it with e.g. device names
          +
            +
          • + create +
            +
            When this file exists, the device can be created (if the guest has CAP_MKNOD)
            +
          • +
          • + device +
            +
            Contains the name of a device node
            +
          • +
          • + flags +
            +
            This file will let you specify unimplemented flags manually
            +
          • +
          • + open +
            +
            When this file exists, the device can be opened
            +
          • +
          • + remap +
            +
            +When this file exists, target will +have to exist as well and opening the device will in fact open the target device +
            +
          • +
          • + target +
            +
            Contains the device node of the target node to open instead of the device when remap is set
            +
          • +
          +
        • +
        +
      • +
      • + /etc/vservers/.defaults/apps/vlogin +
        +
          +
        • + disable +
          +
          +When this file exists, vlogin isn't used on vserver <guest> enter. +
          +
        • +
        +
      • /etc/vservers/.defaults/apps/vprocunhide
        @@ -111,7 +247,7 @@ distribution specific configuration file. files
        -A list of files which will be made visibly by vprocunhide. Wildcards are +A list of files which will be made visible by vprocunhide. Wildcards are allowed and anything ending in '/' will be processed recursively. When this file exists, it overrides the defaults in SYSDEFAULTDIR/vprocunhide-files. The entries there must be absolute filenames inclusive the leading '/proc'. @@ -163,7 +299,7 @@ skipped. handler
        -See vshelper/action. +See vshelper/action.
      @@ -225,6 +361,53 @@ filesystem.
    +
  • + /etc/vservers/.defaults/files +
    +
    This directory contains some files which will be copied to the guests during build.
    +
      +
    • + hosts +
      +
      The default /etc/hosts file.
      +
    • +
    • + krb.conf +
      +
      The default /etc/krb.conf file.
      +
    • +
    • + krb.realms +
      +
      The default /etc/krb.realms file.
      +
    • +
    • + krb5.conf +
      +
      The default /etc/krb5.conf file.
      +
    • +
    • + ldap.conf +
      +
      The default /etc/ldap.conf file.
      +
    • +
    • + localtime +
      +
      The default /etc/localtime file.
      +
    • +
    • + nsswitch.conf +
      +
      The default /etc/nsswitch.conf file.
      +
    • +
    • + resolv.conf +
      +
      The default /etc/resolv.conf file.
      +
    • +
    +
  • /etc/vservers/.defaults/init
    @@ -236,6 +419,20 @@ filesystem.
  • +
  • + /etc/vservers/.defaults/interfaces +
    +
      +
    • + vlandev +
      +
      +When this file exists, the steps which setup and destroy a VLAN +interface will be executed. +
      +
    • +
    +
  • @@ -366,9 +563,16 @@ The configuration directory for the vserver vserver-name. bcapabilities
    -[experimental; name is subject of possible change] Contains the system capabilities. See -lib/bcaps-v13.c +Contains the system capabilities. See +lib/bcaps-v13.c for possible values. +
    +
  • +
  • + cache +
    +
    +Path of the storage area for cached information about this vserver.
  • @@ -383,8 +587,7 @@ only; for 2.6 use bcapabilities. ccapabilities
    -[experimental; name is subject of possible change] Contains the -context capabilities. See lib/ccaps-v13.c +Contains the context capabilities. See lib/ccaps-v13.c for possible values.
  • @@ -399,54 +602,9 @@ Contains the context which shall be used for the vserver. flags
    -Contains per line a flag. See lib/cflags-v13.c +Contains per line a flag. See lib/cflags-v13.c for possible values.
    -
    -
    -
    fakeinit
    -
    -
    -The new process will believe it is process number 1. Useful to run a -real /sbin/init in a vserver. Warning: this flag should not be used -unless you know what you are doing. Often, it is better to use the -'plain' initstyle. -
    -
    -
    lock
    -
    -
    -The new process is trapped and can't use chcontext anymore. -
    -
    -
    nproc
    -
    -
    -Limit the number of process in the vserver according to -ulimit setting. Normally, ulimit is a per user thing. -With this flag, it becomes a per vserver thing. -
    -
    -
    private
    -
    -
    -No one can join this security context once created. -
    -
    -
    sched
    -
    -
    -The new process and its children will share a common -
    -
    -
    ulimit
    -
    -
    -Apply the current ulimit to the whole context -
    -
    -
    -
  • fstab @@ -483,6 +641,39 @@ will be assumed as this name.
    Overrides the global nonamespace flag and enables namespace usage for the current vserver. +
    +
  • +
  • + namespace-cleanup +
    +
    +Overrides the global nonamespace-cleanup flag and enables +namespace cleanup for the current vserver. +
    +
  • +
  • + namespace-cleanup-skip +
    +
    +List of paths to skip during namespace cleanup. This overrides the global +namespace-cleanup-skip +file. +
    +
  • +
  • + ncapabilities +
    +
    +Contains the network capabilities. See lib/ncaps-net.c +for possible values. +
    +
  • +
  • + nflags +
    +
    +Contains a network flag per line. See lib/nflags-net.c +for possible values.
  • @@ -524,7 +715,7 @@ the vserver is stopped, this can be a dangling symlink. schedule
    -[experimental; name is subject of possible change] Contains the +[deprecated; use sched instead] Contains the scheduler parameters, one per line. The Hard CPU limit uses a mechanism called a Token Bucket. the @@ -535,9 +726,12 @@ a running process consumes one token from the bucket, unless the bucket is empty. If the bucket is empty the process is put in the hold queue. When the bucket has been refilled to at least M tokens, all on hold processes are rescheduled. + +See the Linux +VServer Wiki for more information about this file.
  • -
  • +
  • shell
    @@ -549,7 +743,7 @@ Contains the pathname of the shell which will be used by the "vserver vdir
    -Path of the vserver root directory +Path of the vserver root directory.
  • @@ -613,6 +807,14 @@ the current vserver can be started. At shutdown, the current vserver will be stopped before its dependencies. Content of this file are vserver ids (one name per line). +
  • +
  • + environment +
    +
    +The environment to set when starting the guest. Contains one VAR=VAL +pair per line. +
  • killseq @@ -680,7 +882,7 @@ from/to at startup via initscript. /etc/vservers/vserver-name/apps/vshelper
      -
    • +
    • action
      @@ -721,7 +923,7 @@ the vs_reboot() function in the kernel for more details.
      The timeout in seconds which is used when synchronising vserver -startup/shutdown with the vshelper. When no set, 30 seconds will be +startup/shutdown with the vshelper. When not set, 30 seconds will be assumed.
    • @@ -743,7 +945,7 @@ skipped. handler
      -See vshelper/action. +See vshelper/action.
    @@ -825,6 +1027,74 @@ filesystem.
  • +
  • + /etc/vservers/vserver-name/cpuset +
    +
      +
    • + cpu_exclusive +
      +
      Is the CPU assignment exclusive?
      +
    • +
    • + cpus +
      +
      The list of CPUs in this cpuset
      +
    • +
    • + mems +
      +
      The list of Memory Nodes in this cpuset
      +
    • +
    • + mems_exclusive +
      +
      Is the memory node assignment exclusive?
      +
    • +
    • + name +
      +
      The name of the cpuset for this vserver
      +
    • +
    • + nocreate +
      +
      When this file exists, the cpuset will be assumed to exist already
      +
    • +
    +
  • +
  • + /etc/vservers/vserver-name/dlimits +
    +
      +
    • + /etc/vservers/vserver-name/dlimits/dlimit +
      +
        +
      • + directory +
        +
        The directory to which the limit should be applied
        +
      • +
      • + inodes_total +
        +
        The amount of inodes this vserver should be limited to
        +
      • +
      • + reserved +
        +
        How much space (percentage-wise) should be reserved for the root user
        +
      • +
      • + space_total +
        +
        The amount of space this vserver should be limited to (measured in blocks of 1024 bytes)
        +
      • +
      +
    • +
    +
  • /etc/vservers/vserver-name/interfaces
    @@ -844,6 +1114,16 @@ filesystem.
    The default network mask.
  • +
  • + novlandev +
    +
    +When this file exists, the steps which setup and destroy a VLAN +interface will be skipped. This overrides the global +vlandev setting for +this vserver. +
    +
  • prefix
    @@ -854,6 +1134,14 @@ filesystem.
    The default scope of the network interfaces.
  • +
  • + vlandev +
    +
    +When this file exists, the steps which setup and destroy a VLAN +interface will be executed for all interfaces of this vserver. +
    +
  • /etc/vservers/vserver-name/interfaces/iface
    @@ -906,6 +1194,16 @@ a labeled interface is known as an "alias" also (e.g. 'eth0:foo'). When this file exists, the interface will be assumed to exist already. This can be used to assign primary interfaces which are created by the host or another vserver. + +
  • +
  • + novlandev +
    +
    +When this file exists, the steps which setup and destroy a VLAN +interface will be skipped. This will override the global +vlandev and the per-guest +vlandev.
  • @@ -918,6 +1216,14 @@ created by the host or another vserver.
    The scope of the network interface.
  • +
  • + vlandev +
    +
    +When this file exists, the steps which setup and destroy a VLAN +interface will be executed. +
    +
  • @@ -927,7 +1233,8 @@ created by the host or another vserver.
    A directory with resource limits. Possible resources are cpu, fsize, -data, stack, core, rss, nproc, nofile, memlock, as and locks. This +data, stack, core, rss, nproc, nofile, memlock, as, locks, msgqueue, +nsock, openfd, anon, shmem, semary, nsems and dentry. This configuration will be honored for kernel 2.6 only.
      @@ -943,7 +1250,7 @@ in the first line. The special keyword 'inf' is recognized. resource.hard
      -A file which contains the hard- of the given resource in the first +A file which contains the hard-limit of the given resource in the first line. The special keyword 'inf' is recognized.
      @@ -951,7 +1258,7 @@ line. The special keyword 'inf' is recognized. resource.min
      -A file which contains the guaranted minimum of the given resource in +A file which contains the guaranteed minimum of the given resource in the first line. The special keyword 'inf' is recognized.
      @@ -959,12 +1266,125 @@ the first line. The special keyword 'inf' is recognized. resource.soft
      -A file which contains the soft- of the given resource in the first +A file which contains the soft-limit of the given resource in the first line. The special keyword 'inf' is recognized.
    +
  • + /etc/vservers/vserver-name/sched +
    +
      +
    • + fill-rate +
      +
      Amount of tokens to add each interval
      +
    • +
    • + fill-rate2 +
      +
      Amount of tokens to add each interval2 when advancing idle time
      +
    • +
    • + idle-time +
      +
      When this file exists, advancing idle time is activated
      +
    • +
    • + interval +
      +
      The interval between refills of the bucket
      +
    • +
    • + interval2 +
      +
      The interval between refills of the bucket when advancing idle time
      +
    • +
    • + priority-bias +
      +
      Bias added to priorities calculated within the guest (result is clamped to -20/+19)
      +
    • +
    • + tokens +
      +
      The initial amount of tokens to put in the bucket
      +
    • +
    • + tokens-max +
      +
      The bucket's size
      +
    • +
    • + tokens-min +
      +
      The minimum amount of tokens required to unhold the context
      +
    • +
    • + /etc/vservers/vserver-name/sched/cpu-id +
      +
      This directory contains per-CPU and/or per-bucket specific settings. Remember to set the cpu-id file. All CPUs inherit the global settings.
      +
        +
      • + bucket-id +
        +
        The bucket to apply these settings to
        +
      • +
      • + cpu-id +
        +
        The CPU to apply these settings to
        +
      • +
      • + fill-rate +
        +
        Amount of tokens to add each interval
        +
      • +
      • + fill-rate2 +
        +
        Amount of tokens to add each interval2 when advancing idle time
        +
      • +
      • + idle-time +
        +
        When this file exists, advancing idle time is activated
        +
      • +
      • + interval +
        +
        The interval between refills of the bucket
        +
      • +
      • + interval2 +
        +
        The interval between refills of the bucket when advancing idle time
        +
      • +
      • + priority-bias +
        +
        Bias added to priorities calculated within the guest (result is clamped to -20/+19)
        +
      • +
      • + tokens +
        +
        The initial amount of tokens to put in the bucket
        +
      • +
      • + tokens-max +
        +
        The bucket's size
        +
      • +
      • + tokens-min +
        +
        The minimum amount of tokens required to unhold the context
        +
      • +
      +
    • +
    +
  • /etc/vservers/vserver-name/scripts
    @@ -976,6 +1396,15 @@ environment variable must be set by one of the in-shellcontext scripts (the non-executable ones).
      +
    • + initialize +
      +
      +The scriptlet which will be executed before the root filesystem is mounted and +the configuration has been loaded. Before executing the script, the +configuration directory will be made the working directory. +
      +
    • post-start
      @@ -1032,6 +1461,21 @@ enabled and the directories are mounted. Before executing the script, the configuration directory will be made the working directory.
    • +
    • + /etc/vservers/vserver-name/scripts/initialize.d +
      +
      +Repository of initialize like scripts. Before executing the script, +the configuration directory will be made the working directory. +
      +
        +
      • + script +
        +
        See initialize.
        +
      • +
      +
    • /etc/vservers/vserver-name/scripts/post-start.d
      @@ -1124,13 +1568,35 @@ the configuration directory will be made the working directory.
  • +
  • + /etc/vservers/vserver-name/sysctl +
    +
      +
    • + /etc/vservers/vserver-name/sysctl/x +
      +
      'x' is an arbitrary name, replace it with e.g. integers
      +
        +
      • + setting +
        +
        The sysctl setting
        +
      • +
      • + value +
        +
        The value
        +
      • +
      +
    • +
    +
  • /etc/vservers/vserver-name/ulimits
    A directory with ulimits. Possible resources are cpu, data, fsize, -locks, memlock, nofile, nproc, rss and/or stack. This configuration -will be honored for kernel 2.4 only. +locks, memlock, nofile, nproc, rss and/or stack.
    • @@ -1145,7 +1611,7 @@ in the first line. The special keyword 'inf' is recognized. resource.hard
      -A file which contains the hard- of the given resource in the first +A file which contains the hard-limit of the given resource in the first line. The special keyword 'inf' is recognized.
    • @@ -1153,7 +1619,7 @@ line. The special keyword 'inf' is recognized. resource.soft
      -A file which contains the soft- of the given resource in the first +A file which contains the soft-limit of the given resource in the first line. The special keyword 'inf' is recognized.
      diff --git a/doc/configuration.xml b/doc/configuration.xml index 04b5ecf..0c5af43 100644 --- a/doc/configuration.xml +++ b/doc/configuration.xml @@ -1,6 +1,6 @@ - + @@ -18,6 +18,13 @@ A link to the default vserver rootdirectory. + + /var/cache/vservers + +A link to the directory which will hold cached information about +vservers. + + @@ -30,6 +37,20 @@ the 'barrier' attribute. Else, common chroot(2) exploits are possible. + + +Disable namespace cleanup globally. It can be overridden for a single vserver +by setting the namespace-cleanup flag +there. + + + + + +List of paths to skip during namespace cleanup. + + + Path of the vserver run reverse directory. This directory contains @@ -41,12 +62,40 @@ NOTE: this link exists in 0.30.202+ only; in previous versions it was a vserver specific setting. + + + +Contains the pathname of the shell which will be used by the "vserver +... enter" command. Can be overridden by the +per-guest shell. + + + + + +The default fstab file to put in newly built guests. + + + + + +If this file exists, kernel-side dynamic contexts will be used by the "vserver +... build" command. Otherwise a context will be generated, based on the +contents of context.next. + + + + + +The context id to use for the next guest created by "vserver ... build". + + /vservers/.pkg - + The default apt.conf which is going to be used. It is overridden by distribution specific configuration file. @@ -68,6 +117,33 @@ from this uri and install it at a temporary place. + + + 'x' is an arbitrary name, replace it with e.g. device names + + When this file exists, the device can be opened + + + When this file exists, the device can be created (if the guest has CAP_MKNOD) + + + +When this file exists, target will +have to exist as well and opening the device will in fact open the target device + + + + This file will let you specify unimplemented flags manually + + + Contains the name of a device node + + + Contains the device node of the target node to open instead of the device when remap is set + + + + @@ -80,7 +156,7 @@ is invoked from the kernel. This should point somewhere e.g. into -See vshelper/action. +See vshelper/action. @@ -110,7 +186,7 @@ skipped. -A list of files which will be made visibly by vprocunhide. Wildcards are +A list of files which will be made visible by vprocunhide. Wildcards are allowed and anything ending in '/' will be processed recursively. When this file exists, it overrides the defaults in SYSDEFAULTDIR/vprocunhide-files. The entries there must be absolute filenames inclusive the leading '/proc'. @@ -125,6 +201,13 @@ A symlink to the TTY device where input/output will be redirected from/to at startup via initscript. + + + +The environment to set when starting guests. Contains one VAR=VAL +pair per line. + + @@ -168,6 +251,59 @@ operation will fail. Most tools assume 'on' as the default value. + + + + +When this file exists, vlogin isn't used on vserver <guest> enter. + + + + + + + +A list of default options to supply to vserver ... build, one option per line. + + + + + + + + +When this file exists, the steps which setup and destroy a VLAN +interface will be executed. + + + + + + This directory contains some files which will be copied to the guests during build. + + The default /etc/hosts file. + + + The default /etc/nsswitch.conf file. + + + The default /etc/krb5.conf file. + + + The default /etc/krb.conf file. + + + The default /etc/krb.realms file. + + + The default /etc/ldap.conf file. + + + The default /etc/localtime file. + + + The default /etc/resolv.conf file. + @@ -208,9 +344,9 @@ Script which will be executed before packages will be installed. The configuration directory of the vserver which is going to be set up. - + -The pathname of the vserver binary. +The pathname of the util-vserver-vars file. @@ -227,7 +363,7 @@ The configuration directory of the vserver which is going to be set up. -The pathname of the vserver binary. +The pathname of the util-vserver-vars file. @@ -283,10 +419,18 @@ this distribution. The configuration directory for the vserver vserver-name. + + + ../.defaults/cachebase/VSERVERNAME + +Path of the storage area for cached information about this vserver. + + + ../.defaults/vdirbase/VSERVERNAME -Path of the vserver root directory +Path of the vserver root directory. @@ -299,16 +443,22 @@ the vserver is stopped, this can be a dangling symlink. -[experimental; name is subject of possible change] Contains the system capabilities. See -lib/bcaps-v13.c +Contains the system capabilities. See +lib/bcaps-v13.c for possible values. -[experimental; name is subject of possible change] Contains the -context capabilities. See lib/ccaps-v13.c +Contains the context capabilities. See lib/ccaps-v13.c +for possible values. + + + + +Contains the network capabilities. See lib/ncaps-net.c for possible values. @@ -329,9 +479,24 @@ the 'barrier' attribute. Else, common chroot(2) exploits are possible. + + +Overrides the global nonamespace-cleanup flag and enables +namespace cleanup for the current vserver. + + + + + +List of paths to skip during namespace cleanup. This overrides the global +namespace-cleanup-skip +file. + + + -[experimental; name is subject of possible change] Contains the +[deprecated; use sched instead] Contains the scheduler parameters, one per line. The Hard CPU limit uses a mechanism called a Token Bucket. the @@ -342,6 +507,9 @@ a running process consumes one token from the bucket, unless the bucket is empty. If the bucket is empty the process is put in the hold queue. When the bucket has been refilled to at least M tokens, all on hold processes are rescheduled. + +See the Linux +VServer Wiki for more information about this file. @@ -394,7 +562,7 @@ Contains per line a capability. This file is used for the 2.4 kernel only; for 2.6 use bcapabilities. - + Contains the pathname of the shell which will be used by the "vserver ... enter" command. @@ -411,9 +579,10 @@ values. Contains per line a flag. See lib/cflags-v13.c +url="http://svn.linux-vserver.org/svn/util-vserver/trunk/lib/cflags-v13.c">lib/cflags-v13.c for possible values. + + + + +Contains a network flag per line. See lib/nflags-net.c +for possible values. + @@ -491,7 +668,6 @@ Contains the init-style. - @@ -581,6 +757,13 @@ will be stopped before its dependencies. Content of this file are vserver ids (one name per line). + + + +The environment to set when starting the guest. Contains one VAR=VAL +pair per line. + + @@ -588,12 +771,12 @@ vserver ids (one name per line). 30 The timeout in seconds which is used when synchronising vserver -startup/shutdown with the vshelper. When no set, 30 seconds will be +startup/shutdown with the vshelper. When not set, 30 seconds will be assumed. - + restart The action which is going to be executed when a vshelper event @@ -650,7 +833,7 @@ skipped. -See vshelper/action. +See vshelper/action. @@ -729,16 +912,16 @@ environment variable must be set by one of the in-shellcontext scripts (the non-executable ones). - + -The scriptlet which will be executed before the network-interfaces are -enabled and the directories are mounted. Before executing the script, -the configuration directory will be made the working directory. +The scriptlet which will be executed before the root filesystem is mounted and +the configuration has been loaded. Before executing the script, the +configuration directory will be made the working directory. - + -The configuration directory of the current vserver. +The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). @@ -746,24 +929,60 @@ The configuration directory of the current vserver. The name of the current vserver. + + + + +Repository of initialize like scripts. Before executing the script, +the configuration directory will be made the working directory. + + + See initialize. + + + +The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). + + + + +The name of the current vserver. + + + + + + + + +The scriptlet which will be executed before the network-interfaces are +enabled and the directories are mounted. Before executing the script, +the configuration directory will be made the working directory. + + The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). + + +The name of the current vserver. + + Repository of prepre-start like scripts. Before executing the script, the configuration directory will be made the working directory. - + See prepre-start. - + -The configuration directory of the current vserver. +The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). @@ -771,11 +990,6 @@ The configuration directory of the current vserver. The name of the current vserver. - - -The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). - - @@ -788,9 +1002,9 @@ been started. Before executing the script, the vserver root directory will be made the working directory. - + -The configuration directory of the current vserver. +The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). @@ -798,32 +1012,24 @@ The configuration directory of the current vserver. The name of the current vserver. - - -The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). - - Repository of pre-start like scripts. Before executing these scripts, the vserver root directory will be made the working directory. - + See pre-start. - + -The configuration directory of the current vserver. +The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). - The name of the current vserver. - - -The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). +The name of the current vserver. @@ -838,17 +1044,16 @@ started. Before executing the script, the vserver root directory will be made the working directory. - - The configuration directory of the current vserver. - - - The name of the current vserver. - The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). + + +The name of the current vserver. + + @@ -859,17 +1064,16 @@ the vserver root directory will be made the working directory. See post-start. - - The configuration directory of the current vserver. - - - The name of the current vserver. - The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). + + +The name of the current vserver. + + @@ -882,38 +1086,36 @@ stopped. Before executing the script, the vserver root directory will be made the working directory. - - The configuration directory of the current vserver. - - - The name of the current vserver. - The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). + + +The name of the current vserver. + + Repository of pre-stop like scripts. Before executing the script, the vserver root directory will be made the working directory. - + See pre-stop. - - The configuration directory of the current vserver. - - - The name of the current vserver. - The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). + + +The name of the current vserver. + + @@ -926,17 +1128,16 @@ interfaces disabled. Before executing the script, the vserver root directory will be made the working directory. - - The configuration directory of the current vserver. - - - The name of the current vserver. - The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). + + +The name of the current vserver. + + @@ -947,17 +1148,16 @@ vserver root directory will be made the working directory. See post-stop. - - The configuration directory of the current vserver. - - - The name of the current vserver. - The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). + + +The name of the current vserver. + + @@ -969,17 +1169,16 @@ completely. Before executing the script, the vserver root directory will be made the working directory. - - The configuration directory of the current vserver. - - - The name of the current vserver. - The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). + + +The name of the current vserver. + + @@ -990,17 +1189,16 @@ the vserver root directory will be made the working directory. See postpost-stop. - - The configuration directory of the current vserver. - - - The name of the current vserver. - The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). + + +The name of the current vserver. + + @@ -1022,6 +1220,20 @@ The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...). The default scope of the network interfaces. + + +When this file exists, the steps which setup and destroy a VLAN +interface will be executed for all interfaces of this vserver. + + + + +When this file exists, the steps which setup and destroy a VLAN +interface will be skipped. This overrides the global +vlandev setting for +this vserver. + + @@ -1068,30 +1280,43 @@ already. This can be used to assign primary interfaces which are created by the host or another vserver. + + +When this file exists, the steps which setup and destroy a VLAN +interface will be skipped. This will override the global +vlandev and the per-guest +vlandev. + + + + +When this file exists, the steps which setup and destroy a VLAN +interface will be executed. + + A directory with ulimits. Possible resources are cpu, data, fsize, -locks, memlock, nofile, nproc, rss and/or stack. This configuration -will be honored for kernel 2.4 only. - +locks, memlock, nofile, nproc, rss and/or stack. + A file which contains the hard- and soft-limit of the given resource in the first line. The special keyword 'inf' is recognized. - + -A file which contains the hard- of the given resource in the first +A file which contains the hard-limit of the given resource in the first line. The special keyword 'inf' is recognized. - + -A file which contains the soft- of the given resource in the first +A file which contains the soft-limit of the given resource in the first line. The special keyword 'inf' is recognized. @@ -1100,30 +1325,31 @@ line. The special keyword 'inf' is recognized. A directory with resource limits. Possible resources are cpu, fsize, -data, stack, core, rss, nproc, nofile, memlock, as and locks. This +data, stack, core, rss, nproc, nofile, memlock, as, locks, msgqueue, +nsock, openfd, anon, shmem, semary, nsems and dentry. This configuration will be honored for kernel 2.6 only. - + A file which contains the hard- and soft-limit of the given resource in the first line. The special keyword 'inf' is recognized. - + -A file which contains the hard- of the given resource in the first +A file which contains the hard-limit of the given resource in the first line. The special keyword 'inf' is recognized. - + -A file which contains the soft- of the given resource in the first +A file which contains the soft-limit of the given resource in the first line. The special keyword 'inf' is recognized. -A file which contains the guaranted minimum of the given resource in +A file which contains the guaranteed minimum of the given resource in the first line. The special keyword 'inf' is recognized. @@ -1156,5 +1382,121 @@ tools and can *not* be modified. The NIS domainname of the vserver + + + + + The directory to which the limit should be applied + + + The amount of inodes this vserver should be limited to + + + The amount of space this vserver should be limited to (measured in blocks of 1024 bytes) + + + How much space (percentage-wise) should be reserved for the root user + + + + + + + 'x' is an arbitrary name, replace it with e.g. integers + + The sysctl setting + + + The value + + + + + + + The name of the cpuset for this vserver + + + The list of CPUs in this cpuset + + + The list of Memory Nodes in this cpuset + + + Is the CPU assignment exclusive? + + + Is the memory node assignment exclusive? + + + When this file exists, the cpuset will be assumed to exist already + + + + + + The initial amount of tokens to put in the bucket + + + The minimum amount of tokens required to unhold the context + + + The bucket's size + + + Amount of tokens to add each interval + + + The interval between refills of the bucket + + + Bias added to priorities calculated within the guest (result is clamped to -20/+19) + + + Amount of tokens to add each interval2 when advancing idle time + + + The interval between refills of the bucket when advancing idle time + + + When this file exists, advancing idle time is activated + + + This directory contains per-CPU and/or per-bucket specific settings. Remember to set the cpu-id file. All CPUs inherit the global settings. + + The initial amount of tokens to put in the bucket + + + The minimum amount of tokens required to unhold the context + + + The bucket's size + + + Amount of tokens to add each interval + + + The interval between refills of the bucket + + + Bias added to priorities calculated within the guest (result is clamped to -20/+19) + + + Amount of tokens to add each interval2 when advancing idle time + + + The interval between refills of the bucket when advancing idle time + + + When this file exists, advancing idle time is activated + + + The CPU to apply these settings to + + + The bucket to apply these settings to + + + diff --git a/doc/configuration.xsd b/doc/configuration.xsd index e665a1e..df42555 100644 --- a/doc/configuration.xsd +++ b/doc/configuration.xsd @@ -4,7 +4,7 @@ Filesystem Database schema writen by Olivier Poitrey on 4/20/2004 - Version $Id: configuration.xsd,v 1.1 2004/04/22 19:24:05 ensc Exp $ + Version $Id: configuration.xsd 1496 2004-04-22 19:24:05Z ensc $ diff --git a/ensc_fmt/Makefile-files b/ensc_fmt/Makefile-files index 7dbdff7..2e8f7e4 100644 --- a/ensc_fmt/Makefile-files +++ b/ensc_fmt/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- makefile -*-- +## $Id: Makefile-files 1583 2004-06-16 10:06:03Z ensc $ --*- makefile -*-- ## Copyright (C) 2004 Enrico Scholz ## diff --git a/ensc_fmt/fmt-32.c b/ensc_fmt/fmt-32.c index 4a347b7..123cd09 100644 --- a/ensc_fmt/fmt-32.c +++ b/ensc_fmt/fmt-32.c @@ -1,4 +1,4 @@ -// $Id: fmt-32.c,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*-- +// $Id: fmt-32.c 1583 2004-06-16 10:06:03Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/ensc_fmt/fmt-64.c b/ensc_fmt/fmt-64.c index 553b78e..34485ce 100644 --- a/ensc_fmt/fmt-64.c +++ b/ensc_fmt/fmt-64.c @@ -1,4 +1,4 @@ -// $Id: fmt-64.c,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*-- +// $Id: fmt-64.c 1583 2004-06-16 10:06:03Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/ensc_fmt/fmt-internal.h b/ensc_fmt/fmt-internal.h index acfcdf8..5409422 100644 --- a/ensc_fmt/fmt-internal.h +++ b/ensc_fmt/fmt-internal.h @@ -1,4 +1,4 @@ -// $Id: fmt-internal.h,v 1.2 2004/08/19 13:53:54 ensc Exp $ --*- c -*-- +// $Id: fmt-internal.h 1647 2004-08-19 13:53:54Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/ensc_fmt/fmt-tai64n.c b/ensc_fmt/fmt-tai64n.c index 6aad24a..7b15d22 100644 --- a/ensc_fmt/fmt-tai64n.c +++ b/ensc_fmt/fmt-tai64n.c @@ -1,4 +1,4 @@ -// $Id: fmt-tai64n.c,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*-- +// $Id: fmt-tai64n.c 1583 2004-06-16 10:06:03Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_fmt/fmt.h b/ensc_fmt/fmt.h index 026b6d7..2a087c4 100644 --- a/ensc_fmt/fmt.h +++ b/ensc_fmt/fmt.h @@ -1,4 +1,4 @@ -// $Id: fmt.h,v 1.3 2005/03/17 14:46:19 ensc Exp $ --*- c -*-- +// $Id: fmt.h 1890 2005-03-17 14:46:19Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/ensc_fmt/fmt.hc b/ensc_fmt/fmt.hc index 43c8ced..0691446 100644 --- a/ensc_fmt/fmt.hc +++ b/ensc_fmt/fmt.hc @@ -1,4 +1,4 @@ -// $Id: fmt.hc,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*-- +// $Id: fmt.hc 1583 2004-06-16 10:06:03Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/ensc_fmt/fmtx-32.c b/ensc_fmt/fmtx-32.c index d5b113d..7a179c6 100644 --- a/ensc_fmt/fmtx-32.c +++ b/ensc_fmt/fmtx-32.c @@ -1,4 +1,4 @@ -// $Id: fmtx-32.c,v 1.2 2005/03/17 14:46:19 ensc Exp $ --*- c -*-- +// $Id: fmtx-32.c 1890 2005-03-17 14:46:19Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/ensc_fmt/fmtx-64.c b/ensc_fmt/fmtx-64.c index 13703d0..2a0f908 100644 --- a/ensc_fmt/fmtx-64.c +++ b/ensc_fmt/fmtx-64.c @@ -1,4 +1,4 @@ -// $Id: fmtx-64.c,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*-- +// $Id: fmtx-64.c 1583 2004-06-16 10:06:03Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/ensc_fmt/fmtx.hc b/ensc_fmt/fmtx.hc index f1afd96..6e50205 100644 --- a/ensc_fmt/fmtx.hc +++ b/ensc_fmt/fmtx.hc @@ -1,4 +1,4 @@ -// $Id: fmtx.hc,v 1.1 2004/06/16 10:06:03 ensc Exp $ --*- c -*-- +// $Id: fmtx.hc 2179 2005-10-25 16:11:32Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // @@ -32,7 +32,7 @@ size_t CONCAT(FMT_P(xuint),)(char *ptr, CONCAT(uint_least,_t) val) { - FMT_FN(16,8); + FMT_FN(16,2); } size_t diff --git a/ensc_vector/Makefile-files b/ensc_vector/Makefile-files index 450f49e..d08ca83 100644 --- a/ensc_vector/Makefile-files +++ b/ensc_vector/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.9 2005/07/03 09:12:31 ensc Exp $ --*- makefile -*-- +## $Id: Makefile-files 2113 2005-07-03 09:12:31Z ensc $ --*- makefile -*-- ## Copyright (C) 2004 Enrico Scholz ## diff --git a/ensc_vector/list-add.c b/ensc_vector/list-add.c index 0a13835..fa2fcc1 100644 --- a/ensc_vector/list-add.c +++ b/ensc_vector/list-add.c @@ -1,4 +1,4 @@ -// $Id: list-add.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*-- +// $Id: list-add.c 1896 2005-03-17 14:51:55Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/list-at.c b/ensc_vector/list-at.c index e379a81..9c24864 100644 --- a/ensc_vector/list-at.c +++ b/ensc_vector/list-at.c @@ -1,4 +1,4 @@ -// $Id: list-at.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*-- +// $Id: list-at.c 1896 2005-03-17 14:51:55Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/list-free.c b/ensc_vector/list-free.c index 1855c2d..e276d65 100644 --- a/ensc_vector/list-free.c +++ b/ensc_vector/list-free.c @@ -1,4 +1,4 @@ -// $Id: list-free.c,v 1.2 2005/03/19 02:03:30 ensc Exp $ --*- c -*-- +// $Id: list-free.c 1935 2005-03-19 02:03:30Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/list-init.c b/ensc_vector/list-init.c index 7fc14c4..35074b2 100644 --- a/ensc_vector/list-init.c +++ b/ensc_vector/list-init.c @@ -1,4 +1,4 @@ -// $Id: list-init.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*-- +// $Id: list-init.c 1896 2005-03-17 14:51:55Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/list-insertinternal.c b/ensc_vector/list-insertinternal.c index f3ae833..007e755 100644 --- a/ensc_vector/list-insertinternal.c +++ b/ensc_vector/list-insertinternal.c @@ -1,4 +1,4 @@ -// $Id: list-insertinternal.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*-- +// $Id: list-insertinternal.c 1896 2005-03-17 14:51:55Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/list-internal.h b/ensc_vector/list-internal.h index 1eb567c..8e659ab 100644 --- a/ensc_vector/list-internal.h +++ b/ensc_vector/list-internal.h @@ -1,4 +1,4 @@ -// $Id: list-internal.h,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*-- +// $Id: list-internal.h 1896 2005-03-17 14:51:55Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/list-search.c b/ensc_vector/list-search.c index 96f7b19..a7275b1 100644 --- a/ensc_vector/list-search.c +++ b/ensc_vector/list-search.c @@ -1,4 +1,4 @@ -// $Id: list-search.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*-- +// $Id: list-search.c 1896 2005-03-17 14:51:55Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/list-searchselforg.c b/ensc_vector/list-searchselforg.c index 990ef87..c573edb 100644 --- a/ensc_vector/list-searchselforg.c +++ b/ensc_vector/list-searchselforg.c @@ -1,4 +1,4 @@ -// $Id: list-searchselforg.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*-- +// $Id: list-searchselforg.c 1896 2005-03-17 14:51:55Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/list.h b/ensc_vector/list.h index f6e5920..ddf798b 100644 --- a/ensc_vector/list.h +++ b/ensc_vector/list.h @@ -1,4 +1,4 @@ -// $Id: list.h,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*-- +// $Id: list.h 1896 2005-03-17 14:51:55Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/list.hc b/ensc_vector/list.hc index 5c1bd02..08a8682 100644 --- a/ensc_vector/list.hc +++ b/ensc_vector/list.hc @@ -1,4 +1,4 @@ -// $Id: list.hc,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*-- +// $Id: list.hc 1896 2005-03-17 14:51:55Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/testsuite/Makefile-files b/ensc_vector/testsuite/Makefile-files index 5be6739..eaf2598 100644 --- a/ensc_vector/testsuite/Makefile-files +++ b/ensc_vector/testsuite/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.4 2005/03/18 00:13:50 ensc Exp $ --*- makefile -*-- +## $Id: Makefile-files 1907 2005-03-18 00:13:50Z ensc $ --*- makefile -*-- ## Copyright (C) 2004 Enrico Scholz ## diff --git a/ensc_vector/testsuite/test1.c b/ensc_vector/testsuite/test1.c index e3e7f25..c30691b 100644 --- a/ensc_vector/testsuite/test1.c +++ b/ensc_vector/testsuite/test1.c @@ -1,4 +1,4 @@ -// $Id: test1.c,v 1.4 2005/03/17 14:49:01 ensc Exp $ --*- c -*-- +// $Id: test1.c 1894 2005-03-17 14:49:01Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/testsuite/test2.c b/ensc_vector/testsuite/test2.c index e423a61..1c7e1fe 100644 --- a/ensc_vector/testsuite/test2.c +++ b/ensc_vector/testsuite/test2.c @@ -1,4 +1,4 @@ -// $Id: test2.c,v 1.2 2005/03/24 12:41:27 ensc Exp $ --*- c -*-- +// $Id: test2.c 1975 2005-03-24 12:41:27Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/vector-clear.c b/ensc_vector/vector-clear.c index 081e686..6ef052d 100644 --- a/ensc_vector/vector-clear.c +++ b/ensc_vector/vector-clear.c @@ -1,4 +1,4 @@ -// $Id: vector-clear.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: vector-clear.c 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-foreach.c b/ensc_vector/vector-foreach.c index 57831ce..aec7bd5 100644 --- a/ensc_vector/vector-foreach.c +++ b/ensc_vector/vector-foreach.c @@ -1,4 +1,4 @@ -// $Id: vector-foreach.c,v 1.1 2005/07/03 09:12:31 ensc Exp $ --*- c -*-- +// $Id: vector-foreach.c 2113 2005-07-03 09:12:31Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-free.c b/ensc_vector/vector-free.c index eda1957..9ef2f40 100644 --- a/ensc_vector/vector-free.c +++ b/ensc_vector/vector-free.c @@ -1,4 +1,4 @@ -// $Id: vector-free.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: vector-free.c 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-init.c b/ensc_vector/vector-init.c index be4eafe..86097db 100644 --- a/ensc_vector/vector-init.c +++ b/ensc_vector/vector-init.c @@ -1,4 +1,4 @@ -// $Id: vector-init.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: vector-init.c 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-insert.c b/ensc_vector/vector-insert.c index 28a1c5e..dd86b07 100644 --- a/ensc_vector/vector-insert.c +++ b/ensc_vector/vector-insert.c @@ -1,4 +1,4 @@ -// $Id: vector-insert.c,v 1.2 2004/02/06 16:42:56 ensc Exp $ --*- c -*-- +// $Id: vector-insert.c 824 2004-02-06 16:42:56Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-internal.h b/ensc_vector/vector-internal.h index 35b4968..cc67e1c 100644 --- a/ensc_vector/vector-internal.h +++ b/ensc_vector/vector-internal.h @@ -1,4 +1,4 @@ -// $Id: vector-internal.h,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: vector-internal.h 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-popback.c b/ensc_vector/vector-popback.c index beebecf..5759d41 100644 --- a/ensc_vector/vector-popback.c +++ b/ensc_vector/vector-popback.c @@ -1,4 +1,4 @@ -// $Id: vector-popback.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: vector-popback.c 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-pushback.c b/ensc_vector/vector-pushback.c index 4e1e7c9..8e2e230 100644 --- a/ensc_vector/vector-pushback.c +++ b/ensc_vector/vector-pushback.c @@ -1,4 +1,4 @@ -// $Id: vector-pushback.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: vector-pushback.c 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-resize.c b/ensc_vector/vector-resize.c index 2a15cf2..53aeb61 100644 --- a/ensc_vector/vector-resize.c +++ b/ensc_vector/vector-resize.c @@ -1,4 +1,4 @@ -// $Id: vector-resize.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: vector-resize.c 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-resizeinternal.hc b/ensc_vector/vector-resizeinternal.hc index 97a39ee..aa604d4 100644 --- a/ensc_vector/vector-resizeinternal.hc +++ b/ensc_vector/vector-resizeinternal.hc @@ -1,4 +1,4 @@ -// $Id: vector-resizeinternal.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: vector-resizeinternal.hc 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-search.c b/ensc_vector/vector-search.c index 5d40b00..7f9421f 100644 --- a/ensc_vector/vector-search.c +++ b/ensc_vector/vector-search.c @@ -1,4 +1,4 @@ -// $Id: vector-search.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: vector-search.c 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-searchselforg.c b/ensc_vector/vector-searchselforg.c index 420e367..12372a9 100644 --- a/ensc_vector/vector-searchselforg.c +++ b/ensc_vector/vector-searchselforg.c @@ -1,4 +1,4 @@ -// $Id: vector-searchselforg.c,v 1.1 2005/03/17 14:47:21 ensc Exp $ --*- c -*-- +// $Id: vector-searchselforg.c 1896 2005-03-17 14:51:55Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_vector/vector-sort.c b/ensc_vector/vector-sort.c index 7c02bc0..5dac38b 100644 --- a/ensc_vector/vector-sort.c +++ b/ensc_vector/vector-sort.c @@ -1,4 +1,4 @@ -// $Id: vector-sort.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: vector-sort.c 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-unique.c b/ensc_vector/vector-unique.c index 2641f61..ab38378 100644 --- a/ensc_vector/vector-unique.c +++ b/ensc_vector/vector-unique.c @@ -1,4 +1,4 @@ -// $Id: vector-unique.c,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: vector-unique.c 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector-zeroend.c b/ensc_vector/vector-zeroend.c index e300355..371fc80 100644 --- a/ensc_vector/vector-zeroend.c +++ b/ensc_vector/vector-zeroend.c @@ -1,4 +1,4 @@ -// $Id: vector-zeroend.c,v 1.1 2004/06/16 10:10:55 ensc Exp $ --*- c -*-- +// $Id: vector-zeroend.c 1585 2004-06-16 10:10:55Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_vector/vector.h b/ensc_vector/vector.h index b374176..7fd7b46 100644 --- a/ensc_vector/vector.h +++ b/ensc_vector/vector.h @@ -1,4 +1,4 @@ -// $Id: vector.h,v 1.4 2005/07/03 09:12:31 ensc Exp $ --*- c++ -*-- +// $Id: vector.h 2113 2005-07-03 09:12:31Z ensc $ --*- c++ -*-- // Copyright (C) 2002,2004 Enrico Scholz // diff --git a/ensc_vector/vector.hc b/ensc_vector/vector.hc index 13ae3e8..9964a1a 100644 --- a/ensc_vector/vector.hc +++ b/ensc_vector/vector.hc @@ -1,4 +1,4 @@ -// $Id: vector.hc,v 1.3 2005/07/03 09:12:31 ensc Exp $ --*- c++ -*-- +// $Id: vector.hc 2113 2005-07-03 09:12:31Z ensc $ --*- c++ -*-- // Copyright (C) 2002,2003 Enrico Scholz // diff --git a/ensc_wrappers/Makefile-files b/ensc_wrappers/Makefile-files index 5b7d755..a8fded1 100644 --- a/ensc_wrappers/Makefile-files +++ b/ensc_wrappers/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.4 2005/02/25 23:31:19 ensc Exp $ --*- makefile -*-- +## $Id: Makefile-files 2323 2006-09-19 15:20:56Z dhozac $ --*- makefile -*-- ## Copyright (C) 2004 Enrico Scholz ## @@ -25,8 +25,10 @@ noinst_HEADERS += ensc_wrappers/wrappers-clone.hc \ ensc_wrappers/wrappers-pivot.hc \ ensc_wrappers/wrappers-resource.hc \ ensc_wrappers/wrappers-socket.hc \ + ensc_wrappers/wrappers-stat.hc \ ensc_wrappers/wrappers-stdlib.hc \ ensc_wrappers/wrappers-string.hc \ + ensc_wrappers/wrappers-termios.hc \ ensc_wrappers/wrappers-unistd.hc \ ensc_wrappers/wrappers-vserver.hc \ ensc_wrappers/wrappers-wait.hc \ diff --git a/ensc_wrappers/wrappers-clone.hc b/ensc_wrappers/wrappers-clone.hc index 7b7ac9a..fbff870 100644 --- a/ensc_wrappers/wrappers-clone.hc +++ b/ensc_wrappers/wrappers-clone.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-clone.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: wrappers-clone.hc 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-dirent.hc b/ensc_wrappers/wrappers-dirent.hc index 66184f5..c102dee 100644 --- a/ensc_wrappers/wrappers-dirent.hc +++ b/ensc_wrappers/wrappers-dirent.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-dirent.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: wrappers-dirent.hc 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-fcntl.hc b/ensc_wrappers/wrappers-fcntl.hc index 5bc6b6d..72c3320 100644 --- a/ensc_wrappers/wrappers-fcntl.hc +++ b/ensc_wrappers/wrappers-fcntl.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-fcntl.hc,v 1.3 2004/04/20 17:57:12 ensc Exp $ --*- c -*-- +// $Id: wrappers-fcntl.hc 1473 2004-04-20 17:57:12Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-io.hc b/ensc_wrappers/wrappers-io.hc index e9d90fd..684b77f 100644 --- a/ensc_wrappers/wrappers-io.hc +++ b/ensc_wrappers/wrappers-io.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-io.hc,v 1.3 2005/07/03 12:33:44 ensc Exp $ --*- c -*-- +// $Id: wrappers-io.hc 2116 2005-07-03 12:33:44Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-ioctl.hc b/ensc_wrappers/wrappers-ioctl.hc index 68c9c63..33fd1e9 100644 --- a/ensc_wrappers/wrappers-ioctl.hc +++ b/ensc_wrappers/wrappers-ioctl.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-ioctl.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: wrappers-ioctl.hc 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-iosock.hc b/ensc_wrappers/wrappers-iosock.hc index 4847fe5..579a740 100644 --- a/ensc_wrappers/wrappers-iosock.hc +++ b/ensc_wrappers/wrappers-iosock.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-iosock.hc,v 1.3 2005/07/03 12:33:44 ensc Exp $ --*- c -*-- +// $Id: wrappers-iosock.hc 2116 2005-07-03 12:33:44Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-mount.hc b/ensc_wrappers/wrappers-mount.hc index 1e961cb..42ff590 100644 --- a/ensc_wrappers/wrappers-mount.hc +++ b/ensc_wrappers/wrappers-mount.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-mount.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: wrappers-mount.hc 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-pivot.hc b/ensc_wrappers/wrappers-pivot.hc index daf1249..bd59d03 100644 --- a/ensc_wrappers/wrappers-pivot.hc +++ b/ensc_wrappers/wrappers-pivot.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-pivot.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: wrappers-pivot.hc 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-resource.hc b/ensc_wrappers/wrappers-resource.hc index 97ed41e..271ffc2 100644 --- a/ensc_wrappers/wrappers-resource.hc +++ b/ensc_wrappers/wrappers-resource.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-resource.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: wrappers-resource.hc 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-socket.hc b/ensc_wrappers/wrappers-socket.hc index c5c5424..d70aa97 100644 --- a/ensc_wrappers/wrappers-socket.hc +++ b/ensc_wrappers/wrappers-socket.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-socket.hc,v 1.2 2004/08/19 13:54:27 ensc Exp $ --*- c -*-- +// $Id: wrappers-socket.hc 1649 2004-08-19 13:54:27Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-stat.hc b/ensc_wrappers/wrappers-stat.hc new file mode 100644 index 0000000..017fd0a --- /dev/null +++ b/ensc_wrappers/wrappers-stat.hc @@ -0,0 +1,46 @@ +// $Id: wrappers-stat.hc 2253 2006-01-22 11:18:14Z ensc $ --*- c -*-- + +// Copyright (C) 2004 Enrico Scholz +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +#ifndef H_ENSC_IN_WRAPPERS_H +# error wrappers-stat.hc can not be used in this way +#endif + +#define ENSC_STAT_DECL(FUNC) \ + inline static WRAPPER_DECL void \ + E##FUNC(char const *filename, struct stat *buf) \ + { \ + FatalErrnoError(FUNC(filename, buf)==-1, #FUNC "()"); \ + } \ + \ + inline static WRAPPER_DECL void \ + E##FUNC##D(char const *filename, struct stat *buf) \ + { \ + ENSC_DETAIL1(msg, #FUNC, filename, 1); \ + FatalErrnoError(FUNC(filename, buf)==-1, msg); \ + } + + +ENSC_STAT_DECL(stat) +ENSC_STAT_DECL(lstat) + +#undef ENSC_STAT_DECL + + inline static WRAPPER_DECL void +Efstat(int fd, struct stat *buf) +{ + FatalErrnoError(fstat(fd, buf)==-1, "fstat()"); +} diff --git a/ensc_wrappers/wrappers-stdlib.hc b/ensc_wrappers/wrappers-stdlib.hc index 2ae432d..dfda8ff 100644 --- a/ensc_wrappers/wrappers-stdlib.hc +++ b/ensc_wrappers/wrappers-stdlib.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-stdlib.hc,v 1.2 2004/08/19 13:54:45 ensc Exp $ --*- c -*-- +// $Id: wrappers-stdlib.hc 1650 2004-08-19 13:54:45Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-string.hc b/ensc_wrappers/wrappers-string.hc index 9a24653..0a1884a 100644 --- a/ensc_wrappers/wrappers-string.hc +++ b/ensc_wrappers/wrappers-string.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-string.hc,v 1.1 2005/02/25 23:31:19 ensc Exp $ --*- c -*-- +// $Id: wrappers-string.hc 1872 2005-02-25 23:31:19Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/ensc_wrappers/wrappers-termios.hc b/ensc_wrappers/wrappers-termios.hc new file mode 100644 index 0000000..45d5260 --- /dev/null +++ b/ensc_wrappers/wrappers-termios.hc @@ -0,0 +1,32 @@ +// $Id: wrappers-termios.hc 2306 2006-09-12 16:55:42Z dhozac $ --*- c -*-- + +// Copyright (C) 2006 Enrico Scholz +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +#ifndef H_ENSC_IN_WRAPPERS_H +# error wrappers-termios.hc can not be used in this way +#endif + +inline static WRAPPER_DECL void +Etcgetattr(int fd, struct termios *termios_p) +{ + FatalErrnoError(tcgetattr(fd, termios_p)==-1, "tcgetattr()"); +} + +inline static WRAPPER_DECL void +Etcsetattr(int fd, int optional_actions, struct termios *termios_p) +{ + FatalErrnoError(tcsetattr(fd, optional_actions, termios_p)==-1, "tcsetattr()"); +} diff --git a/ensc_wrappers/wrappers-unistd.hc b/ensc_wrappers/wrappers-unistd.hc index 885641e..8762120 100644 --- a/ensc_wrappers/wrappers-unistd.hc +++ b/ensc_wrappers/wrappers-unistd.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-unistd.hc,v 1.9 2005/07/03 12:33:44 ensc Exp $ --*- c -*-- +// $Id: wrappers-unistd.hc 2467 2007-01-21 18:26:45Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -138,6 +138,12 @@ Eunlink(char const *pathname) FatalErrnoError(unlink(pathname)==-1, "unlink()"); } +inline static WRAPPER_DECL void +Elink(char const *oldpath, char const *newpath) +{ + FatalErrnoError(link(oldpath, newpath)==-1, "link()"); +} + inline static void Esetuid(uid_t uid) { @@ -156,6 +162,12 @@ Esetgroups(size_t size, const gid_t *list) { FatalErrnoError(setgroups(size, list)==-1, "setgroups()"); } + +inline static void +Einitgroups(const char *user, gid_t group) +{ + FatalErrnoError(initgroups(user, group)==-1, "initgroups()"); +} #endif inline static WRAPPER_DECL int diff --git a/ensc_wrappers/wrappers-vserver.hc b/ensc_wrappers/wrappers-vserver.hc index 1b8f3f6..dddc258 100644 --- a/ensc_wrappers/wrappers-vserver.hc +++ b/ensc_wrappers/wrappers-vserver.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-vserver.hc,v 1.11 2004/10/19 23:11:23 ensc Exp $ --*- c++ -*-- +// $Id: wrappers-vserver.hc 2501 2007-02-20 17:33:35Z dhozac $ --*- c++ -*-- // Copyright (C) 2004 Enrico Scholz // @@ -20,6 +20,8 @@ # error wrappers_handler.hc can not be used in this way #endif +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) + inline static WRAPPER_DECL xid_t Evc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags) { @@ -28,6 +30,8 @@ Evc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags) return res; } +#endif + inline static WRAPPER_DECL xid_t Evc_get_task_xid(pid_t pid) { @@ -36,6 +40,14 @@ Evc_get_task_xid(pid_t pid) return res; } +inline static WRAPPER_DECL nid_t +Evc_get_task_nid(pid_t pid) +{ + register nid_t res = vc_get_task_nid(pid); + FatalErrnoError(res==VC_NOCTX, "vc_get_task_nid()"); + return res; +} + inline static WRAPPER_DECL xid_t Evc_ctx_create(xid_t xid) { @@ -44,10 +56,24 @@ Evc_ctx_create(xid_t xid) return res; } +inline static WRAPPER_DECL nid_t +Evc_net_create(nid_t nid) +{ + register nid_t res = vc_net_create(nid); + FatalErrnoError(res==VC_NOCTX, "vc_net_create()"); + return res; +} + +inline static WRAPPER_DECL void +Evc_ctx_migrate(xid_t xid, uint_least64_t flags) +{ + FatalErrnoError(vc_ctx_migrate(xid, flags)==-1, "vc_ctx_migrate()"); +} + inline static WRAPPER_DECL void -Evc_ctx_migrate(xid_t xid) +Evc_net_migrate(nid_t nid) { - FatalErrnoError(vc_ctx_migrate(xid)==-1, "vc_ctx_migrate()"); + FatalErrnoError(vc_net_migrate(nid)==-1, "vc_net_migrate()"); } inline static WRAPPER_DECL void @@ -62,6 +88,18 @@ Evc_set_cflags(xid_t xid, struct vc_ctx_flags const *flags) FatalErrnoError(vc_set_cflags(xid, flags)==-1, "vc_set_cflags()"); } +inline static WRAPPER_DECL void +Evc_get_nflags(nid_t nid, struct vc_net_flags *flags) +{ + FatalErrnoError(vc_get_nflags(nid, flags)==-1, "vc_get_nflags()"); +} + +inline static WRAPPER_DECL void +Evc_set_nflags(nid_t nid, struct vc_net_flags const *flags) +{ + FatalErrnoError(vc_set_nflags(nid, flags)==-1, "vc_set_nflags()"); +} + inline static WRAPPER_DECL void Evc_set_vhi_name(xid_t xid, vc_uts_type type, char const *val, size_t len) @@ -82,15 +120,27 @@ Evc_set_ccaps(xid_t xid, struct vc_ctx_caps const *caps) } inline static WRAPPER_DECL void -Evc_set_namespace() +Evc_get_ncaps(nid_t nid, struct vc_net_caps *caps) +{ + FatalErrnoError(vc_get_ncaps(nid, caps)==-1, "vc_get_ncaps()"); +} + +inline static WRAPPER_DECL void +Evc_set_ncaps(nid_t nid, struct vc_net_caps const *caps) { - FatalErrnoError(vc_set_namespace()==-1, "vc_set_namespace()"); + FatalErrnoError(vc_set_ncaps(nid, caps)==-1, "vc_set_ncaps()"); } inline static WRAPPER_DECL void -Evc_enter_namespace(xid_t xid) +Evc_set_namespace(xid_t xid, uint_least64_t mask) { - FatalErrnoError(vc_enter_namespace(xid)==-1, "vc_enter_namespace()"); + FatalErrnoError(vc_set_namespace(xid, mask)==-1, "vc_set_namespace()"); +} + +inline static WRAPPER_DECL void +Evc_enter_namespace(xid_t xid, uint_least64_t mask) +{ + FatalErrnoError(vc_enter_namespace(xid, mask)==-1, "vc_enter_namespace()"); } inline static WRAPPER_DECL xid_t @@ -118,3 +168,15 @@ Evc_xidopt2xid(char const *id, bool honor_static) return rc; } + +inline static WRAPPER_DECL nid_t +Evc_nidopt2nid(char const *id, bool honor_static) +{ + char const * err; + nid_t rc = vc_nidopt2nid(id, honor_static, &err); + if (__builtin_expect(rc==VC_NOCTX,0)) { + ENSC_DETAIL1(msg, "vc_nidopt2nid", id, 1); + FatalErrnoErrorFail(msg); + } + return rc; +} diff --git a/ensc_wrappers/wrappers-wait.hc b/ensc_wrappers/wrappers-wait.hc index 3df8fd1..e79653c 100644 --- a/ensc_wrappers/wrappers-wait.hc +++ b/ensc_wrappers/wrappers-wait.hc @@ -1,4 +1,4 @@ -// $Id: wrappers-wait.hc,v 1.1 2004/02/06 14:47:18 ensc Exp $ --*- c -*-- +// $Id: wrappers-wait.hc 814 2004-02-06 14:47:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/ensc_wrappers/wrappers.h b/ensc_wrappers/wrappers.h index 2d2e766..92ab848 100644 --- a/ensc_wrappers/wrappers.h +++ b/ensc_wrappers/wrappers.h @@ -1,4 +1,4 @@ -// $Id: wrappers.h,v 1.5 2005/02/25 23:31:19 ensc Exp $ --*- c++ -*-- +// $Id: wrappers.h 2306 2006-09-12 16:55:42Z dhozac $ --*- c++ -*-- // Copyright (C) 2003,2004 Enrico Scholz // @@ -107,6 +107,14 @@ # include "wrappers-socket.hc" #endif +#ifdef ENSC_WRAPPERS_STAT +# include "wrappers-stat.hc" +#endif + +#ifdef ENSC_WRAPPERS_TERMIOS +# include "wrappers-termios.hc" +#endif + #undef ENSC_DETAIL2 #undef ENSC_DETAIL1 #undef ENSC_DOQUOTE_COND diff --git a/ensc_wrappers/wrappers_handler.hc b/ensc_wrappers/wrappers_handler.hc index f820371..cfa6482 100644 --- a/ensc_wrappers/wrappers_handler.hc +++ b/ensc_wrappers/wrappers_handler.hc @@ -1,4 +1,4 @@ -// $Id: wrappers_handler.hc,v 1.4 2004/03/18 05:27:10 ensc Exp $ --*- c -*-- +// $Id: wrappers_handler.hc 1289 2004-03-18 05:27:10Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/install-sh b/install-sh index 1a83534..4d4a951 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2005-02-02.21 +scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the diff --git a/kernel/cacct_cmd.h b/kernel/cacct_cmd.h new file mode 100644 index 0000000..6a697c7 --- /dev/null +++ b/kernel/cacct_cmd.h @@ -0,0 +1,16 @@ +#ifndef _VX_CACCT_CMD_H +#define _VX_CACCT_CMD_H + + +/* virtual host info name commands */ + +#define VCMD_sock_stat VC_CMD(VSTAT, 5, 0) + +struct vcmd_sock_stat_v0 { + uint32_t field; + uint32_t count[3]; + uint64_t total[3]; +}; + + +#endif /* _VX_CACCT_CMD_H */ diff --git a/kernel/context.h b/kernel/context.h deleted file mode 100644 index 79f9053..0000000 --- a/kernel/context.h +++ /dev/null @@ -1,161 +0,0 @@ -#ifndef _VX_CONTEXT_H -#define _VX_CONTEXT_H - -#include - - -#define MAX_S_CONTEXT 65535 /* Arbitrary limit */ -#define MIN_D_CONTEXT 49152 /* dynamic contexts start here */ - -#define VX_DYNAMIC_ID ((uint32_t)-1) /* id for dynamic context */ - -/* context flags */ - -#define VXF_INFO_LOCK 0x00000001 -#define VXF_INFO_SCHED 0x00000002 -#define VXF_INFO_NPROC 0x00000004 -#define VXF_INFO_PRIVATE 0x00000008 - -#define VXF_INFO_INIT 0x00000010 -#define VXF_INFO_HIDE 0x00000020 -#define VXF_INFO_ULIMIT 0x00000040 -#define VXF_INFO_NSPACE 0x00000080 - -#define VXF_SCHED_HARD 0x00000100 -#define VXF_SCHED_PRIO 0x00000200 -#define VXF_SCHED_PAUSE 0x00000400 - -#define VXF_VIRT_MEM 0x00010000 -#define VXF_VIRT_UPTIME 0x00020000 -#define VXF_VIRT_CPU 0x00040000 -#define VXF_VIRT_LOAD 0x00080000 - -#define VXF_HIDE_MOUNT 0x01000000 -#define VXF_HIDE_NETIF 0x02000000 - -#define VXF_STATE_SETUP (1ULL<<32) -#define VXF_STATE_INIT (1ULL<<33) - -#define VXF_STATE_HELPER (1ULL<<36) - -#define VXF_FORK_RSS (1ULL<<48) -#define VXF_PROLIFIC (1ULL<<49) - -#define VXF_IGNEG_NICE (1ULL<<52) - -#define VXF_ONE_TIME (0x0003ULL<<32) - -#define VXF_INIT_SET (VXF_STATE_SETUP|VXF_STATE_INIT) - - -/* context caps */ - -#define VXC_CAP_MASK 0x00000000 - -#define VXC_SET_UTSNAME 0x00000001 -#define VXC_SET_RLIMIT 0x00000002 - -#define VXC_RAW_ICMP 0x00000100 -#define VXC_SYSLOG 0x00001000 - -#define VXC_SECURE_MOUNT 0x00010000 -#define VXC_SECURE_REMOUNT 0x00020000 -#define VXC_BINARY_MOUNT 0x00040000 - -#define VXC_QUOTA_CTL 0x00100000 - - -/* context state changes */ - -enum { - VSC_STARTUP = 1, - VSC_SHUTDOWN, - - VSC_NETUP, - VSC_NETDOWN, -}; - - -#ifdef __KERNEL__ - -#include -#include -#include - -#include "limit_def.h" -#include "sched_def.h" -#include "cvirt_def.h" - -struct vx_info { - struct hlist_node vx_hlist; /* linked list of contexts */ - xid_t vx_id; /* context id */ - atomic_t vx_usecnt; /* usage count */ - atomic_t vx_tasks; /* tasks count */ - struct vx_info *vx_parent; /* parent context */ - int vx_state; /* context state */ - - struct namespace *vx_namespace; /* private namespace */ - struct fs_struct *vx_fs; /* private namespace fs */ - uint64_t vx_flags; /* context flags */ - uint64_t vx_bcaps; /* bounding caps (system) */ - uint64_t vx_ccaps; /* context caps (vserver) */ - - pid_t vx_initpid; /* PID of fake init process */ - - wait_queue_head_t vx_wait; /* context exit waitqueue */ - - struct _vx_limit limit; /* vserver limits */ - struct _vx_sched sched; /* vserver scheduler */ - struct _vx_cvirt cvirt; /* virtual/bias stuff */ - struct _vx_cacct cacct; /* context accounting */ - - char vx_name[65]; /* vserver name */ -}; - - -/* status flags */ - -#define VXS_HASHED 0x0001 -#define VXS_PAUSED 0x0010 -#define VXS_ONHOLD 0x0020 -#define VXS_SHUTDOWN 0x0100 -#define VXS_RELEASED 0x8000 - -/* check conditions */ - -#define VX_ADMIN 0x0001 -#define VX_WATCH 0x0002 -#define VX_HIDE 0x0004 -#define VX_HOSTID 0x0008 - -#define VX_IDENT 0x0010 -#define VX_EQUIV 0x0020 -#define VX_PARENT 0x0040 -#define VX_CHILD 0x0080 - -#define VX_ARG_MASK 0x00F0 - -#define VX_DYNAMIC 0x0100 -#define VX_STATIC 0x0200 - -#define VX_ATR_MASK 0x0F00 - - -extern void claim_vx_info(struct vx_info *, struct task_struct *); -extern void release_vx_info(struct vx_info *, struct task_struct *); - -extern struct vx_info *locate_vx_info(int); -extern struct vx_info *locate_or_create_vx_info(int); - -extern int get_xid_list(int, unsigned int *, int); -extern int xid_is_hashed(xid_t); - -extern int vx_migrate_task(struct task_struct *, struct vx_info *); - -extern long vs_state_change(struct vx_info *, unsigned int); - - -#endif /* __KERNEL__ */ -#else /* _VX_CONTEXT_H */ -#warning duplicate inclusion -#endif /* _VX_CONTEXT_H */ diff --git a/kernel/context_cmd.h b/kernel/context_cmd.h index f631095..354b29d 100644 --- a/kernel/context_cmd.h +++ b/kernel/context_cmd.h @@ -6,10 +6,6 @@ #define VCMD_task_xid VC_CMD(VINFO, 1, 0) -#ifdef __KERNEL__ -extern int vc_task_xid(uint32_t, void __user *); - -#endif /* __KERNEL__ */ #define VCMD_vx_info VC_CMD(VINFO, 5, 0) @@ -19,10 +15,14 @@ struct vcmd_vx_info_v0 { /* more to come */ }; -#ifdef __KERNEL__ -extern int vc_vx_info(uint32_t, void __user *); -#endif /* __KERNEL__ */ +#define VCMD_ctx_stat VC_CMD(VSTAT, 0, 0) + +struct vcmd_ctx_stat_v0 { + uint32_t usecnt; + uint32_t tasks; + /* more to come */ +}; /* context commands */ @@ -34,13 +34,13 @@ struct vcmd_ctx_create { uint64_t flagword; }; -#define VCMD_ctx_migrate VC_CMD(PROCMIG, 1, 0) +#define VCMD_ctx_migrate_v0 VC_CMD(PROCMIG, 1, 0) +#define VCMD_ctx_migrate VC_CMD(PROCMIG, 1, 1) -#ifdef __KERNEL__ -extern int vc_ctx_create(uint32_t, void __user *); -extern int vc_ctx_migrate(uint32_t, void __user *); +struct vcmd_ctx_migrate { + uint64_t flagword; +}; -#endif /* __KERNEL__ */ /* flag commands */ @@ -53,17 +53,12 @@ struct vcmd_ctx_flags_v0 { uint64_t mask; }; -#ifdef __KERNEL__ -extern int vc_get_cflags(uint32_t, void __user *); -extern int vc_set_cflags(uint32_t, void __user *); - -#endif /* __KERNEL__ */ /* context caps commands */ -#define VCMD_get_ccaps VC_CMD(FLAGS, 3, 0) -#define VCMD_set_ccaps VC_CMD(FLAGS, 4, 0) +#define VCMD_get_ccaps_v0 VC_CMD(FLAGS, 3, 0) +#define VCMD_set_ccaps_v0 VC_CMD(FLAGS, 4, 0) struct vcmd_ctx_caps_v0 { uint64_t bcaps; @@ -71,9 +66,24 @@ struct vcmd_ctx_caps_v0 { uint64_t cmask; }; -#ifdef __KERNEL__ -extern int vc_get_ccaps(uint32_t, void __user *); -extern int vc_set_ccaps(uint32_t, void __user *); +#define VCMD_get_ccaps VC_CMD(FLAGS, 3, 1) +#define VCMD_set_ccaps VC_CMD(FLAGS, 4, 1) + +struct vcmd_ctx_caps_v1 { + uint64_t ccaps; + uint64_t cmask; +}; + + + +/* bcaps commands */ + +#define VCMD_get_bcaps VC_CMD(FLAGS, 9, 0) +#define VCMD_set_bcaps VC_CMD(FLAGS,10, 0) + +struct vcmd_bcaps { + uint64_t bcaps; + uint64_t bmask; +}; -#endif /* __KERNEL__ */ #endif /* _VX_CONTEXT_CMD_H */ diff --git a/kernel/cvirt.h b/kernel/cvirt.h deleted file mode 100644 index eb13878..0000000 --- a/kernel/cvirt.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _VX_CVIRT_H -#define _VX_CVIRT_H - -#ifdef __KERNEL__ - -struct timespec; - -void vx_vsi_uptime(struct timespec *, struct timespec *); - - -struct vx_info; - -void vx_update_load(struct vx_info *); - - -int vx_uts_virt_handler(struct ctl_table *ctl, int write, xid_t xid, - void **datap, size_t *lenp); - - -int vx_do_syslog(int, char __user *, int); - -#endif /* __KERNEL__ */ -#else /* _VX_CVIRT_H */ -#warning duplicate inclusion -#endif /* _VX_CVIRT_H */ diff --git a/kernel/cvirt_cmd.h b/kernel/cvirt_cmd.h index 3260b9f..73b72c1 100644 --- a/kernel/cvirt_cmd.h +++ b/kernel/cvirt_cmd.h @@ -1,6 +1,7 @@ #ifndef _VX_CVIRT_CMD_H #define _VX_CVIRT_CMD_H + /* virtual host info name commands */ #define VCMD_set_vhi_name VC_CMD(VHOST, 1, 0) @@ -23,12 +24,18 @@ enum vhi_name_field { }; -#ifdef __KERNEL__ -#include +#define VCMD_virt_stat VC_CMD(VSTAT, 3, 0) -extern int vc_set_vhi_name(uint32_t, void __user *); -extern int vc_get_vhi_name(uint32_t, void __user *); +struct vcmd_virt_stat_v0 { + uint64_t offset; + uint64_t uptime; + uint32_t nr_threads; + uint32_t nr_running; + uint32_t nr_uninterruptible; + uint32_t nr_onhold; + uint32_t nr_forks; + uint32_t load[3]; +}; -#endif /* __KERNEL__ */ #endif /* _VX_CVIRT_CMD_H */ diff --git a/kernel/cvirt_def.h b/kernel/cvirt_def.h deleted file mode 100644 index c352890..0000000 --- a/kernel/cvirt_def.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef _VX_CVIRT_DEF_H -#define _VX_CVIRT_DEF_H - -#include -#include -#include -#include -#include -#include - - -struct _vx_usage_stat { - uint64_t user; - uint64_t nice; - uint64_t system; - uint64_t softirq; - uint64_t irq; - uint64_t idle; - uint64_t iowait; -}; - -struct _vx_syslog { - wait_queue_head_t log_wait; - spinlock_t logbuf_lock; /* lock for the log buffer */ - - unsigned long log_start; /* next char to be read by syslog() */ - unsigned long con_start; /* next char to be sent to consoles */ - unsigned long log_end; /* most-recently-written-char + 1 */ - unsigned long logged_chars; /* #chars since last read+clear operation */ - - char log_buf[1024]; -}; - - -/* context sub struct */ - -struct _vx_cvirt { - int max_threads; /* maximum allowed threads */ - atomic_t nr_threads; /* number of current threads */ - atomic_t nr_running; /* number of running threads */ - atomic_t nr_uninterruptible; /* number of uninterruptible threads */ - - atomic_t nr_onhold; /* processes on hold */ - uint32_t onhold_last; /* jiffies when put on hold */ - - struct timespec bias_idle; - struct timespec bias_uptime; /* context creation point */ - uint64_t bias_clock; /* offset in clock_t */ - - struct new_utsname utsname; - - spinlock_t load_lock; /* lock for the load averages */ - atomic_t load_updates; /* nr of load updates done so far */ - uint32_t load_last; /* last time load was cacled */ - uint32_t load[3]; /* load averages 1,5,15 */ - - atomic_t total_forks; /* number of forks so far */ - - struct _vx_usage_stat cpustat[NR_CPUS]; - - struct _vx_syslog syslog; -}; - -struct _vx_sock_acc { - atomic_t count; - atomic_t total; -}; - -/* context sub struct */ - -struct _vx_cacct { - unsigned long total_forks; - - struct _vx_sock_acc sock[5][3]; -}; - -#endif /* _VX_CVIRT_DEF_H */ diff --git a/kernel/debug.h b/kernel/debug.h deleted file mode 100644 index 1e58c4e..0000000 --- a/kernel/debug.h +++ /dev/null @@ -1,269 +0,0 @@ -#ifndef _VX_DEBUG_H -#define _VX_DEBUG_H - -#ifndef CONFIG_VSERVER -#warning config options missing -#endif - -#define VXD_CBIT(n,m) (vx_debug_ ## n & (1 << (m))) -#define VXD_CMIN(n,m) (vx_debug_ ## n > (m)) -#define VXD_MASK(n,m) (vx_debug_ ## n & (m)) - -#define VXD_QPOS(v,p) (((uint32_t)(v) >> ((p)*8)) & 0xFF) -#define VXD_QUAD(v) VXD_QPOS(v,0), VXD_QPOS(v,1), \ - VXD_QPOS(v,2), VXD_QPOS(v,3) - -#define __FUNC__ __func__ - - -#ifdef CONFIG_VSERVER_DEBUG - -extern unsigned int vx_debug_switch; -extern unsigned int vx_debug_xid; -extern unsigned int vx_debug_nid; -extern unsigned int vx_debug_net; -extern unsigned int vx_debug_limit; -extern unsigned int vx_debug_dlim; -extern unsigned int vx_debug_cvirt; - - -#define VX_LOGLEVEL "vxD: " -#define VX_WARNLEVEL KERN_WARNING "vxW: " - -#define vxdprintk(c,f,x...) \ - do { \ - if (c) \ - printk(VX_LOGLEVEL f "\n" , ##x); \ - } while (0) - -#define vxlprintk(c,f,x...) \ - do { \ - if (c) \ - printk(VX_LOGLEVEL f " @%s:%d\n", x); \ - } while (0) - -#define vxfprintk(c,f,x...) \ - do { \ - if (c) \ - printk(VX_LOGLEVEL f " %s@%s:%d\n", x); \ - } while (0) - - -#define vxwprintk(c,f,x...) \ - do { \ - if (c) \ - printk(VX_WARNLEVEL f "\n" , ##x); \ - } while (0) - - -#define vxd_path(d,m) \ - ({ static char _buffer[PATH_MAX]; \ - d_path((d), (m), _buffer, sizeof(_buffer)); }) - -#else /* CONFIG_VSERVER_DEBUG */ - -#define vx_debug_switch 0 -#define vx_debug_xid 0 -#define vx_debug_nid 0 -#define vx_debug_net 0 -#define vx_debug_limit 0 -#define vx_debug_dlim 0 -#define vx_debug_cvirt 0 - -#define vxdprintk(x...) do { } while (0) -#define vxlprintk(x...) do { } while (0) -#define vxfprintk(x...) do { } while (0) -#define vxwprintk(x...) do { } while (0) - -#define vxd_path "" - -#endif /* CONFIG_VSERVER_DEBUG */ - - -/* history stuff */ - -#ifdef CONFIG_VSERVER_HISTORY - - -extern unsigned volatile int vxh_active; - -struct _vxhe_vxi { - struct vx_info *ptr; - unsigned xid; - unsigned usecnt; - unsigned tasks; -}; - -struct _vxhe_set_clr { - void *data; -}; - -struct _vxhe_loc_lookup { - unsigned arg; -}; - -enum { - VXH_UNUSED=0, - VXH_THROW_OOPS=1, - - VXH_GET_VX_INFO, - VXH_PUT_VX_INFO, - VXH_INIT_VX_INFO, - VXH_SET_VX_INFO, - VXH_CLR_VX_INFO, - VXH_CLAIM_VX_INFO, - VXH_RELEASE_VX_INFO, - VXH_ALLOC_VX_INFO, - VXH_DEALLOC_VX_INFO, - VXH_HASH_VX_INFO, - VXH_UNHASH_VX_INFO, - VXH_LOC_VX_INFO, - VXH_LOOKUP_VX_INFO, - VXH_CREATE_VX_INFO, -}; - -struct _vx_hist_entry { - void *loc; - unsigned short seq; - unsigned short type; - struct _vxhe_vxi vxi; - union { - struct _vxhe_set_clr sc; - struct _vxhe_loc_lookup ll; - }; -}; - -struct _vx_hist_entry *vxh_advance(void *loc); - -#define VXH_HERE() \ - ({ __label__ here; \ - here:; \ - &&here; }) - - - -static inline void __vxh_copy_vxi(struct _vx_hist_entry *entry, struct vx_info *vxi) -{ - entry->vxi.ptr = vxi; - if (vxi) { - entry->vxi.usecnt = atomic_read(&vxi->vx_usecnt); - entry->vxi.tasks = atomic_read(&vxi->vx_tasks); - entry->vxi.xid = vxi->vx_id; - } -} - - -#define __VXH_BODY(__type, __data) \ - struct _vx_hist_entry *entry; \ - \ - preempt_disable(); \ - entry = vxh_advance(VXH_HERE()); \ - __data; \ - entry->type = __type; \ - preempt_enable(); - - - /* pass vxi only */ -#define __VXH_SIMPLE \ - __vxh_copy_vxi(entry, vxi) - -#define VXH_SIMPLE(__name, __type) \ -static inline void __name(struct vx_info *vxi) \ -{ \ - __VXH_BODY(__type, __VXH_SIMPLE) \ -} - - /* pass vxi and data (void *) */ -#define __VXH_DATA \ - __vxh_copy_vxi(entry, vxi); \ - entry->sc.data = data - -#define VXH_DATA(__name, __type) \ -static inline \ -void __name(struct vx_info *vxi, void *data) \ -{ \ - __VXH_BODY(__type, __VXH_DATA) \ -} - - /* pass vxi and arg (long) */ -#define __VXH_LARG \ - __vxh_copy_vxi(entry, vxi); \ - entry->ll.arg = arg - -#define VXH_LARG(__name, __type) \ -static inline \ -void __name(struct vx_info *vxi, long arg) \ -{ \ - __VXH_BODY(__type, __VXH_LARG) \ -} - - -static inline void vxh_throw_oops(void) -{ - __VXH_BODY(VXH_THROW_OOPS, {}); - /* prevent further acquisition */ - vxh_active = 0; -} - -VXH_SIMPLE(vxh_get_vx_info, VXH_GET_VX_INFO); -VXH_SIMPLE(vxh_put_vx_info, VXH_PUT_VX_INFO); - -VXH_DATA(vxh_init_vx_info, VXH_INIT_VX_INFO); -VXH_DATA(vxh_set_vx_info, VXH_SET_VX_INFO); -VXH_DATA(vxh_clr_vx_info, VXH_CLR_VX_INFO); - -VXH_DATA(vxh_claim_vx_info, VXH_CLAIM_VX_INFO); -VXH_DATA(vxh_release_vx_info, VXH_RELEASE_VX_INFO); - -VXH_SIMPLE(vxh_alloc_vx_info, VXH_ALLOC_VX_INFO); -VXH_SIMPLE(vxh_dealloc_vx_info, VXH_DEALLOC_VX_INFO); - -VXH_SIMPLE(vxh_hash_vx_info, VXH_HASH_VX_INFO); -VXH_SIMPLE(vxh_unhash_vx_info, VXH_UNHASH_VX_INFO); - -VXH_LARG(vxh_loc_vx_info, VXH_LOC_VX_INFO); -VXH_LARG(vxh_lookup_vx_info, VXH_LOOKUP_VX_INFO); -VXH_LARG(vxh_create_vx_info, VXH_CREATE_VX_INFO); - -extern void vxh_dump_history(void); - - -#else /* CONFIG_VSERVER_HISTORY */ - - -#define vxh_throw_oops() do { } while (0) - -#define vxh_get_vx_info(v) do { } while (0) -#define vxh_put_vx_info(v) do { } while (0) - -#define vxh_init_vx_info(v,d) do { } while (0) -#define vxh_set_vx_info(v,d) do { } while (0) -#define vxh_clr_vx_info(v,d) do { } while (0) - -#define vxh_claim_vx_info(v,d) do { } while (0) -#define vxh_release_vx_info(v,d) do { } while (0) - -#define vxh_alloc_vx_info(v) do { } while (0) -#define vxh_dealloc_vx_info(v) do { } while (0) - -#define vxh_hash_vx_info(v) do { } while (0) -#define vxh_unhash_vx_info(v) do { } while (0) - -#define vxh_loc_vx_info(a,v) do { } while (0) -#define vxh_lookup_vx_info(a,v) do { } while (0) -#define vxh_create_vx_info(a,v) do { } while (0) - -#define vxh_dump_history() do { } while (0) - - -#endif /* CONFIG_VSERVER_HISTORY */ - - -#ifdef CONFIG_VSERVER_DEBUG -#define vxd_assert_lock(l) assert_spin_locked(l) -#else -#define vxd_assert_lock(l) do { } while (0) -#endif - - -#endif /* _VX_DEBUG_H */ diff --git a/kernel/debug_cmd.h b/kernel/debug_cmd.h index c0cbd08..1b63f77 100644 --- a/kernel/debug_cmd.h +++ b/kernel/debug_cmd.h @@ -6,9 +6,20 @@ #define VCMD_dump_history VC_CMD(DEBUG, 1, 0) -#ifdef __KERNEL__ +#define VCMD_read_history VC_CMD(DEBUG, 5, 0) +#define VCMD_read_monitor VC_CMD(DEBUG, 6, 0) + +struct vcmd_read_history_v0 { + uint32_t index; + uint32_t count; + char *data; +}; + +struct vcmd_read_monitor_v0 { + uint32_t index; + uint32_t count; + char *data; +}; -extern int vc_dump_history(uint32_t); -#endif /* __KERNEL__ */ #endif /* _VX_DEBUG_CMD_H */ diff --git a/kernel/dlimit.h b/kernel/dlimit.h deleted file mode 100644 index 99c2240..0000000 --- a/kernel/dlimit.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef _VX_DLIMIT_H -#define _VX_DLIMIT_H - -#include "switch.h" - -#define CDLIM_UNSET (0ULL) -#define CDLIM_INFINITY (~0ULL) -#define CDLIM_KEEP (~1ULL) - - -#ifdef __KERNEL__ - -#include - -struct super_block; - -struct dl_info { - struct hlist_node dl_hlist; /* linked list of contexts */ - struct rcu_head dl_rcu; /* the rcu head */ - xid_t dl_xid; /* context id */ - atomic_t dl_usecnt; /* usage count */ - atomic_t dl_refcnt; /* reference count */ - - struct super_block *dl_sb; /* associated superblock */ - - spinlock_t dl_lock; /* protect the values */ - - uint64_t dl_space_used; /* used space in bytes */ - uint64_t dl_space_total; /* maximum space in bytes */ - uint32_t dl_inodes_used; /* used inodes */ - uint32_t dl_inodes_total; /* maximum inodes */ - - unsigned int dl_nrlmult; /* non root limit mult */ -}; - -struct rcu_head; - -extern void rcu_free_dl_info(struct rcu_head *); -extern void unhash_dl_info(struct dl_info *); - -extern struct dl_info *locate_dl_info(struct super_block *, xid_t); - - -struct kstatfs; - -extern void vx_vsi_statfs(struct super_block *, struct kstatfs *); - -typedef uint64_t dlsize_t; - -#endif /* __KERNEL__ */ -#else /* _VX_DLIMIT_H */ -#warning duplicate inclusion -#endif /* _VX_DLIMIT_H */ diff --git a/kernel/dlimit_cmd.h b/kernel/dlimit_cmd.h index b91a946..ed39987 100644 --- a/kernel/dlimit_cmd.h +++ b/kernel/dlimit_cmd.h @@ -1,6 +1,7 @@ #ifndef _VX_DLIMIT_CMD_H #define _VX_DLIMIT_CMD_H + /* dlimit vserver commands */ #define VCMD_add_dlimit VC_CMD(DLIMIT, 1, 0) @@ -10,32 +11,12 @@ #define VCMD_get_dlimit VC_CMD(DLIMIT, 6, 0) struct vcmd_ctx_dlimit_base_v0 { - const char __user *name; + const char *name; uint32_t flags; }; struct vcmd_ctx_dlimit_v0 { - const char __user *name; - uint32_t space_used; /* used space in kbytes */ - uint32_t space_total; /* maximum space in kbytes */ - uint32_t inodes_used; /* used inodes */ - uint32_t inodes_total; /* maximum inodes */ - uint32_t reserved; /* reserved for root in % */ - uint32_t flags; -}; - - -#ifdef __KERNEL__ - -#ifdef CONFIG_COMPAT - -struct vcmd_ctx_dlimit_base_v0_x32 { - compat_uptr_t name_ptr; - uint32_t flags; -}; - -struct vcmd_ctx_dlimit_v0_x32 { - compat_uptr_t name_ptr; + const char *name; uint32_t space_used; /* used space in kbytes */ uint32_t space_total; /* maximum space in kbytes */ uint32_t inodes_used; /* used inodes */ @@ -44,25 +25,8 @@ struct vcmd_ctx_dlimit_v0_x32 { uint32_t flags; }; -#endif /* CONFIG_COMPAT */ - -#include - -extern int vc_add_dlimit(uint32_t, void __user *); -extern int vc_rem_dlimit(uint32_t, void __user *); - -extern int vc_set_dlimit(uint32_t, void __user *); -extern int vc_get_dlimit(uint32_t, void __user *); - -#ifdef CONFIG_COMPAT - -extern int vc_add_dlimit_x32(uint32_t, void __user *); -extern int vc_rem_dlimit_x32(uint32_t, void __user *); - -extern int vc_set_dlimit_x32(uint32_t, void __user *); -extern int vc_get_dlimit_x32(uint32_t, void __user *); - -#endif /* CONFIG_COMPAT */ +#define CDLIM_UNSET ((uint32_t)0UL) +#define CDLIM_INFINITY ((uint32_t)~0UL) +#define CDLIM_KEEP ((uint32_t)~1UL) -#endif /* __KERNEL__ */ #endif /* _VX_DLIMIT_CMD_H */ diff --git a/kernel/inode.h b/kernel/inode.h deleted file mode 100644 index 89212c2..0000000 --- a/kernel/inode.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef _VX_INODE_H -#define _VX_INODE_H - - -#define IATTR_XID 0x01000000 - -#define IATTR_ADMIN 0x00000001 -#define IATTR_WATCH 0x00000002 -#define IATTR_HIDE 0x00000004 -#define IATTR_FLAGS 0x00000007 - -#define IATTR_BARRIER 0x00010000 -#define IATTR_IUNLINK 0x00020000 -#define IATTR_IMMUTABLE 0x00040000 - -#ifdef __KERNEL__ - -#ifndef CONFIG_VSERVER -#warning config options missing -#endif - -#ifdef CONFIG_VSERVER_PROC_SECURE -#define IATTR_PROC_DEFAULT ( IATTR_ADMIN | IATTR_HIDE ) -#define IATTR_PROC_SYMLINK ( IATTR_ADMIN ) -#else -#define IATTR_PROC_DEFAULT ( IATTR_ADMIN ) -#define IATTR_PROC_SYMLINK ( IATTR_ADMIN ) -#endif - -#define vx_hide_check(c,m) (((m) & IATTR_HIDE) ? vx_check(c,m) : 1) - -#endif /* __KERNEL__ */ - -/* inode ioctls */ - -#define FIOC_GETXFLG _IOR('x', 5, long) -#define FIOC_SETXFLG _IOW('x', 6, long) - -#else /* _VX_INODE_H */ -#warning duplicate inclusion -#endif /* _VX_INODE_H */ diff --git a/kernel/inode_cmd.h b/kernel/inode_cmd.h index f14c899..ed26aa1 100644 --- a/kernel/inode_cmd.h +++ b/kernel/inode_cmd.h @@ -1,6 +1,7 @@ #ifndef _VX_INODE_CMD_H #define _VX_INODE_CMD_H + /* inode vserver commands */ #define VCMD_get_iattr_v0 VC_CMD(INODE, 1, 0) @@ -18,40 +19,11 @@ struct vcmd_ctx_iattr_v0 { }; struct vcmd_ctx_iattr_v1 { - const char __user *name; + const char *name; uint32_t xid; uint32_t flags; uint32_t mask; }; -#ifdef __KERNEL__ - -#ifdef CONFIG_COMPAT - -struct vcmd_ctx_iattr_v1_x32 { - compat_uptr_t name_ptr; - uint32_t xid; - uint32_t flags; - uint32_t mask; -}; - -#endif /* CONFIG_COMPAT */ - -#include - -extern int vc_get_iattr_v0(uint32_t, void __user *); -extern int vc_set_iattr_v0(uint32_t, void __user *); - -extern int vc_get_iattr(uint32_t, void __user *); -extern int vc_set_iattr(uint32_t, void __user *); - -#ifdef CONFIG_COMPAT - -extern int vc_get_iattr_x32(uint32_t, void __user *); -extern int vc_set_iattr_x32(uint32_t, void __user *); - -#endif /* CONFIG_COMPAT */ - -#endif /* __KERNEL__ */ #endif /* _VX_INODE_CMD_H */ diff --git a/kernel/legacy.h b/kernel/legacy.h index f058983..a987121 100644 --- a/kernel/legacy.h +++ b/kernel/legacy.h @@ -3,6 +3,7 @@ #include "switch.h" + /* compatibiliy vserver commands */ #define VCMD_new_s_context VC_CMD(COMPAT, 1, 1) @@ -40,9 +41,4 @@ struct vcmd_set_ipv4root_v3 { #define VX_INFO_NAMESPACE 128 /* save private namespace */ -#ifdef __KERNEL__ -extern int vc_new_s_context(uint32_t, void __user *); -extern int vc_set_ipv4root(uint32_t, void __user *); - -#endif /* __KERNEL__ */ #endif /* _VX_LEGACY_H */ diff --git a/kernel/limit.h b/kernel/limit.h deleted file mode 100644 index 449a4fc..0000000 --- a/kernel/limit.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _VX_LIMIT_H -#define _VX_LIMIT_H - -#ifdef __KERNEL__ - -struct sysinfo; - -void vx_vsi_meminfo(struct sysinfo *); -void vx_vsi_swapinfo(struct sysinfo *); - -#define VXD_RLIMIT(r,l) (VXD_CBIT(limit, (l)) && ((r) == (l))) - -#define NUM_LIMITS 24 - -#define VLIMIT_NSOCK 16 -#define VLIMIT_OPENFD 17 -#define VLIMIT_ANON 18 -#define VLIMIT_SHMEM 19 - -extern const char *vlimit_name[NUM_LIMITS]; - -#endif /* __KERNEL__ */ -#endif /* _VX_LIMIT_H */ diff --git a/kernel/limit_cmd.h b/kernel/limit_cmd.h index a994d02..f67f7fc 100644 --- a/kernel/limit_cmd.h +++ b/kernel/limit_cmd.h @@ -1,11 +1,13 @@ #ifndef _VX_LIMIT_CMD_H #define _VX_LIMIT_CMD_H + /* rlimit vserver commands */ #define VCMD_get_rlimit VC_CMD(RLIMIT, 1, 0) #define VCMD_set_rlimit VC_CMD(RLIMIT, 2, 0) #define VCMD_get_rlimit_mask VC_CMD(RLIMIT, 3, 0) +#define VCMD_reset_minmax VC_CMD(RLIMIT, 9, 0) struct vcmd_ctx_rlimit_v0 { uint32_t id; @@ -20,17 +22,18 @@ struct vcmd_ctx_rlimit_mask_v0 { uint32_t maximum; }; +#define VCMD_rlimit_stat VC_CMD(VSTAT, 1, 0) + +struct vcmd_rlimit_stat_v0 { + uint32_t id; + uint32_t hits; + uint64_t value; + uint64_t minimum; + uint64_t maximum; +}; + #define CRLIM_UNSET (0ULL) #define CRLIM_INFINITY (~0ULL) #define CRLIM_KEEP (~1ULL) -#ifdef __KERNEL__ - -#include - -extern int vc_get_rlimit(uint32_t, void __user *); -extern int vc_set_rlimit(uint32_t, void __user *); -extern int vc_get_rlimit_mask(uint32_t, void __user *); - -#endif /* __KERNEL__ */ #endif /* _VX_LIMIT_CMD_H */ diff --git a/kernel/limit_def.h b/kernel/limit_def.h deleted file mode 100644 index bab1def..0000000 --- a/kernel/limit_def.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _VX_LIMIT_DEF_H -#define _VX_LIMIT_DEF_H - -#include -#include - -#include "limit.h" - -/* context sub struct */ - -struct _vx_limit { - atomic_t ticks; - - unsigned long rlim[NUM_LIMITS]; /* Context limit */ - unsigned long rmax[NUM_LIMITS]; /* Context maximum */ - atomic_t rcur[NUM_LIMITS]; /* Current value */ - atomic_t lhit[NUM_LIMITS]; /* Limit hits */ -}; - - -#endif /* _VX_LIMIT_DEF_H */ diff --git a/kernel/monitor.h b/kernel/monitor.h new file mode 100644 index 0000000..a634bb9 --- /dev/null +++ b/kernel/monitor.h @@ -0,0 +1,95 @@ +#ifndef _VX_MONITOR_H +#define _VX_MONITOR_H + + +enum { + VXM_UNUSED = 0, + + VXM_SYNC = 0x10, + + VXM_UPDATE = 0x20, + VXM_UPDATE_1, + VXM_UPDATE_2, + + VXM_RQINFO_1 = 0x24, + VXM_RQINFO_2, + + VXM_ACTIVATE = 0x40, + VXM_DEACTIVATE, + VXM_IDLE, + + VXM_HOLD = 0x44, + VXM_UNHOLD, + + VXM_MIGRATE = 0x48, + VXM_RESCHED, + + /* all other bits are flags */ + VXM_SCHED = 0x80, +}; + +struct _vxm_update_1 { + uint32_t tokens_max; + uint32_t fill_rate; + uint32_t interval; +}; + +struct _vxm_update_2 { + uint32_t tokens_min; + uint32_t fill_rate; + uint32_t interval; +}; + +struct _vxm_rqinfo_1 { + uint16_t running; + uint16_t onhold; + uint16_t iowait; + uint16_t uintr; + uint32_t idle_tokens; +}; + +struct _vxm_rqinfo_2 { + uint32_t norm_time; + uint32_t idle_time; + uint32_t idle_skip; +}; + +struct _vxm_sched { + uint32_t tokens; + uint32_t norm_time; + uint32_t idle_time; +}; + +struct _vxm_task { + uint16_t pid; + uint16_t state; +}; + +struct _vxm_event { + uint32_t jif; + union { + uint32_t seq; + uint32_t sec; + }; + union { + uint32_t tokens; + uint32_t nsec; + struct _vxm_task tsk; + }; +}; + +struct _vx_mon_entry { + uint16_t type; + uint16_t xid; + union { + struct _vxm_event ev; + struct _vxm_sched sd; + struct _vxm_update_1 u1; + struct _vxm_update_2 u2; + struct _vxm_rqinfo_1 q1; + struct _vxm_rqinfo_2 q2; + }; +}; + + +#endif /* _VX_MONITOR_H */ diff --git a/kernel/namespace.h b/kernel/namespace.h deleted file mode 100644 index 1a6bb84..0000000 --- a/kernel/namespace.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _VX_NAMESPACE_H -#define _VX_NAMESPACE_H - -#include - -struct vx_info; -struct namespace; -struct fs_struct; - -extern int vx_set_namespace(struct vx_info *, struct namespace *, struct fs_struct *); - -#else /* _VX_NAMESPACE_H */ -#warning duplicate inclusion -#endif /* _VX_NAMESPACE_H */ diff --git a/kernel/namespace_cmd.h b/kernel/namespace_cmd.h deleted file mode 100644 index 7533100..0000000 --- a/kernel/namespace_cmd.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _VX_NAMESPACE_CMD_H -#define _VX_NAMESPACE_CMD_H - -#define VCMD_enter_namespace VC_CMD(PROCALT, 1, 0) -#define VCMD_cleanup_namespace VC_CMD(PROCALT, 2, 0) -#define VCMD_set_namespace VC_CMD(PROCALT, 3, 0) - - -#ifdef __KERNEL__ - -extern int vc_enter_namespace(uint32_t, void __user *); -extern int vc_cleanup_namespace(uint32_t, void __user *); -extern int vc_set_namespace(uint32_t, void __user *); - -#endif /* __KERNEL__ */ -#endif /* _VX_NAMESPACE_CMD_H */ diff --git a/kernel/network.h b/kernel/network.h index 29c5bd2..2b84f07 100644 --- a/kernel/network.h +++ b/kernel/network.h @@ -13,84 +13,29 @@ /* network flags */ +#define NXF_INFO_LOCK 0x00000001 + #define NXF_STATE_SETUP (1ULL<<32) +#define NXF_STATE_ADMIN (1ULL<<34) -#define NXF_STATE_HELPER (1ULL<<36) +#define NXF_SC_HELPER (1ULL<<36) +#define NXF_PERSISTENT (1ULL<<38) -#define NXF_ONE_TIME (0x0001ULL<<32) +#define NXF_ONE_TIME (0x0005ULL<<32) -#define NXF_INIT_SET (0) +#define NXF_INIT_SET (NXF_STATE_ADMIN) /* address types */ -#define NXA_TYPE_IPV4 1 -#define NXA_TYPE_IPV6 2 - -#define NXA_MOD_BCAST (1<<8) - -#define NXA_TYPE_ANY (~0) - - -#ifdef __KERNEL__ - -#include -#include -#include -#include - - -struct nx_info { - struct hlist_node nx_hlist; /* linked list of nxinfos */ - nid_t nx_id; /* vnet id */ - atomic_t nx_usecnt; /* usage count */ - atomic_t nx_tasks; /* tasks count */ - int nx_state; /* context state */ - - uint64_t nx_flags; /* network flag word */ - uint64_t nx_ncaps; /* network capabilities */ - - int nbipv4; - __u32 ipv4[NB_IPV4ROOT]; /* Process can only bind to these IPs */ - /* The first one is used to connect */ - /* and for bind any service */ - /* The other must be used explicity */ - __u32 mask[NB_IPV4ROOT]; /* Netmask for each ipv4 */ - /* Used to select the proper source */ - /* address for sockets */ - __u32 v4_bcast; /* Broadcast address to receive UDP */ - - char nx_name[65]; /* network context name */ -}; - - -/* status flags */ - -#define NXS_HASHED 0x0001 -#define NXS_SHUTDOWN 0x0100 -#define NXS_RELEASED 0x8000 - -extern struct nx_info *locate_nx_info(int); -extern struct nx_info *locate_or_create_nx_info(int); - -extern int get_nid_list(int, unsigned int *, int); -extern int nid_is_hashed(nid_t); - -extern int nx_migrate_task(struct task_struct *, struct nx_info *); - -extern long vs_net_change(struct nx_info *, unsigned int); - -struct in_ifaddr; -struct net_device; +#define NXA_TYPE_IPV4 1 +#define NXA_TYPE_IPV6 2 -int ifa_in_nx_info(struct in_ifaddr *, struct nx_info *); -int dev_in_nx_info(struct net_device *, struct nx_info *); +#define NXA_MOD_BCAST (1<<8) -struct sock; +#define NXA_TYPE_ANY ((uint16_t)-1) -int nx_addr_conflict(struct nx_info *, uint32_t, struct sock *); -#endif /* __KERNEL__ */ #else /* _VX_NETWORK_H */ #warning duplicate inclusion #endif /* _VX_NETWORK_H */ diff --git a/kernel/network_cmd.h b/kernel/network_cmd.h index d9802fe..06c7055 100644 --- a/kernel/network_cmd.h +++ b/kernel/network_cmd.h @@ -6,10 +6,6 @@ #define VCMD_task_nid VC_CMD(VINFO, 2, 0) -#ifdef __KERNEL__ -extern int vc_task_nid(uint32_t, void __user *); - -#endif /* __KERNEL__ */ #define VCMD_nx_info VC_CMD(VINFO, 6, 0) @@ -18,10 +14,6 @@ struct vcmd_nx_info_v0 { /* more to come */ }; -#ifdef __KERNEL__ -extern int vc_nx_info(uint32_t, void __user *); - -#endif /* __KERNEL__ */ #define VCMD_net_create_v0 VC_CMD(VNET, 1, 0) #define VCMD_net_create VC_CMD(VNET, 1, 1) @@ -44,14 +36,6 @@ struct vcmd_net_addr_v0 { }; -#ifdef __KERNEL__ -extern int vc_net_create(uint32_t, void __user *); -extern int vc_net_migrate(uint32_t, void __user *); - -extern int vc_net_add(uint32_t, void __user *); -extern int vc_net_remove(uint32_t, void __user *); - -#endif /* __KERNEL__ */ /* flag commands */ @@ -64,11 +48,6 @@ struct vcmd_net_flags_v0 { uint64_t mask; }; -#ifdef __KERNEL__ -extern int vc_get_nflags(uint32_t, void __user *); -extern int vc_set_nflags(uint32_t, void __user *); - -#endif /* __KERNEL__ */ /* network caps commands */ @@ -81,9 +60,4 @@ struct vcmd_net_caps_v0 { uint64_t cmask; }; -#ifdef __KERNEL__ -extern int vc_get_ncaps(uint32_t, void __user *); -extern int vc_set_ncaps(uint32_t, void __user *); - -#endif /* __KERNEL__ */ #endif /* _VX_CONTEXT_CMD_H */ diff --git a/kernel/sched.h b/kernel/sched.h deleted file mode 100644 index 60569ab..0000000 --- a/kernel/sched.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _VX_SCHED_H -#define _VX_SCHED_H - -#ifdef __KERNEL__ - -struct timespec; - -void vx_vsi_uptime(struct timespec *, struct timespec *); - - -struct vx_info; - -void vx_update_load(struct vx_info *); - - -struct task_struct; - -int vx_effective_vavavoom(struct vx_info *, int); - -int vx_tokens_recalc(struct vx_info *); - -#endif /* __KERNEL__ */ -#else /* _VX_SCHED_H */ -#warning duplicate inclusion -#endif /* _VX_SCHED_H */ diff --git a/kernel/sched_cmd.h b/kernel/sched_cmd.h index 2a6f55b..c18fb9e 100644 --- a/kernel/sched_cmd.h +++ b/kernel/sched_cmd.h @@ -1,10 +1,12 @@ #ifndef _VX_SCHED_CMD_H #define _VX_SCHED_CMD_H + /* sched vserver commands */ #define VCMD_set_sched_v2 VC_CMD(SCHED, 1, 2) -#define VCMD_set_sched VC_CMD(SCHED, 1, 3) +#define VCMD_set_sched_v3 VC_CMD(SCHED, 1, 3) +#define VCMD_set_sched_v4 VC_CMD(SCHED, 1, 4) struct vcmd_set_sched_v2 { int32_t fill_rate; @@ -25,23 +27,66 @@ struct vcmd_set_sched_v3 { int32_t priority_bias; }; +struct vcmd_set_sched_v4 { + uint32_t set_mask; + int32_t fill_rate; + int32_t interval; + int32_t tokens; + int32_t tokens_min; + int32_t tokens_max; + int32_t prio_bias; + int32_t cpu_id; + int32_t bucket_id; +}; + +#define VCMD_set_sched VC_CMD(SCHED, 1, 5) +#define VCMD_get_sched VC_CMD(SCHED, 2, 5) + +struct vcmd_sched_v5 { + uint32_t mask; + int32_t cpu_id; + int32_t bucket_id; + int32_t fill_rate[2]; + int32_t interval[2]; + int32_t tokens; + int32_t tokens_min; + int32_t tokens_max; + int32_t prio_bias; +}; #define VXSM_FILL_RATE 0x0001 #define VXSM_INTERVAL 0x0002 +#define VXSM_FILL_RATE2 0x0004 +#define VXSM_INTERVAL2 0x0008 #define VXSM_TOKENS 0x0010 #define VXSM_TOKENS_MIN 0x0020 #define VXSM_TOKENS_MAX 0x0040 #define VXSM_PRIO_BIAS 0x0100 -#define SCHED_KEEP (-2) +#define VXSM_IDLE_TIME 0x0200 +#define VXSM_FORCE 0x0400 + +#define VXSM_V3_MASK 0x0173 +#define VXSM_SET_MASK 0x01FF -#ifdef __KERNEL__ +#define VXSM_CPU_ID 0x1000 +#define VXSM_BUCKET_ID 0x2000 -#include +#define VXSM_MSEC 0x4000 -extern int vc_set_sched_v1(uint32_t, void __user *); -extern int vc_set_sched_v2(uint32_t, void __user *); -extern int vc_set_sched(uint32_t, void __user *); +#define SCHED_KEEP (-2) /* only for v2 */ + + +#define VCMD_sched_info VC_CMD(SCHED, 3, 0) + +struct vcmd_sched_info { + int32_t cpu_id; + int32_t bucket_id; + uint64_t user_msec; + uint64_t sys_msec; + uint64_t hold_msec; + uint32_t token_usec; + int32_t vavavoom; +}; -#endif /* __KERNEL__ */ #endif /* _VX_SCHED_CMD_H */ diff --git a/kernel/sched_def.h b/kernel/sched_def.h deleted file mode 100644 index 3a57761..0000000 --- a/kernel/sched_def.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef _VX_SCHED_DEF_H -#define _VX_SCHED_DEF_H - -#include -#include -#include -#include -#include - - -struct _vx_ticks { - uint64_t user_ticks; /* token tick events */ - uint64_t sys_ticks; /* token tick events */ - uint64_t hold_ticks; /* token ticks paused */ - uint64_t unused[5]; /* cacheline ? */ -}; - -/* context sub struct */ - -struct _vx_sched { - atomic_t tokens; /* number of CPU tokens */ - spinlock_t tokens_lock; /* lock for token bucket */ - - int fill_rate; /* Fill rate: add X tokens... */ - int interval; /* Divisor: per Y jiffies */ - int tokens_min; /* Limit: minimum for unhold */ - int tokens_max; /* Limit: no more than N tokens */ - uint32_t jiffies; /* last time accounted */ - - int priority_bias; /* bias offset for priority */ - int vavavoom; /* last calculated vavavoom */ - - cpumask_t cpus_allowed; /* cpu mask for context */ - - struct _vx_ticks cpu[NR_CPUS]; -}; - -#endif /* _VX_SCHED_DEF_H */ diff --git a/kernel/signal_cmd.h b/kernel/signal_cmd.h index e842538..6ef9720 100644 --- a/kernel/signal_cmd.h +++ b/kernel/signal_cmd.h @@ -1,6 +1,7 @@ #ifndef _VX_SIGNAL_CMD_H #define _VX_SIGNAL_CMD_H + /* signalling vserver commands */ #define VCMD_ctx_kill VC_CMD(PROCTRL, 1, 0) @@ -12,14 +13,19 @@ struct vcmd_ctx_kill_v0 { }; struct vcmd_wait_exit_v0 { - int32_t a; - int32_t b; + int32_t reboot_cmd; + int32_t exit_code; }; -#ifdef __KERNEL__ -extern int vc_ctx_kill(uint32_t, void __user *); -extern int vc_wait_exit(uint32_t, void __user *); +/* process alteration commands */ + +#define VCMD_get_pflags VC_CMD(PROCALT, 5, 0) +#define VCMD_set_pflags VC_CMD(PROCALT, 6, 0) + +struct vcmd_pflags_v0 { + uint32_t flagword; + uint32_t mask; +}; -#endif /* __KERNEL__ */ #endif /* _VX_SIGNAL_CMD_H */ diff --git a/kernel/space_cmd.h b/kernel/space_cmd.h new file mode 100644 index 0000000..811b451 --- /dev/null +++ b/kernel/space_cmd.h @@ -0,0 +1,22 @@ +#ifndef _VX_SPACE_CMD_H +#define _VX_SPACE_CMD_H + + +#define VCMD_enter_space_v0 VC_CMD(PROCALT, 1, 0) +#define VCMD_enter_space VC_CMD(PROCALT, 1, 1) + +/* XXX: This is not available in recent kernels */ +#define VCMD_cleanup_namespace VC_CMD(PROCALT, 2, 0) + +#define VCMD_set_space_v0 VC_CMD(PROCALT, 3, 0) +#define VCMD_set_space VC_CMD(PROCALT, 3, 1) + +#define VCMD_get_space_mask VC_CMD(PROCALT, 4, 0) + + +struct vcmd_space_mask { + uint64_t mask; +}; + + +#endif /* _VX_SPACE_CMD_H */ diff --git a/kernel/switch.h b/kernel/switch.h index 0c7fddb..95eb6b4 100644 --- a/kernel/switch.h +++ b/kernel/switch.h @@ -3,6 +3,7 @@ #include + #define VC_CATEGORY(c) (((c) >> 24) & 0x3F) #define VC_COMMAND(c) (((c) >> 16) & 0xFF) #define VC_VERSION(c) ((c) & 0xFFF) @@ -18,7 +19,7 @@ |STATS |DESTROY|ALTER |CHANGE |LIMIT |TEST | | | | |INFO |SETUP | |MOVE | | | | | | -------+-------+-------+-------+-------+-------+-------+ +-------+-------+ - SYSTEM |VERSION|VSETUP |VHOST | | | | |DEVICES| | + SYSTEM |VERSION|VSETUP |VHOST | | | | |DEVICE | | HOST | 00| 01| 02| 03| 04| 05| | 06| 07| -------+-------+-------+-------+-------+-------+-------+ +-------+-------+ CPU | |VPROC |PROCALT|PROCMIG|PROCTRL| | |SCHED. | | @@ -33,7 +34,7 @@ DISK | | | | |DLIMIT | | |INODE | | VFS | 32| 33| 34| 35| 36| 37| | 38| 39| -------+-------+-------+-------+-------+-------+-------+ +-------+-------+ - OTHER | | | | | | | |VINFO | | + OTHER |VSTAT | | | | | | |VINFO | | | 40| 41| 42| 43| 44| 45| | 46| 47| =======+=======+=======+=======+=======+=======+=======+ +=======+=======+ SPECIAL|EVENT | | | |FLAGS | | | | | @@ -50,6 +51,8 @@ #define VC_CAT_VSETUP 1 #define VC_CAT_VHOST 2 +#define VC_CAT_DEVICE 6 + #define VC_CAT_VPROC 9 #define VC_CAT_PROCALT 10 #define VC_CAT_PROCMIG 11 @@ -65,6 +68,7 @@ #define VC_CAT_DLIMIT 36 #define VC_CAT_INODE 38 +#define VC_CAT_VSTAT 40 #define VC_CAT_VINFO 46 #define VC_CAT_EVENT 48 @@ -77,21 +81,15 @@ /* interface version */ -#define VCI_VERSION 0x00020001 +#define VCI_VERSION 0x00020102 #define VCI_LEGACY_VERSION 0x000100FF /* query version */ #define VCMD_get_version VC_CMD(VERSION, 0, 0) +#define VCMD_get_vci VC_CMD(VERSION, 1, 0) -#ifdef __KERNEL__ - -#include - - -#else /* __KERNEL__ */ #define __user -#endif /* __KERNEL__ */ #endif /* _VX_SWITCH_H */ diff --git a/kernel/xid.h b/kernel/xid.h deleted file mode 100644 index 4848951..0000000 --- a/kernel/xid.h +++ /dev/null @@ -1,145 +0,0 @@ -#ifndef _VX_XID_H -#define _VX_XID_H - -#ifndef CONFIG_VSERVER -#warning config options missing -#endif - -#define XID_TAG_SB(sb) (sb->s_flags & MS_TAGXID) - -#define XID_TAG(in) (!(in) || \ - (((struct inode *)in)->i_sb && \ - XID_TAG_SB(((struct inode *)in)->i_sb))) - - -#ifdef CONFIG_XID_TAG_NFSD -#define XID_TAG_NFSD 1 -#else -#define XID_TAG_NFSD 0 -#endif - - -#ifdef CONFIG_INOXID_NONE - -#define MAX_UID 0xFFFFFFFF -#define MAX_GID 0xFFFFFFFF - -#define INOXID_XID(tag, uid, gid, xid) (0) - -#define XIDINO_UID(tag, uid, xid) (uid) -#define XIDINO_GID(tag, gid, xid) (gid) - -#endif - - -#ifdef CONFIG_INOXID_GID16 - -#define MAX_UID 0xFFFFFFFF -#define MAX_GID 0x0000FFFF - -#define INOXID_XID(tag, uid, gid, xid) \ - ((tag) ? (((gid) >> 16) & 0xFFFF) : 0) - -#define XIDINO_UID(tag, uid, xid) (uid) -#define XIDINO_GID(tag, gid, xid) \ - ((tag) ? (((gid) & 0xFFFF) | ((xid) << 16)) : (gid)) - -#endif - - -#ifdef CONFIG_INOXID_UGID24 - -#define MAX_UID 0x00FFFFFF -#define MAX_GID 0x00FFFFFF - -#define INOXID_XID(tag, uid, gid, xid) \ - ((tag) ? ((((uid) >> 16) & 0xFF00) | (((gid) >> 24) & 0xFF)) : 0) - -#define XIDINO_UID(tag, uid, xid) \ - ((tag) ? (((uid) & 0xFFFFFF) | (((xid) & 0xFF00) << 16)) : (uid)) -#define XIDINO_GID(tag, gid, xid) \ - ((tag) ? (((gid) & 0xFFFFFF) | (((xid) & 0x00FF) << 24)) : (gid)) - -#endif - - -#ifdef CONFIG_INOXID_UID16 - -#define MAX_UID 0x0000FFFF -#define MAX_GID 0xFFFFFFFF - -#define INOXID_XID(tag, uid, gid, xid) \ - ((tag) ? (((uid) >> 16) & 0xFFFF) : 0) - -#define XIDINO_UID(tag, uid, xid) \ - ((tag) ? (((uid) & 0xFFFF) | ((xid) << 16)) : (uid)) -#define XIDINO_GID(tag, gid, xid) (gid) - -#endif - - -#ifdef CONFIG_INOXID_INTERN - -#define MAX_UID 0xFFFFFFFF -#define MAX_GID 0xFFFFFFFF - -#define INOXID_XID(tag, uid, gid, xid) \ - ((tag) ? (xid) : 0) - -#define XIDINO_UID(tag, uid, xid) (uid) -#define XIDINO_GID(tag, gid, xid) (gid) - -#endif - - -#ifdef CONFIG_INOXID_RUNTIME - -#define MAX_UID 0xFFFFFFFF -#define MAX_GID 0xFFFFFFFF - -#define INOXID_XID(tag, uid, gid, xid) (0) - -#define XIDINO_UID(tag, uid, xid) (uid) -#define XIDINO_GID(tag, gid, xid) (gid) - -#endif - - -#ifdef CONFIG_INOXID_NONE -#define vx_current_fsxid(sb) (0) -#else -#define vx_current_fsxid(sb) \ - (XID_TAG_SB(sb) ? current->xid : 0) -#endif - -#define INOXID_UID(tag, uid, gid) \ - ((tag) ? ((uid) & MAX_UID) : (uid)) -#define INOXID_GID(tag, uid, gid) \ - ((tag) ? ((gid) & MAX_GID) : (gid)) - - -static inline uid_t vx_map_uid(uid_t uid) -{ - if ((uid > MAX_UID) && (uid != -1)) - uid = -2; - return (uid & MAX_UID); -} - -static inline gid_t vx_map_gid(gid_t gid) -{ - if ((gid > MAX_GID) && (gid != -1)) - gid = -2; - return (gid & MAX_GID); -} - - -#ifdef CONFIG_VSERVER_LEGACY -#define FIOC_GETXID _IOR('x', 1, long) -#define FIOC_SETXID _IOW('x', 2, long) -#define FIOC_SETXIDJ _IOW('x', 3, long) -#endif - -int vx_parse_xid(char *string, xid_t *xid, int remove); -void vx_propagate_xid(struct nameidata *nd, struct inode *inode); - -#endif /* _VX_XID_H */ diff --git a/lib/Makefile-files b/lib/Makefile-files index 02f3851..70262c7 100644 --- a/lib/Makefile-files +++ b/lib/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.55 2005/05/05 09:17:25 ensc Exp $ -*- makefile -*- +## $Id: Makefile-files 2449 2007-01-10 18:53:07Z dhozac $ -*- makefile -*- ## Copyright (C) 2003 Enrico Scholz ## @@ -22,7 +22,8 @@ lib_VERSION = 0.0.0 lib_compat_SRCS = lib/cflags-compat.c \ lib/cflags_list-compat.c lib_legacy_SRCS = lib/getprocentry-legacy.c -lib_management_SRCS = lib/createskeleton.c \ +lib_management_SRCS = lib/comparevserverbyid.c \ + lib/createskeleton.c \ lib/getvserverbyctx.c \ lib/getvserverbyctx-compat.hc \ lib/getvserverbyctx-v13.hc \ @@ -32,7 +33,8 @@ lib_management_SRCS = lib/createskeleton.c \ lib/getvserverctx.c \ lib/getvservername.c \ lib/getvservervdir.c \ - lib/xidopt2xid.c + lib/xidopt2xid.c \ + lib/nidopt2nid.c lib_v11_SRCS = lib/syscall_rlimit.c \ lib/syscall_rlimit-v11.hc \ lib/syscall_kill.c \ @@ -91,6 +93,7 @@ lib_v13_SRCS = lib/syscall_ctxcreate.c \ lib/syscall_setnflags-net.hc \ lib/syscall_setnflags.c \ lib/syscall_setsched-v13.hc \ + lib/syscall_setsched-v13obs.hc \ lib/syscall_setsched.c \ lib/syscall_setvhiname-olduts.hc \ lib/syscall_setvhiname-v13.hc \ @@ -107,6 +110,27 @@ lib_v13_SRCS = lib/syscall_ctxcreate.c \ lib/ncaps_list-net.c \ lib/nflags-net.c \ lib/nflags_list-net.c +lib_v21_SRCS = lib/syscall_setccaps-v21.hc \ + lib/syscall_setsched-v21.hc \ + lib/syscall_rlimitstat.c \ + lib/syscall_rlimitstat-v21.hc \ + lib/syscall_resetminmax.c \ + lib/syscall_resetminmax-v21.hc \ + lib/syscall_getvci.c \ + lib/syscall_getvci-v21.hc \ + lib/syscall_virtstat.c \ + lib/syscall_virtstat-v21.hc \ + lib/syscall_ctxstat.c \ + lib/syscall_ctxstat-v21.hc \ + lib/syscall_getspacemask.c \ + lib/syscall_getspacemask-v21.hc \ + lib/syscall_enternamespace-v21.hc \ + lib/syscall_setnamespace-v21.hc \ + lib/syscall_ctxmigrate-v21.hc \ + lib/syscall_setmapping.c \ + lib/syscall_setmapping-v21.hc \ + lib/syscall_schedinfo.c \ + lib/syscall_schedinfo-v21.hc if ENSC_HAVE_C99_COMPILER lib_v13_SRCS += lib/syscall_adddlimit-v13.hc \ @@ -123,6 +147,7 @@ PKGCONFIG_FILES = lib/util-vserver lib_SRCS = lib/syscall.c \ lib/checkversion.c \ + lib/checkconfig.c \ lib/isdirectory.c \ lib/isfile.c \ lib/islink.c \ @@ -152,12 +177,14 @@ lib_SRCS = lib/syscall.c \ $(lib_management_SRCS) \ $(lib_v11_SRCS) \ $(lib_v13_SRCS) \ + $(lib_v21_SRCS) \ $(ensc_fmt_SRCS) include_HEADERS += lib/vserver.h noinst_HEADERS += lib/syscall-compat.hc \ lib/syscall-legacy.hc \ + lib/syscall-fallback.h \ lib/createskeleton-full.hc \ lib/createskeleton-short.hc \ lib/fmt.h \ @@ -199,7 +226,8 @@ lib_libvserver_la_LDFLAGS = -version $(lib_VERSION) lib_libvserver_a_SOURCES = $(lib_SRCS) lib_libvserver_a_CPPFLAGS = $(AM_CPPFLAGS) $(LIB_DEBUG_CPPFLAGS) -DIETPROGS += lib/lib_libvserver_a-% +DIETPROGS += lib/lib_libvserver_a-% \ + ensc_fmt/lib_libvserver_a-% CLEANFILES += lib/libvserver.la \ lib/libvserver.a diff --git a/lib/apidoc/Makefile-files b/lib/apidoc/Makefile-files index be59257..da6e1d8 100644 --- a/lib/apidoc/Makefile-files +++ b/lib/apidoc/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.3 2004/04/28 18:12:54 ensc Exp $ --*- makefile -*-- +## $Id: Makefile-files 1528 2004-04-28 18:12:54Z ensc $ --*- makefile -*-- ## Copyright (C) 2004 Enrico Scholz ## diff --git a/lib/bcaps-v13.c b/lib/bcaps-v13.c index ce793f8..715348f 100644 --- a/lib/bcaps-v13.c +++ b/lib/bcaps-v13.c @@ -1,4 +1,4 @@ -// $Id: bcaps-v13.c,v 1.5 2005/07/15 16:27:37 ensc Exp $ --*- c -*-- +// $Id: bcaps-v13.c 2148 2005-07-15 16:27:37Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/bcaps_list-v13.c b/lib/bcaps_list-v13.c index f6f57b8..959a17c 100644 --- a/lib/bcaps_list-v13.c +++ b/lib/bcaps_list-v13.c @@ -1,4 +1,4 @@ -// $Id: bcaps_list-v13.c,v 1.3 2005/04/24 20:19:52 ensc Exp $ --*- c -*-- +// $Id: bcaps_list-v13.c 2038 2005-04-24 20:24:36Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <> // diff --git a/lib/capabilities.c b/lib/capabilities.c index e3ed156..7931cba 100644 --- a/lib/capabilities.c +++ b/lib/capabilities.c @@ -1,4 +1,4 @@ -// $Id: capabilities.c,v 1.5 2005/07/15 16:32:05 ensc Exp $ --*- c -*-- +// $Id: capabilities.c 2150 2005-07-15 16:32:05Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/ccaps-v13.c b/lib/ccaps-v13.c index 71471a7..4f38864 100644 --- a/lib/ccaps-v13.c +++ b/lib/ccaps-v13.c @@ -1,4 +1,4 @@ -// $Id: ccaps-v13.c,v 1.4 2005/07/15 16:28:18 ensc Exp $ --*- c -*-- +// $Id: ccaps-v13.c 2393 2006-11-23 18:30:29Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -25,30 +25,48 @@ #include #include +#include #include #define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL } static struct Mapping_uint64 const VALUES[] = { - DECL("utsname", VC_VXC_SET_UTSNAME), - DECL("rlimit", VC_VXC_SET_RLIMIT), + DECL("set_utsname", VC_VXC_SET_UTSNAME), + DECL("set_rlimit", VC_VXC_SET_RLIMIT), DECL("raw_icmp", VC_VXC_RAW_ICMP), DECL("syslog", VC_VXC_SYSLOG), DECL("secure_mount", VC_VXC_SECURE_MOUNT), DECL("secure_remount", VC_VXC_SECURE_REMOUNT), DECL("binary_mount", VC_VXC_BINARY_MOUNT), DECL("quota_ctl", VC_VXC_QUOTA_CTL), + DECL("admin_mapper", VC_VXC_ADMIN_MAPPER), + DECL("admin_cloop", VC_VXC_ADMIN_CLOOP), // some deprecated values... DECL("mount", VC_VXC_SECURE_MOUNT), DECL("remount", VC_VXC_SECURE_REMOUNT), DECL("icmp", VC_VXC_RAW_ICMP), DECL("ping", VC_VXC_RAW_ICMP), + DECL("utsname", VC_VXC_SET_UTSNAME), + DECL("rlimit", VC_VXC_SET_RLIMIT), }; +inline static char const * +removePrefix(char const *str, size_t *len) +{ + if ((len==0 || *len==0 || *len>4) && + strncasecmp("vxc_", str, 4)==0) { + if (len && *len>4) *len -= 4; + return str+4; + } + else + return str; +} + uint_least64_t vc_text2ccap(char const *str, size_t len) { - ssize_t idx = utilvserver_value2text_uint64(str, len, + char const * tmp = removePrefix(str, &len); + ssize_t idx = utilvserver_value2text_uint64(tmp, len, VALUES, DIM_OF(VALUES)); if (idx==-1) return 0; else return VALUES[idx].val; diff --git a/lib/ccaps_list-v13.c b/lib/ccaps_list-v13.c index 0b26243..ad994ac 100644 --- a/lib/ccaps_list-v13.c +++ b/lib/ccaps_list-v13.c @@ -1,4 +1,4 @@ -// $Id: ccaps_list-v13.c,v 1.2 2005/04/24 20:19:52 ensc Exp $ --*- c -*-- +// $Id: ccaps_list-v13.c 2038 2005-04-24 20:24:36Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <> // diff --git a/lib/cflags-compat.c b/lib/cflags-compat.c index 85d530e..7829815 100644 --- a/lib/cflags-compat.c +++ b/lib/cflags-compat.c @@ -1,4 +1,4 @@ -// $Id: cflags-compat.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*-- +// $Id: cflags-compat.c 1449 2004-04-14 23:19:51Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/cflags-v13.c b/lib/cflags-v13.c index 0af2d04..dae4bbf 100644 --- a/lib/cflags-v13.c +++ b/lib/cflags-v13.c @@ -1,4 +1,4 @@ -// $Id: cflags-v13.c,v 1.3 2004/10/21 19:00:20 ensc Exp $ --*- c -*-- +// $Id: cflags-v13.c 2533 2007-04-21 14:06:26Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -25,6 +25,7 @@ #include #include +#include #include #define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL } @@ -48,23 +49,58 @@ static struct Mapping_uint64 const VALUES[] = { DECL("virt_uptime", VC_VXF_VIRT_UPTIME), DECL("virt_cpu", VC_VXF_VIRT_CPU), DECL("virt_load", VC_VXF_VIRT_LOAD), + DECL("virt_time", VC_VXF_VIRT_TIME), DECL("hide_mount", VC_VXF_HIDE_MOUNT), DECL("hide_netif", VC_VXF_HIDE_NETIF), + DECL("hide_vinfo", VC_VXF_HIDE_VINFO), DECL("state_setup", VC_VXF_STATE_SETUP), DECL("state_init", VC_VXF_STATE_INIT), + DECL("state_admin", VC_VXF_STATE_ADMIN), + + DECL("sc_helper", VC_VXF_SC_HELPER), + DECL("persistent", VC_VXF_PERSISTENT), + DECL("reboot_kill", VC_VXF_REBOOT_KILL), DECL("fork_rss", VC_VXF_FORK_RSS), DECL("prolific", VC_VXF_PROLIFIC), DECL("igneg_nice", VC_VXF_IGNEG_NICE), - + + // Some pseudo flags + DECL("secure", VC_VXF_HIDE_NETIF), + DECL("default", VC_VXF_VIRT_UPTIME|VC_VXF_SC_HELPER), + + // Aliases for the legacy flags + DECL("info_lock", VC_VXF_INFO_LOCK), + DECL("info_nproc", VC_VXF_INFO_NPROC), + DECL("info_private", VC_VXF_INFO_PRIVATE), + DECL("info_init", VC_VXF_INFO_INIT), + + DECL("info_hideinfo", VC_VXF_INFO_HIDEINFO), + DECL("info_ulimit", VC_VXF_INFO_ULIMIT), + DECL("info_namespace", VC_VXF_INFO_NAMESPACE), + // 2.6 name + DECL("info_nspace", VC_VXF_INFO_NAMESPACE), }; +inline static char const * +removePrefix(char const *str, size_t *len) +{ + if ((len==0 || *len==0 || *len>4) && + strncasecmp("vxf_", str, 4)==0) { + if (len && *len>4) *len -= 4; + return str+4; + } + else + return str; +} + uint_least64_t vc_text2cflag(char const *str, size_t len) { - ssize_t idx = utilvserver_value2text_uint64(str, len, + char const * tmp = removePrefix(str, &len); + ssize_t idx = utilvserver_value2text_uint64(tmp, len, VALUES, DIM_OF(VALUES)); if (idx==-1) return 0; else return VALUES[idx].val; diff --git a/lib/cflags_list-compat.c b/lib/cflags_list-compat.c index 7d5b0a0..cc53c8f 100644 --- a/lib/cflags_list-compat.c +++ b/lib/cflags_list-compat.c @@ -1,4 +1,4 @@ -// $Id: cflags_list-compat.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*-- +// $Id: cflags_list-compat.c 1449 2004-04-14 23:19:51Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <> // diff --git a/lib/cflags_list-v13.c b/lib/cflags_list-v13.c index 48617f0..0a0ff09 100644 --- a/lib/cflags_list-v13.c +++ b/lib/cflags_list-v13.c @@ -1,4 +1,4 @@ -// $Id: cflags_list-v13.c,v 1.3 2005/04/28 17:53:01 ensc Exp $ --*- c -*-- +// $Id: cflags_list-v13.c 2057 2005-04-28 17:53:01Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <> // diff --git a/lib/checkconfig.c b/lib/checkconfig.c new file mode 100644 index 0000000..9e5c798 --- /dev/null +++ b/lib/checkconfig.c @@ -0,0 +1,45 @@ +// $Id: checkconfig.c 2464 2007-01-20 13:55:42Z dhozac $ --*- c++ -*-- + +// Copyright (C) 2003 Enrico Scholz +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include "vserver-internal.h" + +uint_least32_t +utilvserver_checkCompatConfig() +{ +#ifdef VC_ENABLE_API_V21 + static uint32_t res=0; + static int v_errno; + + if (res==0) { + res = vc_get_vci(); + v_errno = errno; + if (res==(uint32_t)-1) res=0; + } + + errno = v_errno; + return res; +#else + return 0; +#endif +} diff --git a/lib/checkversion.c b/lib/checkversion.c index 5670bde..205fb0e 100644 --- a/lib/checkversion.c +++ b/lib/checkversion.c @@ -1,4 +1,4 @@ -// $Id: checkversion.c,v 1.5 2004/01/21 18:53:22 ensc Exp $ --*- c++ -*-- +// $Id: checkversion.c 2246 2006-01-18 23:34:36Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // @@ -35,7 +35,7 @@ utilvserver_checkCompatVersion() v_errno = errno; #ifdef VC_ENABLE_API_LEGACY if (res==-1 && (errno==ENOSYS || errno==EINVAL)) res=0; -#endif +#endif } errno = v_errno; diff --git a/lib/comparevserverbyid.c b/lib/comparevserverbyid.c new file mode 100644 index 0000000..61a9ccf --- /dev/null +++ b/lib/comparevserverbyid.c @@ -0,0 +1,83 @@ +// $Id: comparevserverbyid.c 2180 2005-10-25 16:17:12Z ensc $ --*- c -*-- + +// Copyright (C) 2005 Enrico Scholz +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include "pathconfig.h" + +#include +#include + +static char const * +completePath(char const *id, size_t len, vcCfgStyle style, char *buf) +{ + switch (style) { + case vcCFG_RECENT_FULL : return id; + case vcCFG_RECENT_SHORT : + memcpy(buf, CONFDIR "/", sizeof(CONFDIR "/")-1); + memcpy(buf+sizeof(CONFDIR "/")-1, id, len+1); // appends '\0' implicitly + return buf; + default : return 0; + } +} + +int +vc_compareVserverById(char const *lhs, vcCfgStyle lhs_style, + char const *rhs, vcCfgStyle rhs_style) +{ + if (lhs_style==vcCFG_NONE || lhs_style==vcCFG_AUTO) + lhs_style = vc_getVserverCfgStyle(lhs); + + if (rhs_style==vcCFG_NONE || rhs_style==vcCFG_AUTO) + rhs_style = vc_getVserverCfgStyle(rhs); + + // compare legacy vservers by their names only resp. return false on mixed + // styles + if (lhs_style==vcCFG_LEGACY || rhs_style==vcCFG_LEGACY) { + if (lhs_style!=rhs_style) return lhs_style - rhs_style; + else return strcmp(lhs, rhs); + } + + { + size_t len_lhs = strlen(lhs); + size_t len_rhs = strlen(rhs); + char buf_lhs[sizeof(CONFDIR "//") + len_lhs]; + char buf_rhs[sizeof(CONFDIR "//") + len_rhs]; + + char const * path_lhs = completePath(lhs, len_lhs, lhs_style, buf_lhs); + char const * path_rhs = (path_lhs==0 + ? 0 // skip following calculation + : completePath(rhs, len_rhs, rhs_style, buf_rhs)); + + struct stat st_lhs; + struct stat st_rhs; + + // this is true only iff both path_* are 0; compare ids in this case + if (path_lhs==path_rhs) return strcmp(lhs, rhs); + if (path_lhs==0) return -1; // path_rhs!=0 is implied by check above + if (path_rhs==0) return +1; + + if (stat(path_lhs, &st_lhs)==-1 || + stat(path_rhs, &st_rhs)==-1) return strcmp(lhs,rhs); + + return (st_lhs.st_dev - st_rhs.st_dev) + (st_lhs.st_ino - st_rhs.st_ino); + } +} diff --git a/lib/createskeleton-full.hc b/lib/createskeleton-full.hc index 90abcee..e90e771 100644 --- a/lib/createskeleton-full.hc +++ b/lib/createskeleton-full.hc @@ -1,4 +1,4 @@ -// $Id: createskeleton-full.hc,v 1.4 2005/02/01 00:55:51 ensc Exp $ --*- c -*-- +// $Id: createskeleton-full.hc 1837 2005-02-01 00:55:51Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/createskeleton-short.hc b/lib/createskeleton-short.hc index b71aea2..afa02c1 100644 --- a/lib/createskeleton-short.hc +++ b/lib/createskeleton-short.hc @@ -1,4 +1,4 @@ -// $Id: createskeleton-short.hc,v 1.1 2004/02/18 04:42:38 ensc Exp $ --*- c -*-- +// $Id: createskeleton-short.hc 934 2004-02-18 04:42:38Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/createskeleton.c b/lib/createskeleton.c index 6292224..feb7813 100644 --- a/lib/createskeleton.c +++ b/lib/createskeleton.c @@ -1,4 +1,4 @@ -// $Id: createskeleton.c,v 1.1 2004/02/18 04:42:38 ensc Exp $ --*- c -*-- +// $Id: createskeleton.c 934 2004-02-18 04:42:38Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/ext2fs.h b/lib/ext2fs.h index 35c3a76..2d50420 100644 --- a/lib/ext2fs.h +++ b/lib/ext2fs.h @@ -1,4 +1,4 @@ -// $Id: ext2fs.h,v 1.2 2004/01/29 11:00:41 ensc Exp $ --*- c -*-- +// $Id: ext2fs.h 720 2004-01-29 11:00:41Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/fmt.h b/lib/fmt.h index 34cfd89..38688da 100644 --- a/lib/fmt.h +++ b/lib/fmt.h @@ -1,4 +1,4 @@ -// $Id: fmt.h,v 1.7 2004/06/16 10:06:03 ensc Exp $ --*- c -*-- +// $Id: fmt.h 1583 2004-06-16 10:06:03Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/getfilecontext.c b/lib/getfilecontext.c index f5f3f9c..0c0b9ef 100644 --- a/lib/getfilecontext.c +++ b/lib/getfilecontext.c @@ -1,4 +1,4 @@ -// $Id: getfilecontext.c,v 1.1 2004/12/09 13:05:41 ensc Exp $ --*- c -*-- +// $Id: getfilecontext.c 1766 2004-12-09 13:05:41Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/getinsecurebcaps.c b/lib/getinsecurebcaps.c index 8ffcb7f..ef9bd4c 100644 --- a/lib/getinsecurebcaps.c +++ b/lib/getinsecurebcaps.c @@ -1,4 +1,4 @@ -// $Id: getinsecurebcaps.c,v 1.1.1.1 2005/08/17 17:58:04 mlhuang Exp $ --*- c -*-- +// $Id: getinsecurebcaps.c 2154 2005-07-15 18:59:55Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/getnbipv4root.c b/lib/getnbipv4root.c index 67a65f4..e0019ce 100644 --- a/lib/getnbipv4root.c +++ b/lib/getnbipv4root.c @@ -1,4 +1,4 @@ -// $Id: getnbipv4root.c,v 1.1 2004/03/16 14:27:53 ensc Exp $ --*- c -*-- +// $Id: getnbipv4root.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" size_t vc_get_nb_ipv4root() diff --git a/lib/getprocentry-legacy.c b/lib/getprocentry-legacy.c index 747a4dd..664a3dd 100644 --- a/lib/getprocentry-legacy.c +++ b/lib/getprocentry-legacy.c @@ -1,4 +1,4 @@ -// $Id: getprocentry-legacy.c,v 1.4 2004/03/05 04:40:59 ensc Exp $ --*- c++ -*-- +// $Id: getprocentry-legacy.c 1091 2004-03-05 04:40:59Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/getversion-internal.hc b/lib/getversion-internal.hc index 7caf0b7..5d17586 100644 --- a/lib/getversion-internal.hc +++ b/lib/getversion-internal.hc @@ -1,4 +1,4 @@ -// $Id: getversion-internal.hc,v 1.6 2004/01/22 21:35:36 ensc Exp $ --*- c++ -*-- +// $Id: getversion-internal.hc 2207 2005-10-29 10:31:42Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // @@ -24,7 +24,7 @@ #endif #define _LINUX_TYPES_H 1 -#include "linuxvirtual.h" +#include "virtual.h" static inline ALWAYSINLINE UNUSED int vc_get_version_internal(int cat) diff --git a/lib/getversion.c b/lib/getversion.c index 32a3427..ca233bd 100644 --- a/lib/getversion.c +++ b/lib/getversion.c @@ -1,4 +1,4 @@ -// $Id: getversion.c,v 1.5 2004/01/29 11:00:41 ensc Exp $ --*- c++ -*-- +// $Id: getversion.c 720 2004-01-29 11:00:41Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/getvserverappdir.c b/lib/getvserverappdir.c index 7a3714a..27ae306 100644 --- a/lib/getvserverappdir.c +++ b/lib/getvserverappdir.c @@ -1,4 +1,4 @@ -// $Id: getvserverappdir.c,v 1.1 2004/01/16 17:55:45 ensc Exp $ --*- c -*-- +// $Id: getvserverappdir.c 611 2004-01-16 18:00:11Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/getvserverbyctx-compat.hc b/lib/getvserverbyctx-compat.hc index 66acfa3..4c63738 100644 --- a/lib/getvserverbyctx-compat.hc +++ b/lib/getvserverbyctx-compat.hc @@ -1,4 +1,4 @@ -// $Id: getvserverbyctx-compat.hc,v 1.3 2004/06/27 13:01:28 ensc Exp $ --*- c -*-- +// $Id: getvserverbyctx-compat.hc 2182 2005-10-25 16:20:07Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // @@ -67,7 +67,8 @@ handleLegacy(xid_t UNUSED xid) #endif static char * -vc_getVserverByCtx_compat(xid_t ctx, vcCfgStyle *style, char const *revdir) +vc_getVserverByCtx_compat(xid_t ctx, vcCfgStyle *style, char const *revdir, + bool validate_result) { if (revdir==0) revdir = DEFAULT_PKGSTATEREVDIR; @@ -92,8 +93,10 @@ vc_getVserverByCtx_compat(xid_t ctx, vcCfgStyle *style, char const *revdir) switch (cur_style) { case vcCFG_RECENT_SHORT : case vcCFG_RECENT_FULL : - // check if expected ctx == actual ctx - if (vc_getVserverCtx(path, vcCFG_RECENT_FULL, false, 0)!=ctx) return 0; + // check if expected ctx == actual ctx (but only when this check is + // request) + if (validate_result && + vc_getVserverCtx(path, vcCFG_RECENT_FULL, false, 0)!=ctx) return 0; if (style) *style = vcCFG_RECENT_FULL; return strdup(path); diff --git a/lib/getvserverbyctx-v13.hc b/lib/getvserverbyctx-v13.hc index faca702..adfb0e9 100644 --- a/lib/getvserverbyctx-v13.hc +++ b/lib/getvserverbyctx-v13.hc @@ -1,4 +1,4 @@ -// $Id: getvserverbyctx-v13.hc,v 1.1 2004/03/11 04:39:59 ensc Exp $ --*- c -*-- +// $Id: getvserverbyctx-v13.hc 2182 2005-10-25 16:20:07Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,12 +21,14 @@ #endif static char * -vc_getVserverByCtx_v13(xid_t ctx, vcCfgStyle *style, char const UNUSED *revdir) +vc_getVserverByCtx_v13(xid_t ctx, vcCfgStyle *style, char const UNUSED *revdir, + bool validate_result) { char buf[128]; if (vc_get_vhi_name(ctx, vcVHI_CONTEXT, buf, sizeof buf)!=-1 && - vc_getVserverCtx(buf, vcCFG_RECENT_FULL, false, 0)==ctx) { + (!validate_result || + vc_getVserverCtx(buf, vcCFG_RECENT_FULL, false, 0)==ctx)) { if (style) *style = vcCFG_RECENT_FULL; return strdup(buf); } diff --git a/lib/getvserverbyctx.c b/lib/getvserverbyctx.c index 9896ae8..8487835 100644 --- a/lib/getvserverbyctx.c +++ b/lib/getvserverbyctx.c @@ -1,4 +1,4 @@ -// $Id: getvserverbyctx.c,v 1.6 2004/03/11 04:40:29 ensc Exp $ --*- c -*-- +// $Id: getvserverbyctx.c 2444 2007-01-03 11:55:04Z dhozac $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // @@ -31,11 +31,24 @@ #include "getvserverbyctx-compat.hc" #include "getvserverbyctx-v13.hc" + +char * +vc_getVserverByCtx_Internal(xid_t ctx, /*@null@*/vcCfgStyle *style, + /*@null@*/char const *revdir, + bool validate_result) +{ + char *ret; + if (vc_isSupported(vcFEATURE_MIGRATE)) { + ret = vc_getVserverByCtx_v13(ctx, style, revdir, validate_result); + if (ret) + return ret; + } + return vc_getVserverByCtx_compat(ctx, style, revdir, validate_result); +} + char * vc_getVserverByCtx(xid_t ctx, vcCfgStyle *style, char const *revdir) { - if (vc_isSupported(vcFEATURE_MIGRATE)) - return vc_getVserverByCtx_v13(ctx, style, revdir); - else - return vc_getVserverByCtx_compat(ctx, style, revdir); + return vc_getVserverByCtx_Internal(ctx, style, revdir, true); + } diff --git a/lib/getvservercfgdir.c b/lib/getvservercfgdir.c index f9581cf..e3d9486 100644 --- a/lib/getvservercfgdir.c +++ b/lib/getvservercfgdir.c @@ -1,4 +1,4 @@ -// $Id: getvservercfgdir.c,v 1.1 2004/01/16 17:55:45 ensc Exp $ --*- c -*-- +// $Id: getvservercfgdir.c 611 2004-01-16 18:00:11Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/getvservercfgstyle.c b/lib/getvservercfgstyle.c index f9cba62..4677407 100644 --- a/lib/getvservercfgstyle.c +++ b/lib/getvservercfgstyle.c @@ -1,4 +1,4 @@ -// $Id: getvservercfgstyle.c,v 1.6 2005/01/26 23:29:06 ensc Exp $ --*- c -*-- +// $Id: getvservercfgstyle.c 1804 2005-01-26 23:29:06Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/getvserverctx.c b/lib/getvserverctx.c index ce116ae..b680670 100644 --- a/lib/getvserverctx.c +++ b/lib/getvserverctx.c @@ -1,4 +1,4 @@ -// $Id: getvserverctx.c,v 1.8 2004/06/27 13:02:07 ensc Exp $ --*- c -*-- +// $Id: getvserverctx.c 2210 2005-10-29 12:06:19Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // @@ -24,6 +24,7 @@ #include "pathconfig.h" #include "compat-c99.h" #include "lib_internal/util.h" +#include "internal.h" #include #include @@ -92,23 +93,28 @@ getCtxFromFile(char const *pathname) fd = open(pathname, O_RDONLY); - if (fd==-1 || - (len=lseek(fd, 0, SEEK_END))==-1 || + if (fd==-1) return VC_NOCTX; + if ((len=lseek(fd, 0, SEEK_END))==-1 || (len>50) || - (lseek(fd, 0, SEEK_SET)==-1)) + (lseek(fd, 0, SEEK_SET)==-1)) { + close(fd); return VC_NOCTX; + } { char buf[len+1]; char *errptr; xid_t res; - if (TEMP_FAILURE_RETRY(read(fd, buf, len+1))!=len) - return VC_NOCTX; + if (TEMP_FAILURE_RETRY(read(fd, buf, len+1))!=len) res = VC_NOCTX; + else { + buf[len] = '\0'; - res = strtol(buf, &errptr, 10); - if (*errptr!='\0' && *errptr!='\n') return VC_NOCTX; + res = strtol(buf, &errptr, 10); + if (*errptr!='\0' && *errptr!='\n') res = VC_NOCTX; + } + close(fd); return res; } } @@ -141,14 +147,44 @@ vc_getVserverCtx(char const *id, vcCfgStyle style, bool honor_static, bool *is_r memcpy(buf+idx, "/run", 5); // appends '\0' too res = getCtxFromFile(buf); - if (is_running) *is_running = res!=VC_NOCTX; + + // when context information could be read, we have to verify that + // it belongs to a running vserver and the both vservers are + // identically + if (res!=VC_NOCTX) { + char *cur_name; + struct vc_vx_info info; + + // determine the vserver which is associated with the xid resp. skip + // this step when the context does not exist. When checking whether + // the context exists, do not rely on the success of + // vc_get_vx_info() alone but check 'errno' for ESRCH also. Else, + // wrong results will be caused e.g. for xid 1 which will fail with + // ENOSYS. + cur_name = (vc_get_vx_info(res, &info)!=-1 || errno!=ESRCH ? + vc_getVserverByCtx_Internal(res, &style, 0, false) : + 0); + + buf[idx] = '\0'; // cut off the '/run' from the vserver name + + res = ((cur_name!=0 && + vc_compareVserverById(buf, vcCFG_RECENT_FULL, + cur_name, vcCFG_RECENT_FULL)==0) + ? res + : VC_NOCTX); // correct the value of 'res' + + free(cur_name); + } + + if (is_running) // fill 'is_running' information... + *is_running = res!=VC_NOCTX; if (res==VC_NOCTX && honor_static) { memcpy(buf+idx, "/context", 9); // appends '\0' too res = getCtxFromFile(buf); } - + return res; } default : return VC_NOCTX; diff --git a/lib/getvservername.c b/lib/getvservername.c index a8bc866..963f466 100644 --- a/lib/getvservername.c +++ b/lib/getvservername.c @@ -1,4 +1,4 @@ -// $Id: getvservername.c,v 1.5 2004/05/08 01:27:25 ensc Exp $ --*- c -*-- +// $Id: getvservername.c 1543 2004-05-08 01:27:25Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/getvservervdir.c b/lib/getvservervdir.c index 2d8c79a..689a47b 100644 --- a/lib/getvservervdir.c +++ b/lib/getvservervdir.c @@ -1,4 +1,4 @@ -// $Id: getvservervdir.c,v 1.5 2005/03/22 14:59:46 ensc Exp $ --*- c -*-- +// $Id: getvservervdir.c 1954 2005-03-22 14:59:46Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/getxidtype.c b/lib/getxidtype.c index a5c0463..8bc2be4 100644 --- a/lib/getxidtype.c +++ b/lib/getxidtype.c @@ -1,4 +1,4 @@ -// $Id: getxidtype.c,v 1.1 2005/03/09 14:38:51 ensc Exp $ --*- c -*-- +// $Id: getxidtype.c 2493 2007-02-10 15:06:07Z dhozac $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // @@ -21,14 +21,21 @@ #endif #include "vserver.h" -#include "virtual.h" +#include "internal.h" vcXidType vc_getXIDType(xid_t xid) { - if (xid==0) return vcTYPE_MAIN; - if (xid==1) return vcTYPE_WATCH; - if (xid>1 && xid=MIN_D_CONTEXT && xid1 && xid=MIN_D_CONTEXT && xid // @@ -23,6 +23,8 @@ #define H_UTIL_VSERVER_LIB_INTERNAL_H #include "fmt.h" +#include "vserver.h" + #include #include @@ -30,7 +32,13 @@ extern "C" { #endif +char * vc_getVserverByCtx_Internal(xid_t ctx, /*@null@*/vcCfgStyle *style, + /*@null@*/char const *revdir, + bool validate_result); + + int utilvserver_checkCompatVersion(); +uint_least32_t utilvserver_checkCompatConfig(); bool utilvserver_isDirectory(char const *path, bool follow_link); bool utilvserver_isFile(char const *path, bool follow_link); bool utilvserver_isLink(char const *path); diff --git a/lib/ioctl-getext2flags.hc b/lib/ioctl-getext2flags.hc index 4cf9359..d7be751 100644 --- a/lib/ioctl-getext2flags.hc +++ b/lib/ioctl-getext2flags.hc @@ -1,4 +1,4 @@ -// $Id: ioctl-getext2flags.hc,v 1.4 2004/01/23 20:47:32 ensc Exp $ --*- c -*-- +// $Id: ioctl-getext2flags.hc 702 2004-01-23 20:47:32Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/ioctl-getfilecontext.hc b/lib/ioctl-getfilecontext.hc index ab3423f..7d4df9a 100644 --- a/lib/ioctl-getfilecontext.hc +++ b/lib/ioctl-getfilecontext.hc @@ -1,4 +1,4 @@ -// $Id: ioctl-getfilecontext.hc,v 1.4 2004/01/23 20:47:32 ensc Exp $ --*- c -*-- +// $Id: ioctl-getfilecontext.hc 702 2004-01-23 20:47:32Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/ioctl-getxflg.hc b/lib/ioctl-getxflg.hc index 776f322..28920f5 100644 --- a/lib/ioctl-getxflg.hc +++ b/lib/ioctl-getxflg.hc @@ -1,4 +1,4 @@ -// $Id: ioctl-getxflg.hc,v 1.3 2004/01/22 13:36:30 ensc Exp $ --*- c -*-- +// $Id: ioctl-getxflg.hc 685 2004-01-22 13:36:30Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/ioctl-setext2flags.hc b/lib/ioctl-setext2flags.hc index e76e9db..ba1d9fc 100644 --- a/lib/ioctl-setext2flags.hc +++ b/lib/ioctl-setext2flags.hc @@ -1,4 +1,4 @@ -// $Id: ioctl-setext2flags.hc,v 1.4 2004/01/23 20:47:32 ensc Exp $ --*- c -*-- +// $Id: ioctl-setext2flags.hc 702 2004-01-23 20:47:32Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/ioctl-setfilecontext.hc b/lib/ioctl-setfilecontext.hc index e4c8082..9989a3a 100644 --- a/lib/ioctl-setfilecontext.hc +++ b/lib/ioctl-setfilecontext.hc @@ -1,4 +1,4 @@ -// $Id: ioctl-setfilecontext.hc,v 1.4 2004/01/23 20:47:32 ensc Exp $ --*- c -*-- +// $Id: ioctl-setfilecontext.hc 702 2004-01-23 20:47:32Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/ioctl-setxflg.hc b/lib/ioctl-setxflg.hc index 7f7001f..25381d2 100644 --- a/lib/ioctl-setxflg.hc +++ b/lib/ioctl-setxflg.hc @@ -1,4 +1,4 @@ -// $Id: ioctl-setxflg.hc,v 1.4 2004/01/23 20:47:32 ensc Exp $ --*- c -*-- +// $Id: ioctl-setxflg.hc 702 2004-01-23 20:47:32Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/isdirectory.c b/lib/isdirectory.c index f70249c..1b8de9a 100644 --- a/lib/isdirectory.c +++ b/lib/isdirectory.c @@ -1,4 +1,4 @@ -// $Id: isdirectory.c,v 1.1 2004/01/16 17:55:45 ensc Exp $ --*- c -*-- +// $Id: isdirectory.c 611 2004-01-16 18:00:11Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/isdynamicxid.c b/lib/isdynamicxid.c index a87504b..658c0a9 100644 --- a/lib/isdynamicxid.c +++ b/lib/isdynamicxid.c @@ -1,4 +1,4 @@ -// $Id: isdynamicxid.c,v 1.1 2004/03/16 03:42:14 ensc Exp $ --*- c -*-- +// $Id: isdynamicxid.c 2415 2006-12-08 13:24:49Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,10 +21,10 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" bool vc_is_dynamic_xid(xid_t xid) { - return xid>=MIN_D_CONTEXT; + return vc_getXIDType(xid) == vcTYPE_DYNAMIC; } diff --git a/lib/isfile.c b/lib/isfile.c index 9cd6dd3..8b3ea34 100644 --- a/lib/isfile.c +++ b/lib/isfile.c @@ -1,4 +1,4 @@ -// $Id: isfile.c,v 1.1 2004/08/19 13:56:47 ensc Exp $ --*- c -*-- +// $Id: isfile.c 1654 2004-08-19 13:56:47Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/islink.c b/lib/islink.c index 3179e94..0b95799 100644 --- a/lib/islink.c +++ b/lib/islink.c @@ -1,4 +1,4 @@ -// $Id: islink.c,v 1.1 2004/10/21 19:01:26 ensc Exp $ --*- c -*-- +// $Id: islink.c 1759 2004-10-21 19:01:26Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/issupported.c b/lib/issupported.c index 544403f..0c44151 100644 --- a/lib/issupported.c +++ b/lib/issupported.c @@ -1,4 +1,4 @@ -// $Id: issupported.c,v 1.4 2005/05/19 18:05:18 ensc Exp $ --*- c -*-- +// $Id: issupported.c 2449 2007-01-10 18:53:07Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -42,6 +42,8 @@ vc_isSupported(vcFeatureSet feature) case vcFEATURE_NAMESPACE : return ver >= 0x00010012; case vcFEATURE_VWAIT : return ver >= 0x00010025; case vcFEATURE_SCHED : return ver >= 0x00020000; // todo + case vcFEATURE_VNET : return ver >= 0x00020001; + case vcFEATURE_VSTAT : return ver >= 0x00020103; default : assert(false); } diff --git a/lib/issupportedstring.c b/lib/issupportedstring.c index f9dcfac..6aea070 100644 --- a/lib/issupportedstring.c +++ b/lib/issupportedstring.c @@ -1,4 +1,4 @@ -// $Id: issupportedstring.c,v 1.4 2005/05/19 18:05:18 ensc Exp $ --*- c -*-- +// $Id: issupportedstring.c 2449 2007-01-10 18:53:07Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -31,9 +31,10 @@ static struct { vcFeatureSet feature; char const * name; } FEATURES[] = { - DECL(VKILL), DECL(IATTR), DECL(RLIMIT), DECL(COMPAT), - DECL(MIGRATE), DECL(NAMESPACE), DECL(SCHED), DECL(VINFO), - DECL(VHI), DECL(VSHELPER0), DECL(VSHELPER), DECL(VWAIT) + DECL(VKILL), DECL(IATTR), DECL(RLIMIT), DECL(COMPAT), + DECL(MIGRATE), DECL(NAMESPACE), DECL(SCHED), DECL(VINFO), + DECL(VHI), DECL(VSHELPER0), DECL(VSHELPER), DECL(VWAIT), + DECL(VNET), DECL(VSTAT), }; bool diff --git a/lib/listparser.hc b/lib/listparser.hc index ebf5fac..3aa63cc 100644 --- a/lib/listparser.hc +++ b/lib/listparser.hc @@ -1,4 +1,4 @@ -// $Id: listparser.hc,v 1.5 2005/04/24 20:23:11 ensc Exp $ --*- c -*-- +// $Id: listparser.hc 2037 2005-04-24 20:23:11Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/listparser_uint32.c b/lib/listparser_uint32.c index 0626110..4ae4d29 100644 --- a/lib/listparser_uint32.c +++ b/lib/listparser_uint32.c @@ -1,4 +1,4 @@ -// $Id: listparser_uint32.c,v 1.1 2004/03/05 03:12:18 ensc Exp $ --*- c -*-- +// $Id: listparser_uint32.c 1067 2004-03-05 03:12:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/listparser_uint64.c b/lib/listparser_uint64.c index 8b7f70e..9168a65 100644 --- a/lib/listparser_uint64.c +++ b/lib/listparser_uint64.c @@ -1,4 +1,4 @@ -// $Id: listparser_uint64.c,v 1.1 2004/03/05 03:12:18 ensc Exp $ --*- c -*-- +// $Id: listparser_uint64.c 1067 2004-03-05 03:12:18Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/ncaps-net.c b/lib/ncaps-net.c index a2105d0..d8bcfef 100644 --- a/lib/ncaps-net.c +++ b/lib/ncaps-net.c @@ -1,4 +1,4 @@ -// $Id: ncaps-net.c,v 1.2 2005/04/24 20:25:17 ensc Exp $ --*- c -*-- +// $Id: ncaps-net.c 2393 2006-11-23 18:30:29Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -25,6 +25,7 @@ #include #include +#include #include #define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL } @@ -34,10 +35,23 @@ static struct Mapping_uint64 const VALUES[] = { DECL("", 0) }; +inline static char const * +removePrefix(char const *str, size_t *len) +{ + if ((len==0 || *len==0 || *len>4) && + strncasecmp("nxc_", str, 4)==0) { + if (len && *len>4) *len -= 4; + return str+4; + } + else + return str; +} + uint_least64_t vc_text2ncap(char const *str, size_t len) { - ssize_t idx = utilvserver_value2text_uint64(str, len, + char const * tmp = removePrefix(str, &len); + ssize_t idx = utilvserver_value2text_uint64(tmp, len, VALUES, DIM_OF(VALUES)); if (idx==-1) return 0; else return VALUES[idx].val; diff --git a/lib/ncaps_list-net.c b/lib/ncaps_list-net.c index c2cd50a..0961d2d 100644 --- a/lib/ncaps_list-net.c +++ b/lib/ncaps_list-net.c @@ -1,4 +1,4 @@ -// $Id: ncaps_list-net.c,v 1.2 2005/04/24 20:24:36 ensc Exp $ --*- c -*-- +// $Id: ncaps_list-net.c 2038 2005-04-24 20:24:36Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <> // diff --git a/lib/nflags-net.c b/lib/nflags-net.c index 761faed..00e6e45 100644 --- a/lib/nflags-net.c +++ b/lib/nflags-net.c @@ -1,4 +1,4 @@ -// $Id: nflags-net.c,v 1.2 2005/04/24 20:25:17 ensc Exp $ --*- c -*-- +// $Id: nflags-net.c 2404 2006-11-25 00:38:30Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -25,19 +25,47 @@ #include #include +#include #include #define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL } static struct Mapping_uint64 const VALUES[] = { -#warning Add the 'nflags' values here - DECL("", 0) + DECL("lock", VC_NXF_INFO_LOCK), + DECL("private", VC_NXF_INFO_PRIVATE), + + DECL("single_ip", VC_NXF_SINGLE_IP), + + DECL("hide_netif", VC_NXF_HIDE_NETIF), + + DECL("state_setup", VC_NXF_STATE_SETUP), + DECL("state_admin", VC_NXF_STATE_ADMIN), + + DECL("sc_helper", VC_NXF_SC_HELPER), + DECL("persistent", VC_NXF_PERSISTENT), + + // Aliases for the legacy flags + DECL("info_lock", VC_NXF_INFO_LOCK), + DECL("info_private", VC_NXF_INFO_PRIVATE), }; +inline static char const * +removePrefix(char const *str, size_t *len) +{ + if ((len==0 || *len==0 || *len>4) && + strncasecmp("nxf_", str, 4)==0) { + if (len && *len>4) *len -= 4; + return str+4; + } + else + return str; +} + uint_least64_t vc_text2nflag(char const *str, size_t len) { - ssize_t idx = utilvserver_value2text_uint64(str, len, + char const * tmp = removePrefix(str, &len); + ssize_t idx = utilvserver_value2text_uint64(tmp, len, VALUES, DIM_OF(VALUES)); if (idx==-1) return 0; else return VALUES[idx].val; diff --git a/lib/nflags_list-net.c b/lib/nflags_list-net.c index acd0518..b4c7230 100644 --- a/lib/nflags_list-net.c +++ b/lib/nflags_list-net.c @@ -1,4 +1,4 @@ -// $Id: nflags_list-net.c,v 1.2 2005/04/24 20:24:36 ensc Exp $ --*- c -*-- +// $Id: nflags_list-net.c 2038 2005-04-24 20:24:36Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <> // diff --git a/lib/nidopt2nid.c b/lib/nidopt2nid.c new file mode 100644 index 0000000..9a2d7a4 --- /dev/null +++ b/lib/nidopt2nid.c @@ -0,0 +1,40 @@ +// $Id: nidopt2nid.c 2384 2006-11-19 17:25:11Z dhozac $ --*- c -*-- + +// Copyright (C) 2004 Enrico Scholz +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include +#include + +nid_t +vc_nidopt2nid(char const *str, bool honor_static, char const **err_info) +{ + char const * err; + nid_t res = VC_NOCTX; + + err = "vc_get_task_nid()"; + if (strcmp(str,"self")==0) res = vc_get_task_nid(0); + else res = vc_xidopt2xid(str, honor_static, &err); + + if (res==VC_NOCTX && err_info) *err_info = err; + + return res; +} diff --git a/lib/parselimit.c b/lib/parselimit.c index dd225fb..7067964 100644 --- a/lib/parselimit.c +++ b/lib/parselimit.c @@ -1,4 +1,4 @@ -// $Id: parselimit.c,v 1.1 2004/03/05 17:20:31 ensc Exp $ --*- c -*-- +// $Id: parselimit.c 1101 2004-03-05 17:21:36Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/personalityflag.c b/lib/personalityflag.c index 2920a50..d2bafcf 100644 --- a/lib/personalityflag.c +++ b/lib/personalityflag.c @@ -1,4 +1,4 @@ -// $Id: personalityflag.c,v 1.2 2005/07/15 19:40:15 ensc Exp $ --*- c -*-- +// $Id: personalityflag.c 2159 2005-07-15 19:40:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/personalityflag_list.c b/lib/personalityflag_list.c index 6903bf0..b086936 100644 --- a/lib/personalityflag_list.c +++ b/lib/personalityflag_list.c @@ -1,4 +1,4 @@ -// $Id: personalityflag_list.c,v 1.1 2005/04/28 17:51:43 ensc Exp $ --*- c -*-- +// $Id: personalityflag_list.c 2055 2005-04-28 17:51:43Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/lib/personalitytype.c b/lib/personalitytype.c index 47eaf61..5710b82 100644 --- a/lib/personalitytype.c +++ b/lib/personalitytype.c @@ -1,4 +1,4 @@ -// $Id: personalitytype.c,v 1.2 2005/07/15 19:40:15 ensc Exp $ --*- c -*-- +// $Id: personalitytype.c 2159 2005-07-15 19:40:15Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/lib/planetlab.c b/lib/planetlab.c index adf6083..69f1fb0 100644 --- a/lib/planetlab.c +++ b/lib/planetlab.c @@ -31,6 +31,9 @@ POSSIBILITY OF SUCH DAMAGE. */ +#ifdef HAVE_CONFIG_H +# include +#endif #include #include #include @@ -40,10 +43,8 @@ POSSIBILITY OF SUCH DAMAGE. #include #include #include +#include -#include "config.h" -#include "sched_cmd.h" -#include "virtual.h" #include "vserver.h" #include "planetlab.h" @@ -51,6 +52,25 @@ static int create_context(xid_t ctx, uint64_t bcaps, struct sliver_resources *slr) { struct vc_ctx_caps vc_caps; + struct vc_net_nx vc_net; + struct vc_net_flags vc_nf; + + /* Create network context */ + if (vc_net_create(ctx) == VC_NOCTX) + return -1; + + /* Make the network context persistent */ + vc_nf.mask = vc_nf.flagword = VC_NXF_PERSISTENT; + if (vc_set_nflags(ctx, &vc_nf)) + return -1; + + /* XXX: Allow access to all IPv4 addresses (for now) */ + vc_net.type = vcNET_IPV4; + vc_net.count = 1; + vc_net.ip[0] = 0; + vc_net.mask[0] = 0; + if (vc_net_add(ctx, &vc_net) == -1) + return -1; /* * Create context info - this sets the STATE_SETUP and STATE_INIT flags. @@ -77,10 +97,10 @@ pl_setup_done(xid_t ctx) struct vc_ctx_flags vc_flags; /* unset SETUP flag - this allows other processes to migrate */ - + /* set the PERSISTENT flag - so the context doesn't vanish */ /* Don't clear the STATE_INIT flag, as that would make us the init task. */ - vc_flags.mask = VC_VXF_STATE_SETUP; - vc_flags.flagword = 0; + vc_flags.mask = VC_VXF_STATE_SETUP|VC_VXF_PERSISTENT; + vc_flags.flagword = VC_VXF_PERSISTENT; if (vc_set_cflags(ctx, &vc_flags)) return -1; @@ -93,6 +113,7 @@ int pl_chcontext(xid_t ctx, uint64_t bcaps, struct sliver_resources *slr) { int retry_count = 0; + int net_migrated = 0; for (;;) { @@ -134,8 +155,12 @@ pl_chcontext(xid_t ctx, uint64_t bcaps, struct sliver_resources *slr) /* context has been setup */ migrate: - if (!vc_ctx_migrate(ctx)) - break; /* done */ + if (net_migrated || !vc_net_migrate(ctx)) + { + if (!vc_ctx_migrate(ctx, 0)) + break; /* done */ + net_migrated = 1; + } /* context disappeared - retry */ } @@ -160,22 +185,32 @@ pl_setsched(xid_t ctx, uint32_t cpu_share, uint32_t cpu_sched_flags) uint32_t new_flags; vc_sched.set_mask = (VC_VXSM_FILL_RATE | VC_VXSM_INTERVAL | VC_VXSM_TOKENS | - VC_VXSM_TOKENS_MIN | VC_VXSM_TOKENS_MAX); - vc_sched.fill_rate = cpu_share; /* tokens accumulated per interval */ - vc_sched.interval = 1000; /* milliseconds */ + VC_VXSM_TOKENS_MIN | VC_VXSM_TOKENS_MAX | VC_VXSM_MSEC | + VC_VXSM_FILL_RATE2 | VC_VXSM_INTERVAL2 | VC_VXSM_FORCE | + VC_VXSM_IDLE_TIME); + vc_sched.fill_rate = 0; + vc_sched.fill_rate2 = cpu_share; /* tokens accumulated per interval */ + vc_sched.interval = vc_sched.interval2 = 1000; /* milliseconds */ vc_sched.tokens = 100; /* initial allocation of tokens */ vc_sched.tokens_min = 50; /* need this many tokens to run */ vc_sched.tokens_max = 100; /* max accumulated number of tokens */ + if (cpu_share == VC_LIM_KEEP) + vc_sched.set_mask &= ~(VC_VXSM_FILL_RATE|VC_VXSM_FILL_RATE2); + VC_SYSCALL(vc_set_sched(ctx, &vc_sched)); /* get current flag values */ VC_SYSCALL(vc_get_cflags(ctx, &vc_flags)); /* guaranteed CPU corresponds to SCHED_SHARE flag being cleared */ - new_flags = (cpu_sched_flags & VS_SCHED_CPU_GUARANTEED - ? 0 - : VC_VXF_SCHED_SHARE); + if (cpu_sched_flags & VS_SCHED_CPU_GUARANTEED) { + new_flags = VC_VXF_SCHED_SHARE; + vc_sched.fill_rate = vc_sched.fill_rate2; + } + else + new_flags = 0; + if ((vc_flags.flagword & VC_VXF_SCHED_SHARE) != new_flags) { vc_flags.mask = VC_VXF_SCHED_FLAGS; @@ -200,37 +235,35 @@ void pl_get_limits(char *context, struct sliver_resources *slr) { FILE *fb; - size_t len = strlen(VSERVERCONF) + strlen(context) + strlen(".conf") + NULLBYTE_SIZE; - char *conf = (char *)malloc(len); + int cwd; + size_t len = strlen(VSERVERCONF) + strlen(context) + NULLBYTE_SIZE; + char *conf = (char *)malloc(len + strlen("rlimits/openfd.hard")); struct pl_resources *r; struct pl_resources sliver_list[] = { - {"CPULIMIT", &slr->vs_cpu}, - {"CPUSHARE", &slr->vs_cpu}, - {"CPUGUARANTEED", &slr->vs_cpuguaranteed}, + {"sched/fill-rate2", &slr->vs_cpu}, + {"sched/fill-rate", &slr->vs_cpuguaranteed}, - {"TASKLIMIT", &slr->vs_nproc.hard}, /* backwards compatible */ - {"VS_NPROC_HARD", &slr->vs_nproc.hard}, - {"VS_NPROC_SOFT", &slr->vs_nproc.soft}, - {"VS_NPROC_MINIMUM", &slr->vs_nproc.min}, + {"rlimits/nproc.hard", &slr->vs_nproc.hard}, + {"rlimits/nproc.soft", &slr->vs_nproc.soft}, + {"rlimits/nproc.min", &slr->vs_nproc.min}, - {"MEMLIMIT", &slr->vs_rss.hard}, /* backwards compatible */ - {"VS_RSS_HARD", &slr->vs_rss.hard}, - {"VS_RSS_SOFT", &slr->vs_rss.soft}, - {"VS_RSS_MINIMUM", &slr->vs_rss.min}, + {"rlimits/rss.hard", &slr->vs_rss.hard}, + {"rlimits/rss.soft", &slr->vs_rss.soft}, + {"rlimits/rss.min", &slr->vs_rss.min}, - {"VS_AS_HARD", &slr->vs_as.hard}, - {"VS_AS_SOFT", &slr->vs_as.soft}, - {"VS_AS_MINIMUM", &slr->vs_as.min}, + {"rlimits/as.hard", &slr->vs_as.hard}, + {"rlimits/as.soft", &slr->vs_as.soft}, + {"rlimits/as.min", &slr->vs_as.min}, - {"VS_OPENFD_HARD", &slr->vs_openfd.hard}, - {"VS_OPENFD_SOFT", &slr->vs_openfd.soft}, - {"VS_OPENFD_MINIMUM", &slr->vs_openfd.min}, + {"rlimits/openfd.hard", &slr->vs_openfd.hard}, + {"rlimits/openfd.soft", &slr->vs_openfd.soft}, + {"rlimits/openfd.min", &slr->vs_openfd.min}, - {"VS_WHITELISTED", &slr->vs_whitelisted}, + {"whitelisted", &slr->vs_whitelisted}, {0,0} }; - sprintf(conf, "%s%s.conf", VSERVERCONF, context); + sprintf(conf, "%s%s", VSERVERCONF, context); slr->vs_cpu = VC_LIM_KEEP; slr->vs_cpuguaranteed = 0; @@ -254,6 +287,33 @@ pl_get_limits(char *context, struct sliver_resources *slr) slr->vs_whitelisted = 1; + cwd = open(".", O_RDONLY); + if (cwd == -1) { + perror("cannot get a handle on ."); + goto out; + } + if (chdir(conf) == -1) { + fprintf(stderr, "cannot chdir to "); + perror(conf); + goto out_fd; + } + + for (r = &sliver_list[0]; r->name; r++) { + char buf[1000]; + fb = fopen(r->name, "r"); + if (fb == NULL) + continue; + if (fgets(buf, sizeof(buf), fb) != NULL && isdigit(*buf)) { + *r->limit = atoi(buf); + } + fclose(fb); + } + + fchdir(cwd); +out_fd: + close(cwd); +out: +#if 0 /* open the conf file for reading */ fb = fopen(conf,"r"); if (fb != NULL) { @@ -288,7 +348,7 @@ pl_get_limits(char *context, struct sliver_resources *slr) *r->limit = atoi(&buffer[index]); if (0) /* for debugging only */ - fprintf(stderr,"pl_get_limits found %s=%ld\n", + fprintf(stderr,"pl_get_limits found %s=%lld\n", r->name,*r->limit); break; } @@ -299,6 +359,7 @@ pl_get_limits(char *context, struct sliver_resources *slr) } else { fprintf(stderr,"cannot open %s\n",conf); } +#endif free(conf); } @@ -391,11 +452,7 @@ pl_set_limits(xid_t ctx, struct sliver_resources *slr) PERROR("pl_setrlimit(%u, RLIMIT_NOFILE)", ctx); exit(1); } -#ifndef VLIMIT_OPENFD -#warning VLIMIT_OPENFD should be defined from standard header -#define VLIMIT_OPENFD 17 -#endif - if (vc_set_rlimit(ctx, VLIMIT_OPENFD, &slr->vs_openfd)) + if (vc_set_rlimit(ctx, VC_VLIMIT_OPENFD, &slr->vs_openfd)) { PERROR("pl_setrlimit(%u, VLIMIT_OPENFD)", ctx); exit(1); diff --git a/lib/safechroot-internal.hc b/lib/safechroot-internal.hc index 5204bf9..ccc360f 100644 --- a/lib/safechroot-internal.hc +++ b/lib/safechroot-internal.hc @@ -1,4 +1,4 @@ -// $Id: safechroot-internal.hc,v 1.2 2003/10/14 15:40:50 ensc Exp $ --*- c++ -*-- +// $Id: safechroot-internal.hc 147 2003-10-14 15:40:50Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/syscall-alternative.h b/lib/syscall-alternative.h index b301e39..63f4f32 100644 --- a/lib/syscall-alternative.h +++ b/lib/syscall-alternative.h @@ -1,2336 +1,1011 @@ + // from http://vserver.13thfloor.at/Experimental/SYSCALL/syscall_shiny17.h -#ifndef __syscall_retval -#define __syscall_retval(v) do { } while(0) -#endif +#ifndef __SYSCALL_NEW_H +#define __SYSCALL_NEW_H -#ifndef __syscall_error -#define __syscall_error(e) do { errno = (e); } while(0) -#endif +/* Copyright (C) 2005-2007 Herbert Pötzl -#define __check(pos, reg) \ - ".ifnc " pos ", " reg "\n\t" \ - ".err\n\t" \ - ".endif\n\t" + global config options -#ifndef __stringify0 -#define __stringify0(val) #val -#endif + __sysc_seterr ... set error value (def: errno) + __sysc_cid(N) ... syscall 'name' id (def: __NR_) -#ifndef __stringify -#define __stringify(val) __stringify0(val) -#endif + arch specific config -#define __comment(name) \ - "\t/* kernel sys_" #name "[" __stringify(__NR_##name) "] */" + __sysc_regs ... the syscall registers (asm load) + __sysc_cmd(n) ... the syscall + __sysc_reg_cid ... syscall id register (asm load) + __sysc_reg_ret ... syscall return register (asm out) + __sysc_reg_err ... syscall error register (asm out) + __sysc_clbrs ... the clobbered syscall registers + __sysc_clobber ... clobbered registers (def: memory) + __sysc_max_err ... maximum error number (def: separate) + __sysc_errc(r,e)... error condition (def: e) -/* ***************************************** - ALPHA ALPHA ALPHA ALPHA * - alpha kernel interface */ - -#if defined(__alpha__) + __sysc_type ... type of syscall arguments (def: long) + __sysc_acon(n) ... argument constraint (def: "r") + __sysc_con_cid ... syscall id constraint (def: "i"/"r") + __sysc_con_ret ... return value contraint (def: "=r") + __sysc_con_err ... error value contraint (def: "=r") -/* The Alpha calling convention doesn't use the stack until - after the first six arguments have been passed in registers. - - scnr: v0($0) - args: a0($16), a1($17), a2($18), a3($19), a4($20), a5($21) - sret: v0($0) - serr: a3($19) (!=0, err=sret) -*/ + hard core replacements + __sc_body(n,type,name,...) + __sc_results + __sc_cidvar(N) + __sc_input(n,...) + __sc_syscall(n,N,...) + __sc_return(t) -#define __syscall_return(type, ret, err) do { \ - __syscall_retval(ret); \ - if (err) { \ - int __err = (ret); \ - __syscall_error(__err); \ - ret = -1; \ - } \ - return (type) ret; \ -} while (0) +*/ -#define __syscall_regdef(name, reg) \ - register long __sc_##name __asm__ (reg) + /* some fallback defaults */ -#define __syscall_regval(name, reg, val) \ - register long __sc_##name __asm__ (reg) = (long)(val) - -#define __syscall_clobbers \ - "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", \ - "$22", "$23", "$24", "$25", "$27", "$28", "memory" \ +#ifndef __sysc_seterr +#define __sysc_seterr(e) do { errno = (e); } while(0) +#endif +#ifndef __sysc_cid +#define __sysc_cid(N) __NR_##N +#endif -#define _syscall0(type, name) \ -type name(void) \ -{ \ - long __sc_ret, __sc_err; \ - { \ - __syscall_regval(v0, "$0", __NR_##name); \ - __syscall_regdef(a3, "$19"); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2", "$0$19$0") \ - "callsys" __comment(name) \ - : "=r"(__sc_v0), "=r"(__sc_a3) \ - : "0"(__sc_v0) \ - : "$16", "$17", "$18", "$20", "$21", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_v0; \ - __sc_err = __sc_a3; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} -#define _syscall1(type, name, type1, arg1) \ -type name(type1 arg1) \ -{ \ - long __sc_ret, __sc_err; \ - { \ - __syscall_regval(v0, "$0", __NR_##name); \ - __syscall_regval(a0, "$16", arg1); \ - __syscall_regdef(a3, "$19"); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2%3", "$0$19$0$16") \ - "callsys" __comment(name) \ - : "=r"(__sc_v0), "=r"(__sc_a3) \ - : "0"(__sc_v0), \ - "r"(__sc_a0) \ - : "$17", "$18", "$20", "$21", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_v0; \ - __sc_err = __sc_a3; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} +/* ***************************************** + ALPHA ALPHA ALPHA ALPHA * + alpha kernel interface */ -#define _syscall2(type, name, type1, arg1, type2, arg2) \ -type name(type1 arg1, type2 arg2) \ -{ \ - long __sc_ret, __sc_err; \ - { \ - __syscall_regval(v0, "$0", __NR_##name); \ - __syscall_regval(a0, "$16", arg1); \ - __syscall_regval(a1, "$17", arg2); \ - __syscall_regdef(a3, "$19"); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2%3%4", "$0$19$0$16$17") \ - "callsys" __comment(name) \ - : "=r"(__sc_v0), "=r"(__sc_a3) \ - : "0"(__sc_v0), \ - "r"(__sc_a0), "r"(__sc_a1) \ - : "$18", "$20", "$21", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_v0; \ - __sc_err = __sc_a3; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} +#if defined(__alpha__) -#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ -type name(type1 arg1, type2 arg2, type3 arg3) \ -{ \ - long __sc_ret, __sc_err; \ - { \ - __syscall_regval(v0, "$0", __NR_##name); \ - __syscall_regval(a0, "$16", arg1); \ - __syscall_regval(a1, "$17", arg2); \ - __syscall_regval(a2, "$18", arg3); \ - __syscall_regdef(a3, "$19"); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2%3%4%5", "$0$19$0$16$17$18") \ - "callsys" __comment(name) \ - : "=r"(__sc_v0), "=r"(__sc_a3) \ - : "0"(__sc_v0), \ - "r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2) \ - : "$20", "$21", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_v0; \ - __sc_err = __sc_a3; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} +/* The Alpha calling convention doesn't use the stack until + after the first six arguments have been passed in registers. -#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ - long __sc_ret, __sc_err; \ - { \ - __syscall_regval(v0, "$0", __NR_##name); \ - __syscall_regval(a0, "$16", arg1); \ - __syscall_regval(a1, "$17", arg2); \ - __syscall_regval(a2, "$18", arg3); \ - __syscall_regval(a3, "$19", arg4); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2%3%4%5%6", "$0$19$0$16$17$18$19") \ - "callsys" __comment(name) \ - : "=r"(__sc_v0), "=r"(__sc_a3) \ - : "0"(__sc_v0), \ - "r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2), \ - "1"(__sc_a3) \ - : "$20", "$21", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_v0; \ - __sc_err = __sc_a3; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} + scnr: v0($0) + args: a1($16), a2($17), a3($18), a4($19), a5($20), a6($21) + sret: r0($0) + serr: e0($19) (!=0, err=sret) + call: callsys + clob: memory + move: mov $sR,$dR + picr: pr($29) do we need to save that? +*/ -#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -{ \ - long __sc_ret, __sc_err; \ - { \ - __syscall_regval(v0, "$0", __NR_##name); \ - __syscall_regval(a0, "$16", arg1); \ - __syscall_regval(a1, "$17", arg2); \ - __syscall_regval(a2, "$18", arg3); \ - __syscall_regval(a3, "$19", arg4); \ - __syscall_regval(a4, "$20", arg5); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2%3%4%5%6%7", "$0$19$0$16$17$18$19$20") \ - "callsys" __comment(name) \ - : "=r"(__sc_v0), "=r"(__sc_a3) \ - : "0"(__sc_v0), \ - "r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2), \ - "1"(__sc_a3), "r"(__sc_a4) \ - : "$21", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_v0; \ - __sc_err = __sc_a3; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} +#define __sysc_cmd(n) "callsys" -#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5, type6, arg6) \ -type name (type1 arg1, type2 arg2, type3 arg3, \ - type4 arg4, type5 arg5, type6 arg6) \ -{ \ - long __sc_ret, __sc_err; \ - { \ - __syscall_regval(v0, "$0", __NR_##name); \ - __syscall_regval(a0, "$16", arg1); \ - __syscall_regval(a1, "$17", arg2); \ - __syscall_regval(a2, "$18", arg3); \ - __syscall_regval(a3, "$19", arg4); \ - __syscall_regval(a4, "$20", arg5); \ - __syscall_regval(a5, "$21", arg6); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2%3%4%5%6%7%8", \ - "$0$19$0$16$17$18$19$20$21") \ - "callsys" __comment(name) \ - : "=r"(__sc_v0), "=r"(__sc_a3) \ - : "0"(__sc_v0), \ - "r"(__sc_a0), "r"(__sc_a1), "r"(__sc_a2), \ - "1"(__sc_a3), "r"(__sc_a4), "r"(__sc_a5) \ - : __syscall_clobbers \ - ); \ - __sc_ret = __sc_v0; \ - __sc_err = __sc_a3; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} +#define __sysc_reg_cid "$0" +#define __sysc_con_cid "v" +#define __sysc_reg_ret "$0" +#define __sysc_con_ret "=v" +#define __sysc_reg_err "$19" +#define __sysc_regs "$16", "$17", "$18", "$19", "$20", "$21" +#define __sysc_clbrs "$16", "$17", "$18", "memory", "$20", "$21" +#define __sysc_clobber "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", \ + "$22", "$23", "$24", "$25", "$27", "$28", "memory" /* ***************************************** - ARM ARM ARM ARM * + ARM ARM ARM ARM * arm kernel interface */ #elif defined(__arm__) -/* The Arm calling convention uses stack args after four arguments - but the Linux kernel gets up to seven arguments in registers. +/* The Arm calling convention uses stack args after four arguments + but the Linux kernel gets up to seven arguments in registers. scnr: imm - args: a1(r0), a2(r1), a3(r2), a4(r3), v1(r4), v2(r5), - sret: a1(r0) - serr: (err= sret > (unsigned)-EMAXERRNO) + args: a1(r0), a2(r1), a3(r2), a4(r3), a5(r4), a6(r5), + sret: r0(r0) + serr: (sret >= (unsigned)-EMAXERRNO) + call: swi + clob: memory + move: mov $dR,$sR */ -#ifndef EMAXERRNO -#define EMAXERRNO 125 -#endif +#define __sysc_max_err 125 -#define __syscall_errcon(res) \ - ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO)) +#define __sysc_cmd(n) "swi %1" -#define __syscall_return(type, res) do { \ - __syscall_retval(res); \ - if (__syscall_errcon(res)) { \ - int __err = -(res); \ - __syscall_error(__err); \ - res = -1; \ - } \ - return (type) res; \ -} while (0) +#define __sysc_regs "r0", "r1", "r2", "r3", "r4", "r5" +#define __sysc_reg_ret "r0" -#define __syscall_regdef(name, reg) \ - register int __sc_##name __asm__ (reg) +#warning syscall arch arm not tested yet -#define __syscall_regval(name, reg, val) \ - register int __sc_##name __asm__ (reg) = (int)(val) -#define _syscall0(type, name) \ -type name(void) \ -{ \ - long __sc_res; \ - { \ - __syscall_regdef(a1, "r0"); \ - \ - __asm__ __volatile__ ( \ - __check("%0", "r0") \ - "swi %1" __comment(name) \ - : "=r"(__sc_a1) \ - : "i"(__NR_##name) \ - : "memory" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +/* ***************************************** + CRIS CRIS CRIS CRIS * + cris v10 kernel interface */ -#define _syscall1(type, name, type1, arg1) \ -type name(type1 arg1) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a1, "r0", arg1); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2", "r0r0") \ - "swi %1" __comment(name) \ - : "=r"(__sc_a1) \ - : "i"(__NR_##name), \ - "0"(__sc_a1) \ - : "memory" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +#elif defined(__cris__) -#define _syscall2(type, name, type1, arg1, type2, arg2) \ -type name(type1 arg1, type2 arg2) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a1, "r0", arg1); \ - __syscall_regval(a2, "r1", arg2); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2%3", "r0r0r1") \ - "swi %1" __comment(name) \ - : "=r"(__sc_a1) \ - : "i"(__NR_##name), \ - "0"(__sc_a1), "r"(__sc_a2) \ - : "memory" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +/* The Cris calling convention uses stack args after four arguments + but the Linux kernel gets up to six arguments in registers. -#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ -type name(type1 arg1, type2 arg2, type3 arg3) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a1, "r0", arg1); \ - __syscall_regval(a2, "r1", arg2); \ - __syscall_regval(a3, "r2", arg3); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2%3%4", "r0r0r1r2") \ - "swi %1" __comment(name) \ - : "=r"(__sc_a1) \ - : "i"(__NR_##name), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3) \ - : "memory" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} + scnr: id(r9) + args: a1(r10), a2(r11), a3(r12), a4(r13), a5(mof), a6(srp), + sret: r0(r10) + serr: (sret >= (unsigned)-EMAXERRNO) + call: break 13 + clob: memory +*/ -#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a1, "r0", arg1); \ - __syscall_regval(a2, "r1", arg2); \ - __syscall_regval(a3, "r2", arg3); \ - __syscall_regval(a4, "r3", arg4); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2%3%4%5", "r0r0r1r2r3") \ - "swi %1" __comment(name) \ - : "=r"(__sc_a1) \ - : "i"(__NR_##name), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4) \ - : "memory" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} - -#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a1, "r0", arg1); \ - __syscall_regval(a2, "r1", arg2); \ - __syscall_regval(a3, "r2", arg3); \ - __syscall_regval(a4, "r3", arg4); \ - __syscall_regval(v1, "r4", arg5); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2%3%4%5%6", "r0r0r1r2r3r4") \ - "swi %1" __comment(name) \ - : "=r"(__sc_a1) \ - : "i"(__NR_##name), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4), "r"(__sc_v1) \ - : "memory" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +#error syscall arch cris not implemented yet -#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5, type6, arg6) \ -type name (type1 arg1, type2 arg2, type3 arg3, \ - type4 arg4, type5 arg5, type6 arg6) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a1, "r0", arg1); \ - __syscall_regval(a2, "r1", arg2); \ - __syscall_regval(a3, "r2", arg3); \ - __syscall_regval(a4, "r3", arg4); \ - __syscall_regval(v1, "r4", arg5); \ - __syscall_regval(v2, "r5", arg6); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2%3%4%5%6%7", "r0r0r1r2r3r4r5") \ - "swi %1" __comment(name) \ - : "=r"(__sc_a1) \ - : "i"(__NR_##name), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4), "r"(__sc_v1), "r"(__sc_v2) \ - : "memory" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} /* ***************************************** - CRIS CRIS CRIS CRIS * - cris v10 kernel interface */ + FRV FRV FRV FRV * + frv kernel interface */ -#elif defined(__cris__) +#elif defined(__frv__) -/* The Cris calling convention uses stack args after four arguments - but the Linux kernel gets up to six arguments in registers. +/* The C calling convention on FR-V uses the gr8-gr13 registers + for the first six arguments, the remainder is spilled onto the + stack. the linux kernel syscall interface does so too. - scnr: (r9) - args: (r10), (r11), (r12), (r13), (mof), (srp), - sret: (r10) - serr: (err= sret > (unsigned)-EMAXERRNO) + scnr: id(gr7) + args: a1(gr8), a2(gr9), a3(gr10), a4(gr11), a5(gr12), a6(gr13) + sret: r0(gr8) + serr: (sret >= (unsigned)-EMAXERRNO) + call: tra gr0,gr0 + clob: memory */ -#ifndef EMAXERRNO -#define EMAXERRNO 125 -#endif +#error syscall arch frv not implemented yet -#define __syscall_errcon(res) \ - ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO)) -#define __syscall_return(type, res) do { \ - __syscall_retval(res); \ - if (__syscall_errcon(res)) { \ - int __err = -(res); \ - __syscall_error(__err); \ - res = -1; \ - } \ - return (type) res; \ -} while (0) -#define __syscall_regdef(name, reg) \ - register long __sc_##name __asm__ (reg) +/* ***************************************** + H8300 H8300 H8300 H8300 * + h8/300 kernel interface */ -#define __syscall_regval(name, reg, val) \ - register long __sc_##name __asm__ (reg) = (long)(val) +#elif defined(__H8300__) -#define _syscall0(type, name) \ -type name(void) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "r9", __NR_##name); \ - __syscall_regdef(a1, "r10"); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1", "$r10$r9") \ - "break 13" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_a0) \ - : "memory", "srp", "r13", "r12", "r11" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +/* The H8/300 C calling convention passes the first three + arguments in registers. However the linux kernel calling + convention passes the first six arguments in registers + er1-er6 -#define _syscall1(type, name, type1, arg1) \ -type name(type1 arg1) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "r9", __NR_##name); \ - __syscall_regval(a1, "r10", arg1); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2", "$r10$r9$r10") \ - "break 13" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_a0), \ - "0"(__sc_a1) \ - : "memory", "srp", "r13", "r12", "r11" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} + scnr: id(er0) + args: a1(er1), a2(er2), a3(er3), a4(er4), a5(er5), a6(er6) + sret: r0(er0) + serr: (sret >= (unsigned)-EMAXERRNO) + call: trapa #0 + clob: memory +*/ -#define _syscall2(type, name, type1, arg1, type2, arg2) \ -type name(type1 arg1, type2 arg2) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "r9", __NR_##name); \ - __syscall_regval(a1, "r10", arg1); \ - __syscall_regval(a2, "r11", arg2); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2%3", "$r10$r9$r10$r11") \ - "break 13" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_a0), \ - "0"(__sc_a1), "r"(__sc_a2) \ - : "memory", "srp", "r13", "r12" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +#error syscall arch h8300 not implemented yet -#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ -type name(type1 arg1, type2 arg2, type3 arg3) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "r9", __NR_##name); \ - __syscall_regval(a1, "r10", arg1); \ - __syscall_regval(a2, "r11", arg2); \ - __syscall_regval(a3, "r12", arg3); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2%3%4", "$r10$r9$r10$r11$r12") \ - "break 13" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_a0), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3) \ - : "memory", "srp", "r13" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} -#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "r9", __NR_##name); \ - __syscall_regval(a1, "r10", arg1); \ - __syscall_regval(a2, "r11", arg2); \ - __syscall_regval(a3, "r12", arg3); \ - __syscall_regval(a4, "r13", arg4); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2%3%4%5", "$r10$r9$r10$r11$r12$r13") \ - "break 13" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_a0), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4) \ - : "memory", "srp" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} - -#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "r9", __NR_##name); \ - __syscall_regval(a1, "r10", arg1); \ - __syscall_regval(a2, "r11", arg2); \ - __syscall_regval(a3, "r12", arg3); \ - __syscall_regval(a4, "r13", arg4); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2%3%4%5", "$r10$r9$r10$r11$r12$r13") \ - "move %6,$mof\n\t" \ - "break 13" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_a0), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4), \ - "g"((long)arg5) \ - : "memory", "srp" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} -#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5, type6, arg6) \ -type name (type1 arg1, type2 arg2, type3 arg3, \ - type4 arg4, type5 arg5, type6 arg6) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "r9", __NR_##name); \ - __syscall_regval(a1, "r10", arg1); \ - __syscall_regval(a2, "r11", arg2); \ - __syscall_regval(a3, "r12", arg3); \ - __syscall_regval(a4, "r13", arg4); \ - \ - __asm__ __volatile__ ( \ - __check("%0%1%2%3%4%5", "$r10$r9$r10$r11$r12$r13") \ - "move %6,$mof\n\t" \ - "move %7,$srp\n\t" \ - "break 13" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_a0), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4), \ - "g"((long)arg5), "g"((long)arg6) \ - : "memory" \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +/* ***************************************** + HPPA HPPA HPPA HPPA * + hppa/64 kernel interface */ +#elif defined(__hppa__) -/* ***************************************** - FRV FRV FRV FRV * - frv kernel interface */ +/* The hppa calling convention uses r26-r23 for the first 4 + arguments, the rest is spilled onto the stack. However the + Linux kernel passes the first six arguments in the registers + r26-r21. -#elif defined(__frv__) + The system call number MUST ALWAYS be loaded in the delay + slot of the ble instruction, or restarting system calls + WILL NOT WORK. -#warning syscall arch frv not implemented yet + scnr: id(r20) + args: a1(r26), a2(r25), a3(r24), a4(r23), a5(r22), a6(r21) + sret: r0(r28) + serr: (sret >= (unsigned)-EMAXERRNO) + call: ble 0x100(%%sr2, %%r0) + clob: r1, r2, (r4), r20, r29, r31, memory + picr: pr(r19) do we need to save that? +*/ +#define __sysc_max_err 4095 -/* ***************************************** - H8300 H8300 H8300 H8300 * - h8/300 kernel interface */ +#define __sysc_cmd(n) \ + __pasm(n,1,1, "copy %%r19, %%r4" ,)\ + __casm(n,0,1, "ble 0x100(%%sr2,%%r0)" ,)\ + __casm(n,0,1, "ldi %1,%%r20" ,)\ + __pasm(n,1,1, "copy %%r4, %%r19" ,) -#elif defined(__h8300__) +#define __sysc_regs "r26", "r25", "r24", "r23", "r22", "r21" + +#ifndef __PIC__ +#define __sysc_clobber "r1", "r2", "r20", "r29", "r31", "memory" +#else +#define __sysc_clobber "r1", "r2", "r4", "r20", "r29", "r31", "memory" +#endif + +#warning syscall arch hppa not tested yet -#warning syscall arch h8300 not implemented yet /* ***************************************** - I386 I386 I386 I386 * + I386 I386 I386 I386 * i386 kernel interface */ #elif defined(__i386__) -/* The x86 calling convention uses stack args for all arguments, - but the Linux kernel passes the first six arguments in the +/* The x86 calling convention uses stack args for all arguments, + but the Linux kernel passes the first six arguments in the following registers: ebx, ecx, edx, esi, edi, ebp. - scnr: a0(eax) + scnr: id(eax) args: a1(ebx), a2(ecx), a3(edx), a4(esi), a5(edi), a6(ebp) - sret: a0(eax) - serr: (err= sret > (unsigned)-EMAXERRNO) + sret: r0(eax) + serr: (sret >= (unsigned)-EMAXERRNO) + call: int 0x80 + picr: pr(ebx) + clob: memory + move: movl $sR,$dR */ -#ifndef EMAXERRNO -#define EMAXERRNO 129 -#endif +#define __sysc_max_err 129 -#define __syscall_errcon(res) \ - ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO)) +#define __sc_reg1(...) __sc_cast(__arg_1(__VA_ARGS__,,,,,,)) +#define __sc_reg6(...) __sc_cast(__arg_6(__VA_ARGS__,,,,,,)) -#define __syscall_return(type, res) do { \ - __syscall_retval(res); \ - if (__syscall_errcon(res)) { \ - int __err = -(res); \ - __syscall_error(__err); \ - res = -1; \ - } \ - return (type) res; \ -} while (0) +#define __scsd struct { __sc_ldef(__a); __sc_ldef(__b); } __scs +#define __scsa(n,...) \ + __scs.__a = __sc_reg1(__VA_ARGS__); \ + __scs.__b = __sc_reg6(__VA_ARGS__); -#define __syscall_regdef(name, reg) \ - register long __sc_##name __asm__ (reg) +#define __sc_input(n,...) __casm(n,6,0, \ + __scsd; __scsa(n,__VA_ARGS__), ) -#define __syscall_regval(name, reg, val) \ - register long __sc_##name __asm__ (reg) = (long)(val) +#define __cm , +#define __sc_null(n) __arg_##n( \ + __cm,__cm,__cm,__cm,__cm,__cm) +#define __sc_rvcs(r,v) r (__sc_cast(v)) -#define _syscall0(type, name) \ -type name(void) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "eax", __NR_##name); \ - \ - __asm__ volatile ( \ - __check("%0%1", "%%eax%%eax") \ - "int $0x80" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0) \ - : "memory" \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __sc_rvrd(n,N) __arg_##n(, \ + __cm __sc_rvcs("c", N), \ + __cm __sc_rvcs("d", N), \ + __cm __sc_rvcs("S", N), \ + __cm __sc_rvcs("D", N),) -#define _syscall1(type, name, type1, arg1) \ -type name(type1 arg1) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "eax", __NR_##name); \ - __syscall_regval(a1, "ebx", arg1); \ - \ - __asm__ volatile ( \ - __check("%0%1%2", "%%eax%%eax%%ebx") \ - "int $0x80" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1) \ - : "memory" \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __sc_arg1(n,...) __Casm(n,1,6,0,, \ + __sc_rvcs(__pic("ri") __nopic("b"), \ + __sc_reg1(__VA_ARGS__)), \ + __sc_rvcs("0", &__scs)) -#define _syscall2(type, name, type1, arg1, type2, arg2) \ -type name(type1 arg1, type2 arg2) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "eax", __NR_##name); \ - __syscall_regval(a1, "ebx", arg1); \ - __syscall_regval(a2, "ecx", arg2); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3", "%%eax%%eax%%ebx%%ecx") \ - "int $0x80" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1), "r"(__sc_a2) \ - : "memory" \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __sc_syscall(n,N,...) \ + __sc_asm_vol (__sysc_cmd(n) \ + : __sc_oregs \ + : __sc_cidval(N) __sc_null(n) \ + __sc_arg1(n,__VA_ARGS__) \ + __con_##n(__sc_rvrd,__VA_ARGS__) \ + : "memory" ) -#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ -type name(type1 arg1, type2 arg2, type3 arg3) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "eax", __NR_##name); \ - __syscall_regval(a1, "ebx", arg1); \ - __syscall_regval(a2, "ecx", arg2); \ - __syscall_regval(a3, "edx", arg3); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4", "%%eax%%eax%%ebx%%ecx%%edx") \ - "int $0x80" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3) \ - : "memory" \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __sysc_cmd(n) \ + __pasm(n,1,1, "pushl %%ebx" ,)\ + __Pasm(n,1,5,1,,"movl %2, %%ebx" ,)\ + __casm(n,6,1, "pushl %%ebp" ,)\ + __casm(n,6,1, "movl 0(%2), %%ebx" ,)\ + __casm(n,6,1, "movl 4(%2), %%ebp" ,)\ + __casm(n,0,1, "movl %1, %%eax" ,)\ + __casm(n,0,1, "int $0x80" ,)\ + __casm(n,6,1, "popl %%ebp" ,)\ + __pasm(n,1,1, "popl %%ebx" ,) +#define __sysc_reg_ret "eax" +#define __sysc_con_ret "=a" -#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "eax", __NR_##name); \ - __syscall_regval(a1, "ebx", arg1); \ - __syscall_regval(a2, "ecx", arg2); \ - __syscall_regval(a3, "edx", arg3); \ - __syscall_regval(a4, "esi", arg4); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4%5", \ - "%%eax%%eax%%ebx%%ecx%%edx%%esi") \ - "int $0x80" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \ - "r" (__sc_a4) \ - : "memory" \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} - -#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "eax", __NR_##name); \ - __syscall_regval(a1, "ebx", arg1); \ - __syscall_regval(a2, "ecx", arg2); \ - __syscall_regval(a3, "edx", arg3); \ - __syscall_regval(a4, "esi", arg4); \ - __syscall_regval(a5, "edi", arg5); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4%5%6", \ - "%%eax%%eax%%ebx%%ecx%%edx%%esi%%edi") \ - "int $0x80" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \ - "r" (__sc_a4), "r"(__sc_a5) \ - : "memory" \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} - -#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5, type6, arg6) \ -type name (type1 arg1, type2 arg2, type3 arg3, \ - type4 arg4, type5 arg5, type6 arg6) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "eax", __NR_##name); \ - __syscall_regval(a1, "ebx", arg1); \ - __syscall_regval(a2, "ecx", arg2); \ - __syscall_regval(a3, "edx", arg3); \ - __syscall_regval(a4, "esi", arg4); \ - __syscall_regval(a5, "edi", arg5); \ - __syscall_regval(a6, "ebp", arg6); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4%5%6%7", \ - "%%eax%%eax%%ebx%%ecx%%edx%%esi%%edi%%ebp") \ - "int $0x80" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \ - "r" (__sc_a4), "r"(__sc_a5), "r" (__sc_a6) \ - : "memory" \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} /* ***************************************** - IA64 IA64 IA64 IA64 * + IA64 IA64 IA64 IA64 * ia64 kernel interface */ #elif defined(__ia64__) -#warning syscall arch ia64 not implemented yet +/* The ia64 calling convention uses out0-out7 to pass the first + eight arguments (mapped via register windows). + + scnr: id(r15) + args: a1(out0), a2(out1), ... a5(out4), a6(out5) + sret: r0(r8) + serr: e0(r10) + call: break 0x100000 + clob: out6/7, r2/3/9, r11-r14, r16-r31, p6-p15, f6-f15, b6/7 + move: mov %dR = %sR +*/ + +#define __sysc_errc(r,e) ((e) == -1) + +#define __sysc_cmd(n) "break.i 0x100000" + +#define __sysc_regs "out0", "out1", "out2", "out3", "out4", "out5" +#define __sysc_reg_cid "r15" +#define __sysc_reg_ret "r8" +#define __sysc_reg_err "r10" + +#define __sysc_clobber \ + "out6", "out7", "r2", "r3", "r9", "r11", "r12", "r13", \ + "r14", "r16", "r17", "r18", "r19", "r20", "r21", "r22", \ + "r23", "r24", "r25", "r26", "r27", "r28", "r29", "r30", \ + "r31", "p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", \ + "p14", "p15", "f6", "f7", "f8", "f9", "f10", "f11", "f12", \ + "f13", "f14", "f15", "f16", "b6", "b7", "cc", "memory" + +#warning syscall arch ia64 not tested yet + /* ***************************************** - M32R IM32R M32R M32R * + M32R M32R M32R M32R * m32r kernel interface */ -#elif defined(__m32r__) +#elif defined(__M32R__) + +/* The m32r calling convention uses r0-r7 to pass the first + eight arguments (mapped via register windows). + + scnr: id(r0) + args: a1(r1), a2(r2), a3(r3), a4(r4), a5(r5), a6(r6) + sret: r0(r0) + serr: (sret >= (unsigned)-EMAXERRNO) + call: trap #2 + clob: out6/7, r2/3/9, r11-r14, r16-r31, p6-p15, f6-f15, b6/7 + move: mv %dR,%sR +*/ + +#define __sysc_max_err 125 + +#define __sysc_cmd(n) "trap #2" + +#define __sysc_regs "r0", "r1", "r2", "r3", "r4", "r5" +#define __sysc_reg_cid "r7" +#define __sysc_reg_ret "r0" + +#warning syscall arch m32r not tested yet -#warning syscall arch m32r not implemented yet /* ***************************************** - M68K M68K M68K M68K * + M68K M68K M68K M68K * m68k kernel interface */ #elif defined(__m68000__) -#warning syscall arch m68k not implemented yet +#error syscall arch m68k not implemented yet + /* ***************************************** - MIPS MIPS MIPS MIPS * + MIPS MIPS MIPS MIPS * mips kernel interface */ -#elif defined(__mips__) +#elif defined(__mips__) + +/* The ABIO32 calling convention uses a0-a3 to pass the first + four arguments, the rest is passed on the userspace stack. + The 5th arg starts at 16($sp). The new mips calling abi uses + registers a0-a5, restart requires a reload of v0 (#syscall) + + ABIN32 and ABI64 pass 6 args in a0-a3, t0-t1. + + scnr: id(v0) + args: a1(a0), a2(a1), a3(a2), a4(a3), a5(t0), a6(t1) + sret: r0(v0) + serr: e0(a3) + call: syscall + clob: at, v1, t2-t7, t8-t9 + move: move %dR,%sR +*/ + +#define __sysc_cmd(n) \ + __casm(n,0,1, "ori $v0,$0,%2" ,)\ + __casm(n,0,1, "syscall" ,) + +#define __sysc_regs "a0","a1","a2","a3", "t0", "t1" +#define __sysc_reg_ret "v0" +#define __sysc_reg_err "a3" + +#define __sysc_clobber "$1", "$3", "$10", "$11", "$12", \ + "$13", "$14", "$15", "$24", "$25", "memory" + +#warning syscall arch mips not tested yet -#warning syscall arch mips not implemented yet /* ***************************************** - HPPA HPPA HPPA HPPA * - hppa kernel interface */ + PPC PPC PPC PPC * + ppc/64 kernel interface */ -#elif defined(__hppa__) +#elif defined(__powerpc__) -/* The hppa calling convention uses r26-r23 for the first 4 - arguments, the rest is spilled onto the stack. However the - Linux kernel passes the first six arguments in the registers - r26-r21. +/* The powerpc calling convention uses r3-r10 to pass the first + eight arguments, the remainder is spilled onto the stack. - The system call number MUST ALWAYS be loaded in the delay - slot of the ble instruction, or restarting system calls - WILL NOT WORK. - - scnr: r20 - args: r26, r25, r24, r23, r22, r21 - sret: r28 - serr: (err= sret > (unsigned)-EMAXERRNO) - clob: r1, r2, r4, r20, r29, r31, memory + scnr: id(r0) + args: a1(r3), a2(r4), a3(r5), a4(r6), a5(r7), a6(r8) + sret: r0(r3) + serr: (carry) + call: sc + clob: r9-r12, cr0, ctr + move: mr %dR,%sR */ -#ifndef EMAXERRNO -#define EMAXERRNO 4095 -#endif +#define __sysc_errc(r,e) ((e) & 0x10000000) -#define __syscall_errcon(res) \ - ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO)) +#define __sysc_cmd(n) \ + __casm(n,0,1, "sc" ,)\ + __casm(n,0,1, "mfcr %1" ,) -#define __syscall_return(type, res) do { \ - __syscall_retval(res); \ - if (__syscall_errcon(res)) { \ - int __err = -(res); \ - __syscall_error(__err); \ - res = -1; \ - } \ - return (type) res; \ -} while (0) +#define __sysc_regs "r3", "r4", "r5", "r6", "r7", "r8" +#define __sysc_reg_cid "r0" +#define __sysc_reg_ret "r3" -#define __syscall_clobbers \ - "%r1", "%r2", "%r4", "%r20", "%r29", "%r31", "memory" +#define __sysc_clobber "r9", "r10", "r11", "r12", "cr0", "ctr", "memory" -#define __syscall_regdef(name, reg) \ - register unsigned long __sc_##name __asm__ (reg) -#define __syscall_regval(name, reg, val) \ - register unsigned long __sc_##name __asm__ (reg) = \ - (unsigned long)(val) +/* ***************************************** + S390 S390 S390 S390 * + s390/x kernel interface */ -#define _syscall0(type, name) \ -type name(void) \ -{ \ - long __sc_res; \ - { \ - __syscall_regdef(ret, "r28"); \ - \ - __asm__ __volatile__ ( \ - __check("%0", "%%r28") \ - "ble 0x100(%%sr2, %%r0)" \ - __comment(name) "\n\t" \ - "ldi %1, %%r20" \ - : "=r"(__sc_ret) \ - : "i"(__NR_##name) \ - : "%r21", "%r22", "%r23", \ - "%r24", "%r25", "%r26", \ - __syscall_clobbers \ - ); \ - __sc_res = __sc_ret; \ - } \ - __syscall_return(type, __sc_res); \ -} +#elif defined(__s390__) -#define _syscall1(type, name, type1, arg1) \ -type name(type1 arg1) \ -{ \ - long __sc_res; \ - { \ - __syscall_regdef(ret, "r28"); \ - __syscall_regval(a1, "r26", arg1); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2", "%%r28%%r26") \ - "ble 0x100(%%sr2, %%r0)" \ - __comment(name) "\n\t" \ - "ldi %1, %%r20" \ - : "=r"(__sc_ret) \ - : "i"(__NR_##name), \ - "r"(__sc_a1) \ - : "%r21", "%r22", "%r23", "%r24", "%r25", \ - __syscall_clobbers \ - ); \ - __sc_res = __sc_ret; \ - } \ - __syscall_return(type, __sc_res); \ -} +/* The s390x calling convention passes the first five arguments + in r2-r6, the remainder is spilled onto the stack. However + the Linux kernel passes the first six arguments in r2-r7. + + scnr: imm, id(r1) + args: a1(r2), a2(r3), a3(r4), a4(r5), a5(r6), a6(r7) + sret: r0(r2) + serr: (sret >= (unsigned)-EMAXERRNO) + call: svc + clob: memory +*/ -#define _syscall2(type, name, type1, arg1, type2, arg2) \ -type name(type1 arg1, type2 arg2) \ -{ \ - long __sc_res; \ - { \ - __syscall_regdef(ret, "r28"); \ - __syscall_regval(a1, "r26", arg1); \ - __syscall_regval(a2, "r25", arg2); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2%3", "%%r28%%r26%%r25") \ - "ble 0x100(%%sr2, %%r0)" \ - __comment(name) "\n\t" \ - "ldi %1, %%r20" \ - : "=r"(__sc_ret) \ - : "i"(__NR_##name), \ - "r"(__sc_a1), "r"(__sc_a2) \ - : "%r21", "%r22", "%r23", "%r24", \ - __syscall_clobbers \ - ); \ - __sc_res = __sc_ret; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __sysc_max_err 4095 -#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ -type name(type1 arg1, type2 arg2, type3 arg3) \ -{ \ - long __sc_res; \ - { \ - __syscall_regdef(ret, "r28"); \ - __syscall_regval(a1, "r26", arg1); \ - __syscall_regval(a2, "r25", arg2); \ - __syscall_regval(a3, "r24", arg3); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2%3%4", "%%r28%%r26%%r25%%r24") \ - "ble 0x100(%%sr2, %%r0)" \ - __comment(name) "\n\t" \ - "ldi %1, %%r20" \ - : "=r"(__sc_ret) \ - : "i"(__NR_##name), \ - "r"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3) \ - : "%r21", "%r22", "%r23", \ - __syscall_clobbers \ - ); \ - __sc_res = __sc_ret; \ - } \ - __syscall_return(type, __sc_res); \ -} - -#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ - long __sc_res; \ - { \ - __syscall_regdef(ret, "r28"); \ - __syscall_regval(a1, "r26", arg1); \ - __syscall_regval(a2, "r25", arg2); \ - __syscall_regval(a3, "r24", arg3); \ - __syscall_regval(a4, "r23", arg4); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2%3%4%5", "%%r28%%r26%%r25%%r24%%r23") \ - "ble 0x100(%%sr2, %%r0)" \ - __comment(name) "\n\t" \ - "ldi %1, %%r20" \ - : "=r"(__sc_ret) \ - : "i"(__NR_##name), \ - "r"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4) \ - : "%r21", "%r22", \ - __syscall_clobbers \ - ); \ - __sc_res = __sc_ret; \ - } \ - __syscall_return(type, __sc_res); \ -} - -#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -{ \ - long __sc_res; \ - { \ - __syscall_regdef(ret, "r28"); \ - __syscall_regval(a1, "r26", arg1); \ - __syscall_regval(a2, "r25", arg2); \ - __syscall_regval(a3, "r24", arg3); \ - __syscall_regval(a4, "r23", arg4); \ - __syscall_regval(a5, "r22", arg5); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2%3%4%5%6", \ - "%%r28%%r26%%r25%%r24%%r23%%r22") \ - "ble 0x100(%%sr2, %%r0)" \ - __comment(name) "\n\t" \ - "ldi %1, %%r20" \ - : "=r"(__sc_ret) \ - : "i"(__NR_##name), \ - "r"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4), "r"(__sc_a5) \ - : "%r21", \ - __syscall_clobbers \ - ); \ - __sc_res = __sc_ret; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __sysc_cmd(n) "svc 0" -#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5, type6, arg6) \ -type name (type1 arg1, type2 arg2, type3 arg3, \ - type4 arg4, type5 arg5, type6 arg6) \ -{ \ - long __sc_res; \ - { \ - __syscall_regdef(ret, "r28"); \ - __syscall_regval(a1, "r26", arg1); \ - __syscall_regval(a2, "r25", arg2); \ - __syscall_regval(a3, "r24", arg3); \ - __syscall_regval(a4, "r23", arg4); \ - __syscall_regval(a5, "r22", arg5); \ - __syscall_regval(a6, "r21", arg6); \ - \ - __asm__ __volatile__ ( \ - __check("%0%2%3%4%5%6%7", \ - "%%r28%%r26%%r25%%r24%%r23%%r22%%r21") \ - "ble 0x100(%%sr2, %%r0)" \ - __comment(name) "\n\t" \ - "ldi %1, %%r20" \ - : "=r"(__sc_ret) \ - : "i"(__NR_##name), \ - "r"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4), "r"(__sc_a5), "r"(__sc_a6) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_ret; \ - } \ - __syscall_return(type, __sc_res); \ -} +// #define __sysc_type unsigned long +#define __sysc_regs "r2", "r3", "r4", "r5", "r6", "r7" +#define __sysc_reg_cid "r1" +#define __sysc_reg_ret "r2" + +#warning syscall arch s390 not tested yet -/* ***************************************** - PPC64 PPC64 PPC64 PPC64 * - ppc64 kernel interface */ -#elif defined(__powerpc64__) +/* ***************************************** + SH SH SH SH * + sh kernel interface */ -#warning syscall arch ppc64 not implemented yet +#elif defined(__sh__) && !defined(__SH5__) +/* The SuperH calling convention passes the first four arguments + in r4-r7, the remainder is spilled onto the stack. However + the Linux kernel passes the remainder in r0-r1. -/* ***************************************** - PPC PPC PPC PPC * - ppc kernel interface */ - -#elif defined(__powerpc__) - -/* The powerpc calling convention uses r3-r10 to pass the first - eight arguments, the remainder is spilled onto the stack. - - scnr: r0 - args: a1(r3), a2(r4), a3(r5), a4(r6), a5(r7), a6(r8) - sret: r3 - serr: (carry) - call: sc - clob: cr0, ctr + scnr: id(r3) + args: a1(r4), a2(r5), a3(r6), a4(r7), a5(r0), a6(r1) + sret: r0(r0) + serr: (sret >= (unsigned)-EMAXERRNO) + call: trapa #0x1x (x=#args) + clob: memory + move: ori %sR,0,%dR */ -#define __syscall_errcon(err) (err & 0x10000000) +#ifdef __sh2__ +#define __sysc_arch "trapa #0x2" +#else +#define __sysc_arch "trapa #0x1" +#endif -#define __syscall_return(type, ret, err) do { \ - __syscall_retval(ret); \ - if (__syscall_errcon(err)) { \ - int __err = (ret); \ - __syscall_error(__err); \ - ret = -1; \ - } \ - return (type) ret; \ -} while (0) +#define __sysc_max_err 4095 -#define __syscall_regdef(name, reg) \ - register long __sc_##name __asm__ (reg) +#define __sysc_cmd(n) __sysc_arch #n -#define __syscall_regval(name, reg, val) \ - register long __sc_##name __asm__ (reg) = (long)(val) +#define __sysc_regs "r4", "r5", "r6", "r7", "r0", "r1" +#define __sysc_reg_cid "r3" +#define __sysc_reg_ret "r0" -#define __syscall_clobbers \ - "r9", "r10", "r11", "r12", \ - "cr0", "ctr", "memory" +#warning syscall arch sh not tested yet -#define _syscall0(type, name) \ -type name(void) \ -{ \ - long __sc_ret, __sc_err; \ - { \ - __syscall_regval(r0, "r0", __NR_##name); \ - __syscall_regdef(a1, "r3"); \ - \ - __asm__ __volatile__ ( \ - "sc" __comment(name) "\n\t" \ - "mfcr %0" \ - : "=r"(__sc_r0), "=r"(__sc_a1) \ - : "0"(__sc_r0) \ - : "r4", "r5", "r6", "r7", "r8", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_a1; \ - __sc_err = __sc_r0; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} -#define _syscall1(type, name, type1, arg1) \ -type name(type1 arg1) \ -{ \ - unsigned long __sc_ret, __sc_err; \ - { \ - __syscall_regval(r0, "r0", __NR_##name); \ - __syscall_regval(a1, "r3", arg1); \ - \ - __asm__ __volatile__ ( \ - "sc" __comment(name) "\n\t" \ - "mfcr %0" \ - : "=r"(__sc_r0), "=r"(__sc_a1) \ - : "0"(__sc_r0), \ - "1"(__sc_a1) \ - : "r4", "r5", "r6", "r7", "r8", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_a1; \ - __sc_err = __sc_r0; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} +/* ***************************************** + SH64 SH64 SH64 SH64 * + sh64 kernel interface */ -#define _syscall2(type, name, type1, arg1, type2, arg2) \ -type name(type1 arg1, type2 arg2) \ -{ \ - unsigned long __sc_ret, __sc_err; \ - { \ - __syscall_regval(r0, "r0", __NR_##name); \ - __syscall_regval(a1, "r3", arg1); \ - __syscall_regval(a2, "r4", arg2); \ - \ - __asm__ __volatile__ ( \ - "sc" __comment(name) "\n\t" \ - "mfcr %0" \ - : "=r"(__sc_r0), "=r"(__sc_a1) \ - : "0"(__sc_r0), \ - "1"(__sc_a1), "r"(__sc_a2) \ - : "r5", "r6", "r7", "r8", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_a1; \ - __sc_err = __sc_r0; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} +#elif defined(__sh__) && defined(__SH5__) -#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ -type name(type1 arg1, type2 arg2, type3 arg3) \ -{ \ - unsigned long __sc_ret, __sc_err; \ - { \ - __syscall_regval(r0, "r0", __NR_##name); \ - __syscall_regval(a1, "r3", arg1); \ - __syscall_regval(a2, "r4", arg2); \ - __syscall_regval(a3, "r5", arg3); \ - \ - __asm__ __volatile__ ( \ - "sc" __comment(name) "\n\t" \ - "mfcr %0" \ - : "=r"(__sc_r0), "=r"(__sc_a1) \ - : "0"(__sc_r0), \ - "1"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3) \ - : "r6", "r7", "r8", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_a1; \ - __sc_err = __sc_r0; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} +/* The SuperH-5 calling convention passes the first eight + arguments in r2-r9. The Linux kernel uses only six of + them as arguments, and the last one for the syscall id. + scnr: id(r9) + args: a1(r2), a2(r3), a3(r4), a4(r5), a5(r6), a6(r7) + sret: r0(r9) + serr: (sret >= (unsigned)-EMAXERRNO) + call: trapa #0x1x (x=#args) + clob: memory + move: ori %sR,0,%dR +*/ -#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ - unsigned long __sc_ret, __sc_err; \ - { \ - __syscall_regval(r0, "r0", __NR_##name); \ - __syscall_regval(a1, "r3", arg1); \ - __syscall_regval(a2, "r4", arg2); \ - __syscall_regval(a3, "r5", arg3); \ - __syscall_regval(a4, "r6", arg4); \ - \ - __asm__ __volatile__ ( \ - "sc" __comment(name) "\n\t" \ - "mfcr %0" \ - : "=r"(__sc_r0), "=r"(__sc_a1) \ - : "0"(__sc_r0), \ - "1"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4) \ - : "r7", "r8", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_a1; \ - __sc_err = __sc_r0; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} +#define __sysc_max_err 4095 -#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -{ \ - unsigned long __sc_ret, __sc_err; \ - { \ - __syscall_regval(r0, "r0", __NR_##name); \ - __syscall_regval(a1, "r3", arg1); \ - __syscall_regval(a2, "r4", arg2); \ - __syscall_regval(a3, "r5", arg3); \ - __syscall_regval(a4, "r6", arg4); \ - __syscall_regval(a5, "r7", arg5); \ - \ - __asm__ __volatile__ ( \ - "sc" __comment(name) "\n\t" \ - "mfcr %0" \ - : "=r"(__sc_r0), "=r"(__sc_a1) \ - : "0"(__sc_r0), \ - "1"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4), "r"(__sc_a5) \ - : "r8", \ - __syscall_clobbers \ - ); \ - __sc_ret = __sc_a1; \ - __sc_err = __sc_r0; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} +#define __sysc_cmd(n) \ + __casm(n,0,1, "movi 0x1" #n ",r9" ,)\ + __casm(n,0,1, "shori %1,r9" ,)\ + __casm(n,0,1, "trapa r9" ,) + +#define __sysc_regs "r2", "r3", "r4", "r5", "r6", "r7" +#define __sysc_reg_ret "r9" + +#warning syscall arch sh64 not tested yet -#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5, type6, arg6) \ -type name (type1 arg1, type2 arg2, type3 arg3, \ - type4 arg4, type5 arg5, type6 arg6) \ -{ \ - unsigned long __sc_ret, __sc_err; \ - { \ - __syscall_regval(r0, "r0", __NR_##name); \ - __syscall_regval(a1, "r3", arg1); \ - __syscall_regval(a2, "r4", arg2); \ - __syscall_regval(a3, "r5", arg3); \ - __syscall_regval(a4, "r6", arg4); \ - __syscall_regval(a5, "r7", arg5); \ - __syscall_regval(a6, "r8", arg6); \ - \ - __asm__ __volatile__ ( \ - "sc" __comment(name) "\n\t" \ - "mfcr %0" \ - : "=r"(__sc_r0), "=r"(__sc_a1) \ - : "0"(__sc_r0), \ - "1"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4), "r"(__sc_a5), "r"(__sc_a6) \ - : __syscall_clobbers \ - ); \ - __sc_ret = __sc_a1; \ - __sc_err = __sc_r0; \ - } \ - __syscall_return(type, __sc_ret, __sc_err); \ -} /* ***************************************** - S390X S390X S390X S390X * - s390x kernel interface */ + SPARC64 SPARC64 SPARC64 SPARC64 * + sparc64 kernel interface */ -#elif defined(__s390x__) +#elif defined(__sparc__) -/* The s390x calling convention passes the first five arguments - in r2-r6, the remainder is spilled onto the stack. However - the Linux kernel passes the first six arguments in r2-r7. - - scnr: imm, r1 - args: a1(r2), a2(r3), a3(r4), a4(r5), a5(r6), a6(r7) - sret: r2 - serr: (err= sret > (unsigned)-EMAXERRNO) - call: svc - clob: memory +/* The sparc/64 calling convention uses o0-o5 to pass the first + six arguments (mapped via register windows). + + scnr: id(g1) + args: a1(o0), a2(o1), a3(o2), a4(o3), a5(o4), a6(o5) + sret: r0(o0) + serr: (carry) + call: ta 0x6d, t 0x10 + clob: g1-g6, g7?, o7?, f0-f31, cc + move: mov %sR,%dR */ -#ifndef EMAXERRNO -#define EMAXERRNO 4095 +#ifdef __arch64__ +#define __sysc_arch "ta 0x6d" +#else +#define __sysc_arch "ta 0x10" #endif -#define __syscall_errcon(res) \ - ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO)) +#define __sysc_cmd(n) \ + __casm(n,0,1, __sysc_arch ,)\ + __casm(n,0,1, "addx %%g0,%%g0,%1" ,) -#define __syscall_return(type, res) do { \ - __syscall_retval(res); \ - if (__syscall_errcon(res)) { \ - int __err = -(res); \ - __syscall_error(__err); \ - res = -1; \ - } \ - return (type) res; \ -} while (0) +#define __sysc_regs "o0", "o1", "o2", "o3", "o4", "o5" +#define __sysc_reg_cid "g1" +#define __sysc_reg_ret "o0" -#define __syscall_regdef(name, reg) \ - register unsigned long __sc_##name __asm__ (reg) +#define __sysc_clobber "g2", "g3", "g4", "g5", "g6", \ + "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", \ + "f9", "f10", "f11", "f12", "f13", "f14", "f15", "f16", \ + "f17", "f18", "f19", "f20", "f21", "f22", "f23", "f24", \ + "f25", "f26", "f27", "f28", "f29", "f30", "f31", "f32", \ + "f34", "f36", "f38", "f40", "f42", "f44", "f46", "f48", \ + "f50", "f52", "f54", "f56", "f58", "f60", "f62", \ + "cc", "memory" -#define __syscall_regval(name, reg, val) \ - register unsigned long __sc_##name __asm__ (reg) = \ - (unsigned long)(val) -#define __syscall_clobbers "memory" +/* ***************************************** + V850 V850 V850 V850 * + v850 kernel interface */ -#define _syscall0(type, name) \ -type name(void) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(nr, "r1", __NR_##name); \ - __syscall_regdef(a1, "r2"); \ - \ - __asm__ volatile ( \ - __check("%0%1", "%%r2%%r1") \ - "svc 0" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_nr) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +#elif defined(__v850__) -#define _syscall1(type, name, type1, arg1) \ -type name(type1 arg1) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(nr, "r1", __NR_##name); \ - __syscall_regval(a1, "r2", arg1); \ - \ - __asm__ volatile ( \ - __check("%0%1%2", "%%r2%%r1%%r2") \ - "svc 0" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_nr), \ - "0"(__sc_a1) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +/* The V850 calling convention passes the first four arguments + in registers r6-r9, the rest is spilled onto the stack. + but the Linux kernel interface uses r6-r9 and r13/14. -#define _syscall2(type, name, type1, arg1, type2, arg2) \ -type name(type1 arg1, type2 arg2) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(nr, "r1", __NR_##name); \ - __syscall_regval(a1, "r2", arg1); \ - __syscall_regval(a2, "r3", arg2); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3", "%%r2%%r1%%r2%%r3") \ - "svc 0" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_nr), \ - "0"(__sc_a1), "r"(__sc_a2) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} + scnr: id(r12) + args: a1(r6), a2(r7), a3(r8), a4(r9), a5(r13), a6(r14) + sret: r0(r10) + serr: (sret >= (unsigned)-EMAXERRNO) + call: trap 0, trap 1 + clob: r1, r5, r11, r15-r19 +*/ -#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ -type name(type1 arg1, type2 arg2, type3 arg3) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(nr, "r1", __NR_##name); \ - __syscall_regval(a1, "r2", arg1); \ - __syscall_regval(a2, "r3", arg2); \ - __syscall_regval(a3, "r4", arg3); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4", "%%r2%%r1%%r2%%r3%%r4") \ - "svc 0" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_nr), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __sysc_max_err 515 -#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(nr, "r1", __NR_##name); \ - __syscall_regval(a1, "r2", arg1); \ - __syscall_regval(a2, "r3", arg2); \ - __syscall_regval(a3, "r4", arg3); \ - __syscall_regval(a4, "r5", arg4); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4%5", "%%r2%%r1%%r2%%r3%%r4%%r5") \ - "svc 0" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_nr), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __sysc_cmd(n) \ + __casm(n,4,0, "trap 1" ,"trap 0" ) -#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(nr, "r1", __NR_##name); \ - __syscall_regval(a1, "r2", arg1); \ - __syscall_regval(a2, "r3", arg2); \ - __syscall_regval(a3, "r4", arg3); \ - __syscall_regval(a4, "r5", arg4); \ - __syscall_regval(a5, "r6", arg5); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4%5%6", \ - "%%r2%%r1%%r2%%r3%%r4%%r5%%r6") \ - "svc 0" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_nr), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4), "r"(__sc_a5) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __sysc_regs "r6", "r7", "r8", "r9", "r13", "r14" +#define __sysc_reg_cid "r12" +#define __sysc_reg_ret "r10" -#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5, type6, arg6) \ -type name (type1 arg1, type2 arg2, type3 arg3, \ - type4 arg4, type5 arg5, type6 arg6) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(nr, "r1", __NR_##name); \ - __syscall_regval(a1, "r2", arg1); \ - __syscall_regval(a2, "r3", arg2); \ - __syscall_regval(a3, "r4", arg3); \ - __syscall_regval(a4, "r5", arg4); \ - __syscall_regval(a5, "r6", arg5); \ - __syscall_regval(a6, "r7", arg6); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4%5%6%7", \ - "%%r2%%r1%%r2%%r3%%r4%%r5%%r6%%r7") \ - "svc 0" __comment(name) \ - : "=r"(__sc_a1) \ - : "r"(__sc_nr), \ - "0"(__sc_a1), "r"(__sc_a2), "r"(__sc_a3), \ - "r"(__sc_a4), "r"(__sc_a5), "r"(__sc_a6) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a1; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __sysc_clobber "r1", "r5", "r11", \ + "r15", "r16", "r17", "r18", "r19", "memory" + +#warning syscall arch v850 not tested yet /* ***************************************** - S390 S390 S390 S390 * - s390 kernel interface */ + X86_64 X86_64 X86_64 X86_64 * + x86_64 kernel interface */ -#elif defined(__s390__) +#elif defined(__x86_64__) -#warning syscall arch s390 not implemented yet +/* The x86_64 calling convention uses rdi, rsi, rdx, rcx, r8, r9 + but the Linux kernel interface uses rdi, rsi, rdx, r10, r8, r9. + + scnr: id(rax) + args: a1(rdi), a2(rsi), a3(rdx), a4(r10), a5(r8), a6(r9) + sret: r0(rax) + serr: (err= sret > (unsigned)-EMAXERRNO) + call: syscall + clob: rcx, r11 +*/ +#define __sysc_max_err 4095 -/* ***************************************** - SH SH SH SH * - sh kernel interface */ +#define __sysc_cmd(n) "syscall" -#elif defined(__sh__) && !defined(__SH5__) +#define __sysc_regs "rdi", "rsi", "rdx", "r10", "r8", "r9" +#define __sysc_reg_cid "rax" +#define __sysc_reg_ret "rax" +#define __sysc_con_ret "=a" -#warning syscall arch sh not implemented yet +#define __sysc_clobber "cc", "r11", "rcx", "memory" +#else +#error unknown kernel arch +#endif -/* ***************************************** - SH64 SH64 SH64 SH64 * - sh64 kernel interface */ + + /* implementation defaults */ -#elif defined(__sh__) && defined(__SH5__) -#warning syscall arch sh64 not implemented yet +#ifndef __sysc_clobber +#define __sysc_clobber "memory" +#endif -/* ***************************************** - SPARC64 SPARC64 SPARC64 SPARC64 * - sparc64 kernel interface */ +#ifndef __sysc_acon +#define __sysc_acon(n) "r" +#endif -#elif defined(__sparc__) && defined(__arch64__) +#ifndef __sysc_con_ret +#define __sysc_con_ret "=r" +#endif -/* The sparc64 calling convention uses o0-o5 to pass the first six - arguments (mapped via register windows). - - scnr: g1 - args: o0, o1, o2, o3, o4, o5 - sret: o0 - serr: (carry) - call: t 0x10 - clob: g1-g6, g7?, o7?, f0-f31, cc -*/ +#ifndef __sysc_con_err +#define __sysc_con_err "=r" +#endif -#ifndef EMAXERRNO -#define EMAXERRNO 515 +#ifndef __sysc_con_cid +#ifdef __sysc_reg_cid +#define __sysc_con_cid "r" +#else +#define __sysc_con_cid "i" +#endif #endif -#define __syscall_errcon(res) \ - ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO)) - -#define __syscall_return(type, res) do { \ - __syscall_retval(res); \ - if (__syscall_errcon(res)) { \ - int __err = -(res); \ - __syscall_error(__err); \ - res = -1; \ - } \ - return (type) res; \ -} while (0) - -#define __syscall_clobbers \ - "g2", "g3", "g4", "g5", "g6", \ - "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", \ - "f9", "f10", "f11", "f12", "f13", "f14", "f15", "f16", \ - "f17", "f18", "f19", "f20", "f21", "f22", "f23", "f24", \ - "f25", "f26", "f27", "f28", "f29", "f30", "f31", "f32", \ - "f34", "f36", "f38", "f40", "f42", "f44", "f46", "f48", \ - "f50", "f52", "f54", "f56", "f58", "f60", "f62", \ - "cc", "memory" +#ifndef __sysc_type +#define __sysc_type long +#endif -#define __syscall_regdef(name, reg) \ - register long __sc_##name __asm__ (reg) +#ifdef __sysc_regs +#define __sysc_rega(n,...) __arg_##n(__VA_ARGS__) +#ifndef __sysc_reg +#define __sysc_reg(n) __sysc_rega(n,__sysc_regs) +#endif +#endif -#define __syscall_regval(name, reg, val) \ - register long __sc_##name __asm__ (reg) = (long)(val) -#define _syscall0(type, name) \ -type name(void) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regdef(o0, "o0"); \ - \ - __asm__ volatile ( \ - "ta 0x6d" __comment(name) "\n\t" \ - "bcs,a,pt %%xcc,1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} -#define _syscall1(type, name, type1, arg1) \ -type name(type1 arg1) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - \ - __asm__ volatile ( \ - "ta 0x6d" __comment(name) "\n\t" \ - "bcs,a,pt %%xcc,1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} + /* argument list */ + +#define __lst_6(x,a1,a2,a3,a4,a5,a6) __lst_5(x,a1,a2,a3,a4,a5),x(6,a6) +#define __lst_5(x,a1,a2,a3,a4,a5) __lst_4(x,a1,a2,a3,a4),x(5,a5) +#define __lst_4(x,a1,a2,a3,a4) __lst_3(x,a1,a2,a3),x(4,a4) +#define __lst_3(x,a1,a2,a3) __lst_2(x,a1,a2),x(3,a3) +#define __lst_2(x,a1,a2) __lst_1(x,a1),x(2,a2) +#define __lst_1(x,a1) __lst_0(x,*),x(1,a1) +#define __lst_0(x,a0) + + /* argument concatenation */ + +#define __con_6(x,a1,a2,a3,a4,a5,a6) __con_5(x,a1,a2,a3,a4,a5)x(6,a6) +#define __con_5(x,a1,a2,a3,a4,a5) __con_4(x,a1,a2,a3,a4)x(5,a5) +#define __con_4(x,a1,a2,a3,a4) __con_3(x,a1,a2,a3)x(4,a4) +#define __con_3(x,a1,a2,a3) __con_2(x,a1,a2)x(3,a3) +#define __con_2(x,a1,a2) __con_1(x,a1)x(2,a2) +#define __con_1(x,a1) __con_0(x,*)x(1,a1) +#define __con_0(x,a0) + + /* argument selection */ + +#define __arg_0(...) +#define __arg_1(a1,...) a1 +#define __arg_2(a1,a2,...) a2 +#define __arg_3(a1,a2,a3,...) a3 +#define __arg_4(a1,a2,a3,a4,...) a4 +#define __arg_5(a1,a2,a3,a4,a5,...) a5 +#define __arg_6(a1,a2,a3,a4,a5,a6,...) a6 + + /* list remainder */ + +#define __rem_0(a1,a2,a3,a4,a5,a6) ,a1,a2,a3,a4,a5,a6 +#define __rem_1(a1,a2,a3,a4,a5,a6) ,a2,a3,a4,a5,a6 +#define __rem_2(a1,a2,a3,a4,a5,a6) ,a3,a4,a5,a6 +#define __rem_3(a1,a2,a3,a4,a5,a6) ,a4,a5,a6 +#define __rem_4(a1,a2,a3,a4,a5,a6) ,a5,a6 +#define __rem_5(a1,a2,a3,a4,a5,a6) ,a6 +#define __rem_6(...) + + + /* conditional asm */ + +#define __casm_use(q,r,v) v __casm_use_##q##r(__casm_nl("")) + +#define __casm_use_10(v) +#define __casm_use_11(v) v +#define __casm_use_12(v) +#define __casm_use_13(v) v + +#define __casm_use_20(v) +#define __casm_use_21(v) +#define __casm_use_22(v) v +#define __casm_use_23(v) v + + +#define __casm_00(v,w,r) __casm_use(1,r,v) +#define __casm_01(v,w,r) __casm_use(2,r,w) +#define __casm_02(v,w,r) __casm_use(2,r,w) +#define __casm_03(v,w,r) __casm_use(2,r,w) +#define __casm_04(v,w,r) __casm_use(2,r,w) +#define __casm_05(v,w,r) __casm_use(2,r,w) +#define __casm_06(v,w,r) __casm_use(2,r,w) + +#define __casm_10(v,w,r) __casm_use(1,r,v) +#define __casm_11(v,w,r) __casm_use(1,r,v) +#define __casm_12(v,w,r) __casm_use(2,r,w) +#define __casm_13(v,w,r) __casm_use(2,r,w) +#define __casm_14(v,w,r) __casm_use(2,r,w) +#define __casm_15(v,w,r) __casm_use(2,r,w) +#define __casm_16(v,w,r) __casm_use(2,r,w) + +#define __casm_20(v,w,r) __casm_use(1,r,v) +#define __casm_21(v,w,r) __casm_use(1,r,v) +#define __casm_22(v,w,r) __casm_use(1,r,v) +#define __casm_23(v,w,r) __casm_use(2,r,w) +#define __casm_24(v,w,r) __casm_use(2,r,w) +#define __casm_25(v,w,r) __casm_use(2,r,w) +#define __casm_26(v,w,r) __casm_use(2,r,w) + +#define __casm_30(v,w,r) __casm_use(1,r,v) +#define __casm_31(v,w,r) __casm_use(1,r,v) +#define __casm_32(v,w,r) __casm_use(1,r,v) +#define __casm_33(v,w,r) __casm_use(1,r,v) +#define __casm_34(v,w,r) __casm_use(2,r,w) +#define __casm_35(v,w,r) __casm_use(2,r,w) +#define __casm_36(v,w,r) __casm_use(2,r,w) + +#define __casm_40(v,w,r) __casm_use(1,r,v) +#define __casm_41(v,w,r) __casm_use(1,r,v) +#define __casm_42(v,w,r) __casm_use(1,r,v) +#define __casm_43(v,w,r) __casm_use(1,r,v) +#define __casm_44(v,w,r) __casm_use(1,r,v) +#define __casm_45(v,w,r) __casm_use(2,r,w) +#define __casm_46(v,w,r) __casm_use(2,r,w) + +#define __casm_50(v,w,r) __casm_use(1,r,v) +#define __casm_51(v,w,r) __casm_use(1,r,v) +#define __casm_52(v,w,r) __casm_use(1,r,v) +#define __casm_53(v,w,r) __casm_use(1,r,v) +#define __casm_54(v,w,r) __casm_use(1,r,v) +#define __casm_55(v,w,r) __casm_use(1,r,v) +#define __casm_56(v,w,r) __casm_use(2,r,w) + +#define __casm_60(v,w,r) __casm_use(1,r,v) +#define __casm_61(v,w,r) __casm_use(1,r,v) +#define __casm_62(v,w,r) __casm_use(1,r,v) +#define __casm_63(v,w,r) __casm_use(1,r,v) +#define __casm_64(v,w,r) __casm_use(1,r,v) +#define __casm_65(v,w,r) __casm_use(1,r,v) +#define __casm_66(v,w,r) __casm_use(1,r,v) + + + /* special PIC handling */ + +#ifdef __PIC__ +#define __pic(v) v +#define __nopic(v) +#else +#define __pic(v) +#define __nopic(v) v +#endif -#define _syscall2(type, name, type1, arg1, type2, arg2) \ -type name(type1 arg1, type2 arg2) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - __syscall_regval(o1, "o1", arg2); \ - \ - __asm__ volatile ( \ - "ta 0x6d" __comment(name) "\n\t" \ - "bcs,a,pt %%xcc,1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0), "r"(__sc_o1) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __casm_nl(v) v "\n\t" -#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ -type name(type1 arg1, type2 arg2, type3 arg3) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - __syscall_regval(o1, "o1", arg2); \ - __syscall_regval(o2, "o2", arg3); \ - \ - __asm__ volatile ( \ - "ta 0x6d" __comment(name) "\n\t" \ - "bcs,a,pt %%xcc,1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __casm(n,a,r,v,w) __casm_##n##a(v,w,r) +#define __Casm(n,a,b,r,u,v,w) __casm_##n##b(w,__casm_##n##a(v,u,r),r) -#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - __syscall_regval(o1, "o1", arg2); \ - __syscall_regval(o2, "o2", arg3); \ - __syscall_regval(o3, "o3", arg4); \ - \ - __asm__ volatile ( \ - "ta 0x6d" __comment(name) "\n\t" \ - "bcs,a,pt %%xcc,1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \ - "r"(__sc_o3) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __pasm(n,a,r,v,w) __pic(__casm(n,a,r,v,w)) +#define __Pasm(n,a,b,r,u,v,w) __pic(__Casm(n,a,b,r,u,v,w)) -#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - __syscall_regval(o1, "o1", arg2); \ - __syscall_regval(o2, "o2", arg3); \ - __syscall_regval(o3, "o3", arg4); \ - __syscall_regval(o4, "o4", arg5); \ - \ - __asm__ volatile ( \ - "ta 0x6d" __comment(name) "\n\t" \ - "bcs,a,pt %%xcc,1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \ - "r"(__sc_o3), "r"(__sc_o4) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __nasm(n,a,r,v,w) __nopic(__casm(n,a,r,v,w)) +#define __Nasm(n,a,b,r,u,v,w) __nopic(__Casm(n,a,b,r,u,v,w)) -#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5, type6, arg6) \ -type name (type1 arg1, type2 arg2, type3 arg3, \ - type4 arg4, type5 arg5, type6 arg6) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - __syscall_regval(o1, "o1", arg2); \ - __syscall_regval(o2, "o2", arg3); \ - __syscall_regval(o3, "o3", arg4); \ - __syscall_regval(o4, "o4", arg5); \ - __syscall_regval(o5, "o5", arg6); \ - \ - __asm__ volatile ( \ - "ta 0x6d" __comment(name) "\n\t" \ - "bcs,a,pt %%xcc,1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \ - "r"(__sc_o3), "r"(__sc_o4), "r"(__sc_o5) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define __sc_cast(v) (__sysc_type)(v) +#define __sc_ldef(N) __sysc_type N +#define __sc_rdef(N,R) register __sc_ldef(N) __sc_asm (R) -/* ***************************************** - SPARC SPARC SPARC SPARC * - sparc kernel interface */ - -#elif defined(__sparc__) - -/* The sparc calling convention uses o0-o5 to pass the first six - arguments (mapped via register windows). - - scnr: g1 - args: o0, o1, o2, o3, o4, o5 - sret: o0 - serr: (carry) - call: t 0x10 - clob: g1-g6, g7?, o7?, f0-f31, cc -*/ +#define __sc_scid(N,v) __sc_ldef(N) = __sc_cast(v) +#define __sc_areg(N,R,v) __sc_rdef(N,R) = __sc_cast(v) + +#define __sc_rval(n,v) "r"(__sc_a##n) +#define __sc_ival(n,v) __sysc_acon(n)(__sc_cast(v)) +#define __sc_idef(n,v) __sc_areg(__sc_a##n, __sysc_reg(n), v); -#ifndef EMAXERRNO -#define EMAXERRNO 515 +#ifdef __sysc_clbrs +#define __sc_cregs(n,...) __rem_##n(__VA_ARGS__) +#else +#define __sc_cregs(n,...) #endif -#define __syscall_errcon(res) \ - ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO)) - -#define __syscall_return(type, res) do { \ - __syscall_retval(res); \ - if (__syscall_errcon(res)) { \ - int __err = -(res); \ - __syscall_error(__err); \ - res = -1; \ - } \ - return (type) res; \ -} while (0) - -#define __syscall_clobbers \ - "g2", "g3", "g4", "g5", "g6", \ - "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", \ - "f9", "f10", "f11", "f12", "f13", "f14", "f15", "f16", \ - "f17", "f18", "f19", "f20", "f21", "f22", "f23", "f24", \ - "f25", "f26", "f27", "f28", "f29", "f30", "f31", \ - "cc", "memory" - -#define __syscall_regdef(name, reg) \ - register long __sc_##name __asm__ (reg) - -#define __syscall_regval(name, reg, val) \ - register long __sc_##name __asm__ (reg) = (long)(val) - -#define _syscall0(type, name) \ -type name(void) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regdef(o0, "o0"); \ - \ - __asm__ volatile ( \ - "t 0x10" __comment(name) "\n\t" \ - "bcs,a 1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#ifdef __sysc_regs +#define __sc_input(n,...) __con_##n(__sc_idef,__VA_ARGS__) +#define __sc_ivals(n,...) __lst_##n(__sc_rval,__VA_ARGS__) +#else +#define __sc_ivals(n,...) __lst_##n(__sc_ival,__VA_ARGS__) +#endif -#define _syscall1(type, name, type1, arg1) \ -type name(type1 arg1) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - \ - __asm__ volatile ( \ - "t 0x10" __comment(name) "\n\t" \ - "bcs,a 1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#ifdef __sysc_reg_cid +#define __sc_cidvar(N) __sc_areg(__sc_id, \ + __sysc_reg_cid, __sysc_cid(N)) +#define __sc_cidval(N) __sysc_con_cid (__sc_id) +#endif -#define _syscall2(type, name, type1, arg1, type2, arg2) \ -type name(type1 arg1, type2 arg2) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - __syscall_regval(o1, "o1", arg2); \ - \ - __asm__ volatile ( \ - "t 0x10" __comment(name) "\n\t" \ - "bcs,a 1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0), "r"(__sc_o1) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#ifndef __sc_input +#define __sc_input(n,...) +#endif -#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ -type name(type1 arg1, type2 arg2, type3 arg3) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - __syscall_regval(o1, "o1", arg2); \ - __syscall_regval(o2, "o2", arg3); \ - \ - __asm__ volatile ( \ - "t 0x10" __comment(name) "\n\t" \ - "bcs,a 1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#ifndef __sc_cidval +#define __sc_cidval(N) __sysc_con_cid (__sysc_cid(N)) +#endif -#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - __syscall_regval(o1, "o1", arg2); \ - __syscall_regval(o2, "o2", arg3); \ - __syscall_regval(o3, "o3", arg4); \ - \ - __asm__ volatile ( \ - "t 0x10" __comment(name) "\n\t" \ - "bcs,a 1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \ - "r"(__sc_o3) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#ifndef __sc_cidvar +#define __sc_cidvar(N) +#endif -#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - __syscall_regval(o1, "o1", arg2); \ - __syscall_regval(o2, "o2", arg3); \ - __syscall_regval(o3, "o3", arg4); \ - __syscall_regval(o4, "o4", arg5); \ - \ - __asm__ volatile ( \ - "t 0x10" __comment(name) "\n\t" \ - "bcs,a 1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \ - "r"(__sc_o3), "r"(__sc_o4) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} -#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5, type6, arg6) \ -type name (type1 arg1, type2 arg2, type3 arg3, \ - type4 arg4, type5 arg5, type6 arg6) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(g1, "g1", __NR_##name); \ - __syscall_regval(o0, "o0", arg1); \ - __syscall_regval(o1, "o1", arg2); \ - __syscall_regval(o2, "o2", arg3); \ - __syscall_regval(o3, "o3", arg4); \ - __syscall_regval(o4, "o4", arg5); \ - __syscall_regval(o5, "o5", arg6); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4%5", "$o0$g1$o0$o1$o2$o3$o4$o5$o6") \ - "t 0x10" __comment(name) "\n\t" \ - "bcs,a 1f\n\t" \ - "sub %%g0,%%o0,%%o0\n" \ - "1:" \ - : "=r"(__sc_o0) \ - : "r"(__sc_g1), \ - "0"(__sc_o0), "r"(__sc_o1), "r"(__sc_o2), \ - "r"(__sc_o3), "r"(__sc_o4), "r"(__sc_o5) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_o0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#ifdef __sysc_reg_ret +#define __sc_ret __ret +#define __sc_def_ret __sc_ldef(ret); __sc_rdef(__sc_ret,__sysc_reg_ret) +#else +#define __sc_ret ret +#define __sc_def_ret __sc_ldef(__sc_ret) +#endif +#ifdef __sysc_reg_err +#define __sc_err __err +#define __sc_def_err __sc_ldef(err); __sc_rdef(__sc_err,__sysc_reg_err) +#else +#define __sc_err err +#define __sc_def_err __sc_ldef(__sc_err) +#endif -/* ***************************************** - V850 V850 V850 V850 * - v850 kernel interface */ -#elif defined(__v850__) +#ifndef __sysc_max_err +#define __sc_complex +#endif -#warning syscall arch v850 not implemented yet +#ifdef __sc_complex /* complex result */ +#ifndef __sc_results +#define __sc_results __sc_def_ret; __sc_def_err +#endif -/* ***************************************** - X86_64 X86_64 X86_64 X86_64 * - x86_64 kernel interface */ +#ifndef __sysc_errc +#define __sysc_errc(ret, err) (err) +#endif + +#ifndef __sysc_retv +#define __sysc_retv(type, ret, err) \ + if (__sysc_errc(ret, err)) { \ + __sysc_seterr(ret); \ + ret = -1; \ + } \ + return (type)(ret) +#endif -#elif defined(__x86_64__) +#define __sc_oregs __sysc_con_ret (__sc_ret), \ + __sysc_con_err (__sc_err) +#ifndef __sc_return +#define __sc_return(t) ret = __sc_ret; err = __sc_err; \ + __sysc_retv(t, ret, err) +#endif +#else /* simple result */ -/* The x86_64 calling convention uses rdi, rsi, rdx, rcx, r8, r9 - but the Linux kernel interface uses rdi, rsi, rdx, r10, r8, r9. - - scnr: a0(rax) - args: a1(rdi), a2(rsi), a3(rdx), a4(r10), a5(r8), a6(r9) - sret: a0(rax) - serr: (err= sret > (unsigned)-EMAXERRNO) - call: syscall - clob: rcx, r11 -*/ +#ifndef __sc_results +#define __sc_results __sc_def_ret +#endif -#ifndef EMAXERRNO -#define EMAXERRNO 4095 +#ifndef __sysc_errc +#define __sysc_errc(ret) \ + ((unsigned __sysc_type)(ret) >= \ + (unsigned __sysc_type)(-(__sysc_max_err))) #endif -#define __syscall_errcon(res) \ - ((unsigned long)(res) >= (unsigned long)(-EMAXERRNO)) +#ifndef __sysc_retv +#define __sysc_retv(type, ret) \ + if (__sysc_errc(ret)) { \ + __sysc_seterr(-ret); \ + ret = -1; \ + } \ + return (type)(ret) +#endif -#define __syscall_return(type, res) do { \ - __syscall_retval(res); \ - if (__syscall_errcon(res)) { \ - int __err = -(res); \ - __syscall_error(__err); \ - res = -1; \ - } \ - return (type) res; \ -} while (0) +#define __sc_oregs __sysc_con_ret (__sc_ret) +#ifndef __sc_return +#define __sc_return(t) ret = __sc_ret; __sysc_retv(t, ret) +#endif +#endif /* simple/complex */ -#define __syscall_clobbers \ - "cc", "r11", "rcx", "memory" -#define __syscall_regdef(name, reg) \ - register long __sc_##name __asm__ (reg) -#define __syscall_regval(name, reg, val) \ - register long __sc_##name __asm__ (reg) = (long)(val) + /* the inline syscall */ +#define __sc_asm __asm__ +#define __sc_asm_vol __asm__ __volatile__ -#define _syscall0(type, name) \ -type name(void) \ +#ifndef __sc_syscall +#define __sc_syscall(n,N,...) \ + __sc_asm_vol (__sysc_cmd(n) \ + : __sc_oregs \ + : __sc_cidval(N) __sc_ivals(n,__VA_ARGS__) \ + : __sysc_clobber __sc_cregs(n,__sysc_clbrs)) +#endif + +#ifndef __sc_body +#define __sc_body(n, type, name, ...) \ { \ - long __sc_res; \ - { \ - __syscall_regval(a0, "rax", __NR_##name); \ - \ - __asm__ volatile ( \ - __check("%0%1", "%%rax%%rax") \ - "syscall" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ + __sc_results;__sc_cidvar(name); \ + __sc_input(n,__VA_ARGS__) \ + __sc_syscall(n,name,__VA_ARGS__); \ + __sc_return(type); \ } +#endif -#define _syscall1(type, name, type1, arg1) \ +#define _syscall0(type, name) \ +type name(void) \ +__sc_body(0, type, name, *) + +#define _syscall1(type, name, type1, arg1) \ type name(type1 arg1) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "rax", __NR_##name); \ - __syscall_regval(a1, "rdi", arg1); \ - \ - __asm__ volatile ( \ - __check("%0%1%2", "%%rax%%rax%%rdi") \ - "syscall" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} +__sc_body(1, type, name, arg1) -#define _syscall2(type, name, type1, arg1, type2, arg2) \ +#define _syscall2(type, name, type1, arg1, type2, arg2) \ type name(type1 arg1, type2 arg2) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "rax", __NR_##name); \ - __syscall_regval(a1, "rdi", arg1); \ - __syscall_regval(a2, "rsi", arg2); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3", "%%rax%%rax%%rdi%%rsi") \ - "syscall" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1), "r"(__sc_a2) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} +__sc_body(2, type, name, arg1, arg2) -#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ +#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ type name(type1 arg1, type2 arg2, type3 arg3) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "rax", __NR_##name); \ - __syscall_regval(a1, "rdi", arg1); \ - __syscall_regval(a2, "rsi", arg2); \ - __syscall_regval(a3, "rdx", arg3); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4", "%%rax%%rax%%rdi%%rsi%%rdx") \ - "syscall" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} +__sc_body(3, type, name, arg1, arg2, arg3) +#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ + type4, arg4) \ +type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ +__sc_body(4, type, name, arg1, arg2, arg3, arg4) -#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "rax", __NR_##name); \ - __syscall_regval(a1, "rdi", arg1); \ - __syscall_regval(a2, "rsi", arg2); \ - __syscall_regval(a3, "rdx", arg3); \ - __syscall_regval(a4, "r10", arg4); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4%5", \ - "%%rax%%rax%%rdi%%rsi%%rdx%%r10") \ - "syscall" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \ - "r" (__sc_a4) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} - -#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5) \ -type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "rax", __NR_##name); \ - __syscall_regval(a1, "rdi", arg1); \ - __syscall_regval(a2, "rsi", arg2); \ - __syscall_regval(a3, "rdx", arg3); \ - __syscall_regval(a4, "r10", arg4); \ - __syscall_regval(a5, "r8", arg5); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4%5%6", \ - "%%rax%%rax%%rdi%%rsi%%rdx%%r10%%r8") \ - "syscall" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \ - "r" (__sc_a4), "r"(__sc_a5) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} +#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ + type4, arg4, type5, arg5) \ +type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ +__sc_body(5, type, name, arg1, arg2, arg3, arg4, arg5) -#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ +#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ type4, arg4, type5, arg5, type6, arg6) \ -type name (type1 arg1, type2 arg2, type3 arg3, \ - type4 arg4, type5 arg5, type6 arg6) \ -{ \ - long __sc_res; \ - { \ - __syscall_regval(a0, "rax", __NR_##name); \ - __syscall_regval(a1, "rdi", arg1); \ - __syscall_regval(a2, "rsi", arg2); \ - __syscall_regval(a3, "rdx", arg3); \ - __syscall_regval(a4, "r10", arg4); \ - __syscall_regval(a5, "r8", arg5); \ - __syscall_regval(a6, "r9", arg6); \ - \ - __asm__ volatile ( \ - __check("%0%1%2%3%4%5%6%7", \ - "%%rax%%rax%%rdi%%rsi%%rdx%%r10%%r8%%r9") \ - "syscall" __comment(name) \ - : "=a"(__sc_a0) \ - : "0"(__sc_a0), \ - "r" (__sc_a1), "r"(__sc_a2), "r" (__sc_a3), \ - "r" (__sc_a4), "r"(__sc_a5), "r" (__sc_a6) \ - : __syscall_clobbers \ - ); \ - __sc_res = __sc_a0; \ - } \ - __syscall_return(type, __sc_res); \ -} +type name(type1 arg1, type2 arg2, type3 arg3, \ + type4 arg4, type5 arg5, type6 arg6) \ +__sc_body(6, type, name, arg1, arg2, arg3, arg4, arg5, arg6) -#endif +#endif /* __SYSCALL_NEW_H */ diff --git a/lib/syscall-compat.hc b/lib/syscall-compat.hc index 1590057..5f69384 100644 --- a/lib/syscall-compat.hc +++ b/lib/syscall-compat.hc @@ -1,4 +1,4 @@ -// $Id: syscall-compat.hc,v 1.11 2004/04/14 23:21:23 ensc Exp $ --*- c++ -*-- +// $Id: syscall-compat.hc 1450 2004-04-14 23:21:23Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/syscall-fallback.h b/lib/syscall-fallback.h new file mode 100644 index 0000000..c4e01af --- /dev/null +++ b/lib/syscall-fallback.h @@ -0,0 +1,65 @@ +// $Id: syscall-fallback.h 2231 2005-12-31 10:48:24Z ensc $ --*- c -*-- + +// Copyright (C) 2005 Enrico Scholz +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifndef H_ENSC_UTIL_VSERVER_LIB_SYSCALL_FALLBACK_H +#define H_ENSC_UTIL_VSERVER_LIB_SYSCALL_FALLBACK_H + + +#if defined(__alpha__) +#define __NR_vserver 428 +#elif defined(__arm__) +#define __NR_vserver 313 +#elif defined(__cris__) +#define __NR_vserver 273 +#elif defined(__frv__) +#define __NR_vserver 273 +#elif defined(__h8300__) +#define __NR_vserver 273 +#elif defined(__i386__) +#define __NR_vserver 273 +#elif defined(__ia64__) +#define __NR_vserver 1269 +#elif defined(__m32r__) +#define __NR_vserver 273 +#elif defined(__mc68000__) +#define __NR_vserver 278 +#elif defined(__mips__) && (_MIPS_SIM == _MIPS_SIM_ABI32) +#define __NR_vserver 277 +#elif defined(__mips__) && (_MIPS_SIM == _MIPS_SIM_ABI64) +#define __NR_vserver 240 +#elif defined(__mips__) && (_MIPS_SIM == _MIPS_SIM_NABI32) +#define __NR_vserver 236 +#elif defined(__hppa__) +#define __NR_vserver 263 +#elif defined(__powerpc__) +#define __NR_vserver 257 +#elif defined(__s390__) +#define __NR_vserver 263 +#elif defined(__sh__) +#define __NR_vserver 273 +#elif defined(__sparc__) +#define __NR_vserver 267 +#elif defined(__v850__) +#define __NR_vserver * +#elif defined(__x86_64__) +#define __NR_vserver 236 +#endif + + + +#endif // H_ENSC_UTIL_VSERVER_LIB_SYSCALL_FALLBACK_H diff --git a/lib/syscall-legacy.hc b/lib/syscall-legacy.hc index 5ac294a..26ecd39 100644 --- a/lib/syscall-legacy.hc +++ b/lib/syscall-legacy.hc @@ -1,4 +1,4 @@ -// $Id: syscall-legacy.hc,v 1.10 2005/05/02 21:41:49 ensc Exp $ --*- c -*-- +// $Id: syscall-legacy.hc 2076 2005-05-02 21:42:05Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // based on syscall.cc by Jacques Gelinas diff --git a/lib/syscall-syscall.c b/lib/syscall-syscall.c index f085329..9673f81 100644 --- a/lib/syscall-syscall.c +++ b/lib/syscall-syscall.c @@ -1,4 +1,4 @@ -// $Id: syscall-syscall.c,v 1.2 2004/08/19 13:57:53 ensc Exp $ --*- c -*-- +// $Id: syscall-syscall.c 1655 2004-08-19 13:57:53Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz Enrico Scholz // diff --git a/lib/syscall-wrap.h b/lib/syscall-wrap.h index 4487bae..e67e040 100644 --- a/lib/syscall-wrap.h +++ b/lib/syscall-wrap.h @@ -1,4 +1,4 @@ -// $Id: syscall-wrap.h,v 1.2 2005/05/02 21:42:05 ensc Exp $ --*- c -*-- +// $Id: syscall-wrap.h 2446 2007-01-09 13:22:11Z dhozac $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // @@ -36,4 +36,8 @@ # include "syscall-alternative.h" #endif +#if defined(ENSC_SYSCALL_TRADITIONAL) && defined(__dietlibc__) && !defined(ENSC_DIETLIBC_HAS_SYSCALL) +extern long int syscall(long int __sysno, ...); +#endif + #endif // H_UTIL_VSERVER_LIB_SYSCALL_WRAP_H diff --git a/lib/syscall.c b/lib/syscall.c index f099164..37beb79 100644 --- a/lib/syscall.c +++ b/lib/syscall.c @@ -1,4 +1,4 @@ -// $Id: syscall.c,v 1.10 2004/04/08 06:04:41 ensc Exp $ --*- c++ -*-- +// $Id: syscall.c 2448 2007-01-10 18:49:13Z dhozac $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // @@ -25,7 +25,7 @@ #include "internal.h" #define _LINUX_TYPES_H 1 -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_COMPAT) && defined(VC_ENABLE_API_LEGACY) # define VC_MULTIVERSION_SYSCALL 1 @@ -60,5 +60,7 @@ vc_set_ipv4root(uint32_t bcast, size_t nb, struct vc_ip_mask_pair const *ips) CALL_VC_LEGACY(vc_set_ipv4root, bcast, nb, ips)); } -LINK_WARNING("vc_new_s_context", "warning: vc_new_s_context() is obsoleted; use vc_create_context() instead of"); +LINK_WARNING("vc_new_s_context", "warning: vc_new_s_context() is obsoleted; use vc_ctx_create() instead of"); +LINK_WARNING("vc_set_ipv4root", "warning: vc_set_ipv4root() is obsoleted; use vc_net_create() instead of"); + #endif diff --git a/lib/syscall_adddlimit-v13.hc b/lib/syscall_adddlimit-v13.hc index 7e44edc..b33d3b6 100644 --- a/lib/syscall_adddlimit-v13.hc +++ b/lib/syscall_adddlimit-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_adddlimit-v13.hc,v 1.3 2005/03/02 01:29:44 ensc Exp $ --*- c -*-- +// $Id: syscall_adddlimit-v13.hc 1881 2005-03-02 01:29:44Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/lib/syscall_adddlimit.c b/lib/syscall_adddlimit.c index 98f132d..af24493 100644 --- a/lib/syscall_adddlimit.c +++ b/lib/syscall_adddlimit.c @@ -1,4 +1,4 @@ -// $Id: syscall_adddlimit.c,v 1.2 2005/03/02 01:27:54 ensc Exp $ --*- c++ -*-- +// $Id: syscall_adddlimit.c 2207 2005-10-29 10:31:42Z ensc $ --*- c++ -*-- // Copyright (C) 2005 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #include "vserver-internal.h" diff --git a/lib/syscall_cleanupnamespace-v13.hc b/lib/syscall_cleanupnamespace-v13.hc index 06ebfdd..2c3d464 100644 --- a/lib/syscall_cleanupnamespace-v13.hc +++ b/lib/syscall_cleanupnamespace-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_cleanupnamespace-v13.hc,v 1.1 2004/02/27 04:39:09 ensc Exp $ --*- c -*-- +// $Id: syscall_cleanupnamespace-v13.hc 1023 2004-02-27 04:42:25Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_cleanupnamespace.c b/lib/syscall_cleanupnamespace.c index 7f8a4d0..1b22e67 100644 --- a/lib/syscall_cleanupnamespace.c +++ b/lib/syscall_cleanupnamespace.c @@ -1,4 +1,4 @@ -// $Id: syscall_cleanupnamespace.c,v 1.1 2004/02/27 04:39:09 ensc Exp $ --*- c++ -*-- +// $Id: syscall_cleanupnamespace.c 2207 2005-10-29 10:31:42Z ensc $ --*- c++ -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #include "vserver-internal.h" diff --git a/lib/syscall_ctxcreate-v13.hc b/lib/syscall_ctxcreate-v13.hc index f29b087..23c45d9 100644 --- a/lib/syscall_ctxcreate-v13.hc +++ b/lib/syscall_ctxcreate-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_ctxcreate-v13.hc,v 1.2 2004/04/22 20:45:50 ensc Exp $ --*- c -*-- +// $Id: syscall_ctxcreate-v13.hc 2193 2005-10-28 17:51:09Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -23,7 +23,7 @@ static inline ALWAYSINLINE xid_t vc_ctx_create_v13(xid_t xid) { - xid_t res = vserver(VCMD_ctx_create, CTX_USER2KERNEL(xid), 0); + xid_t res = vserver(VCMD_ctx_create_v0, CTX_USER2KERNEL(xid), 0); return CTX_KERNEL2USER(res); } diff --git a/lib/syscall_ctxcreate.c b/lib/syscall_ctxcreate.c index f367159..850e1cb 100644 --- a/lib/syscall_ctxcreate.c +++ b/lib/syscall_ctxcreate.c @@ -1,4 +1,4 @@ -// $Id: syscall_ctxcreate.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*-- +// $Id: syscall_ctxcreate.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_V13) # include "syscall_ctxcreate-v13.hc" diff --git a/lib/syscall_ctxmigrate-v13.hc b/lib/syscall_ctxmigrate-v13.hc index 641ee3f..930a599 100644 --- a/lib/syscall_ctxmigrate-v13.hc +++ b/lib/syscall_ctxmigrate-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_ctxmigrate-v13.hc,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*-- +// $Id: syscall_ctxmigrate-v13.hc 2339 2006-09-29 22:15:14Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -23,5 +23,5 @@ static inline ALWAYSINLINE int vc_ctx_migrate_v13(xid_t xid) { - return vserver(VCMD_ctx_migrate, CTX_USER2KERNEL(xid), 0); + return vserver(VCMD_ctx_migrate_v0, CTX_USER2KERNEL(xid), NULL); } diff --git a/lib/syscall_ctxmigrate-v21.hc b/lib/syscall_ctxmigrate-v21.hc new file mode 100644 index 0000000..a37027d --- /dev/null +++ b/lib/syscall_ctxmigrate-v21.hc @@ -0,0 +1,38 @@ +// $Id: syscall_ctxmigrate-v21.hc 2501 2007-02-20 17:33:35Z dhozac $ --*- c -*-- + +// Copyright (C) 2004 Enrico Scholz +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +static inline ALWAYSINLINE int +vc_ctx_migrate_spaces(xid_t xid, uint_least64_t flags) +{ + int ret; + struct vcmd_ctx_migrate data = { .flagword = flags }; + + ret = vc_getXIDType(xid); + if (ret == vcTYPE_STATIC || ret == vcTYPE_DYNAMIC) { + ret = vc_enter_namespace(xid, vc_get_space_mask() & ~(CLONE_NEWNS|CLONE_FS)); + if (ret) + return ret; + } + + return vserver(VCMD_ctx_migrate, CTX_USER2KERNEL(xid), &data); +} diff --git a/lib/syscall_ctxmigrate.c b/lib/syscall_ctxmigrate.c index 29276c6..730b3e4 100644 --- a/lib/syscall_ctxmigrate.c +++ b/lib/syscall_ctxmigrate.c @@ -1,4 +1,4 @@ -// $Id: syscall_ctxmigrate.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*-- +// $Id: syscall_ctxmigrate.c 2501 2007-02-20 17:33:35Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,17 +21,26 @@ #endif #include "vserver.h" +#include "virtual.h" + +#if defined(VC_ENABLE_API_V13) && defined(VC_ENABLE_API_V21) +# define VC_MULTIVERSION_SYSCALL 1 +#endif #include "vserver-internal.h" -#include "linuxvirtual.h" #if defined(VC_ENABLE_API_V13) # include "syscall_ctxmigrate-v13.hc" #endif -#if defined(VC_ENABLE_API_V13) +#if defined(VC_ENABLE_API_V21) +# include "syscall_ctxmigrate-v21.hc" +#endif + +#if defined(VC_ENABLE_API_V13) || defined(VC_ENABLE_API_V21) int -vc_ctx_migrate(xid_t xid) +vc_ctx_migrate(xid_t xid, uint_least64_t flags) { - CALL_VC(CALL_VC_V13A(vc_ctx_migrate, xid)); + CALL_VC(CALL_VC_SPACES(vc_ctx_migrate, xid, flags), + CALL_VC_V13A (vc_ctx_migrate, xid)); } #endif diff --git a/lib/syscall_ctxstat-v21.hc b/lib/syscall_ctxstat-v21.hc new file mode 100644 index 0000000..bbf8793 --- /dev/null +++ b/lib/syscall_ctxstat-v21.hc @@ -0,0 +1,36 @@ +// $Id: syscall_ctxstat-v21.hc 2380 2006-11-15 20:14:00Z dhozac $ --*- c++ -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +static inline ALWAYSINLINE int +vc_ctx_stat_v21(xid_t ctx, struct vc_ctx_stat *stat) +{ + int ret; + struct vcmd_ctx_stat_v0 param; + + ret = vserver(VCMD_ctx_stat, CTX_USER2KERNEL(ctx), ¶m); + if (ret) + return ret; + + stat->usecnt = param.usecnt; + stat->tasks = param.tasks; + return 0; +} diff --git a/lib/syscall_ctxstat.c b/lib/syscall_ctxstat.c new file mode 100644 index 0000000..8da5f4d --- /dev/null +++ b/lib/syscall_ctxstat.c @@ -0,0 +1,39 @@ +// $Id: syscall_ctxstat.c 2380 2006-11-15 20:14:00Z dhozac $ --*- c++ -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include "vserver-internal.h" +#include "virtual.h" + +#if defined(VC_ENABLE_API_V21) +# include "syscall_ctxstat-v21.hc" +#endif + +#if defined(VC_ENABLE_API_V21) + +int +vc_ctx_stat(xid_t ctx, struct vc_ctx_stat *stat) +{ + CALL_VC(CALL_VC_V21(vc_ctx_stat, ctx, stat)); +} + +#endif diff --git a/lib/syscall_enternamespace-v13.hc b/lib/syscall_enternamespace-v13.hc index b4d14f9..84042d3 100644 --- a/lib/syscall_enternamespace-v13.hc +++ b/lib/syscall_enternamespace-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_enternamespace-v13.hc,v 1.1 2004/02/20 17:58:43 ensc Exp $ --*- c -*-- +// $Id: syscall_enternamespace-v13.hc 2415 2006-12-08 13:24:49Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -23,7 +23,9 @@ #include "vserver.h" static inline ALWAYSINLINE int -vc_enter_namespace_v13(xid_t xid) +vc_enter_namespace_v13(xid_t xid, uint_least64_t mask) { - return vserver(VCMD_enter_namespace, CTX_USER2KERNEL(xid), 0); + if ((mask & (CLONE_NEWNS|CLONE_FS)) == 0) + return 0; + return vserver(VCMD_enter_space_v0, CTX_USER2KERNEL(xid), 0); } diff --git a/lib/syscall_enternamespace-v21.hc b/lib/syscall_enternamespace-v21.hc new file mode 100644 index 0000000..fdc5d27 --- /dev/null +++ b/lib/syscall_enternamespace-v21.hc @@ -0,0 +1,31 @@ +// $Id: syscall_enternamespace-v21.hc 2415 2006-12-08 13:24:49Z dhozac $ --*- c -*-- + +// Copyright (C) 2004 Enrico Scholz +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" + +static inline ALWAYSINLINE int +vc_enter_namespace_spaces(xid_t xid, uint_least64_t mask) +{ + struct vcmd_space_mask data = { .mask = mask }; + return vserver(VCMD_enter_space, CTX_USER2KERNEL(xid), &data); +} diff --git a/lib/syscall_enternamespace.c b/lib/syscall_enternamespace.c index 90be57a..9f20c39 100644 --- a/lib/syscall_enternamespace.c +++ b/lib/syscall_enternamespace.c @@ -1,4 +1,4 @@ -// $Id: syscall_enternamespace.c,v 1.1 2004/02/20 17:58:43 ensc Exp $ --*- c++ -*-- +// $Id: syscall_enternamespace.c 2415 2006-12-08 13:24:49Z dhozac $ --*- c++ -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,16 +21,26 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" +#if defined(VC_ENABLE_API_V13) && defined(VC_ENABLE_API_V21) +# define VC_MULTIVERSION_SYSCALL 1 +#endif #include "vserver-internal.h" #ifdef VC_ENABLE_API_V13 # include "syscall_enternamespace-v13.hc" #endif +#ifdef VC_ENABLE_API_V21 +# include "syscall_enternamespace-v21.hc" +#endif + +#if defined(VC_ENABLE_API_V13) || defined(VC_ENABLE_API_V21) int -vc_enter_namespace(xid_t xid) +vc_enter_namespace(xid_t xid, uint_least64_t mask) { - CALL_VC(CALL_VC_V13(vc_enter_namespace, xid)); + CALL_VC(CALL_VC_SPACES(vc_enter_namespace, xid, mask), + CALL_VC_V13 (vc_enter_namespace, xid, mask)); } +#endif diff --git a/lib/syscall_getccaps-v13.hc b/lib/syscall_getccaps-v13.hc index 3d0f09b..004849a 100644 --- a/lib/syscall_getccaps-v13.hc +++ b/lib/syscall_getccaps-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getccaps-v13.hc,v 1.2 2004/03/24 01:07:11 ensc Exp $ --*- c -*-- +// $Id: syscall_getccaps-v13.hc 1323 2004-03-24 01:07:11Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_getccaps.c b/lib/syscall_getccaps.c index a4d002f..3084c10 100644 --- a/lib/syscall_getccaps.c +++ b/lib/syscall_getccaps.c @@ -1,4 +1,4 @@ -// $Id: syscall_getccaps.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*-- +// $Id: syscall_getccaps.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_V13) # include "syscall_getccaps-v13.hc" diff --git a/lib/syscall_getcflags-v13.hc b/lib/syscall_getcflags-v13.hc index 5cfc579..83a62a2 100644 --- a/lib/syscall_getcflags-v13.hc +++ b/lib/syscall_getcflags-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getcflags-v13.hc,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*-- +// $Id: syscall_getcflags-v13.hc 1449 2004-04-14 23:19:51Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_getcflags.c b/lib/syscall_getcflags.c index 22fc982..22b1dc3 100644 --- a/lib/syscall_getcflags.c +++ b/lib/syscall_getcflags.c @@ -1,4 +1,4 @@ -// $Id: syscall_getcflags.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*-- +// $Id: syscall_getcflags.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_V13) # include "syscall_getcflags-v13.hc" diff --git a/lib/syscall_getdlimit-v13.hc b/lib/syscall_getdlimit-v13.hc index c6b66fd..408daba 100644 --- a/lib/syscall_getdlimit-v13.hc +++ b/lib/syscall_getdlimit-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getdlimit-v13.hc,v 1.2 2005/03/02 01:29:44 ensc Exp $ --*- c -*-- +// $Id: syscall_getdlimit-v13.hc 1881 2005-03-02 01:29:44Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/lib/syscall_getdlimit.c b/lib/syscall_getdlimit.c index a807e52..0393921 100644 --- a/lib/syscall_getdlimit.c +++ b/lib/syscall_getdlimit.c @@ -1,4 +1,4 @@ -// $Id: syscall_getdlimit.c,v 1.2 2005/03/02 01:27:54 ensc Exp $ --*- c++ -*-- +// $Id: syscall_getdlimit.c 2207 2005-10-29 10:31:42Z ensc $ --*- c++ -*-- // Copyright (C) 2005 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #include "vserver-internal.h" diff --git a/lib/syscall_getiattr-fscompat.hc b/lib/syscall_getiattr-fscompat.hc index a0c5bc5..12c6c9e 100644 --- a/lib/syscall_getiattr-fscompat.hc +++ b/lib/syscall_getiattr-fscompat.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getiattr-fscompat.hc,v 1.2 2005/07/15 18:06:27 ensc Exp $ --*- c -*-- +// $Id: syscall_getiattr-fscompat.hc 2151 2005-07-15 18:06:27Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_getiattr-v13.hc b/lib/syscall_getiattr-v13.hc index 9e8b17b..da5b623 100644 --- a/lib/syscall_getiattr-v13.hc +++ b/lib/syscall_getiattr-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getiattr-v13.hc,v 1.7 2004/03/12 02:56:46 ensc Exp $ --*- c -*-- +// $Id: syscall_getiattr-v13.hc 1216 2004-03-12 02:57:01Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_getiattr.c b/lib/syscall_getiattr.c index 063174c..36651ac 100644 --- a/lib/syscall_getiattr.c +++ b/lib/syscall_getiattr.c @@ -1,4 +1,4 @@ -// $Id: syscall_getiattr.c,v 1.3 2004/03/05 04:40:59 ensc Exp $ --*- c++ -*-- +// $Id: syscall_getiattr.c 2207 2005-10-29 10:31:42Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_FSCOMPAT) && defined(VC_ENABLE_API_V13) # define VC_MULTIVERSION_SYSCALL 1 diff --git a/lib/syscall_getncaps-net.hc b/lib/syscall_getncaps-net.hc index 91c9448..40ea3b4 100644 --- a/lib/syscall_getncaps-net.hc +++ b/lib/syscall_getncaps-net.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getncaps-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_getncaps-net.hc 1501 2004-04-22 20:46:44Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_getncaps.c b/lib/syscall_getncaps.c index 998594e..85bafae 100644 --- a/lib/syscall_getncaps.c +++ b/lib/syscall_getncaps.c @@ -1,4 +1,4 @@ -// $Id: syscall_getncaps.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_getncaps.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_NET) # include "syscall_getncaps-net.hc" diff --git a/lib/syscall_getnflags-net.hc b/lib/syscall_getnflags-net.hc index 0cc5fd4..362f0f4 100644 --- a/lib/syscall_getnflags-net.hc +++ b/lib/syscall_getnflags-net.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getnflags-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_getnflags-net.hc 1501 2004-04-22 20:46:44Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_getnflags.c b/lib/syscall_getnflags.c index 596b374..23376c7 100644 --- a/lib/syscall_getnflags.c +++ b/lib/syscall_getnflags.c @@ -1,4 +1,4 @@ -// $Id: syscall_getnflags.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_getnflags.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_NET) # include "syscall_getnflags-net.hc" diff --git a/lib/syscall_getnxinfo-net.hc b/lib/syscall_getnxinfo-net.hc index 5069f73..449035b 100644 --- a/lib/syscall_getnxinfo-net.hc +++ b/lib/syscall_getnxinfo-net.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getnxinfo-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_getnxinfo-net.hc 1501 2004-04-22 20:46:44Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_getnxinfo.c b/lib/syscall_getnxinfo.c index a7c517f..c5c0630 100644 --- a/lib/syscall_getnxinfo.c +++ b/lib/syscall_getnxinfo.c @@ -1,4 +1,4 @@ -// $Id: syscall_getnxinfo.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_getnxinfo.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #include "vserver-internal.h" #ifdef VC_ENABLE_API_NET diff --git a/lib/syscall_getspacemask-v21.hc b/lib/syscall_getspacemask-v21.hc new file mode 100644 index 0000000..34c5e35 --- /dev/null +++ b/lib/syscall_getspacemask-v21.hc @@ -0,0 +1,32 @@ +// $Id: syscall_getspacemask-v21.hc 2415 2006-12-08 13:24:49Z dhozac $ --*- c -*-- + +// Copyright (C) 2004 Enrico Scholz +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +static inline ALWAYSINLINE uint_least64_t +vc_get_space_mask_spaces(int UNUSED tmp) +{ + struct vcmd_space_mask data = { .mask = 0 }; + int ret = vserver(VCMD_get_space_mask, 0, &data); + if (ret) + return ret; + return data.mask; +} diff --git a/lib/syscall_getspacemask.c b/lib/syscall_getspacemask.c new file mode 100644 index 0000000..1ea083b --- /dev/null +++ b/lib/syscall_getspacemask.c @@ -0,0 +1,38 @@ +// $Id: syscall_getspacemask.c 2415 2006-12-08 13:24:49Z dhozac $ --*- c -*-- + +// Copyright (C) 2004 Enrico Scholz +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include "vserver-internal.h" +#include "virtual.h" + +#if defined(VC_ENABLE_API_V21) +# include "syscall_getspacemask-v21.hc" +#endif + +#if defined(VC_ENABLE_API_V21) +uint_least64_t +vc_get_space_mask() +{ + CALL_VC(CALL_VC_SPACES(vc_get_space_mask, 0)); +} +#endif diff --git a/lib/syscall_gettasknid-net.hc b/lib/syscall_gettasknid-net.hc index ab0c63c..453eae6 100644 --- a/lib/syscall_gettasknid-net.hc +++ b/lib/syscall_gettasknid-net.hc @@ -1,4 +1,4 @@ -// $Id: syscall_gettasknid-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_gettasknid-net.hc 1501 2004-04-22 20:46:44Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_gettasknid.c b/lib/syscall_gettasknid.c index 145e3ff..5d4ce76 100644 --- a/lib/syscall_gettasknid.c +++ b/lib/syscall_gettasknid.c @@ -1,4 +1,4 @@ -// $Id: syscall_gettasknid.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_gettasknid.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #include "vserver-internal.h" #ifdef VC_ENABLE_API_NET diff --git a/lib/syscall_gettaskxid-oldproc.hc b/lib/syscall_gettaskxid-oldproc.hc index b7f8239..95fdd94 100644 --- a/lib/syscall_gettaskxid-oldproc.hc +++ b/lib/syscall_gettaskxid-oldproc.hc @@ -1,4 +1,4 @@ -// $Id: syscall_gettaskxid-oldproc.hc,v 1.2 2004/02/02 18:58:00 ensc Exp $ --*- c -*-- +// $Id: syscall_gettaskxid-oldproc.hc 738 2004-02-02 18:58:00Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_gettaskxid-v13.hc b/lib/syscall_gettaskxid-v13.hc index 80b5885..8405617 100644 --- a/lib/syscall_gettaskxid-v13.hc +++ b/lib/syscall_gettaskxid-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_gettaskxid-v13.hc,v 1.4 2004/01/22 21:35:36 ensc Exp $ --*- c -*-- +// $Id: syscall_gettaskxid-v13.hc 701 2004-01-22 21:35:36Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_gettaskxid.c b/lib/syscall_gettaskxid.c index ac797cd..cb40109 100644 --- a/lib/syscall_gettaskxid.c +++ b/lib/syscall_gettaskxid.c @@ -1,4 +1,4 @@ -// $Id: syscall_gettaskxid.c,v 1.1 2004/01/21 18:47:18 ensc Exp $ --*- c -*-- +// $Id: syscall_gettaskxid.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_OLDPROC) && defined(VC_ENABLE_API_V13) # define VC_MULTIVERSION_SYSCALL 1 diff --git a/lib/syscall_getvci-v21.hc b/lib/syscall_getvci-v21.hc new file mode 100644 index 0000000..f28db57 --- /dev/null +++ b/lib/syscall_getvci-v21.hc @@ -0,0 +1,27 @@ +// $Id: syscall_getvci-v21.hc 2415 2006-12-08 13:24:49Z dhozac $ --*- c++ -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +static inline ALWAYSINLINE int +vc_get_vci_v21(int UNUSED tmp) +{ + return vserver(VCMD_get_vci, 0, 0); +} diff --git a/lib/syscall_getvci.c b/lib/syscall_getvci.c new file mode 100644 index 0000000..4978603 --- /dev/null +++ b/lib/syscall_getvci.c @@ -0,0 +1,39 @@ +// $Id: syscall_getvci.c 2415 2006-12-08 13:24:49Z dhozac $ --*- c++ -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include "vserver-internal.h" +#include "virtual.h" + +#if defined(VC_ENABLE_API_V21) +# include "syscall_getvci-v21.hc" +#endif + +#if defined(VC_ENABLE_API_V21) + +int +vc_get_vci() +{ + CALL_VC(CALL_VC_V21(vc_get_vci, 0)); +} + +#endif diff --git a/lib/syscall_getvhiname-olduts.hc b/lib/syscall_getvhiname-olduts.hc index c7ea54c..55ab457 100644 --- a/lib/syscall_getvhiname-olduts.hc +++ b/lib/syscall_getvhiname-olduts.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getvhiname-olduts.hc,v 1.1 2004/02/02 18:32:53 ensc Exp $ --*- c -*-- +// $Id: syscall_getvhiname-olduts.hc 733 2004-02-02 18:32:53Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_getvhiname-v13.hc b/lib/syscall_getvhiname-v13.hc index e244dcd..22d3947 100644 --- a/lib/syscall_getvhiname-v13.hc +++ b/lib/syscall_getvhiname-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getvhiname-v13.hc,v 1.3 2005/07/03 17:49:56 ensc Exp $ --*- c -*-- +// $Id: syscall_getvhiname-v13.hc 2242 2006-01-04 12:29:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -44,5 +44,6 @@ vc_get_vhi_name_v13(xid_t xid, vc_uts_type type, char *val, size_t len) l = l>len ? len : l; strncpy(val, cmd.name, l); + /* DO NOT terminate 'val' with '\0' explicitly */ return 0; } diff --git a/lib/syscall_getvhiname.c b/lib/syscall_getvhiname.c index 32180d6..1ade5bc 100644 --- a/lib/syscall_getvhiname.c +++ b/lib/syscall_getvhiname.c @@ -1,4 +1,4 @@ -// $Id: syscall_getvhiname.c,v 1.1 2004/02/02 18:32:53 ensc Exp $ --*- c -*-- +// $Id: syscall_getvhiname.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_OLDUTS) && defined(VC_ENABLE_API_V13) # define VC_MULTIVERSION_SYSCALL 1 diff --git a/lib/syscall_getvxinfo-oldproc.hc b/lib/syscall_getvxinfo-oldproc.hc index e8dc582..0fddfdc 100644 --- a/lib/syscall_getvxinfo-oldproc.hc +++ b/lib/syscall_getvxinfo-oldproc.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getvxinfo-oldproc.hc,v 1.3 2004/03/05 04:40:59 ensc Exp $ --*- c -*-- +// $Id: syscall_getvxinfo-oldproc.hc 1091 2004-03-05 04:40:59Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_getvxinfo-v13.hc b/lib/syscall_getvxinfo-v13.hc index 7f0e456..8792a40 100644 --- a/lib/syscall_getvxinfo-v13.hc +++ b/lib/syscall_getvxinfo-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_getvxinfo-v13.hc,v 1.4 2004/02/20 17:04:12 ensc Exp $ --*- c -*-- +// $Id: syscall_getvxinfo-v13.hc 970 2004-02-20 17:04:12Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_getvxinfo.c b/lib/syscall_getvxinfo.c index fc1a0a9..b75917e 100644 --- a/lib/syscall_getvxinfo.c +++ b/lib/syscall_getvxinfo.c @@ -1,4 +1,4 @@ -// $Id: syscall_getvxinfo.c,v 1.2 2004/03/05 04:40:59 ensc Exp $ --*- c -*-- +// $Id: syscall_getvxinfo.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_OLDPROC) && defined(VC_ENABLE_API_V13) # define VC_MULTIVERSION_SYSCALL 1 diff --git a/lib/syscall_kill-v11.hc b/lib/syscall_kill-v11.hc index e3e2f6c..de7357a 100644 --- a/lib/syscall_kill-v11.hc +++ b/lib/syscall_kill-v11.hc @@ -1,4 +1,4 @@ -// $Id: syscall_kill-v11.hc,v 1.4 2004/02/02 18:55:52 ensc Exp $ --*- c++ -*-- +// $Id: syscall_kill-v11.hc 736 2004-02-02 18:55:52Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/syscall_kill.c b/lib/syscall_kill.c index c5358c5..c530a0e 100644 --- a/lib/syscall_kill.c +++ b/lib/syscall_kill.c @@ -1,4 +1,4 @@ -// $Id: syscall_kill.c,v 1.3 2004/01/21 18:55:12 ensc Exp $ --*- c++ -*-- +// $Id: syscall_kill.c 2207 2005-10-29 10:31:42Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_V11) || defined(VC_ENABLE_API_V13) # include "syscall_kill-v11.hc" diff --git a/lib/syscall_netadd-net.hc b/lib/syscall_netadd-net.hc index faa4908..2e336e7 100644 --- a/lib/syscall_netadd-net.hc +++ b/lib/syscall_netadd-net.hc @@ -1,4 +1,4 @@ -// $Id: syscall_netadd-net.hc,v 1.2 2005/07/15 18:07:24 ensc Exp $ --*- c -*-- +// $Id: syscall_netadd-net.hc 2249 2006-01-18 23:40:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -24,9 +24,14 @@ static inline ALWAYSINLINE int vc_net_add_net(nid_t nid, struct vc_net_nx const *info) { struct vcmd_net_addr_v0 k_info; + size_t i; - k_info.type = NETTYPE_USER2KERNEL(info->type); - k_info.count = info->count; + k_info.type = NETTYPE_USER2KERNEL(info->type); + k_info.count = info->count; + for (i = 0; i < sizeof(k_info.ip) / sizeof(*k_info.ip); i++) + k_info.ip[i] = info->ip[i]; + for (i = 0; i < sizeof(k_info.mask) / sizeof(*k_info.mask); i++) + k_info.mask[i] = info->mask[i]; return vserver(VCMD_net_add, NID_USER2KERNEL(nid), &k_info); } diff --git a/lib/syscall_netadd.c b/lib/syscall_netadd.c index 0d13c32..b5aa93a 100644 --- a/lib/syscall_netadd.c +++ b/lib/syscall_netadd.c @@ -1,4 +1,4 @@ -// $Id: syscall_netadd.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_netadd.c 2249 2006-01-18 23:40:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,13 +22,13 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_NET) # include "syscall_netadd-net.hc" #endif -#if defined(VC_ENABLE_API_NET) && 0 +#if defined(VC_ENABLE_API_NET) int vc_net_add(nid_t nid, struct vc_net_nx const *info) { diff --git a/lib/syscall_netcreate-net.hc b/lib/syscall_netcreate-net.hc index 32da866..684f4e1 100644 --- a/lib/syscall_netcreate-net.hc +++ b/lib/syscall_netcreate-net.hc @@ -1,4 +1,4 @@ -// $Id: syscall_netcreate-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_netcreate-net.hc 1501 2004-04-22 20:46:44Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_netcreate.c b/lib/syscall_netcreate.c index fc80de4..d96f372 100644 --- a/lib/syscall_netcreate.c +++ b/lib/syscall_netcreate.c @@ -1,4 +1,4 @@ -// $Id: syscall_netcreate.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_netcreate.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_NET) # include "syscall_netcreate-net.hc" diff --git a/lib/syscall_netmigrate-net.hc b/lib/syscall_netmigrate-net.hc index 1fb4738..2bc95e1 100644 --- a/lib/syscall_netmigrate-net.hc +++ b/lib/syscall_netmigrate-net.hc @@ -1,4 +1,4 @@ -// $Id: syscall_netmigrate-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_netmigrate-net.hc 1501 2004-04-22 20:46:44Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_netmigrate.c b/lib/syscall_netmigrate.c index 42b2e04..490b83d 100644 --- a/lib/syscall_netmigrate.c +++ b/lib/syscall_netmigrate.c @@ -1,4 +1,4 @@ -// $Id: syscall_netmigrate.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_netmigrate.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_NET) # include "syscall_netmigrate-net.hc" diff --git a/lib/syscall_netremove-net.hc b/lib/syscall_netremove-net.hc index 4018011..173ed46 100644 --- a/lib/syscall_netremove-net.hc +++ b/lib/syscall_netremove-net.hc @@ -1,4 +1,4 @@ -// $Id: syscall_netremove-net.hc,v 1.2 2005/07/15 18:07:24 ensc Exp $ --*- c -*-- +// $Id: syscall_netremove-net.hc 2249 2006-01-18 23:40:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -24,9 +24,14 @@ static inline ALWAYSINLINE int vc_net_remove_net(nid_t nid, struct vc_net_nx const *info) { struct vcmd_net_addr_v0 k_info; + size_t i; - k_info.type = NETTYPE_USER2KERNEL(info->type); - k_info.count = info->count; + k_info.type = NETTYPE_USER2KERNEL(info->type); + k_info.count = info->count; + for (i = 0; i < sizeof(k_info.ip) / sizeof(*k_info.ip); i++) + k_info.ip[i] = info->ip[i]; + for (i = 0; i < sizeof(k_info.mask) / sizeof(*k_info.mask); i++) + k_info.mask[i] = info->mask[i]; return vserver(VCMD_net_remove, NID_USER2KERNEL(nid), &k_info); } diff --git a/lib/syscall_netremove.c b/lib/syscall_netremove.c index 77af245..1f6bc33 100644 --- a/lib/syscall_netremove.c +++ b/lib/syscall_netremove.c @@ -1,4 +1,4 @@ -// $Id: syscall_netremove.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_netremove.c 2249 2006-01-18 23:40:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,13 +22,13 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_NET) # include "syscall_netremove-net.hc" #endif -#if defined(VC_ENABLE_API_NET) && 0 +#if defined(VC_ENABLE_API_NET) int vc_net_remove(nid_t nid, struct vc_net_nx const *info) { diff --git a/lib/syscall_remdlimit-v13.hc b/lib/syscall_remdlimit-v13.hc index e3de814..9b9fd26 100644 --- a/lib/syscall_remdlimit-v13.hc +++ b/lib/syscall_remdlimit-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_remdlimit-v13.hc,v 1.3 2005/03/02 01:29:44 ensc Exp $ --*- c -*-- +// $Id: syscall_remdlimit-v13.hc 1881 2005-03-02 01:29:44Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/lib/syscall_remdlimit.c b/lib/syscall_remdlimit.c index 16f5b00..1cd385b 100644 --- a/lib/syscall_remdlimit.c +++ b/lib/syscall_remdlimit.c @@ -1,4 +1,4 @@ -// $Id: syscall_remdlimit.c,v 1.2 2005/03/02 01:27:54 ensc Exp $ --*- c++ -*-- +// $Id: syscall_remdlimit.c 2207 2005-10-29 10:31:42Z ensc $ --*- c++ -*-- // Copyright (C) 2005 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #include "vserver-internal.h" diff --git a/lib/syscall_resetminmax-v21.hc b/lib/syscall_resetminmax-v21.hc new file mode 100644 index 0000000..4b425b2 --- /dev/null +++ b/lib/syscall_resetminmax-v21.hc @@ -0,0 +1,27 @@ +// $Id: syscall_resetminmax-v21.hc 2380 2006-11-15 20:14:00Z dhozac $ --*- c++ -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +static inline ALWAYSINLINE int +vc_reset_minmax_v21(xid_t ctx) +{ + return vserver(VCMD_reset_minmax, CTX_USER2KERNEL(ctx), 0); +} diff --git a/lib/syscall_resetminmax.c b/lib/syscall_resetminmax.c new file mode 100644 index 0000000..c012b02 --- /dev/null +++ b/lib/syscall_resetminmax.c @@ -0,0 +1,39 @@ +// $Id: syscall_resetminmax.c 2380 2006-11-15 20:14:00Z dhozac $ --*- c++ -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include "vserver-internal.h" +#include "virtual.h" + +#if defined(VC_ENABLE_API_V21) +# include "syscall_resetminmax-v21.hc" +#endif + +#if defined(VC_ENABLE_API_V21) + +int +vc_reset_minmax(xid_t ctx) +{ + CALL_VC(CALL_VC_V21(vc_reset_minmax, ctx)); +} + +#endif diff --git a/lib/syscall_rlimit-v11.hc b/lib/syscall_rlimit-v11.hc index c463df5..e74da6f 100644 --- a/lib/syscall_rlimit-v11.hc +++ b/lib/syscall_rlimit-v11.hc @@ -1,4 +1,4 @@ -// $Id: syscall_rlimit-v11.hc,v 1.5 2004/02/20 19:03:24 ensc Exp $ --*- c++ -*-- +// $Id: syscall_rlimit-v11.hc 976 2004-02-20 19:03:24Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/syscall_rlimit.c b/lib/syscall_rlimit.c index 9a468fb..61b3070 100644 --- a/lib/syscall_rlimit.c +++ b/lib/syscall_rlimit.c @@ -1,4 +1,4 @@ -// $Id: syscall_rlimit.c,v 1.4 2004/01/21 18:55:12 ensc Exp $ --*- c++ -*-- +// $Id: syscall_rlimit.c 2207 2005-10-29 10:31:42Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // @@ -23,7 +23,7 @@ #include "vserver.h" #include "internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #include "vserver-internal.h" diff --git a/lib/syscall_rlimitstat-v21.hc b/lib/syscall_rlimitstat-v21.hc new file mode 100644 index 0000000..601e6a3 --- /dev/null +++ b/lib/syscall_rlimitstat-v21.hc @@ -0,0 +1,39 @@ +// $Id: syscall_rlimitstat-v21.hc 2380 2006-11-15 20:14:00Z dhozac $ --*- c++ -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +static inline ALWAYSINLINE int +vc_rlimit_stat_v21(xid_t ctx, int resource, struct vc_rlimit_stat *stat) +{ + struct vcmd_rlimit_stat_v0 param = { .id = resource }; + int ret; + + ret = vserver(VCMD_rlimit_stat, CTX_USER2KERNEL(ctx), ¶m); + if (ret) + return ret; + + stat->hits = param.hits; + stat->value = param.value; + stat->minimum = param.minimum; + stat->maximum = param.maximum; + + return 0; +} diff --git a/lib/syscall_rlimitstat.c b/lib/syscall_rlimitstat.c new file mode 100644 index 0000000..d2896ec --- /dev/null +++ b/lib/syscall_rlimitstat.c @@ -0,0 +1,39 @@ +// $Id: syscall_rlimitstat.c 2380 2006-11-15 20:14:00Z dhozac $ --*- c++ -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include "vserver-internal.h" +#include "virtual.h" + +#if defined(VC_ENABLE_API_V21) +# include "syscall_rlimitstat-v21.hc" +#endif + +#if defined(VC_ENABLE_API_V21) + +int +vc_rlimit_stat(xid_t ctx, int resource, struct vc_rlimit_stat *stat) +{ + CALL_VC(CALL_VC_V21(vc_rlimit_stat, ctx, resource, stat)); +} + +#endif diff --git a/lib/syscall_setccaps-v13.hc b/lib/syscall_setccaps-v13.hc index a2b082a..59c2d5e 100644 --- a/lib/syscall_setccaps-v13.hc +++ b/lib/syscall_setccaps-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_setccaps-v13.hc,v 1.2 2004/03/24 01:07:11 ensc Exp $ --*- c -*-- +// $Id: syscall_setccaps-v13.hc 2367 2006-11-03 19:59:15Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -25,9 +25,9 @@ vc_set_ccaps_v13(xid_t xid, struct vc_ctx_caps const *caps) { struct vcmd_ctx_caps_v0 k_caps; - k_caps.bcaps = caps->bcaps & caps->bmask; + k_caps.bcaps = (caps->bcaps & caps->bmask) | ~caps->bmask; k_caps.ccaps = caps->ccaps; k_caps.cmask = caps->cmask; - return vserver(VCMD_set_ccaps, CTX_USER2KERNEL(xid), &k_caps); + return vserver(VCMD_set_ccaps_v0, CTX_USER2KERNEL(xid), &k_caps); } diff --git a/lib/syscall_setccaps-v21.hc b/lib/syscall_setccaps-v21.hc new file mode 100644 index 0000000..1e67ae1 --- /dev/null +++ b/lib/syscall_setccaps-v21.hc @@ -0,0 +1,39 @@ +// $Id: syscall_setccaps-v21.hc 2372 2006-11-05 17:48:24Z dhozac $ --*- c -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +static inline ALWAYSINLINE int +vc_set_ccaps_v21(xid_t xid, struct vc_ctx_caps const *caps) +{ + struct vcmd_ctx_caps_v1 k_ccaps; + struct vcmd_bcaps k_bcaps; + int ret; + + k_bcaps.bcaps = caps->bcaps; + k_bcaps.bmask = caps->bmask; + k_ccaps.ccaps = caps->ccaps; + k_ccaps.cmask = caps->cmask; + + ret = vserver(VCMD_set_ccaps, CTX_USER2KERNEL(xid), &k_ccaps); + if (ret) + return ret; + return vserver(VCMD_set_bcaps, CTX_USER2KERNEL(xid), &k_bcaps); +} diff --git a/lib/syscall_setccaps.c b/lib/syscall_setccaps.c index 354c6fa..fe38374 100644 --- a/lib/syscall_setccaps.c +++ b/lib/syscall_setccaps.c @@ -1,4 +1,4 @@ -// $Id: syscall_setccaps.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*-- +// $Id: syscall_setccaps.c 2367 2006-11-03 19:59:15Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,14 +21,22 @@ #endif #include "vserver.h" +#include "virtual.h" + +#if defined(VC_ENABLE_API_V13) && defined(VC_ENABLE_API_V21) +# define VC_MULTIVERSION_SYSCALL 1 +#endif #include "vserver-internal.h" -#include "linuxvirtual.h" #if defined(VC_ENABLE_API_V13) # include "syscall_setccaps-v13.hc" #endif -#if defined(VC_ENABLE_API_V13) +#if defined(VC_ENABLE_API_V21) +# include "syscall_setccaps-v21.hc" +#endif + +#if defined(VC_ENABLE_API_V13) || defined(VC_ENABLE_API_V21) int vc_set_ccaps(xid_t xid, struct vc_ctx_caps const *caps) { @@ -37,6 +45,7 @@ vc_set_ccaps(xid_t xid, struct vc_ctx_caps const *caps) return -1; } - CALL_VC(CALL_VC_V13A(vc_set_ccaps, xid, caps)); + CALL_VC(CALL_VC_V21(vc_set_ccaps, xid, caps), + CALL_VC_V13A(vc_set_ccaps, xid, caps)); } #endif diff --git a/lib/syscall_setcflags-v13.hc b/lib/syscall_setcflags-v13.hc index 45385cf..55811c2 100644 --- a/lib/syscall_setcflags-v13.hc +++ b/lib/syscall_setcflags-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_setcflags-v13.hc,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*-- +// $Id: syscall_setcflags-v13.hc 1449 2004-04-14 23:19:51Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_setcflags.c b/lib/syscall_setcflags.c index 05b3b14..966bea3 100644 --- a/lib/syscall_setcflags.c +++ b/lib/syscall_setcflags.c @@ -1,4 +1,4 @@ -// $Id: syscall_setcflags.c,v 1.1 2004/04/14 23:19:51 ensc Exp $ --*- c -*-- +// $Id: syscall_setcflags.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_V13) # include "syscall_setcflags-v13.hc" diff --git a/lib/syscall_setdlimit-v13.hc b/lib/syscall_setdlimit-v13.hc index f4df0b7..1b1966d 100644 --- a/lib/syscall_setdlimit-v13.hc +++ b/lib/syscall_setdlimit-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_setdlimit-v13.hc,v 1.2 2005/03/02 01:29:44 ensc Exp $ --*- c -*-- +// $Id: syscall_setdlimit-v13.hc 1881 2005-03-02 01:29:44Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/lib/syscall_setdlimit.c b/lib/syscall_setdlimit.c index a08bc7b..ec8b972 100644 --- a/lib/syscall_setdlimit.c +++ b/lib/syscall_setdlimit.c @@ -1,4 +1,4 @@ -// $Id: syscall_setdlimit.c,v 1.2 2005/03/02 01:27:54 ensc Exp $ --*- c++ -*-- +// $Id: syscall_setdlimit.c 2207 2005-10-29 10:31:42Z ensc $ --*- c++ -*-- // Copyright (C) 2005 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #include "vserver-internal.h" diff --git a/lib/syscall_setiattr-fscompat.hc b/lib/syscall_setiattr-fscompat.hc index 422ec80..cf155ce 100644 --- a/lib/syscall_setiattr-fscompat.hc +++ b/lib/syscall_setiattr-fscompat.hc @@ -1,4 +1,4 @@ -// $Id: syscall_setiattr-fscompat.hc,v 1.3 2005/07/15 18:06:27 ensc Exp $ --*- c -*-- +// $Id: syscall_setiattr-fscompat.hc 2151 2005-07-15 18:06:27Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_setiattr-v13.hc b/lib/syscall_setiattr-v13.hc index 06ec42a..b992bab 100644 --- a/lib/syscall_setiattr-v13.hc +++ b/lib/syscall_setiattr-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_setiattr-v13.hc,v 1.7 2004/03/12 02:56:46 ensc Exp $ --*- c -*-- +// $Id: syscall_setiattr-v13.hc 1216 2004-03-12 02:57:01Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_setiattr.c b/lib/syscall_setiattr.c index 6fb32dd..1ba2fda 100644 --- a/lib/syscall_setiattr.c +++ b/lib/syscall_setiattr.c @@ -1,4 +1,4 @@ -// $Id: syscall_setiattr.c,v 1.2 2004/02/19 22:22:43 ensc Exp $ --*- c++ -*-- +// $Id: syscall_setiattr.c 2207 2005-10-29 10:31:42Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_FSCOMPAT) && defined(VC_ENABLE_API_V13) # define VC_MULTIVERSION_SYSCALL 1 diff --git a/lib/syscall_setnamespace-v13.hc b/lib/syscall_setnamespace-v13.hc index 1646eac..8613fc0 100644 --- a/lib/syscall_setnamespace-v13.hc +++ b/lib/syscall_setnamespace-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_setnamespace-v13.hc,v 1.1 2004/02/27 04:39:09 ensc Exp $ --*- c -*-- +// $Id: syscall_setnamespace-v13.hc 2415 2006-12-08 13:24:49Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -23,7 +23,9 @@ #include "vserver.h" static inline ALWAYSINLINE int -vc_set_namespace_v13(int UNUSED tmp) +vc_set_namespace_v13(xid_t xid, uint_least64_t mask) { - return vserver(VCMD_set_namespace, 0, 0); + if ((mask & (CLONE_NEWNS|CLONE_FS)) == 0) + return 0; + return vserver(VCMD_set_space_v0, CTX_USER2KERNEL(xid), 0); } diff --git a/lib/syscall_setnamespace-v21.hc b/lib/syscall_setnamespace-v21.hc new file mode 100644 index 0000000..7f3e81c --- /dev/null +++ b/lib/syscall_setnamespace-v21.hc @@ -0,0 +1,31 @@ +// $Id: syscall_setnamespace-v21.hc 2415 2006-12-08 13:24:49Z dhozac $ --*- c -*-- + +// Copyright (C) 2004 Enrico Scholz +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" + +static inline ALWAYSINLINE int +vc_set_namespace_spaces(xid_t xid, uint_least64_t mask) +{ + struct vcmd_space_mask data = { .mask = mask }; + return vserver(VCMD_set_space, CTX_USER2KERNEL(xid), &data); +} diff --git a/lib/syscall_setnamespace.c b/lib/syscall_setnamespace.c index fef66d0..b3d0d65 100644 --- a/lib/syscall_setnamespace.c +++ b/lib/syscall_setnamespace.c @@ -1,4 +1,4 @@ -// $Id: syscall_setnamespace.c,v 1.1 2004/02/27 04:39:09 ensc Exp $ --*- c++ -*-- +// $Id: syscall_setnamespace.c 2415 2006-12-08 13:24:49Z dhozac $ --*- c++ -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,16 +21,26 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" +#if defined(VC_ENABLE_API_V13) && defined(VC_ENABLE_API_V21) +# define VC_MULTIVERSION_SYSCALL 1 +#endif #include "vserver-internal.h" #ifdef VC_ENABLE_API_V13 # include "syscall_setnamespace-v13.hc" #endif +#ifdef VC_ENABLE_API_V21 +# include "syscall_setnamespace-v21.hc" +#endif + +#if defined(VC_ENABLE_API_V13) || defined(VC_ENABLE_API_V21) int -vc_set_namespace() +vc_set_namespace(xid_t xid, uint_least64_t mask) { - CALL_VC(CALL_VC_V13(vc_set_namespace,0)); + CALL_VC(CALL_VC_SPACES(vc_set_namespace, xid, mask), + CALL_VC_V13 (vc_set_namespace, xid, mask)); } +#endif diff --git a/lib/syscall_setncaps-net.hc b/lib/syscall_setncaps-net.hc index 12a4af8..812e244 100644 --- a/lib/syscall_setncaps-net.hc +++ b/lib/syscall_setncaps-net.hc @@ -1,4 +1,4 @@ -// $Id: syscall_setncaps-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_setncaps-net.hc 1501 2004-04-22 20:46:44Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_setncaps.c b/lib/syscall_setncaps.c index c3ac419..a1bf0a6 100644 --- a/lib/syscall_setncaps.c +++ b/lib/syscall_setncaps.c @@ -1,4 +1,4 @@ -// $Id: syscall_setncaps.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_setncaps.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_NET) # include "syscall_setncaps-net.hc" diff --git a/lib/syscall_setnflags-net.hc b/lib/syscall_setnflags-net.hc index e327c5e..1e63989 100644 --- a/lib/syscall_setnflags-net.hc +++ b/lib/syscall_setnflags-net.hc @@ -1,4 +1,4 @@ -// $Id: syscall_setnflags-net.hc,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_setnflags-net.hc 1501 2004-04-22 20:46:44Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_setnflags.c b/lib/syscall_setnflags.c index cdceb51..0dbcb7e 100644 --- a/lib/syscall_setnflags.c +++ b/lib/syscall_setnflags.c @@ -1,4 +1,4 @@ -// $Id: syscall_setnflags.c,v 1.1 2004/04/22 20:46:43 ensc Exp $ --*- c -*-- +// $Id: syscall_setnflags.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_NET) # include "syscall_setnflags-net.hc" diff --git a/lib/syscall_setsched-v13.hc b/lib/syscall_setsched-v13.hc index af08a5d..13fe198 100644 --- a/lib/syscall_setsched-v13.hc +++ b/lib/syscall_setsched-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_setsched-v13.hc,v 1.2 2005/08/21 22:07:28 mlhuang Exp $ --*- c -*-- +// $Id: syscall_setsched-v13.hc,v 1.5 2007/06/28 15:20:17 dhozac Exp $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -23,25 +23,6 @@ #include "vserver.h" #include -#define VCGET(MASK,VAL) ((data->set_mask & (MASK)) ? (VAL) : SCHED_KEEP); - -static inline ALWAYSINLINE int -vc_set_sched_v13obs(xid_t xid, struct vc_set_sched const *data) -{ -#warning vc_set_sched_v13() uses an obsolete interface; remove it in the final version - struct vcmd_set_sched_v2 k_data; - - - k_data.cpu_mask = 0; - k_data.fill_rate = VCGET(VC_VXSM_FILL_RATE, data->fill_rate); - k_data.interval = VCGET(VC_VXSM_INTERVAL, data->interval); - k_data.tokens = VCGET(VC_VXSM_TOKENS, data->tokens); - k_data.tokens_min = VCGET(VC_VXSM_TOKENS_MIN, data->tokens_min); - k_data.tokens_max = VCGET(VC_VXSM_TOKENS_MAX, data->tokens_max); - - return vserver(VCMD_set_sched_v2, CTX_USER2KERNEL(xid), &k_data); -} - #define X(ATTR) ENSC_SAME_STRUCT_IDX(k_data, *data, ATTR) static inline ALWAYSINLINE int @@ -49,21 +30,13 @@ vc_set_sched_v13b(xid_t xid, struct vc_set_sched const *data) { struct vcmd_set_sched_v3 k_data; - // This expression will be evaluated at compile-time - if (sizeof(struct vcmd_set_sched_v3)==sizeof(struct vc_set_sched) && - X(set_mask) && X(fill_rate) && X(interval) && X(tokens) && - X(tokens_min) && X(tokens_max) && X(priority_bias)) - return vserver(VCMD_set_sched, CTX_USER2KERNEL(xid), - const_cast(struct vc_set_sched *)(data)); - else { - k_data.set_mask = data->set_mask; - k_data.fill_rate = data->fill_rate; - k_data.interval = data->interval; - k_data.tokens = data->tokens; - k_data.tokens_min = data->tokens_min; - k_data.tokens_max = data->tokens_max; - k_data.priority_bias = data->priority_bias; + k_data.set_mask = data->set_mask & VC_VXSM_V3_MASK; + k_data.fill_rate = data->fill_rate; + k_data.interval = data->interval; + k_data.tokens = data->tokens; + k_data.tokens_min = data->tokens_min; + k_data.tokens_max = data->tokens_max; + k_data.priority_bias = data->priority_bias; - return vserver(VCMD_set_sched, CTX_USER2KERNEL(xid), &k_data); - } + return vserver(VCMD_set_sched_v3, CTX_USER2KERNEL(xid), &k_data); } diff --git a/lib/syscall_setsched-v13obs.hc b/lib/syscall_setsched-v13obs.hc new file mode 100644 index 0000000..98baac0 --- /dev/null +++ b/lib/syscall_setsched-v13obs.hc @@ -0,0 +1,43 @@ +// $Id: syscall_setsched-v13obs.hc 2271 2006-01-22 18:18:28Z ensc $ --*- c -*-- + +// Copyright (C) 2004 Enrico Scholz +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include + +#define VCGET(MASK,VAL) ((data->set_mask & (MASK)) ? (VAL) : SCHED_KEEP); + +static inline ALWAYSINLINE int +vc_set_sched_v13obs(xid_t xid, struct vc_set_sched const *data) +{ +#warning vc_set_sched_v13() uses an obsolete interface; remove it in the final version + struct vcmd_set_sched_v2 k_data; + + + k_data.cpu_mask = 0; + k_data.fill_rate = VCGET(VC_VXSM_FILL_RATE, data->fill_rate); + k_data.interval = VCGET(VC_VXSM_INTERVAL, data->interval); + k_data.tokens = VCGET(VC_VXSM_TOKENS, data->tokens); + k_data.tokens_min = VCGET(VC_VXSM_TOKENS_MIN, data->tokens_min); + k_data.tokens_max = VCGET(VC_VXSM_TOKENS_MAX, data->tokens_max); + + return vserver(VCMD_set_sched_v2, CTX_USER2KERNEL(xid), &k_data); +} diff --git a/lib/syscall_setsched-v21.hc b/lib/syscall_setsched-v21.hc new file mode 100644 index 0000000..b38ba02 --- /dev/null +++ b/lib/syscall_setsched-v21.hc @@ -0,0 +1,57 @@ +// $Id: syscall_setsched-v21.hc 2454 2007-01-17 09:56:23Z dhozac $ --*- c -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" + +static inline ALWAYSINLINE int +vc_set_sched_v21(xid_t xid, struct vc_set_sched const *data) +{ + struct vcmd_set_sched_v4 k_data; + int ret; + + k_data.fill_rate = data->fill_rate; + k_data.interval = data->interval; + k_data.tokens = data->tokens; + k_data.tokens_min = data->tokens_min; + k_data.tokens_max = data->tokens_max; + k_data.prio_bias = data->priority_bias; + k_data.cpu_id = data->cpu_id; + k_data.bucket_id = data->bucket_id; + + if ((data->set_mask & VC_VXSM_FILL_RATE2 && data->fill_rate != data->fill_rate2) || + (data->set_mask & VC_VXSM_INTERVAL2 && data->interval != data->interval2)) { + /* first set the regular values */ + k_data.set_mask = data->set_mask & ~(VC_VXSM_FILL_RATE2|VC_VXSM_INTERVAL2|VC_VXSM_FORCE); + ret = vserver(VCMD_set_sched_v4, CTX_USER2KERNEL(xid), &k_data); + if (ret) + return ret; + /* then set idle time */ + k_data.set_mask = data->set_mask & (VC_VXSM_FILL_RATE2|VC_VXSM_INTERVAL2|VC_VXSM_FORCE|VC_VXSM_IDLE_TIME|VC_VXSM_CPU_ID|VC_VXSM_BUCKET_ID); + k_data.fill_rate = data->fill_rate2; + k_data.interval = data->interval2; + return vserver(VCMD_set_sched_v4, CTX_USER2KERNEL(xid), &k_data); + } + else { + k_data.set_mask = data->set_mask; + return vserver(VCMD_set_sched_v4, CTX_USER2KERNEL(xid), &k_data); + } +} diff --git a/lib/syscall_setsched.c b/lib/syscall_setsched.c index cea63bc..3936afa 100644 --- a/lib/syscall_setsched.c +++ b/lib/syscall_setsched.c @@ -1,4 +1,4 @@ -// $Id: syscall_setsched.c,v 1.2 2005/08/21 22:07:35 mlhuang Exp $ --*- c -*-- +// $Id: syscall_setsched.c,v 1.5 2007/06/28 15:20:17 dhozac Exp $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #define VC_MULTIVERSION_SYSCALL 1 #include "vserver-internal.h" @@ -30,9 +30,18 @@ # include "syscall_setsched-v13.hc" #endif +#ifdef VC_ENABLE_API_V13OBS +# include "syscall_setsched-v13obs.hc" +#endif + +#ifdef VC_ENABLE_API_V21 +# include "syscall_setsched-v21.hc" +#endif + int vc_set_sched(xid_t xid, struct vc_set_sched const *data) { - CALL_VC(CALL_VC_V13B (vc_set_sched,xid,data), + CALL_VC(CALL_VC_V21 (vc_set_sched,xid,data), + CALL_VC_V13B (vc_set_sched,xid,data), CALL_VC_V13OBS(vc_set_sched,xid,data)); } diff --git a/lib/syscall_setvhiname-olduts.hc b/lib/syscall_setvhiname-olduts.hc index 6b67011..31d2970 100644 --- a/lib/syscall_setvhiname-olduts.hc +++ b/lib/syscall_setvhiname-olduts.hc @@ -1,4 +1,4 @@ -// $Id: syscall_setvhiname-olduts.hc,v 1.1 2004/02/02 18:32:53 ensc Exp $ --*- c -*-- +// $Id: syscall_setvhiname-olduts.hc 733 2004-02-02 18:32:53Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_setvhiname-v13.hc b/lib/syscall_setvhiname-v13.hc index b493e54..3e6f6f1 100644 --- a/lib/syscall_setvhiname-v13.hc +++ b/lib/syscall_setvhiname-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_setvhiname-v13.hc,v 1.4 2005/07/03 17:49:57 ensc Exp $ --*- c -*-- +// $Id: syscall_setvhiname-v13.hc 2133 2005-07-03 17:49:57Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/syscall_setvhiname.c b/lib/syscall_setvhiname.c index a5ab1f7..eaeb84c 100644 --- a/lib/syscall_setvhiname.c +++ b/lib/syscall_setvhiname.c @@ -1,4 +1,4 @@ -// $Id: syscall_setvhiname.c,v 1.1 2004/02/02 18:32:53 ensc Exp $ --*- c -*-- +// $Id: syscall_setvhiname.c 2207 2005-10-29 10:31:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -21,7 +21,7 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_OLDUTS) && defined(VC_ENABLE_API_V13) # define VC_MULTIVERSION_SYSCALL 1 diff --git a/lib/syscall_virtstat-v21.hc b/lib/syscall_virtstat-v21.hc new file mode 100644 index 0000000..a4d0362 --- /dev/null +++ b/lib/syscall_virtstat-v21.hc @@ -0,0 +1,45 @@ +// $Id: syscall_virtstat-v21.hc 2380 2006-11-15 20:14:00Z dhozac $ --*- c++ -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +static inline ALWAYSINLINE int +vc_virt_stat_v21(xid_t ctx, struct vc_virt_stat *stat) +{ + int ret; + struct vcmd_virt_stat_v0 param; + + ret = vserver(VCMD_virt_stat, CTX_USER2KERNEL(ctx), ¶m); + if (ret) + return ret; + +#define G(ATTR) stat->ATTR = param.ATTR + G(offset); + G(uptime); + G(nr_threads); + G(nr_running); + G(nr_uninterruptible); + G(nr_onhold); + G(nr_forks); + G(load[0]); + G(load[1]); + G(load[2]); + return 0; +} diff --git a/lib/syscall_virtstat.c b/lib/syscall_virtstat.c new file mode 100644 index 0000000..727b508 --- /dev/null +++ b/lib/syscall_virtstat.c @@ -0,0 +1,39 @@ +// $Id: syscall_virtstat.c 2380 2006-11-15 20:14:00Z dhozac $ --*- c++ -*-- + +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include "vserver-internal.h" +#include "virtual.h" + +#if defined(VC_ENABLE_API_V21) +# include "syscall_virtstat-v21.hc" +#endif + +#if defined(VC_ENABLE_API_V21) + +int +vc_virt_stat(xid_t ctx, struct vc_virt_stat *stat) +{ + CALL_VC(CALL_VC_V21(vc_virt_stat, ctx, stat)); +} + +#endif diff --git a/lib/syscall_waitexit-v13.hc b/lib/syscall_waitexit-v13.hc index f772c6b..6da85ba 100644 --- a/lib/syscall_waitexit-v13.hc +++ b/lib/syscall_waitexit-v13.hc @@ -1,4 +1,4 @@ -// $Id: syscall_waitexit-v13.hc,v 1.1 2005/05/05 09:17:25 ensc Exp $ --*- c++ -*-- +// $Id: syscall_waitexit-v13.hc 2317 2006-09-15 21:18:21Z dhozac $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // @@ -23,7 +23,7 @@ static inline ALWAYSINLINE int vc_wait_exit_v13b(xid_t ctx) { - struct vcmd_wait_exit_v0 param = { .a = 0, .b = 0 }; + struct vcmd_wait_exit_v0 param = { .reboot_cmd = 0, .exit_code = 0 }; return vserver(VCMD_wait_exit, CTX_USER2KERNEL(ctx), ¶m); } diff --git a/lib/syscall_waitexit.c b/lib/syscall_waitexit.c index e23df1b..cf666a0 100644 --- a/lib/syscall_waitexit.c +++ b/lib/syscall_waitexit.c @@ -1,4 +1,4 @@ -// $Id: syscall_waitexit.c,v 1.1 2005/05/05 09:17:25 ensc Exp $ --*- c++ -*-- +// $Id: syscall_waitexit.c 2207 2005-10-29 10:31:42Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // @@ -22,7 +22,7 @@ #include "vserver.h" #include "vserver-internal.h" -#include "linuxvirtual.h" +#include "virtual.h" #if defined(VC_ENABLE_API_V13) # include "syscall_waitexit-v13.hc" diff --git a/lib/testsuite/Makefile-files b/lib/testsuite/Makefile-files index ee8b213..5eee70f 100644 --- a/lib/testsuite/Makefile-files +++ b/lib/testsuite/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.9 2005/04/28 17:54:57 ensc Exp $ --*- makefile -*-- +## $Id: Makefile-files 2060 2005-04-28 17:54:57Z ensc $ --*- makefile -*-- ## Copyright (C) 2004 Enrico Scholz ## diff --git a/lib/testsuite/cflags.c b/lib/testsuite/cflags.c index 9e5dcc0..d2370ed 100644 --- a/lib/testsuite/cflags.c +++ b/lib/testsuite/cflags.c @@ -1,4 +1,4 @@ -// $Id: cflags.c,v 1.6 2005/03/02 01:24:25 ensc Exp $ --*- c -*-- +// $Id: cflags.c 1879 2005-03-02 01:24:25Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/testsuite/fmt.c b/lib/testsuite/fmt.c index bb800bd..d749508 100644 --- a/lib/testsuite/fmt.c +++ b/lib/testsuite/fmt.c @@ -1,4 +1,4 @@ -// $Id: fmt.c,v 1.4 2004/04/28 18:07:41 ensc Exp $ --*- c -*-- +// $Id: fmt.c 2185 2005-10-25 16:23:45Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -28,11 +28,14 @@ #define TEST(VAL, EXP) { \ char buf[512]; \ size_t l; \ - memset(buf, '\23', sizeof buf); \ + memset(buf+1, '\23', sizeof(buf)-2); \ + buf[0] = buf[sizeof(EXP)] = '\42'; \ l = FUNC(buf+1, VAL); \ assert(l==sizeof(EXP)-1); \ assert(memcmp(buf+1, EXP, l)==0); \ - assert(buf[l+1]=='\23'); \ + assert(buf[0] =='\42'); \ + assert(buf[l+1]=='\42'); \ + assert(buf[l+2]=='\23'); \ } int main() diff --git a/lib/testsuite/parselimit.c b/lib/testsuite/parselimit.c index 399f84d..e25e80e 100644 --- a/lib/testsuite/parselimit.c +++ b/lib/testsuite/parselimit.c @@ -1,4 +1,4 @@ -// $Id: parselimit.c,v 1.2 2004/04/28 18:07:41 ensc Exp $ --*- c -*-- +// $Id: parselimit.c 1521 2004-04-28 18:07:41Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/testsuite/personality.c b/lib/testsuite/personality.c index aa84772..ff33518 100644 --- a/lib/testsuite/personality.c +++ b/lib/testsuite/personality.c @@ -1,4 +1,4 @@ -// $Id: personality.c,v 1.1 2005/04/28 17:54:57 ensc Exp $ --*- c -*-- +// $Id: personality.c 2060 2005-04-28 17:54:57Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/lib/utils-legacy.h b/lib/utils-legacy.h index 79bf768..d8faff0 100644 --- a/lib/utils-legacy.h +++ b/lib/utils-legacy.h @@ -1,4 +1,4 @@ -// $Id: utils-legacy.h,v 1.1 2003/10/16 14:02:54 ensc Exp $ --*- c++ -*-- +// $Id: utils-legacy.h 177 2003-10-16 14:02:54Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib/val2text-t2v-uint32.c b/lib/val2text-t2v-uint32.c index e83a702..d89d584 100644 --- a/lib/val2text-t2v-uint32.c +++ b/lib/val2text-t2v-uint32.c @@ -1,4 +1,4 @@ -// $Id: val2text-t2v-uint32.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*-- +// $Id: val2text-t2v-uint32.c 1132 2004-03-07 19:35:59Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/val2text-t2v-uint64.c b/lib/val2text-t2v-uint64.c index 47d9e1b..9362126 100644 --- a/lib/val2text-t2v-uint64.c +++ b/lib/val2text-t2v-uint64.c @@ -1,4 +1,4 @@ -// $Id: val2text-t2v-uint64.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*-- +// $Id: val2text-t2v-uint64.c 1132 2004-03-07 19:35:59Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/val2text-v2t-uint32.c b/lib/val2text-v2t-uint32.c index b9ec84f..e04ee52 100644 --- a/lib/val2text-v2t-uint32.c +++ b/lib/val2text-v2t-uint32.c @@ -1,4 +1,4 @@ -// $Id: val2text-v2t-uint32.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*-- +// $Id: val2text-v2t-uint32.c 1132 2004-03-07 19:35:59Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/val2text-v2t-uint64.c b/lib/val2text-v2t-uint64.c index 42c7bba..f4ab530 100644 --- a/lib/val2text-v2t-uint64.c +++ b/lib/val2text-v2t-uint64.c @@ -1,4 +1,4 @@ -// $Id: val2text-v2t-uint64.c,v 1.1 2004/03/07 19:35:59 ensc Exp $ --*- c -*-- +// $Id: val2text-v2t-uint64.c 1132 2004-03-07 19:35:59Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/val2text.hc b/lib/val2text.hc index 0b4c299..d723d6b 100644 --- a/lib/val2text.hc +++ b/lib/val2text.hc @@ -1,4 +1,4 @@ -// $Id: val2text.hc,v 1.3 2004/05/08 01:27:48 ensc Exp $ --*- c -*-- +// $Id: val2text.hc 1544 2004-05-08 01:27:48Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib/virtual.h b/lib/virtual.h index f52484c..49cbd75 100644 --- a/lib/virtual.h +++ b/lib/virtual.h @@ -1,4 +1,4 @@ -// $Id: virtual.h,v 1.24 2005/07/03 17:51:00 ensc Exp $ --*- c -*-- +// $Id: virtual.h 2427 2006-12-12 01:39:54Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -19,20 +19,19 @@ #ifndef H_UTIL_VSERVER_LIB_VIRTUAL_H #define H_UTIL_VSERVER_LIB_VIRTUAL_H -#include #include #include #include -#include #include #include #include -#include +#include +#include #include #include #include +#include -#include #include #endif // H_UTIL_VSERVER_LIB_VIRTUAL_H diff --git a/lib/vserver-internal.h b/lib/vserver-internal.h index ceb5d46..5c13bc5 100644 --- a/lib/vserver-internal.h +++ b/lib/vserver-internal.h @@ -1,4 +1,4 @@ -// $Id: vserver-internal.h,v 1.25 2005/05/02 21:42:37 ensc Exp $ --*- c++ -*-- +// $Id: vserver-internal.h 2446 2007-01-09 13:22:11Z dhozac $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // @@ -41,12 +41,16 @@ inline static ALWAYSINLINE void vc_noop0() {} #define CALL_VC_NOOP vc_noop0() #define CALL_VC_GENERAL(ID, SUFFIX, FUNC, ...) \ VC_PREFIX; VC_SELECT(ID) return FUNC ## _ ## SUFFIX(__VA_ARGS__); VC_SUFFIX +#define CALL_VC_GENERAL_CONFIG(BIT, SUFFIX, FUNC, ...) \ + VC_PREFIX; VC_CBIT(BIT) return FUNC ## _ ## SUFFIX(__VA_ARGS__); VC_SUFFIX #ifdef VC_MULTIVERSION_SYSCALL # define VC_SELECT(ID) if (ver>=(ID)) +# define VC_CBIT(BIT) if ((conf&BIT) == BIT) # define CALL_VC(...) \ do { \ int ver = utilvserver_checkCompatVersion(); \ + uint_least32_t conf = utilvserver_checkCompatConfig(); \ if (ver==-1) return -1; \ VC_SUFFIX, __VA_ARGS__, VC_PREFIX; \ errno = ENOSYS; \ @@ -54,6 +58,7 @@ inline static ALWAYSINLINE void vc_noop0() {} } while (0) #else # define VC_SELECT(ID) if (1) +# define VC_CBIT(BIT) if (1) # define CALL_VC(...) \ do { \ if (1) {} VC_SUFFIX, __VA_ARGS__, VC_PREFIX; \ @@ -97,12 +102,23 @@ inline static ALWAYSINLINE void vc_noop0() {} # define CALL_VC_V13B(F,...) CALL_VC_NOOP #endif -#ifdef VC_ENABLE_API_V13 +#ifdef VC_ENABLE_API_V13OBS # define CALL_VC_V13OBS(F,...) CALL_VC_GENERAL(0x00010011, v13obs, F, __VA_ARGS__) #else # define CALL_VC_V13OBS(F,...) CALL_VC_NOOP #endif +#ifdef VC_ENABLE_API_V21 +# define CALL_VC_V21(F,...) CALL_VC_GENERAL(0x00020100, v21, F, __VA_ARGS__) +#else +# define CALL_VC_V21(F,...) CALL_VC_NOOP +#endif + +#ifdef VC_ENABLE_API_V21 +# define CALL_VC_SPACES(F,...) CALL_VC_GENERAL_CONFIG(VC_VCI_SPACES, spaces, F, __VA_ARGS__) +#else +# define CALL_VC_SPACES(F,...) CALL_VC_NOOP +#endif #ifdef VC_ENABLE_API_NET # define CALL_VC_NET(F,...) CALL_VC_GENERAL(0x00010016, net, F, __VA_ARGS__) @@ -190,16 +206,18 @@ inline static ALWAYSINLINE void vc_noop0() {} #endif #if 1 -# define NETTYPE_USER2KERNEL(X) ((X)==vcNET_IPV4 ? 0 : \ - (X)==vcNET_IPV6 ? 1 : \ - (X)==vcNET_IPV4R ? 2 : \ - (X)==vcNET_IPV6R ? 3 : \ +# define NETTYPE_USER2KERNEL(X) ((X)==vcNET_IPV4 ? NXA_TYPE_IPV4 : \ + (X)==vcNET_IPV6 ? NXA_TYPE_IPV6 : \ + (X)==vcNET_IPV4B ? (NXA_TYPE_IPV4 | NXA_MOD_BCAST) : \ + (X)==vcNET_IPV6B ? (NXA_TYPE_IPV6 | NXA_MOD_BCAST) : \ + (X)==vcNET_ANY ? NXA_TYPE_ANY : \ + (X)) +# define NETTYPE_KERNEL2USER(X) ((X)==NXA_TYPE_IPV4 ? vcNET_IPV4 : \ + (X)==NXA_TYPE_IPV6 ? vcNET_IPV6 : \ + (X)==(NXA_TYPE_IPV4|NXA_MOD_BCAST) ? vcNET_IPV4B : \ + (X)==(NXA_TYPE_IPV6|NXA_MOD_BCAST) ? vcNET_IPV6B : \ + (X)==NXA_TYPE_ANY ? vcNET_ANY : \ (X)) -# define NETTYPE_KERNEL2USER(X) ((X)==0 ? vcNET_IPV4 ? : \ - (X)==1 ? vcNET_IPV6 ? : \ - (X)==2 ? vcNET_IPV4R ? : \ - (X)==3 ? vcNET_IPV6R ? : \ - (vc_net_nx_type)(X)) #else # define NETTYPE_USER2KERNEL(X) (X) # define NETTYPE_KERNEL2USER(X) (X) @@ -235,10 +253,6 @@ inline static ALWAYSINLINE void vc_noop0() {} inline static UNUSED ALWAYSINLINE int vserver(uint32_t cmd, uint32_t id, void *data) { -#if defined __dietlibc__ - extern long int syscall (long int __sysno, ...); -#endif - return syscall(__NR_vserver, cmd, id, data); } #else diff --git a/lib/vserver.h b/lib/vserver.h index f082f0d..20f25db 100644 --- a/lib/vserver.h +++ b/lib/vserver.h @@ -1,4 +1,4 @@ -/* $Id: vserver.h,v 1.66 2005/07/15 16:27:02 ensc Exp $ +/* $Id: vserver.h 2501 2007-02-20 17:33:35Z dhozac $ * Copyright (C) 2003 Enrico Scholz * @@ -28,6 +28,7 @@ #include #include #include +#include #ifndef IS_DOXYGEN #if defined(__GNUC__) @@ -175,12 +176,19 @@ #define VC_VXF_VIRT_UPTIME 0x00020000ull #define VC_VXF_VIRT_CPU 0x00040000ull #define VC_VXF_VIRT_LOAD 0x00080000ull +#define VC_VXF_VIRT_TIME 0x00100000ull #define VC_VXF_HIDE_MOUNT 0x01000000ull #define VC_VXF_HIDE_NETIF 0x02000000ull +#define VC_VXF_HIDE_VINFO 0x04000000ull #define VC_VXF_STATE_SETUP (1ULL<<32) #define VC_VXF_STATE_INIT (1ULL<<33) +#define VC_VXF_STATE_ADMIN (1ULL<<34) + +#define VC_VXF_SC_HELPER (1ULL<<36) +#define VC_VXF_REBOOT_KILL (1ULL<<37) +#define VC_VXF_PERSISTENT (1ULL<<38) #define VC_VXF_FORK_RSS (1ULL<<48) #define VC_VXF_PROLIFIC (1ULL<<49) @@ -200,14 +208,82 @@ #define VC_VXC_BINARY_MOUNT 0x00040000ull #define VC_VXC_QUOTA_CTL 0x00100000ull +#define VC_VXC_ADMIN_MAPPER 0x00200000ull +#define VC_VXC_ADMIN_CLOOP 0x00400000ull + + +// the scheduler flags +#define VC_VXSM_FILL_RATE 0x0001 +#define VC_VXSM_INTERVAL 0x0002 +#define VC_VXSM_FILL_RATE2 0x0004 +#define VC_VXSM_INTERVAL2 0x0008 +#define VC_VXSM_TOKENS 0x0010 +#define VC_VXSM_TOKENS_MIN 0x0020 +#define VC_VXSM_TOKENS_MAX 0x0040 +#define VC_VXSM_PRIO_BIAS 0x0100 +#define VC_VXSM_CPU_ID 0x1000 +#define VC_VXSM_BUCKET_ID 0x2000 + +#define VC_VXSM_IDLE_TIME 0x0200 +#define VC_VXSM_FORCE 0x0400 +#define VC_VXSM_MSEC 0x4000 + +#define VC_VXSM_V3_MASK 0x0173 + + +// the network flags +#define VC_NXF_INFO_LOCK 0x00000001ull +#define VC_NXF_INFO_PRIVATE 0x00000008ull + +#define VC_NXF_SINGLE_IP 0x00000100ull + +#define VC_NXF_HIDE_NETIF 0x02000000ull + +#define VC_NXF_STATE_SETUP (1ULL<<32) +#define VC_NXF_STATE_ADMIN (1ULL<<34) + +#define VC_NXF_SC_HELPER (1ULL<<36) +#define VC_NXF_PERSISTENT (1ULL<<38) + + +// the vserver specific limits +#define VC_VLIMIT_NSOCK 16 +#define VC_VLIMIT_OPENFD 17 +#define VC_VLIMIT_ANON 18 +#define VC_VLIMIT_SHMEM 19 +#define VC_VLIMIT_SEMARY 20 +#define VC_VLIMIT_NSEMS 21 +#define VC_VLIMIT_DENTRY 22 +#define VC_VLIMIT_MAPPED 23 + + +// the VCI bit values +#define VC_VCI_NO_DYNAMIC (1 << 0) +#define VC_VCI_SPACES (1 << 10) + + +// the device mapping flags +#define VC_DATTR_CREATE 0x00000001 +#define VC_DATTR_OPEN 0x00000002 + +#define VC_DATTR_REMAP 0x00000010 + + +// the process context migration flags +#define VC_VXM_SET_INIT 0x00000001 +#define VC_VXM_SET_REAPER 0x00000002 -#define VC_VXSM_FILL_RATE 0x0001 -#define VC_VXSM_INTERVAL 0x0002 -#define VC_VXSM_TOKENS 0x0010 -#define VC_VXSM_TOKENS_MIN 0x0020 -#define VC_VXSM_TOKENS_MAX 0x0040 -#define VC_VXSM_PRIO_BIAS 0x0100 +#ifndef CLONE_NEWNS +# define CLONE_NEWNS 0x00020000 +#endif +#ifndef CLONE_NEWUTS +# define CLONE_NEWUTS 0x04000000 +#endif +#ifndef CLONE_NEWIPC +# define CLONE_NEWIPC 0x08000000 +#endif + #define VC_BAD_PERSONALITY ((uint_least32_t)(-1)) @@ -231,11 +307,6 @@ typedef an_unsigned_integer_type nid_t; extern "C" { #endif - struct vc_ip_mask_pair { - uint32_t ip; - uint32_t mask; - }; - /** \brief The generic vserver syscall * \ingroup syscalls * @@ -248,14 +319,20 @@ extern "C" { * \param data additional arguments; depends on \c cmd * \returns depends on \c cmd; usually, -1 stands for an error */ - int vc_syscall(uint32_t cmd, xid_t xid, void *data); + int vc_syscall(uint32_t cmd, xid_t xid, void *data); /** \brief Returns the version of the current kernel API. * \ingroup syscalls * \returns The versionnumber of the kernel API */ - int vc_get_version(); - + int vc_get_version(); + + /** \brief Returns the kernel configuration bits + * \ingroup syscalls + * \returns The kernel configuration bits + */ + int vc_get_vci(); + /** \brief Moves current process into a context * \ingroup syscalls * @@ -273,12 +350,17 @@ extern "C" { * will be set appropriately * * See http://vserver.13thfloor.at/Stuff/Logic.txt for details */ - xid_t vc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags); + xid_t vc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags); + + struct vc_ip_mask_pair { + uint32_t ip; + uint32_t mask; + }; /** \brief Sets the ipv4root information. * \ingroup syscalls * \pre \a nb < NB_IPV4ROOT && \a ips != 0 */ - int vc_set_ipv4root(uint32_t bcast, size_t nb, + int vc_set_ipv4root(uint32_t bcast, size_t nb, struct vc_ip_mask_pair const *ips) VC_ATTR_NONNULL((3)); /** \brief Returns the value of NB_IPV4ROOT. @@ -289,6 +371,18 @@ extern "C" { * running kernel. */ size_t vc_get_nb_ipv4root() VC_ATTR_CONST VC_ATTR_PURE; + /* process context */ + /** \brief Flags of process-contexts + */ + struct vc_ctx_flags { + /** \brief Mask of set context flags */ + uint_least64_t flagword; + /** \brief Mask of set and unset context flags when used by set + * operations, or modifiable flags when used by get + * operations */ + uint_least64_t mask; + }; + /** \brief Creates a context without starting it. * \ingroup syscalls * @@ -300,14 +394,102 @@ extern "C" { * * \returns the xid of the created context, or VC_NOCTX on errors. \c errno * will be set appropriately. */ - xid_t vc_ctx_create(xid_t xid); + xid_t vc_ctx_create(xid_t xid); /** \brief Moves the current process into the specified context. * \ingroup syscalls * - * \param xid The new context + * \param xid The new context + * \param flags The flags, see VC_VXM_* * \returns 0 on success, -1 on errors */ - int vc_ctx_migrate(xid_t xid); + int vc_ctx_migrate(xid_t xid, uint_least64_t flags); + + /** \brief Statistics about a context */ + struct vc_ctx_stat { + uint_least32_t usecnt; ///< number of uses + uint_least32_t tasks; ///< number of tasks + }; + + /** \brief Get some statistics about a context. + * \ingroup syscalls + * + * \param xid The context to get stats about + * \param stat Where to store the result + * + * \returns 0 on success, -1 on errors. */ + int vc_ctx_stat(xid_t xid, struct vc_ctx_stat /*@out@*/ *stat) VC_ATTR_NONNULL((2)); + + /** \brief Contains further statistics about a context. */ + struct vc_virt_stat { + uint_least64_t offset; + uint_least64_t uptime; + uint_least32_t nr_threads; + uint_least32_t nr_running; + uint_least32_t nr_uninterruptible; + uint_least32_t nr_onhold; + uint_least32_t nr_forks; + uint_least32_t load[3]; + }; + + /** \brief Get more statistics about a context. + * \ingroup syscalls + * + * \param xid The context to get stats about + * \param stat Where to store the result + * + * \returns 0 on success, -1 on errors. */ + int vc_virt_stat(xid_t xid, struct vc_virt_stat /*@out@*/ *stat) VC_ATTR_NONNULL((2)); + + /** \brief Sends a signal to a context/pid + * \ingroup syscalls + * + * Special values for \a pid are: + * - -1 which means every process in ctx except the init-process + * - 0 which means every process in ctx inclusive the init-process */ + int vc_ctx_kill(xid_t ctx, pid_t pid, int sig); + + int vc_get_cflags(xid_t xid, struct vc_ctx_flags /*@out@*/ *) VC_ATTR_NONNULL((2)); + int vc_set_cflags(xid_t xid, struct vc_ctx_flags /*@in@*/ const *) VC_ATTR_NONNULL((2)); + + /** \brief Capabilities of process-contexts */ + struct vc_ctx_caps { + /** \brief Mask of set common system capabilities */ + uint_least64_t bcaps; + /** \brief Mask of set and unset common system capabilities when used by + * set operations, or the modifiable capabilities when used by + * get operations */ + uint_least64_t bmask; + /** \brief Mask of set process context capabilities */ + uint_least64_t ccaps; + /** \brief Mask of set and unset process context capabilities when used + * by set operations, or the modifiable capabilities when used + * by get operations */ + uint_least64_t cmask; + }; + + int vc_get_ccaps(xid_t xid, struct vc_ctx_caps *); + int vc_set_ccaps(xid_t xid, struct vc_ctx_caps const *); + + struct vc_vx_info { + xid_t xid; + pid_t initpid; + }; + + int vc_get_vx_info(xid_t xid, struct vc_vx_info *info) VC_ATTR_NONNULL((2)); + + /** \brief Returns the context of the given process. + * \ingroup syscalls + * + * \param pid the process-id whose xid shall be determined; + * pid==0 means the current process. + * \returns the xid of process \c pid or -1 on errors + */ + xid_t vc_get_task_xid(pid_t pid); + + /** \brief Waits for the end of a context + * \ingroup syscalls + */ + int vc_wait_exit(xid_t xid); /* rlimit related functions */ @@ -322,6 +504,17 @@ extern "C" { * resource; it might be bytes, pages, seconds or litres of beer. */ typedef uint_least64_t vc_limit_t; + /** \brief Masks describing the supported limits. */ + struct vc_rlimit_mask { + uint_least32_t min; ///< masks the resources supporting a minimum limit + uint_least32_t soft; ///< masks the resources supporting a soft limit + uint_least32_t hard; ///< masks the resources supporting a hard limit + }; + + /** \brief Returns the limits supported by the kernel */ + int vc_get_rlimit_mask(xid_t xid, + struct vc_rlimit_mask /*@out@*/ *lim) VC_ATTR_NONNULL((2)); + /** \brief The limits of a resources. * * This is a triple consisting of a minimum, soft and hardlimit. */ @@ -331,13 +524,6 @@ extern "C" { vc_limit_t hard; ///< the absolute hardlimit of a resource }; - /** \brief Masks describing the supported limits. */ - struct vc_rlimit_mask { - uint_least32_t min; ///< masks the resources supporting a minimum limit - uint_least32_t soft; ///< masks the resources supporting a soft limit - uint_least32_t hard; ///< masks the resources supporting a hard limit - }; - /** \brief Returns the limits of \a resource. * \ingroup syscalls * @@ -346,7 +532,7 @@ extern "C" { * \param lim The result which will be filled with the limits * * \returns 0 on success, and -1 on errors. */ - int vc_get_rlimit(xid_t xid, int resource, + int vc_get_rlimit(xid_t xid, int resource, struct vc_rlimit /*@out@*/ *lim) VC_ATTR_NONNULL((3)); /** \brief Sets the limits of \a resource. * \ingroup syscalls @@ -356,10 +542,36 @@ extern "C" { * \param lim The new limits * * \returns 0 on success, and -1 on errors. */ - int vc_set_rlimit(xid_t xid, int resource, + int vc_set_rlimit(xid_t xid, int resource, struct vc_rlimit const /*@in@*/ *lim) VC_ATTR_NONNULL((3)); - int vc_get_rlimit_mask(xid_t xid, - struct vc_rlimit_mask *lim) VC_ATTR_NONNULL((2)); + + /** \brief Statistics for a resource limit. */ + struct vc_rlimit_stat { + uint_least32_t hits; ///< number of hits on the limit + vc_limit_t value; ///< current value + vc_limit_t minimum; ///< minimum value observed + vc_limit_t maximum; ///< maximum value observed + }; + + /** \brief Returns the current stats of \a resource. + * \ingroup syscalls + * + * \param xid The id of the context + * \param resource The resource which will be queried + * \param stat The result which will be filled with the stats + * + * \returns 0 on success, and -1 on errors. */ + int vc_rlimit_stat(xid_t xid, int resource, + struct vc_rlimit_stat /*@out@*/ *stat) VC_ATTR_NONNULL((3)); + + /** \brief Resets the minimum and maximum observed values of all resources. + * \ingroup syscalls + * + * \param xid The id of the context + * + * \returns 0 on success, and -1 on errors. */ + int vc_reset_minmax(xid_t xid); + /** \brief Parses a string describing a limit * \ingroup helper * @@ -379,18 +591,10 @@ extern "C" { * * \pre \a str!=0 && \a res!=0 */ - bool vc_parseLimit(char const /*@in@*/ *str, vc_limit_t /*@out@*/ *res) VC_ATTR_NONNULL((1,2)); - - - /** \brief Sends a signal to a context/pid - * \ingroup syscalls - * - * Special values for \a pid are: - * - -1 which means every process in ctx except the init-process - * - 0 which means every process in ctx inclusive the init-process */ - int vc_ctx_kill(xid_t ctx, pid_t pid, int sig); + bool vc_parseLimit(char const /*@in@*/ *str, vc_limit_t /*@out@*/ *res) VC_ATTR_NONNULL((1,2)); + /* network context */ struct vc_nx_info { nid_t nid; }; @@ -398,13 +602,20 @@ extern "C" { nid_t vc_get_task_nid(pid_t pid); int vc_get_nx_info(nid_t nid, struct vc_nx_info *) VC_ATTR_NONNULL((2)); - typedef enum { vcNET_IPV4, vcNET_IPV6, vcNET_IPV4R, vcNET_IPV6R } vc_net_nx_type; - + typedef enum { vcNET_IPV4=1, vcNET_IPV6=2, + vcNET_IPV4B=0x101, vcNET_IPV6B=0x102, + vcNET_ANY=~0 } vc_net_nx_type; + struct vc_net_nx { vc_net_nx_type type; size_t count; - uint32_t ip; - uint32_t mask; + uint32_t ip[4]; + uint32_t mask[4]; + }; + + struct vc_net_flags { + uint_least64_t flagword; + uint_least64_t mask; }; nid_t vc_net_create(nid_t nid); @@ -413,15 +624,9 @@ extern "C" { int vc_net_add(nid_t nid, struct vc_net_nx const *info); int vc_net_remove(nid_t nid, struct vc_net_nx const *info); - struct vc_net_flags { - uint_least64_t flagword; - uint_least64_t mask; - }; - int vc_get_nflags(nid_t, struct vc_net_flags *); int vc_set_nflags(nid_t, struct vc_net_flags const *); - struct vc_net_caps { uint_least64_t ncaps; uint_least64_t cmask; @@ -431,7 +636,7 @@ extern "C" { int vc_set_ncaps(nid_t, struct vc_net_caps const *); - + /* iattr related functions */ int vc_set_iattr(char const *filename, xid_t xid, uint_least32_t flags, uint_least32_t mask) VC_ATTR_NONNULL((1)); @@ -465,23 +670,24 @@ extern "C" { int vc_get_iattr(char const *filename, xid_t * /*@null@*/ xid, uint_least32_t * /*@null@*/ flags, uint_least32_t * /*@null@*/ mask) VC_ATTR_NONNULL((1)); - - struct vc_vx_info { - xid_t xid; - pid_t initpid; - }; - /** \brief Returns the context of the given process. - * \ingroup syscalls - * - * \param pid the process-id whose xid shall be determined; - * pid==0 means the current process. - * \returns the xid of process \c pid or -1 on errors - */ - xid_t vc_get_task_xid(pid_t pid); - int vc_get_vx_info(xid_t xid, struct vc_vx_info *info) VC_ATTR_NONNULL((2)); + /** \brief Returns the context of \c filename + * \ingroup syscalls + * + * This function calls vc_get_iattr() with appropriate arguments to + * determine the context of \c filename. In error-case or when no context + * is assigned, \c VC_NOCTX will be returned. To differ between both cases, + * \c errno must be examined. + * + * \b WARNING: this function can modify \c errno although no error happened. + * + * \param filename The file to check + * \returns The assigned context, or VC_NOCTX when an error occured or no + * such assignment exists. \c errno will be 0 in the latter case */ + xid_t vc_getfilecontext(char const *filename) VC_ATTR_NONNULL((1)); + /* vhi related functions */ typedef enum { vcVHI_CONTEXT, vcVHI_SYSNAME, vcVHI_NODENAME, vcVHI_RELEASE, vcVHI_VERSION, vcVHI_MACHINE, vcVHI_DOMAINNAME } vc_uts_type; @@ -491,41 +697,72 @@ extern "C" { int vc_get_vhi_name(xid_t xid, vc_uts_type type, char *val, size_t len) VC_ATTR_NONNULL((3)); - /** Returns true iff \a xid is a dynamic xid */ - bool vc_is_dynamic_xid(xid_t xid); - - int vc_enter_namespace(xid_t xid); - int vc_set_namespace(); + /* namespace related functions */ + int vc_enter_namespace(xid_t xid, uint_least64_t mask); + int vc_set_namespace(xid_t xid, uint_least64_t mask); int vc_cleanup_namespace(); + uint_least64_t vc_get_space_mask(); + + /* disk limit related things */ + struct vc_ctx_dlimit { + uint_least32_t space_used; + uint_least32_t space_total; + uint_least32_t inodes_used; + uint_least32_t inodes_total; + uint_least32_t reserved; + }; - /** \brief Flags of process-contexts - */ - struct vc_ctx_flags { - /** \brief Mask of set context flags */ - uint_least64_t flagword; - /** \brief Mask of set and unset context flags when used by set - * operations, or modifiable flags when used by get - * operations */ - uint_least64_t mask; + + /** Add a disk limit to a file system. */ + int vc_add_dlimit(char const *filename, xid_t xid, + uint_least32_t flags) VC_ATTR_NONNULL((1)); + /** Remove a disk limit from a file system. */ + int vc_rem_dlimit(char const *filename, xid_t xid, + uint_least32_t flags) VC_ATTR_NONNULL((1)); + + /** Set a disk limit. */ + int vc_set_dlimit(char const *filename, xid_t xid, + uint_least32_t flags, + struct vc_ctx_dlimit const *limits) VC_ATTR_NONNULL((1,4)); + /** Get a disk limit. */ + int vc_get_dlimit(char const *filename, xid_t xid, + uint_least32_t flags, + struct vc_ctx_dlimit *limits) VC_ATTR_NONNULL((1)); + + /* scheduler related syscalls */ + struct vc_set_sched { + uint_least32_t set_mask; + int_least32_t fill_rate; + int_least32_t interval; + int_least32_t fill_rate2; + int_least32_t interval2; + int_least32_t tokens; + int_least32_t tokens_min; + int_least32_t tokens_max; + int_least32_t priority_bias; + int_least32_t cpu_id; + int_least32_t bucket_id; }; - /** \brief Capabilities of process-contexts */ - struct vc_ctx_caps { - /** \brief Mask of set common system capabilities */ - uint_least64_t bcaps; - /** \brief Mask of set and unset common system capabilities when used by - * set operations, or the modifiable capabilities when used by - * get operations */ - uint_least64_t bmask; - /** \brief Mask of set process context capabilities */ - uint_least64_t ccaps; - /** \brief Mask of set and unset process context capabilities when used - * by set operations, or the modifiable capabilities when used - * by get operations */ - uint_least64_t cmask; + int vc_set_sched(xid_t xid, struct vc_set_sched const *) VC_ATTR_NONNULL((2)); + + struct vc_sched_info { + int_least32_t cpu_id; + int_least32_t bucket_id; + uint_least64_t user_msec; + uint_least64_t sys_msec; + uint_least64_t hold_msec; + uint_least32_t token_usec; + int_least32_t vavavoom; }; + int vc_sched_info(xid_t xid, struct vc_sched_info *info) VC_ATTR_NONNULL((2)); + + /* misc. syscalls */ + int vc_set_mapping(xid_t xid, const char *device, const char *target, uint32_t flags); + + /** \brief Information about parsing errors * \ingroup helper */ @@ -533,12 +770,6 @@ extern "C" { char const *ptr; ///< Pointer to the first character of an erroneous string size_t len; ///< Length of the erroneous string }; - - int vc_get_cflags(xid_t xid, struct vc_ctx_flags *) VC_ATTR_NONNULL((2)); - int vc_set_cflags(xid_t xid, struct vc_ctx_flags const *) VC_ATTR_NONNULL((2)); - - int vc_get_ccaps(xid_t xid, struct vc_ctx_caps *); - int vc_set_ccaps(xid_t xid, struct vc_ctx_caps const *); /** \brief Converts a single string into bcapability * \ingroup helper @@ -654,70 +885,13 @@ extern "C" { uint_least32_t vc_str2personalitytype(char const /*@in@*/*, size_t len) VC_ATTR_NONNULL((1)); - - /** \brief Returns the context of \c filename - * \ingroup syscalls - * - * This function calls vc_get_iattr() with appropriate arguments to - * determine the context of \c filename. In error-case or when no context - * is assigned, \c VC_NOCTX will be returned. To differ between both cases, - * \c errno must be examined. - * - * \b WARNING: this function can modify \c errno although no error happened. - * - * \param filename The file to check - * \returns The assigned context, or VC_NOCTX when an error occured or no - * such assignment exists. \c errno will be 0 in the latter case */ - xid_t vc_getfilecontext(char const *filename) VC_ATTR_NONNULL((1)); - - - struct vc_set_sched { - uint_least32_t set_mask; - int_least32_t fill_rate; - int_least32_t interval; - int_least32_t tokens; - int_least32_t tokens_min; - int_least32_t tokens_max; - int_least32_t priority_bias; - }; - - int vc_set_sched(xid_t xid, struct vc_set_sched const *); - - - struct vc_ctx_dlimit { - uint_least32_t space_used; - uint_least32_t space_total; - uint_least32_t inodes_used; - uint_least32_t inodes_total; - uint_least32_t reserved; - }; - - /** Add a disk limit to a file system. */ - int vc_add_dlimit(char const *filename, xid_t xid, - uint_least32_t flags) VC_ATTR_NONNULL((1)); - /** Remove a disk limit from a file system. */ - int vc_rem_dlimit(char const *filename, xid_t xid, - uint_least32_t flags) VC_ATTR_NONNULL((1)); - - /** Set a disk limit. */ - int vc_set_dlimit(char const *filename, xid_t xid, - uint_least32_t flags, - struct vc_ctx_dlimit const *limits) VC_ATTR_NONNULL((1,4)); - /** Get a disk limit. */ - int vc_get_dlimit(char const *filename, xid_t xid, - uint_least32_t flags, - struct vc_ctx_dlimit *limits) VC_ATTR_NONNULL((1)); - - /** \brief Waits for the end of a context - * \ingroup syscalls - */ - int vc_wait_exit(xid_t xid); typedef enum { vcFEATURE_VKILL, vcFEATURE_IATTR, vcFEATURE_RLIMIT, vcFEATURE_COMPAT, vcFEATURE_MIGRATE, vcFEATURE_NAMESPACE, vcFEATURE_SCHED, vcFEATURE_VINFO, vcFEATURE_VHI, - vcFEATURE_VSHELPER0, vcFEATURE_VSHELPER, vcFEATURE_VWAIT } + vcFEATURE_VSHELPER0, vcFEATURE_VSHELPER, vcFEATURE_VWAIT, + vcFEATURE_VNET, vcFEATURE_VSTAT } vcFeatureSet; bool vc_isSupported(vcFeatureSet) VC_ATTR_CONST; @@ -730,6 +904,10 @@ extern "C" { vcXidType vc_getXIDType(xid_t xid) VC_ATTR_CONST; + /** Returns true iff \a xid is a dynamic xid */ + bool vc_is_dynamic_xid(xid_t xid); + + /* The management part */ #define VC_LIMIT_VSERVER_NAME_LEN 1024 @@ -742,6 +920,8 @@ extern "C" { /** Maps an xid given at '--xid' options to an xid_t */ xid_t vc_xidopt2xid(char const *, bool honor_static, char const **err_info); + /** Maps a nid given at '--nid' options to a nid_t */ + nid_t vc_nidopt2nid(char const *, bool honor_static, char const **err_info); vcCfgStyle vc_getVserverCfgStyle(char const *id); @@ -780,6 +960,9 @@ extern "C" { freed by the caller. */ char * vc_getVserverByCtx(xid_t ctx, /*@null@*/vcCfgStyle *style, /*@null@*/char const *revdir); + + int vc_compareVserverById(char const *lhs, vcCfgStyle lhs_style, + char const *rhs, vcCfgStyle rhs_style); #define vcSKEL_INTERFACES 1u #define vcSKEL_PKGMGMT 2u diff --git a/lib/xidopt2xid.c b/lib/xidopt2xid.c index 5724ba9..f87bc1c 100644 --- a/lib/xidopt2xid.c +++ b/lib/xidopt2xid.c @@ -1,4 +1,4 @@ -// $Id: xidopt2xid.c,v 1.2 2004/08/19 13:58:40 ensc Exp $ --*- c -*-- +// $Id: xidopt2xid.c 1656 2004-08-19 13:58:40Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/Makefile-files b/lib_internal/Makefile-files index e6bb64b..ee43f19 100644 --- a/lib_internal/Makefile-files +++ b/lib_internal/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.18 2005/07/04 22:35:47 ensc Exp $ -*- makefile -*- +## $Id: Makefile-files 2255 2006-01-22 11:23:47Z ensc $ -*- makefile -*- ## Copyright (C) 2003,2004 Enrico Scholz ## @@ -96,7 +96,9 @@ lib_internal_libinternal_common_SRCS = \ lib_internal/unify-isiunlinkable.c \ lib_internal/util-canonify.c \ lib_internal/util-exitlikeprocess.c \ + lib_internal/util-isnumber.hc \ lib_internal/util-isnumber.c \ + lib_internal/util-isnumberunsigned.c \ lib_internal/util-lockfile.c \ lib_internal/util-safechdir.c \ $(command_SRCS) \ diff --git a/lib_internal/command-appendparameter.c b/lib_internal/command-appendparameter.c index 9ee1ec8..15c3de2 100644 --- a/lib_internal/command-appendparameter.c +++ b/lib_internal/command-appendparameter.c @@ -1,4 +1,4 @@ -// $Id: command-appendparameter.c,v 1.2 2004/08/19 14:09:02 ensc Exp $ --*- c -*-- +// $Id: command-appendparameter.c 1665 2004-08-19 14:09:34Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/command-exec.c b/lib_internal/command-exec.c index 9669f67..727faaf 100644 --- a/lib_internal/command-exec.c +++ b/lib_internal/command-exec.c @@ -1,4 +1,4 @@ -// $Id: command-exec.c,v 1.3 2005/03/22 15:25:54 ensc Exp $ --*- c -*-- +// $Id: command-exec.c 1957 2005-03-22 15:25:54Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/command-free.c b/lib_internal/command-free.c index 70f16d0..88459c9 100644 --- a/lib_internal/command-free.c +++ b/lib_internal/command-free.c @@ -1,4 +1,4 @@ -// $Id: command-free.c,v 1.2 2004/08/19 14:09:22 ensc Exp $ --*- c -*-- +// $Id: command-free.c 1665 2004-08-19 14:09:34Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/command-init.c b/lib_internal/command-init.c index 8b2265d..4ef8644 100644 --- a/lib_internal/command-init.c +++ b/lib_internal/command-init.c @@ -1,4 +1,4 @@ -// $Id: command-init.c,v 1.2 2004/08/19 14:09:34 ensc Exp $ --*- c -*-- +// $Id: command-init.c 1665 2004-08-19 14:09:34Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/command-reset.c b/lib_internal/command-reset.c index ec6f8ad..72c8bfe 100644 --- a/lib_internal/command-reset.c +++ b/lib_internal/command-reset.c @@ -1,4 +1,4 @@ -// $Id: command-reset.c,v 1.1 2004/06/27 14:38:06 ensc Exp $ --*- c -*-- +// $Id: command-reset.c 1605 2004-06-27 14:40:17Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/command-setparams.c b/lib_internal/command-setparams.c index 732c975..79de5ac 100644 --- a/lib_internal/command-setparams.c +++ b/lib_internal/command-setparams.c @@ -1,4 +1,4 @@ -// $Id: command-setparams.c,v 1.1 2004/08/19 14:08:17 ensc Exp $ --*- c -*-- +// $Id: command-setparams.c 1664 2004-08-19 14:08:17Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/command-wait.c b/lib_internal/command-wait.c index 44cf611..5158203 100644 --- a/lib_internal/command-wait.c +++ b/lib_internal/command-wait.c @@ -1,4 +1,4 @@ -// $Id: command-wait.c,v 1.2 2004/07/02 23:44:33 ensc Exp $ --*- c -*-- +// $Id: command-wait.c 1618 2004-07-02 23:44:33Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/command.h b/lib_internal/command.h index ea0c9ed..124802d 100644 --- a/lib_internal/command.h +++ b/lib_internal/command.h @@ -1,4 +1,4 @@ -// $Id: command.h,v 1.2 2004/08/19 14:09:49 ensc Exp $ --*- c -*-- +// $Id: command.h 1666 2004-08-19 14:09:49Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/coreassert.h b/lib_internal/coreassert.h index d52ac9b..0b079ff 100644 --- a/lib_internal/coreassert.h +++ b/lib_internal/coreassert.h @@ -1,4 +1,4 @@ -// $Id: coreassert.h,v 1.2 2005/03/22 14:59:46 ensc Exp $ --*- c -*-- +// $Id: coreassert.h 1954 2005-03-22 14:59:46Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/errinfo-writeerrno.c b/lib_internal/errinfo-writeerrno.c index 37d6bca..1a8c16a 100644 --- a/lib_internal/errinfo-writeerrno.c +++ b/lib_internal/errinfo-writeerrno.c @@ -1,4 +1,4 @@ -// $Id: errinfo-writeerrno.c,v 1.1 2004/07/02 23:34:51 ensc Exp $ --*- c -*-- +// $Id: errinfo-writeerrno.c 1616 2004-07-02 23:34:52Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/errinfo.h b/lib_internal/errinfo.h index 651bbba..4ed87b6 100644 --- a/lib_internal/errinfo.h +++ b/lib_internal/errinfo.h @@ -1,4 +1,4 @@ -// $Id: errinfo.h,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*-- +// $Id: errinfo.h 1616 2004-07-02 23:34:52Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/filecfg-iteratemultiline.c b/lib_internal/filecfg-iteratemultiline.c index 84cc8a8..d454b0e 100644 --- a/lib_internal/filecfg-iteratemultiline.c +++ b/lib_internal/filecfg-iteratemultiline.c @@ -1,4 +1,4 @@ -// $Id: filecfg-iteratemultiline.c,v 1.2 2004/12/07 11:13:29 ensc Exp $ --*- c -*-- +// $Id: filecfg-iteratemultiline.c 1763 2004-12-07 11:13:29Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/filecfg-readentryflag.c b/lib_internal/filecfg-readentryflag.c index e73edd5..ea131dc 100644 --- a/lib_internal/filecfg-readentryflag.c +++ b/lib_internal/filecfg-readentryflag.c @@ -1,4 +1,4 @@ -// $Id: filecfg-readentryflag.c,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*-- +// $Id: filecfg-readentryflag.c 1616 2004-07-02 23:34:52Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/filecfg-readentrystr.c b/lib_internal/filecfg-readentrystr.c index f79b876..ee1909b 100644 --- a/lib_internal/filecfg-readentrystr.c +++ b/lib_internal/filecfg-readentrystr.c @@ -1,4 +1,4 @@ -// $Id: filecfg-readentrystr.c,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*-- +// $Id: filecfg-readentrystr.c 1616 2004-07-02 23:34:52Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/filecfg.h b/lib_internal/filecfg.h index ee86a6f..db09ca2 100644 --- a/lib_internal/filecfg.h +++ b/lib_internal/filecfg.h @@ -1,4 +1,4 @@ -// $Id: filecfg.h,v 1.2 2004/10/19 21:05:15 ensc Exp $ --*- c -*-- +// $Id: filecfg.h 1736 2004-10-19 21:05:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/jail.h b/lib_internal/jail.h index 5c6f582..a08dacb 100644 --- a/lib_internal/jail.h +++ b/lib_internal/jail.h @@ -1,4 +1,4 @@ -// $Id: jail.h,v 1.2 2004/03/15 21:37:06 ensc Exp $ --*- c -*-- +// $Id: jail.h 1250 2004-03-15 21:37:06Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/jailintotempdir.c b/lib_internal/jailintotempdir.c index ef21118..fdb2b4e 100644 --- a/lib_internal/jailintotempdir.c +++ b/lib_internal/jailintotempdir.c @@ -1,4 +1,4 @@ -// $Id: jailintotempdir.c,v 1.2 2004/03/15 21:37:06 ensc Exp $ --*- c -*-- +// $Id: jailintotempdir.c 1250 2004-03-15 21:37:06Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/matchlist-appendfiles.c b/lib_internal/matchlist-appendfiles.c index 9e36a11..d0e20ee 100644 --- a/lib_internal/matchlist-appendfiles.c +++ b/lib_internal/matchlist-appendfiles.c @@ -1,4 +1,4 @@ -// $Id: matchlist-appendfiles.c,v 1.2 2004/04/06 08:42:46 ensc Exp $ --*- c -*-- +// $Id: matchlist-appendfiles.c 1423 2004-04-06 08:43:20Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/matchlist-compare.c b/lib_internal/matchlist-compare.c index 516af60..d15e82a 100644 --- a/lib_internal/matchlist-compare.c +++ b/lib_internal/matchlist-compare.c @@ -1,4 +1,4 @@ -// $Id: matchlist-compare.c,v 1.2 2004/04/06 08:43:02 ensc Exp $ --*- c -*-- +// $Id: matchlist-compare.c 1423 2004-04-06 08:43:20Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/matchlist-destroy.c b/lib_internal/matchlist-destroy.c index 5187f8d..57ca5f4 100644 --- a/lib_internal/matchlist-destroy.c +++ b/lib_internal/matchlist-destroy.c @@ -1,4 +1,4 @@ -// $Id: matchlist-destroy.c,v 1.2 2005/03/18 00:18:38 ensc Exp $ --*- c -*-- +// $Id: matchlist-destroy.c 1911 2005-03-18 00:18:38Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/matchlist-init.c b/lib_internal/matchlist-init.c index 44f96e3..e9b0116 100644 --- a/lib_internal/matchlist-init.c +++ b/lib_internal/matchlist-init.c @@ -1,4 +1,4 @@ -// $Id: matchlist-init.c,v 1.1 2004/02/17 02:33:20 ensc Exp $ --*- c -*-- +// $Id: matchlist-init.c 910 2004-02-17 02:33:20Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/matchlist-initbyvserver.c b/lib_internal/matchlist-initbyvserver.c index dc08d9c..d050714 100644 --- a/lib_internal/matchlist-initbyvserver.c +++ b/lib_internal/matchlist-initbyvserver.c @@ -1,4 +1,4 @@ -// $Id: matchlist-initbyvserver.c,v 1.3 2005/03/18 00:20:02 ensc Exp $ --*- c -*-- +// $Id: matchlist-initbyvserver.c 1912 2005-03-18 00:20:02Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/matchlist-initmanually.c b/lib_internal/matchlist-initmanually.c index 199a96e..71ec191 100644 --- a/lib_internal/matchlist-initmanually.c +++ b/lib_internal/matchlist-initmanually.c @@ -1,4 +1,4 @@ -// $Id: matchlist-initmanually.c,v 1.5 2005/03/22 14:59:46 ensc Exp $ --*- c -*-- +// $Id: matchlist-initmanually.c 1954 2005-03-22 14:59:46Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/matchlist-initrefserverlist.c b/lib_internal/matchlist-initrefserverlist.c index 90058c6..4310292 100644 --- a/lib_internal/matchlist-initrefserverlist.c +++ b/lib_internal/matchlist-initrefserverlist.c @@ -1,4 +1,4 @@ -// $Id: matchlist-initrefserverlist.c,v 1.4 2005/03/23 02:05:23 ensc Exp $ --*- c -*-- +// $Id: matchlist-initrefserverlist.c 1962 2005-03-23 02:05:23Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/matchlist-printid.c b/lib_internal/matchlist-printid.c index 179b88e..42fe28b 100644 --- a/lib_internal/matchlist-printid.c +++ b/lib_internal/matchlist-printid.c @@ -1,4 +1,4 @@ -// $Id: matchlist-printid.c,v 1.2 2005/03/22 14:59:46 ensc Exp $ --*- c -*-- +// $Id: matchlist-printid.c 1954 2005-03-22 14:59:46Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/matchlist.h b/lib_internal/matchlist.h index 66cca26..ea01702 100644 --- a/lib_internal/matchlist.h +++ b/lib_internal/matchlist.h @@ -1,4 +1,4 @@ -// $Id: matchlist.h,v 1.5 2005/03/18 00:20:02 ensc Exp $ --*- c -*-- +// $Id: matchlist.h 1912 2005-03-18 00:20:02Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/matchvserverinfo-free.c b/lib_internal/matchvserverinfo-free.c index 1c05133..ddc7962 100644 --- a/lib_internal/matchvserverinfo-free.c +++ b/lib_internal/matchvserverinfo-free.c @@ -1,4 +1,4 @@ -// $Id: matchvserverinfo-free.c,v 1.1 2005/03/18 00:17:53 ensc Exp $ --*- c -*-- +// $Id: matchvserverinfo-free.c 1909 2005-03-18 00:17:53Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/lib_internal/matchvserverinfo-init.c b/lib_internal/matchvserverinfo-init.c index d874274..81b72b2 100644 --- a/lib_internal/matchvserverinfo-init.c +++ b/lib_internal/matchvserverinfo-init.c @@ -1,4 +1,4 @@ -// $Id: matchvserverinfo-init.c,v 1.2 2005/03/24 00:09:58 ensc Exp $ --*- c -*-- +// $Id: matchvserverinfo-init.c 1970 2005-03-24 00:09:58Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/lib_internal/pathinfo-append.c b/lib_internal/pathinfo-append.c index 24cee47..bef46e2 100644 --- a/lib_internal/pathinfo-append.c +++ b/lib_internal/pathinfo-append.c @@ -1,4 +1,4 @@ -// $Id: pathinfo-append.c,v 1.1 2004/02/17 02:33:20 ensc Exp $ --*- c -*-- +// $Id: pathinfo-append.c 910 2004-02-17 02:33:20Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/pathinfo-test.c b/lib_internal/pathinfo-test.c index 217f00f..37db555 100644 --- a/lib_internal/pathinfo-test.c +++ b/lib_internal/pathinfo-test.c @@ -1,4 +1,4 @@ -// $Id: pathinfo-test.c,v 1.1 2004/02/17 02:33:20 ensc Exp $ --*- c -*-- +// $Id: pathinfo-test.c 910 2004-02-17 02:33:20Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/pathinfo.h b/lib_internal/pathinfo.h index e9ba207..caba216 100644 --- a/lib_internal/pathinfo.h +++ b/lib_internal/pathinfo.h @@ -1,4 +1,4 @@ -// $Id: pathinfo.h,v 1.2 2004/07/02 23:44:53 ensc Exp $ --*- c -*-- +// $Id: pathinfo.h 2467 2007-01-21 18:26:45Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -23,6 +23,7 @@ #define ENSC_PI_DECLARE(VAR,VAL) PathInfo VAR={.d = VAL,.l = sizeof(VAL)-1} #define ENSC_PI_APPSZ(P1,P2) ((P1).l + sizeof("/") + (P2).l) +#define ENSC_PI_SETSTR(VAR,VAL) do { VAR.d = VAL; VAR.l = strlen(VAL); } while (0) typedef String PathInfo; diff --git a/lib_internal/string.h b/lib_internal/string.h index e4ece42..bb54c0b 100644 --- a/lib_internal/string.h +++ b/lib_internal/string.h @@ -1,4 +1,4 @@ -// $Id: string.h,v 1.3 2005/03/18 00:20:30 ensc Exp $ --*- c -*-- +// $Id: string.h 1914 2005-03-18 00:20:30Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/string.hc b/lib_internal/string.hc index 4ae6e7b..aa85fb0 100644 --- a/lib_internal/string.hc +++ b/lib_internal/string.hc @@ -1,4 +1,4 @@ -// $Id: string.hc,v 1.3 2005/03/18 00:20:42 ensc Exp $ --*- c -*-- +// $Id: string.hc 1915 2005-03-18 00:20:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/switchtowatchxid.c b/lib_internal/switchtowatchxid.c index b49305b..e237fc4 100644 --- a/lib_internal/switchtowatchxid.c +++ b/lib_internal/switchtowatchxid.c @@ -1,4 +1,4 @@ -// $Id: switchtowatchxid.c,v 1.4 2005/03/25 02:37:41 ensc Exp $ --*- c -*-- +// $Id: switchtowatchxid.c 2501 2007-02-20 17:33:35Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -35,7 +35,7 @@ switchToWatchXid(char const **errptr) if (vc_get_task_xid(0)==1) return true; if (vc_isSupported(vcFEATURE_MIGRATE)) { - if (vc_ctx_migrate(1)==-1) { + if (vc_ctx_migrate(1, 0)==-1) { if (errptr) *errptr = "vc_migrate_context()"; return false; } diff --git a/lib_internal/sys_clone.h b/lib_internal/sys_clone.h index e31b8da..59066e6 100644 --- a/lib_internal/sys_clone.h +++ b/lib_internal/sys_clone.h @@ -1,4 +1,4 @@ -// $Id: sys_clone.h,v 1.3 2005/04/28 18:01:37 ensc Exp $ --*- c -*-- +// $Id: sys_clone.h 2446 2007-01-09 13:22:11Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -19,33 +19,47 @@ #ifndef H_UTIL_VSERVER_SRC_SYS_CLONE_H #define H_UTIL_VSERVER_SRC_SYS_CLONE_H +#include #include "lib/syscall-wrap.h" -#define __NR_sys_clone __NR_clone +#define __NR__sys_clone __NR_clone -#ifndef CLONE_NEWNS -# define CLONE_NEWNS 0x00020000 -#endif +#ifndef ENSC_SYSCALL_TRADITIONAL +# include -#ifdef ENSC_SYSCALL_TRADITIONAL -#include +# if defined(__s390__) +inline static UNUSED ALWAYSINLINE +_syscall2(int, _sys_clone, void *, child_stack, int, flags) +# else +inline static UNUSED ALWAYSINLINE +_syscall2(int, _sys_clone, int, flags, void *, child_stack) +# endif +#endif inline static UNUSED ALWAYSINLINE -int sys_clone(int flags, void *stack) +int sys_clone(int flags, void *child_stack) { -#if defined __dietlibc__ - extern long int syscall (long int __sysno, ...); + int ret; +#ifdef __sparc__ + int parent = getpid(); #endif - - return syscall(__NR_sys_clone, flags, stack); -} -#else -#include -inline static UNUSED ALWAYSINLINE -_syscall2(int, sys_clone, int, flags, void *, child_stack) +#if defined(__s390__) && defined(ENSC_SYSCALL_TRADITIONAL) + ret = syscall(__NR__sys_clone, child_stack, flags); +#elif defined(__s390__) + ret = _sys_clone(child_stack, flags); +#elif defined(ENSC_SYSCALL_TRADITIONAL) + ret = syscall(__NR__sys_clone, flags, child_stack); +#else + ret = _sys_clone(flags, child_stack); +#endif +#ifdef __sparc__ + if (ret == parent) + ret = 0; #endif + return ret; +} -#undef __NR_sys_clone +#undef __NR__sys_clone #define ENSC_HAVE_SYSCLONE 1 diff --git a/lib_internal/sys_personality.h b/lib_internal/sys_personality.h index 8dd2ed2..c7bbe51 100644 --- a/lib_internal/sys_personality.h +++ b/lib_internal/sys_personality.h @@ -1,4 +1,4 @@ -// $Id: sys_personality.h,v 1.1 2005/04/28 18:01:16 ensc Exp $ --*- c -*-- +// $Id: sys_personality.h 2446 2007-01-09 13:22:11Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -28,10 +28,6 @@ inline static UNUSED ALWAYSINLINE int sys_personality(int pers) { -#if defined __dietlibc__ - extern long int syscall (long int __sysno, ...); -#endif - return syscall(__NR_sys_personality, pers); } #else diff --git a/lib_internal/testsuite/Makefile-files b/lib_internal/testsuite/Makefile-files index f9d0291..26296e2 100644 --- a/lib_internal/testsuite/Makefile-files +++ b/lib_internal/testsuite/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.6 2005/03/24 00:09:18 ensc Exp $ --*- makefile -*-- +## $Id: Makefile-files 2276 2006-01-22 18:24:22Z ensc $ --*- makefile -*-- ## Copyright (C) 2004 Enrico Scholz ## @@ -20,12 +20,21 @@ check_PROGRAMS += lib_internal/testsuite/command if ENSC_HAVE_C99_COMPILER check_PROGRAMS += lib_internal/testsuite/filecfg-ml \ lib_internal/testsuite/copy \ - lib_internal/testsuite/sigbus + lib_internal/testsuite/isnumber \ + lib_internal/testsuite/isnumber-gnu \ + lib_internal/testsuite/sigbus \ + lib_internal/testsuite/sigbus-gnu TESTS += lib_internal/testsuite/filecfg-ml \ lib_internal/testsuite/copy-check \ - lib_internal/testsuite/sigbus + lib_internal/testsuite/isnumber \ + lib_internal/testsuite/isnumber-gnu \ + lib_internal/testsuite/sigbus \ + lib_internal/testsuite/sigbus-gnu endif +DIETPROGS += lib_internal/testsuite/isnumber \ + lib_internal/testsuite/sigbus + EXTRA_DIST += lib_internal/testsuite/copy-check TESTS_ENVIRONMENT += libinternaltestsuitedir=$(top_builddir)/lib_internal/testsuite @@ -41,4 +50,11 @@ lib_internal_testsuite_filecfg_ml_LDADD = $(LIBINTERNAL_GLIBC) lib_internal_testsuite_copy_SOURCES = lib_internal/testsuite/copy.c lib_internal_testsuite_copy_LDADD = $(LIBINTERNAL_GLIBC) +lib_internal_testsuite_isnumber_SOURCES = lib_internal/testsuite/isnumber.c +lib_internal_testsuite_isnumber_LDADD = $(LIBINTERNAL) + +lib_internal_testsuite_isnumber_gnu_SOURCES = lib_internal/testsuite/isnumber.c +lib_internal_testsuite_isnumber_gnu_LDADD = $(LIBINTERNAL_GLIBC) + lib_internal_testsuite_sigbus_SOURCES = lib_internal/testsuite/sigbus.c +lib_internal_testsuite_sigbus_gnu_SOURCES = lib_internal/testsuite/sigbus.c diff --git a/lib_internal/testsuite/command.c b/lib_internal/testsuite/command.c index e15a6c2..7db946e 100644 --- a/lib_internal/testsuite/command.c +++ b/lib_internal/testsuite/command.c @@ -1,4 +1,4 @@ -// $Id: command.c,v 1.2 2004/08/19 14:10:06 ensc Exp $ --*- c -*-- +// $Id: command.c 1667 2004-08-19 14:10:06Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/testsuite/copy-check b/lib_internal/testsuite/copy-check index 229a2e8..7d316eb 100755 --- a/lib_internal/testsuite/copy-check +++ b/lib_internal/testsuite/copy-check @@ -1,5 +1,5 @@ #! /bin/bash -## $Id: copy-check,v 1.4 2005/03/25 02:38:13 ensc Exp $ +## $Id: copy-check 1989 2005-03-25 02:38:13Z ensc $ # Copyright (C) 2005 Enrico Scholz # diff --git a/lib_internal/testsuite/copy.c b/lib_internal/testsuite/copy.c index 36e3db5..96e5064 100644 --- a/lib_internal/testsuite/copy.c +++ b/lib_internal/testsuite/copy.c @@ -1,4 +1,4 @@ -// $Id: copy.c,v 1.1 2005/03/18 03:33:34 ensc Exp $ --*- c -*-- +// $Id: copy.c 1924 2005-03-18 03:33:34Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/lib_internal/testsuite/filecfg-ml.c b/lib_internal/testsuite/filecfg-ml.c index 968dd22..3fd6e34 100644 --- a/lib_internal/testsuite/filecfg-ml.c +++ b/lib_internal/testsuite/filecfg-ml.c @@ -1,4 +1,4 @@ -// $Id: filecfg-ml.c,v 1.2 2005/01/26 15:32:35 ensc Exp $ --*- c -*-- +// $Id: filecfg-ml.c 1796 2005-01-26 15:32:35Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/testsuite/isnumber.c b/lib_internal/testsuite/isnumber.c new file mode 100644 index 0000000..05026e9 --- /dev/null +++ b/lib_internal/testsuite/isnumber.c @@ -0,0 +1,80 @@ +// $Id: isnumber.c 2254 2006-01-22 11:19:47Z ensc $ --*- c -*-- + +// Copyright (C) 2006 Enrico Scholz +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +#define ENSC_TESTSUITE + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "lib_internal/util.h" +#include "lib_internal/coreassert.h" + +#define TEST_TMPL(FUNC, TYPE, STR, VAL, STRICT) \ + do { \ + TYPE exp = (TYPE)(VAL)!=(TYPE)BAD ? (VAL) : 0; \ + bool val = (TYPE)(VAL)==(TYPE)BAD ? false : true; \ + TYPE tmp; \ + bool rc = FUNC((STR), &tmp, (STRICT)); \ + char const * const UNUSED STR_FUNC = #FUNC; \ + char const * const UNUSED STR_VAL = #VAL; \ + char const * const UNUSED STR_STRICT = #STRICT; \ + assert(rc == val); \ + rc = FUNC((STR), 0, (STRICT)); \ + assert(val == rc); \ + if (val) assert(tmp == exp); \ + } while (0) + +#define TESTS(STR, VAL, STRICT) \ + TEST_TMPL(isNumber, signed long, STR, VAL, STRICT) + +#define TESTU(STR, VAL, STRICT) \ + TEST_TMPL(isNumberUnsigned, unsigned long, STR, VAL, STRICT) + +#define TEST(STR, VALS0, VALS1, VALU0, VALU1) \ + TESTS(STR, VALS0, true); \ + TESTS(STR, VALS1, false); \ + TESTU(STR, VALU0, true); \ + TESTU(STR, VALU1, false); + + +#define BAD 0xdeadbeaf + +int main() +{ + TEST( "0", 0, 0, 0, 0); + TEST( "1", 1, 1, 1, 1); + TEST("-1", -1, -1, BAD, BAD); + TEST( "1k", BAD, 1000, BAD, 1000); +//TEST("-1k", BAD, -1000, BAD, BAD); + TEST( "1K", BAD, 1024, BAD, 1024); +//TEST("-1K", BAD, -1024, BAD, BAD); + TEST( "1m", BAD, 1000000, BAD, 1000000); +//TEST("-1m", BAD, -1000000, BAD, BAD); + TEST( "1M", BAD, 1048576, BAD, 1048576); +//TEST("-1M", BAD, -1048576, BAD, BAD); + + TEST( "010", 8, 8, 8, 8); + TEST( "010k", BAD, 8000, BAD, 8000); + TEST("-010", -8, -8, BAD, BAD); +//TEST("-010k", BAD, 8000, BAD, BAD); + + TEST( "0x10", 16, 16, 16, 16); + TEST( "0x10k", BAD, 16000, BAD, 16000); + TEST("-0x10", -16, -16, BAD, BAD); +//TEST("-0x10k", BAD, -16000, BAD, BAD); +} diff --git a/lib_internal/testsuite/sigbus.c b/lib_internal/testsuite/sigbus.c index fea5ddc..c2bb570 100644 --- a/lib_internal/testsuite/sigbus.c +++ b/lib_internal/testsuite/sigbus.c @@ -1,4 +1,4 @@ -// $Id: sigbus.c,v 1.3 2005/03/24 12:42:56 ensc Exp $ --*- c -*-- +// $Id: sigbus.c 2484 2007-02-04 17:17:02Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // @@ -33,7 +33,8 @@ int wrapper_exit_code = 1; -#define TEST_BLOCKSIZE 0x10000 +#define TEST_BLOCKSIZE (sysconf(_SC_PAGESIZE)*2 + 0x10000) + static bool is_gremlin = false; static int sync_p[2]; @@ -81,13 +82,12 @@ int main() char f_name1[] = "/tmp/sigbus.XXXXXX"; int fd_src = mkstemp(f_name0); int fd_dst = mkstemp(f_name1); - char buf[TEST_BLOCKSIZE] = { [0] = '\0' }; + char buf[TEST_BLOCKSIZE]; struct stat st; bool res; - - fd_src = - - write(fd_src, buf, sizeof(buf)); + + memset(buf, 0, TEST_BLOCKSIZE); + write(fd_src, buf, TEST_BLOCKSIZE); close(fd_src); close(fd_dst); diff --git a/lib_internal/unify-copy.c b/lib_internal/unify-copy.c index a789915..81102e5 100644 --- a/lib_internal/unify-copy.c +++ b/lib_internal/unify-copy.c @@ -1,4 +1,4 @@ -// $Id: unify-copy.c,v 1.6 2005/03/24 12:42:16 ensc Exp $ --*- c -*-- +// $Id: unify-copy.c 2485 2007-02-04 17:18:27Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -83,6 +83,8 @@ static void copyMem(void *dst_v, void const *src_v, size_t len_v) { #if 1 + // Do not use memcpy because this would dirty pages consisting only of + // '\0' int *dst = dst_v; int const *src = src_v; size_t len = len_v / sizeof(int); @@ -119,9 +121,7 @@ copyMMap(int in_fd, int out_fd) bool volatile res = false; if (in_len==-1) return false; - if (in_len>0 && - (lseek(out_fd, in_len-1, SEEK_SET)==-1 || - write(out_fd, "\0", 1)!=1)) // create sparse file + if (in_len>0 && ftruncate(out_fd, in_len)==-1) // create sparse file return false; bus_error = 0; @@ -164,7 +164,7 @@ copyReg(char const *src, struct stat const *src_stat, char const *dst) { int in_fd = open(src, O_RDONLY|O_NOCTTY|O_NONBLOCK|O_NOFOLLOW|O_LARGEFILE); - int out_fd = in_fd==-1 ? -1 : open(dst, O_RDWR|O_CREAT|O_EXCL, 0200); + int out_fd = in_fd==-1 ? -1 : open(dst, O_RDWR|O_CREAT|O_EXCL|O_NOCTTY, 0200); bool res = false; if (in_fd==-1 || out_fd==-1 || diff --git a/lib_internal/unify-deunify.c b/lib_internal/unify-deunify.c index 3d03249..96b76a6 100644 --- a/lib_internal/unify-deunify.c +++ b/lib_internal/unify-deunify.c @@ -1,4 +1,4 @@ -// $Id: unify-deunify.c,v 1.2 2004/02/18 04:48:24 ensc Exp $ --*- c -*-- +// $Id: unify-deunify.c 942 2004-02-18 04:48:24Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/unify-isiunlinkable.c b/lib_internal/unify-isiunlinkable.c index f66fc59..b221e61 100644 --- a/lib_internal/unify-isiunlinkable.c +++ b/lib_internal/unify-isiunlinkable.c @@ -1,4 +1,4 @@ -// $Id: unify-isiunlinkable.c,v 1.2 2005/03/18 00:22:06 ensc Exp $ --*- c -*-- +// $Id: unify-isiunlinkable.c 1917 2005-03-18 00:22:06Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // diff --git a/lib_internal/unify-settime.c b/lib_internal/unify-settime.c index 21ccc10..de5d87f 100644 --- a/lib_internal/unify-settime.c +++ b/lib_internal/unify-settime.c @@ -1,4 +1,4 @@ -// $Id: unify-settime.c,v 1.2 2004/06/27 13:03:58 ensc Exp $ --*- c -*-- +// $Id: unify-settime.c 1595 2004-06-27 13:03:58Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/unify-unify.c b/lib_internal/unify-unify.c index e17b2fb..55e84f0 100644 --- a/lib_internal/unify-unify.c +++ b/lib_internal/unify-unify.c @@ -1,4 +1,4 @@ -// $Id: unify-unify.c,v 1.9 2005/03/24 00:12:23 ensc Exp $ --*- c -*-- +// $Id: unify-unify.c 1973 2005-03-24 00:12:23Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/unify.h b/lib_internal/unify.h index 77ac6bd..8384fab 100644 --- a/lib_internal/unify.h +++ b/lib_internal/unify.h @@ -1,4 +1,4 @@ -// $Id: unify.h,v 1.5 2005/03/18 03:55:03 ensc Exp $ --*- c -*-- +// $Id: unify.h 2476 2007-01-27 10:05:58Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -46,14 +46,23 @@ Unify_isIUnlinkable(char const *filename) NONNULL((1)); ((bool)((LHS)->st_dev ==(RHS)->st_dev && \ (LHS)->st_ino ==(RHS)->st_ino)) -#define Unify_isUnifyable(LHS, RHS) \ +#define _Unify_isUnifyable(LHS, RHS) \ ((bool)((LHS)->st_dev ==(RHS)->st_dev && \ (LHS)->st_ino !=(RHS)->st_ino && \ (LHS)->st_mode ==(RHS)->st_mode && \ (LHS)->st_uid ==(RHS)->st_uid && \ (LHS)->st_gid ==(RHS)->st_gid && \ - (LHS)->st_size ==(RHS)->st_size && \ - (LHS)->st_mtime==(RHS)->st_mtime)) + (LHS)->st_size ==(RHS)->st_size)) +#ifdef UTIL_VSERVER_UNIFY_MTIME_OPTIONAL +# define Unify_isUnifyable(LHS, RHS) \ + ((bool)(_Unify_isUnifyable(LHS, RHS) && \ + (global_args->ignore_mtime || \ + (LHS)->st_mtime==(RHS)->st_mtime))) +#else +# define Unify_isUnifyable(LHS, RHS) \ + ((bool)(_Unify_isUnifyable(LHS, RHS) && \ + (LHS)->st_mtime==(RHS)->st_mtime)) +#endif #endif // H_UTIL_VSERVER_LIB_INTERNAL_UNIFY_H diff --git a/lib_internal/util-canonify.c b/lib_internal/util-canonify.c index 48c9a7c..49fdaf7 100644 --- a/lib_internal/util-canonify.c +++ b/lib_internal/util-canonify.c @@ -1,4 +1,4 @@ -// $Id: util-canonify.c,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*-- +// $Id: util-canonify.c 1616 2004-07-02 23:34:52Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-cast.h b/lib_internal/util-cast.h index 5d0ad97..ca8793e 100644 --- a/lib_internal/util-cast.h +++ b/lib_internal/util-cast.h @@ -1,4 +1,4 @@ -// $Id: util-cast.h,v 1.1 2004/02/26 13:03:00 ensc Exp $ --*- c -*-- +// $Id: util-cast.h 1009 2004-02-26 13:07:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-commonstrings.h b/lib_internal/util-commonstrings.h index acdcd56..f82da67 100644 --- a/lib_internal/util-commonstrings.h +++ b/lib_internal/util-commonstrings.h @@ -1,4 +1,4 @@ -// $Id: util-commonstrings.h,v 1.1 2004/02/26 13:03:00 ensc Exp $ --*- c -*-- +// $Id: util-commonstrings.h 1009 2004-02-26 13:07:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-debug.h b/lib_internal/util-debug.h index b7fc843..9d145b0 100644 --- a/lib_internal/util-debug.h +++ b/lib_internal/util-debug.h @@ -1,4 +1,4 @@ -// $Id: util-debug.h,v 1.1 2004/04/14 23:22:13 ensc Exp $ --*- c -*-- +// $Id: util-debug.h 1452 2004-04-14 23:22:13Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-declarecmd.h b/lib_internal/util-declarecmd.h index f9d9af1..949ea7b 100644 --- a/lib_internal/util-declarecmd.h +++ b/lib_internal/util-declarecmd.h @@ -1,4 +1,4 @@ -// $Id: util-declarecmd.h,v 1.1 2004/02/26 13:03:00 ensc Exp $ --*- c -*-- +// $Id: util-declarecmd.h 1009 2004-02-26 13:07:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-dimof.h b/lib_internal/util-dimof.h index 93f353f..cb01d83 100644 --- a/lib_internal/util-dimof.h +++ b/lib_internal/util-dimof.h @@ -1,4 +1,4 @@ -// $Id: util-dimof.h,v 1.1 2004/02/26 13:03:00 ensc Exp $ --*- c -*-- +// $Id: util-dimof.h 1009 2004-02-26 13:07:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-dotfile.h b/lib_internal/util-dotfile.h index 806a2a8..0344a98 100644 --- a/lib_internal/util-dotfile.h +++ b/lib_internal/util-dotfile.h @@ -1,4 +1,4 @@ -// $Id: util-dotfile.h,v 1.2 2004/03/18 06:06:07 ensc Exp $ --*- c -*-- +// $Id: util-dotfile.h 1307 2004-03-18 06:06:07Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-exitlikeprocess.c b/lib_internal/util-exitlikeprocess.c index c0c6944..120e638 100644 --- a/lib_internal/util-exitlikeprocess.c +++ b/lib_internal/util-exitlikeprocess.c @@ -1,4 +1,4 @@ -// $Id: util-exitlikeprocess.c,v 1.4 2005/03/22 14:59:46 ensc Exp $ --*- c -*-- +// $Id: util-exitlikeprocess.c 1954 2005-03-22 14:59:46Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-exitlikeprocess.h b/lib_internal/util-exitlikeprocess.h index c4d93d0..da9a694 100644 --- a/lib_internal/util-exitlikeprocess.h +++ b/lib_internal/util-exitlikeprocess.h @@ -1,4 +1,4 @@ -// $Id: util-exitlikeprocess.h,v 1.3 2004/05/11 18:25:14 ensc Exp $ --*- c -*-- +// $Id: util-exitlikeprocess.h 1557 2004-05-11 18:25:14Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-io.h b/lib_internal/util-io.h index e1df657..061ba3d 100644 --- a/lib_internal/util-io.h +++ b/lib_internal/util-io.h @@ -1,4 +1,4 @@ -// $Id: util-io.h,v 1.2 2005/03/22 14:59:46 ensc Exp $ --*- c -*-- +// $Id: util-io.h 1954 2005-03-22 14:59:46Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-isnumber.c b/lib_internal/util-isnumber.c index 2fea0e4..66e01fe 100644 --- a/lib_internal/util-isnumber.c +++ b/lib_internal/util-isnumber.c @@ -1,4 +1,4 @@ -// $Id: util-isnumber.c,v 1.1 2005/07/04 22:35:47 ensc Exp $ --*- c -*-- +// $Id: util-isnumber.c 2255 2006-01-22 11:23:47Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // @@ -21,18 +21,15 @@ #endif #include "util.h" +#include "util-isnumber.hc" +#include -bool -isNumber(char const *str, signed long *result) +static inline bool +checkConstraints(signed long val, unsigned int fac) { - char * errptr; - signed long val; - - val = strtol(str, &errptr, 0); - if (*errptr!='\0' || errptr==str) - return false; - else { - if (result) *result = val; - return true; - } + if (val>0 && (signed long)(LONG_MAX/fac) <= val) return false; + if (val<0 && (signed long)(LONG_MIN/fac) >= val) return false; + return true; } + +ENSC_DECL_UTIL_ISNUMBER(isNumber, signed long, strtol) diff --git a/lib_internal/util-isnumber.hc b/lib_internal/util-isnumber.hc new file mode 100644 index 0000000..102e02d --- /dev/null +++ b/lib_internal/util-isnumber.hc @@ -0,0 +1,52 @@ +// $Id: util-isnumber.hc 2255 2006-01-22 11:23:47Z ensc $ --*- c -*-- + +// Copyright (C) 2006 Enrico Scholz +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +#include +#include +#include + +#define ENSC_DECL_UTIL_ISNUMBER(NAME,TYPE,FUNC) \ + bool \ + NAME(char const *str, TYPE *result, bool is_strict) \ + { \ + char * errptr; \ + TYPE val; \ + unsigned int fac = 1; \ + \ + errno = 0; \ + val = FUNC(str, &errptr, 0); \ + if (errno==ERANGE) \ + return false; \ + if (errptr!=str && !is_strict) { \ + switch (*errptr) { \ + case 'M' : fac *= 1024; /* fallthrough */ \ + case 'K' : fac *= 1024; ++errptr; break; \ + case 'm' : fac *= 1000; /* fallthrough */ \ + case 'k' : fac *= 1000; ++errptr; break; \ + default : break; \ + } \ + } \ + if (!checkConstraints(val,fac)) \ + return false; \ + \ + if (*errptr!='\0' || errptr==str) \ + return false; \ + else { \ + if (result) *result = val*fac; \ + return true; \ + } \ + } diff --git a/lib_internal/util-isnumberunsigned.c b/lib_internal/util-isnumberunsigned.c new file mode 100644 index 0000000..bdc034f --- /dev/null +++ b/lib_internal/util-isnumberunsigned.c @@ -0,0 +1,35 @@ +// $Id: util-isnumberunsigned.c 2255 2006-01-22 11:23:47Z ensc $ --*- c -*-- + +// Copyright (C) 2005 Enrico Scholz +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "util.h" +#include "util-isnumber.hc" +#include + +static inline bool +checkConstraints(unsigned long val, unsigned int fac) +{ + if ((long)(val) < 0) return false; + if (ULONG_MAX/fac <= val) return false; + return true; +} + +ENSC_DECL_UTIL_ISNUMBER(isNumberUnsigned, unsigned long, strtoul) diff --git a/lib_internal/util-lockfile.c b/lib_internal/util-lockfile.c index be07329..963c3b8 100644 --- a/lib_internal/util-lockfile.c +++ b/lib_internal/util-lockfile.c @@ -1,4 +1,4 @@ -// $Id: util-lockfile.c,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*-- +// $Id: util-lockfile.c 1616 2004-07-02 23:34:52Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-lockfile.h b/lib_internal/util-lockfile.h index 2431fac..d828dec 100644 --- a/lib_internal/util-lockfile.h +++ b/lib_internal/util-lockfile.h @@ -1,4 +1,4 @@ -// $Id: util-lockfile.h,v 1.1 2004/07/02 23:34:52 ensc Exp $ --*- c -*-- +// $Id: util-lockfile.h 1616 2004-07-02 23:34:52Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-mem.h b/lib_internal/util-mem.h index fc8a682..8b30d58 100644 --- a/lib_internal/util-mem.h +++ b/lib_internal/util-mem.h @@ -1,4 +1,4 @@ -// $Id: util-mem.h,v 1.3 2004/07/02 23:45:09 ensc Exp $ --*- c -*-- +// $Id: util-mem.h 1620 2004-07-02 23:45:09Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-perror.h b/lib_internal/util-perror.h index 6704fc5..cd1be79 100644 --- a/lib_internal/util-perror.h +++ b/lib_internal/util-perror.h @@ -1,4 +1,4 @@ -// $Id: util-perror.h,v 1.2 2004/03/24 01:07:53 ensc Exp $ --*- c -*-- +// $Id: util-perror.h 1324 2004-03-24 01:07:53Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-safechdir.c b/lib_internal/util-safechdir.c index f7c4d97..a0c1991 100644 --- a/lib_internal/util-safechdir.c +++ b/lib_internal/util-safechdir.c @@ -1,4 +1,4 @@ -// $Id: util-safechdir.c,v 1.2 2004/02/19 22:25:50 ensc Exp $ --*- c -*-- +// $Id: util-safechdir.c 956 2004-02-19 22:25:50Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/lib_internal/util-safechdir.h b/lib_internal/util-safechdir.h index e30bbfa..541cc9d 100644 --- a/lib_internal/util-safechdir.h +++ b/lib_internal/util-safechdir.h @@ -1,4 +1,4 @@ -// $Id: util-safechdir.h,v 1.1 2004/02/18 04:42:38 ensc Exp $ --*- c -*-- +// $Id: util-safechdir.h 934 2004-02-18 04:42:38Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // diff --git a/lib_internal/util-unixsock.h b/lib_internal/util-unixsock.h index 9e4083c..a458a05 100644 --- a/lib_internal/util-unixsock.h +++ b/lib_internal/util-unixsock.h @@ -1,4 +1,4 @@ -// $Id: util-unixsock.h,v 1.1 2004/03/05 03:17:39 ensc Exp $ --*- c -*-- +// $Id: util-unixsock.h 2241 2006-01-04 12:27:02Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -19,9 +19,9 @@ #ifndef H_UTIL_VSERVER_LIB_INTERNAL_UTIL_UNIXSOCK_H #define H_UTIL_VSERVER_LIB_INTERNAL_UTIL_UNIXSOCK_H -#define ENSC_INIT_UNIX_SOCK(ADDR, FILENAME) \ - (ADDR).sun_family = AF_UNIX; \ - strncpy((ADDR).sun_path, FILENAME, sizeof((ADDR).sun_path)); \ +#define ENSC_INIT_UNIX_SOCK(ADDR, FILENAME) \ + (ADDR).sun_family = AF_UNIX; \ + strncpy((ADDR).sun_path, FILENAME, sizeof((ADDR).sun_path)-1); \ (ADDR).sun_path[sizeof((ADDR).sun_path)-1] = '\0'; #endif // H_UTIL_VSERVER_LIB_INTERNAL_UTIL_UNIXSOCK_H diff --git a/lib_internal/util.h b/lib_internal/util.h index c49d1e2..0e49784 100644 --- a/lib_internal/util.h +++ b/lib_internal/util.h @@ -1,4 +1,4 @@ -// $Id: util.h,v 1.6 2005/07/04 22:35:47 ensc Exp $ --*- c -*-- +// $Id: util.h 2255 2006-01-22 11:23:47Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz // @@ -35,6 +35,7 @@ bool switchToWatchXid(char const **); size_t canonifyVserverName(char *); -bool isNumber(char const *, signed long *result); +bool isNumber(char const *, signed long *result, bool is_strict); +bool isNumberUnsigned(char const *, unsigned long *result, bool is_strict); #endif // H_UTILVSERVER_LIB_INTERNAL_UTIL_H diff --git a/ltmain.sh b/ltmain.sh index 9be0eb1..0223495 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -43,13 +43,19 @@ EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool -VERSION=1.5.16 -TIMESTAMP=" (1.1220.2.235 2005/04/25 18:13:26)" - -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes. -if test -n "${ZSH_VERSION+set}" ; then +VERSION=1.5.22 +TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" + +# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi # Check that we have a working $echo. @@ -88,14 +94,15 @@ rm="rm -f" Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' # test EBCDIC or ASCII -case `echo A|tr A '\301'` in - A) # EBCDIC based system - SP2NL="tr '\100' '\n'" - NL2SP="tr '\r\n' '\100\100'" +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + SP2NL='tr \040 \012' + NL2SP='tr \015\012 \040\040' ;; - *) # Assume ASCII based system - SP2NL="tr '\040' '\012'" - NL2SP="tr '\015\012' '\040\040'" + *) # EBCDIC based system + SP2NL='tr \100 \n' + NL2SP='tr \r\n \100\100' ;; esac @@ -104,12 +111,14 @@ esac # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). # We save the old values to restore during execute mode. -if test "${LC_ALL+set}" = set; then - save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL -fi -if test "${LANG+set}" = set; then - save_LANG="$LANG"; LANG=C; export LANG -fi +for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + fi" +done # Make sure IFS has a sensible default lt_nl=' @@ -131,14 +140,54 @@ run= show="$echo" show_help= execute_dlfiles= +duplicate_deps=no +preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" -quote_scanset='[[~#^*{};<>?'"'"' ]' +extracted_archives= +extracted_serial=0 ##################################### # Shell function definitions: # This seems to be the best place for them +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $mkdir "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || { + $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 + exit $EXIT_FAILURE + } + fi + + $echo "X$my_tmpdir" | $Xsed +} + + # func_win32_libid arg # return the library type of file 'arg' # @@ -157,12 +206,11 @@ func_win32_libid () if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ - sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` - if test "X$win32_nmres" = "Ximport" ; then - win32_libid_type="x86 archive import" - else - win32_libid_type="x86 archive static" - fi + $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac fi ;; *DLL*) @@ -192,7 +240,7 @@ func_infer_tag () CC_quoted= for arg in $CC; do case $arg in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac @@ -213,7 +261,7 @@ func_infer_tag () for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac @@ -289,15 +337,25 @@ func_extract_archives () *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` - my_xdir="$my_gentop/$my_xlib" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + extracted_serial=`expr $extracted_serial + 1` + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$my_xdir"; then - exit $status + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then + exit $exit_status fi case $host in *-darwin*) @@ -337,7 +395,7 @@ func_extract_archives () func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run - ;; + ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; @@ -352,6 +410,8 @@ func_extract_archives () # Darwin sucks eval std_shrext=\"$shrext_cmds\" +disable_libs=no + # Parse our command line options once, thoroughly. while test "$#" -gt 0 do @@ -468,7 +528,11 @@ do preserve_args="$preserve_args $arg" ;; - --tag) prevopt="--tag" prev=tag ;; + --tag) + prevopt="--tag" + prev=tag + preserve_args="$preserve_args --tag" + ;; --tag=*) set tag "$optarg" ${1+"$@"} shift @@ -500,6 +564,18 @@ if test -n "$prevopt"; then exit $EXIT_FAILURE fi +case $disable_libs in +no) + ;; +shared) + build_libtool_libs=no + build_old_libs=yes + ;; +static) + build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` + ;; +esac + # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. @@ -576,7 +652,7 @@ if test -z "$show_help"; then for arg do - case "$arg_mode" in + case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" @@ -627,7 +703,7 @@ if test -z "$show_help"; then # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac @@ -662,7 +738,7 @@ if test -z "$show_help"; then # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac @@ -702,6 +778,7 @@ if test -z "$show_help"; then *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; + *.obj) xform=obj ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` @@ -737,13 +814,12 @@ if test -z "$show_help"; then qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac - if test "X$libobj" != "X$qlibobj"; then - $echo "$modename: libobj name \`$libobj' may not contain shell special characters." - exit $EXIT_FAILURE - fi + test "X$libobj" != "X$qlibobj" \ + && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then @@ -824,7 +900,7 @@ compiler." fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac @@ -857,9 +933,9 @@ EOF if test ! -d "${xdir}$objdir"; then $show "$mkdir ${xdir}$objdir" $run $mkdir ${xdir}$objdir - status=$? - if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then - exit $status + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then + exit $exit_status fi fi @@ -1062,6 +1138,7 @@ EOF no_install=no objs= non_pic_objects= + notinst_path= # paths that contain not-installed libtool libraries precious_files_regex= prefer_static_libs=no preload=no @@ -1082,22 +1159,32 @@ EOF for arg do case $arg in - -all-static | -static) - if test "X$arg" = "X-all-static"; then + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi - else + prefer_static_libs=yes + ;; + -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi - fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac build_libtool_libs=no build_old_libs=yes - prefer_static_libs=yes break ;; esac @@ -1111,7 +1198,7 @@ EOF arg="$1" shift case $arg in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; @@ -1272,6 +1359,11 @@ EOF if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. @@ -1355,8 +1447,10 @@ EOF prev= continue ;; - darwin_framework) - compiler_flags="$compiler_flags $arg" + darwin_framework|darwin_framework_skip) + test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" prev= continue ;; @@ -1418,11 +1512,17 @@ EOF continue ;; - -framework) - prev=darwin_framework - compiler_flags="$compiler_flags $arg" - continue - ;; + -framework|-arch|-isysroot) + case " $CC " in + *" ${arg} ${1} "* | *" ${arg} ${1} "*) + prev=darwin_framework_skip ;; + *) compiler_flags="$compiler_flags $arg" + prev=darwin_framework ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; -inst-prefix-dir) prev=inst_prefix @@ -1450,7 +1550,8 @@ EOF absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - exit $EXIT_FAILURE + absdir="$dir" + notinst_path="$notinst_path $dir" fi dir="$absdir" ;; @@ -1464,10 +1565,15 @@ EOF esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac ;; esac continue @@ -1476,11 +1582,11 @@ EOF -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-pw32* | *-*-beos*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; - *-*-mingw* | *-*-os2*) + *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; @@ -1492,6 +1598,15 @@ EOF # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; esac elif test "X$arg" = "X-lc_r"; then case $host in @@ -1533,21 +1648,24 @@ EOF # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*) + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -pg pass through profiling flag for GCC + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ + -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" - if test "$with_gcc" = "yes" ; then - compiler_flags="$compiler_flags $arg" - fi + compiler_flags="$compiler_flags $arg" continue ;; @@ -1624,7 +1742,7 @@ EOF continue ;; - -static) + -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects @@ -1655,7 +1773,7 @@ EOF for flag in $args; do IFS="$save_ifs" case $flag in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac @@ -1673,7 +1791,7 @@ EOF for flag in $args; do IFS="$save_ifs" case $flag in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac @@ -1706,7 +1824,7 @@ EOF # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac @@ -1785,6 +1903,11 @@ EOF if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. @@ -1840,7 +1963,7 @@ EOF # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac @@ -1890,9 +2013,9 @@ EOF if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir - status=$? - if test "$status" -ne 0 && test ! -d "$output_objdir"; then - exit $status + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then + exit $exit_status fi fi @@ -1955,7 +2078,6 @@ EOF newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv link" @@ -2191,7 +2313,7 @@ EOF esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else - $echo "$modename: cannot find the library \`$lib'" 1>&2 + $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi @@ -2398,14 +2520,16 @@ EOF if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; - *) temp_rpath="$temp_rpath $dir" ;; + *) temp_rpath="$temp_rpath $absdir" ;; esac fi @@ -2442,8 +2566,12 @@ EOF fi link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes ; then + use_static_libs=no + fi if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then + { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes @@ -2556,11 +2684,15 @@ EOF if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in - *-*-sco3.2v5* ) add_dir="-L$dir" ;; + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added - if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then + if /usr/bin/file -L $add 2> /dev/null | + $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo @@ -2591,7 +2723,7 @@ EOF add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then - case "$libdir" in + case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; @@ -2664,7 +2796,7 @@ EOF add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then - case "$libdir" in + case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; @@ -2725,8 +2857,6 @@ EOF fi fi else - convenience="$convenience $dir/$old_library" - old_convenience="$old_convenience $dir/$old_library" deplibs="$dir/$old_library $deplibs" link_static=yes fi @@ -3088,7 +3218,7 @@ EOF # which has an extra 1 added just for fun # case $version_type in - darwin|linux|osf|windows) + darwin|linux|osf|windows|none) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" @@ -3312,11 +3442,11 @@ EOF fi # Eliminate all temporary directories. - for path in $notinst_path; do - lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'` - deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'` - dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` - done +# for path in $notinst_path; do +# lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` +# deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` +# dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` +# done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. @@ -3368,7 +3498,12 @@ EOF ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. @@ -3412,13 +3547,12 @@ EOF int main() { return 0; } EOF $rm conftest - $LTCC -o conftest conftest.c $deplibs - if test "$?" -eq 0 ; then + if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then ldd_output=`ldd conftest` for i in $deplibs; do - name="`expr $i : '-l\(.*\)'`" + name=`expr $i : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. - if test "$name" != "" && test "$name" -ne "0"; then + if test "$name" != "" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) @@ -3453,13 +3587,11 @@ EOF # Error occurred in the first compile. Let's try to salvage # the situation: Compile a separate program for each library. for i in $deplibs; do - name="`expr $i : '-l\(.*\)'`" + name=`expr $i : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test "$name" != "" && test "$name" != "0"; then $rm conftest - $LTCC -o conftest conftest.c $i - # Did it work? - if test "$?" -eq 0 ; then + if $LTCC $LTCFLAGS -o conftest conftest.c $i; then ldd_output=`ldd conftest` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in @@ -3491,7 +3623,7 @@ EOF droppeddeps=yes $echo $echo "*** Warning! Library $i is needed by this library but I was not able to" - $echo "*** make it link in! You will probably need to install it or some" + $echo "*** make it link in! You will probably need to install it or some" $echo "*** library that it depends on before this library will be fully" $echo "*** functional. Installing it before continuing would be even better." fi @@ -3505,7 +3637,7 @@ EOF set dummy $deplibs_check_method file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do - name="`expr $a_deplib : '-l\(.*\)'`" + name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test "$name" != "" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then @@ -3574,7 +3706,7 @@ EOF set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do - name="`expr $a_deplib : '-l\(.*\)'`" + name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then @@ -3704,6 +3836,35 @@ EOF deplibs=$newdeplibs fi + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). library_names= old_library= @@ -3787,6 +3948,7 @@ EOF fi lib="$output_objdir/$realname" + linknames= for link do linknames="$linknames $link" @@ -3815,6 +3977,9 @@ EOF # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break fi done IFS="$save_ifs" @@ -3884,7 +4049,8 @@ EOF fi fi - if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` && + if test "X$skipped_export" != "X:" && + len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else @@ -3919,7 +4085,7 @@ EOF do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || - { len=`expr "X$test_cmds" : ".*"` && + { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else @@ -4009,13 +4175,30 @@ EOF IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" - $run eval "$cmd" || exit $? + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' + fi + + exit $lt_exit + } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + fi + fi + exit $EXIT_SUCCESS fi @@ -4085,12 +4268,14 @@ EOF reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then - eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" @@ -4197,6 +4382,35 @@ EOF ;; esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" @@ -4241,10 +4455,15 @@ EOF fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac ;; esac done @@ -4360,11 +4579,23 @@ extern \"C\" { if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols - $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac else - $run eval "${SED} -e 's/\([ ][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac fi fi @@ -4481,16 +4712,29 @@ static const void *lt_preloaded_setup() { esac # Now compile the dynamic symbol file. - $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" - $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? + $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" + $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. - compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` + case $host in + *cygwin* | *mingw* ) + if test -f "$output_objdir/${outputname}.def" ; then + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` + else + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + fi + ;; + * ) + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + ;; + esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 @@ -4503,19 +4747,19 @@ static const void *lt_preloaded_setup() { # really was required. # Nullify the symbol file. - compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" - status=$? + exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then @@ -4523,7 +4767,7 @@ static const void *lt_preloaded_setup() { $run $rm "$output_objdir/${outputname}S.${objext}" fi - exit $status + exit $exit_status fi if test -n "$shlibpath_var"; then @@ -4596,7 +4840,7 @@ static const void *lt_preloaded_setup() { if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then - relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` else # fast_install is set to needless relink_command= @@ -4633,7 +4877,7 @@ static const void *lt_preloaded_setup() { fi done relink_command="(cd `pwd`; $relink_command)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` fi # Quote $echo for shipping. @@ -4663,10 +4907,12 @@ static const void *lt_preloaded_setup() { esac case $host in *cygwin* | *mingw* ) - cwrappersource=`$echo ${objdir}/lt-${outputname}.c` - cwrapper=`$echo ${output}.exe` - $rm $cwrappersource $cwrapper - trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + output_name=`basename $output` + output_path=`dirname $output` + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $rm $cwrappersource $cwrapper + trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource < #include #include +#include +#include +#include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX @@ -4701,15 +4950,19 @@ EOF #endif #ifndef DIR_SEPARATOR -#define DIR_SEPARATOR '/' +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) -#define HAVE_DOS_BASED_FILE_SYSTEM -#ifndef DIR_SEPARATOR_2 -#define DIR_SEPARATOR_2 '\\' -#endif +# define HAVE_DOS_BASED_FILE_SYSTEM +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif #endif #ifndef DIR_SEPARATOR_2 @@ -4719,17 +4972,32 @@ EOF (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) +/* -DDEBUG is fairly common in CFLAGS. */ +#undef DEBUG +#if defined DEBUGWRAPPER +# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) +#else +# define DEBUG(format, ...) +#endif + const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); -char * basename (const char *name); -char * fnqualify(const char *path); +const char * base_name (const char *name); +char * find_executable(const char *wrapper); +int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); @@ -4739,29 +5007,51 @@ main (int argc, char *argv[]) char **newargz; int i; - program_name = (char *) xstrdup ((char *) basename (argv[0])); + program_name = (char *) xstrdup (base_name (argv[0])); + DEBUG("(main) argv[0] : %s\n",argv[0]); + DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF - cat >> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" - newargz[1] = fnqualify(argv[0]); + cat >> $cwrappersource <<"EOF" + newargz[1] = find_executable(argv[0]); + if (newargz[1] == NULL) + lt_fatal("Couldn't find %s", argv[0]); + DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; + + for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" + cat >> $cwrappersource <<"EOF" + return 127; } void * @@ -4781,48 +5071,148 @@ xstrdup (const char *string) ; } -char * -basename (const char *name) +const char * +base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ - if (isalpha (name[0]) && name[1] == ':') + if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; - return (char *) base; + return base; } +int +check_executable(const char * path) +{ + struct stat st; + + DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) && + ( + /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ +#if defined (S_IXOTH) + ((st.st_mode & S_IXOTH) == S_IXOTH) || +#endif +#if defined (S_IXGRP) + ((st.st_mode & S_IXGRP) == S_IXGRP) || +#endif + ((st.st_mode & S_IXUSR) == S_IXUSR)) + ) + return 1; + else + return 0; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise */ char * -fnqualify(const char *path) +find_executable (const char* wrapper) { - size_t size; - char *p; + int has_slash = 0; + const char* p; + const char* p_next; + /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; + int tmp_len; + char* concat_name; + + DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); - assert(path != NULL); + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; - /* Is it qualified already? */ + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha (path[0]) && path[1] == ':') - return xstrdup (path); + } #endif - if (IS_DIR_SEPARATOR (path[0])) - return xstrdup (path); - /* prepend the current directory */ - /* doesn't handle '~' */ + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char* path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char* q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR(*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); - size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */ - p = XMALLOC(char, size); - sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); - return p; + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + return NULL; } char * @@ -4866,16 +5256,16 @@ lt_fatal (const char *message, ...) va_end (ap); } EOF - # we should really use a build-platform specific compiler - # here, but OTOH, the wrappers (shell script and this C one) - # are only useful if you want to execute the "real" binary. - # Since the "real" binary is built for $host, then this - # wrapper might as well be built for $host, too. - $run $LTCC -s -o $cwrapper $cwrappersource - ;; - esac - $rm $output - trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 + # we should really use a build-platform specific compiler + # here, but OTOH, the wrappers (shell script and this C one) + # are only useful if you want to execute the "real" binary. + # Since the "real" binary is built for $host, then this + # wrapper might as well be built for $host, too. + $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource + ;; + esac + $rm $output + trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL @@ -4894,6 +5284,18 @@ EOF Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' +# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi + # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH @@ -5025,23 +5427,23 @@ else # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ - exec \$progdir\\\\\$program \${1+\"\$@\"} + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ - exec \$progdir/\$program \${1+\"\$@\"} + exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ - \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" + \$echo \"\$0: cannot exec \$program \$*\" exit $EXIT_FAILURE fi else # The program doesn't exist. - \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 + \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE @@ -5105,9 +5507,9 @@ fi\ $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$gentop"; then + exit $exit_status fi fi @@ -5164,7 +5566,7 @@ fi\ oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" - if len=`expr "X$test_cmds" : ".*"` && + if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else @@ -5222,7 +5624,7 @@ fi\ done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` if test "$hardcode_automatic" = yes ; then relink_command= fi @@ -5361,11 +5763,11 @@ relink_command=\"$relink_command\"" # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. - $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then + $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac @@ -5374,14 +5776,14 @@ relink_command=\"$relink_command\"" shift else install_prog= - arg="$nonopt" + arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac @@ -5399,28 +5801,31 @@ relink_command=\"$relink_command\"" do if test -n "$dest"; then files="$files $dest" - dest="$arg" + dest=$arg continue fi case $arg in -d) isdir=yes ;; - -f) prev="-f" ;; - -g) prev="-g" ;; - -m) prev="-m" ;; - -o) prev="-o" ;; + -f) + case " $install_prog " in + *[\\\ /]cp\ *) ;; + *) prev=$arg ;; + esac + ;; + -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; - -*) ;; - + -*) + ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else - dest="$arg" + dest=$arg continue fi ;; @@ -5429,7 +5834,7 @@ relink_command=\"$relink_command\"" # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in - *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "") + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac @@ -5564,9 +5969,9 @@ relink_command=\"$relink_command\"" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. - relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` else - relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` fi $echo "$modename: warning: relinking \`$file'" 1>&2 @@ -5598,11 +6003,14 @@ relink_command=\"$relink_command\"" if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then - $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" + $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" + $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi @@ -5615,7 +6023,16 @@ relink_command=\"$relink_command\"" IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" - $run eval "$cmd" || exit $? + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' + fi + + exit $lt_exit + } done IFS="$save_ifs" fi @@ -5709,17 +6126,15 @@ relink_command=\"$relink_command\"" notinst_deplibs= relink_command= - # To insure that "foo" is sourced, and not "foo.exe", - # finese the cygwin/MSYS system by explicitly sourcing "foo." - # which disallows the automatic-append-.exe behavior. - case $build in - *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; - *) wrapperdot=${wrapper} ;; - esac + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # # If there is no directory component, then add one. - case $file in - */* | *\\*) . ${wrapperdot} ;; - *) . ./${wrapperdot} ;; + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; esac # Check the variables that should have been set. @@ -5747,38 +6162,25 @@ relink_command=\"$relink_command\"" done relink_command= - # To insure that "foo" is sourced, and not "foo.exe", - # finese the cygwin/MSYS system by explicitly sourcing "foo." - # which disallows the automatic-append-.exe behavior. - case $build in - *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; - *) wrapperdot=${wrapper} ;; - esac + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # # If there is no directory component, then add one. - case $file in - */* | *\\*) . ${wrapperdot} ;; - *) . ./${wrapperdot} ;; + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then - tmpdir="/tmp" - test -n "$TMPDIR" && tmpdir="$TMPDIR" - tmpdir="$tmpdir/libtool-$$" - save_umask=`umask` - umask 0077 - if $mkdir "$tmpdir"; then - umask $save_umask - else - umask $save_umask - $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 - continue - fi + tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. - relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` $show "$relink_command" if $run eval "$relink_command"; then : @@ -5798,7 +6200,7 @@ relink_command=\"$relink_command\"" fi # remove .exe since cygwin /usr/bin/install will append another - # one anyways + # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in @@ -5898,7 +6300,7 @@ relink_command=\"$relink_command\"" # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS - $echo "----------------------------------------------------------------------" + $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" @@ -5931,7 +6333,7 @@ relink_command=\"$relink_command\"" $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." - $echo "----------------------------------------------------------------------" + $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; @@ -6054,12 +6456,15 @@ relink_command=\"$relink_command\"" fi # Restore saved environment variables - if test "${save_LC_ALL+set}" = set; then - LC_ALL="$save_LC_ALL"; export LC_ALL - fi - if test "${save_LANG+set}" = set; then - LANG="$save_LANG"; export LANG - fi + for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + # Now prepare to actually exec the command. exec_cmd="\$cmd$args" @@ -6148,9 +6553,17 @@ relink_command=\"$relink_command\"" rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" - test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - if test "$mode" = uninstall; then + case "$mode" in + clean) + case " $library_names " in + # " " in the beginning catches empty $dlname + *" $dlname "*) ;; + *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac + test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds @@ -6183,7 +6596,8 @@ relink_command=\"$relink_command\"" IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. - fi + ;; + esac fi ;; @@ -6407,9 +6821,9 @@ The following components of LINK-COMMAND are treated specially: -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE + try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX - try to export only the symbols matching REGEX + try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened @@ -6423,9 +6837,11 @@ The following components of LINK-COMMAND are treated specially: -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -static do not do any dynamic linking of libtool libraries + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] + specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. @@ -6482,12 +6898,11 @@ exit $? # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=no -build_old_libs=yes +disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac` +disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: diff --git a/m4/changelog.am b/m4/changelog.am index 8ca6cbd..310de84 100644 --- a/m4/changelog.am +++ b/m4/changelog.am @@ -1,4 +1,4 @@ -## $Id: changelog.am,v 1.3 2003/10/13 19:50:09 ensc Exp $ ---*- makefile -*--- +## $Id: changelog.am 2333 2006-09-28 15:06:59Z dhozac $ ---*- makefile -*--- ## Copyright (C) 2002 Enrico Scholz ## @@ -19,18 +19,11 @@ ChangeLog.sed: test "$(srcdir)" != "." -if HAVE_CVS2CL +if HAVE_SVN2CL ChangeLog: Makefile - if test "$(srcdir)" = "." -a -d CVS; then \ - $(CVS2CL) $(CVS2CL_ALLFLAGS) -f $@; \ + if test "$(srcdir)" = "." -a -d .svn; then \ + $(SVN2CL) $(SVN2CL_ALLFLAGS) -o $@; \ fi -else -if HAVE_RCS2LOG -ChangeLog: ChangeLog.sed Makefile - if test "$(srcdir)" = "." -a -d CVS; then \ - $(RCS2LOG) -l 0 -c /dev/stdout | sed -f $< >$@; \ - fi -endif endif .PHONY: ChangeLog diff --git a/m4/ensc_cflags.m4 b/m4/ensc_cflags.m4 index e1a8cab..926de9f 100644 --- a/m4/ensc_cflags.m4 +++ b/m4/ensc_cflags.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_cflags.m4,v 1.3 2004/03/04 03:00:42 ensc Exp $ +dnl $Id: ensc_cflags.m4 1052 2004-03-04 03:00:42Z ensc $ dnl Copyright (C) 2002 Enrico Scholz dnl diff --git a/m4/ensc_changelog.m4 b/m4/ensc_changelog.m4 index 190b6cd..4269788 100644 --- a/m4/ensc_changelog.m4 +++ b/m4/ensc_changelog.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_changelog.m4,v 1.2 2003/11/04 01:31:56 ensc Exp $ +dnl $Id: ensc_changelog.m4 2313 2006-09-15 08:31:53Z hollow $ dnl Copyright (C) 2002 Enrico Scholz dnl @@ -15,17 +15,10 @@ dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -dnl Usage: ENSC_CHANGELOG() +dnl Usage: ENSC_CHANGELOG() AC_DEFUN([ENSC_CHANGELOG], [ - if test x"$1" != x; then - AC_SUBST(CVS2CL_TAG, ['-F $1']) - fi - - AC_CHECK_PROGS(CVS2CL, [cvs2cl]) - AM_CONDITIONAL(HAVE_CVS2CL, [test x"$CVS2CL" != x]) - - AC_CHECK_PROGS(RCS2LOG, [rcs2log]) - AM_CONDITIONAL(HAVE_RCS2LOG, [test x"$RCS2LOG" != x]) + AC_CHECK_PROGS(SVN2CL, [svn2cl]) + AM_CONDITIONAL(HAVE_SVN2CL, [test x"$SVN2CL" != x]) ]) diff --git a/m4/ensc_cxxcompiler.m4 b/m4/ensc_cxxcompiler.m4 index 910bf4f..51c7a78 100644 --- a/m4/ensc_cxxcompiler.m4 +++ b/m4/ensc_cxxcompiler.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_cxxcompiler.m4,v 1.3 2005/04/10 00:52:57 ensc Exp $ +dnl $Id: ensc_cxxcompiler.m4 2007 2005-04-10 00:52:57Z ensc $ dnl Copyright (C) 2002 Enrico Scholz dnl diff --git a/m4/ensc_dietlibc.m4 b/m4/ensc_dietlibc.m4 index 02d1647..ac0ae37 100644 --- a/m4/ensc_dietlibc.m4 +++ b/m4/ensc_dietlibc.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_dietlibc.m4,v 1.15 2005/05/05 19:13:52 ensc Exp $ +dnl $Id: ensc_dietlibc.m4 2453 2007-01-17 09:54:53Z dhozac $ dnl Copyright (C) 2002 Enrico Scholz dnl @@ -51,6 +51,32 @@ AC_DEFUN([_ENSC_DIETLIBC_C99], fi ]) +AC_DEFUN([_ENSC_DIETLIBC_SYSCALL], +[ + AH_TEMPLATE([ENSC_DIETLIBC_HAS_SYSCALL], [Define to 1 if dietlibc declares syscall]) + + AC_CACHE_CHECK([whether dietlibc declares syscall], [ensc_cv_c_dietlibc_syscall], + [ + _ensc_dietlibc_syscall_old_CC="$CC" + CC="${DIET:-diet} $CC" + + AC_LANG_PUSH(C) + AC_COMPILE_IFELSE([ + #include + long int syscall(long int __sysno, ...); + ], + [ensc_cv_c_dietlibc_syscall=no], + [ensc_cv_c_dietlibc_syscall=yes]) + AC_LANG_POP + + CC="$_ensc_dietlibc_syscall_old_CC" + ]) + + if test x"$ensc_cv_c_dietlibc_syscall" = xyes; then + AC_DEFINE(ENSC_DIETLIBC_HAS_SYSCALL,1) + fi +]) + dnl Usage: ENSC_ENABLE_DIETLIBC([,]) dnl ... automake-conditional which will be set when dnl dietlibc shall be enabled @@ -134,21 +160,7 @@ AC_DEFUN([ENSC_ENABLE_DIETLIBC], if test x"$ensc_have_dietlibc" != xno; then _ENSC_DIETLIBC_C99 + _ENSC_DIETLIBC_SYSCALL fi ]) - -dnl Usage: ENSC_DIETLIBC_SANITYCHECK -AC_DEFUN([ENSC_DIETLIBC_SANITYCHECK], -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([ENSC_ENABLE_DIETLIBC]) - - if test "$host_cpu" = x86_64 -a $ENSC_VERSION_DIETLIBC_NUM -le 0027; then - AC_MSG_WARN([*** ***]) - AC_MSG_WARN([*** dietlibc<=0.27 is known to be broken for x86_64 systems ***]) - AC_MSG_WARN([*** please make sure that at least the environ.S fix is applied ***]) - AC_MSG_WARN([*** and lib/__nice.c added ***]) - AC_MSG_WARN([*** ***]) - fi -]) diff --git a/m4/ensc_dietlibc_compat.m4 b/m4/ensc_dietlibc_compat.m4 index 30de1c2..e33d464 100644 --- a/m4/ensc_dietlibc_compat.m4 +++ b/m4/ensc_dietlibc_compat.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_dietlibc_compat.m4,v 1.4 2005/04/24 20:28:23 ensc Exp $ +dnl $Id: ensc_dietlibc_compat.m4 2042 2005-04-24 20:28:23Z ensc $ dnl Copyright (C) 2004 Enrico Scholz dnl diff --git a/m4/ensc_e2fscheck.m4 b/m4/ensc_e2fscheck.m4 index 8d18bc9..7fe2f5f 100644 --- a/m4/ensc_e2fscheck.m4 +++ b/m4/ensc_e2fscheck.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_e2fscheck.m4,v 1.3 2004/02/19 22:31:04 ensc Exp $ +dnl $Id: ensc_e2fscheck.m4 2411 2006-12-01 18:41:01Z dhozac $ dnl Copyright (C) 2004 Enrico Scholz dnl @@ -48,7 +48,7 @@ the following reasons: * kernel headers are broken (e.g. these of linux 2.6 are known to be) and you do not have e2fsprogs headers installed; please try to install - e2fsprogs-devel (for Red Hat), or - - libext2fs2-devel (for Mandrake), or + - lib*ext2fs2-devel (for Mandriva), or - e2fslibs-dev (for Debian) in this case. diff --git a/m4/ensc_initrddir.m4 b/m4/ensc_initrddir.m4 index 8d1606b..909b9b1 100644 --- a/m4/ensc_initrddir.m4 +++ b/m4/ensc_initrddir.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_initrddir.m4,v 1.2 2005/03/09 14:42:39 ensc Exp $ +dnl $Id: ensc_initrddir.m4 1887 2005-03-09 14:42:39Z ensc $ dnl Copyright (C) 2002 Enrico Scholz dnl diff --git a/m4/ensc_kerneldir.m4 b/m4/ensc_kerneldir.m4 deleted file mode 100644 index 0020696..0000000 --- a/m4/ensc_kerneldir.m4 +++ /dev/null @@ -1,57 +0,0 @@ -dnl $Id: ensc_kerneldir.m4,v 1.3 2004/02/14 01:20:35 ensc Exp $ - -dnl Copyright (C) 2002 Enrico Scholz -dnl -dnl This program is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; version 2 of the License. -dnl -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software -dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -dnl Usage: ENSC_KERNEL_HEADERS() -dnl ... basedir of kernel-headers (without the '/linux'); -dnl this value will be AC_SUBST'ed - -AC_DEFUN([_ENSC_KERNEL_DIR], -[ - AC_CACHE_CHECK([for linux kernel dir], [ensc_cv_path_kerneldir], - [ -AC_ARG_WITH([kerneldir], - [AC_HELP_STRING([--with-kerneldir=DIR], - [assume kernelsources in DIR (default: /lib/modules//build)])], - [case "$withval" in - yes|no) AC_MSG_ERROR(['$withval' is not a valid value for kerneldir]);; - *) ensc_cv_path_kerneldir=$withval;; - esac], - [ensc_cv_path_kerneldir= - for i in /lib/modules/$(uname -r)/build /usr/src/linux /usr; do - test -e $i/include/linux/version.h && { ensc_cv_path_kerneldir=$i; break; } - done]) - ]) - - test "$ensc_cv_path_kerneldir" -a -e "$ensc_cv_path_kerneldir"/include/linux/version.h || { - AC_MSG_ERROR([Can not find kernelsources]) - } -]) - -AC_DEFUN([ENSC_KERNEL_HEADERS], -[ - AC_REQUIRE([_ENSC_KERNEL_DIR]) - - AC_CACHE_CHECK([for linux kernel headers], [ensc_cv_path_kernelheaders], - [ - ensc_cv_path_kernelheaders=$ensc_cv_path_kerneldir/include - ]) - - if test x"$1" != x; then - $1=$ensc_cv_path_kernelheaders - AC_SUBST($1) - fi -]) diff --git a/m4/ensc_pathprog.m4 b/m4/ensc_pathprog.m4 index 96d345b..bd879ce 100644 --- a/m4/ensc_pathprog.m4 +++ b/m4/ensc_pathprog.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_pathprog.m4,v 1.2 2005/02/02 14:09:28 ensc Exp $ +dnl $Id: ensc_pathprog.m4 2504 2007-02-24 20:03:10Z dhozac $ dnl Copyright (C) 2002 Enrico Scholz dnl @@ -59,6 +59,10 @@ $4]) fi fi + if test -e "${$1}"; then + $1=`readlink -f "${$1}"` + fi + test "${$1}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'$1'@!${$1}!g;" test "${$1}"]) diff --git a/m4/ensc_personality.m4 b/m4/ensc_personality.m4 index 69340e4..dd4528f 100644 --- a/m4/ensc_personality.m4 +++ b/m4/ensc_personality.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_personality.m4,v 1.1 2005/07/15 19:40:15 ensc Exp $ +dnl $Id: ensc_personality.m4 2159 2005-07-15 19:40:15Z ensc $ dnl Copyright (C) 2002 Enrico Scholz dnl diff --git a/m4/ensc_release.m4 b/m4/ensc_release.m4 index 387e111..e42c1bf 100644 --- a/m4/ensc_release.m4 +++ b/m4/ensc_release.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_release.m4,v 1.2 2003/12/26 00:22:49 uid68581 Exp $ +dnl $Id: ensc_release.m4 476 2003-12-26 00:22:49Z uid68581 $ dnl Copyright (C) 2002 Enrico Scholz dnl diff --git a/m4/ensc_syscall.m4 b/m4/ensc_syscall.m4 index 641812d..66d9912 100644 --- a/m4/ensc_syscall.m4 +++ b/m4/ensc_syscall.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_syscall.m4,v 1.6 2005/05/19 18:04:12 ensc Exp $ +dnl $Id: ensc_syscall.m4 2194 2005-10-28 17:51:48Z ensc $ dnl Copyright (C) 2004 Enrico Scholz dnl @@ -39,7 +39,6 @@ AC_DEFUN([ENSC_SYSCALL_ALTERNATIVE], AC_DEFUN([ENSC_SYSCALL], [ - AC_REQUIRE([ENSC_KERNEL_HEADERS]) AC_REQUIRE([ENSC_SYSCALL_ALTERNATIVE]) AC_MSG_CHECKING([for syscall(2) invocation method]) @@ -104,7 +103,7 @@ int main() { fi AH_BOTTOM([ -#if defined(__pic__) && defined(__i386) && !defined(ENSC_SYSCALL_TRADITIONAL) +#if defined(__pic__) && defined(__i386) && !defined(ENSC_SYSCALL_TRADITIONAL) && !defined(ENSC_USE_ALTERNATIVE_SYSCALL_MACROS) # define ENSC_SYSCALL_TRADITIONAL 1 #endif]) ]) diff --git a/m4/ensc_syscallnr.m4 b/m4/ensc_syscallnr.m4 index 868ca38..db6efb3 100644 --- a/m4/ensc_syscallnr.m4 +++ b/m4/ensc_syscallnr.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_syscallnr.m4,v 1.6 2004/03/08 19:55:28 ensc Exp $ +dnl $Id: ensc_syscallnr.m4 2187 2005-10-28 16:01:19Z ensc $ dnl Copyright (C) 2004 Enrico Scholz dnl @@ -15,19 +15,22 @@ dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -dnl Usage: ENSC_SYSCALLNR(,) +dnl Usage: ENSC_SYSCALLNR(,[,]) AC_DEFUN([ENSC_SYSCALLNR], [ AC_REQUIRE([AC_PROG_CPP]) AC_REQUIRE([AC_PROG_EGREP]) - AC_REQUIRE([ENSC_KERNEL_HEADERS]) AC_CACHE_CHECK([for number of syscall '$1'], [ensc_cv_value_syscall_$1], [ AC_LANG_PUSH(C) AC_LANG_CONFTEST([ -#include +#ifdef ENSC_SYSCALL_FALLBACK +# include ENSC_SYSCALL_FALLBACK +#else +# include +#endif #ifdef __NR_$1 ensc_syscall_tmp_nr=__NR_$1; ensc_syscall_tmp_src=ENSC_MARK @@ -35,10 +38,10 @@ ensc_syscall_tmp_src=ENSC_MARK ]) ensc_syscall_tmp_nr= ensc_syscall_tmp_src= - test "$ensc_syscall_tmp_nr" || \ - eval $($CPP $CPPFLAGS -D ENSC_MARK='glibc' conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[[1-9]][[0-9]]*;|src=.*)$') - test "$ensc_syscall_tmp_nr" || \ - eval $($CPP $CPPFLAGS -D ENSC_MARK='kernel' -I $ensc_cv_path_kernelheaders conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[[1-9]][[0-9]]*;|src=.*)$') + test x"$ensc_syscall_tmp_nr" != x || \ + eval $($CPP $CPPFLAGS -D ENSC_MARK='glibc' conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[[1-9]][[0-9]]*;|src=.*)$') + test x"$ensc_syscall_tmp_nr" != x -o x'$3' = x || \ + eval $($CPP $CPPFLAGS -D ENSC_MARK='fallback' -D ENSC_SYSCALL_FALLBACK='"$3"' conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[[1-9]][[0-9]]*;|src=.*)$') test "$ensc_syscall_tmp_nr" || { ensc_syscall_tmp_nr=$2 ensc_syscall_tmp_src=default diff --git a/m4/ensc_uv_vrootdir.m4 b/m4/ensc_uv_vrootdir.m4 index cbf365c..f452ea5 100644 --- a/m4/ensc_uv_vrootdir.m4 +++ b/m4/ensc_uv_vrootdir.m4 @@ -1,4 +1,4 @@ -dnl $Id: ensc_uv_vrootdir.m4,v 1.2 2003/12/26 00:22:49 uid68581 Exp $ +dnl $Id: ensc_uv_vrootdir.m4 476 2003-12-26 00:22:49Z uid68581 $ dnl Copyright (C) 2002 Enrico Scholz dnl diff --git a/m4/gpgsig.am b/m4/gpgsig.am index 76ab2de..15de828 100644 --- a/m4/gpgsig.am +++ b/m4/gpgsig.am @@ -1,4 +1,4 @@ -## $Id: gpgsig.am,v 1.2 2004/05/21 15:46:40 ensc Exp $ +## $Id: gpgsig.am 1572 2004-05-21 15:46:40Z ensc $ ## Copyright (C) 2002 Enrico Scholz ## diff --git a/m4/install-notify.am b/m4/install-notify.am index 41ae8b9..8cd426e 100644 --- a/m4/install-notify.am +++ b/m4/install-notify.am @@ -1,4 +1,4 @@ -## $Id: install-notify.am,v 1.2 2005/05/05 09:17:41 ensc Exp $ +## $Id: install-notify.am 2083 2005-05-05 09:17:41Z ensc $ ## Copyright (C) 2005 Enrico Scholz ## diff --git a/m4/libsel.am b/m4/libsel.am index 7028752..697516d 100644 --- a/m4/libsel.am +++ b/m4/libsel.am @@ -1,4 +1,4 @@ -## $Id: libsel.am,v 1.1 2005/04/10 00:53:56 ensc Exp $ +## $Id: libsel.am 2009 2005-04-10 00:53:56Z ensc $ ## Copyright (C) 2002,2003 Enrico Scholz ## diff --git a/m4/pkgconfig.am b/m4/pkgconfig.am index e17d2af..8e96fdf 100644 --- a/m4/pkgconfig.am +++ b/m4/pkgconfig.am @@ -1,4 +1,4 @@ -## $Id: pkgconfig.am,v 1.1 2003/10/13 19:50:29 ensc Exp $ ---*- makefile -*--- +## $Id: pkgconfig.am 2188 2005-10-28 16:03:28Z ensc $ ---*- makefile -*--- ## Copyright (C) 2002 Enrico Scholz ## @@ -25,6 +25,17 @@ pkgconf_DATA = $(addsuffix .pc, $(PKGCONFIG_FILES)) CLEANFILES += $(addsuffix .pc, $(PKGCONFIG_FILES)) EXTRA_DIST += $(addsuffix .pc.subst, $(PKGCONFIG_FILES)) +pkgconf_SUBST = s!@'PACKAGE'@!$(PACKAGE)!g; \ + s!@'VERSION'@!$(VERSION)!g; \ + s!@'prefix'@!$(prefix)!g; \ + s!@'exec_prefix'@!$(exec_prefix)!g; \ + s!@'libdir'@!$(libdir)!g; \ + s!@'includedir'@!$(includedir)!g; \ + s!@'libflags"@!$${libflags}$(pkgconf_LIBFLAGS)!g;"' \ + s!@'incflags"@!$${incflags}$(pkgconf_INCFLAGS)!g;"' \ + s!@'pkgincflags"@!$${pkgincflags}$(pkgconf_PKGINCFLAGS)!g;"' \ + s!@'pkgincludedir'@!$(pkgincludedir)!g + %.pc: %.pc.subst Makefile rm -f $@ @@ -40,16 +51,6 @@ EXTRA_DIST += $(addsuffix .pc.subst, $(PKGCONFIG_FILES)) $(BAD_INC_PATHS)) incflags=;; \ *) incflags='-I$${includedir} ';; \ esac; \ - sed -e 's!@'PACKAGE'@!$(PACKAGE)!g; \ - s!@'VERSION'@!$(VERSION)!g; \ - s!@'prefix'@!$(prefix)!g; \ - s!@'exec_prefix'@!$(exec_prefix)!g; \ - s!@'libdir'@!$(libdir)!g; \ - s!@'includedir'@!$(includedir)!g; \ - s!@'libflags"@!$${libflags}$(pkgconf_LIBFLAGS)!g;"' \ - s!@'incflags"@!$${incflags}$(pkgconf_INCFLAGS)!g;"' \ - s!@'pkgincflags"@!$${pkgincflags}$(pkgconf_PKGINCFLAGS)!g;"' \ - s!@'pkgincludedir'@!$(pkgincludedir)!g' \ - $< >$@ + sed -e '$(pkgconf_SUBST)' $< >$@ test -z "$(CHMOD_REFERENCE)" || $(CHMOD_REFERENCE) '$<' '$@' chmod a-w $@ diff --git a/m4/validate.am b/m4/validate.am index 6373194..fd9fe3e 100644 --- a/m4/validate.am +++ b/m4/validate.am @@ -1,4 +1,4 @@ -## $Id: validate.am,v 1.3 2004/01/14 00:01:15 ensc Exp $ ---*- makefile -*--- +## $Id: validate.am 592 2004-01-14 00:01:15Z ensc $ ---*- makefile -*--- ## Copyright (C) 2002 Enrico Scholz ## diff --git a/man/Makefile-files b/man/Makefile-files index ddcca29..12996ca 100644 --- a/man/Makefile-files +++ b/man/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.4 2004/03/10 02:30:34 ensc Exp $ -*- makefile -*- +## $Id: Makefile-files 1192 2004-03-10 02:30:34Z ensc $ -*- makefile -*- ## Copyright (C) 2003 Enrico Scholz ## diff --git a/man/chcontext.8 b/man/chcontext.8 index 63bd721..190542a 100644 --- a/man/chcontext.8 +++ b/man/chcontext.8 @@ -1,4 +1,4 @@ -.TH "chcontext" "1" "0.1.0" "Klavs Klavsen " "System Administration" +.TH "chcontext" "8" "0.1.0" "Klavs Klavsen " "System Administration" .SH "NAME" .LP chcontext \- chcontext allocates a new security context and executes a command in that context. diff --git a/man/vserver-copy.8 b/man/vserver-copy.8 index 48e3cf2..9481c49 100644 --- a/man/vserver-copy.8 +++ b/man/vserver-copy.8 @@ -1,93 +1,93 @@ -.TH "vserver-copy" "8" "0.3" "Mark Lawrence " "System Administration" -.SH "NAME" -.LP -vserver-copy \- copy/move a virtual server. -.SH "SYNTAX" -.LP -vserver-copy [\fIoptions\fP] \fIvserver\fP \fInewname\fP -.LP -vserver-copy [\fIoptions\fP] \fIvserver\fP \fIhost\fP:[\fInewname\fP] -.SH "DESCRIPTION" -.LP -vserver-copy makes a copy of a virtual server using rsync. It will -rewrite the vserver.conf configuration file with the new hostname and -IP information when given. If the destination name contains a host -specification then ssh/rsh will be used for the data transfer. - -vserver-copy can used on a running vserver, although naturally the -consistency of open database files and the like cannot be guaranteed. -A running vserver can however be safely moved from one root host to another -using the \-s flag. - -If downtime is an issue when moving a virtual server across hosts you -should first run vserver without the \-s flag. This will pre\-populate the -destination filesystem requiring only updates to be made on the next -invocation. -.SH "OPTIONS" -.LP -.TP -\fB\-h\fR,\fB-\-help\fR -output usage information and exit -.TP -\fB\-V\fR,\fB-\-version\fR -output version information and exit -.TP -\fB\-v\fR,\fB-\-verbose\fR -show all output (normally only informational messages and warnings) -.TP -\fB\-q\fR,\fB-\-quiet\fR -suppress all output -.TP -\fB\-d\fR,\fB-\-domain\fR domain -the new DNS domain when changing name. Overwrites /etc/hosts. Must be -used with \-i -.TP -\fB\-i\fR,\fB-\-ip\fR address -the new IP address when changing name. Overwrites /etc/hosts. Must be -used with \-d -.TP -\fB\-r\fR,\fB-\-vsroot\fR -directory containing virtual servers. Defaults to "/vserver" -.TP -\fB\-R\fR,\fB-\-rsh\fR -use rsh instead of the default ssh for network transfer -.TP -\fB\-s\fR,\fB-\-stopstart\fR -stop the virtual server before copying and start the new vserver afterwards. -This really only makes sense if you are copying across root hosts and not -changing names or IP addresses. -.SH "FILES" -.LP -\fI/etc/vservers/vserver.conf\fP -.SH "EXAMPLES" -.LP -# Copy a template vserver (same IP addresses etc) - -/usr/sbin/vserver-copy template web01 - -# Copy webserver with change in configuration - -/usr/sbin/vserver-copy -i 192.168.5.62 -d example.com template web62 - -# Move a running vserver to another roothost - -/usr/sbin/vserver-copy -s web62 roothost02: - -.SH "BUGS" -.LP -If a virtual server is moved from one root host to another a gratuitious -ping should be sent to inform other devices on the local area network -of the change in MAC address. - -Without this ping the devices will continue to attempt to reach the old -MAC address for the length of their arp-cache timeout (10 minute default -on Suns!). - -This functionality should probably be implmemented during the -"vserver start" process. -.SH "AUTHOR" -.LP -Mark Lawrence -.SH "SEE ALSO" -.LP -vserver(8) +.TH "vserver-copy" "8" "0.3" "Mark Lawrence " "System Administration" +.SH "NAME" +.LP +vserver-copy \- copy/move a virtual server. +.SH "SYNTAX" +.LP +vserver-copy [\fIoptions\fP] \fIvserver\fP \fInewname\fP +.LP +vserver-copy [\fIoptions\fP] \fIvserver\fP \fIhost\fP:[\fInewname\fP] +.SH "DESCRIPTION" +.LP +vserver-copy makes a copy of a virtual server using rsync. It will +rewrite the vserver.conf configuration file with the new hostname and +IP information when given. If the destination name contains a host +specification then ssh/rsh will be used for the data transfer. + +vserver-copy can used on a running vserver, although naturally the +consistency of open database files and the like cannot be guaranteed. +A running vserver can however be safely moved from one root host to another +using the \-s flag. + +If downtime is an issue when moving a virtual server across hosts you +should first run vserver without the \-s flag. This will pre\-populate the +destination filesystem requiring only updates to be made on the next +invocation. +.SH "OPTIONS" +.LP +.TP +\fB\-h\fR,\fB-\-help\fR +output usage information and exit +.TP +\fB\-V\fR,\fB-\-version\fR +output version information and exit +.TP +\fB\-v\fR,\fB-\-verbose\fR +show all output (normally only informational messages and warnings) +.TP +\fB\-q\fR,\fB-\-quiet\fR +suppress all output +.TP +\fB\-d\fR,\fB-\-domain\fR domain +the new DNS domain when changing name. Overwrites /etc/hosts. Must be +used with \-i +.TP +\fB\-i\fR,\fB-\-ip\fR address +the new IP address when changing name. Overwrites /etc/hosts. Must be +used with \-d +.TP +\fB\-r\fR,\fB-\-vsroot\fR +directory containing virtual servers. Defaults to "/vserver" +.TP +\fB\-R\fR,\fB-\-rsh\fR +use rsh instead of the default ssh for network transfer +.TP +\fB\-s\fR,\fB-\-stopstart\fR +stop the virtual server before copying and start the new vserver afterwards. +This really only makes sense if you are copying across root hosts and not +changing names or IP addresses. +.SH "FILES" +.LP +\fI/etc/vservers/vserver.conf\fP +.SH "EXAMPLES" +.LP +# Copy a template vserver (same IP addresses etc) + +/usr/sbin/vserver-copy template web01 + +# Copy webserver with change in configuration + +/usr/sbin/vserver-copy -i 192.168.5.62 -d example.com template web62 + +# Move a running vserver to another roothost + +/usr/sbin/vserver-copy -s web62 roothost02: + +.SH "BUGS" +.LP +If a virtual server is moved from one root host to another a gratuitious +ping should be sent to inform other devices on the local area network +of the change in MAC address. + +Without this ping the devices will continue to attempt to reach the old +MAC address for the length of their arp-cache timeout (10 minute default +on Suns!). + +This functionality should probably be implmemented during the +"vserver start" process. +.SH "AUTHOR" +.LP +Mark Lawrence +.SH "SEE ALSO" +.LP +vserver(8) diff --git a/missing b/missing index 09edd88..894e786 100755 --- a/missing +++ b/missing @@ -1,7 +1,7 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2005-02-08.22 +scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. @@ -19,8 +19,8 @@ scriptversion=2005-02-08.22 # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -297,6 +297,9 @@ WARNING: \`$1' is $msg. You should only need it if # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 touch $file ;; diff --git a/pathconfig.h.pathsubst b/pathconfig.h.pathsubst index 8e0f72b..8c953aa 100644 --- a/pathconfig.h.pathsubst +++ b/pathconfig.h.pathsubst @@ -1,4 +1,4 @@ -// $Id: pathconfig.h.pathsubst,v 1.11 2004/08/19 14:06:59 ensc Exp $ --*- c++ -*-- +// $Id: pathconfig.h.pathsubst 2283 2006-09-10 17:07:57Z hollow $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz // diff --git a/python/Makefile b/python/Makefile index 5007d34..36c4411 100644 --- a/python/Makefile +++ b/python/Makefile @@ -5,14 +5,14 @@ # Mark Huang # Copyright (C) 2005 The Trustees of Princeton University # -# $Id: Makefile,v 1.11 2006/03/01 22:03:38 mlhuang Exp $ +# $Id: Makefile,v 1.13 2007/06/29 19:02:15 dhozac Exp $ # INCLUDES := -I.. -I../lib LIBS = -L../lib -lvserver PY_MODS := vserver.py cpulimit.py bwlimit.py -PY_EXT_MODS := vduimpl.so vserverimpl.so +PY_EXT_MODS := vserverimpl.so LT_LINK = ../libtool --tag=CC --mode=link diff --git a/python/vserver.py b/python/vserver.py index 6bddee1..ff87522 100644 --- a/python/vserver.py +++ b/python/vserver.py @@ -9,17 +9,26 @@ import signal import sys import time import traceback -import resource import mountimpl import runcmd import utmp -import vserverimpl, vduimpl +import vserverimpl import cpulimit, bwlimit from vserverimpl import VS_SCHED_CPU_GUARANTEED as SCHED_CPU_GUARANTEED from vserverimpl import DLIMIT_INF from vserverimpl import VC_LIM_KEEP + +from vserverimpl import RLIMIT_CPU +from vserverimpl import RLIMIT_RSS +from vserverimpl import RLIMIT_NPROC +from vserverimpl import RLIMIT_NOFILE +from vserverimpl import RLIMIT_MEMLOCK +from vserverimpl import RLIMIT_AS +from vserverimpl import RLIMIT_LOCKS +from vserverimpl import RLIMIT_SIGPENDING +from vserverimpl import RLIMIT_MSGQUEUE from vserverimpl import VLIMIT_NSOCK from vserverimpl import VLIMIT_OPENFD from vserverimpl import VLIMIT_ANON @@ -37,23 +46,73 @@ FLAGS_HIDEINFO = 32 FLAGS_ULIMIT = 64 FLAGS_NAMESPACE = 128 -RLIMITS = { "NSOCK": VLIMIT_NSOCK, - "OPENFD": VLIMIT_OPENFD, - "ANON": VLIMIT_ANON, - "SHMEM": VLIMIT_SHMEM} - -# add in the platform supported rlimits -for entry in resource.__dict__.keys(): - if entry.find("RLIMIT_")==0: - k = entry[len("RLIMIT_"):] - if not RLIMITS.has_key(k): - RLIMITS[k]=resource.__dict__[entry] - else: - print "WARNING: duplicate RLIMITS key %s" % k +RLIMITS = {"CPU": RLIMIT_CPU, + "RSS": RLIMIT_RSS, + "NPROC": RLIMIT_NPROC, + "NOFILE": RLIMIT_NOFILE, + "MEMLOCK": RLIMIT_MEMLOCK, + "AS": RLIMIT_AS, + "LOCKS": RLIMIT_LOCKS, + "SIGPENDING": RLIMIT_SIGPENDING, + "MSGQUEUE": RLIMIT_MSGQUEUE, + "NSOCK": VLIMIT_NSOCK, + "OPENFD": VLIMIT_OPENFD, + "ANON": VLIMIT_ANON, + "SHMEM": VLIMIT_SHMEM} class NoSuchVServer(Exception): pass +class VServerConfig: + mapping = { + 'S_CONTEXT': 'context', + 'VS_WHITELISTED': 'whitelisted', + 'CPULIMIT': 'sched/fill-rate2', + 'CPUGUARANTEED': 'sched/fill-rate', + 'VS_DISK_MAX': 'dlimits/0/space_total', + } + + def __init__(self, name, directory): + global RLIMITS + for i in RLIMITS.keys(): + for j in ('HARD', 'SOFT', 'MINIMUM'): + self.mapping['VS_%s_%s' % (i, j)] = 'rlimits/%s.%s' % (i.lower(), j.replace('MINIMUM', 'min').lower()) + self.name = name + self.dir = directory + + def get(self, option, default = None): + try: + filename = self.mapping[option] + f = open(os.path.join(self.dir, filename), "r") + buf = f.readline().rstrip() + f.close() + return buf + except KeyError, e: + # No mapping exists for this option + raise e + except IOError, e: + if default is not None: + return default + else: + raise KeyError, "Key %s is not set for %s" % (option, self.name) + + def update(self, vars): + for (option, value) in vars.iteritems(): + try: + old_umask = os.umask(0022) + filename = os.path.join(self.dir, self.mapping[option]) + try: + os.makedirs(os.path.dirname(filename), 0755) + except: + pass + f = open(filename, 'w') + f.write("%s\n" % value) + f.close() + os.umask(old_umask) + except KeyError, e: + raise KeyError, "Don't know how to handle %s, sorry" % option + + class VServer: INITSCRIPTS = [('/etc/rc.vinit', 'start'), @@ -63,21 +122,14 @@ class VServer: self.name = name self.rlimits_changed = False - self.config_file = "/etc/vservers/%s.conf" % name self.dir = "%s/%s" % (vserverimpl.VSERVER_BASEDIR, name) if not (os.path.isdir(self.dir) and os.access(self.dir, os.R_OK | os.W_OK | os.X_OK)): raise NoSuchVServer, "no such vserver: " + name - self.config = {} - for config_file in ["/etc/vservers.conf", self.config_file]: - try: - self.config.update(self.__read_config_file(config_file)) - except IOError, ex: - if ex.errno != errno.ENOENT: - raise + self.config = VServerConfig(name, "/etc/vservers/%s" % name) self.remove_caps = ~vserverimpl.CAP_SAFE; if vm_id == None: - vm_id = int(self.config['S_CONTEXT']) + vm_id = int(self.config.get('S_CONTEXT')) self.ctx = vm_id self.vm_running = vm_running @@ -138,51 +190,6 @@ class VServer: resources = {'VS_WHITELISTED': whitelisted} self.update_resources(resources) - config_var_re = re.compile(r"^ *([A-Z_]+)=(.*)\n?$", re.MULTILINE) - - def __read_config_file(self, filename): - - f = open(filename, "r") - data = f.read() - f.close() - config = {} - for m in self.config_var_re.finditer(data): - (key, val) = m.groups() - config[key] = val.strip('"') - return config - - def __update_config_file(self, filename, newvars): - - # read old file, apply changes - f = open(filename, "r") - data = f.read() - f.close() - todo = newvars.copy() - changed = False - offset = 0 - for m in self.config_var_re.finditer(data): - (key, val) = m.groups() - newval = todo.pop(key, None) - if newval != None: - data = data[:offset+m.start(2)] + str(newval) + data[offset+m.end(2):] - offset += len(str(newval)) - (m.end(2)-m.start(2)) - changed = True - for (newkey, newval) in todo.items(): - data += "%s=%s\n" % (newkey, newval) - changed = True - - if not changed: - return - - # write new file - newfile = filename + ".new" - f = open(newfile, "w") - f.write(data) - f.close() - - # replace old file with new - os.rename(newfile, filename) - def __do_chroot(self): os.chroot(self.dir) @@ -301,8 +308,7 @@ class VServer: def __do_chcontext(self, state_file): if state_file: - print >>state_file, "S_CONTEXT=%u" % self.ctx - print >>state_file, "S_PROFILE=" + print >>state_file, "%u" % self.ctx state_file.close() if vserverimpl.chcontext(self.ctx): @@ -326,9 +332,8 @@ class VServer: ([], filter_fn))[0] garbage += filter(os.path.isfile, map((LOCKDIR + "/").__add__, os.listdir(LOCKDIR))) - if False: - for f in garbage: - os.unlink(f) + for f in garbage: + os.unlink(f) # set the initial runlevel f = open(RUNDIR + "/utmp", "w") @@ -351,10 +356,8 @@ class VServer: raise ex def enter(self): - - state_file = open("/var/run/vservers/%s.ctx" % self.name, "w") self.__do_chroot() - self.__do_chcontext(state_file) + self.__do_chcontext(None) def start(self, wait, runlevel = 3): self.vm_running = True @@ -368,7 +371,7 @@ class VServer: os.setsid() # open state file to record vserver info - state_file = open("/var/run/vservers/%s.ctx" % self.name, "w") + state_file = open("/var/run/vservers/%s" % self.name, "w") # use /dev/null for stdin, /var/log/boot.log for stdout/err os.close(0) @@ -418,14 +421,19 @@ class VServer: self.config.update(resources) - # write new values to configuration file - self.__update_config_file(self.config_file, resources) - def init_disk_info(self): - - (self.disk_inodes, self.disk_blocks, size) = vduimpl.vdu(self.dir) - - return size + cmd = "/usr/sbin/vdu --script --space --inodes --blocksize 1024 --xid %d %s" % (self.ctx, self.dir) + (child_stdin, child_stdout, child_stderr) = os.popen3(cmd) + child_stdin.close() + line = child_stdout.readline() + if not line: + sys.stderr.write(child_stderr.readline()) + (space, inodes) = line.split() + self.disk_inodes = int(inodes) + self.disk_blocks = int(space) + #(self.disk_inodes, self.disk_blocks) = vduimpl.vdu(self.dir) + + return self.disk_blocks * 1024 def stop(self, signal = signal.SIGKILL): vserverimpl.killall(self.ctx, signal) diff --git a/python/vserverimpl.c b/python/vserverimpl.c index 0bbd2c1..d16dfa3 100644 --- a/python/vserverimpl.c +++ b/python/vserverimpl.c @@ -47,11 +47,6 @@ POSSIBILITY OF SUCH DAMAGE. #include "planetlab.h" #include "vserver-internal.h" -/* I don't like needing to define __KERNEL__ -- mef */ -#define __KERNEL__ -#include "kernel/limit.h" -#undef __KERNEL__ - #define NONE ({ Py_INCREF(Py_None); Py_None; }) /* @@ -153,11 +148,11 @@ vserver_set_rlimit(PyObject *self, PyObject *args) { lresource = resource; switch (resource) { - case VLIMIT_NSOCK: - case VLIMIT_ANON: - case VLIMIT_SHMEM: + case VC_VLIMIT_NSOCK: + case VC_VLIMIT_ANON: + case VC_VLIMIT_SHMEM: goto do_vc_set_rlimit; - case VLIMIT_OPENFD: + case VC_VLIMIT_OPENFD: lresource = RLIMIT_NOFILE; break; default: @@ -206,16 +201,14 @@ vserver_get_dlimit(PyObject *self, PyObject *args) PyObject *res; char* path; unsigned xid; - struct vcmd_ctx_dlimit_v0 data; + struct vc_ctx_dlimit data; int r; if (!PyArg_ParseTuple(args, "si", &path,&xid)) return NULL; memset(&data, 0, sizeof(data)); - data.name = path; - data.flags = 0; - r = vserver(VCMD_get_dlimit, xid, &data); + r = vc_get_dlimit(path, xid, 0, &data); if (r>=0) { res = Py_BuildValue("(i,i,i,i,i)", data.space_used, @@ -236,8 +229,7 @@ vserver_set_dlimit(PyObject *self, PyObject *args) { char* path; unsigned xid; - struct vcmd_ctx_dlimit_base_v0 init; - struct vcmd_ctx_dlimit_v0 data; + struct vc_ctx_dlimit data; memset(&data,0,sizeof(data)); if (!PyArg_ParseTuple(args, "siiiiii", &path, @@ -249,15 +241,8 @@ vserver_set_dlimit(PyObject *self, PyObject *args) &data.reserved)) return NULL; - data.name = path; - data.flags = 0; - - memset(&init, 0, sizeof(init)); - init.name = path; - init.flags = 0; - - if ((vserver(VCMD_add_dlimit, xid, &init) && errno != EEXIST) || - vserver(VCMD_set_dlimit, xid, &data)) + if ((vc_add_dlimit(path, xid, 0) && errno != EEXIST) || + vc_set_dlimit(path, xid, 0, &data)) return PyErr_SetFromErrno(PyExc_OSError); return NONE; @@ -268,16 +253,11 @@ vserver_unset_dlimit(PyObject *self, PyObject *args) { char *path; unsigned xid; - struct vcmd_ctx_dlimit_base_v0 init; if (!PyArg_ParseTuple(args, "si", &path, &xid)) return NULL; - memset(&init, 0, sizeof(init)); - init.name = path; - init.flags = 0; - - if (vserver(VCMD_rem_dlimit, xid, &init) && errno != ESRCH) + if (vc_rem_dlimit(path, xid, 0) && errno != ESRCH) return PyErr_SetFromErrno(PyExc_OSError); return NONE; @@ -336,14 +316,25 @@ initvserverimpl(void) PyModule_AddStringConstant(mod, "VSERVER_BASEDIR", DEFAULT_VSERVERDIR); /* export limit-related constants */ - PyModule_AddIntConstant(mod, "DLIMIT_KEEP", (int)CDLIM_KEEP); - PyModule_AddIntConstant(mod, "DLIMIT_INF", (int)CDLIM_INFINITY); + PyModule_AddIntConstant(mod, "DLIMIT_KEEP", (int)VC_CDLIM_KEEP); + PyModule_AddIntConstant(mod, "DLIMIT_INF", (int)VC_CDLIM_INFINITY); PyModule_AddIntConstant(mod, "VC_LIM_KEEP", (int)VC_LIM_KEEP); - PyModule_AddIntConstant(mod, "VLIMIT_NSOCK", (int)VLIMIT_NSOCK); - PyModule_AddIntConstant(mod, "VLIMIT_OPENFD", (int)VLIMIT_OPENFD); - PyModule_AddIntConstant(mod, "VLIMIT_ANON", (int)VLIMIT_ANON); - PyModule_AddIntConstant(mod, "VLIMIT_SHMEM", (int)VLIMIT_SHMEM); + PyModule_AddIntConstant(mod, "RLIMIT_CPU", (int)RLIMIT_CPU); + PyModule_AddIntConstant(mod, "RLIMIT_RSS", (int)RLIMIT_RSS); + PyModule_AddIntConstant(mod, "RLIMIT_NPROC", (int)RLIMIT_NPROC); + PyModule_AddIntConstant(mod, "RLIMIT_NOFILE", (int)RLIMIT_NOFILE); + PyModule_AddIntConstant(mod, "RLIMIT_MEMLOCK", (int)RLIMIT_MEMLOCK); + PyModule_AddIntConstant(mod, "RLIMIT_AS", (int)RLIMIT_AS); + PyModule_AddIntConstant(mod, "RLIMIT_LOCKS", (int)RLIMIT_LOCKS); + + PyModule_AddIntConstant(mod, "RLIMIT_SIGPENDING", (int)RLIMIT_SIGPENDING); + PyModule_AddIntConstant(mod, "RLIMIT_MSGQUEUE", (int)RLIMIT_MSGQUEUE); + + PyModule_AddIntConstant(mod, "VLIMIT_NSOCK", (int)VC_VLIMIT_NSOCK); + PyModule_AddIntConstant(mod, "VLIMIT_OPENFD", (int)VC_VLIMIT_OPENFD); + PyModule_AddIntConstant(mod, "VLIMIT_ANON", (int)VC_VLIMIT_ANON); + PyModule_AddIntConstant(mod, "VLIMIT_SHMEM", (int)VC_VLIMIT_SHMEM); /* scheduler flags */ PyModule_AddIntConstant(mod, diff --git a/scripts/Makefile-files b/scripts/Makefile-files index 57e6206..329286c 100644 --- a/scripts/Makefile-files +++ b/scripts/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.33 2005/04/28 17:45:34 ensc Exp $ -*- makefile -*- +## $Id: Makefile-files 2470 2007-01-21 20:17:14Z dhozac $ -*- makefile -*- ## Copyright (C) 2003 Enrico Scholz ## @@ -38,11 +38,16 @@ AM_INSTALLCHECK_STD_OPTIONS_EXEMPT += \ scripts_pkglib_src_DTA = scripts/functions \ + scripts/magic.mime \ scripts/vserver-build.apt-rpm \ scripts/vserver-build.skeleton \ scripts/vserver-build.debootstrap \ + scripts/vserver-build.fai \ scripts/vserver-build.rpm \ scripts/vserver-build.yum \ + scripts/vserver-build.template \ + scripts/vserver-build.rsync \ + scripts/vserver-build.clone \ scripts/vserver-build.functions \ scripts/vserver-build.functions.apt \ scripts/vserver-build.functions.rpm \ @@ -52,7 +57,9 @@ scripts_pkglib_src_DTA = scripts/functions \ scripts/vserver.functions \ scripts/vserver.start \ scripts/vserver.stop \ - scripts/vserver.suexec + scripts/vserver.suexec \ + scripts/vserver.delete \ + scripts/vserver-init.functions scripts_pkglib_gen_DTA = scripts/util-vserver-vars @@ -78,14 +85,19 @@ scripts_legacy_src_SCRPTS = scripts/legacy/save_s_context \ scripts_legacy_gen_SCRPTS = scripts/legacy/vps scripts_legacy_src_PRGS = scripts/legacy/vserver-copy -scripts_sbin_src_PRGS = scripts/chcontext \ +scripts_sbin_src_PRGS = scripts/chbind \ + scripts/chcontext \ scripts/vapt-get \ + scripts/vdispatch-conf \ + scripts/vemerge \ + scripts/vesync \ scripts/vpstree \ scripts/vrpm \ scripts/vserver \ scripts/vsomething \ scripts/vtop \ scripts/vcached \ + scripts/vupdateworld \ scripts/vuseradd \ scripts/vuserdel \ scripts/vyum diff --git a/scripts/chbind b/scripts/chbind new file mode 100755 index 0000000..ae82ed0 --- /dev/null +++ b/scripts/chbind @@ -0,0 +1,132 @@ +#! /bin/bash +# $Id: chbind 2394 2006-11-23 21:12:26Z dhozac $ + +# Copyright (C) 2004 Enrico Scholz +# Copyright (C) 2006 Daniel Hokka Zakrisson +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + +function showHelp() +{ + echo \ +$"Usage: $1 [--silent] [--nid ] [--ip [/]] + [--bcast ] [--] * + +--silent + Do not print the addresses assigned. +--nid + Network context id to use. +--ip [/] + IP address to bind to. +--bcast + Broadcast address for the network context. + +Report bugs to <$PACKAGE_BUGREPORT>." + exit $2 +} + +function showVersion() +{ + echo \ +$"chbind $PACKAGE_VERSION -- bind to IP addresses and execute a program +This program is part of $PACKAGE_STRING + +Copyright (C) 2004 Enrico Scholz +Copyright (C) 2006 Daniel Hokka Zakrisson +This program is free software; you may redistribute it under the terms of +the GNU General Public License. This program has absolutely no warranty." + exit $1 +} + +tmp=$(getopt -o + --long ncap:,nid:,ip:,bcast:,disconnect,flag:,secure,silent,help,version -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +OPT_CAPS=() +OPT_NID= +OPT_DISCONNECT= +OPT_FLAGS=() +OPT_SECURE= +OPT_SILENT= +OPT_BCAST= +OPT_IPS=() + +while true; do + case "$1" in + --help) showHelp $0 0;; + --version) showVersion 0;; + --ncap) OPT_CAPS=( "${OPT_CAPS[@]}" "$2" ); shift;; + --nid) OPT_NID=$2; shift;; + --disconnect) OPT_DISCONNECT=1;; + --flag) OPT_FLAGS=( "${OPT_FLAGS[@]}" "$2" ); shift;; + --secure) OPT_SECURE=1;; + --silent) OPT_SILENT=1;; + --ip) OPT_IPS=( "${OPT_IPS[@]}" --ip "$2" ); shift;; + --bcast) OPT_BCAST=$2; shift;; + --) shift; break;; + *) echo $"chbind: internal error; arg=='$1'" >&2; exit 1;; + esac + shift +done + +$_VSERVER_INFO - FEATURE vnet || exec $_CHBIND_COMPAT \ + ${OPT_NID:+--nid "$OPT_NID"} \ + ${OPT_SILENT:+--silent} \ + ${OPT_BCAST:+--bcast "$OPT_BCAST"} \ + "${OPT_IPS[@]}" \ + -- "$@" + +create_cmd=( $_NCONTEXT --create --silentexist + ${OPT_SILENT:+--silent} + ${OPT_NID:+--nid "$OPT_NID"} ) + +chain_cmd=() + +old_IFS=$IFS +IFS=,$IFS + +chain_cmd=( "${chain_cmd[@]}" + -- + $_NATTRIBUTE --set + ${OPT_SECURE:+--secure} + ${OPT_CAPS:+--ncap "${OPT_CAPS[*]}"} + ${OPT_FLAGS:+--flag "${OPT_FLAGS[*]}"} + -- + $_NADDRESS --add + ${OPT_SILENT:+--silent} + ${OPT_BCAST:+--bcast "$OPT_BCAST"} + "${OPT_IPS[@]}" ) + +migrate_cmd=( $_NCONTEXT + ${OPT_SILENT:+--silent} + ${OPT_DISCONNECT:+--disconnect} ) + +IFS=$old_IFS + +if test -z "$OPT_NID" || $_VSERVER_INFO -q "$OPT_NID" XIDTYPE static; then + "${create_cmd[@]}" "${chain_cmd[@]}" -- "$@" + rc=$? +else + rc=254 +fi + +test "$rc" -ne 254 || exec "${migrate_cmd[@]}" --nid "$OPT_NID" --migrate -- "$@" +exit $rc diff --git a/scripts/chcontext b/scripts/chcontext index bfe2d51..905d7e3 100755 --- a/scripts/chcontext +++ b/scripts/chcontext @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: chcontext,v 1.19 2005/04/08 19:14:47 ensc Exp $ +# $Id: chcontext 2383 2006-11-17 18:48:33Z dhozac $ # Copyright (C) 2004 Enrico Scholz # @@ -27,7 +27,7 @@ test -e "$UTIL_VSERVER_VARS" || { function showHelp() { echo \ -$"Usage: /usr/sbin/chcontext [--cap [!]] [--secure] [--xid ] [--disconnect] +$"Usage: $1 [--cap [!]] [--secure] [--xid ] [--disconnect] [--domainname ] [--hostname ] [--flag +] [--silent] [--] command arguments ... @@ -84,7 +84,7 @@ By default, a new/unused context is allocated Do not print the allocated context number. Report bugs to <$PACKAGE_BUGREPORT>." - exit $1 + exit $2 } function showVersion() @@ -114,8 +114,8 @@ OPT_INITPID= while true; do case "$1" in - --help) showHelp $0 ;; - --version) showVersion ;; + --help) showHelp $0 0;; + --version) showVersion 0;; --cap) OPT_CAPS=( "${OPT_CAPS[@]}" "$2" ); shift;; --ctx|--xid) OPT_CTX=$2; shift;; --disconnect) OPT_DISCONNECT=1;; @@ -153,9 +153,9 @@ test -z "$OPT_DOMAINNAME$OPT_HOSTNAME" || \ chain_cmd=( "${chain_cmd[@]}" -- $_VATTRIBUTE --set + ${OPT_SECURE:+--secure} ${OPT_CAPS:+--bcap "${OPT_CAPS[*]}"} - ${OPT_FLAGS:+--flag "${OPT_FLAGS[*]}"} - ${OPT_SECURE:+--secure} ) + ${OPT_FLAGS:+--flag "${OPT_FLAGS[*]}"} ) migrate_cmd=( $_VCONTEXT ${OPT_SILENT:+--silent} diff --git a/scripts/functions b/scripts/functions index a8f451d..9c5a002 100644 --- a/scripts/functions +++ b/scripts/functions @@ -1,6 +1,6 @@ -# $Id: functions,v 1.62 2005/07/03 17:42:49 ensc Exp $ --*- sh -*-- +# $Id: functions 2531 2007-04-21 14:04:35Z dhozac $ --*- sh -*-- -# Copyright (C) 2003 Enrico Scholz +# Copyright (C) 2003,2004,2005,2006 Enrico Scholz # # 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 @@ -84,6 +84,29 @@ function getPhysicalDir ( set -P && cd "$1" && pwd ) } +## Usage:: isDirectoryEmpty [] +function isDirectoryEmpty +{ + ( + shopt -s dotglob || * + shopt -s nullglob || * + + ignore_lostfound=1 + test -z "$2" -o "$2" = 0 || ignore_lostfound= + + for i in "$1"/*; do + case "$i" in + ($1/lost+found) + test "$ignore_lostfound" || exit 1 + ;; + (*) echo "$i"; exit 1 + esac + done + + exit 0 + ) +} + ## Usage: logging function logging { @@ -180,11 +203,34 @@ function colorize esac fi - "$@" + ( "$@" ) echo -ne "\e[m" fi } +function colpanic +{ + if test -n "$_VS_ERRFILE"; then + echo "$@" >>"$_VS_ERRFILE" + else + colorize error echo -n "$@" >&2 + fi + echo + + exit 1 +} + +function colwarning +{ + colorize warning warning "$@" +} + +function colinfo +{ + colorize info echo "$@" +} + + ## Usage: xtermTitle function xtermTitle { @@ -196,7 +242,7 @@ _VS_LOCKS='' ## Usage: lock <lockfile> [<timeout>] function lock { - local tmp=$($_MKTEMP /tmp/vserver-lock.XXXXXX) + local tmp=$($_MKTEMP vserver-lock.XXXXXX) $_RM -f $tmp $_MKFIFO -m600 $tmp @@ -222,6 +268,39 @@ function unlock _VS_LOCKS="$@" } +function get_init_cwd +{ + if test -n "$INIT_CWD"; then + echo "$INIT_CWD" + else + pwd + fi +} +function set_init_cwd +{ + INIT_CWD="`pwd`" + export INIT_CWD +} + +function _setVserverDir +{ + local vserver="$1" + case "$vserver" in + ./*) VSERVER_DIR="`get_init_cwd`/$vserver";; + /*) VSERVER_DIR="$vserver" ;; + *) VSERVER_DIR="$__CONFDIR/$vserver" ;; + esac +} + +function _setVserverName +{ + if test -e "$VSERVER_DIR"/name; then + read VSERVER_NAME <"$VSERVER_DIR"/name + else + VSERVER_NAME=$(basename "$VSERVER_DIR") + fi +} + function _pkgMountBindDir() { test "$1" != "$2" || return 0 @@ -434,6 +513,19 @@ function isAvoidNamespace -e "$cfgdir"/nonamespace } +function isNamespaceCleanup +{ + local cfgdir + + $_VSERVER_INFO - FEATURE namespace || return 1 + cfgdir=$($_VSERVER_INFO "$1" CFGDIR) || return 1 + isAvoidNamespace "$1" && return 1 + test -e "$cfgdir"/namespace-cleanup && return 0 + test -e "$cfgdir"/nonamespace-cleanup -o \ + -e "$__CONFDIR"/.defaults/nonamespace-cleanup && return 1 + return 0 +} + ## Usage: getAllVservers <var> [<KIND>*] function getAllVservers { @@ -489,7 +581,7 @@ function _getProcNumberCount # Use /proc/virtual from kernel 2.6 when possible if test -d "/proc/virtual"; then - set -- $($_GREP '^PROC:' "/proc/virtual/$1/limit" 2>/dev/null) + set -- $($_GREP '^Tasks:' "/proc/virtual/$1/status" 2>/dev/null) _gp_procnr_cnt=$2 else _gp_procnr_cnt=$($_VPS ax | $_AWK '{print $2}' | $_GREP -x "$1" | $_WC -l ) @@ -554,13 +646,17 @@ function getFileValue eval read "$_gfv_var" <"$_gfv_file" } -## Called as 'getFileArray <varname> <filename>' +## Called as 'getFileArray <varname> <filename>+' function getFileArray { - test -r "$2" || return 1 - + local _gfa_var=$1 + local _gfa_file + shift + + findFile _gfa_file "$@" '' + test -n "$_gfa_file" -a -r "$_gfa_file" || return 0 local IFS=$_VS_NEWLINE - eval "$1"='( $(< "$2") )' + eval "$_gfa_var"='( $(< "$_gfa_file") )' } function checkComponents @@ -627,8 +723,12 @@ function setDefaultTTY "$__CONFDIR/.defaults/apps/init/tty" \ $2 /dev/null - exec <$ttyname - exec &>$ttyname + if test -f "$ttyname"; then + exec </dev/null + else + exec <$ttyname + fi + exec >>$ttyname 2>&1 } ## Usage: killContext <XID> [<SIG>] @@ -643,6 +743,11 @@ function killContext #$_VKILL -s CONT --xid "$1" 1 &>/dev/null || : } +function useVlogin +{ + test ! -e "$__CONFDIR/.defaults/apps/vlogin/disable" +} + ## Usage: pkgmgmt.guessStyle <vserver> <resultvar> function pkgmgmt.guessStyle() { @@ -753,9 +858,11 @@ function vshelper.doSanityCheck vshelper=$(cat "$proc_file") $_CMP -s "$vshelper" "$_VSHELPER" || { + local readable="" + test -r "$vshelper" && readable=1 warnings=( "${warnings[@]}" $"The configured vshelper '$vshelper' does not match the 'vshelper' - script of the util-vserver package" + script of the util-vserver package.${readable:+ Maybe you have two versions installed?}" ) solution_disable=1 solution_sysctl=1 @@ -923,7 +1030,7 @@ function vshelper.doDestroy function vshelper.initSync { local _vis_tmpdir - _vis_tmpdir=$($_MKTEMPDIR /tmp/vserver-stop.XXXXXX) || { + _vis_tmpdir=$($_MKTEMPDIR vserver-stop.XXXXXX) || { warning $"Failed to generate temporary directory for vshelper sync" return 1 } @@ -946,6 +1053,36 @@ function vshelper.getSyncTimeout eval $2=\$_vgst_tmp } +function vshelper.initStopSync +{ + local _iss_sync_dir=$($_MKTEMPDIR vshelper-stop-sync.XXXXXX) || { + warning $"Failed to generate directory for vshelper sync" + exit 1 + } + $_MKFIFO -m700 "$_iss_sync_dir/pipe" + + eval "$1"=\$_iss_sync_dir + VSHELPER_STOP_SYNC="$_iss_sync_dir/pipe" + export VSHELPER_STOP_SYNC +} + +function vshelper.waitForStopSync +{ + local sync_dir=$1 + cat "$sync_dir/pipe" &> /dev/null + rm -fr "$sync_dir" +} + +function vshelper.doStopSync +{ + test ! -p "$VSHELPER_STOP_SYNC" || echo stopped > "$VSHELPER_STOP_SYNC" +} + +function vshelper.isStopSync +{ + test -p "$VSHELPER_STOP_SYNC" || return 1 + return 0 +} function _rpmFake.getCapFlags { diff --git a/scripts/legacy/vserver b/scripts/legacy/vserver index 9ff978f..a956475 100755 --- a/scripts/legacy/vserver +++ b/scripts/legacy/vserver @@ -396,7 +396,7 @@ elif [ "$2" = "start" ] ; then DOMAINOPT="--domainname $S_DOMAINNAME" fi if [ "$S_NICE" != "" ] ; then - NICECMD="nice -$S_NICE" + NICECMD="nice -n $S_NICE" fi mkdir -p $__PKGSTATEDIR chmod 700 $__PKGSTATEDIR @@ -491,6 +491,7 @@ elif [ "$2" = "stop" ] ; then export PATH=$DEFAULTPATH # XXX execute /etc/rc.vinit first for backward compatibility for CMD in "$VINIT_CMD $2" "$STOPCMD" ; do + $_CHBIND_COMPAT $SILENT $IPOPT --bcast $IPROOTBCAST \ $_CHCONTEXT_COMPAT $SILENT $CAPS --secure --ctx $S_CONTEXT \ $_CAPCHROOT . $STOPCMD done @@ -505,7 +506,8 @@ elif [ "$2" = "stop" ] ; then fi echo Killing all processes - $_CHCONTEXT_COMPAT $CAPS --secure --silent --ctx $S_CONTEXT \ + $_CHBIND_COMPAT --silent $IPOPT --bcast $IPROOTBCAST \ + $_CHCONTEXT_COMPAT $CAPS --secure --silent --ctx $S_CONTEXT \ $_VSERVERKILLALL fi # We umount anyway, because "enter" establish the mount @@ -576,7 +578,8 @@ elif [ "$2" = "suexec" ] ; then . $__PKGSTATEDIR/$VSERVER.ctx cd $__DEFAULT_VSERVERDIR/$VSERVER export PATH=$DEFAULTPATH - exec $_CHCONTEXT_COMPAT $SILENT $FLAGS $CAPS --secure --ctx $S_CONTEXT \ + exec $_CHBIND_COMPAT $SILENT $IPOPT --bcast $IPROOTBCAST \ + $_CHCONTEXT_COMPAT $SILENT $FLAGS $CAPS --secure --ctx $S_CONTEXT \ $_CAPCHROOT --suid $USERID . "$@" else test -x $__CONFDIR/$1.sh && $__CONFDIR/$1.sh pre-start $1 @@ -596,7 +599,8 @@ elif [ "$2" = "suexec" ] ; then mkdir -p $__PKGSTATEDIR cd $__DEFAULT_VSERVERDIR/$VSERVER export PATH=$DEFAULTPATH - exec $_CHCONTEXT_COMPAT $SILENT $FLAGS $CAPS --secure $CTXOPT $HOSTOPT $DOMAINOPT \ + exec $_CHBIND_COMPAT $SILENT $IPOPT --bcast $IPROOTBCAST \ + $_CHCONTEXT_COMPAT $SILENT $FLAGS $CAPS --secure $CTXOPT $HOSTOPT $DOMAINOPT \ $_SAVE_S_CONTEXT $__PKGSTATEDIR/$VSERVER.ctx \ $_CAPCHROOT --suid $USERID $CHROOTOPT . "$@" fi diff --git a/scripts/legacy/vserver-copy b/scripts/legacy/vserver-copy index d7b968f..792d563 100755 --- a/scripts/legacy/vserver-copy +++ b/scripts/legacy/vserver-copy @@ -295,7 +295,7 @@ fi info "Syncing directories" # trailing slashes very important in the rsync! -if ! rsync -avxz $rsflag $shcmd $vroot/ $dhost$colon$target/; then +if ! rsync -Havxz --numeric-ids $rsflag $shcmd $vroot/ $dhost$colon$target/; then error 1 "rsync failed" fi diff --git a/scripts/magic.mime b/scripts/magic.mime new file mode 100644 index 0000000..0e10d84 --- /dev/null +++ b/scripts/magic.mime @@ -0,0 +1,19 @@ +# Borrowed from file(1) +# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver) +0 string \037\213 application/x-gzip +# tar posix +257 string ustar\0 application/x-tar +# tar gnu +257 string ustar\040\040\0 application/x-tar +# cpio +0 short 070707 application/x-cpio +# cpio swapped +0 short 0143561 application/x-cpio +# bzip2 +0 string BZh application/x-bzip2 +# dump/restore new-fs big and little endian +24 belong 60012 application/x-dump +24 lelong 60012 application/x-dump +# dump/restore old-fs big and little endian +24 belong 60011 application/x-dump +24 lelong 60011 application/x-dump diff --git a/scripts/pkgmgmt b/scripts/pkgmgmt index 99cc96c..da52508 100755 --- a/scripts/pkgmgmt +++ b/scripts/pkgmgmt @@ -1,5 +1,5 @@ #!/bin/bash -# $Id: pkgmgmt,v 1.13 2005/07/03 17:43:34 ensc Exp $ +# $Id: pkgmgmt 2518 2007-03-18 22:15:07Z dhozac $ # Copyright (C) 2004,2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -23,6 +23,7 @@ test -e "$UTIL_VSERVER_VARS" || { } . "$UTIL_VSERVER_VARS" . "$_LIB_FUNCTIONS" +. "$_LIB_VSERVER_BUILD_FUNCTIONS" . "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT" . "$__PKGLIBDIR/vserver.functions" @@ -54,7 +55,6 @@ function init() else rpmdb_mntpoint=/.rpmdb fi - pkgmgmt.initVariables } function _createDirs() @@ -94,7 +94,7 @@ function _substFile() $_CHROOT_SH testfile "$file" || return 0 - local tmp=$($_MKTEMP /tmp/pkgmgmt_subst.XXXXXX) + local tmp=$($_MKTEMP pkgmgmt_subst.XXXXXX) trap "$_RM -f $tmp" EXIT $_CHROOT_SH cat "$file" | \ @@ -113,7 +113,7 @@ function _hashAuto() $_CHROOT_SH testfile "$file" || return 0 - local tmp=$($_MKTEMP /tmp/apt.conf.XXXXXX) + local tmp=$($_MKTEMP apt.conf.XXXXXX) trap "$_RM -f $tmp" EXIT $_CHROOT_SH cat "$file" | \ @@ -130,7 +130,7 @@ function _unhashAuto() test -e "$1" || return 0 local hash=$2 - local tmp=$($_MKTEMP /tmp/apt.conf.XXXXXX) + local tmp=$($_MKTEMP apt.conf.XXXXXX) trap "$_RM -f $tmp" EXIT $_SED -e "s|^$hash$hash\(.*@autogenerated@\)|\1|" "$1" >$tmp @@ -160,8 +160,9 @@ function _mountFilesystems() } test -n "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$1" - _mountFilesystemsInternal "$cfgdir"/fstab $_CHBIND "${CHBIND_OPTS[@]}" || return 1 - _mountFilesystemsInternal "$cfgdir"/fstab.local $_CHBIND "${CHBIND_OPTS[@]}" || return 1 + _mountFilesystemsInternal "$cfgdir"/fstab || return 1 + _mountFilesystemsInternal "$cfgdir"/fstab.local || return 1 + _mountFilesystemsInternal "$cfgdir"/fstab.remote $_CHBIND "${CHBIND_OPTS[@]}" || return 1 } function _umountFilesystems() @@ -176,8 +177,9 @@ function _umountFilesystems() test -n "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$1" pushd "$vdir/" >/dev/null || return 1 - _umountVserverInternal "$cfgdir"/fstab.local || is_ok= - _umountVserverInternal "$cfgdir"/fstab $_CHBIND "${CHBIND_OPTS[@]}" || is_ok= + _umountVserverInternal "$cfgdir"/fstab.remote $_CHBIND "${CHBIND_OPTS[@]}" || is_ok= + _umountVserverInternal "$cfgdir"/fstab.local || is_ok= + _umountVserverInternal "$cfgdir"/fstab || is_ok= popd >/dev/null || return 1 test -n "$is_ok" @@ -350,7 +352,7 @@ Can not continue; use '--force' to override this check" if test -n "$is_internalize"; then : else - tmpdir=$($_MKTEMPDIR /var/tmp/pgmgmt.XXXXXX) + tmpdir=$($_MKTEMPDIR -p /var/tmp pkgmgmt.XXXXXX) trap "$_RM -rf $tmpdir" EXIT pushd "$vdir" >/dev/null $_EXEC_CD /var/lib $_MV rpm $tmpdir/ @@ -396,6 +398,11 @@ function processVserver() echo $"Vserver '$vserver' does not seem to exist; skipping it..." return 1 } >&2 + + _setVserverDir "$vserver" + _setVserverName + _setVserverDirName + pkgmgmt.initVariables pkgmgmt.isInternal "$vserver" || is_external=1 diff --git a/scripts/start-vservers b/scripts/start-vservers index f35bf13..f02d3a3 100755 --- a/scripts/start-vservers +++ b/scripts/start-vservers @@ -52,7 +52,27 @@ the GNU General Public License. This program has absolutely no warranty." function verifyVserver() { - true + local xtra="${2:+ mentioned in '$2'}" + case x$1 in + (x\#*|x) + return 1;; # skip empty and comment lines + ($__CONFDIR/*) + warning "This version of 'start-vservers' supports only short vserver names; try to remove the '$__CONFDIR' from '$1'$xtra" + return 1 + ;; + (/*) + warning "This version of 'start-vservers' supports only short vserver names; '$1'$xtra is not possible" + return 1 + ;; + (*) + $_VSERVER_INFO -q "$__CONFDIR/$1" VDIR || { + warning "Vserver '$1'$xtra does not exist; skipping it..." + return 1; + } + ;; + esac + + return 0 } ### @@ -68,6 +88,7 @@ eval set -- "$tmp" declare -a tmp_vservers=() declare -r TAB=$(echo -en "\t") OPTION_MARK= +OPTION_MARK_ANY=1 OPTION_PARALLEL=99 OPTION_DEBUG= NOOPTION_DEBUG=1 @@ -84,7 +105,7 @@ while true; do (--help) showHelp $0 ;; (--version) showVersion $0 ;; (-c) CONFDIR=$2; shift;; - (-m) OPTION_MARK=$2; shift;; + (-m) OPTION_MARK=$2; OPTION_MARK_ANY=; shift;; (-j) OPTION_PARALLEL=$2; shift;; (--start) OPTION_FLAVOR=start;; (--stop) OPTION_FLAVOR=stop;; @@ -109,15 +130,16 @@ while test $i -gt 0; do let --i d=$__CONFDIR/${vservers[$i]}/apps/init f=$d/mark + { test -n "$OPTION_MARK_ANY"; } || \ { test -n "$OPTION_MARK" -a -r "$f" && grep -qx "$OPTION_MARK" "$f"; } || \ { test -z "$OPTION_MARK" && test ! -e "$f"; } || \ unset vservers[$i] done -makedir=$($_MKTEMPDIR /tmp/vserver-init.XXXXXX) -okfile=$($_MKTEMP /tmp/vserver-init.XXXXXX) -passedfile=$($_MKTEMP /tmp/vserver-init.XXXXXX) -trap "$_RM -rf $makedir $resultfile $passedfile" EXIT +makedir=$($_MKTEMPDIR vserver-init.XXXXXX) +okfile=$($_MKTEMP vserver-init.XXXXXX) +passedfile=$($_MKTEMP vserver-init.XXXXXX) +trap "$_RM -rf $makedir $okfile $passedfile" EXIT test_cmd=false case "$OPTION_FLAVOR" in @@ -137,6 +159,8 @@ EOF echo -ne "all:\t" for i in "${vservers[@]}"; do + verifyVserver "$i" || continue + echo -n ".$i.stamp " done echo @@ -148,24 +172,25 @@ for i in "${vservers[@]}"; do test -e "$d"/depends || continue cat "$d"/depends done | sort -u | while read vserver; do + verifyVserver "$vserver" || continue d="$__CONFDIR/$vserver"/apps/init case "$OPTION_FLAVOR" in - start) + (start) if test -e "$d"/depends; then echo -ne ".$vserver.stamp:\t" cat "$d"/depends | while read dep; do - verifyVserver "$dep" + verifyVserver "$dep" "$d"/depends || continue echo -n ".$dep.stamp " done echo fi >>$makedir/Makefile ;; - stop) + (stop) if test -e "$d"/depends; then cat "$d"/depends | while read dep; do - verifyVserver "$dep" - echo -ne ".$dep.stamp:\t.$vserver.stamp" + verifyVserver "$dep" "$d"/depends || continue + echo -e ".$dep.stamp:\t.$vserver.stamp" done echo fi >>$makedir/Makefile diff --git a/scripts/util-vserver-vars.pathsubst b/scripts/util-vserver-vars.pathsubst index a9393d6..afecf6d 100644 --- a/scripts/util-vserver-vars.pathsubst +++ b/scripts/util-vserver-vars.pathsubst @@ -1,4 +1,4 @@ -# $Id: util-vserver-vars.pathsubst,v 1.49 2005/07/03 17:43:55 ensc Exp $ --*- sh -*-- +# $Id: util-vserver-vars.pathsubst 2468 2007-01-21 20:05:19Z dhozac $ --*- sh -*-- PACKAGE='@PACKAGE@' PACKAGE_BUGREPORT='@PACKAGE_BUGREPORT@' @@ -14,6 +14,7 @@ __LEGACYDIR="@LEGACYDIR@" __LIBDIR='@LIBDIR@' __LOCKDIR="/var/lock" __PKGLIBDIR='@PKGLIBDIR@' +__PKGCACHEDIR="@PKGCACHEDIR@" __PKGSTATEDIR="@PKGSTATEDIR@" __PKGSTATEREVDIR="@PKGSTATEREVDIR@" __SBINDIR='@SBINDIR@' @@ -30,6 +31,7 @@ __DEFAULT_VSERVERPKGDIR='@VSERVERPKGDIR@' _CAPCHROOT="$__PKGLIBDIR/capchroot" _CHAINECHO="$__PKGLIBDIR/chain-echo" _CHBIND="$__SBINDIR/chbind" +_CHBIND_COMPAT="$__PKGLIBDIR/chbind-compat" _CHCONTEXT="$__SBINDIR/chcontext" _CHCONTEXT_COMPAT="$__PKGLIBDIR/chcontext-compat" _CHECK_UNIXFILE="$__PKGLIBDIR/check-unixfile" @@ -42,6 +44,8 @@ _IFSPEC="$__LEGACYDIR/ifspec" _INITSYNC_MINIT_START=":" _KEEP_CTX_ALIVE="$__PKGLIBDIR/keep-ctx-alive" _LIB_FUNCTIONS="$__PKGLIBDIR/functions" +_LIB_MAGIC="$__PKGLIBDIR/magic" +_LIB_VSERVER_INIT_FUNCTIONS="$__PKGLIBDIR/vserver-init.functions" _LIB_VSERVER_SETUP_FUNCTIONS="$__PKGLIBDIR/vserver-setup.functions" _LIB_VSERVER_BUILD_FUNCTIONS="$__PKGLIBDIR/vserver-build.functions" _LIB_VSERVER_BUILD_FUNCTIONS_APT="$__PKGLIBDIR/vserver-build.functions.apt" @@ -51,6 +55,9 @@ _LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT="$__PKGLIBDIR/vserver-build.functions.pkgmg _LISTDEVIP="$__LEGACYDIR/listdevip" _LOCKFILE="$__PKGLIBDIR/lockfile" _MASK2PREFIX="$__PKGLIBDIR/mask2prefix" +_NADDRESS="$__SBINDIR/naddress" +_NATTRIBUTE="$__SBINDIR/nattribute" +_NCONTEXT="$__SBINDIR/ncontext" _PARSERPMDUMP="$__LEGACYDIR/parserpmdump" _PKGMGMT="$__PKGLIBDIR/pkgmgmt" _READLINK="$__PKGLIBDIR/readlink" @@ -65,7 +72,11 @@ _START_VSERVERS="$__PKGLIBDIR/start-vservers" _VAPT_GET="$__SBINDIR/vapt-get" _VAPT_GET_WORKER="$__PKGLIBDIR/vapt-get-worker" _VATTRIBUTE="$__SBINDIR/vattribute" +_VCLONE="$__PKGLIBDIR/vclone" _VCONTEXT="$__SBINDIR/vcontext" +_VDEVMAP="$__SBINDIR/vdevmap" +_VDLIMIT="$__SBINDIR/vdlimit" +_VDU="$__SBINDIR/vdu" _VHASHIFY="$__PKGLIBDIR/vhashify" _VKILL="$__SBINDIR/vkill" _VLIMIT="$__SBINDIR/vlimit" @@ -86,6 +97,7 @@ _VSERVERKILLALL="$__LEGACYDIR/vserverkillall" _VSHELPER="$__PKGLIBDIR/vshelper" _VSHELPER_SYNC="$__PKGLIBDIR/vshelper-sync" _VSOMETHING="$__SBINDIR/vsomething" +_VSYSCTL="$__PKGLIBDIR/vsysctl" _VWAIT="$__SBINDIR/vwait" _VUNAME="$__SBINDIR/vuname" _VUNIFY="$__PKGLIBDIR/vunify" @@ -93,21 +105,25 @@ _VYUM="$__SBINDIR/vyum" _VYUM_WORKER="$__PKGLIBDIR/vyum-worker" _AWK="@AWK@" +_BZIP2="@BZIP2@" _CAT="@CAT@" _CHOWN="@CHOWN@" _CMP="@CMP@" _CP="@CP@" +_CPIO="@CPIO@" _DIRNAME="@DIRNAME@" _EGREP="@EGREP@" _ENV="@ENV@" +_FILE="@FILE@" _GREP="@GREP@" +_GZIP="@GZIP@" _IP="@IP@" _IPTABLES="@IPTABLES@" _LN="@LN@" _LN_S="$_LN -s" _MKDIR="@MKDIR@" _MKFIFO="@MKFIFO@" -_MKTEMP="@MKTEMP@" +_MKTEMP="@MKTEMP@ -t" _MKTEMPDIR="$_MKTEMP -d" _MODPROBE="@MODPROBE@" _MOUNT="@MOUNT@" @@ -115,9 +131,11 @@ _MV="@MV@" _NAMEIF="@NAMEIF@" _NICE="@NICE@" _NOHUP="@NOHUP@" +_RESTORE="@RESTORE@" _RM="@RM@" _RMDIR="@RMDIR@" _RMMOD="@RMMOD@" +_RSYNC="@RSYNC@" _SED="@SED@" _SH="@SH@" _TAC="@TAC@" diff --git a/scripts/vapt-get b/scripts/vapt-get index 324d1f1..1a8daf2 100755 --- a/scripts/vapt-get +++ b/scripts/vapt-get @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: vapt-get,v 1.14 2005/01/27 21:24:44 ensc Exp $ +# $Id: vapt-get 2335 2006-09-28 15:10:29Z dhozac $ # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -31,7 +31,7 @@ function showHelp() $"Usage: $0 <vserver-name>* [--all] -- <params>+ Report bugs to <$PACKAGE_BUGREPORT>." - exit $1 + exit 0 } function showVersion() @@ -40,60 +40,35 @@ function showVersion() $"vapt-get $PACKAGE_VERSION -- apt-get for vservers This program is part of $PACKAGE_STRING -Copyright (C) 2003 Enrico Scholz +Copyright (C) 2006 Enrico Scholz This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty." - exit $1 + exit 0 } -is_quiet= -declare -a vservers=() +tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" -while test "$#" -ge 1; do +declare -a send_through vsomething_opts + +while true; do case "$1" in - --) shift; break;; - --help) showHelp 0;; - --quiet|-q) is_quiet=1 ;; - --all) - getAllVservers tmp - vservers=( "${vservers[@]}" "${tmp[@]}" ) - ;; - --version) - showVersion 0;; - *) vservers=( "${vservers[@]}" "$1" ) - esac - shift + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--) shift; break;; + (*) echo $"vapt-get: internal error; arg=='$1'" >&2; exit 1;; + esac + shift done -test "$#" -ge 1 || showHelp 1 >&2 -test "${#vservers[@]}" -ne 1 || is_quiet=1 - -cnt=0 -res=255 -for i in "${vservers[@]}"; do - cnt=$[ cnt + 1 ] +VSOMETHING_TITLE=vapt-get +VSOMETHING_WORKER=$_VAPT_GET_WORKER +VSOMETHING_PKGMGMT=1 - test -n "$is_quiet" || { - colorize bold echo -n "vaptget: operating on vserver " - colorize bold colorize emph echo "$i" - xtermTitle "vaptget: operating on vserver '$i' [$cnt/${#vservers[@]}]" - } - - if pkgmgmt.isInternal "$i"; then - $_VSERVER "$i" exec apt-get "$@" - else - callInNamespace "$i" \ - "$_VNAMESPACE" --new -- "$_VAPT_GET_WORKER" "$i" "$@" - fi - res=$? - - test $res -eq 0 -o -n "$is_quiet" || { - colorize error echo -n $"vapt-get failed on vserver '$i' with errorcode $res" - echo - } - - test -n "$is_quiet" || echo -done +export VSOMETHING_TITLE VSOMETHING_WORKER VSOMETHING_PKGMGMT -test "$cnt" -ge 0 || echo "No vservers specified" >&2 -exit $res +test ${#vsomething_opts[@]} -eq 0 || vsomething_opts=( "${vsomething_opts[@]}" -- ) +exec $_VSOMETHING "${send_through[@]}" ${APT_GET:-apt-get} "${vsomething_opts[@]}" "$@" diff --git a/scripts/vapt-get-worker b/scripts/vapt-get-worker index 1ffeebb..7ff5815 100755 --- a/scripts/vapt-get-worker +++ b/scripts/vapt-get-worker @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: vapt-get-worker,v 1.8 2005/02/25 21:51:02 ensc Exp $ +# $Id: vapt-get-worker 1870 2005-02-25 21:51:02Z ensc $ # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # diff --git a/scripts/vcached b/scripts/vcached index c587bc1..3bd027d 100755 --- a/scripts/vcached +++ b/scripts/vcached @@ -16,7 +16,7 @@ # Mark Huang <mlhuang@cs.princeton.edu> # Copyright (c) 2004-2005 The Trustees of Princeton University # -# $Id: vcached,v 1.12 2005/09/03 21:47:11 mlhuang Exp $ +# $Id: vcached,v 1.14 2007/06/28 21:02:41 dhozac Exp $ # PATH=/sbin:/usr/sbin:$PATH @@ -90,7 +90,7 @@ for i in $(seq 0 $(($slots - 1))) ; do echo "$(date) Caching v$i" # build image in .vtmp TMP=$(mktemp -d "$__DEFAULT_VSERVERDIR/.vtmp/v$i.XXXXXX") - "$__PKGLIBDIR/vbuild" "$__DEFAULT_VSERVERDIR/.vref/default" "$TMP" + "$_VCLONE" "$__DEFAULT_VSERVERDIR/.vref/default/" "$TMP"/ RETVAL=$? # move it to .vcache when complete if [ $RETVAL -eq 0 ] ; then diff --git a/scripts/vdispatch-conf b/scripts/vdispatch-conf new file mode 100755 index 0000000..54e4bd4 --- /dev/null +++ b/scripts/vdispatch-conf @@ -0,0 +1,72 @@ +#!/bin/bash +# $Id: vdispatch-conf 2486 2007-02-05 18:08:17Z hollow $ + +# Copyright (C) 2006 Benedikt Boehm <hollow@gentoo.org> +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + + +function showHelp() +{ + echo \ +$"Usage: $0 <vserver-name>* [--all] -- <params>+ + +Report bugs to <$PACKAGE_BUGREPORT>." + exit 0 +} + +function showVersion() +{ + echo \ +$"vdispatch-conf $PACKAGE_VERSION -- dispatch-conf for vservers +This program is part of $PACKAGE_STRING + +Copyright (C) 2006 Benedikt Boehm +This program is free software; you may redistribute it under the terms of +the GNU General Public License. This program has absolutely no warranty." + exit 0 +} + +tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +declare -a send_through vsomething_opts + +while true; do + case "$1" in + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--) shift; break;; + (*) echo $"vdispatch-conf: internal error; arg=='$1'" >&2; exit 1;; + esac + shift +done + +VSOMETHING_TITLE=vemerge +VSOMETHING_PKGMGMT=1 + +export VSOMETHING_TITLE VSOMETHING_PKGMGMT + +exec $_VSOMETHING "${send_through[@]}" dispatch-conf "${vsomething_opts[@]}" "$@" diff --git a/scripts/vemerge b/scripts/vemerge new file mode 100755 index 0000000..639fdd1 --- /dev/null +++ b/scripts/vemerge @@ -0,0 +1,73 @@ +#!/bin/bash +# $Id: vemerge 2363 2006-11-03 14:36:23Z hollow $ + +# Copyright (C) 2006 Benedikt Boehm <hollow@gentoo.org> +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + + +function showHelp() +{ + echo \ +$"Usage: $0 <vserver-name>* [--all] -- <params>+ + +Report bugs to <$PACKAGE_BUGREPORT>." + exit 0 +} + +function showVersion() +{ + echo \ +$"vemerge $PACKAGE_VERSION -- emerge for vservers +This program is part of $PACKAGE_STRING + +Copyright (C) 2006 Benedikt Boehm +This program is free software; you may redistribute it under the terms of +the GNU General Public License. This program has absolutely no warranty." + exit 0 +} + +tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +declare -a send_through vsomething_opts + +while true; do + case "$1" in + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--) shift; break;; + (*) echo $"vemerge: internal error; arg=='$1'" >&2; exit 1;; + esac + shift +done + +VSOMETHING_TITLE=vemerge +VSOMETHING_PKGMGMT=1 + +export VSOMETHING_TITLE VSOMETHING_PKGMGMT + +test ${#vsomething_opts[@]} -eq 0 || vsomething_opts=( "${vsomething_opts[@]}" -- ) +exec $_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" "$@" diff --git a/scripts/vesync b/scripts/vesync new file mode 100755 index 0000000..b722168 --- /dev/null +++ b/scripts/vesync @@ -0,0 +1,89 @@ +#!/bin/bash +# $Id: vesync 2486 2007-02-05 18:08:17Z hollow $ + +# Copyright (C) 2006 Benedikt Boehm <hollow@gentoo.org> +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + + +function showHelp() +{ + echo \ +$"Usage: $0 <vserver-name>* [--all] [--overlay <dir>] [--overlay-host <rsyncpath>] [--overlay-only] + +Report bugs to <$PACKAGE_BUGREPORT>." + exit 0 +} + +function showVersion() +{ + echo \ +$"vesync $PACKAGE_VERSION -- portage cache sync for vservers +This program is part of $PACKAGE_STRING + +Copyright (C) 2006 Benedikt Boehm +This program is free software; you may redistribute it under the terms of +the GNU General Public License. This program has absolutely no warranty." + exit 0 +} + +tmp=$(getopt -o +q --long help,version,debug,quiet,all,overlay,overlay-host,overlay-only -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +declare -a send_through vsomething_opts +overlay= +overlay_host= +overlay_only=0 + +while true; do + case "$1" in + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--overlay) overlay="${2%/}";; + (--overlay-host) overlay_host="${2%/}";; + (--overlay-only) overlay_only=1;; + (--) shift; break;; + (*) echo $"vesync: internal error; arg=='$1'" >&2; exit 1;; + esac + shift +done + +VSOMETHING_TITLE=vesync +VSOMETHING_PKGMGMT=1 + +export VSOMETHING_TITLE VSOMETHING_PKGMGMT + +ret=0 + +test $overlay_only -eq 0 && \ + $_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" "$@" -- --metadata + +ret=$? + +test -n "$overlay" -a -n "$overlay_host" && \ + $_VSOMETHING "${send_through[@]}" rsync "${vsomething_opts[@]}" "$@" -- \ + -rtW --progress --delete --delete-after "${overlay_host}/" "${overlay}/" + +test $? -eq 0 -a $ret -eq 0 diff --git a/scripts/vpkg b/scripts/vpkg index 30aa766..8d302f6 100755 --- a/scripts/vpkg +++ b/scripts/vpkg @@ -1,5 +1,5 @@ #!/bin/bash -# $Id: vpkg,v 1.11 2005/03/18 00:23:02 ensc Exp $ +# $Id: vpkg 1919 2005-03-18 00:23:02Z ensc $ # Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # diff --git a/scripts/vprocunhide b/scripts/vprocunhide index cc337e4..f71ded7 100755 --- a/scripts/vprocunhide +++ b/scripts/vprocunhide @@ -1,5 +1,5 @@ #!/bin/bash -# $Id: vprocunhide,v 1.8 2005/04/10 00:55:51 ensc Exp $ +# $Id: vprocunhide 2011 2005-04-10 00:55:51Z ensc $ # # Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # diff --git a/scripts/vrpm b/scripts/vrpm index 1ae226a..2962353 100755 --- a/scripts/vrpm +++ b/scripts/vrpm @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: vrpm,v 1.13 2005/01/27 21:24:44 ensc Exp $ +# $Id: vrpm 2303 2006-09-12 12:39:00Z dhozac $ # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -24,14 +24,14 @@ test -e "$UTIL_VSERVER_VARS" || { . "$UTIL_VSERVER_VARS" . "$_LIB_FUNCTIONS" + function showHelp() { echo \ -$"Usage: $0 <vserver-name>* [--all] [--quiet|-q] [--help] [--version] [--unify] -- <rpm-params>+ +$"Usage: $0 <vserver-name>* [--all] -- <params>+ Report bugs to <$PACKAGE_BUGREPORT>." - - exit $1 + exit 0 } function showVersion() @@ -40,71 +40,35 @@ function showVersion() $"vrpm $PACKAGE_VERSION -- rpm for vservers This program is part of $PACKAGE_STRING -Copyright (C) 2003 Enrico Scholz +Copyright (C) 2006 Enrico Scholz This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty." - - exit $1 + exit 0 } -do_unify= -is_quiet= -declare -a vservers=() +tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +declare -a send_through vsomething_opts -while test "$#" -ge 1; do +while true; do case "$1" in - --quiet|-q) - is_quiet=1 - ;; - --all) - getAllVservers tmp - vservers=( "${vservers[@]}" "${tmp[@]}" ) - ;; - --unify) - do_unify=1 - ;; - --) - shift; break;; - --help) - showHelp 0;; - --version) - showVersion 0;; - *) vservers=( "${vservers[@]}" "$1" ) - esac - shift + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--) shift; break;; + (*) echo $"vrpm: internal error; arg=='$1'" >&2; exit 1;; + esac + shift done -test "$#" -ge 1 || showHelp 1 >&2 -test "${#vservers[@]}" -ne 1 || is_quiet=1 - -cnt=0 -res=255 - -for i in "${vservers[@]}"; do - cnt=$[ cnt + 1 ] +VSOMETHING_TITLE=vrpm +VSOMETHING_WORKER=$_VRPM_WORKER +VSOMETHING_PKGMGMT=1 - test -n "$is_quiet" || { - colorize bold echo -n "vrpm: operating on vserver " - colorize bold colorize emph echo "$i" - xtermTitle "vrpm: operating on vserver '$i' [$cnt/${#vservers[@]}]" - } - - if pkgmgmt.isInternal "$i"; then - $_VSERVER "$i" exec rpm "$@" - else - callInNamespace "$i" \ - "$_VNAMESPACE" --new -- "$_VRPM_WORKER" "$i" "$@" - fi - res=$? - - test $res -eq 0 -o "$is_quiet" || { - colorize error echo -n $"vrpm failed on vserver '$i' with errorcode $res" - echo - } - - test -n "$is_quiet" || echo -done +export VSOMETHING_TITLE VSOMETHING_WORKER VSOMETHING_PKGMGMT -test -z "$do_unify" || echo "unify currently unsupported" >&2 -test "$cnt" -ge 0 || echo "No vservers specified" >&2 -exit $res +test ${#vsomething_opts[@]} -eq 0 || vsomething_opts=( "${vsomething_opts[@]}" -- ) +exec $_VSOMETHING "${send_through[@]}" rpm "${vsomething_opts[@]}" "$@" diff --git a/scripts/vrpm-preload b/scripts/vrpm-preload index 7517aa0..fe8dfa3 100755 --- a/scripts/vrpm-preload +++ b/scripts/vrpm-preload @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: vrpm-preload,v 1.12 2005/01/27 21:24:44 ensc Exp $ +# $Id: vrpm-preload 1825 2005-01-27 21:24:44Z ensc $ # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # diff --git a/scripts/vrpm-worker b/scripts/vrpm-worker index c271753..801da3d 100755 --- a/scripts/vrpm-worker +++ b/scripts/vrpm-worker @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: vrpm-worker,v 1.5 2004/04/08 06:05:06 ensc Exp $ +# $Id: vrpm-worker 1440 2004-04-08 06:05:06Z ensc $ # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # diff --git a/scripts/vserver b/scripts/vserver index 59553fa..ebd105b 100755 --- a/scripts/vserver +++ b/scripts/vserver @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: vserver,v 1.30 2005/04/28 18:03:42 ensc Exp $ +# $Id: vserver 2521 2007-03-21 04:46:18Z dhozac $ # Copyright (C) 2003,2004,2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -37,7 +37,7 @@ $"Usage: $(basename $0) [-s|--sync] [-v|--verbose] [--silent] <vserver> is the name of a vserver. Possible commands are: - start [--rescue] [--rescue-cmd <cmd>] + start [--rescue [--rescue-init]] [<rescue-cmd> <args>*] ... starts the specified vserver stop ... stops the specified vserver restart ... restarts the specified vserver; this is the subsequent @@ -57,9 +57,10 @@ Possible commands are: build <buildopts>* ... builds a new vserver from scratch + delete ... remove a vserver - unify [-R] - ... (de)unify vserver + unify [-R] <vunify-opts>* + ... (de)unify the vserver with its reference vserver(s). pkg install <pkg> ... installs package(s) in the vserver @@ -76,8 +77,8 @@ Possible commands are: while 'internalize' means that data and programs from the vserver will be used. - unify <vunify-opts>* - ... unify the vserver with its reference vserver(s). + hashify + ... hashify the guest. Please report bugs to $PACKAGE_BUGREPORT" @@ -152,7 +153,8 @@ SELF=( "$0" "${OPTION_ALL[@]}" ) vserver=$1 cmd=$2 -test "$cmd" != build || { shift 2; exec "$_VSERVER_BUILD" -n "$vserver" "$@"; } +test "$cmd" != build || { shift 2; exec $_VNAMESPACE --new -- \ + "$_VSERVER_BUILD" $OPTION_DEBUG -n "$vserver" "$@"; } allow_legacy= @@ -188,18 +190,24 @@ Possible solutions: exit 5 } >&2 -if test -e "$VSERVER_DIR"/name; then - read VSERVER_NAME <"$VSERVER_DIR"/name -else - VSERVER_NAME=$(basename "$VSERVER_DIR") -fi +_setVserverName +# Create a new namespace when starting the guest test "$2" != start -o -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \ exec $_VNAMESPACE --new -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}" +# Enter the namespace early so we can test for files inside the guest +test "$2" != enter -a "$2" != stop || \ + test -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \ + ! isVserverRunning "$VSERVER_DIR" || \ + exec $_VNAMESPACE --enter "$VSERVER_DIR" -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}" + +set_init_cwd +cd / + . $__PKGLIBDIR/vserver.functions case "$2" in - (start|stop) + (start|stop|delete) shift 2 . $__PKGLIBDIR/vserver.$cmd ;; @@ -208,19 +216,21 @@ case "$2" in $cmd "$@" ;; (condrestart) - test ! isVserverRunning "$VSERVER_DIR" || restart + ! isVserverRunning "$VSERVER_DIR" || restart ;; (exec) shift 2 - suexec root "$@" + suexec 0 "$@" ;; (chkconfig) shift 2 - suexec root chkconfig "$@" + suexec 0 chkconfig "$@" ;; (enter) + useVlogin && \ + OPTS_VCONTEXT_ENTER=( "${OPTS_VCONTEXT_ENTER[@]}" --vlogin ) getEnterShell "$VSERVER_DIR" - suexec root "${ENTER_SHELL[@]}" + suexec 0 "${ENTER_SHELL[@]}" ;; (running) isVserverRunning "$VSERVER_DIR" @@ -248,12 +258,14 @@ case "$2" in ;; (apt-get|apt-config|apt-cache) - export _APT_GET=$2 + export APT_GET=$2 shift 2 - exec $_VAPT_GET -- "$@" + exec $_VAPT_GET "$VSERVER_DIR" -- "$@" ;; + (rpm) - exec $_VRPM -- "$@" + shift 2 + exec $_VRPM "$VSERVER_DIR" -- "$@" ;; (status) @@ -271,7 +283,7 @@ case "$2" in fi ;; (*) - echo $"Usage: $0 {start|stop|suexec|restart|condrestart|exec|enter|chkconfig|running|status}" >&2 + echo $"Usage: $0 <vserver> {start|stop|suexec|restart|condrestart|exec|enter|chkconfig|running|status|delete}" >&2 exit 2 ;; esac diff --git a/scripts/vserver-build b/scripts/vserver-build index ca522e4..fc78e6f 100755 --- a/scripts/vserver-build +++ b/scripts/vserver-build @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: vserver-build,v 1.20 2005/07/03 17:45:43 ensc Exp $ +# $Id: vserver-build 2468 2007-01-21 20:05:19Z dhozac $ # Copyright (C) 2003,2004,2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -51,21 +51,31 @@ Possible methods are: legacy ... the \"old\" copy-all-from-host method, which requires the old legacy vserver-legacy script; with this method the cfg-options will be ignored - copy ... the copy-all-from-host method which uses the recent - configuration scheme - apt-rpm ... -- -d <distribution> + apt-rpm ... -- -d <distribution> ... installs the base-packages of the given distribution with help of 'vapt-get' - yum ... -- -d <distribution> + yum ... -- -d <distribution> ... installs the base-packages of the given distribution with help of 'vyum' - rpm ... -- [-d <distribution>] --empty|([--force] [--nodeps] <manifest>)+ + rpm ... -- [-d <distribution>] --empty|([--force] [--nodeps] <manifest>)+ ... installs lists of rpm-packages - skeleton ... -- [<cmd> <args>*] + skeleton ... -- [<cmd> <args>*] ... installs a minimal skeleton filesystem, creates the configuration file and calls an optional command then - debootstrap ... -- -d <distribution> [-m <mirror>] [-- <debootstrap-options>*] - bootstraps the vserver with Debian's 'debootstrap' package + debootstrap ... -- -d <distribution> [-m <mirror>] [-s <script> ] [-- <debootstrap-options>*] + ... bootstraps the vserver with Debian's 'debootstrap' package + template ... -- (-t <tarball>)+ [-d <distribution>] + ... installs a guest using tarball(s) + fai ... -- [ -f <fai_vserver> ] [-n <nfsroot>] [-d <fai_dir> ] [ -a ] + bootstraps the vserver with Debian Fully Automatic Installation + -f means use the nfsroot and profile in the vserver <fai_vserver> + -n <nfsroot> specifies the 'NFS' root explicitly + -d <fai_dir> specifies the location of the FAI profile + the -f option implies -n and -d are relative to the <fai_vserver> + rsync ... -- [-d <distribution>] --source <source> [-o <rsync option>]* + ... installs a guest by rsyncing from <source> to the guest root + clone ... -- [-d <distribution>] --source <source> + ... clones a guest by linking unified files and copying the rest Please report bugs to $PACKAGE_BUGREPORT" exit 0 @@ -126,7 +136,7 @@ setup_setDefaults "$VSERVER_NAME" case x"$method" in (xlegacy) exec $_VSERVER_LEGACY "$VSERVER_NAME" build "$@" ;; - (xapt-rpm|xcopy|xskeleton|xdebootstrap|xyum|xrpm) + (xapt-rpm|xcopy|xskeleton|xdebootstrap|xyum|xrpm|xtemplate|xfai|xrsync|xclone) . $__PKGLIBDIR/vserver-build.$method ;; (x) panic $"No build-method specified";; diff --git a/scripts/vserver-build.apt-rpm b/scripts/vserver-build.apt-rpm index 35c59f8..b4c2532 100644 --- a/scripts/vserver-build.apt-rpm +++ b/scripts/vserver-build.apt-rpm @@ -1,4 +1,4 @@ -# $Id: vserver-build.apt-rpm,v 1.15 2005/07/03 13:17:38 ensc Exp $ --*- sh -*-- +# $Id: vserver-build.apt-rpm 2162 2005-07-25 15:40:22Z ensc $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -42,6 +42,9 @@ pkgmgmt.initVariables rpm.initVariables apt.initVariables +rpm.sanityCheck + + base.initFilesystem "$OPTION_FORCE" pkgmgmt.initFilesystem "$OPTION_FORCE" rpm.initFilesystem diff --git a/scripts/vserver-build.debootstrap b/scripts/vserver-build.debootstrap index 5a72044..610878f 100644 --- a/scripts/vserver-build.debootstrap +++ b/scripts/vserver-build.debootstrap @@ -1,4 +1,4 @@ -# $Id: vserver-build.debootstrap,v 1.13 2005/07/04 18:14:29 ensc Exp $ --*- sh -*-- +# $Id: vserver-build.debootstrap 2528 2007-04-13 09:02:29Z hollow $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -15,25 +15,19 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -function cleanUp -{ - test ! -d "$workdir" || $_RM -rf "$workdir" -} - function init { workdir= mirror= - trap "cleanUp" EXIT } function initVariables { base.init - test -n "${mirror-unset}" || { + test -n "${mirror}" || { local aux - findFile aux "$__CONFDIR"/.defaults/apps/debootstrap/mirror '' + findFile aux "$__CONFDIR"/.defaults/apps/debootstrap/mirror "$__PKGLIBDEFAULTDIR"/debootstrap.mirror test -z "$aux" || read mirror <"$aux" } } @@ -48,11 +42,15 @@ function initFilesystem function findDebootstrap { + test ! -x "$DEBOOTSTRAP" || return 0 + pushd . &>/dev/null DEBOOTSTRAP=$(which debootstrap 2>/dev/null) || { - dir=$($_MKTEMPDIR /var/tmp/debootstrap.XXXXXX) + dir=$($_MKTEMPDIR -p /var/tmp debootstrap.XXXXXX) workdir=$dir dst=$dir/debootstrap.deb + + base._addGeneratedFile "$workdir" findFile DEBOOTSTRAP_URI "$__CONFDIR"/.defaults/apps/debootstrap/uri "$__PKGLIBDEFAULTDIR"/debootstrap.uri read tmp <$DEBOOTSTRAP_URI @@ -66,7 +64,7 @@ ${tmp}..." $_CAT <<EOF >&2 ERROR: Could not download the debootstrap package from - $dst + $tmp Usually, this means that Debian released a new version which is unknown to util-vserver and removed the known ones. To fix this, go to @@ -91,6 +89,18 @@ EOF tar xzf data.tar.gz export DEBOOTSTRAP_DIR=`pwd`/usr/lib/debootstrap DEBOOTSTRAP=`pwd`/usr/sbin/debootstrap + + local arch + arch=$(uname -i 2>/dev/null) || \ + arch=$(arch 2>/dev/null) || + arch= + + ## Wash the calculated architecture + case $arch in + (i?86|athlon) arch=i386;; + esac + + test -z "$arch" || echo "$arch" >$DEBOOTSTRAP_DIR/arch } popd &>/dev/null @@ -107,25 +117,26 @@ function fixupDebian ### main starts here <--- -tmp=$(getopt -o '+d:m:' --long debug -n "$0" -- "$@") || exit 1 +tmp=$(getopt -o '+d:m:s:' --long debug -n "$0" -- "$@") || exit 1 eval set -- "$tmp" init while true; do case "$1" in - -d) DISTRIBUTION=$2; shift;; - -m) mirror=$2; shift;; - --debug) set -x;; - --) shift; break ;; - *) echo "vserver-build.debootstrap: internal error: unrecognized option '$1'" >&2 + (-d) DISTRIBUTION=$2; shift;; + (-m) mirror=$2; shift;; + (-s) script=$2; shift;; + (--debug) set -x;; + (--) shift; break ;; + (*) echo "vserver-build.debootstrap: internal error: unrecognized option '$1'" >&2 exit 1 ;; esac shift done -getDistribution +getDistribution '' 1 initVariables initFilesystem "$OPTION_FORCE" @@ -135,10 +146,11 @@ setup_writeInitialFstab findDebootstrap -test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" +test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" "$mirror" mv "$VDIR"/dev "$VDIR"/dev.X -"$DEBOOTSTRAP" "$@" "$DISTRIBUTION" "$VDIR" "$mirror" || : ## HACK: ignore all errors... +"$_VNAMESPACE" --new -- "$DEBOOTSTRAP" "$@" "$DISTRIBUTION" "$VDIR" "$mirror" "$script" || : ## HACK: ignore all errors... fixupDebian "$VDIR" -test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" +test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" "$mirror" +$_RM -fr "$workdir" base.setSuccess diff --git a/scripts/vserver-build.fai b/scripts/vserver-build.fai new file mode 100644 index 0000000..b59951c --- /dev/null +++ b/scripts/vserver-build.fai @@ -0,0 +1,171 @@ +# +# Copyright (C) 2006 Sam Vilain <sam.vilain@catalyst.net.nz> +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +tmp=$(getopt -o '+d:f:n:a' --long debug,pkgmgmt -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT" +. "$__PKGLIBDIR/vserver.functions" + +DISTRIBUTION=: + +FAI_VSERVER= +FAI_NFSROOT=/usr/lib/fai/nfsroot +FAI_DIR=/usr/local/share/fai +AUTO=1 + +use_pkgmgmt= +while true; do + case "$1" in + -f) FAI_VSERVER=$2; shift; ;; + -n) FAI_NFSROOT=$2; shift; ;; + -d) FAI_DIR=$2; shift; ;; + -a) AUTO=;; + --debug) DEBUG=1; SH_DEBUG=-x; set -x;; + --) shift; break ;; + *) echo "vserver-build.fai: internal error: unrecognized option '$1'" >&2 + exit 1 + ;; + esac + shift +done + +getDistribution '' 1 + +base.init +base.initFilesystem "$OPTION_FORCE" + +setup_writeOption "$VSERVER_NAME" +setup_writeInitialFstab + +test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" + +# migrate is a 2.6 feature, we need 2.6 for the secure_mount ccap +if ! $_VSERVER_INFO - FEATURE migrate; then + panic $"\ +The fai build method requires kernel features that are not present +in your kernel." +fi + +# if they specified a vserver where FAI is installed, then prefix its +# root to the FAI_NFSROOT etc (unless they have already specified a +# $ROOTDIR-relative path) +REAL_ROOTDIR=`getPhysicalDir "$ROOTDIR"` +REAL_VDIR=`getPhysicalDir "$VDIR"` +echo $"ROOTDIR is $REAL_ROOTDIR" +echo $"VDIR is $REAL_VDIR" +if [ -n "$FAI_VSERVER" ] +then + echo "FAI_VSERVER is $FAI_VSERVER" + if [ `expr "$FAI_NFSROOT" : "$REAL_ROOTDIR"` -eq 0 ] + then + FAI_NFSROOT="$REAL_ROOTDIR/$FAI_VSERVER$FAI_NFSROOT" + fi + if [ `expr "$FAI_DIR" : "$REAL_ROOTDIR"` -eq 0 ] + then + FAI_DIR="$REAL_ROOTDIR/$FAI_VSERVER$FAI_DIR" + fi +fi +echo $"FAI_NFSROOT is $FAI_NFSROOT" +echo $"FAI_DIR is $FAI_DIR" +FAI_ROOT=/tmp/target + +if [ ! -e "$FAI_NFSROOT/usr/sbin/fai" ] +then + panic $"NFSROOT not found - did you run fai-setup?" +fi + +if ! grep -qw VIRTUAL "$FAI_NFSROOT/usr/sbin/fai" +then + panic $"\ +ERROR: Looks like you don't have the patched FAI. +See http://faiwiki.informatik.uni-koeln.de/index.php/Using_FAI_as_a_vserver_build_method +for information on where to get it." +fi + +set -e + +# suppresses color logo, as it does not leave the terminal in a nice +# state. +console=dummy + +killprocs() { + set +e + S_CONTEXT= + if isVserverRunning "$SETUP_CONFDIR" S_CONTEXT + then + $_VKILL -c "$S_CONTEXT" -s 15 + sleep 2 + $_VKILL -c "$S_CONTEXT" -s 9 + sleep 2 + isVserverRunning "$SETUP_CONFDIR" && warning $"\ +Vserver '$VSERVER_NAME' still running unexpectedly; please investigate it +manually." + fi + [ -n "$HAVE_INTERFACES" ] && disableInterfaces "$SETUP_CONFDIR" + base.__cleanup +} + +trap killprocs INT EXIT + +# last chance to abort! +if [ -z "$AUTO" ] +then + echo -n "Press ENTER to begin, or Ctrl+C to cancel: " + read junk +fi + +# set up interfaces, so that the vserver can be built with restricted +# network access. +generateOptions "$SETUP_CONFDIR" +enableInterfaces "$SETUP_CONFDIR" +HAVE_INTERFACES=1 + +rwpaths="/var/lock /var/log /dev /var/run /etc/sysconfig" +[ -d "$FAI_NFSROOT/etc/network/run" ] && rwpaths="$rwpaths /etc/network/run" + +export VDIR ROOTDIR FAI_VSERVER FAI_DIR FAI_NFSROOT FAI_ROOT console + +[ -z "$AUTO" ] && FINAL_SHELL="exec /bin/sh -i" + +# set up /mnt with all the mounts required +$_SECURE_MOUNT -n -o ro,dev --bind "$FAI_NFSROOT" /mnt +$_SECURE_MOUNT -n -t tmpfs -o size=64m,mode=1777 vm /mnt/tmp +$_MKDIR -p /mnt/tmp/target +$_SECURE_MOUNT -n -o rw,dev --bind "$VDIR" /mnt/tmp/target +$_MKDIR -p /mnt/tmp/target/proc +$_SECURE_MOUNT -n -t proc proc /mnt/tmp/target/proc +for x in $rwpaths +do + /mnt/usr/lib/fai/mkrw -n "/mnt$x" +done +$_SECURE_MOUNT -n -o ro --bind "$FAI_DIR" /mnt/fai +$_SECURE_MOUNT -n -t proc proc /mnt/proc + +cd /mnt +$_CHBIND "${CHBIND_OPTS[@]}" \ + $_VCONTEXT --create "${OPTS_VCONTEXT_CREATE[@]}" -- \ + $_VUNAME --xid self --set -t nodename="${SETUP_HOSTNAME:-fai-build}" \ + -t context="$SETUP_CONFDIR" -- \ + $_VATTRIBUTE --set --xid self "${OPTS_VATTRIBUTE[@]}" --ccap secure_mount \ + $_SAVE_CTXINFO "$SETUP_CONFDIR" \ + $_VCONTEXT --migrate-self --endsetup --chroot $SILENT_OPT \ + "${OPTS_VCONTEXT_MIGRATE[@]}" "${OPTS_VCONTEXT_ENTER[@]}" -- \ + /bin/sh -c "/bin/sh $SH_DEBUG /etc/init.d/rcS -N vschild_build; $FINAL_SHELL" + +test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" + +base.setSuccess diff --git a/scripts/vserver-build.functions b/scripts/vserver-build.functions index 981c037..15c182f 100644 --- a/scripts/vserver-build.functions +++ b/scripts/vserver-build.functions @@ -1,4 +1,4 @@ -# $Id: vserver-build.functions,v 1.18 2005/07/04 22:38:42 ensc Exp $ --*- sh -*-- +# $Id: vserver-build.functions 2515 2007-03-18 15:32:22Z dhozac $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -20,6 +20,8 @@ ROOTDIR= ROOTDIR_REL= +CACHEDIR= +CACHEDIR_REL= VSERVERDIRNAME= VDIR= @@ -48,6 +50,17 @@ function makeDevEntry esac } +function populateDev +{ + local spec + + mkdir -p -m755 "$VDIR"/dev/pts + + while read spec; do + makeDevEntry "$VDIR"/dev $spec + done <$_DEV_FILE +} + function populateDirectory { local dst=$1 @@ -82,7 +95,24 @@ function _setRootDir } } -function _setVserverDir +function _setCacheDir +{ + test -z "$CACHEDIR" || return 0 + + for item in "\"$__CONFDIR/.defaults/cachebase\" 1" "$__PKGCACHEDIR"; do + eval set -- "$item" + CACHEDIR=$1 + CACHEDIR_REL=$2 + test ! -d "$CACHEDIR" || break + done + + test -d "$CACHEDIR" || { + echo "Cache-directory '$CACHEDIR' does not exist or is invalid" >&2 + exit 1 + } +} + +function _setVserverDirName { test -z "$VSERVERDIRNAME" || return 0 VSERVERDIRNAME="$VSERVER_NAME" @@ -105,7 +135,7 @@ function _renameVserverCfg local i for i in "$VDIR" "$SETUP_CONFDIR"; do - test ! -e "$i" || { + test ! -e "$i" || isDirectoryEmpty "$i" || { mv "$i" "$i$suffix" say "Renamed '$i' to '$i$suffix'" } @@ -113,37 +143,46 @@ function _renameVserverCfg } -## Usage: getDistribution [<default>] +## Usage: getDistribution [<default>] [<ignore-config>] function getDistribution { - test -z "$DISTRIBUTION" || return 0 - - if test -e /etc/fedora-release; then - set -- $(cat /etc/fedora-release) - DISTRIBUTION=fdr$4 - elif test -e /etc/redhat-release; then - set -- $(cat /etc/redhat-release) - DISTRIBUTION=rh$5 - elif test -e /etc/debian_version; then - set -- $(cat /etc/debian_version) - DISTRIBUTION=deb$1 - elif test -e /etc/SuSE-release; then - set -- $(cat /etc/SuSE-release) - DISTRIBUTION=suse$3 - elif test -e /etc/gentoo-release; then - set -- $(cat /etc/gentoo-release) - DISTRIBUTION=gentoo$5 - elif test -e /etc/slackware-release; then - set -- $(cat /etc/slackware-release) - DISTRIBUTION=slackware$2 - elif test -n "$1"; then - DISTRIBUTION=$1 - else - echo \ -"Can not determine distribution; please specify it manually -with the '-d' option" >&2 - exit 1 - fi >&2 + local ignore_config=$2 + + if test -z "$DISTRIBUTION"; then + if test -e /etc/fedora-release; then + set -- $(cat /etc/fedora-release) + DISTRIBUTION=fdr$4 + elif test -e /etc/redhat-release; then + set -- $(cat /etc/redhat-release) + DISTRIBUTION=rh$5 + elif test -e /etc/debian_version; then + set -- $(cat /etc/debian_version) + DISTRIBUTION=deb$1 + elif test -e /etc/SuSE-release; then + set -- $(cat /etc/SuSE-release) + DISTRIBUTION=suse$3 + elif test -e /etc/gentoo-release; then + set -- $(cat /etc/gentoo-release) + DISTRIBUTION=gentoo$5 + elif test -e /etc/slackware-version; then + set -- $(cat /etc/slackware-version) + DISTRIBUTION=slackware$2 + elif test -n "$1"; then + DISTRIBUTION=$1 + else + colpanic $"\ +ERROR: Can not determine distribution; please specify it manually with + the '-d' option." + fi + fi + + test -n "$ignore_config" -o \ + -d "$__CONFDIR/.distributions/$DISTRIBUTION" -o \ + -d "$__DISTRIBDIR/$DISTRIBUTION" || + colpanic $"\ +ERROR: Can not find configuration for the distribution '$DISTRIBUTION'; + please read http://linux-vserver.org/HowToRegisterNewDistributions + for information how to add support for your own distribution." } function base._addGeneratedFile @@ -155,27 +194,21 @@ function base._addGeneratedFile function base.initFilesystem { test -z "$1" || _renameVserverCfg - test ! -d "$VDIR" -a ! -d "$SETUP_CONFDIR" || { - echo \ -"vserver-topdirectory '$VDIR' and/or configuration at '$SETUP_CONFDIR' -exist already; please try to use '--force', or remove them manually" ->&2 - exit 1 - } >&2 + { isDirectoryEmpty "$VDIR" && test ! -e "$SETUP_CONFDIR"; } || colpanic $"\ +vserver-topdirectory '$VDIR' and/or configuration at '$SETUP_CONFDIR' +exist already; please try to use '--force', or remove them manually." mkdir -p -m755 "$VDIR" - chattr -t "$VDIR" + $_SETATTR --~barrier "$VDIR" base._addGeneratedFile "$VDIR" - mkdir -p -m755 "$SETUP_CONFDIR"/apps "$VDIR"/{dev/pts,etc} + mkdir -p -m755 "$SETUP_CONFDIR"/apps "$VDIR"/etc base._addGeneratedFile "$SETUP_CONFDIR" - ln -s "$VDIR" "$SETUP_CONFDIR/vdir" + ln -s "$VDIR" "$SETUP_CONFDIR/vdir" + ln -s "$CACHEDIR/$VSERVERDIRNAME" "$SETUP_CONFDIR/cache" - local spec - while read spec; do - makeDevEntry "$VDIR"/dev $spec - done <$_DEV_FILE + populateDev mkdir -p "$VDIR"/proc findAndCopy "$VDIR"/etc/hosts "$__CONFDIR"/.defaults/files/hosts "$__CONFDIR/.distributions/$DISTRIBUTION"/files/hosts \ @@ -189,7 +222,8 @@ exist already; please try to use '--force', or remove them manually" function base._initVariables { _setRootDir - _setVserverDir + _setCacheDir + _setVserverDirName _setVdir findFile _DEV_FILE "$__CONFDIR/.distributions/$DISTRIBUTION/devs" "$__DISTRIBDIR/$DISTRIBUTION/devs" "$__DISTRIBDIR/defaults/devs" @@ -203,7 +237,7 @@ function base.__cleanup test -z "$OPTION_KEEP" || return 0 test -z "$__BASE_SUCCESS" || return 0 - echo rm -rf "${__BASE_GENERATED_FILES[@]}" + rm -rf "${__BASE_GENERATED_FILES[@]}" } function base.init diff --git a/scripts/vserver-build.functions.apt b/scripts/vserver-build.functions.apt index 4973fed..dbf26b1 100644 --- a/scripts/vserver-build.functions.apt +++ b/scripts/vserver-build.functions.apt @@ -1,4 +1,4 @@ -# $Id: vserver-build.functions.apt,v 1.8 2005/04/16 21:20:45 ensc Exp $ --*- sh -*-- +# $Id: vserver-build.functions.apt 2030 2005-04-16 21:20:45Z ensc $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # diff --git a/scripts/vserver-build.functions.pkgmgmt b/scripts/vserver-build.functions.pkgmgmt index 2d0bfbb..c2e076d 100644 --- a/scripts/vserver-build.functions.pkgmgmt +++ b/scripts/vserver-build.functions.pkgmgmt @@ -1,4 +1,4 @@ -# $Id: vserver-build.functions.pkgmgmt,v 1.9 2005/06/30 06:16:41 ensc Exp $ --*- sh -*-- +# $Id: vserver-build.functions.pkgmgmt 2110 2005-06-30 06:16:58Z ensc $ --*- sh -*-- # Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # diff --git a/scripts/vserver-build.functions.rpm b/scripts/vserver-build.functions.rpm index 9aa499d..528e4ab 100644 --- a/scripts/vserver-build.functions.rpm +++ b/scripts/vserver-build.functions.rpm @@ -1,4 +1,4 @@ -# $Id: vserver-build.functions.rpm,v 1.8 2005/04/16 21:20:45 ensc Exp $ --*- sh -*-- +# $Id: vserver-build.functions.rpm 2311 2006-09-13 22:18:55Z dhozac $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -52,6 +52,7 @@ function rpm.initFilesystem { test -z "$WORKAROUND_106057" || mkdir -p "$RPMDB_PATH" mkdir -p "$VDIR$RPMDB_PATH" + mkdir -p "$VDIR/var/lock/rpm" test -z "$WORKAROUND_APT_DBPATH" || { mkdir -p "$VDIR/var/lib" @@ -124,3 +125,18 @@ function rpmlist.initByDistribution() eval "$1"='( "${_rlid_res[@]}" )' } + + +## Usage: rpm.sanityCheck +function rpm.sanityCheck +{ + test -x "$BUILD_INITPRE" || colorize warn warning $"\ +WARNING: you are going to use an rpm-based installation method without + having an 'initpre' script. Such a script is highly recommend to + workaround bugs in rpm which can cause messages like + + | error: unpacking of archive failed on file /usr/bin/X11;42dd8791: + + Please read http://linux-vserver.org/HowToRegisterNewDistributions + for information how to add support for your own distribution." +} diff --git a/scripts/vserver-build.functions.yum b/scripts/vserver-build.functions.yum index fd2c442..9422ba4 100644 --- a/scripts/vserver-build.functions.yum +++ b/scripts/vserver-build.functions.yum @@ -1,4 +1,4 @@ -# $Id: vserver-build.functions.yum,v 1.5 2005/04/16 21:20:45 ensc Exp $ --*- sh -*-- +# $Id: vserver-build.functions.yum 2030 2005-04-16 21:20:45Z ensc $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # diff --git a/scripts/vserver-build.rpm b/scripts/vserver-build.rpm index 25a2862..2daef46 100644 --- a/scripts/vserver-build.rpm +++ b/scripts/vserver-build.rpm @@ -1,4 +1,4 @@ -# $Id: vserver-build.rpm,v 1.6 2005/07/03 13:17:38 ensc Exp $ --*- sh -*-- +# $Id: vserver-build.rpm 2263 2006-01-22 12:24:25Z ensc $ --*- sh -*-- # Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -68,6 +68,8 @@ test "$OPTION_DEBUG" -lt 2 || rpm_dflt_opts=( "${rpm_dflt_opts[@]}" -v ) test "$OPTION_DEBUG" -lt 3 || rpm_dflt_opts=( "${rpm_dflt_opts[@]}" -v ) test -n "$OPTION_SILENT" || rpm_dflt_opts=( "${rpm_dflt_opts[@]}" -vh ) +rpm.sanityCheck + ###### init the filesystem @@ -75,6 +77,7 @@ base.initFilesystem "$OPTION_FORCE" pkgmgmt.initFilesystem "$OPTION_FORCE" rpm.initFilesystem + setup_writeOption "$VSERVER_NAME" setup_writeInitialFstab @@ -82,12 +85,11 @@ setup_writeInitialFstab # when basedir is a non-local location, rpm will download it into the # current directory. Therefore, create and go into a temporay directory # before doing the operations. -tmpdir=$($_MKTEMPDIR /var/tmp/vserver-build.rpm.XXXXXX) -manifest=$($_MKTEMP /tmp/vserver-build.rpm.manifest.XXXXXX) +tmpdir=$($_MKTEMPDIR -p /var/tmp vserver-build.rpm.XXXXXX) +manifest=$($_MKTEMP vserver-build.rpm.manifest.XXXXXX) trap "rm -rf $tmpdir $manifest" EXIT cd "$tmpdir" - ###### do the real work test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" diff --git a/scripts/vserver-build.rsync b/scripts/vserver-build.rsync new file mode 100644 index 0000000..11ee1a7 --- /dev/null +++ b/scripts/vserver-build.rsync @@ -0,0 +1,67 @@ +# $Id: vserver-build.rsync 2398 2006-11-24 15:20:09Z dhozac $ --*- sh -*-- + +# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +tmp=$(getopt -o '+d:s:o:' --long debug,pkgmgmt,source: -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT" + +DISTRIBUTION=: +use_pkgmgmt= +SOURCE= +declare -a OPTS=() +while true; do + case "$1" in + -d) DISTRIBUTION=$2; shift;; + --debug) set -x;; + --pkgmgmt) use_pkgmgmt=1;; + -s|--source) SOURCE=$2; shift;; + -o) OPTS=( "${OPTS[@]}" "$2" ); shift;; + --) shift; break ;; + *) echo "vserver-build.rsync: internal error: unrecognized option '$1'" >&2 + exit 1 + ;; + esac + shift +done + +if test -z "$SOURCE"; then + panic $"vserver-build.rsync: --source argument required" +fi + +test -z "${OPTS[*]}" && OPTS=( -Hazx --numeric-ids ) + +getDistribution '' 1 + +base.init +test -z "$use_pkgmgmt" || pkgmgmt.initVariables + +base.initFilesystem "$OPTION_FORCE" +test -z "$use_pkgmgmt" || pkgmgmt.initFilesystem "$OPTION_FORCE" + + +setup_writeOption "$VSERVER_NAME" +setup_writeInitialFstab + +test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" + +$_RSYNC "${OPTS[@]}" "$SOURCE"/ "$VDIR"/ +test -z "$1" || "$@" + +test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" + +base.setSuccess diff --git a/scripts/vserver-build.skeleton b/scripts/vserver-build.skeleton index 3bfd956..61a12a8 100644 --- a/scripts/vserver-build.skeleton +++ b/scripts/vserver-build.skeleton @@ -1,4 +1,4 @@ -# $Id: vserver-build.skeleton,v 1.5 2005/06/30 06:13:09 ensc Exp $ --*- sh -*-- +# $Id: vserver-build.skeleton 2200 2005-10-28 18:40:56Z ensc $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -35,7 +35,7 @@ while true; do shift done -getDistribution +getDistribution '' 1 base.init test -z "$use_pkgmgmt" || pkgmgmt.initVariables @@ -50,3 +50,5 @@ setup_writeInitialFstab test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" test -z "$1" || "$@" test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" + +base.setSuccess diff --git a/scripts/vserver-build.template b/scripts/vserver-build.template new file mode 100644 index 0000000..bd495ca --- /dev/null +++ b/scripts/vserver-build.template @@ -0,0 +1,99 @@ +# $Id: vserver-build.template 2532 2007-04-21 14:05:32Z dhozac $ --*- sh -*-- + +# Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +tmp=$(getopt -o '+d:t:' --long debug,pkgmgmt,template:,nodevsanity -n "vserver-build.template" -- "$@") || exit 1 +eval set -- "$tmp" + +. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT" + +DISTRIBUTION=: +use_pkgmgmt= +no_dev_sanity= +declare -a TEMPLATE=() +while true; do + case "$1" in + -d) DISTRIBUTION=$2; shift;; + --debug) set -x;; + --pkgmgmt) use_pkgmgmt=1;; + --nodevsanity) no_dev_sanity=1;; + -t|--template) + case "$2" in + /*) f="$2";; + *) f=`pwd`/"$2";; + esac + TEMPLATE=( "${TEMPLATE[@]}" "$f" ) + shift + ;; + --) shift; break ;; + *) echo "vserver-build.template: internal error: unrecognized option '$1'" >&2 + exit 1 + ;; + esac + shift +done + +getDistribution '' 1 + +base.init +test -z "$use_pkgmgmt" || pkgmgmt.initVariables + +base.initFilesystem "$OPTION_FORCE" +test -z "$use_pkgmgmt" || pkgmgmt.initFilesystem "$OPTION_FORCE" + + +setup_writeOption "$VSERVER_NAME" +setup_writeInitialFstab + +test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" + +pushd "$SETUP_CONFDIR/vdir" &> /dev/null +for t in "${TEMPLATE[@]}"; do + mime=$($_FILE -Nbiz -m "$_LIB_MAGIC" "$t") + compression=$(echo "$mime" | $_GREP '(' | $_SED 's!.*(\(.*\))$!\1!') + + case "$compression" in + application/x-bzip2) DECOMPRESS="$_BZIP2 -d -c";; + application/x-gzip) DECOMPRESS="$_GZIP -d -c";; + "") DECOMPRESS=$_CAT;; + *) + echo "Unsupported compression method: $compression" + exit 1 + ;; + esac + + case "$mime" in + application/x-tar*) EXTRACT="$_TAR -x";; + application/x-cpio*) EXTRACT="$_CPIO -i";; + application/x-dump*) EXTRACT="$_RESTORE -rf -";; + *) + echo "Unsupported packaging method: $mime" + exit 1 + ;; + esac + + $DECOMPRESS "$t" | $EXTRACT +done + +test -z "$no_dev_sanity" && { + rm -rf dev/* + populateDev +} +popd &> /dev/null + +test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" + +base.setSuccess diff --git a/scripts/vserver-build.yum b/scripts/vserver-build.yum index 72d3a81..ed711fb 100644 --- a/scripts/vserver-build.yum +++ b/scripts/vserver-build.yum @@ -1,4 +1,4 @@ -# $Id: vserver-build.yum,v 1.5 2005/06/30 06:13:09 ensc Exp $ --*- sh -*-- +# $Id: vserver-build.yum 2162 2005-07-25 15:40:22Z ensc $ --*- sh -*-- # Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -41,6 +41,9 @@ pkgmgmt.initVariables rpm.initVariables yum.initVariables +rpm.sanityCheck + + base.initFilesystem "$OPTION_FORCE" pkgmgmt.initFilesystem "$OPTION_FORCE" rpm.initFilesystem diff --git a/scripts/vserver-setup.functions b/scripts/vserver-setup.functions index 127f42f..31aab65 100644 --- a/scripts/vserver-setup.functions +++ b/scripts/vserver-setup.functions @@ -1,6 +1,6 @@ -# $Id: vserver-setup.functions,v 1.18 2005/02/25 23:32:02 ensc Exp $ --*- sh -*-- +# $Id: vserver-setup.functions 2517 2007-03-18 22:02:22Z dhozac $ --*- sh -*-- -# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +# Copyright (C) 2003,2004,2005,2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # # 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 @@ -24,14 +24,18 @@ SETUP_LOCKFILE= SETUP_CONFDIR= SETUP_CONTEXT= SETUP_INITSTYLE= +SETUP_CPUSET= +SETUP_CPUSETCPUS= +SETUP_CPUSETMEMS= +SETUP_CPUSETVIRT= declare -a SETUP_INTERFACES=() declare -a SETUP_FLAGS=() -declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:" +declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:,cpuset:,cpusetcpus:,cpusetmems:,cpusetvirt" declare -r SETUP_HELPMSG=$" - --context ... the static context of the vserver [default: none; a dynamic - context will be assumed] + --context ... the static context of the vserver [default: none; one will + be generated for you] --confdir ... [default: $__CONFDIR/<name>] --lockfile <filename> ... [default: $__RUNDIR/<name>] @@ -55,6 +59,19 @@ declare -r SETUP_HELPMSG=$" this becomes a per vserver limit) private: No other process can join this security context. Even root + --cpuset <name> + ... declares the CPUSET this vserver will run in [default: none] + --cpusetcpus <number[-number][:<exclusive>]> + ... sets which cpus belong to the CPUSET, + exclusive is a flag (0|1) prohibiting any other cpuset from + using those cpus + --cpusetmems <number[-number][:<exclusive>]> + ... sets which memory pools belong to the CPUSET, + exclusive is a flag (0|1) prohibiting any other cpuset from + using those memory pools + --cpusetvirt + ... virtualize cpuset (guest will see only CPUs defined in cpuset) + Requires kernel patch from http://www.bullopensource.org/cpuset/ --initstyle <style> ... configures the initstyle (e.g. minit,sysv,plain) " @@ -71,7 +88,23 @@ function setup_setOption2 (--netprefix) SETUP_NETPREFIX=$2;; (--netbcast) SETUP_NETBCAST=$2;; (--interface) SETUP_INTERFACES=( "${SETUP_INTERFACES[@]}" "$2" );; - (--initstyle) SETUP_INITSTYLE=$2;; + (--initstyle) SETUP_INITSTYLE=$2;; + (--cpuset) SETUP_CPUSET=$2;; + (--cpusetcpus) old_IFS=$IFS + IFS=: + set -- $2 + SETUP_CPUSETCPUS=$1 + SETUP_CPUSETCPUSEXCL=$2 + IFS=$old_IFS + ;; + (--cpusetmems) old_IFS=$IFS + IFS=: + set -- $2 + SETUP_CPUSETMEMS=$1 + SETUP_CPUSETMEMSEXCL=$2 + IFS=$old_IFS + ;; + (--cpusetvirt) SETUP_CPUSETVIRT=1;; (--flags) old_IFS=$IFS IFS=, set -- $2 @@ -100,9 +133,14 @@ function _setup_writeInterface tmp=${tmp##${name}=} local dev=${tmp%%:*} - test "$dev" != "$tmp" || dev= + local nodev= + test "$dev" != "$tmp" || dev= tmp=${tmp##${dev}:} + test "$dev" != "nodev" || { + dev= + nodev=1 + } local mask=${tmp##*/} test "$mask" != "$tmp" || mask= @@ -123,8 +161,11 @@ function _setup_writeInterface _setup_writeSingleOption "$mask" $d/mask _setup_writeSingleOption "$prefix" $d/prefix - test -n "$dev" -o -n "$SETUP_NETDEV" || \ - echo $"No device specified for interface '$idx'; do not forget to set the 'nodev' option" >&2 + test -n "$dev" -o -n "$SETUP_NETDEV" || { + test -n "$nodev" || \ + echo $"No device specified for interface '$idx'; setting 'nodev'" >&2 + $_TOUCH $d/nodev + } } function setup_setDefaults @@ -134,13 +175,27 @@ function setup_setDefaults findFile SETUP_FSTAB "$__CONFDIR"/.defaults/fstab "$__PKGLIBDEFAULTDIR"/fstab } +function _setup_generateContext +{ + if test -z "$SETUP_CONTEXT" && test ! -e "$__CONFDIR/.defaults/context.dynamic"; then + if test -e "$__CONFDIR/.defaults/context.next"; then + SETUP_CONTEXT=`$_CAT "$__CONFDIR/.defaults/context.next"` + else + SETUP_CONTEXT=`$_CAT "$__PKGLIBDEFAULTDIR/context.start"` + fi + expr "$SETUP_CONTEXT" + 1 > "$__CONFDIR/.defaults/context.next" + fi +} + function setup_writeOption { local name=$1 local cfgdir=${SETUP_CONFDIR:?} local i - mkdir -p "$cfgdir"/interfaces "$cfgdir"/apps/init "$cfgdir"/uts + mkdir -p "$cfgdir"/interfaces "$cfgdir"/apps/init "$cfgdir"/uts "$cfgdir"/cpuset + + _setup_generateContext _setup_writeSingleOption "$name" "$cfgdir"/name _setup_writeSingleOption "$SETUP_CONTEXT" "$cfgdir"/context @@ -150,6 +205,12 @@ function setup_writeOption _setup_writeSingleOption "$SETUP_NETPREFIX" "$cfgdir"/interfaces/prefix _setup_writeSingleOption "$SETUP_NETBCAST" "$cfgdir"/interfaces/bcast _setup_writeSingleOption "$SETUP_INITSTYLE" "$cfgdir"/apps/init/style + _setup_writeSingleOption "$SETUP_CPUSET" "$cfgdir"/cpuset/name + _setup_writeSingleOption "$SETUP_CPUSETCPUS" "$cfgdir"/cpuset/cpus + _setup_writeSingleOption "$SETUP_CPUSETCPUSEXCL" "$cfgdir"/cpuset/cpus_exclusive + _setup_writeSingleOption "$SETUP_CPUSETMEMS" "$cfgdir"/cpuset/mems + _setup_writeSingleOption "$SETUP_CPUSETMEMSEXCL" "$cfgdir"/cpuset/mem_exclusive + _setup_writeSingleOption "$SETUP_CPUSETVIRT" "$cfgdir"/cpuset/virtualized local idx=0 for i in "${SETUP_INTERFACES[@]}"; do diff --git a/scripts/vserver-wrapper b/scripts/vserver-wrapper index ccbd2e1..abab445 100755 --- a/scripts/vserver-wrapper +++ b/scripts/vserver-wrapper @@ -26,35 +26,13 @@ test -n "$MARK" || MARK=default : ${LOCKFILE:=vservers-$MARK} : ${NUMPARALLEL:=6} - -if test -e /etc/init.d/functions; then - . /etc/init.d/functions - lockfile=/var/lock/subsys/$LOCKFILE -else - success() { echo .; } - passed() { echo .; } - failure() { echo ERROR; } - lockfile=/var/run/$LOCKFILE -fi - - -function _tellResult() -{ - local rc=$1 - case "$rc" in - (0) success;; - (2) passed; rc=0;; - (*) failure;; - esac - echo - return $rc -} +. "$_LIB_VSERVER_INIT_FUNCTIONS" function start() { - echo -n $"Starting vservers of type '$MARK'..." + _beginResult $"Starting vservers of type '$MARK'" $_START_VSERVERS -m "$MARK" -j "$NUMPARALLEL" --all --start - _tellResult $? + _endResult $? local rc=$? test "$rc" -ne 0 || touch "$lockfile" return $rc @@ -62,9 +40,9 @@ function start() function stop() { - echo -n $"Stopping vservers of type '$MARK'..." + _beginResult $"Stopping vservers of type '$MARK'" $_START_VSERVERS -m "$MARK" -j "$NUMPARALLEL" --all --stop - _tellResult $? + _endResult $? local rc=$? $_RM -f "$lockfile" return $rc diff --git a/scripts/vserver.delete b/scripts/vserver.delete new file mode 100644 index 0000000..b93d29c --- /dev/null +++ b/scripts/vserver.delete @@ -0,0 +1,34 @@ +#! /bin/bash +# $Id: vserver.delete 2305 2006-09-12 16:54:03Z dhozac $ + +# Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +. "$_LIB_VSERVER_BUILD_FUNCTIONS" +. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT" + +if test -z "$OPTION_SILENT" ; then + read -p "Are you sure you want to delete the vserver $vserver (y/N) " deleteok + if [[ ${deleteok} != [Yy] ]]; then + exit 2 + fi +fi + +isVserverRunning "$VSERVER_DIR" && + "${SELF[@]}" $OPTION_SILENT --sync "$vserver" stop + +base.init +pkgmgmt.initVariables +rm -rf "`$_VSERVER_INFO "$vserver" VDIR 1`" "$VSERVER_DIR" "$PKGCFGDIR" diff --git a/scripts/vserver.functions b/scripts/vserver.functions index 0139d58..76fdb19 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -1,4 +1,4 @@ -# $Id: vserver.functions,v 1.57 2005/07/03 17:47:06 ensc Exp $ --*- sh -*-- +# $Id: vserver.functions 2538 2007-04-27 09:08:43Z hollow $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -42,6 +42,7 @@ declare -a OPTS_VCONTEXT_MIGRATE=() declare -a OPTS_VCONTEXT_ENTER=() declare -a OPTS_VATTRIBUTE=( --flag fakeinit ) declare -a OPTS_VSCHED=() +declare -a OPTS_ENV=() declare -a STOPCMD_PREPARE=() @@ -72,35 +73,58 @@ else SILENT_OPT='--silent' fi +function _readFileToArray +{ + local _rfta_f="$1" + local _rfta_a="$2" + local _rfta_p="$3" + local _rfta_v + + test -e "$_rfta_f" || return 0 + while read _rfta_v; do + case x"$_rfta_v" in + (x|x\#*) ;; + (*) eval "$_rfta_a=( \"\${$_rfta_a[@]}\" $_rfta_p \"$_rfta_v\" )";; + esac + done <"$_rfta_f" +} + function _generateChbindOptions { local vdir="$1" local i local bcast= + local nid= test -n "$_HAVE_INTERFACE_OPTIONS" || _generateInterfaceOptions "$vdir" local f=$vdir/interfaces/bcast getFileValue bcast "$f" + + getFileValue nid "$vdir/ncontext" "$vdir/context" - CHBIND_OPTS=( $SILENT_OPT ${bcast:+--bcast "$bcast"} ) + CHBIND_OPTS=( $SILENT_OPT --secure ${nid:+--nid "$nid"} ${bcast:+--bcast "$bcast"} ) for i in "${INTERFACES[@]}"; do CHBIND_OPTS=( "${CHBIND_OPTS[@]}" --ip "$i" ) done + _readFileToArray "$vdir"/nflags CHBIND_OPTS --flag + _readFileToArray "$vdir"/ncapabilities CHBIND_OPTS --ncap + _HAVE_CHBIND_OPTIONS=1 } function _generateNiceCommand { local vdir=$1 - local nice + local nice=0 + local current_nice=`$_NICE` - test -r "$vdir/nice" || return 0; - read nice <"$vdir"/nice + test -r "$vdir/nice" && read nice <"$vdir"/nice - NICE_CMD=( $_NICE -$nice ) + let nice=$nice-$current_nice || : + NICE_CMD=( $_NICE -n $nice ) } @@ -134,31 +158,15 @@ function _generatePersonalityOptions function _generateCCapabilityOptions { local vdir=$1 - local cap - local f="$vdir"/ccapabilities - - test -e "$f" || return 0 - while read cap; do - case x"$cap" in - (x|x\#) ;; - (*) OPTS_VATTRIBUTE=( "${OPTS_VATTRIBUTE[@]}" --ccap "$cap" );; - esac - done <"$f" + + _readFileToArray "$vdir"/ccapabilities OPTS_VATTRIBUTE --ccap } function _generateBCapabilityOptions { local vdir=$1 - local cap - local f="$vdir"/bcapabilities - - test -e "$f" || return 0 - while read cap; do - case x"$cap" in - (x|x\#) ;; - (*) OPTS_VATTRIBUTE=( "${OPTS_VATTRIBUTE[@]}" --bcap "$cap" );; - esac - done <"$f" + + _readFileToArray "$vdir"/bcapabilities OPTS_VATTRIBUTE --bcap } function _generateCapabilityOptions @@ -176,7 +184,7 @@ function _generateCapabilityOptions while read cap; do case x"$cap" in - (x|x\#) ;; + (x|x\#*) ;; (!CAP_SYSCHROOT) CAP_OPTS=( "${CAP_OPTS[@]}" --cap "$cap" ) CAPCHROOT_OPTS=( "${CAPCHROOT_OPTS[@]}" --nochroot ) @@ -242,18 +250,22 @@ function _generateInitOptions CHCONTEXT_INIT_OPTS=() - getFileValue INITSTYLE "$cfgdir"/style + test x"$INITSTYLE" = xrescue || \ + getFileValue INITSTYLE "$cfgdir"/style getFileValue RUNLEVEL_START "$cfgdir"/runlevel getFileValue RUNLEVEL_START "$cfgdir"/runlevel.start getFileValue RUNLEVEL_STOP "$cfgdir"/runlevel.stop getFileArray INITKILL_SEQ "$cfgdir"/killseq || : + findFile _gio_env "$cfgdir"/environment \ + "$__CONFDIR"/.defaults/apps/init/environment \ + "$__PKGLIBDEFAULTDIR"/environment + getFileArray OPTS_ENV "$_gio_env" || : + case x"$INITSTYLE" in (xrescue) INITCMD_START=( "${INITCMD_RESCUE[@]}" ) INITCMD_STOP=( /sbin/killall5 ) - _IS_FAKEINIT=1 - _NEED_VSHELPER_SYNC= ;; (xsysv) @@ -289,13 +301,15 @@ function _generateInitOptions ;; (xgentoo) - INITCMD_START=( /sbin/rc default ) - INITCMD_STOP=( /sbin/rc shutdown ) + test -n "$RUNLEVEL_START" || RUNLEVEL_START="default" + + INITCMD_START=( /lib/rcscripts/sh/init-vserver.sh "$RUNLEVEL_START" ) + INITCMD_STOP=( env -i RUNLEVEL=0 /sbin/rc shutdown ) + INITCMD_PREPARE=( $_FAKE_RUNLEVEL 3 /var/run/utmp ) ;; (x) ;; - (*) echo "Unknown init-style '$INITSTYLE'; aborting" >&2; - exit 1;; + (*) panic "Unknown init-style '$INITSTYLE'; aborting";; esac if test x"$INITSTYLE" != xrescue; then @@ -328,7 +342,7 @@ function _generateFlagOptions test ! -e "$vdir"/flags || \ while read flag; do case x"$flag" in - (x|x\#) ;; + (x|x\#*) ;; (xnamespace) ;; (xfakeinit) _IS_FAKEINIT=1 @@ -377,12 +391,17 @@ function _generateChcontextOptions OPTS_VCONTEXT_CREATE=( $SILENT_OPT \ ${ctx:+--xid "$ctx"} ) ## put '--secure' at front so that it can be overridden - OPTS_VATTRIBUTE=( --secure "${OPTS_VATTRIBUTE[@]}" ) + OPTS_VATTRIBUTE=( --secure --flag default "${OPTS_VATTRIBUTE[@]}" ) } function _generateScheduleOptions { local vdir=$1 + if test -d "$vdir"/sched; then + OPTS_VSCHED=( --dir "$vdir"/sched --missingok ) + return 0 + fi + local f="$vdir"/schedule test -e "$f" || return 0 @@ -455,6 +474,29 @@ function _generateMac eval $1=$(printf "f0:ff:%02x:%02x:%02x:%02x" $[ (~($2>>8)) & 0xff ] $[ ($2 & 0xff) ] $[ ($3>>8) & 0xff ] $[ $3 & 0xff ]) } +function _getVLANInfo +{ + case "$1" in + (vlan????) + panic "\ +creation of VLAN_PLUS_VID devices is not supported; please create them +before starting the vserver and use the 'nodev' flag then" + echo "$1 vlan ${1##vlan} VLAN_PLUS_VID" + ;; + (vlan*) + panic "\ +creation of VLAN_PLUS_VID_NO_PAD devices is not supported; please +create them before starting the vserver and use the 'nodev' flag then" + echo "$1 vlan ${1##vlan} VLAN_PLUS_VID_N0_PAD" + ;; + (*.????) echo "$1 ${1%%.*} ${1##*.} DEV_PLUS_VID";; + (*.*) echo "$1 ${1%%.*} ${1##*.} DEV_PLUS_VID_NO_PAD";; + (*) return 1 + esac + + return 0 +} + ## Usage: _processSingleInterface <interface-directory> function _processSingleInterface { @@ -497,22 +539,26 @@ function _processSingleInterface ## LEGACY ALERT test ! -e "$iface"/only_ip || break - case "$dev" in - (*.*) + test -e "$iface/vlandev" \ + -o \( -e "$iface/../vlandev" -a ! -e "$iface/novlandev" \) \ + -o \( -e "$__CONFDIR/.defaults/interfaces/vlandev" \ + -a ! -e "$iface/novlandev" \ + -a ! -e "$iface/../novlandev" \) && { + local vlan_info + if vlan_info=$(_getVLANInfo "$dev"); then test -d /proc/net/vlan || { echo -e $"VLAN device-name used, but vlan subsystem not enabled.\nTry to execute 'modprobe 8021q' before starting the vservers" >&2 return 1 } - test -f /proc/net/vlan || { - _addInterfaceCmd VCONFIG ${dev/./ } - _addInterfaceCmd IP_ADDR 127.0.0.1/8 broadcast 127.255.255.255 dev "$dev" - _addInterfaceCmd IP_LINK "$dev" $up - } - ;; - esac + _addInterfaceCmd VCONFIG $vlan_info + fi + } if ! test -e "$iface"/indirect; then - _addInterfaceCmd IP_ADDR "$ip${prefix:+/$prefix}" broadcast ${bcast:-+} ${name:+label "$dev:$name"} dev "$dev" + # XXX: IPv6 hack + use_bcast="broadcast ${bcast:-+}" + echo "$ip" | $_GREP -q : && use_bcast= + _addInterfaceCmd IP_ADDR "$ip${prefix:+/$prefix}" $use_bcast ${name:+label "$dev:$name"} dev "$dev" #_addInterfaceCmd IP_ROUTE "$ip${prefix:+/$prefix}" dev "$dev" _addInterfaceCmd IP_LINK "$dev" $up elif ! test -n "$ctx"; then @@ -569,8 +615,9 @@ function enableInterfaces shift 2 $_MODPROBE ${name:+-o "$name"} "$mod" "$@" ;; - NAMEIF) $_NAMEIF "$@";; - VCONFIG) $_VCONFIG add "$@";; + NAMEIF) $_NAMEIF "$@";; + VCONFIG) $_VCONFIG set_name_type "$4" >/dev/null + $_VCONFIG add "$2" "$3" >/dev/null;; IP_ADDR) $_IP addr add "$@";; IP_ADDR_FLUSH) $_IP addr flush "$@";; IP_LINK) $_IP link set "$@";; @@ -605,7 +652,7 @@ function disableInterfaces IPTABLES) ;; ## TODO MODPROBE) $_RMMOD "${2:-$1}";; NAMEIF) ;; - VCONFIG) $_VCONFIG rem "$@";; + VCONFIG) $_VCONFIG rem "$2.$3" >/dev/null;; IP_ADDR) $_IP addr del "$@";; IP_ADDR_FLUSH) ;; IP_LINK) ;; ## Ignore the link-down command for now @@ -667,6 +714,54 @@ function generateOptions fi } +function addtoCPUSET +{ + local vdir=$1 + local cpuset + local f="$vdir"/cpuset + local i + local configured=0 + + test -d "$f" || return 0 + test -e "$f"/name || return 0 + + read cpuset < "$f"/name + test -e "$f"/nocreate || { + test -d /dev/cpuset/"$cpuset" || mkdir /dev/cpuset/"$cpuset" || configured=1 + for i in cpus mems cpu_exclusive mem_exclusive virtualized; do + if test -e "$f"/"$i"; then + cat "$f"/"$i" >/dev/cpuset/"$cpuset"/"$i" || { + configured=1 + break + } + fi + done + } + + echo $$ >/dev/cpuset/"$cpuset"/tasks || configured=1 + if [ "$configured" -ne 0 ]; then + warning $"\ +WARNING: Failed to create or CPUSET \"$cpuset\" does not exist! Not using it!" >&2 + rmdir /dev/cpuset/"$cpuset" 2>/dev/null || : + return 0 + fi +} + +function removeCPUSET +{ + local vdir=$1 + local cpuset + local f="$vdir"/cpuset + + test -d "$f" || return 0 + test -e "$f"/name || return 0 + + read cpuset < "$f"/name + test -e "$f"/nocreate || { + rmdir /dev/cpuset/"$cpuset" 2>/dev/null || : + } +} + function _mountVserverInternal { local fstab="$1" @@ -720,13 +815,13 @@ function mountVserver test -n "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$cfgdir" - test -z "$NAMESPACE_CLEANUP" || isAvoidNamespace "$cfgdir" || \ - $_VNAMESPACE --cleanup - _mountVserverInternal "$cfgdir"/fstab _mountVserverInternal "$cfgdir"/fstab.local _mountVserverInternal "$cfgdir"/fstab.remote $_CHBIND "${CHBIND_OPTS[@]}" + isNamespaceCleanup "$cfgdir" && \ + _namespaceCleanup "$cfgdir" + isAvoidNamespace "$cfgdir" || \ $_SECURE_MOUNT --rbind -n "$vdir" "/" } @@ -760,12 +855,14 @@ function umountVserver isAvoidNamespace "$cfgdir" || return 0 test -e "$cfgdir"/fstab -o \ - -e "$cfgdir"/fstab.local || return 0 + -e "$cfgdir"/fstab.local -o \ + -e "$cfgdir"/fstab.remote || return 0 test -n "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$cfgdir" pushd "$vdir/" >/dev/null || return 1 - _umountVserverInternal "$cfgdir"/fstab.local || is_ok= - _umountVserverInternal "$cfgdir"/fstab $_CHBIND "${CHBIND_OPTS[@]}" || is_ok= + _umountVserverInternal "$cfgdir"/fstab.remote $_CHBIND "${CHBIND_OPTS[@]}" || is_ok= + _umountVserverInternal "$cfgdir"/fstab.local || is_ok= + _umountVserverInternal "$cfgdir"/fstab || is_ok= popd >/dev/null || return 1 test -n "$is_ok" @@ -786,24 +883,37 @@ function initWait { if $_VSERVER_INFO - FEATURE vwait; then local _is_tmpdir - _is_tmpdir=$($_MKTEMPDIR /tmp/vwaitstat.XXXXXX) - - $_NOHUP $_VWAIT --timeout "$VSHELPER_SYNC_TIMEOUT" \ - --terminate --status-fd 3 "$2" \ - >>$_is_tmpdir/out 2>$_is_tmpdir/err 3>$_is_tmpdir/fifo & + _is_tmpdir=$($_MKTEMPDIR vwaitstat.XXXXXX) + + ( + $_VWAIT --timeout "$VSHELPER_SYNC_TIMEOUT" \ + --status-fd 3 "$2" \ + >>$_is_tmpdir/out 2>$_is_tmpdir/err 3>$_is_tmpdir/fifo + rc=$? + if test "$rc" -ne 0 -a "$rc" -ne 1; then + $_VPS axf | $_EGREP -e "^[^ \t]+[ \t]+$S_CONTEXT[ \t]+" >&4 + killContext "$S_CONTEXT" 9 + fi + + exit $rc + ) 4>$_is_tmpdir/procs & + echo "$!" >$_is_tmpdir/pid eval "$3"=$_is_tmpdir - fi + fi </dev/null } -## Usage: _waitForVWait <fifo> <pid> +## Usage: _waitForVWait <vserver> <fifo> <pid> <procs> function _waitForVWait { + wait "$3" || : + declare -a status - wait "$2" || : - getFileArray status "$1" + declare -r procs=$(cat $4) + + getFileArray status "$2" set -- ${status[0]} case "$1" in @@ -817,10 +927,21 @@ A timeout occured while waiting for the vserver to finish and it was killed by sending a SIGKILL signal. Please investigate the reasons and/or increase the timeout in apps/vshelper/sync-timeout." ;; - (TIMEOUT|\?\?\?|*) warning $"\ + + (TIMEOUT) warning $"\ +A timeout occured while waiting for the vserver to finish and it will +be killed by sending a SIGKILL signal. The following process list +might be useful for finding out the reason of this behavior: + +---------------------------------------------------------------------- +${procs:+$procs +}----------------------------------------------------------------------" + ;; + + (\?\?\?|*) warning $"\ internal error: 'vwait' exited with an unexpected status '$1'; I will try to continue but be prepared for unexpected events." - ;; + ;; esac return 0 @@ -835,7 +956,7 @@ function waitForSync local vwait_pid=$4 if test -d "$vwait_statdir"; then - _waitForVWait "$vwait_statdir/fifo" "$( <$vwait_statdir/pid )" + _waitForVWait "$cfgdir" "$vwait_statdir/fifo" "$( <$vwait_statdir/pid )" "$vwait_statdir/procs" elif test -n "$_NEED_VSHELPER_SYNC"; then $_VSHELPER_SYNC "$fifo" "$VSHELPER_SYNC_TIMEOUT" || \ warning $"\ @@ -920,6 +1041,14 @@ WARNING: The 'only_ip' flag for interface '$iface' is deprecated; use fi done + test ! -d "$cfgdir"/dlimits -o -L "$cfgdir/cache" || \ + warning $"\ +WARNING: There is no cachedirectory configured for this vserver; + please create '$cfgdir/cache' e.g. by executing + + ln -s ../.defaults/cachebase/$VSERVER_NAME $cfgdir/cache +" + find "$cfgdir" -type f -exec "$_CHECK_UNIXFILE" '{}' ';' vshelper.doSanityCheck @@ -931,5 +1060,182 @@ WARNING: The 'only_ip' flag for interface '$iface' is deprecated; use panic $"\ /proc/uptime can not be accessed. Usually, this is caused by procfs-security. Please read the FAQ for more details -http://www.linux-vserver.org/index.php?page=Linux-Vserver+FAQ" +http://linux-vserver.org/Proc-Security" +} + + +function _setSingleDiskLimit +{ + local vdir=$1 + local dlimit=$2 + local space_used= + local space_total= + local inodes_used= + local inodes_total= + local reserved= + local directory= + local ctx= + + getFileValue ctx "$vdir/context" + getFileValue directory "$dlimit/directory" || return 0 + getFileValue space_total "$dlimit/space_total" || return 0 + getFileValue inodes_total "$dlimit/inodes_total" || return 0 + getFileValue reserved "$dlimit/reserved" || return 0 + + local cachename=$ctx$directory + cachename=dlimits/${cachename//\//_} + + test -e "$vdir/cache/$cachename" && . "$vdir/cache/$cachename" + # Remove the cache so if the machine goes down unexpectedly, we won't have a stale cache + $_RM -f "$vdir/cache/$cachename" + + if test -z "$inodes_used" -o -z "$space_used"; then + local tmpvdu + tmpvdu=`$_VDU --xid $ctx --space --inodes --script "$directory"` + inodes_used=${tmpvdu##* } + space_used=${tmpvdu%% *} + fi + + $_VDLIMIT --xid $ctx \ + --set space_used=$space_used \ + --set space_total=$space_total \ + --set inodes_used=$inodes_used \ + --set inodes_total=$inodes_total \ + --set reserved=$reserved \ + "$directory" +} + + +function setDiskLimits +{ + local vdir=$1 + local dlimit + + # Disk Limits without a static context are useless + test -e "$vdir"/context || return 0 + + for dlimit in "$vdir/dlimits/"*; do + test -d "$dlimit" || continue + test ! -e "$dlimit/disabled" || continue + + _setSingleDiskLimit "$vdir" "$dlimit" + done +} + + +function _saveSingleDiskLimit +{ + local vdir=$1 + local dlimit=$2 + local ctx= + local directory= + + getFileValue ctx "$vdir/context" + getFileValue directory "$dlimit/directory" || return 0 + + local cachename=$ctx$directory + cachename=${cachename//\//_} + + # Things are getting ugly here... LFS says that /var/cache (where + # cachename is usually pointing to) can vanish and applications + # have to deal with it. So, we have to interprete the $vdir/cache + # symlink and have to create the needed directories manually. + if test -d "$vdir/cache"; then + : # ok, exists already + elif test -L "$vdir/cache"; then + # it's a dangling symlink + local link + link=$($_READLINK "$vdir/cache") + ( cd $vdir && $_MKDIR -p "$link" ) + else + return 0 + fi + + test -d "$vdir/cache" + $_MKDIR -p "$vdir"/cache/dlimits + + $_VDLIMIT --xid $ctx "$directory" | \ + $_GREP '_used=' > "$vdir/cache/dlimits/$cachename" + + $_VDLIMIT --xid $ctx --remove "$directory" +} + + +function saveDiskLimits +{ + local vdir=$1 + local dlimit + + test -e "$vdir"/context || return 0 + + for dlimit in "$vdir/dlimits/"*; do + test -d "$dlimit" || continue + test ! -e "$dlimit/disabled" || continue + + _saveSingleDiskLimit "$vdir" "$dlimit" + done +} + +function _namespaceCleanup +{ + local vdir="$1" + local root=$($_VSERVER_INFO "$1" VDIR 1) + local -a list + local -a skip + local tmp + + getFileArray skip "$vdir"/namespace-cleanup-skip \ + "$__CONFDIR"/.defaults/namespace-cleanup-skip || : + + # these are things that have to be accessible post-cleanup + for tmp in "$root" "$__SBINDIR" "$__PKGLIBDIR" "$vdir" \ + "$__PKGSTATEDIR" "$__LOCKDIR" /usr/local /tmp "${skip[@]}"; do + while test -n "$tmp"; do + list=( "${list[@]}" "$tmp" ) + tmp="${tmp%/*}" + done + done + + local -a list_umount + while read dev path opts; do + test -n "$path" || continue + for i in "$root" /dev /proc; do + test "${path#$i}" != "$path" && continue 2 + done + for i in "${list[@]}" /; do + test "$path" = "$i" && continue 2 + done + # unmount them in reverse order so mounts further down the tree get unmounted first + list_umount=( "$path" "${list_umount[@]}" ) + done < /proc/mounts + # separate loop to avoid races while reading /proc/mounts + for i in "${list_umount[@]}"; do + $_UMOUNT -l -n "$i" + done +} + +function loadDeviceMap +{ + local xid="$1" + local dir="$2" + local flags device target + + test -d "$dir" || return 0 + + for i in "$dir"/*; do + test -d "$i" || continue + + local -a vdevmap_opts=() + test -e "$i/create" && vdevmap_opts=( "${vdevmap_opts[@]}" --create ) + test -e "$i/open" && vdevmap_opts=( "${vdevmap_opts[@]}" --open ) + test -e "$i/remap" && vdevmap_opts=( "${vdevmap_opts[@]}" --remap ) + + getFileValue flags "$i/flags" || : + getFileValue device "$i/device" || : + getFileValue target "$i/target" || : + vdevmap_opts=( "${vdevmap_opts[@]}" ${flags:+--flags "$flags"} \ + ${device:+--device "$device"} ${target:+--target "$target"} ) + + $_VDEVMAP --xid "$xid" "${vdevmap_opts[@]}" || return $? + done } diff --git a/scripts/vserver.start b/scripts/vserver.start index 7311288..324292b 100644 --- a/scripts/vserver.start +++ b/scripts/vserver.start @@ -1,4 +1,4 @@ -# $Id: vserver.start,v 1.45 2005/07/15 19:01:06 ensc Exp $ --*- sh -*-- +# $Id: vserver.start 2466 2007-01-21 08:02:44Z dhozac $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -71,21 +71,40 @@ is_mounted= is_vshelper_init= have_interfaces= startsync_pipe= +have_initcmd= while test "$#" -gt 0; do case "$1" in (--rescue) INITSTYLE=rescue;; - (--rescue-cmd) INITCMD_RESCUE=( $2 ); shift;; - (*) panic $"vserver ... start: unknown option '$1'";; + (--rescue-cmd) + warning $"\ +The '--rescue-cmd' option is deprecated; just add the the initcmd +inclusive its arguments to the cmdline." + INITCMD_RESCUE=( $2 ); + have_initcmd=1 + shift;; + (--rescue-init) _IS_FAKEINIT=1;; + (--) shift; break;; + (-*) panic $"vserver ... start: unknown option '$1'";; + (*) break; esac shift done +if test x"$INITSTYLE" = xrescue -a -z "$have_initcmd" -a "$#" -gt 0; then + INITCMD_RESCUE=( "$@" ) +fi + + set -e trap "cleanup" EXIT sanityCheck "$VSERVER_DIR" +pushd "$VSERVER_DIR" >/dev/null +execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" initialize +popd >/dev/null + mountRootFS "$VSERVER_DIR" generateOptions "$VSERVER_DIR" @@ -93,10 +112,13 @@ pushd "$VSERVER_DIR" >/dev/null execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" prepre-start popd >/dev/null +setDiskLimits "$VSERVER_DIR" + enableInterfaces "$VSERVER_DIR" && have_interfaces=1 mountVserver "$VSERVER_DIR" && is_mounted=1 prepareInit "$VSERVER_DIR" +addtoCPUSET "$VSERVER_DIR" pushd "$VSERVER_DIR"/vdir/ >/dev/null execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" pre-start @@ -113,19 +135,20 @@ if $_VSERVER_INFO - FEATURE migrate; then $_VCONTEXT --create "${OPTS_VCONTEXT_CREATE[@]}" -- \ ${USE_VNAMESPACE:+$_VNAMESPACE --set -- } \ $_VLIMIT --dir "$VSERVER_DIR"/rlimits --missingok -- \ - $_VSCHED --xid self "${OPTS_VSCHED[@]}" -- \ - $_VUNAME --xid self --dir "$VSERVER_DIR"/uts --missingok -- \ + $_VSCHED --xid self --force "${OPTS_VSCHED[@]}" -- \ + $_VSYSCTL --xid self --dir "$VSERVER_DIR"/sysctl --missingok -- \ + $_VUNAME --xid self --dir "$VSERVER_DIR"/uts --missingok -- \ "${VSERVER_EXTRA_CMDS[@]}" \ $_VUNAME --xid self --set -t context="$VSERVER_DIR" -- \ $_VATTRIBUTE --set "${OPTS_VATTRIBUTE[@]}" -- \ $_SAVE_CTXINFO "$VSERVER_DIR" \ - $_ENV -i -- \ + $_ENV -i "${OPTS_ENV[@]}" \ $_VCONTEXT --migrate-self --endsetup --chroot $SILENT_OPT \ "${OPTS_VCONTEXT_MIGRATE[@]}" "${OPTS_VCONTEXT_ENTER[@]}" -- \ "${INITCMD_START[@]}" else if test -n "$_IS_FAKEINIT"; then - startsync_pipe=$($_MKTEMP /tmp/vserver-start.XXXXXX) + startsync_pipe=$($_MKTEMP vserver-start.XXXXXX) $_RM -f "$startsync_pipe" $_MKFIFO -m600 "$startsync_pipe" ## safe, since mkfifo does not follow symlinks fi @@ -135,7 +158,7 @@ else $_EXEC_ULIMIT "$VSERVER_DIR/ulimits" \ $_CHCONTEXT_COMPAT "${CHCONTEXT_OPTS[@]}" "${CHCONTEXT_INIT_OPTS[@]}" \ $_SAVE_CTXINFO "$VSERVER_DIR" \ - $_ENV -i -- \ + $_ENV -i "${OPTS_ENV[@]}" \ $_CHAINECHO "${_IS_FAKEINIT:+$startsync_pipe}" "" \ $_CAPCHROOT "${CAPCHROOT_OPTS[@]}" . \ "${INITCMD_START[@]}" diff --git a/scripts/vserver.stop b/scripts/vserver.stop index f1ac335..3783310 100644 --- a/scripts/vserver.stop +++ b/scripts/vserver.stop @@ -1,4 +1,4 @@ -# $Id: vserver.stop,v 1.29 2005/06/30 06:17:58 ensc Exp $ --*- sh -*-- +# $Id: vserver.stop 2508 2007-02-25 14:06:51Z dhozac $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -66,25 +66,32 @@ fail= initWait "$VSERVER_DIR" "$S_CONTEXT" vwait_statdir if test -n "$_IS_FAKEINIT" && \ $_VSERVER_INFO - FEATURE vkill; then - $_VKILL -s INT --xid "$S_CONTEXT" -- 1 || fail=1 - ## HACK: remove the 'initpid' stuff above when PID virtualization - ## is implemented + if ! vshelper.isStopSync; then + $_VKILL -s INT --xid "$S_CONTEXT" -- 1 || fail=1 + fi elif $_VSERVER_INFO - FEATURE migrate; then "${NICE_CMD[@]}" \ - ${USE_VNAMESPACE:+$_VNAMESPACE --enter "$S_CONTEXT" -- } \ $_VCONTEXT $SILENT_OPT --migrate --chroot --xid "$S_CONTEXT" -- \ "${INITCMD_STOP[@]}" || fail=1 else "${NICE_CMD[@]}" \ "$_CHBIND" "${CHBIND_OPTS[@]}" \ "$_EXEC_ULIMIT" "$VSERVER_DIR/ulimits" \ - ${USE_VNAMESPACE:+$_VNAMESPACE --enter "$S_CONTEXT"} \ $_CHCONTEXT_COMPAT "${CHCONTEXT_OPTS[@]}" \ "$_CAPCHROOT" "${CAPCHROOT_OPTS[@]}" "." \ "${INITCMD_STOP[@]}" || fail=1 fi -test -n "$fail" || waitForSync "$VSERVER_DIR" "$sync_fifo" "$vwait_statdir" +# Remove persistent so those contexts can be stopped +$_VATTRIBUTE --set --xid "$S_CONTEXT" --flag ~persistent 2>/dev/null || : +if $_VSERVER_INFO -q "$S_CONTEXT" XIDTYPE static && + $_VSERVER_INFO - FEATURE vnet; then + $_NATTRIBUTE --set --nid "$S_CONTEXT" --flag ~persistent 2>/dev/null || : +fi + +vshelper.doStopSync + +waitForSync "$VSERVER_DIR" "$sync_fifo" "$vwait_statdir" vshelper.doDestroy "$VSERVER_DIR" "$S_CONTEXT" sendKillSequence "$S_CONTEXT" "${INITKILL_SEQ[@]}" @@ -98,4 +105,7 @@ execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" post-stop umountVserver "$VSERVER_DIR" || : disableInterfaces "$VSERVER_DIR" +saveDiskLimits "$VSERVER_DIR" + execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" postpost-stop +removeCPUSET "$VSERVER_DIR" diff --git a/scripts/vserver.suexec b/scripts/vserver.suexec index 963bdf5..bbbe96f 100644 --- a/scripts/vserver.suexec +++ b/scripts/vserver.suexec @@ -1,4 +1,4 @@ -# $Id: vserver.suexec,v 1.14 2005/07/15 19:01:06 ensc Exp $ --*- sh -*-- +# $Id: vserver.suexec 2481 2007-01-29 02:06:30Z dhozac $ --*- sh -*-- # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -22,12 +22,15 @@ test -z "$is_stopped" -o "$OPTION_INSECURE" || { exit 1 } generateOptions "$VSERVER_DIR" +addtoCPUSET "$VSERVER_DIR" user=$1 shift cd "$VSERVER_DIR"/vdir/ +test -z "$OPTION_NONAMESPACE" || USE_VNAMESPACE= + if $_VSERVER_INFO - FEATURE migrate; then if test -z "$is_stopped"; then exec \ diff --git a/scripts/vshelper b/scripts/vshelper index 9738ba8..0b44e22 100755 --- a/scripts/vshelper +++ b/scripts/vshelper @@ -54,19 +54,36 @@ function doInternalMethod case "$ACTION" in (restart) logging $"Restarting vserver '$VSERVER'" - spawn killContext "$XID" - execute $_VSERVER --defaulttty "$VSERVER" restart + + local sync_dir + vshelper.initStopSync sync_dir + + spawn $_VSERVER --defaulttty "$VSERVER" restart & + + disown %% + vshelper.waitForStopSync "$sync_dir" ;; (halt|poweroff) logging $"Stopping vserver '$VSERVER'" - spawn killContext "$XID" - execute $_VSERVER --defaulttty "$VSERVER" stop + + local sync_dir + vshelper.initStopSync sync_dir + + spawn $_VSERVER --defaulttty "$VSERVER" stop & + + disown %% + vshelper.waitForStopSync "$sync_dir" + spawn killContext "$XID" ;; (swsusp) ## TODO: any senseful action here? Perhaps shutdown scheduler for it? exit 0 ;; (restart2) ;; + (shutdown) + logging $"Cleaning up after vserver '$VSERVER'" + spawn $_VSERVER --defaulttty "$VSERVER" stop + ;; (*) warning $"Unknown action '$ACTION' for vserver '$VSERVER'" exit 1 @@ -165,7 +182,7 @@ while true; do responsible_xid=$pxid done -vserver_id=$($_VSERVER_INFO "$responsible_xid" ID) || +vserver_id=$($_VSERVER_INFO "$responsible_xid" ID) || test "$ACTION" = "shutdown" || panic $"No responsible vserver found for xid '$responsible_xid' ($XID); aborting..." test "$XID" = "$responsible_xid" || { diff --git a/scripts/vsomething b/scripts/vsomething index 1826a20..3738327 100755 --- a/scripts/vsomething +++ b/scripts/vsomething @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: vsomething,v 1.3 2005/04/24 20:30:55 ensc Exp $ +# $Id: vsomething 2515 2007-03-18 15:32:22Z dhozac $ # Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -23,6 +23,7 @@ test -e "$UTIL_VSERVER_VARS" || { } . "$UTIL_VSERVER_VARS" . "$_LIB_FUNCTIONS" +. "$__PKGLIBDIR/vserver.functions" function showHelp() @@ -105,8 +106,14 @@ for i in "${vservers[@]}"; do if pkgmgmt.isInternal "$i"; then $_VSERVER "$i" exec "$cmd" "$@" else - callInNamespace "$i" \ - "$_VNAMESPACE" --new -- "$VSOMETHING_WORKER" "$i" "$@" + _setVserverDir "$i" + ( _generateChbindOptions "$VSERVER_DIR" + $_VSERVER "$i" status &> /dev/null && \ + CHBIND_CMD=( "$_CHBIND" "${CHBIND_OPTS[@]}" -- ) + callInNamespace "$i" \ + "$_VNAMESPACE" --new -- \ + "${CHBIND_CMD[@]}" \ + "$VSOMETHING_WORKER" "$i" "$@" ) fi else "$cmd" "$i" "$@" diff --git a/scripts/vsysvwrapper b/scripts/vsysvwrapper index 24d3eaa..da9754e 100755 --- a/scripts/vsysvwrapper +++ b/scripts/vsysvwrapper @@ -40,6 +40,6 @@ else do IPOPT="$IPOPT --ip $oneip" done - echo exec $CHBIND $IPOPT /etc/init.d/$SERVICE "$@" - exec $CHBIND $IPOPT /etc/init.d/$SERVICE "$@" + echo exec $_CHBIND $IPOPT /etc/init.d/$SERVICE "$@" + exec $_CHBIND $IPOPT /etc/init.d/$SERVICE "$@" fi diff --git a/scripts/vupdateworld b/scripts/vupdateworld new file mode 100755 index 0000000..7e4cd17 --- /dev/null +++ b/scripts/vupdateworld @@ -0,0 +1,83 @@ +#!/bin/bash +# $Id: vupdateworld 2486 2007-02-05 18:08:17Z hollow $ + +# Copyright (C) 2006 Benedikt Boehm <hollow@gentoo.org> +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + + +function showHelp() +{ + echo \ +$"Usage: $0 <vserver-name>* [--all] -- <params>+ + +Report bugs to <$PACKAGE_BUGREPORT>." + exit 0 +} + +function showVersion() +{ + echo \ +$"vupdateworld $PACKAGE_VERSION -- emerge world for vservers +This program is part of $PACKAGE_STRING + +Copyright (C) 2006 Benedikt Boehm +This program is free software; you may redistribute it under the terms of +the GNU General Public License. This program has absolutely no warranty." + exit 0 +} + +tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +declare -a send_through vsomething_opts + +while true; do + case "$1" in + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--) shift; break;; + (*) echo $"vemerge: internal error; arg=='$1'" >&2; exit 1;; + esac + shift +done + +declare -a vserver_names + +while [ $# -gt 0 ]; do + case "$1" in + (--) shift; break;; + (*) vserver_names=( "${vserver_names[@]}" "$1" );; + esac + shift +done + +VSOMETHING_TITLE=vemerge +VSOMETHING_PKGMGMT=1 + +export VSOMETHING_TITLE VSOMETHING_PKGMGMT + +test ${#vsomething_opts[@]} -eq 0 || vsomething_opts=( "${vsomething_opts[@]}" -- ) +exec $_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" "${vserver_names[@]}" -- world --update --deep --newuse "$@" diff --git a/scripts/vuseradd b/scripts/vuseradd index 65f12cb..90adf26 100755 --- a/scripts/vuseradd +++ b/scripts/vuseradd @@ -5,7 +5,7 @@ # Mark Huang <mlhuang@cs.princeton.edu> # Copyright (C) 2004-2006 The Trustees of Princeton University # -# $Id: vuseradd,v 1.26 2006/11/13 18:49:31 mlhuang Exp $ +# $Id: vuseradd,v 1.31 2007/07/05 17:36:42 dhozac Exp $ # : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} @@ -65,13 +65,56 @@ USERID=`id -u $NAME` GROUPID=`id -g $NAME` GROUPNAME=`id -gn $NAME` -# Create /etc/vservers configuration file -if [ ! -f $__CONFDIR/$NAME.conf ] ; then - sed \ - -e "s/.*S_CONTEXT=.*/S_CONTEXT=$USERID/" \ - -e "s/.*ONBOOT=.*/ONBOOT=yes/" \ - < $__PKGLIBDIR/defaults/sample.conf \ - > $__CONFDIR/$NAME.conf +# Create /etc/vservers configuration files +if [ ! -d $__CONFDIR/$NAME ] ; then + # Move away the guest contents for now + if [ -d $__DEFAULT_VSERVERDIR/$NAME ] ; then + mkdir -p "$__DEFAULT_VSERVERDIR/.vtmp" + TMP=$(mktemp -d "$__DEFAULT_VSERVERDIR/.vtmp/$NAME.XXXXXX") + mv $__DEFAULT_VSERVERDIR/$NAME "$TMP" + HAS_VSERVERDIR=1 + else + HAS_VSERVERDIR=0 + fi + + $_VSERVER $NAME build -m skeleton --context $USERID \ + --interface nodev:0.0.0.0/0 \ + --flags persistent,~info_init,sched_hard + RETVAL=$? + DIR=$__CONFDIR/$NAME + if [ $RETVAL -ne 0 ] ; then + echo "Error $RETVAL building $DIR" + rm -rf $DIR $__DEFAULT_VSERVERDIR/$NAME + fi + mkdir -p $DIR/apps/init $DIR/rlimits $DIR/sched $DIR/dlimits/0 + echo default > $DIR/apps/init/mark + echo 1000 > $DIR/rlimits/nproc + + # Set persistent for the network context + echo persistent > $DIR/nflags + + # Set up the scheduler + echo 1000 > $DIR/sched/interval + echo 1000 > $DIR/sched/interval2 + echo 0 > $DIR/sched/fill-rate + echo 32 > $DIR/sched/fill-rate2 + touch $DIR/sched/idle-time + echo 100 > $DIR/sched/tokens + echo 50 > $DIR/sched/tokens-min + echo 100 > $DIR/sched/tokens-max + + # Set up disk limits (unlimited) + echo `$_READLINK $DIR/vdir` > $DIR/dlimits/0/directory + echo 2 > $DIR/dlimits/0/reserved + echo -1 > $DIR/dlimits/0/inodes_total + echo -1 > $DIR/dlimits/0/space_total + + # Remove the basically empty guest directory + rm -rf $__DEFAULT_VSERVERDIR/$NAME + # Move the guest back + if [ "$HAS_VSERVERDIR" = 1 ] ; then + mv "$TMP" $__DEFAULT_VSERVERDIR/$NAME + fi fi if [ ! -d "$__DEFAULT_VSERVERDIR/$NAME" ] ; then @@ -89,7 +132,7 @@ if [ ! -d "$__DEFAULT_VSERVERDIR/$NAME" ] ; then # Build in temporary directory mkdir -p "$__DEFAULT_VSERVERDIR/.vtmp" TMP=$(mktemp -d "$__DEFAULT_VSERVERDIR/.vtmp/$NAME.XXXXXX") - "$__PKGLIBDIR/vbuild" "$REF" "$TMP" + "$_VCLONE" "$REF"/ "$TMP"/ RETVAL=$? # Move it to its permanent location when complete @@ -97,7 +140,7 @@ if [ ! -d "$__DEFAULT_VSERVERDIR/$NAME" ] ; then mv "$TMP" "$__DEFAULT_VSERVERDIR/$NAME" else echo "Error $RETVAL building $__DEFAULT_VSERVERDIR/$NAME" - rm -rf "$TMP" $__CONFDIR/$NAME.conf $__PKGSTATEDIR/$NAME.ctx + rm -rf "$TMP" $__CONFDIR/$NAME $__PKGSTATEDIR/$NAME.ctx userdel -r $NAME exit $RETVAL fi @@ -109,7 +152,7 @@ if [ -d "$__DEFAULT_VSERVERDIR/$NAME" ] ; then chmod 755 "$__DEFAULT_VSERVERDIR/$NAME" # Add user in vserver - $_VSERVER_LEGACY $NAME suexec root sh -c \ + $_VSERVER ----insecure $NAME suexec root sh -c \ "groupadd -g $GROUPID $GROUPNAME ; useradd -u $USERID -g $GROUPID -p '' $NAME" # Add an unrestricted entry to /etc/sudoers file diff --git a/scripts/vuserdel b/scripts/vuserdel index 875131f..778a0fa 100755 --- a/scripts/vuserdel +++ b/scripts/vuserdel @@ -4,7 +4,7 @@ # # Copyright (c) 2004 The Trustees of Princeton University (Trustees). # -# $Id: vuserdel,v 1.9 2005/08/21 21:44:09 mlhuang Exp $ +# $Id: vuserdel,v 1.11 2007/06/29 14:13:01 dhozac Exp $ # : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} @@ -25,8 +25,7 @@ usage() NAME=$1 # read config file to get context ID -. /etc/vservers/$NAME.conf -CTX=$S_CONTEXT +CTX=`cat $__CONFDIR/$NAME/context` # don't bother stopping gracefully, just kill all the processes chcontext --silent --secure --ctx $CTX $__LEGACYDIR/vserverkillall @@ -44,8 +43,8 @@ done # delete user [ -z "$STATIC" ] && userdel -r $NAME -# remove vserver configuration file -rm -f /etc/vservers/$NAME.conf +# remove vserver configuration directory +rm -rf /etc/vservers/$NAME # remove vserver profile rm -f /var/run/vservers/$NAME.ctx diff --git a/scripts/vyum b/scripts/vyum index 3c40e8d..90c24b0 100755 --- a/scripts/vyum +++ b/scripts/vyum @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: vyum,v 1.2 2005/03/02 01:24:44 ensc Exp $ +# $Id: vyum 1880 2005-03-02 01:24:44Z ensc $ # Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # diff --git a/scripts/vyum-worker b/scripts/vyum-worker index 984d1d6..c61f0e0 100755 --- a/scripts/vyum-worker +++ b/scripts/vyum-worker @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: vyum-worker,v 1.5 2005/04/08 19:18:06 ensc Exp $ +# $Id: vyum-worker 2527 2007-04-11 18:14:47Z dhozac $ # Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> # @@ -37,12 +37,9 @@ test -z "$_YUM" || { ${YUM:=$_YUM} } -yum=${YUM:-yum} -conf=yum.conf -case $(yum --version) in - (2.[0123]*) - python -c 'import yum,sys; sys.exit(not hasattr(yum.config.yumconf, "getRootedPath"))' &>/dev/null || { - warning "\ +function check(){ + python -c "$1" &>/dev/null || { + warning "\ You are using a version of yum which is insecure and broken in chroot related operations; either apply the patches shipped in the 'contrib/' directory of util-vserver, or ask the author of yum to apply them @@ -52,9 +49,30 @@ In the meantime, 'vyum' will continue with dirty hacks which might not work when the vserver is running and local DOS attacks are possible. Execution will continue in 5 seconds..." - sleep 5 - conf=yum-hack.conf - } + sleep 5 + conf=yum-hack.conf + } +} + +yum=${YUM:-yum} +conf=yum.conf +case $($yum --version|tail -n 1) in + (2.[012345]*) + check 'import yum,sys; sys.exit(not hasattr(yum.config.yumconf, "getRootedPath"))' + ;; + (2.[6789]*|3.0*) + check 'import yum,sys; sys.exit(not hasattr(yum.config.YumConf, "getRootedPath"))' + ;; + (*) + warning "\ +You are using a version of yum which current status is unknown to vyum. + +Just to be sure, 'vyum' will use dirty hacks which might not work when +the vserver is running and local DOS attacks are possible. + +Execution will continue in 5 seconds..." + sleep 5 + conf=yum-hack.conf ;; esac diff --git a/src/Makefile-files b/src/Makefile-files index 9ad3981..05d4809 100644 --- a/src/Makefile-files +++ b/src/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.70 2005/07/02 09:17:55 ensc Exp $ -*- makefile -*- +## $Id: Makefile-files 2491 2007-02-05 20:59:03Z dhozac $ -*- makefile -*- ## Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> ## @@ -18,22 +18,19 @@ ## src_sbin_CXX_PROGS = -src_pkglib_CXX_PROGS = src/vbuild -src_pkglib_C99_PROGS = src/vunify src/vcopy +src_pkglib_C99_PROGS = src/vunify src/vcopy src/vclone AM_INSTALLCHECK_STD_OPTIONS_EXEMPT += \ src/parserpmdump \ src/showperm \ - src/vbuild \ src/vcheck \ src/vreboot \ src/save_ctxinfo \ src/mask2prefix \ src/ifspec \ src/rebootmgr \ - src/vdu \ src/vfiles DIETPROGS += src/chcontext-compat \ @@ -47,7 +44,7 @@ DIETPROGS += src/chcontext-compat \ src/secure-mount \ src/save_ctxinfo \ src/mask2prefix \ - src/chbind \ + src/chbind-compat \ src/exec-cd \ src/fakerunlevel \ src/keep-ctx-alive \ @@ -75,7 +72,14 @@ DIETPROGS += src/chcontext-compat \ src/vserver-info \ src/vdlimit \ src/vsh \ - src/vwait + src/vdu \ + src/vwait \ + src/ncontext \ + src/nattribute \ + src/naddress \ + src/vdevmap \ + src/vsysctl \ + src/vclone if ENSC_CAN_BEECRYPT_WITH_DIETLIBC DIETPROGS += src/vhashify @@ -111,6 +115,8 @@ pkglib_PROGRAMS += src/capchroot \ src/rpm-fake-resolver \ src/vshelper-sync \ src/sigexec \ + src/chbind-compat \ + src/vsysctl \ $(src_pkglib_C99_X_PROGS) \ $(src_pkglib_CXX_X_PROGS) @@ -129,8 +135,7 @@ legacy_PROGRAMS += src/ifspec \ pkglib_LTLIBRARIES += src/rpm-fake.la -sbin_PROGRAMS += src/chbind \ - src/exec-cd \ +sbin_PROGRAMS += src/exec-cd \ src/lsxid \ src/chxid \ src/vps \ @@ -150,6 +155,10 @@ sbin_PROGRAMS += src/chbind \ src/vuname \ src/vsh \ src/vwait \ + src/ncontext \ + src/nattribute \ + src/naddress \ + src/vdevmap \ $(src_sbin_CXX_X_PROGS) if ENSC_HAVE_C99_COMPILER @@ -161,20 +170,20 @@ src_capchroot_SOURCES = src/capchroot.c src_capchroot_LDADD = $(VSERVER_LDADDS) src_capchroot_LDFLAGS = $(VSERVER_LDFLGS) -src_chbind_SOURCES = src/chbind.c -src_chbind_LDADD = $(VSERVER_LDADDS) -src_chbind_LDFLAGS = $(VSERVER_LDFLGS) +src_chbind_compat_SOURCES = src/chbind.c +src_chbind_compat_LDADD = $(VSERVER_LDADDS) +src_chbind_compat_LDFLAGS = $(VSERVER_LDFLGS) src_chcontext_compat_SOURCES = src/chcontext.c src_chcontext_compat_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) src_chcontext_compat_LDFLAGS = $(VSERVER_LDFLGS) -src_vcontext_SOURCES = src/vcontext.c +src_vcontext_SOURCES = src/vcontext.c src/vlogin.c src_vcontext_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) src_vcontext_LDFLAGS = $(VSERVER_LDFLGS) src_vsched_SOURCES = src/vsched.c -src_vsched_LDADD = $(VSERVER_LDADDS) +src_vsched_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) src_vsched_LDFLAGS = $(VSERVER_LDFLGS) src_filetime_SOURCES = src/filetime.c @@ -183,6 +192,7 @@ src_filetime_LDFLAGS = $(VSERVER_LDFLGS) src_chain_echo_SOURCES = src/chain-echo.c src_chroot_sh_SOURCES = src/chroot-sh.c +src_chroot_sh_LDADD = $(LIBINTERNAL) src_exec_cd_SOURCES = src/exec-cd.c src_fakerunlevel_SOURCES = src/fakerunlevel.c src_ifspec_SOURCES = src/ifspec.c @@ -200,7 +210,7 @@ src_reducecap_LDFLAGS = $(VSERVER_LDFLGS) src_vkill_SOURCES = src/vkill.c src_vkill_LDADD = $(VSERVER_LDADDS) -src_vkill_LDFLAGS = $(VSERVER_LDFLGS) +src_vkill_LDFLAGS = $(VSERVER_LDFLGS) $(LIBINTERNAL) src_vkill_CPPFLAGS = $(AM_CPPFLAGS) -DLEGACYDIR=\"$(legacydir)\" src_vlimit_SOURCES = src/vlimit.c @@ -211,7 +221,10 @@ src_save_ctxinfo_SOURCES = src/save_ctxinfo.c src_save_ctxinfo_LDADD = $(VSERVER_LDADDS) src_save_ctxinfo_LDFLAGS = $(VSERVER_LDFLGS) -src_vdu_SOURCES = src/vdu.c +src_vdu_SOURCES = src/vdu.c +src_vdu_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) +src_vdu_LDFLAGS = $(VSERVER_LDFLGS) + src_vreboot_SOURCES = src/vreboot.c src_secure_mount_SOURCES = src/secure-mount.c @@ -244,8 +257,6 @@ src_vserver_stat_SOURCES = src/vserver-stat.c src_vserver_stat_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS) $(LIBENSCVECTOR) src_vserver_stat_LDFLAGS = $(VSERVER_LDFLGS) -src_vbuild_SOURCES = src/vbuild.cc src/vutil.cc src/vserver.cc - src_lsxid_SOURCES = src/fstool.c src/lsxid.c src_lsxid_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS) $(LIBENSCVECTOR) src_lsxid_LDFLAGS = $(VSERVER_LDFLGS) @@ -305,6 +316,30 @@ src_vwait_SOURCES = src/vwait.c src_vwait_LDADD = $(VSERVER_LDADDS) src_vwait_LDFLAGS = $(VSERVER_LDFLGS) +src_ncontext_SOURCES = src/ncontext.c +src_ncontext_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) +src_ncontext_LDFLAGS = $(VSERVER_LDFLGS) + +src_nattribute_SOURCES = src/nattribute.c +src_nattribute_LDADD = $(VSERVER_LDADDS) +src_nattribute_LDFLAGS = $(VSERVER_LDFLGS) + +src_naddress_SOURCES = src/naddress.c +src_naddress_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) +src_naddress_LDFLAGS = $(VSERVER_LDFLGS) + +src_vdevmap_SOURCES = src/vdevmap.c +src_vdevmap_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL) +src_vdevmap_LDFLAGS = $(VSERVER_LDFLGS) + +src_vsysctl_SOURCES = src/vsysctl.c +src_vsysctl_LDADD = $(VSERVER_LDADDS) +src_vsysctl_LDFLAGS = $(VSERVER_LDFLGS) + +src_vclone_SOURCES = src/vclone.c +src_vclone_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS) +src_vclone_LDFLAGS = $(VSERVER_LDLFGS) + EXTRA_PROGRAMS += $(src_sbin_CXX_PROGS) $(src_pkglib_CXX_PROGS) TESTS_ENVIRONMENT += srctestsuitedir=$(top_builddir)/src/testsuite diff --git a/src/capability-compat.h b/src/capability-compat.h index de9228b..5ff68d6 100644 --- a/src/capability-compat.h +++ b/src/capability-compat.h @@ -1,4 +1,4 @@ -// $Id: capability-compat.h,v 1.1 2005/01/27 20:38:12 ensc Exp $ --*- c -*-- +// $Id: capability-compat.h 1822 2005-01-27 20:38:12Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/capchroot.c b/src/capchroot.c index 69dbe37..71ad061 100644 --- a/src/capchroot.c +++ b/src/capchroot.c @@ -1,4 +1,4 @@ -// $Id: capchroot.c,v 1.7 2004/03/24 01:41:28 ensc Exp $ +// $Id: capchroot.c 2403 2006-11-24 23:06:08Z dhozac $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on capchroot.cc by Jacques Gelinas @@ -66,6 +66,11 @@ static void showHelp(int fd, char const *cmd, int res) { VSERVER_DECLARE_CMD(cmd); + +#if !defined(VC_ENABLE_API_COMPAT) && !defined(VC_ENABLE_API_LEGACY) + WRITE_MSG(1, "ERROR: tools were built without legacy API support; capchroot will not work!\n\n"); +#endif + WRITE_MSG(fd, "Usage: "); WRITE_STR(fd, cmd); WRITE_MSG(fd, @@ -92,11 +97,11 @@ showVersion() exit(0); } -static void +static UNUSED void setUser(char const *user) { struct passwd *p = 0; - if (user!=0 && strcmp(user, "root")!=0) { + if (user!=0 && strcmp(user, "root")!=0 && strcmp(user, "0")!=0) { errno = 0; p = getpwnam(user); if (p==0) { @@ -135,12 +140,13 @@ int main (int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } } +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) if (optind==argc) WRITE_MSG(2, "No directory specified; try '--help' for more information\n"); else if (optind+1==argc) @@ -159,6 +165,9 @@ int main (int argc, char *argv[]) setUser(suid_user); EexecvpD(argv[optind+1], argv+optind+1); } - +#else + WRITE_MSG(2, "capchroot: tools were built without legacy API support; can not continue\n"); +#endif + return EXIT_FAILURE; } diff --git a/src/chain-echo.c b/src/chain-echo.c index 4965ae2..d5e7035 100644 --- a/src/chain-echo.c +++ b/src/chain-echo.c @@ -1,4 +1,4 @@ -// $Id: chain-echo.c,v 1.1 2004/04/20 17:54:40 ensc Exp $ --*- c -*-- +// $Id: chain-echo.c 1469 2004-04-20 17:54:40Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/chbind.c b/src/chbind.c index bc68711..da82e24 100644 --- a/src/chbind.c +++ b/src/chbind.c @@ -1,4 +1,4 @@ -// $Id: chbind.c,v 1.9 2004/03/16 14:30:10 ensc Exp $ +// $Id: chbind.c 2403 2006-11-24 23:06:08Z dhozac $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on chbind.cc by Jacques Gelinas @@ -24,6 +24,8 @@ #include "vserver.h" #include "util.h" +#include <lib/internal.h> + #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -41,6 +43,7 @@ #define ENSC_WRAPPERS_PREFIX "chbind: " #define ENSC_WRAPPERS_IO 1 #define ENSC_WRAPPERS_UNISTD 1 +#define ENSC_WRAPPERS_VSERVER 1 #include "wrappers.h" #define CMD_HELP 0x1000 @@ -49,6 +52,7 @@ #define CMD_SILENT 0x2000 #define CMD_IP 0x2001 #define CMD_BCAST 0x2002 +#define CMD_NID 0x2003 int wrapper_exit_code = 255; @@ -60,6 +64,7 @@ CMDLINE_OPTIONS[] = { { "silent", no_argument, 0, CMD_SILENT }, { "ip", required_argument, 0, CMD_IP }, { "bcast", required_argument, 0, CMD_BCAST }, + { "nid", required_argument, 0, CMD_NID }, { 0,0,0,0 } }; @@ -69,7 +74,7 @@ showHelp(int fd, char const *cmd, int res) WRITE_MSG(fd, "Usage:\n "); WRITE_STR(fd, cmd); WRITE_MSG(fd, - " [--silent] [--ip <ip_num>[/<mask>]] [--bcast <broadcast>] [--] <commands> <args>*\n\n" + " [--silent] [--nid <nid>] [--ip <ip_num>[/<mask>]] [--bcast <broadcast>] [--] <commands> <args>*\n\n" "Please report bugs to " PACKAGE_BUGREPORT "\n"); exit(res); @@ -237,6 +242,61 @@ readBcast(char const *str, uint32_t *bcast) } } +#if defined(VC_ENABLE_API_NET) +static void +make_nx(nid_t nid, uint32_t bcast, size_t nbaddrs, struct vc_ip_mask_pair *ips) +{ + size_t i; + struct vc_net_nx addr; + + if (nid == VC_DYNAMIC_NID) { + nid = vc_net_create(VC_DYNAMIC_NID); + if (nid == (nid_t) -1) { + perror("chbind: vc_net_create()"); + exit(wrapper_exit_code); + } + } + else { + if (vc_net_create(nid) == (nid_t) -1) { + if (errno == EEXIST) { + if (vc_net_migrate(nid) != 0) { + perror("chbind: vc_net_migrate()"); + exit(wrapper_exit_code); + } + else + return; + } + else { + perror("chbind: vc_net_create()"); + exit(wrapper_exit_code); + } + } + } + + addr.type = vcNET_IPV4B; + addr.count = 1; + addr.ip[0] = bcast; + addr.mask[0] = 0; + + if (vc_net_add(nid, &addr) != 1) { + perror("chbind: vc_net_add()"); + exit(wrapper_exit_code); + } + + for (i = 0; i < nbaddrs; i++) { + addr.type = vcNET_IPV4; + addr.count = 1; + addr.ip[0] = ips[i].ip; + addr.mask[0] = ips[i].mask; + + if (vc_net_add(nid, &addr) != 1) { + perror("chbind: vc_net_add()"); + exit(wrapper_exit_code); + } + } +} +#endif + int main (int argc, char *argv[]) { size_t const nb_ipv4root = vc_get_nb_ipv4root(); @@ -244,6 +304,7 @@ int main (int argc, char *argv[]) struct vc_ip_mask_pair ips[nb_ipv4root]; size_t nbaddrs = 0; uint32_t bcast = 0xffffffff; + nid_t nid = VC_DYNAMIC_NID; while (1) { int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0); @@ -254,6 +315,11 @@ int main (int argc, char *argv[]) case CMD_VERSION : showVersion(); case CMD_SILENT : is_silent = true; break; case CMD_BCAST : readBcast(optarg, &bcast); break; +#if defined(VC_ENABLE_API_NET) + case CMD_NID : nid = Evc_nidopt2nid(optarg,true); break; +#else + case CMD_NID : WRITE_MSG(2, "WARNING: --nid is not supported by this version\n"); break; +#endif case CMD_IP : if (nbaddrs>=nb_ipv4root) { WRITE_MSG(2, "Too many IP numbers, max 16\n"); @@ -265,7 +331,7 @@ int main (int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); exit(wrapper_exit_code); break; } @@ -276,11 +342,27 @@ int main (int argc, char *argv[]) exit(wrapper_exit_code); } - +#if !defined(VC_ENABLE_API_NET) && !defined(VC_ENABLE_API_COMPAT) && !defined(VC_ENABLE_API_LEGACY) +# error can not build 'chbind' without network virtualization API +#endif + +#if defined(VC_ENABLE_API_NET) + if (vc_isSupported(vcFEATURE_VNET)) { + make_nx(nid, bcast, nbaddrs, ips); + } + else +#endif +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) if (vc_set_ipv4root(bcast,nbaddrs,ips)!=0) { perror("chbind: vc_set_ipv4root()"); exit(wrapper_exit_code); } +#else + { + WRITE_MSG(2, "chbind: kernel does not provide network virtualization\n"); + exit(wrapper_exit_code); + } +#endif if (!is_silent) { size_t i; diff --git a/src/chcontext.c b/src/chcontext.c index fe66a22..e41203c 100644 --- a/src/chcontext.c +++ b/src/chcontext.c @@ -1,4 +1,4 @@ -// $Id: chcontext.c,v 1.24 2005/03/22 15:05:24 ensc Exp $ +// $Id: chcontext.c 2403 2006-11-24 23:06:08Z dhozac $ // Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on chcontext.cc by Jacques Gelinas @@ -95,6 +95,10 @@ static void showHelp(int fd, char const *cmd, int res) { VSERVER_DECLARE_CMD(cmd); + +#if !defined(VC_ENABLE_API_COMPAT) && !defined(VC_ENABLE_API_LEGACY) + WRITE_MSG(1, "ERROR: tools were built without legacy API support; chcontext will not work!\n\n"); +#endif WRITE_MSG(fd, "Usage: "); WRITE_STR(fd, cmd); @@ -178,6 +182,8 @@ showVersion() exit(0); } +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) + static inline void setCap(char const *str, uint32_t *add_caps, uint32_t *remove_caps) { @@ -266,6 +272,9 @@ tellContext(xid_t ctx) #include "context-sync.hc" +#endif + + int main (int argc, char *argv[]) { struct Arguments args = { @@ -278,10 +287,13 @@ int main (int argc, char *argv[]) .hostname = 0, .domainname = 0 }; + +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) xid_t newctx; int xflags; int p[2][2]; pid_t pid; +#endif global_args = &args; signal(SIGCHLD, SIG_DFL); @@ -298,6 +310,7 @@ int main (int argc, char *argv[]) case CMD_DOMAINNAME : args.domainname = optarg; break; case CMD_HOSTNAME : args.hostname = optarg; break; +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) case CMD_CAP : setCap(optarg, &args.add_caps, &args.remove_caps); break; @@ -316,17 +329,23 @@ int main (int argc, char *argv[]) } args.ctxs[args.nbctx++] = Evc_xidopt2xid(optarg, true); break; - +#else + case CMD_CAP : + case CMD_SECURE : + case CMD_FLAG : + case CMD_CTX : break; +#endif default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return 255; break; } } +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) if (optind>=argc) { WRITE_MSG(2, "No command given; use '--help' for more information.\n"); exit(255); @@ -364,8 +383,14 @@ int main (int argc, char *argv[]) waitOnSync(pid, p, args.ctxs[0]!=VC_DYNAMIC_XID); return EXIT_SUCCESS; +#else + WRITE_MSG(2, "chcontext: tools were built without legacy API support; can not continue\n"); + return EXIT_FAILURE; +#endif } +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) + #ifdef ENSC_TESTSUITE #define FLAG_TEST(STR,EXP) \ { \ @@ -394,3 +419,7 @@ test() CAP_TEST("!CAP_CHOWN", 0, 1); } #endif + +#else +void test() {} +#endif diff --git a/src/check-unixfile.c b/src/check-unixfile.c index a8d94e9..6c7e3b5 100644 --- a/src/check-unixfile.c +++ b/src/check-unixfile.c @@ -1,4 +1,4 @@ -// $Id: check-unixfile.c,v 1.1 2005/01/27 19:13:04 ensc Exp $ --*- c -*-- +// $Id: check-unixfile.c 1814 2005-01-27 19:13:04Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/chroot-sh.c b/src/chroot-sh.c index a1d4bb9..4cbca21 100644 --- a/src/chroot-sh.c +++ b/src/chroot-sh.c @@ -1,4 +1,4 @@ -// $Id: chroot-sh.c,v 1.2 2005/07/03 17:40:15 ensc Exp $ --*- c -*-- +// $Id: chroot-sh.c 2536 2007-04-27 09:01:20Z hollow $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -28,7 +28,7 @@ #include <fcntl.h> #include <sys/stat.h> -#define ENSC_WRAPPERS_PREFIX "chroot-sh" +#define ENSC_WRAPPERS_PREFIX "chroot-sh: " #define ENSC_WRAPPERS_UNISTD 1 #define ENSC_WRAPPERS_IO 1 #define ENSC_WRAPPERS_FCNTL 1 @@ -85,7 +85,7 @@ testInternal(int argc, char *argv[], char const *operation) return wrapper_exit_code; } - if (stat(argv[1], &st)==-1) return 0; + if (stat(argv[1], &st)==-1) return -1; else return st.st_mode; } @@ -142,6 +142,73 @@ execTestFile(int argc, char *argv[]) return res!=-1 && S_ISREG(res) ? EXIT_SUCCESS : EXIT_FAILURE; } +static int +execMkdir(int argc, char *argv[]) +{ + int i = 1; + int res = EXIT_SUCCESS; + + if (argc<2) { + WRITE_MSG(2, "No files specified for 'mkdir' operation; try '--help' for more information\n"); + return wrapper_exit_code; + } + + for (;i<argc; ++i) { + if (mkdir(argv[i], 0755)==-1) { + PERROR_Q(ENSC_WRAPPERS_PREFIX "mkdir", argv[i]); + res = EXIT_FAILURE; + } + } + + return res; +} + +static int +execChmod(int argc, char *argv[]) +{ + int i = 2; + int res = EXIT_SUCCESS; + unsigned long mode; + + if (argc<3) { + WRITE_MSG(2, "No files specified for 'chmod' operation; try '--help' for more information\n"); + return wrapper_exit_code; + } + + if (!isNumberUnsigned(argv[1], &mode, 1)) { + WRITE_MSG(2, "Invalid mode: '"); + WRITE_STR(2, argv[1]); + WRITE_MSG(2, "'\n"); + return EXIT_FAILURE; + } + + for (;i<argc; ++i) { + if (chmod(argv[i], mode)==-1) { + PERROR_Q(ENSC_WRAPPERS_PREFIX "chmod", argv[i]); + res = EXIT_FAILURE; + } + } + + return res; +} + +static int +execLink(int argc, char *argv[]) +{ + int res = EXIT_SUCCESS; + + if (argc!=3) { + WRITE_MSG(2, "Need exactly two files for 'link' operation; try '--help' for more information\n"); + return wrapper_exit_code; + } + + if (symlink(argv[1], argv[2])==-1) { + PERROR_Q(ENSC_WRAPPERS_PREFIX "link", argv[1]); + res = EXIT_FAILURE; + } + + return res; +} static struct Command { char const *cmd; @@ -152,6 +219,9 @@ static struct Command { { "truncate", execTruncate }, { "testfile", execTestFile }, { "rm", execRm }, + { "mkdir", execMkdir }, + { "chmod", execChmod }, + { "link", execLink }, { 0,0 } }; @@ -170,7 +240,11 @@ showHelp() " append <file> ... appends stdin to <file> which is created when needed\n" " truncate <file> ... clear <file> and fill it with stdin; the <file> is\n" " created when needed\n" - " rm <file>+ ... unlink the given files\n\n" + " rm <file>+ ... unlink the given files\n" + " mkdir <file>+ ... create the given directories\n" + " chmod <mode> <file>+\n" + " ... change access permissions of files\n" + " link <src> dst> ... create a symbolic link from <src> to <dst>\n\n" "Please report bugs to " PACKAGE_BUGREPORT "\n"); exit(0); } diff --git a/src/chxid.c b/src/chxid.c index e6e6db9..ed422e2 100644 --- a/src/chxid.c +++ b/src/chxid.c @@ -1,4 +1,4 @@ -// $Id: chxid.c,v 1.10 2004/08/19 14:28:57 ensc Exp $ --*- c -*-- +// $Id: chxid.c 2473 2007-01-25 09:51:43Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -38,7 +38,7 @@ CMDLINE_OPTIONS[] = { { 0,0,0,0 } }; -char const CMDLINE_OPTIONS_SHORT[] = "Rc:x"; +char const CMDLINE_OPTIONS_SHORT[] = "Rc:xU"; void showHelp(int fd, char const *cmd, int res) @@ -46,11 +46,12 @@ showHelp(int fd, char const *cmd, int res) WRITE_MSG(fd, "Usage: "); WRITE_STR(fd, cmd); WRITE_MSG(fd, - " -c <ctx|vserver> [-Rx] [--] <file>+\n\n" + " -c <ctx|vserver> [-RxU] [--] <file>+\n\n" " Options:\n" " -R ... recurse through directories\n" " -c ... assign the given context/vserver to the file(s)\n" - " -x ... do not cross filesystems\n\n" + " -x ... do not cross filesystems\n" + " -U ... skip unified files\n\n" "Please report bugs to " PACKAGE_BUGREPORT "\n"); exit(res); } @@ -66,14 +67,30 @@ showVersion() exit(0); } +static inline bool +isUnified(char const *filename) +{ + uint_least32_t const V = VC_IATTR_IUNLINK|VC_IATTR_IMMUTABLE; + + uint_least32_t flags; + uint_least32_t mask = V; + + if (vc_get_iattr(filename, 0, &flags, &mask)==-1 || (mask & V) != V) + return false; + + return (flags & V)==V ? true : false; +} + bool handleFile(char const *name, char const * display_name) { - int rc = vc_set_iattr(name, global_args->ctx, 0, VC_IATTR_XID); + if (!global_args->no_unified || !isUnified(name)) { + int rc = vc_set_iattr(name, global_args->ctx, 0, VC_IATTR_XID); - if (rc==-1) { - perror(display_name); - return false; + if (rc==-1) { + perror(display_name); + return false; + } } return true; diff --git a/src/compat-pivot_root.h b/src/compat-pivot_root.h index 98b3039..8f548b0 100644 --- a/src/compat-pivot_root.h +++ b/src/compat-pivot_root.h @@ -1,4 +1,4 @@ -// $Id: compat-pivot_root.h,v 1.3 2005/05/02 21:44:06 ensc Exp $ --*- c++ -*-- +// $Id: compat-pivot_root.h 2081 2005-05-02 21:44:06Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/context-sync.hc b/src/context-sync.hc index 6f786d5..cbc3304 100644 --- a/src/context-sync.hc +++ b/src/context-sync.hc @@ -1,4 +1,4 @@ -// $Id: context-sync.hc,v 1.5 2005/04/10 01:01:33 ensc Exp $ --*- c -*-- +// $Id: context-sync.hc 2015 2005-04-10 01:01:33Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/exec-cd.c b/src/exec-cd.c index dde12cf..7bb923b 100644 --- a/src/exec-cd.c +++ b/src/exec-cd.c @@ -1,4 +1,4 @@ -// $Id: exec-cd.c,v 1.5 2005/05/05 09:20:37 ensc Exp $ --*- c -*-- +// $Id: exec-cd.c 2086 2005-05-05 09:20:37Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/exec-ulimit.c b/src/exec-ulimit.c index 510e5d0..444a7f0 100644 --- a/src/exec-ulimit.c +++ b/src/exec-ulimit.c @@ -1,4 +1,4 @@ -// $Id: exec-ulimit.c,v 1.7 2004/05/08 01:40:25 ensc Exp $ --*- c -*-- +// $Id: exec-ulimit.c 2371 2006-11-05 17:46:33Z dhozac $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -34,6 +34,13 @@ #define ENSC_WRAPPERS_RESOURCE 1 #include <wrappers.h> +/* dietlibc specifies this as (~0UL>>1), which is what's returned from + * sys_old_getrlimit, called on some arches for getrlimit. + * Reset it here so the kernel will have the correct values when we set it. */ +#undef RLIM_INFINITY +#define RLIM_INFINITY (~0UL) +#define OLD_RLIM_INFINITY (~0UL>>1) + #define DECLARE_LIMIT(RES,FNAME) { #FNAME, RLIMIT_##RES } int wrapper_exit_code = 255; @@ -159,6 +166,7 @@ int main(int argc, char *argv[]) { size_t i; int cur_fd = Eopen(".", O_RDONLY, 0); + bool in_dir = false; if (argc==2) { if (strcmp(argv[1], "--help")==0) showHelp(1,argv[0],0); @@ -171,15 +179,29 @@ int main(int argc, char *argv[]) } if (chdir(argv[1])!=-1) { - for (i=0; i<sizeof(LIMITS)/sizeof(LIMITS[0]); ++i) { - struct rlimit limit; - - Egetrlimit(LIMITS[i].code, &limit); - if (readSingleLimit(&limit, LIMITS[i].fname)) - Esetrlimit(LIMITS[i].code, &limit); + in_dir = true; + } + for (i=0; i<sizeof(LIMITS)/sizeof(LIMITS[0]); ++i) { + struct rlimit limit; + + Egetrlimit(LIMITS[i].code, &limit); + /* if this arch uses sys_old_getrlimit... */ + if (limit.rlim_cur == OLD_RLIM_INFINITY) + limit.rlim_cur = RLIM_INFINITY; + if (in_dir && readSingleLimit(&limit, LIMITS[i].fname)) + Esetrlimit(LIMITS[i].code, &limit); + else if (LIMITS[i].code != RLIMIT_NOFILE) { + limit.rlim_max = RLIM_INFINITY; + Esetrlimit(LIMITS[i].code, &limit); + } + else { + /* RLIMIT_NOFILE can't be set to infinity, 1024*1024 seems to be the limit in most kernels */ + limit.rlim_max = 1024*1024; + setrlimit(LIMITS[i].code, &limit); } - Efchdir(cur_fd); } + if (in_dir) + Efchdir(cur_fd); Eclose(cur_fd); Eexecv(argv[2], argv+2); diff --git a/src/fakerunlevel.c b/src/fakerunlevel.c index ef3fd95..f429528 100644 --- a/src/fakerunlevel.c +++ b/src/fakerunlevel.c @@ -1,4 +1,4 @@ -// $Id: fakerunlevel.c,v 1.6 2004/02/27 04:42:10 ensc Exp $ +// $Id: fakerunlevel.c 1022 2004-02-27 04:42:10Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on fakerunlevel.cc by Jacques Gelinas diff --git a/src/filetime.c b/src/filetime.c index 39d9b03..576deb0 100644 --- a/src/filetime.c +++ b/src/filetime.c @@ -1,4 +1,4 @@ -// $Id: filetime.c,v 1.4 2005/03/24 12:44:17 ensc Exp $ +// $Id: filetime.c 1980 2005-03-24 12:44:17Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on filetime.cc by Jacques Gelinas diff --git a/src/fstool.c b/src/fstool.c index 4bb8b8f..cc2b3f0 100644 --- a/src/fstool.c +++ b/src/fstool.c @@ -1,4 +1,4 @@ -// $Id: fstool.c,v 1.8 2004/08/19 14:29:25 ensc Exp $ --*- c -*-- +// $Id: fstool.c 2473 2007-01-25 09:51:43Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -156,8 +156,13 @@ processFile(char const *path) } if (S_ISDIR(st.st_mode) && !global_args->do_display_dir) { + int cur_dir = Eopen(".", O_RDONLY, 0); + uint64_t ret; Echdir(path); - return iterateFilesystem(path); + ret = iterateFilesystem(path); + Efchdir(cur_dir); + Eclose(cur_dir); + return ret; } else return handleFile(path, path) ? 0 : 1; @@ -177,8 +182,9 @@ int main(int argc, char *argv[]) .do_set = false, .do_unset = false, .local_fs = false, - .set_mask = 0, - .del_mask = 0 + .set_mask = 0, + .del_mask = 0, + .no_unified = false, }; global_args = &args; @@ -191,29 +197,32 @@ int main(int argc, char *argv[]) case CMD_HELP : showHelp(1, argv[0], 0); case CMD_VERSION : showVersion(); case CMD_IMMU : args.set_mask |= VC_IATTR_IMMUTABLE; /*@fallthrough@*/ - case CMD_IMMUX : args.set_mask |= VC_IATTR_IUNLINK; break; - case CMD_ADMIN : args.set_mask |= VC_IATTR_ADMIN; break; - case CMD_WATCH : args.set_mask |= VC_IATTR_WATCH; break; - case CMD_HIDE : args.set_mask |= VC_IATTR_HIDE; break; - case CMD_BARRIER : args.set_mask |= VC_IATTR_BARRIER; break; + case CMD_IMMUX : args.set_mask |= VC_IATTR_IUNLINK; break; + case CMD_IMMUTABLE : args.set_mask |= VC_IATTR_IMMUTABLE; break; + case CMD_ADMIN : args.set_mask |= VC_IATTR_ADMIN; break; + case CMD_WATCH : args.set_mask |= VC_IATTR_WATCH; break; + case CMD_HIDE : args.set_mask |= VC_IATTR_HIDE; break; + case CMD_BARRIER : args.set_mask |= VC_IATTR_BARRIER; break; case CMD_UNSET_IMMU : args.del_mask |= VC_IATTR_IMMUTABLE; /*@fallthrough@*/ - case CMD_UNSET_IMMUX : args.del_mask |= VC_IATTR_IUNLINK; break; - case CMD_UNSET_ADMIN : args.del_mask |= VC_IATTR_ADMIN; break; - case CMD_UNSET_WATCH : args.del_mask |= VC_IATTR_WATCH; break; - case CMD_UNSET_HIDE : args.del_mask |= VC_IATTR_HIDE; break; - case CMD_UNSET_BARRIER : args.del_mask |= VC_IATTR_BARRIER; break; - case 'R' : args.do_recurse = true; break; - case 'a' : args.do_display_dot = true; break; - case 'd' : args.do_display_dir = true; break; - case 'n' : args.do_mapping = false; break; - case 's' : args.do_set = true; break; - case 'u' : args.do_unset = true; break; - case 'c' : args.ctx_str = optarg; break; - case 'x' : args.local_fs = true; break; + case CMD_UNSET_IMMUX : args.del_mask |= VC_IATTR_IUNLINK; break; + case CMD_UNSET_IMMUTABLE : args.del_mask |= VC_IATTR_IMMUTABLE; break; + case CMD_UNSET_ADMIN : args.del_mask |= VC_IATTR_ADMIN; break; + case CMD_UNSET_WATCH : args.del_mask |= VC_IATTR_WATCH; break; + case CMD_UNSET_HIDE : args.del_mask |= VC_IATTR_HIDE; break; + case CMD_UNSET_BARRIER : args.del_mask |= VC_IATTR_BARRIER; break; + case 'R' : args.do_recurse = true; break; + case 'a' : args.do_display_dot = true; break; + case 'd' : args.do_display_dir = true; break; + case 'n' : args.do_mapping = false; break; + case 's' : args.do_set = true; break; + case 'u' : args.do_unset = true; break; + case 'c' : args.ctx_str = optarg; break; + case 'x' : args.local_fs = true; break; + case 'U' : args.no_unified = true; break; default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } diff --git a/src/fstool.h b/src/fstool.h index b0b340d..6093e48 100644 --- a/src/fstool.h +++ b/src/fstool.h @@ -1,4 +1,4 @@ -// $Id: fstool.h,v 1.7 2004/08/19 14:29:44 ensc Exp $ --*- c -*-- +// $Id: fstool.h 2473 2007-01-25 09:51:43Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -39,6 +39,7 @@ #define CMD_UNSET_HIDE 0x8023 #define CMD_UNSET_BARRIER 0x8024 #define CMD_UNSET_IMMUX 0x8025 +#define CMD_UNSET_IMMUTABLE 0x8026 struct stat; @@ -54,6 +55,7 @@ struct Arguments { bool do_set; bool do_unset; bool local_fs; + bool no_unified; uint32_t set_mask; uint32_t del_mask; diff --git a/src/ifspec.c b/src/ifspec.c index 85c1960..f2bc2bf 100644 --- a/src/ifspec.c +++ b/src/ifspec.c @@ -1,4 +1,4 @@ -// $Id: ifspec.c,v 1.4 2004/02/20 16:59:40 ensc Exp $ +// $Id: ifspec.c 965 2004-02-20 16:59:40Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on ifspec.cc by Jacques Gelinas diff --git a/src/keep-ctx-alive.c b/src/keep-ctx-alive.c index 0314881..2ad1494 100644 --- a/src/keep-ctx-alive.c +++ b/src/keep-ctx-alive.c @@ -1,4 +1,4 @@ -// $Id: keep-ctx-alive.c,v 1.3 2004/12/16 00:11:01 ensc Exp $ --*- c -*-- +// $Id: keep-ctx-alive.c 2403 2006-11-24 23:06:08Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -177,7 +177,7 @@ int main(int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return 255; break; } diff --git a/src/listdevip.c b/src/listdevip.c index e62b4ae..8daff1b 100644 --- a/src/listdevip.c +++ b/src/listdevip.c @@ -1,4 +1,4 @@ -// $Id: listdevip.c,v 1.3 2004/02/20 16:59:40 ensc Exp $ +// $Id: listdevip.c 965 2004-02-20 16:59:40Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on listdevip.cc by Jacques Gelinas diff --git a/src/lockfile.c b/src/lockfile.c index df2e6b0..2fe31b2 100644 --- a/src/lockfile.c +++ b/src/lockfile.c @@ -1,4 +1,4 @@ -// $Id: lockfile.c,v 1.4 2004/04/13 08:27:50 ensc Exp $ --*- c -*-- +// $Id: lockfile.c 1447 2004-04-13 08:27:50Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/lsxid.c b/src/lsxid.c index 2ab1ada..9f8cbd1 100644 --- a/src/lsxid.c +++ b/src/lsxid.c @@ -1,4 +1,4 @@ -// $Id: lsxid.c,v 1.9 2005/03/24 12:44:17 ensc Exp $ --*- c -*-- +// $Id: lsxid.c 1980 2005-03-24 12:44:17Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/mask2prefix.c b/src/mask2prefix.c index 21ffba7..7be79d9 100644 --- a/src/mask2prefix.c +++ b/src/mask2prefix.c @@ -1,4 +1,4 @@ -// $Id: mask2prefix.c,v 1.1 2003/10/09 01:41:06 ensc Exp $ --*- c++ -*-- +// $Id: mask2prefix.c 63 2003-10-09 01:41:06Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/naddress.c b/src/naddress.c new file mode 100644 index 0000000..77bed1b --- /dev/null +++ b/src/naddress.c @@ -0,0 +1,445 @@ +// $Id: naddress.c 2387 2006-11-20 15:01:44Z dhozac $ + +// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +// Copyright (C) 2006 Daniel Hokka Zakrisson <daniel@hozac.com> +// based on chbind.cc by Jacques Gelinas +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include "vserver.h" +#include "util.h" + +#include <lib/internal.h> + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <netdb.h> +#include <sys/socket.h> +#include <sys/ioctl.h> +#include <net/if.h> +#include <unistd.h> +#include <errno.h> +#include <getopt.h> +#include <fcntl.h> +#include <netinet/in.h> +#include <arpa/inet.h> + +#define ENSC_WRAPPERS_PREFIX "naddress: " +#define ENSC_WRAPPERS_IO 1 +#define ENSC_WRAPPERS_UNISTD 1 +#define ENSC_WRAPPERS_VSERVER 1 +#include "wrappers.h" + +#define CMD_HELP 0x1000 +#define CMD_VERSION 0x1001 + +#define CMD_SILENT 0x2000 +#define CMD_NID 0x2001 +#define CMD_ADD 0x2002 +#define CMD_REMOVE 0x2003 +#define CMD_SET 0x2004 +#define CMD_IP 0x2010 +#define CMD_BCAST 0x2011 + +int wrapper_exit_code = 255; + + +static struct option const +CMDLINE_OPTIONS[] = { + { "help", no_argument, 0, CMD_HELP }, + { "version", no_argument, 0, CMD_VERSION }, + { "silent", no_argument, 0, CMD_SILENT }, + { "add", no_argument, 0, CMD_ADD }, + { "remove", no_argument, 0, CMD_REMOVE }, + { "set", no_argument, 0, CMD_SET }, + { "nid", required_argument, 0, CMD_NID }, + { "ip", required_argument, 0, CMD_IP }, + { "bcast", required_argument, 0, CMD_BCAST }, + { 0,0,0,0 } +}; + +struct vc_ips { + struct vc_net_nx a; + struct vc_ips *next; +}; + +struct Arguments { + nid_t nid; + struct vc_ips head; + bool is_silent; + bool do_add; + bool do_remove; + bool do_set; +}; + +static void +showHelp(int fd, char const *cmd, int res) +{ + WRITE_MSG(fd, "Usage:\n "); + WRITE_STR(fd, cmd); + WRITE_MSG(fd, + " (--add|--remove|--set) [--silent] [--nid <nid>]\n" + " [--ip <ip_num>[/<mask>]] [--bcast <broadcast>] [--] <commands> <args>*\n\n" + "Please report bugs to " PACKAGE_BUGREPORT "\n"); + + exit(res); +} + +static void +showVersion() +{ + WRITE_MSG(1, + "naddress " VERSION " -- bind to an ip and execute a program\n" + "This program is part of " PACKAGE_STRING "\n\n" + "Copyright (C) 2003,2004 Enrico Scholz\n" + "Copyright (C) 2006 Daniel Hokka Zakrisson\n" + VERSION_COPYRIGHT_DISCLAIMER); + exit(0); +} + +/* + Check if a network device exist in /proc/net/dev. + This is used because ifconfig_ioctl triggers modprobe if requesting + information about non existant devices. + + Return != 0 if the device exist. +*/ +static bool +existsDevice(char const *dev_raw) +{ + size_t buf_size=8192; + char dev[strlen(dev_raw)+2]; + + strcpy(dev, dev_raw); + strcat(dev, ":"); + for (;;) { + char buf[buf_size]; + char * pos; + bool too_small; + int fd=open("/proc/net/dev", O_RDONLY); + + if (fd==-1) return false; + too_small = EreadAll(fd, buf, buf_size); + close(fd); + + if (too_small) { + buf_size *= 2; + continue; + } + + pos = strstr(buf, dev); + return (pos && (pos==buf || pos[-1]==' ' || pos[-1]=='\n')); + } +} + +static int ifconfig_ioctl( + int fd, + const char *ifname, + int cmd, + struct ifreq *ifr) +{ + strcpy(ifr->ifr_name, ifname); + return ioctl(fd, cmd, ifr); +} + +/* + Fetch the IP number of an interface from the kernel. + Assume the device is already available in the kernel + Return -1 if any error. +*/ +int ifconfig_getaddr ( + const char *ifname, + uint32_t *addr, + uint32_t *mask, + uint32_t *bcast) +{ + int ret = -1; + if (existsDevice(ifname)){ + int skfd = socket(AF_INET, SOCK_DGRAM, 0); + if (skfd != -1){ + struct ifreq ifr; + if (addr != NULL && ifconfig_ioctl(skfd,ifname,SIOCGIFADDR, &ifr) >= 0){ + struct sockaddr_in *sin = (struct sockaddr_in*)&ifr.ifr_addr; + *addr = sin->sin_addr.s_addr; + ret = 0; + } + if (mask != NULL && ifconfig_ioctl(skfd,ifname,SIOCGIFNETMASK, &ifr) >= 0){ + struct sockaddr_in *sin = (struct sockaddr_in*)&ifr.ifr_addr; + *mask = sin->sin_addr.s_addr; + ret = 0; + } + if (bcast != NULL && ifconfig_ioctl(skfd,ifname,SIOCGIFBRDADDR, &ifr) >= 0){ + struct sockaddr_in *sin = (struct sockaddr_in*)&ifr.ifr_addr; + *bcast = sin->sin_addr.s_addr; + ret = 0; + } + close (skfd); + } + } + return ret; +} + +static int +convertAddress(const char *str, vc_net_nx_type *type, void *dst) +{ + int ret; + if (type) *type = vcNET_IPV4; + ret = inet_pton(AF_INET, str, dst); + if (ret==0) { + if (type) *type = vcNET_IPV6; + ret = inet_pton(AF_INET6, str, dst); + } + return ret > 0 ? 0 : -1; +} + +static void +readIP(char const *str, struct vc_ips **ips) +{ + if (ifconfig_getaddr(str, &(*ips)->a.ip[0], &(*ips)->a.mask[0], NULL)==-1) { + char *pt; + char tmpopt[strlen(str)+1]; + uint32_t *mask = (*ips)->a.mask; + + strcpy(tmpopt,str); + pt = strchr(tmpopt,'/'); + if (pt) + *pt++ = '\0'; + + if (convertAddress(tmpopt, &(*ips)->a.type, (*ips)->a.ip) == -1) { + WRITE_MSG(2, "Invalid IP number '"); + WRITE_STR(2, tmpopt); + WRITE_MSG(2, "'\n"); + exit(wrapper_exit_code); + } + + if (pt==0) { + switch ((*ips)->a.type) { + case vcNET_IPV4: + mask[0] = htonl(0xffffff00); + break; + case vcNET_IPV6: + mask[0] = 64; + break; + default: break; + } + } + else { + // Ok, we have a network size, not a netmask + if (strchr(pt,'.')==0 && strchr(pt,':')==0) { + unsigned long sz, limit = 0; + + switch ((*ips)->a.type) { + case vcNET_IPV4: limit = 32; break; + case vcNET_IPV6: limit = 128; break; + default: break; + } + + if (!isNumberUnsigned(pt, &sz, true) || sz > limit) { + WRITE_MSG(2, "Invalid prefix '"); + WRITE_STR(2, pt); + WRITE_MSG(2, "'\n"); + exit(wrapper_exit_code); + } + + switch ((*ips)->a.type) { + case vcNET_IPV4: + mask[0] = htonl(~((1 << (32 - sz)) - 1)); + break; + case vcNET_IPV6: + mask[0] = sz; + break; + default: break; + } + } + else { + if (convertAddress(pt, NULL, &(*ips)->a.mask) == -1) { + WRITE_MSG(2, "Invalid netmask '"); + WRITE_STR(2, pt); + WRITE_MSG(2, "'\n"); + exit(wrapper_exit_code); + } + } + } + } + else + (*ips)->a.type = vcNET_IPV4; + + (*ips)->a.count = 1; + (*ips)->next = calloc(1, sizeof(struct vc_ips)); + *ips = (*ips)->next; +} + +static void +readBcast(char const *str, struct vc_ips **ips) +{ + uint32_t bcast; + if (ifconfig_getaddr(str, NULL, NULL, &bcast)==-1){ + if (convertAddress(str, NULL, &bcast) == -1) { + WRITE_MSG(2, "Invalid broadcast number '"); + WRITE_STR(2, optarg); + WRITE_MSG(2, "'\n"); + exit(wrapper_exit_code); + } + } + (*ips)->a.ip[0] = bcast; + (*ips)->a.count = 1; + (*ips)->a.type = vcNET_IPV4B; + (*ips)->next = calloc(1, sizeof(struct vc_ips)); + *ips = (*ips)->next; +} + +static void +tellAddress(struct vc_net_nx *addr, bool silent) +{ + char buf[41]; + if (silent) + return; + if (inet_ntop(addr->type == vcNET_IPV6 ? AF_INET6 : AF_INET, + addr->ip, buf, sizeof(buf)) == NULL) { + WRITE_MSG(1, " <conversion failed>"); + return; + } + WRITE_MSG(1, " "); + WRITE_STR(1, buf); +} + +static inline void +doit(struct Arguments *args) +{ + struct vc_ips *ips; + + if (args->do_set) { + struct vc_net_nx remove = { .type = vcNET_ANY }; + if (vc_net_remove(args->nid, &remove) == -1) { + perror(ENSC_WRAPPERS_PREFIX "vc_net_remove()"); + exit(wrapper_exit_code); + } + } + + if (args->do_add || args->do_set) { + if (!args->is_silent) + WRITE_MSG(1, "Adding"); + for (ips = &args->head; ips->next; ips = ips->next) { + tellAddress(&ips->a, args->is_silent); + if (vc_net_add(args->nid, &ips->a) != (int)ips->a.count) { + perror(ENSC_WRAPPERS_PREFIX "vc_net_add()"); + exit(wrapper_exit_code); + } + } + if (!args->is_silent) + WRITE_MSG(1, "\n"); + } + else if (args->do_remove) { + if (!args->is_silent) + WRITE_MSG(1, "Removing"); + for (ips = &args->head; ips->next; ips = ips->next) { + tellAddress(&ips->a, args->is_silent); + if (vc_net_remove(args->nid, &ips->a) != (int)ips->a.count) { + perror(ENSC_WRAPPERS_PREFIX "vc_net_remove()"); + exit(wrapper_exit_code); + } + } + if (!args->is_silent) + WRITE_MSG(1, "\n"); + } +} + +int main (int argc, char *argv[]) +{ + struct Arguments args = { + .nid = VC_NOCTX, + .is_silent = false, + .do_add = false, + .do_remove = false, + .do_set = false, + .head = { .next = NULL }, + }; + struct vc_ips *ips = &args.head; + + while (1) { + int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0); + if (c==-1) break; + + switch (c) { + case CMD_HELP : showHelp(1, argv[0], 0); + case CMD_VERSION : showVersion(); + case CMD_SILENT : args.is_silent = true; break; + case CMD_NID : args.nid = Evc_nidopt2nid(optarg,true); break; + case CMD_ADD : args.do_add = true; break; + case CMD_REMOVE : args.do_remove = true; break; + case CMD_SET : args.do_set = true; break; + case CMD_IP : readIP(optarg, &ips); break; + case CMD_BCAST : readBcast(optarg, &ips); break; + default : + WRITE_MSG(2, "Try '"); + WRITE_STR(2, argv[0]); + WRITE_MSG(2, " --help' for more information.\n"); + exit(wrapper_exit_code); + break; + } + } + + if (args.nid == VC_NOCTX) args.nid = Evc_get_task_nid(0); + + if (!args.do_add && !args.do_remove && !args.do_set) { + WRITE_MSG(2, "No operation specified; try '--help' for more information\n"); + exit(wrapper_exit_code); + } + else if (((args.do_add ? 1 : 0) + (args.do_remove ? 1 : 0) + (args.do_set ? 1 : 0)) > 1) { + WRITE_MSG(2, "Multiple operations specified; try '--help' for more information\n"); + exit(wrapper_exit_code); + } + + doit(&args); + + if (optind != argc) + Eexecvp (argv[optind],argv+optind); + return EXIT_SUCCESS; +} + +#ifdef ENSC_TESTSUITE +#include <assert.h> + +void test() +{ + struct vc_ip_mask_pair ip; + uint32_t bcast; + + bcast = 0; + readIP("1.2.3.4", &ip, &bcast); + assert(ip.ip==ntohl(0x01020304) && ip.mask==ntohl(0xffffff00) && bcast==0); + + readIP("1.2.3.4/8", &ip, &bcast); + assert(ip.ip==ntohl(0x01020304) && ip.mask==ntohl(0xff000000) && bcast==0); + + readIP("1.2.3.4/255.255.0.0", &ip, &bcast); + assert(ip.ip==ntohl(0x01020304) && ip.mask==ntohl(0xffff0000) && bcast==0); + + readIP("localhost", &ip, &bcast); + assert(ip.ip==ntohl(0x7f000001) && ip.mask==ntohl(0xffffff00) && bcast==0); + +#if 0 + if (ifconfig_getaddr("lo", &tmp, &tmp, &tmp)!=-1) { + readIP("lo", &ip, &bcast); + assert(ip.ip==ntohl(0x7f000001) && ip.mask==ntohl(0xff000000) && bcast==ntohl(0x7fffffff)); + } +#endif +} +#endif diff --git a/src/nattribute.c b/src/nattribute.c new file mode 100644 index 0000000..15c78a4 --- /dev/null +++ b/src/nattribute.c @@ -0,0 +1,179 @@ +// $Id: nattribute.c 2403 2006-11-24 23:06:08Z dhozac $ --*- c -*-- + +// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +// Copyright (C) 2006 Daniel Hokka Zakrisson +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include "util.h" +#include <lib/vserver.h> + +#include <getopt.h> +#include <stdint.h> +#include <errno.h> + +#define ENSC_WRAPPERS_PREFIX "nattribute: " +#define ENSC_WRAPPERS_VSERVER 1 +#define ENSC_WRAPPERS_UNISTD 1 +#include <wrappers.h> + +#define CMD_HELP 0x1000 +#define CMD_VERSION 0x1001 +#define CMD_NID 0x2000 +#define CMD_SET 0x2001 +#define CMD_CAP 0x2002 +#define CMD_FLAG 0x2003 +#define CMD_SECURE 0x2004 + +int wrapper_exit_code = 1; + +struct option const +CMDLINE_OPTIONS[] = { + { "help", no_argument, 0, CMD_HELP }, + { "version", no_argument, 0, CMD_VERSION }, + { "nid", required_argument, 0, CMD_NID }, + { "set", no_argument, 0, CMD_SET }, + { "ncap", required_argument, 0, CMD_CAP }, + { "flag", required_argument, 0, CMD_FLAG }, + { "secure", no_argument, 0, CMD_SECURE }, + {0,0,0,0} +}; + +struct Arguments { + nid_t nid; + struct vc_net_flags flags; + struct vc_net_caps caps; +}; + +static void +showHelp(int fd, char const *cmd, int res) +{ + WRITE_MSG(fd, "Usage:\n "); + WRITE_STR(fd, cmd); + WRITE_MSG(fd, + " --set [--nid <nid>] [--ncap [~!]<ncap>] [--flag [~!]<flag>] [--secure] -- [<program> <args>*]\n" + "\n" + " --ncap <cap> ... network capability to be added\n" + " --flag <flag> ... network flag to be added\n" + "\n" + "Please report bugs to " PACKAGE_BUGREPORT "\n"); + + exit(res); +} + +static void +showVersion() +{ + WRITE_MSG(1, + "nattribute " VERSION " -- sets attributes of network contexts\n" + "This program is part of " PACKAGE_STRING "\n\n" + "Copyright (C) 2004 Enrico Scholz\n" + "Copyright (C) 2006 Daniel Hokka Zakrisson\n" + VERSION_COPYRIGHT_DISCLAIMER); + exit(0); +} + +static void +parseFlags(char const *str, struct vc_net_flags *flags) +{ + struct vc_err_listparser err; + int rc; + + rc = vc_list2nflag(str, 0, &err, flags); + + if (rc==-1) { + WRITE_MSG(2, "Unknown flag '"); + Vwrite(2, err.ptr, err.len); + WRITE_MSG(2, "'\n"); + exit(wrapper_exit_code); + } +} + +static void +parseNCaps(char const *str, struct vc_net_caps *caps) +{ + struct vc_err_listparser err; + int rc; + + rc = vc_list2ncap(str,0, &err, caps); + + if (rc==-1) { + WRITE_MSG(2, "Unknown ncap '"); + Vwrite(2, err.ptr, err.len); + WRITE_MSG(2, "'\n"); + exit(wrapper_exit_code); + } +} + +static void +parseSecure(struct vc_net_flags * flags, + struct vc_net_caps * caps) +{ + // TODO: generalize this + caps->ncaps = 0ull; + caps->cmask = 0ull; + + flags->flagword = VC_NXF_HIDE_NETIF; + flags->mask = VC_NXF_HIDE_NETIF; +} + +int main(int argc, char *argv[]) +{ + struct Arguments args = { + .nid = VC_NOCTX, + .flags = { .flagword = 0, .mask = 0 }, + .caps = { .ncaps = 0, .cmask = 0 }, + }; + + while (1) { + int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0); + if (c==-1) break; + + switch (c) { + case CMD_HELP : showHelp(1, argv[0], 0); + case CMD_VERSION : showVersion(); + case CMD_SET : break; // default op currently + case CMD_NID : args.nid = Evc_nidopt2nid(optarg,true); break; + case CMD_FLAG : parseFlags(optarg, &args.flags); break; + case CMD_CAP : parseNCaps(optarg, &args.caps); break; + case CMD_SECURE : parseSecure(&args.flags, &args.caps); break; + default : + WRITE_MSG(2, "Try '"); + WRITE_STR(2, argv[0]); + WRITE_MSG(2, " --help' for more information.\n"); + return 255; + break; + } + } + + if (args.nid==VC_NOCTX) args.nid = Evc_get_task_nid(0); + + if (args.caps.cmask && + vc_set_ncaps(args.nid, &args.caps)==-1) + perror(ENSC_WRAPPERS_PREFIX "vc_set_ncaps()"); + else if (args.flags.mask && + vc_set_nflags(args.nid, &args.flags)==-1) + perror(ENSC_WRAPPERS_PREFIX "vc_set_nflags()"); + else if (optind<argc) + EexecvpD(argv[optind], argv+optind); + else + return EXIT_SUCCESS; + + return EXIT_FAILURE; +} diff --git a/src/ncontext.c b/src/ncontext.c new file mode 100644 index 0000000..a22ae3f --- /dev/null +++ b/src/ncontext.c @@ -0,0 +1,293 @@ +// $Id: ncontext.c 2414 2006-12-08 13:20:10Z dhozac $ --*- c -*-- + +// Copyright (C) 2004-2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +// Copyright (C) 2006 Daniel Hokka Zakrisson <daniel@hozac.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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include "util.h" +#include "lib/internal.h" +#include "lib_internal/util.h" +#include "lib_internal/jail.h" + +#include <vserver.h> +#include <getopt.h> +#include <fcntl.h> +#include <errno.h> +#include <sys/socket.h> +#include <sys/un.h> +#include <assert.h> +#include <signal.h> +#include <sys/types.h> + + +#define ENSC_WRAPPERS_PREFIX "ncontext: " +#define ENSC_WRAPPERS_UNISTD 1 +#define ENSC_WRAPPERS_VSERVER 1 +#define ENSC_WRAPPERS_FCNTL 1 +#define ENSC_WRAPPERS_SOCKET 1 +#define ENSC_WRAPPERS_IOSOCK 1 +#include <wrappers.h> + +#define CMD_HELP 0x1000 +#define CMD_VERSION 0x1001 +#define CMD_NID 0x4000 +#define CMD_CREATE 0x4001 +#define CMD_MIGRATE 0x4002 +#define CMD_DISCONNECT 0x4003 +#define CMD_SILENT 0x4004 +#define CMD_SYNCSOCK 0x4005 +#define CMD_SYNCMSG 0x4006 +#define CMD_MIGRATESELF 0x4007 +#define CMD_SILENTEXIST 0x4008 + + +struct option const +CMDLINE_OPTIONS[] = { + { "help", no_argument, 0, CMD_HELP }, + { "version", no_argument, 0, CMD_VERSION }, + { "nid", required_argument, 0, CMD_NID }, + { "create", no_argument, 0, CMD_CREATE }, + { "migrate", no_argument, 0, CMD_MIGRATE }, + { "migrate-self", no_argument, 0, CMD_MIGRATESELF }, + { "disconnect", no_argument, 0, CMD_DISCONNECT }, + { "silent", no_argument, 0, CMD_SILENT }, + { "silentexist", no_argument, 0, CMD_SILENTEXIST }, + { "syncsock", required_argument, 0, CMD_SYNCSOCK }, + { "syncmsg", required_argument, 0, CMD_SYNCMSG }, + { 0,0,0,0 }, +}; + +struct Arguments { + bool do_create; + bool do_migrate; + bool do_migrateself; + bool do_disconnect; + bool is_silentexist; + int verbosity; + nid_t nid; + char const * sync_sock; + char const * sync_msg; +}; + +int wrapper_exit_code = 255; + +static void +showHelp(int fd, char const *cmd, int res) +{ + WRITE_MSG(fd, "Usage:\n "); + WRITE_STR(fd, cmd); + WRITE_MSG(fd, + " --create [--nid <nid>] <opts>* [--] <program> <args>*\n "); + WRITE_STR(fd, cmd); + WRITE_MSG(fd, + " [(--migrate --nid <nid>)|--migrate-self] <opts>* [--] <program> <args>*\n" + "\n" + "<opts> can be:\n" + " --disconnect ... start program in background\n" + " --silent ... be silent\n" + " --silentexist ... be silent when context exists already; useful\n" + " for '--create' only\n" + " --syncsock <filename>\n" + " ... before executing the program, send a message\n" + " to the socket and wait until it closes.\n" + " <filename> must be a SOCK_STREAM unix socket\n" + " --syncmsg <message>\n" + " ... use <message> as synchronization message; by\n" + " default, 'ok' will be used\n" + "\n" + "'ncontext --create' exits with code 254 iff the context exists already.\n" + "\n" + "Please report bugs to " PACKAGE_BUGREPORT "\n"); + + exit(res); +} + +static void +showVersion() +{ + WRITE_MSG(1, + "ncontext " VERSION " -- manages the creation of network contexts\n" + "This program is part of " PACKAGE_STRING "\n\n" + "Copyright (C) 2004-2006 Enrico Scholz\n" + "Copyright (C) 2006 Daniel Hokka Zakrisson\n" + VERSION_COPYRIGHT_DISCLAIMER); + exit(0); +} + +#include "context-sync.hc" + +static inline ALWAYSINLINE void +tellContext(nid_t nid, bool do_it) +{ + char buf[sizeof(nid_t)*3+2]; + size_t l; + + if (!do_it) return; + + l = utilvserver_fmt_long(buf,nid); + + WRITE_MSG(1, "New network context is "); + Vwrite (1, buf, l); + WRITE_MSG(1, "\n"); +} + +static int +connectExternalSync(char const *filename) +{ + int fd; + struct sockaddr_un addr; + + if (filename==0) return -1; + + ENSC_INIT_UNIX_SOCK(addr, filename); + + fd = Esocket(PF_UNIX, SOCK_STREAM, 0); + Econnect(fd, &addr, sizeof(addr)); + + return fd; +} + +static void +doExternalSync(int fd, char const *msg) +{ + char c; + + if (fd==-1) return; + + if (msg) EsendAll(fd, msg, strlen(msg)); + Eshutdown(fd, SHUT_WR); + + if (TEMP_FAILURE_RETRY(recv(fd, &c, 1, MSG_NOSIGNAL))!=0) { + WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "unexpected external synchronization event\n"); + exit(wrapper_exit_code); + } + + Eclose(fd); +} + +static inline ALWAYSINLINE int +doit(struct Arguments const *args, char *argv[]) +{ + int p[2][2]; + pid_t pid = initSync(p, args->do_disconnect); + + if (pid==0) { + nid_t nid; + int ext_sync_fd = connectExternalSync(args->sync_sock); + + doSyncStage0(p, args->do_disconnect); + + if (args->do_create) { + nid = vc_net_create(args->nid); + if (nid==VC_NOCTX) { + switch (errno) { + case EEXIST : + if (!args->is_silentexist) + perror(ENSC_WRAPPERS_PREFIX "vc_net_create()"); + return 254; + default : + perror(ENSC_WRAPPERS_PREFIX "vc_net_create()"); + return wrapper_exit_code; + } + } + tellContext(nid, args->verbosity>=1); + } + else + nid = args->nid; + + if (args->do_migrate && !args->do_migrateself) + Evc_net_migrate(nid); + + doExternalSync(ext_sync_fd, args->sync_msg); + doSyncStage1(p, args->do_disconnect); + DPRINTF("doit: pid=%u, ppid=%u\n", getpid(), getppid()); + execvp (argv[optind],argv+optind); + doSyncStage2(p, args->do_disconnect); + + PERROR_Q(ENSC_WRAPPERS_PREFIX "execvp", argv[optind]); + exit(wrapper_exit_code); + } + + assert(args->do_disconnect); + + waitOnSync(pid, p, args->nid!=VC_DYNAMIC_XID && args->do_migrate); + return EXIT_SUCCESS; +} + +int main (int argc, char *argv[]) +{ + struct Arguments args = { + .nid = VC_DYNAMIC_XID, + .do_create = false, + .do_migrate = false, + .do_migrateself = false, + .do_disconnect = false, + .is_silentexist = false, + .verbosity = 1, + .sync_msg = "ok", + }; + + while (1) { + int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0); + if (c==-1) break; + + switch (c) { + case CMD_HELP : showHelp(1, argv[0], 0); + case CMD_VERSION : showVersion(); + case CMD_CREATE : args.do_create = true; break; + case CMD_MIGRATE : args.do_migrate = true; break; + case CMD_DISCONNECT : args.do_disconnect = true; break; + case CMD_SILENTEXIST : args.is_silentexist = true; break; + case CMD_SYNCSOCK : args.sync_sock = optarg; break; + case CMD_SYNCMSG : args.sync_msg = optarg; break; + case CMD_NID : args.nid = Evc_nidopt2nid(optarg,true); break; + case CMD_SILENT : --args.verbosity; break; + case CMD_MIGRATESELF : + args.do_migrate = true; + args.do_migrateself = true; + break; + + default : + WRITE_MSG(2, "Try '"); + WRITE_STR(2, argv[0]); + WRITE_MSG(2, " --help' for more information.\n"); + return wrapper_exit_code; + break; + } + } + + signal(SIGCHLD, SIG_DFL); + + if (args.do_migrateself) + args.nid = Evc_get_task_nid(0); + + if (!args.do_create && !args.do_migrate) + WRITE_MSG(2, "Neither '--create' nor '--migrate' specified; try '--help' for more information\n"); + else if (args.do_create && args.do_migrate) + WRITE_MSG(2, "Can not specify '--create' and '--migrate' at the same time; try '--help' for more information\n"); + else if (!args.do_create && args.nid==VC_DYNAMIC_XID) + WRITE_MSG(2, "Can not migrate to an unknown context\n"); + else if (optind>=argc) + WRITE_MSG(2, "No command given; use '--help' for more information.\n"); + else + return doit(&args, argv); + + return wrapper_exit_code; +} diff --git a/src/parserpmdump.c b/src/parserpmdump.c index 1fd5920..a7546e4 100644 --- a/src/parserpmdump.c +++ b/src/parserpmdump.c @@ -1,4 +1,4 @@ -// $Id: parserpmdump.c,v 1.1 2003/09/29 22:01:57 ensc Exp $ +// $Id: parserpmdump.c 2 2003-09-29 22:01:59Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on parserpmdump.cc by Jacques Gelinas diff --git a/src/readlink.c b/src/readlink.c index 277f0f6..adbd46f 100644 --- a/src/readlink.c +++ b/src/readlink.c @@ -1,4 +1,4 @@ -// $Id: readlink.c,v 1.4 2005/03/24 12:44:17 ensc Exp $ +// $Id: readlink.c 1980 2005-03-24 12:44:17Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/rebootmgr.c b/src/rebootmgr.c index d18822a..20e0641 100644 --- a/src/rebootmgr.c +++ b/src/rebootmgr.c @@ -1,4 +1,4 @@ -// $Id: rebootmgr.c,v 1.8 2004/02/17 19:55:54 ensc Exp $ +// $Id: rebootmgr.c 923 2004-02-17 19:55:54Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on rebootmgr.cc by Jacques Gelinas diff --git a/src/reducecap.c b/src/reducecap.c index 932cc06..e4994d2 100644 --- a/src/reducecap.c +++ b/src/reducecap.c @@ -1,4 +1,4 @@ -// $Id: reducecap.c,v 1.18 2005/03/24 12:44:17 ensc Exp $ +// $Id: reducecap.c 2279 2006-01-22 19:31:53Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on reducecap.cc by Jacques Gelinas @@ -143,6 +143,10 @@ int wrapper_exit_code = 255; static void showHelp(int fd, char const *cmd, int res) { +#if !defined(VC_ENABLE_API_COMPAT) && !defined(VC_ENABLE_API_LEGACY) + WRITE_MSG(1, "ERROR: tools were built without legacy API support; reducecap will not work!\n\n"); +#endif + WRITE_MSG(fd, "Usage:\n "); WRITE_STR(fd, cmd); WRITE_MSG(fd, @@ -206,6 +210,8 @@ show(pid_t pid) printReducecap(&user); } +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) + static uint32_t getCap(char const *cap) { @@ -220,6 +226,8 @@ getCap(char const *cap) return (1<<bit); } +#endif + int main (int argc, char *argv[]) { uint32_t remove = 0; @@ -248,9 +256,10 @@ int main (int argc, char *argv[]) switch (c) { case CMD_HELP : showHelp(1, argv[0], 0); case CMD_VERSION : showVersion(); - case CMD_SECURE : remove = vc_get_insecurebcaps(); break; case CMD_SHOW : do_show = true; break; case CMD_PID : pid = atoi(optarg); break; +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) + case CMD_SECURE : remove = vc_get_insecurebcaps(); break; case CMD_CAP : remove = getCap(optarg); break; case CMD_FLAG : { struct vc_err_listparser err; @@ -264,6 +273,11 @@ int main (int argc, char *argv[]) } break; } +#else + case CMD_SECURE : + case CMD_CAP : + case CMD_FLAG : flags = 0; remove = 0; break; +#endif } } @@ -279,6 +293,7 @@ int main (int argc, char *argv[]) if (do_show && optind==argc) show(pid); +#if defined(VC_ENABLE_API_COMPAT) || defined(VC_ENABLE_API_LEGACY) else { Evc_new_s_context(VC_SAMECTX, remove, flags); if (do_show) show(pid); @@ -286,6 +301,14 @@ int main (int argc, char *argv[]) WRITE_MSG(2, "Executing\n"); Eexecvp(argv[optind], argv+optind); } - +#else + else if (do_show) + show(pid); + else { + WRITE_MSG(2, "reducecap: tools were built without legacy API support; can not continue\n"); + exit(wrapper_exit_code); + } +#endif + return EXIT_SUCCESS; } diff --git a/src/rpm-fake-resolver.c b/src/rpm-fake-resolver.c index 5420d5e..cfa25d1 100644 --- a/src/rpm-fake-resolver.c +++ b/src/rpm-fake-resolver.c @@ -1,4 +1,4 @@ -// $Id: rpm-fake-resolver.c,v 1.15 2005/07/03 13:16:34 ensc Exp $ --*- c -*-- +// $Id: rpm-fake-resolver.c 2501 2007-02-20 17:33:35Z dhozac $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -116,7 +116,7 @@ parseArgs(struct ArgInfo *args, int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); exit(1); break; } @@ -250,7 +250,7 @@ daemonize(struct ArgInfo const UNUSED * args, int pid_fd) static void activateContext(xid_t xid, bool in_ctx, - uint32_t xid_caps, int xid_flags) + uint32_t UNUSED xid_caps, int UNUSED xid_flags) { if (in_ctx) { struct vc_ctx_flags flags = { @@ -261,7 +261,7 @@ activateContext(xid_t xid, bool in_ctx, Evc_set_cflags(xid, &flags); } else if (vc_isSupported(vcFEATURE_MIGRATE)) - Evc_ctx_migrate(xid); + Evc_ctx_migrate(xid, 0); else { #ifdef VC_ENABLE_API_COMPAT Evc_new_s_context(xid, xid_caps, xid_flags); diff --git a/src/rpm-fake.c b/src/rpm-fake.c index 619dfad..5fc140a 100644 --- a/src/rpm-fake.c +++ b/src/rpm-fake.c @@ -1,4 +1,4 @@ -// $Id: rpm-fake.c,v 1.32 2005/07/03 12:26:28 ensc Exp $ --*- c++ -*-- +// $Id: rpm-fake.c 2501 2007-02-20 17:33:35Z dhozac $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -66,10 +66,6 @@ int rpm_execcon(unsigned int verified, #undef _POSIX_SOURCE #include "capability-compat.h" -#ifndef CLONE_NEWNS -# define CLONE_NEWNS 0x00020000 -#endif - #define LIBNAME "rpm-fake.so" #define PLATFORM_FILE "/etc/rpm/platform" @@ -251,7 +247,7 @@ setupContext(xid_t xid, char const **xid_str) if ((xid==VC_DYNAMIC_XID || !vc_is_dynamic_xid(xid)) && (rc=vc_ctx_create(xid))==VC_NOCTX && errno!=EEXIST) { - perror(ENSC_WRAPPERS_PREFIX "vc_create_context()"); + perror(ENSC_WRAPPERS_PREFIX "vc_ctx_create()"); exit(255); } @@ -599,7 +595,7 @@ execvWorker(char const *path, char * const argv[], char * const envp[]) int res = -1; if (vc_isSupported(vcFEATURE_MIGRATE)) - res = vc_ctx_migrate(ctx); + res = vc_ctx_migrate(ctx, 0); else { #ifdef VC_ENABLE_API_COMPAT res = vc_new_s_context(ctx,caps,flags); diff --git a/src/save_ctxinfo.c b/src/save_ctxinfo.c index ed60c94..c91f52a 100644 --- a/src/save_ctxinfo.c +++ b/src/save_ctxinfo.c @@ -1,4 +1,4 @@ -// $Id: save_ctxinfo.c,v 1.16 2005/02/15 18:04:11 ensc Exp $ --*- c++ -*-- +// $Id: save_ctxinfo.c 1859 2005-02-15 18:04:11Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/secure-mount.c b/src/secure-mount.c index 520a085..5fba02d 100644 --- a/src/secure-mount.c +++ b/src/secure-mount.c @@ -1,4 +1,4 @@ -// $Id: secure-mount.c,v 1.24 2005/03/24 12:45:06 ensc Exp $ --*- c++ -*-- +// $Id: secure-mount.c 2480 2007-01-28 11:35:19Z dhozac $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -52,6 +52,7 @@ #include <sys/wait.h> #include <libgen.h> #include <signal.h> +#include <stdlib.h> #define ENSC_WRAPPERS_FCNTL 1 #define ENSC_WRAPPERS_UNISTD 1 @@ -69,6 +70,7 @@ struct MountInfo { unsigned long xflag; unsigned long mask; char * data; + char * data_parsed; }; struct Options { @@ -120,7 +122,7 @@ static struct FstabOption { unsigned long const xflag; bool const is_dflt; } const FSTAB_OPTIONS[] = { - { "defaults", 0, (MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC| + { "defaults", MS_NODEV, (MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC| MS_SYNCHRONOUS), 0, false }, { "rbind", MS_BIND|MS_REC, MS_BIND|MS_REC, 0, false }, { "bind", MS_BIND, MS_BIND, 0, false }, @@ -398,6 +400,27 @@ secureChdir(char const *dir, struct Options const *opt) return false; } +static bool +canHandleInternal(struct MountInfo const *mnt) +{ + static char const * FS[] = { + "tmpfs", "sysfs", "proc", "sockfs", "pipefs", "futexfs", + "inotifyfs", "devpts", "ext3", "ext2", "ramfs", + "hugetlbfs", "usbfs", "binfmt_misc", + 0 + }; + char const ** i; + + if (!mnt) return false; + else if ((mnt->flag & (MS_BIND|MS_MOVE))) return true; + else if (mnt->type==0) return false; + + for (i=FS+0; *i!=0; ++i) + if (strcmp(mnt->type, *i)==0) return true; + + return false; +} + static bool mountSingle(struct MountInfo const *mnt, struct Options const *opt) { @@ -406,13 +429,10 @@ mountSingle(struct MountInfo const *mnt, struct Options const *opt) if (!secureChdir(mnt->dst, opt)) return false; - if (mnt->flag & (MS_BIND|MS_MOVE)) { - unsigned long flag = mnt->flag; - if ((flag & MS_NODEV)==0) flag |= MS_NODEV; - + if (canHandleInternal(mnt)) { if (mount(mnt->src, ".", mnt->type ? mnt->type : "", - flag, mnt->data)==-1) { + mnt->flag, mnt->data_parsed)==-1) { perror("secure-mount: mount()"); return false; } @@ -443,6 +463,8 @@ static bool transformOptionList(struct MountInfo *info, size_t UNUSED *col) { char const * ptr = info->data; + char * data = malloc(strlen(info->data)); + char * dst = data; do { char const * pos = strchr(ptr, ','); @@ -457,6 +479,13 @@ transformOptionList(struct MountInfo *info, size_t UNUSED *col) info->mask |= opt->mask; info->xflag |= opt->xflag; } + else { + if (dst != data) + *(dst++) = ','; + strncpy(dst, ptr, pos-ptr); + dst += pos - ptr; + *dst = '\0'; + } if (*pos!='\0') ptr = pos+1; @@ -465,6 +494,7 @@ transformOptionList(struct MountInfo *info, size_t UNUSED *col) } while (*ptr!='\0'); + info->data_parsed = data; return true; } @@ -500,7 +530,10 @@ static enum {prDOIT, prFAIL, prIGNORE} if (strcmp(info->type, "swap") ==0) return prIGNORE; else if (strcmp(info->type, "none") ==0) info->type = 0; - else if (strcmp(info->type, "devpts")==0) info->mask |= MS_NODEV; + else if (strcmp(info->type, "devpts")==0) { + info->mask |= MS_NODEV; + info->flag &= ~MS_NODEV; + } if (col) *col = err_col; if (!transformOptionList(info,col)) return prFAIL; @@ -624,7 +657,7 @@ int main(int argc, char *argv[]) .src = 0, .dst = 0, .type = 0, - .flag = 0, + .flag = MS_NODEV, .xflag = 0, .data = 0, }; @@ -664,7 +697,7 @@ int main(int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } diff --git a/src/setattr.c b/src/setattr.c index 9fadca3..59ba4ef 100644 --- a/src/setattr.c +++ b/src/setattr.c @@ -1,4 +1,4 @@ -// $Id: setattr.c,v 1.11 2004/03/05 19:50:45 ensc Exp $ --*- c -*-- +// $Id: setattr.c 2431 2006-12-19 19:18:12Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -58,6 +58,9 @@ CMDLINE_OPTIONS[] = { { "iunlink-but-not-immutable", no_argument, 0, CMD_IMMUX }, { "~iunlink-but-not-immutable", no_argument, 0, CMD_UNSET_IMMUX }, { "!iunlink-but-not-immutable", no_argument, 0, CMD_UNSET_IMMUX }, + { "immutable", no_argument, 0, CMD_IMMUTABLE }, + { "~immutable", no_argument, 0, CMD_UNSET_IMMUTABLE }, + { "!immutable", no_argument, 0, CMD_UNSET_IMMUTABLE }, { 0,0,0,0 } }; diff --git a/src/showattr.c b/src/showattr.c index 94437dc..5260026 100644 --- a/src/showattr.c +++ b/src/showattr.c @@ -1,4 +1,4 @@ -// $Id: showattr.c,v 1.11 2005/03/24 12:44:17 ensc Exp $ +// $Id: showattr.c 1980 2005-03-24 12:44:17Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on showattr.cc by Jacques Gelinas diff --git a/src/showperm.c b/src/showperm.c index d2e11d0..1067568 100644 --- a/src/showperm.c +++ b/src/showperm.c @@ -1,4 +1,4 @@ -// $Id: showperm.c,v 1.2 2003/09/30 20:16:53 ensc Exp $ +// $Id: showperm.c 19 2003-09-30 20:16:53Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on showperm.cc by Jacques Gelinas diff --git a/src/sigexec.c b/src/sigexec.c index 2d4f082..f55aa7c 100644 --- a/src/sigexec.c +++ b/src/sigexec.c @@ -1,4 +1,4 @@ -// $Id: sigexec.c,v 1.1 2004/05/11 18:32:58 ensc Exp $ --*- c -*-- +// $Id: sigexec.c 1562 2004-05-11 18:32:58Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/stack-start.h b/src/stack-start.h index c6a7253..12a6059 100644 --- a/src/stack-start.h +++ b/src/stack-start.h @@ -1,4 +1,4 @@ -// $Id: stack-start.h,v 1.2 2004/02/20 17:02:20 ensc Exp $ --*- c++ -*-- +// $Id: stack-start.h 968 2004-02-20 17:02:20Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/testsuite/Makefile-files b/src/testsuite/Makefile-files index bd6854e..2000d0b 100644 --- a/src/testsuite/Makefile-files +++ b/src/testsuite/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.9 2005/03/17 14:54:18 ensc Exp $ --*- makefile -*-- +## $Id: Makefile-files 2245 2006-01-04 17:28:42Z ensc $ --*- makefile -*-- ## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> ## @@ -18,14 +18,25 @@ src_testsuite_check_active_PRGS = src/testsuite/vunify-functest \ src/testsuite/chcontext-test \ src/testsuite/chbind-test + src_testsuite_check_passive_PRGS = src/testsuite/rpm-fake-test +if ENSC_HAVE_C99_COMPILER +if ENSC_HAVE_BEECRYPT +src_testsuite_check_passive_PRGS += src/testsuite/hashcalc \ + src/testsuite/hashcalc-plain +endif +endif check_PROGRAMS += $(src_testsuite_check_passive_PRGS) \ $(src_testsuite_check_active_PRGS) if ENSC_HAVE_C99_COMPILER src_testsuite_check_src_C99_SCRPTS = src/testsuite/vunify-test.sh +if ENSC_HAVE_BEECRYPT +src_testsuite_check_src_C99_SCRPTS += src/testsuite/hashcalc-plain.sh \ + src/testsuite/hashcalc.sh +endif else src_testsuite_check_src_C99_SCRPTS = endif @@ -40,8 +51,11 @@ TESTS += $(src_testsuite_check_active_PRGS) \ $(src_testsuite_check_src_SCRPTS) \ $(src_testsuite_check_gen_SCRPTS) -EXTRA_DIST += $(src_testsuite_check_src_SCRPTS) - +EXTRA_DIST += $(src_testsuite_check_src_SCRPTS) \ + src/testsuite/vunify-test.sh \ + src/testsuite/hashcalc.sh \ + src/testsuite/hashcalc-plain.sh \ + src/testsuite/vwait-test.sh src_testsuite_rpm_fake_test_SOURCES = src/testsuite/rpm-fake-test.c @@ -57,6 +71,21 @@ src_testsuite_chcontext_test_LDADD = lib/libvserver.la $(LIBINTERNAL) src_testsuite_chbind_test_SOURCES = src/testsuite/chbind-test.c src_testsuite_chbind_test_LDADD = lib/libvserver.la +src_testsuite_hashcalc_SOURCES = src/testsuite/hashcalc.c +src_testsuite_hashcalc_plain_SOURCES = src/testsuite/hashcalc-plain.c +if ENSC_CAN_BEECRYPT_WITH_DIETLIBC +src_testsuite_hashcalc_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS) +src_testsuite_hashcalc_LDFLAGS = $(VSERVER_LDFLGS) + +src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS) +src_testsuite_hashcalc_plain_LDFLAGS = $(VSERVER_LDFLGS) +else +src_testsuite_hashcalc_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt +src_testsuite_hashcalc_LDFLAGS = + +src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt +src_testsuite_hashcalc_plain_LDFLAGS = +endif src_testsuite_CPPFLAGS = -I $(top_srcdir)/src -D ENSC_TESTSUITE diff --git a/src/testsuite/chbind-test.c b/src/testsuite/chbind-test.c index 187ad2e..01eac7b 100644 --- a/src/testsuite/chbind-test.c +++ b/src/testsuite/chbind-test.c @@ -1,4 +1,4 @@ -// $Id: chbind-test.c,v 1.1 2004/02/09 23:30:20 ensc Exp $ --*- c -*-- +// $Id: chbind-test.c 847 2004-02-09 23:30:20Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/testsuite/chcontext-test.c b/src/testsuite/chcontext-test.c index 4a2db2c..021e47c 100644 --- a/src/testsuite/chcontext-test.c +++ b/src/testsuite/chcontext-test.c @@ -1,4 +1,4 @@ -// $Id: chcontext-test.c,v 1.2 2004/02/09 23:40:45 ensc Exp $ --*- c -*-- +// $Id: chcontext-test.c 856 2004-02-09 23:40:45Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/testsuite/hashcalc-plain.c b/src/testsuite/hashcalc-plain.c new file mode 100644 index 0000000..5b6ff47 --- /dev/null +++ b/src/testsuite/hashcalc-plain.c @@ -0,0 +1,92 @@ +// $Id: hashcalc-plain.c 2245 2006-01-04 17:28:42Z ensc $ --*- c -*-- + +// Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <beecrypt/beecrypt.h> +#include <stdbool.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/mman.h> + +#define ENSC_TESTSUITE +#include "lib_internal/coreassert.h" + +#define HASH_BLOCKSIZE 0x10000000u + +static bool +convertDigest(char res[], hashFunctionContext * h_ctx) +{ + static char const HEX_DIGIT[] = "0123456789abcdef"; + size_t d_size = h_ctx->algo->digestsize; + + unsigned char digest[d_size]; + size_t out = 0; + + if (hashFunctionContextDigest(h_ctx, digest)==-1) + return false; + + for (size_t in=0; in<d_size; ++in) { + res[out++] = HEX_DIGIT[digest[in] >> 4]; + res[out++] = HEX_DIGIT[digest[in] & 0x0f]; + } + res[out++] = '\0'; + + return true; +} + +int main(int UNUSED argc, char *argv[]) +{ + int fd = open(argv[1], O_NOFOLLOW|O_NONBLOCK|O_RDONLY|O_NOCTTY); + hashFunctionContext hash_context; + hashFunction const *method; + struct stat st; + off_t size; + loff_t offset = 0; + char digest[1024]; + + assert((method = hashFunctionFind(argv[2]))!=0); + assert(hashFunctionContextInit(&hash_context, method)!=-1); + + assert(fstat(fd, &st)!=-1); + assert(hashFunctionContextReset(&hash_context)!=-1); + + size = st.st_size; + + while (offset < size) { + loff_t volatile buf_size = size-offset; + void const * buf; + if (buf_size>HASH_BLOCKSIZE) buf_size = HASH_BLOCKSIZE; + + assert((buf=mmap(0, buf_size, PROT_READ, MAP_SHARED, fd, offset))!=0); + offset += buf_size; + assert(hashFunctionContextUpdate(&hash_context, buf, buf_size)!=-1); + munmap((void *)(buf), buf_size); + } + + assert(convertDigest(digest, &hash_context)); + + Vwrite(1, digest, strlen(digest)); + Vwrite(1, "\n", 1); + + hashFunctionContextFree(&hash_context); + + return 0; +} diff --git a/src/testsuite/hashcalc-plain.sh b/src/testsuite/hashcalc-plain.sh new file mode 100755 index 0000000..f5fd724 --- /dev/null +++ b/src/testsuite/hashcalc-plain.sh @@ -0,0 +1,19 @@ +#! /bin/bash + +# Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +hashcalc=${builddir:-.}/src/testsuite/hashcalc-plain \ +exec ${srcdir:-.}/src/testsuite/hashcalc.sh diff --git a/src/testsuite/hashcalc.c b/src/testsuite/hashcalc.c new file mode 100644 index 0000000..3b84e95 --- /dev/null +++ b/src/testsuite/hashcalc.c @@ -0,0 +1,74 @@ +// $Id: hashcalc.c 2209 2005-10-29 10:33:02Z ensc $ --*- c -*-- + +// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#define ENSC_TESTSUITE +#define main Xmain +# include "../vhashify.c" +#undef main + +#include "lib_internal/coreassert.h" + +int main(int UNUSED argc, char *argv[]) +{ + int fd = open(argv[1], O_NOFOLLOW|O_NONBLOCK|O_RDONLY|O_NOCTTY); + struct stat st; + off_t size; + struct { + volatile unsigned int canary0; + volatile unsigned int canary1; + HashPath d; + volatile unsigned int canary2; + volatile unsigned int canary3; + } __attribute__((__packed__)) d_path; + + d_path.canary0 = 0x12345678; + d_path.canary1 = 0x21436587; + d_path.canary2 = 0x89abcdef; + d_path.canary3 = 0x98badcfe; + memset(d_path.d, 0x66, sizeof d_path.d); + + global_info.hash_conf.method = hashFunctionFind(argv[2]); + + assert(hashFunctionContextInit(&global_info.hash_context, + global_info.hash_conf.method)!=-1); + + assert(fstat(fd, &st)!=-1); + + // set members of st to defined values so that the hash (which is + // influenced by them) is predictable + size = st.st_size; + memset(&st, 0, sizeof st); + st.st_size = size; + + assert(calculateHashFromFD(fd, d_path.d, &st)); + assert(d_path.canary0 == 0x12345678); + assert(d_path.canary1 == 0x21436587); + assert(d_path.canary2 == 0x89abcdef); + assert(d_path.canary3 == 0x98badcfe); + + Vwrite(1, d_path.d, strlen(d_path.d)); + Vwrite(1, "\n", 1); + + hashFunctionContextFree(&global_info.hash_context); + + return 0; +} diff --git a/src/testsuite/hashcalc.sh b/src/testsuite/hashcalc.sh new file mode 100755 index 0000000..600109a --- /dev/null +++ b/src/testsuite/hashcalc.sh @@ -0,0 +1,71 @@ +#! /bin/bash + +# Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +# +# 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; version 2 of the License. +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +: ${srcdir=.} +: ${builddir=.} +: ${srctestsuitedir=$srcdir/src/testsuite} +: ${srcdatadir=$srctestsuitedir/data} +: ${tmptopdir=/var/tmp} +: ${hashcalc:=$builddir/src/testsuite/hashcalc} + +set -e + +tmpdir=$(mktemp -d "$tmptopdir"/rpm-fake-test.XXXXXX) +trap "rm -rf $tmpdir" EXIT + +## Usage: createRandFile <name> <size> +function createRandFile +{ + dd if=/dev/urandom of=$tmpdir/$1-$2 bs=$2 count=1 &>/dev/null +} + +pg=$(getconf PAGESIZE) + +for i in 2 4 8 15 16 23 42 32 64 68 $pg $[ pg+42 ] $[ pg*2 ] \ + $[ pg*2-23 ] $[ pg*23+42 ]; do + createRandFile rand $[ i - 1 ] + createRandFile rand $i + createRandFile rand $[ i + 1 ] +done + +: > $tmpdir/rand-0 + +test x"$ensc_use_expensive_tests" != xyes || { + dd if=/dev/urandom of=$tmpdir/rand-LARGE1 bs=$[ pg-1 ] count=1 seek=124123 + dd if=/dev/urandom of=$tmpdir/rand-LARGE2 bs=$[ 1024*1024-1 ] count=1 seek=5003 + #dd if=/dev/urandom of=$tmpdir/rand-LARGE3 bs=$[ pg-1 ] count=1 seek=12412373 +} &>/dev/null + +for i in $tmpdir/rand-*; do + sha1_0=$($hashcalc "$i" SHA-1 | tr -d / ) + sha1_1=$(sha1sum "$i" | awk '{ print $1}' ) + + test x"$sha1_0" = x"$sha1_1" || { + echo "SHA-1 mismatch at $(basename $i)" + exit 1 + } + + md5_0=$($hashcalc "$i" MD5 | tr -d / ) + md5_1=$(md5sum "$i" | awk '{ print $1}' ) + + test x"$md5_0" = x"$md5_1" || { + echo "MD5 mismatch at $(basename $i)" + exit 1 + } +done + +true diff --git a/src/testsuite/rpm-fake-test.c b/src/testsuite/rpm-fake-test.c index 57054e1..d581daa 100644 --- a/src/testsuite/rpm-fake-test.c +++ b/src/testsuite/rpm-fake-test.c @@ -1,4 +1,4 @@ -// $Id: rpm-fake-test.c,v 1.4 2004/02/27 18:57:28 ensc Exp $ --*- c -*-- +// $Id: rpm-fake-test.c 1044 2004-02-27 18:57:28Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/testsuite/vunify-functest.c b/src/testsuite/vunify-functest.c index 965bb6f..a224b5d 100644 --- a/src/testsuite/vunify-functest.c +++ b/src/testsuite/vunify-functest.c @@ -1,4 +1,4 @@ -// $Id: vunify-functest.c,v 1.4 2004/02/17 19:51:21 ensc Exp $ --*- c -*-- +// $Id: vunify-functest.c 920 2004-02-17 19:51:21Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/testsuite/vwait-test.sh b/src/testsuite/vwait-test.sh new file mode 100755 index 0000000..3b8d041 --- /dev/null +++ b/src/testsuite/vwait-test.sh @@ -0,0 +1,62 @@ +#! /bin/bash + +: ${srcdir:=.} +: ${builddir:=.} +: ${XID:=1234} + +test "$(id -u)" -eq 0 || { + echo "Skipping vwait-test; it requires root rights" >&2 + exit 0 +} + + +! $builddir/src/vserver-info $XID RUNNING || { + echo "Skipping vwait-test because context '$XID' is already used" >&2 + exit 0 +} + +tmpdir=$(mktemp -d /tmp/vwaittest.XXXXXX) +trap "rm -rf $tmpdir" EXIT + +: ${VWAIT:=$builddir/src/vwait} +: ${CHCONTEXT:=$builddir/src/chcontext-compat} + + + +############ +$CHCONTEXT --disconnect --silent --xid $XID /bin/bash -c "sleep 2" +status=$($VWAIT --status-fd 1 -- $XID) +rc=$? + +case $status in + (FINISHED\ *) ;; + (*) echo "vwait exited with bad status '$status'/$rc" >&2 + exit 1 +esac + +wait + + +############ +$CHCONTEXT --disconnect --silent --xid $XID /bin/bash -c "sleep 5" +status=$($VWAIT --status-fd 1 --timeout 1 -- $XID) +rc=$? + +case $status in + (TIMEOUT) ;; + (*) echo "vwait exited with bad status '$status'/$rc" >&2 + exit 1 +esac + + + +############ +$CHCONTEXT --disconnect --silent --xid $XID /bin/bash -c "sleep 5" +status=$($VWAIT --terminate --status-fd 1 --timeout 1 -- $XID) +rc=$? + +case $status in + (KILLED) ;; + (*) echo "vwait exited with bad status '$status'/$rc" >&2 + exit 1 +esac diff --git a/src/util.h b/src/util.h index b72d212..c5187de 100644 --- a/src/util.h +++ b/src/util.h @@ -1,4 +1,4 @@ -// $Id: util.h,v 1.11 2004/02/26 13:10:15 ensc Exp $ --*- c -*-- +// $Id: util.h 1012 2004-02-26 13:10:15Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/vattribute.c b/src/vattribute.c index e06bf60..1339e15 100644 --- a/src/vattribute.c +++ b/src/vattribute.c @@ -1,4 +1,4 @@ -// $Id: vattribute.c,v 1.14 2005/03/24 12:44:17 ensc Exp $ --*- c -*-- +// $Id: vattribute.c 2403 2006-11-24 23:06:08Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -175,7 +175,7 @@ int main(int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return 255; break; } diff --git a/src/vcontext.c b/src/vcontext.c index 6d04174..683963f 100644 --- a/src/vcontext.c +++ b/src/vcontext.c @@ -1,6 +1,6 @@ -// $Id: vcontext.c,v 1.18 2005/04/28 18:08:12 ensc Exp $ --*- c -*-- +// $Id: vcontext.c 2501 2007-02-20 17:33:35Z dhozac $ --*- c -*-- -// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +// Copyright (C) 2004-2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // // 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 @@ -33,6 +33,9 @@ #include <sys/un.h> #include <assert.h> #include <signal.h> +#include <sys/types.h> +#include <pwd.h> +#include <grp.h> #include <linux/personality.h> @@ -62,6 +65,7 @@ #define CMD_NAMESPACE 0x400d #define CMD_PERSTYPE 0x400e #define CMD_PERSFLAG 0x400f +#define CMD_VLOGIN 0x4010 struct option const @@ -85,6 +89,7 @@ CMDLINE_OPTIONS[] = { { "syncmsg", required_argument, 0, CMD_SYNCMSG }, { "personality-type", required_argument, 0, CMD_PERSTYPE }, { "personality-flags", required_argument, 0, CMD_PERSFLAG }, + { "vlogin", no_argument, 0, CMD_VLOGIN }, #if 1 { "fakeinit", no_argument, 0, CMD_INITPID }, // compatibility #endif @@ -100,11 +105,12 @@ struct Arguments { bool is_initpid; bool is_silentexist; bool set_namespace; + bool do_vlogin; uint_least32_t personality_flags; uint_least32_t personality_type; int verbosity; bool do_chroot; - uid_t uid; + char const * uid; xid_t xid; char const * sync_sock; char const * sync_msg; @@ -112,6 +118,8 @@ struct Arguments { int wrapper_exit_code = 255; +void do_vlogin(int argc, char *argv[], int ind); + static void showHelp(int fd, char const *cmd, int res) { @@ -145,6 +153,7 @@ showHelp(int fd, char const *cmd, int res) " --syncmsg <message>\n" " ... use <message> as synchronization message; by\n" " default, 'ok' will be used\n" + " --vlogin ... enable terminal proxy\n" "\n" "'vcontext --create' exits with code 254 iff the context exists already.\n" "\n" @@ -159,7 +168,7 @@ showVersion() WRITE_MSG(1, "vcontext " VERSION " -- manages the creation of security contexts\n" "This program is part of " PACKAGE_STRING "\n\n" - "Copyright (C) 2004 Enrico Scholz\n" + "Copyright (C) 2004-2006 Enrico Scholz\n" VERSION_COPYRIGHT_DISCLAIMER); exit(0); } @@ -233,7 +242,7 @@ doExternalSync(int fd, char const *msg) } static inline ALWAYSINLINE int -doit(struct Arguments const *args, char *argv[]) +doit(struct Arguments const *args, int argc, char *argv[]) { int p[2][2]; pid_t pid = initSync(p, args->do_disconnect); @@ -250,10 +259,10 @@ doit(struct Arguments const *args, char *argv[]) switch (errno) { case EEXIST : if (!args->is_silentexist) - perror(ENSC_WRAPPERS_PREFIX "vc_create_context()"); + perror(ENSC_WRAPPERS_PREFIX "vc_ctx_create()"); return 254; default : - perror(ENSC_WRAPPERS_PREFIX "vc_create_context()"); + perror(ENSC_WRAPPERS_PREFIX "vc_ctx_create()"); return wrapper_exit_code; } } @@ -265,19 +274,45 @@ doit(struct Arguments const *args, char *argv[]) if (args->do_chroot) { Echroot("."); if (args->set_namespace) { - if (args->do_migrateself) Evc_set_namespace(); - else if (args->do_migrate) Evc_enter_namespace(xid); + if (args->do_migrateself) Evc_set_namespace(xid, 0); + else if (args->do_migrate) Evc_enter_namespace(xid, 0); } } setFlags(args, xid); if (args->do_migrate && !args->do_migrateself) - Evc_ctx_migrate(xid); + Evc_ctx_migrate(xid, 0); + + if (args->uid != NULL) { + uid_t uid = 0; + unsigned long tmp; + + if (!isNumberUnsigned(args->uid, &tmp, false)) { +#ifdef __dietlibc__ + struct passwd *pw; + pw = getpwnam(args->uid); + if (pw == NULL) { + WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "Username '"); + WRITE_STR(2, args->uid); + WRITE_MSG(2, "' does not exist\n"); + return wrapper_exit_code; + } + uid = pw->pw_uid; + Einitgroups(args->uid, pw->pw_gid); + Esetgid(pw->pw_gid); +#else + WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "Uid '"); + WRITE_STR(2, args->uid); + WRITE_MSG(2, "' is not a number\n"); + return wrapper_exit_code; +#endif + } + else + uid = (uid_t) tmp; - if (args->uid!=(uid_t)(-1) && getuid()!=args->uid) { - Esetuid(args->uid); - if (getuid()!=args->uid) { + Esetuid((uid_t) uid); + if (getuid()!=uid) { WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "Something went wrong while changing the UID\n"); exit(wrapper_exit_code); } @@ -287,12 +322,15 @@ doit(struct Arguments const *args, char *argv[]) sys_personality(args->personality_type | args->personality_flags)==-1) { perror(ENSC_WRAPPERS_PREFIX "personality()"); exit(wrapper_exit_code); - } + } doExternalSync(ext_sync_fd, args->sync_msg); doSyncStage1(p, args->do_disconnect); DPRINTF("doit: pid=%u, ppid=%u\n", getpid(), getppid()); - execvp (argv[optind],argv+optind); + if (!args->do_vlogin) + execvp (argv[optind],argv+optind); + else + do_vlogin(argc, argv, optind); doSyncStage2(p, args->do_disconnect); PERROR_Q(ENSC_WRAPPERS_PREFIX "execvp", argv[optind]); @@ -341,11 +379,12 @@ int main (int argc, char *argv[]) .do_migrateself = false, .do_disconnect = false, .do_endsetup = false, + .do_vlogin = false, .is_initpid = false, .is_silentexist = false, .set_namespace = false, .verbosity = 1, - .uid = -1, + .uid = NULL, .xid = VC_DYNAMIC_XID, .personality_type = VC_BAD_PERSONALITY, .personality_flags = 0, @@ -363,13 +402,14 @@ int main (int argc, char *argv[]) case CMD_MIGRATE : args.do_migrate = true; break; case CMD_DISCONNECT : args.do_disconnect = true; break; case CMD_ENDSETUP : args.do_endsetup = true; break; + case CMD_VLOGIN : args.do_vlogin = true; break; case CMD_INITPID : args.is_initpid = true; break; case CMD_CHROOT : args.do_chroot = true; break; case CMD_NAMESPACE : args.set_namespace = true; break; case CMD_SILENTEXIST : args.is_silentexist = true; break; case CMD_SYNCSOCK : args.sync_sock = optarg; break; case CMD_SYNCMSG : args.sync_msg = optarg; break; - case CMD_UID : args.uid = atol(optarg); break; + case CMD_UID : args.uid = optarg; break; case CMD_XID : args.xid = Evc_xidopt2xid(optarg,true); break; case CMD_SILENT : --args.verbosity; break; case CMD_PERSTYPE : @@ -386,7 +426,7 @@ int main (int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return wrapper_exit_code; break; } @@ -398,7 +438,7 @@ int main (int argc, char *argv[]) args.xid = Evc_get_task_xid(0); if (!args.do_create && !args.do_migrate) - WRITE_MSG(2, "Neither '--create' nor '--migrate specified; try '--help' for more information\n"); + WRITE_MSG(2, "Neither '--create' nor '--migrate' specified; try '--help' for more information\n"); else if (args.do_create && args.do_migrate) WRITE_MSG(2, "Can not specify '--create' and '--migrate' at the same time; try '--help' for more information\n"); else if (!args.do_migrate && args.is_initpid) @@ -408,7 +448,7 @@ int main (int argc, char *argv[]) else if (optind>=argc) WRITE_MSG(2, "No command given; use '--help' for more information.\n"); else - return doit(&args, argv); + return doit(&args, argc, argv); return wrapper_exit_code; } diff --git a/src/vcopy-init.hc b/src/vcopy-init.hc index 51db03a..ba2d2af 100644 --- a/src/vcopy-init.hc +++ b/src/vcopy-init.hc @@ -1,4 +1,4 @@ -// $Id: vcopy-init.hc,v 1.3 2005/03/18 00:24:27 ensc Exp $ --*- c -*-- +// $Id: vcopy-init.hc 1921 2005-03-18 00:24:27Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/vcopy.c b/src/vcopy.c index 5fd8638..b54b501 100644 --- a/src/vcopy.c +++ b/src/vcopy.c @@ -1,4 +1,4 @@ -// $Id: vcopy.c,v 1.5 2005/03/24 12:44:17 ensc Exp $ --*- c -*-- +// $Id: vcopy.c 2403 2006-11-24 23:06:08Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -274,7 +274,7 @@ int main(int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } diff --git a/src/vdlimit.c b/src/vdlimit.c index fc287e9..3df67ba 100644 --- a/src/vdlimit.c +++ b/src/vdlimit.c @@ -1,4 +1,4 @@ -// $Id: vdlimit.c,v 1.2 2005/08/21 22:16:22 mlhuang Exp $ --*- c -*-- +// $Id: vdlimit.c,v 1.5 2007/06/28 15:20:30 dhozac Exp $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -21,7 +21,6 @@ #endif #include "util.h" -#include <lib_internal/sys_clone.h> #include <lib/internal.h> #include <vserver.h> @@ -85,14 +84,24 @@ showVersion() static void setDlimit(char const *filename, xid_t xid, uint32_t flags, struct vc_ctx_dlimit const *limit) { + bool was_added = false; + if (vc_get_dlimit(filename, xid, flags, 0) == -1) { if (vc_add_dlimit(filename, xid, flags) == -1) { perror(ENSC_WRAPPERS_PREFIX "vc_add_dlimit()"); exit(wrapper_exit_code); } + + was_added = true; } + if (vc_set_dlimit(filename, xid, flags, limit) == -1) { perror(ENSC_WRAPPERS_PREFIX "vc_set_dlimit()"); + + if (was_added && + vc_rem_dlimit(filename, xid, flags)==-1) + perror(ENSC_WRAPPERS_PREFIX "vc_rem_dlimit()"); + exit(wrapper_exit_code); } } @@ -200,6 +209,14 @@ setDLimitField(struct vc_ctx_dlimit *dst, char const *opt) return true; } +bool +isHigherLimit(uint_least32_t lhs, uint_least32_t rhs) +{ + if (lhs==VC_CDLIM_KEEP || rhs==VC_CDLIM_KEEP) return false; + + return lhs > rhs; +} + int main(int argc, char *argv[]) { bool do_set = false; @@ -261,6 +278,10 @@ int main(int argc, char *argv[]) WRITE_MSG(2, "No mount point specified; try '--help' for more information\n"); else if (xid==VC_NOCTX) WRITE_MSG(2, "No xid specified; try '--help' for more information\n"); + else if (isHigherLimit(limit.space_used, limit.space_total)) + WRITE_MSG(2, "invalid parameters: 'space_used' is larger than 'space_total'\n"); + else if (isHigherLimit(limit.inodes_used, limit.inodes_total)) + WRITE_MSG(2, "invalid parameters: 'inodes_used' is larger than 'inodes_total'\n"); else { for (; optind < argc; ++optind) { if (do_set) setDlimit(argv[optind], xid, flags, &limit); diff --git a/src/vdu.c b/src/vdu.c index f784a35..a0c8751 100644 --- a/src/vdu.c +++ b/src/vdu.c @@ -1,12 +1,10 @@ -// $Id: vdu-new.c,v 1.2 2004/08/17 14:44:14 mef-pl_kernel Exp $ +// $Id: vdu.c 2260 2006-01-22 11:56:28Z ensc $ --*- c -*-- -// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> -// based on vdu.cc by Jacques Gelinas +// Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // // 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. +// the Free Software Foundation; version 2 of the License. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -17,244 +15,319 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#define _LARGEFILE64_SOURCE - #ifdef HAVE_CONFIG_H # include <config.h> #endif +#include "util.h" +#include <lib/vserver.h> +#include <lib/fmt.h> + #include <stdlib.h> -#include <stdio.h> +#include <getopt.h> +#include <stdint.h> +#include <errno.h> #include <sys/stat.h> -#include <sys/types.h> -#include <fcntl.h> -#include <unistd.h> #include <dirent.h> -#include <errno.h> -#include <string.h> -#include <sys/ioctl.h> - -#include <assert.h> +#include <fcntl.h> -#include "vdu.h" +#define ENSC_WRAPPERS_PREFIX "vdu: " +#define ENSC_WRAPPERS_VSERVER 1 +#define ENSC_WRAPPERS_UNISTD 1 +#define ENSC_WRAPPERS_DIRENT 1 +#define ENSC_WRAPPERS_FCNTL 1 +#define ENSC_WRAPPERS_STAT 1 +#include <wrappers.h> + +#define CMD_HELP 0x1000 +#define CMD_VERSION 0x1001 +#define CMD_XID 0x2000 +#define CMD_SPACE 0x2001 +#define CMD_INODES 0x2002 +#define CMD_SCRIPT 0x2003 +#define CMD_BLOCKSIZE 0x2005 + +int wrapper_exit_code = 1; + +struct option const +CMDLINE_OPTIONS[] = { + { "help", no_argument, 0, CMD_HELP }, + { "version", no_argument, 0, CMD_VERSION }, + { "xid", required_argument, 0, CMD_XID }, + { "space", no_argument, 0, CMD_SPACE }, + { "inodes", no_argument, 0, CMD_INODES }, + { "script", no_argument, 0, CMD_SCRIPT }, + { "blocksize", required_argument, 0, CMD_BLOCKSIZE }, + {0,0,0,0} +}; + +struct Arguments { + xid_t xid; + bool space; + bool inodes; + bool script; + unsigned long blocksize; +}; + +struct Result { + uint_least64_t blocks; + uint_least64_t inodes; +}; + +struct TraversalParams { + struct Arguments const * const args; + struct Result * const result; +}; -HashTable tbl; +static void +showHelp(int fd, char const *cmd, int res) +{ + WRITE_MSG(fd, "Usage:\n "); + WRITE_STR(fd, cmd); + WRITE_MSG(fd, + " --xid <xid> (--space|--inodes) [--blocksize <blocksize>] [--script] <directory>*\n" + "\n" + "Please report bugs to " PACKAGE_BUGREPORT "\n"); + + exit(res); +} -static int // boolean -INOPut(PHashTable tbl, ino64_t* key, struct stat64 **val){ - return Put(tbl, key, val); +static void +showVersion() +{ + WRITE_MSG(1, + "vdu " VERSION " -- calculates the size of a directory\n" + "This program is part of " PACKAGE_STRING "\n\n" + "Copyright (C) 2006 Enrico Scholz\n" + VERSION_COPYRIGHT_DISCLAIMER); + exit(0); } -__extension__ typedef long long longlong; -//__extension__ typedef long longlong; +/* basic hash table implementation for inode tracking */ +#define HASH_SIZE 103 +typedef struct hash_entry { + struct hash_entry *next; + ino_t inode; +} hash_entry; -static longlong inodes; -static longlong blocks; -static longlong size; +typedef struct hash_table { + hash_entry *entries[HASH_SIZE]; +} hash_table; -static short verbose = 0; +static hash_table ht; -static inline void warning(char *s) { - fprintf(stderr,"%s (%s)\n",s,strerror(errno)); +static void +hash_init(void) +{ + memset(&ht, 0, sizeof(hash_table)); } -void panic(char *s) { - warning(s); - exit(2); +static void +hash_free(void) +{ + int i; + hash_entry *e, *p; + for (i = 0; i < HASH_SIZE; i++) { + for (e = ht.entries[i], p = NULL; e; e = e->next) { + free(p); + p = e; + } + free(p); + } } -static void vdu_onedir (char const *path) +static int +hash_insert(ino_t inode) { - char const *foo = path; - struct stat64 dirst, st; - struct dirent *ent; - char *name; - DIR *dir; - int dirfd; - longlong dirsize, dirinodes, dirblocks; - - dirsize = dirinodes = dirblocks = 0; - - // A handle to speed up chdir - if ((dirfd = open (path,O_RDONLY)) == -1) { - fprintf (stderr,"Can't open directory %s\n",path); - panic("open failed"); + hash_entry *e, *p; + unsigned int hashval = inode % HASH_SIZE; + + /* no one else here */ + if (ht.entries[hashval] == NULL) { + ht.entries[hashval] = malloc(sizeof(hash_entry)); + ht.entries[hashval]->next = NULL; + ht.entries[hashval]->inode = inode; + return 0; + } + + for (e = ht.entries[hashval], p = NULL; e; e = e->next) { + /* already in the hash table */ + if (e->inode == inode) + return -1; + else if (e->inode > inode) { + /* we're first */ + if (p == NULL) { + ht.entries[hashval] = malloc(sizeof(hash_entry)); + ht.entries[hashval]->next = e; + ht.entries[hashval]->inode = inode; + } + /* we're in the middle */ + else { + p->next = malloc(sizeof(hash_entry)); + p->next->next = e; + p->next->inode = inode; + } + return 0; } + p = e; + } + /* we're last */ + p->next = malloc(sizeof(hash_entry)); + p->next->next = NULL; + p->next->inode = inode; + + return 0; +} - if (fchdir (dirfd) == -1) { - fprintf (stderr,"Can't fchdir directory %s\n",path); - panic("fchdir failed"); - } +static void +visitDirEntry(char const *name, dev_t const dir_dev, + struct TraversalParams *params); - if (fstat64 (dirfd,&dirst) != 0) { - fprintf (stderr,"Can't lstat directory %s\n",path); - panic("lstat failed"); - } +static void +visitDir(char const *name, struct stat const *expected_stat, struct TraversalParams *params) +{ + int fd = Eopen(".", O_RDONLY|O_DIRECTORY, 0); + DIR * dir; - if ((dir = opendir (".")) == NULL) { - fprintf (stderr,"Can't open (opendir) directory %s\n",path); - panic("opendir failed"); - } + EsafeChdir(name, expected_stat); + dir = Eopendir("."); - /* Walk the directory entries and compute the sum of inodes, - * blocks, and disk space used. This code will recursively descend - * down the directory structure. - */ + for (;;) { + struct dirent *ent = Ereaddir(dir); + if (ent==0) break; - while ((ent=readdir(dir))!=NULL){ - if (lstat64(ent->d_name,&st)==-1){ - fprintf (stderr,"Can't stat %s/%s\n",path,ent->d_name); - warning("lstat failed"); - continue; - } - - dirinodes ++; - - if (S_ISREG(st.st_mode)){ - if (st.st_nlink > 1){ - struct stat64 *val; - int nlink; - - /* Check hash table if we've seen this inode - * before. Note that the hash maintains a - * (inode,struct stat) key value pair. - */ - - val = &st; - - (void) INOPut(&tbl,&st.st_ino,&val); - - /* Note that after the INOPut call "val" refers to the - * value entry in the hash table --- not &st. This - * means that if the inode has been put into the hash - * table before, val will refer to the first st that - * was put into the hashtable. Otherwise, if it is - * the first time it is put into the hash table, then - * val will be equal to this &st. - */ - nlink = val->st_nlink; - nlink --; - - /* val refers to value in hash tbale */ - if (nlink == 0) { - - /* We saw all hard links to this particular inode - * as part of this sweep of vdu. So account for - * the size and blocks required by the file. - */ - - dirsize += val->st_size; - dirblocks += val->st_blocks; - - /* Do not delete the (ino,val) tuple from the tbl, - * as we need to handle the case when we are - * double counting a file due to a bind mount. - */ - val->st_nlink = 0; - - } else if (nlink > 0) { - val->st_nlink = nlink; - } else /* if(nlink < 0) */ { - /* We get here when we are double counting nlinks - due a bind mount. */ - - /* DO NOTHING */ - } - } else { - dirsize += st.st_size; - dirblocks += st.st_blocks; - } - - } else if (S_ISDIR(st.st_mode)) { - if ((st.st_dev == dirst.st_dev) && - (strcmp(ent->d_name,".")!=0) && - (strcmp(ent->d_name,"..")!=0)) { - - dirsize += st.st_size; - dirblocks += st.st_blocks; - - name = strdup(ent->d_name); - if (name==0) { - panic("Out of memory\n"); - } - vdu_onedir(name); - free(name); - fchdir(dirfd); - } - } else { - // dirsize += st.st_size; - // dirblocks += st.st_blocks; - } - } - closedir (dir); - close (dirfd); - if (verbose) - printf("%16lld %16lld %16lld %s\n",dirinodes, dirblocks, dirsize,foo); - inodes += dirinodes; - blocks += dirblocks; - size += dirsize; + if (isDotfile(ent->d_name)) continue; + visitDirEntry(ent->d_name, expected_stat->st_dev, params); + } + + Eclosedir(dir); + + Efchdir(fd); + Eclose(fd); } static void -Count(ino64_t* key, struct stat64* val) { - if(val->st_nlink) { - blocks += val->st_blocks; - size += val->st_size; - printf("ino=%16lld nlink=%d\n",val->st_ino, val->st_nlink); - } +visitDirEntry(char const *name, dev_t const dir_dev, + struct TraversalParams *params) +{ + struct stat st; + xid_t xid; + + ElstatD(name, &st); + + xid = vc_getfilecontext(name); + if (xid == params->args->xid && + (st.st_nlink == 1 || hash_insert(st.st_ino) != -1)) { + params->result->blocks += st.st_blocks; + params->result->inodes += 1; + } + + if (S_ISDIR(st.st_mode) && dir_dev == st.st_dev) + visitDir(name, &st, params); } -int -main (int argc, char **argv) +static void +visitDirStart(char const *name, struct TraversalParams *params) { - int startdir, i; - - if (argc < 2){ - fprintf (stderr,"vdu version %s\n",VERSION); - fprintf (stderr,"vdu directory ...\n\n"); - fprintf (stderr,"Compute the size of a directory tree.\n"); - }else{ - if ((startdir = open (".",O_RDONLY)) == -1) { - fprintf (stderr,"Can't open current working directory\n"); - panic("open failed"); - } + struct stat st; + int fd = Eopen(".", O_RDONLY|O_DIRECTORY, 0); - /* hash table support for hard link count */ - (void) Init(&tbl,0,0); - - for (i=1; i<argc; i++){ - inodes = blocks = size = 0; - vdu_onedir (argv[i]); - - printf("%16lld %16lld %16lld %s\n", - inodes, - blocks>>1, - size, - argv[i]); - if (fchdir (startdir) == -1) { - panic("fchdir failed"); - } - } + Estat(name, &st); + Echdir(name); - if(0) { - /* show size & blocks for files with nlinks from outside of dir */ - inodes = blocks = size = 0; - Iterate(&tbl,Count); - printf("%16lld %16lld %16lld NOT COUNTED\n", - inodes, - blocks, - size); - } + visitDirEntry(".", st.st_dev, params); - // Dispose(&tbl); this fails to delete all entries - close(startdir); - } - return 0; + Efchdir(fd); + Eclose(fd); } -/* - * Local variables: - * c-basic-offset: 4 - * End: - */ +int main(int argc, char *argv[]) +{ + struct Arguments args = { + .xid = VC_NOCTX, + .space = false, + .inodes = false, + .script = false, + .blocksize = 1024, + }; + + while (1) { + int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0); + if (c==-1) break; + + switch (c) { + case CMD_HELP : showHelp(1, argv[0], 0); + case CMD_VERSION : showVersion(); + case CMD_XID : args.xid = Evc_xidopt2xid(optarg,true); break; + case CMD_SPACE : args.space = true; break; + case CMD_INODES : args.inodes = true; break; + case CMD_SCRIPT : args.script = true; break; + case CMD_BLOCKSIZE: + if (!isNumberUnsigned(optarg, &args.blocksize, false)) { + WRITE_MSG(2, "Invalid block size argument: '"); + WRITE_STR(2, optarg); + WRITE_MSG(2, "'; try '--help' for more information\n"); + return EXIT_FAILURE; + } + break; + default : + WRITE_MSG(2, "Try '"); + WRITE_STR(2, argv[0]); + WRITE_MSG(2, " --help' for more information.\n"); + return 255; + break; + } + } + + if (args.xid==VC_NOCTX) + WRITE_MSG(2, "No xid specified; try '--help' for more information\n"); + else if (!args.space && !args.inodes) + WRITE_MSG(2, "Must specify --space or --inodes; try '--help' for more information\n"); + else if (optind==argc) + WRITE_MSG(2, "No directory specified; try '--help' for more information\n"); + else { + int i; + size_t len; + struct Result result; + struct TraversalParams params = { + .args = &args, + .result = &result + }; + + for (i = optind; i < argc; i++) { + uint_least64_t size; + char buf[sizeof(size)*3 + 3]; + char const * delim = ""; + + result.blocks = 0; + result.inodes = 0; + + hash_init(); + visitDirStart(argv[i], ¶ms); + hash_free(); + + if (!args.script) { + WRITE_STR(1, argv[i]); + WRITE_MSG(1, " "); + } + + if (args.space) { + len = utilvserver_fmt_uint64(buf, result.blocks*512 / args.blocksize); + if (*delim) WRITE_STR(1, delim); + Vwrite(1, buf, len); + delim = " "; + } + if (args.inodes) { + len = utilvserver_fmt_uint64(buf, result.inodes); + if (*delim) WRITE_STR(1, delim); + Vwrite(1, buf, len); + delim = " "; + } + WRITE_MSG(1, "\n"); + } + return EXIT_SUCCESS; + } + + return EXIT_FAILURE; +} diff --git a/src/vhashify-init.hc b/src/vhashify-init.hc index e774c35..2e43779 100644 --- a/src/vhashify-init.hc +++ b/src/vhashify-init.hc @@ -1,4 +1,4 @@ -// $Id: vhashify-init.hc,v 1.3 2005/03/23 02:10:23 ensc Exp $ --*- c -*-- +// $Id: vhashify-init.hc 1967 2005-03-23 02:10:23Z ensc $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/vhashify.c b/src/vhashify.c index 2950f97..f7b83bd 100644 --- a/src/vhashify.c +++ b/src/vhashify.c @@ -1,4 +1,4 @@ -// $Id: vhashify.c,v 1.6 2005/03/24 12:46:59 ensc Exp $ --*- c -*-- +// $Id: vhashify.c 2475 2007-01-27 09:38:56Z dhozac $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -20,6 +20,8 @@ # include <config.h> #endif +#define UTIL_VSERVER_UNIFY_MTIME_OPTIONAL + #include "vhashify.h" #include "util.h" @@ -70,6 +72,7 @@ #define CMD_SLEDGE 0x1002 #define CMD_MANUALLY 0x1003 #define CMD_REFRESH 0x1004 +#define CMD_NOMTIME 0x1005 struct option const CMDLINE_OPTIONS[] = { @@ -80,6 +83,7 @@ CMDLINE_OPTIONS[] = { { "sledgehammer", no_argument, 0, CMD_SLEDGE }, { "manually", no_argument, 0, CMD_MANUALLY }, { "refresh", no_argument, 0, CMD_REFRESH }, + { "ignore-mtime", no_argument, 0, CMD_NOMTIME }, { "dry-run", no_argument, 0, 'n' }, { "verbose", no_argument, 0, 'v' }, { 0,0,0,0 } @@ -269,6 +273,7 @@ convertDigest(HashPath d_path) return true; } +#ifndef ENSC_TESTSUITE static bool addStatHash(hashFunctionContext *h_ctx, struct stat const * const st) { @@ -288,12 +293,23 @@ addStatHash(hashFunctionContext *h_ctx, struct stat const * const st) SET_ATTR(gid), SET_ATTR(rdev), SET_ATTR(size), - SET_ATTR(mtime) + .mtime = (global_args->ignore_mtime ? 0 : st->st_mtime), }; +#undef SET_ATTR +#undef DECL_ATTR + + return hashFunctionContextUpdate(h_ctx, (void *)&tmp, sizeof tmp)!=-1; } - +#else +static bool +addStatHash(hashFunctionContext UNUSED *h_ctx, struct stat const UNUSED * const st) +{ + return true; +} +#endif + static bool calculateHashFromFD(int fd, HashPath d_path, struct stat const * const st) { @@ -676,6 +692,7 @@ int main(int argc, char *argv[]) .insecure = 0, .dry_run = false, .do_refresh = false, + .ignore_mtime = false, }; Vector_init(&global_info.hash_dirs, sizeof(struct HashDirInfo)); @@ -694,12 +711,13 @@ int main(int argc, char *argv[]) case CMD_INSECURE : args.insecure = 1; break; case CMD_SLEDGE : args.insecure = 2; break; case CMD_REFRESH : args.do_refresh = true; break; + case CMD_NOMTIME : args.ignore_mtime = true; break; case 'n' : args.dry_run = true; break; case 'v' : ++args.verbosity; break; default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } @@ -740,4 +758,6 @@ int main(int argc, char *argv[]) freeHashList(&global_info.hash_dirs); hashFunctionContextFree(&global_info.hash_context); #endif + + return EXIT_SUCCESS; } diff --git a/src/vhashify.h b/src/vhashify.h index c32f533..55e7fd8 100644 --- a/src/vhashify.h +++ b/src/vhashify.h @@ -1,4 +1,4 @@ -// $Id: vhashify.h,v 1.2 2005/03/18 00:25:37 ensc Exp $ --*- c -*-- +// $Id: vhashify.h 2475 2007-01-27 09:38:56Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -32,6 +32,7 @@ struct Arguments { char const * hash_dir; bool dry_run; bool do_refresh; + bool ignore_mtime; }; struct HashDirInfo { diff --git a/src/vkill.c b/src/vkill.c index 02f386a..57077fa 100644 --- a/src/vkill.c +++ b/src/vkill.c @@ -1,4 +1,4 @@ -// $Id: vkill.c,v 1.8 2004/08/19 14:30:50 ensc Exp $ --*- c -*-- +// $Id: vkill.c 2491 2007-02-05 20:59:03Z dhozac $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -21,9 +21,10 @@ #endif #include "vserver.h" -#include "linuxvirtual.h" #include "util.h" +#include "lib/virtual.h" + #include <getopt.h> #include <signal.h> #include <stdlib.h> @@ -151,9 +152,21 @@ kill_wrapper(xid_t xid, char const *pid, int sig) } #else // VC_ENABLE_API_LEGACY inline static int -kill_wrapper(xid_t xid, char const *pid, int sig) +kill_wrapper(xid_t xid, char const *pid_s, int sig) { - if (vc_ctx_kill(xid,atoi(pid),sig)==-1) { + pid_t pid; + long tmp; + + if (!isNumber(pid_s, &tmp, true)) { + WRITE_MSG(2, "vkill: '"); + WRITE_STR(2, pid_s); + WRITE_MSG(2, "' is not a number\n"); + } + pid = (pid_t) tmp; + + if (xid==VC_NOCTX) + xid = vc_get_task_xid(pid); + if (vc_ctx_kill(xid,pid,sig)==-1) { perror("vkill: vc_ctx_kill()"); return 1; } @@ -182,7 +195,7 @@ int main(int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } diff --git a/src/vlimit.c b/src/vlimit.c index 158e166..b2d128e 100644 --- a/src/vlimit.c +++ b/src/vlimit.c @@ -1,4 +1,4 @@ -// $Id: vlimit.c,v 1.20 2005/03/24 12:44:17 ensc Exp $ +// $Id: vlimit.c 2403 2006-11-24 23:06:08Z dhozac $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -59,10 +59,16 @@ int wrapper_exit_code = 255; +#ifndef RLIMIT_MSGQUEUE +# define RLIMIT_MSGQUEUE 12 +#endif + #define NUMLIM(X) \ { #X, required_argument, 0, 2048|X } #define OPT_RESLIM(RES,V) \ { #RES, required_argument, 0, 2048|RLIMIT_##V } +#define OPT_VLIMIT(RES,V) \ + { #RES, required_argument, 0, 2048|VC_VLIMIT_##V } static struct option const CMDLINE_OPTIONS[] = { @@ -80,25 +86,36 @@ CMDLINE_OPTIONS[] = { NUMLIM(20), NUMLIM(21), NUMLIM(22), NUMLIM(23), NUMLIM(24), NUMLIM(25), NUMLIM(26), NUMLIM(27), NUMLIM(28), NUMLIM(29), NUMLIM(30), NUMLIM(31), - OPT_RESLIM(cpu, CPU), - OPT_RESLIM(fsize, FSIZE), - OPT_RESLIM(data, DATA), - OPT_RESLIM(stack, STACK), - OPT_RESLIM(core, CORE), - OPT_RESLIM(rss, RSS), - OPT_RESLIM(nproc, NPROC), - OPT_RESLIM(nofile, NOFILE), - OPT_RESLIM(memlock, MEMLOCK), - OPT_RESLIM(as, AS), - OPT_RESLIM(locks, LOCKS), + OPT_RESLIM(cpu, CPU), + OPT_RESLIM(fsize, FSIZE), + OPT_RESLIM(data, DATA), + OPT_RESLIM(stack, STACK), + OPT_RESLIM(core, CORE), + OPT_RESLIM(rss, RSS), + OPT_RESLIM(nproc, NPROC), + OPT_RESLIM(nofile, NOFILE), + OPT_RESLIM(memlock, MEMLOCK), + OPT_RESLIM(as, AS), + OPT_RESLIM(locks, LOCKS), + OPT_RESLIM(msgqueue, MSGQUEUE), + OPT_VLIMIT(nsock, NSOCK), + OPT_VLIMIT(openfd, OPENFD), + OPT_VLIMIT(anon, ANON), + OPT_VLIMIT(shmem, SHMEM), + OPT_VLIMIT(semary, SEMARY), + OPT_VLIMIT(nsems, NSEMS), + OPT_VLIMIT(dentry, DENTRY), { 0,0,0,0 } }; #define REV_RESLIM(X) [RLIMIT_##X] = #X +#define REV_VLIMIT(X) [VC_VLIMIT_##X] = #X static char const * const LIMIT_STR[] = { - REV_RESLIM(CPU), REV_RESLIM(FSIZE), REV_RESLIM(DATA), REV_RESLIM(STACK), - REV_RESLIM(CORE), REV_RESLIM(RSS), REV_RESLIM(NPROC), REV_RESLIM(NOFILE), - REV_RESLIM(MEMLOCK), REV_RESLIM(AS), REV_RESLIM(LOCKS) + REV_RESLIM(CPU), REV_RESLIM(FSIZE), REV_RESLIM(DATA), REV_RESLIM(STACK), + REV_RESLIM(CORE), REV_RESLIM(RSS), REV_RESLIM(NPROC), REV_RESLIM(NOFILE), + REV_RESLIM(MEMLOCK), REV_RESLIM(AS), REV_RESLIM(LOCKS), REV_RESLIM(MSGQUEUE), + REV_VLIMIT(NSOCK), REV_VLIMIT(OPENFD), REV_VLIMIT(ANON), REV_VLIMIT(SHMEM), + REV_VLIMIT(SEMARY), REV_VLIMIT(NSEMS), REV_VLIMIT(DENTRY), }; static void @@ -130,7 +147,8 @@ showHelp(int fd, char const *cmd, int res) " --<resource>|<nr> <value>\n" " ... set specified (MSH) limit for <resource> to <value>\n\n" "Valid values for resource are cpu, fsize, data, stack, core, rss, nproc,\n" - "nofile, memlock, as and locks.\n\n" + "nofile, memlock, as, locks, msgqueue, nsock, openfd, anon, shmem, semary,\n" + "nsems, and dentry.\n\n" "Please report bugs to " PACKAGE_BUGREPORT "\n"); exit(res); } @@ -163,7 +181,7 @@ appendLimit(char *ptr, bool do_it, vc_limit_t lim) ptr += 2; if (do_it) { if (lim==VC_LIM_INFINITY) { - strcpy(ptr, "inf"); + memcpy(ptr, "inf", 3); ptr += 3; } else { @@ -198,7 +216,7 @@ showAll(int ctx) if (((mask.min|mask.soft|mask.hard) & bitmask)==0) continue; if (vc_get_rlimit(ctx, i, &limit)==-1) { perror("vc_get_rlimit()"); - //continue; + continue; } memset(buf, ' ', sizeof buf); @@ -388,7 +406,7 @@ int main (int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); exit(wrapper_exit_code) ; break; } diff --git a/src/vlogin.c b/src/vlogin.c new file mode 100644 index 0000000..ca75719 --- /dev/null +++ b/src/vlogin.c @@ -0,0 +1,299 @@ +// $Id: vlogin.c 2525 2007-04-08 00:40:16Z dhozac $ + +// Copyright (C) 2006 Benedikt Böhm <hollow@gentoo.org> +// Based on vserver-utils' vlogin program. +// +// 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; version 2 of the License. +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include "util.h" +#include <lib/vserver.h> +#include <lib/fmt.h> + +#include <stdlib.h> +#include <getopt.h> +#include <stdint.h> +#include <string.h> +#include <errno.h> +#include <sys/stat.h> +#include <sys/ioctl.h> +#include <sys/wait.h> +#include <sys/socket.h> +#include <termios.h> +#include <signal.h> +#include <pty.h> +#include <fcntl.h> + +#define ENSC_WRAPPERS_PREFIX "vlogin: " +#define ENSC_WRAPPERS_IOCTL 1 +#define ENSC_WRAPPERS_UNISTD 1 +#define ENSC_WRAPPERS_SOCKET 1 +#define ENSC_WRAPPERS_IO 1 +#define ENSC_WRAPPERS_TERMIOS 1 +#define ENSC_WRAPPERS_FCNTL 1 +#include <wrappers.h> + +struct terminal { + int fd; /* terminal file descriptor */ + struct termios term; /* terminal settings */ + struct winsize ws; /* terminal size */ + pid_t pid; /* terminal process id */ + struct termios termo; /* original terminal settings */ + enum { TS_RESET, TS_RAW } state; /* terminal state */ +}; + +static struct terminal t; +extern int wrapper_exit_code; + +/* set terminal to raw mode */ +static void +terminal_raw(void) +{ + struct termios buf; + + /* save original terminal settings */ + Etcgetattr(STDIN_FILENO, &t.termo); + + buf = t.termo; + + /* convert terminal settings to raw mode */ + cfmakeraw(&buf); + + /* apply raw terminal settings */ + Etcsetattr(STDIN_FILENO, TCSAFLUSH, &buf); + + t.state = TS_RAW; +} + +/* reset terminal to original state */ +static void +terminal_reset(void) +{ + if (t.state != TS_RAW) + return; + + Etcsetattr(STDIN_FILENO, TCSAFLUSH, &t.termo); + + t.state = TS_RESET; +} + +/* send signal to terminal */ +static void +terminal_kill(int sig) +{ + pid_t pgrp = -1; + + /* try to get process group leader */ + if (ioctl(t.fd, TIOCGPGRP, &pgrp) >= 0 && + pgrp != -1 && + kill(-pgrp, sig) != -1) + return; + + /* fallback using terminal pid */ + kill(-t.pid, sig); +} + +/* redraw the terminal screen */ +static void +terminal_redraw(void) +{ + /* get winsize from stdin */ + if (ioctl(STDIN_FILENO, TIOCGWINSZ, &t.ws) == -1) + return; + + /* set winsize in terminal */ + ioctl(t.fd, TIOCSWINSZ, &t.ws); + + /* set winsize change signal to terminal */ + terminal_kill(SIGWINCH); +} + +/* copy terminal activities */ +static ssize_t +terminal_copy(int src, int dst) +{ + char buf[64]; + ssize_t len; + + /* read terminal activity */ + len = read(src, buf, sizeof(buf)); + if (len == -1 && errno != EINTR) { + perror("read()"); + terminal_kill(SIGTERM); + exit(1); + } else if (len == -1) + return -1; + + /* write activity to user */ + EwriteAll(dst, buf, len); + + return len; +} + +/* shuffle all output, and reset the terminal */ +static void +terminal_end(void) +{ + char buf[64]; + ssize_t len; + long options; + + options = Efcntl(t.fd, F_GETFL, 0) | O_NONBLOCK; + Efcntl(t.fd, F_SETFL, options); + for (;;) { + len = read(t.fd, buf, sizeof(buf)); + if (len == 0 || len == -1) + break; + EwriteAll(STDOUT_FILENO, buf, len); + } + + /* in case atexit hasn't been setup yet */ + terminal_reset(); +} + +/* catch signals */ +static void +signal_handler(int sig) +{ + int status; + + switch(sig) { + /* catch interrupt */ + case SIGINT: + terminal_kill(sig); + break; + + /* terminal died */ + case SIGCHLD: + terminal_end(); + wait(&status); + exit(WEXITSTATUS(status)); + break; + + /* window size has changed */ + case SIGWINCH: + terminal_redraw(); + break; + + default: + exit(0); + } + +} + +void do_vlogin(int argc, char *argv[], int ind) +{ + int slave; + pid_t pid; + int n, i; + fd_set rfds; + + if (!isatty(0) || !isatty(1)) { + execvp(argv[ind], argv+ind); + return; + } + + /* set terminal to raw mode */ + terminal_raw(); + + /* reset terminal to its original mode */ + atexit(terminal_reset); + + /* fork new pseudo terminal */ + if (openpty(&t.fd, &slave, NULL, NULL, NULL) == -1) { + perror(ENSC_WRAPPERS_PREFIX "openpty()"); + exit(EXIT_FAILURE); + } + + /* setup SIGCHLD here, so we're sure to get the signal */ + signal(SIGCHLD, signal_handler); + + pid = Efork(); + + if (pid == 0) { + /* we don't need the master side of the terminal */ + close(t.fd); + + /* login_tty() stupid dietlibc doesn't have it */ + Esetsid(); + + Eioctl(slave, TIOCSCTTY, NULL); + + Edup2(slave, 0); + Edup2(slave, 1); + Edup2(slave, 2); + + if (slave > 2) + close(slave); + + Eexecvp(argv[ind], argv+ind); + } + + /* setup SIGINT and SIGWINCH here, as they can cause loops in the child */ + signal(SIGWINCH, signal_handler); + signal(SIGINT, signal_handler); + + /* save terminals pid */ + t.pid = pid; + + /* set process title for ps */ + n = strlen(argv[0]); + + for (i = 0; i < argc; i++) + memset(argv[i], '\0', strlen(argv[i])); + + strncpy(argv[0], "login", n); + + /* we want a redraw */ + terminal_redraw(); + + /* main loop */ + for (;;) { + /* init file descriptors for select */ + FD_ZERO(&rfds); + FD_SET(STDIN_FILENO, &rfds); + FD_SET(t.fd, &rfds); + n = t.fd; + + /* wait for something to happen */ + while (select(n + 1, &rfds, NULL, NULL, NULL) == -1) { + if (errno == EINTR || errno == EAGAIN) + continue; + perror(ENSC_WRAPPERS_PREFIX "select()"); + exit(wrapper_exit_code); + } + + if (FD_ISSET(STDIN_FILENO, &rfds)) { + /* EOF */ + if (terminal_copy(STDIN_FILENO, t.fd) == 0) { + terminal_kill(SIGHUP); + exit(0); + } + } + + if (FD_ISSET(t.fd, &rfds)) { + /* EOF */ + if (terminal_copy(t.fd, STDOUT_FILENO) == 0) { + terminal_kill(SIGHUP); + exit(0); + } + } + } + + /* never get here, signal handler exits */ +} diff --git a/src/vnamespace.c b/src/vnamespace.c index 459cd0f..1536836 100644 --- a/src/vnamespace.c +++ b/src/vnamespace.c @@ -1,4 +1,4 @@ -// $Id: vnamespace.c,v 1.5 2004/08/19 14:31:24 ensc Exp $ --*- c -*-- +// $Id: vnamespace.c 2415 2006-12-08 13:24:49Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -112,18 +112,18 @@ newNamespace(char const *cmd) } static void -enterNamespace(xid_t xid) +enterNamespace(xid_t xid, uint_least64_t mask) { - if (vc_enter_namespace(xid)==-1) { + if (vc_enter_namespace(xid, mask)==-1) { perror("vnamespace: vc_enter_namespace()"); exit(255); } } static void -setNamespace() +setNamespace(xid_t xid, uint_least64_t mask) { - if (vc_set_namespace()==-1) { + if (vc_set_namespace(xid, mask)==-1) { perror("vnamespace: vc_set_namespace()"); exit(255); } @@ -165,7 +165,7 @@ int main(int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return 255; break; } @@ -182,9 +182,9 @@ int main(int argc, char *argv[]) WRITE_MSG(2, "No command specified; try '--help' for more information\n"); else { if (do_new) newNamespace(argv[optind]); - else if (do_set) setNamespace(); + else if (do_set) setNamespace(VC_SAMECTX, CLONE_NEWNS|CLONE_FS); else if (do_cleanup) cleanupNamespace(); - else if (do_enter) enterNamespace(xid); + else if (do_enter) enterNamespace(xid, CLONE_NEWNS|CLONE_FS); if (optind<argc) EexecvpD(argv[optind], argv+optind); diff --git a/src/vps.c b/src/vps.c index 4aa7fdf..08be3ba 100644 --- a/src/vps.c +++ b/src/vps.c @@ -1,4 +1,4 @@ -// $Id: vps.c,v 1.13 2005/03/24 12:44:17 ensc Exp $ --*- c -*-- +// $Id: vps.c 2396 2006-11-23 23:56:02Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -244,7 +244,7 @@ int main(int argc, char *argv[]) WRITE_MSG(2, "WARNING: can not access /proc/uptime. Usually, this is caused by\n" " procfs-security. Please read the FAQ for more details\n" - " http://www.linux-vserver.org/index.php?page=Linux-Vserver+FAQ\n"); + " http://linux-vserver.org/Proc-Security\n"); Epipe(p); pid = Efork(); diff --git a/src/vreboot.c b/src/vreboot.c index 0384eb6..2cb6dde 100644 --- a/src/vreboot.c +++ b/src/vreboot.c @@ -1,4 +1,4 @@ -// $Id: vreboot.c,v 1.2 2003/09/30 20:16:53 ensc Exp $ +// $Id: vreboot.c 19 2003-09-30 20:16:53Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on vreboot.cc by Jacques Gelinas diff --git a/src/vrsetup.c b/src/vrsetup.c index 5408112..00339e0 100644 --- a/src/vrsetup.c +++ b/src/vrsetup.c @@ -1,4 +1,4 @@ -// $Id: vrsetup.c,v 1.4 2004/02/27 04:42:10 ensc Exp $ --*- c -*-- +// $Id: vrsetup.c 2403 2006-11-24 23:06:08Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -97,7 +97,7 @@ int main(int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } diff --git a/src/vsched.c b/src/vsched.c index 6f93a61..e3a6db5 100644 --- a/src/vsched.c +++ b/src/vsched.c @@ -1,6 +1,7 @@ -// $Id: vsched.c,v 1.6 2004/12/21 07:19:20 ensc Exp $ --*- c -*-- +// $Id: vsched.c 2510 2007-03-07 20:33:56Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> +// Copyright (C) 2006 Daniel Hokka Zakrisson <daniel@hozac.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 @@ -27,10 +28,17 @@ #include <unistd.h> #include <getopt.h> #include <libgen.h> +#include <dirent.h> +#include <fcntl.h> +#include <sys/stat.h> +#include <stddef.h> #define ENSC_WRAPPERS_PREFIX "vsched: " #define ENSC_WRAPPERS_VSERVER 1 #define ENSC_WRAPPERS_UNISTD 1 +#define ENSC_WRAPPERS_FCNTL 1 +#define ENSC_WRAPPERS_DIRENT 1 +#define ENSC_WRAPPERS_STAT 1 #include <wrappers.h> #define CMD_HELP 0x1000 @@ -43,6 +51,14 @@ #define CMD_TOK_MAX 0x4005 #define CMD_CPU_MASK 0x4006 #define CMD_PRIO_BIAS 0x4007 +#define CMD_FRATE2 0x4008 +#define CMD_INTERVAL2 0x4009 +#define CMD_CPUID 0x400a +#define CMD_BUCKETID 0x400b +#define CMD_FORCE 0x400c +#define CMD_IDLE_TIME 0x400d +#define CMD_DIR 0x400e +#define CMD_MISSING 0x400f int wrapper_exit_code = 255; @@ -64,9 +80,39 @@ CMDLINE_OPTIONS[] = { { "priority_bias", required_argument, 0, CMD_PRIO_BIAS }, { "priority-bias", required_argument, 0, CMD_PRIO_BIAS }, { "cpu_mask", required_argument, 0, CMD_CPU_MASK }, + { "fill-rate2", required_argument, 0, CMD_FRATE2 }, + { "interval2", required_argument, 0, CMD_INTERVAL2 }, + { "cpu-id", required_argument, 0, CMD_CPUID }, + { "bucket-id", required_argument, 0, CMD_BUCKETID }, + { "force", no_argument, 0, CMD_FORCE }, + { "idle-time", no_argument, 0, CMD_IDLE_TIME }, + { "dir", required_argument, 0, CMD_DIR }, + { "missingok", no_argument, 0, CMD_MISSING }, {0,0,0,0} }; +struct sched_opt { + const char * const name; + uint_least32_t mask; + size_t offset; +}; +#define FOPT(NAME,MASK,FIELD) { #NAME, MASK, offsetof(struct vc_set_sched, FIELD) } +static struct sched_opt FILE_OPTIONS[] = { + FOPT(fill-rate, VC_VXSM_FILL_RATE, fill_rate), + FOPT(interval, VC_VXSM_INTERVAL, interval), + FOPT(tokens, VC_VXSM_TOKENS, tokens), + FOPT(tokens-min, VC_VXSM_TOKENS_MIN, tokens_min), + FOPT(tokens-max, VC_VXSM_TOKENS_MAX, tokens_max), + FOPT(prio-bias, VC_VXSM_PRIO_BIAS, priority_bias), + FOPT(priority-bias, VC_VXSM_PRIO_BIAS, priority_bias), + FOPT(fill-rate2, VC_VXSM_FILL_RATE2|VC_VXSM_IDLE_TIME, fill_rate2), + FOPT(interval2, VC_VXSM_INTERVAL2|VC_VXSM_IDLE_TIME, interval2), + FOPT(cpu-id, VC_VXSM_CPU_ID, cpu_id), + FOPT(bucket-id, VC_VXSM_BUCKET_ID, bucket_id), + FOPT(idle-time, VC_VXSM_IDLE_TIME, set_mask), + {0,0,0} +}; + static void showHelp(int fd, char const *cmd, int res) { @@ -75,9 +121,25 @@ showHelp(int fd, char const *cmd, int res) WRITE_MSG(fd, "Usage:\n "); WRITE_STR(fd, cmd); WRITE_MSG(fd, - " [--xid <xid>] [--fill-rate <rate>] [--interval <interval>] [--tokens <tokens>] [--tokens-min <tokens>] [--tokens-max <tokens>] [--prio-bias <bias>] [--] [<command> <args>*]\n" + " [--xid <xid>] <sched options>* [--dir <dir>] [--] [<command> <args>*]\n" "\n" - "Please report bugs to " PACKAGE_BUGREPORT "\n"); + "Options:\n" + " --fill-rate <rate>\n" + " --interval <interval>\n" + " --tokens <tokens>\n" + " --tokens-min <tokens>\n" + " --tokens-max <tokens>\n" + " --prio-bias <bias>\n" + " --fill-rate2 <rate>\n" + " --interval2 <interval>\n" + " --cpu-id <CPU id>\n" + " --bucket-id <bucket id>\n" + " --idle-time ... set the idle time flag; this is required for\n" + " all updates to the scheduler to keep it enabled\n" + " --force ... force update of all per-CPU schedulers now\n" + " --dir <dir> ... read settings from <dir>\n" + " --missingok ... do not fail when <dir> does not exist\n" + "\nPlease report bugs to " PACKAGE_BUGREPORT "\n"); exit(res); } @@ -89,20 +151,116 @@ showVersion() "vsched " VERSION " -- modifies scheduling parameters\n" "This program is part of " PACKAGE_STRING "\n\n" "Copyright (C) 2003,2004 Enrico Scholz\n" + "Copyright (C) 2006 Daniel Hokka Zakrisson\n" VERSION_COPYRIGHT_DISCLAIMER); exit(0); } +static void do_dir_entry(struct vc_set_sched *sched, const char *name) +{ + struct sched_opt *opt; + + for (opt = FILE_OPTIONS; opt->name != 0; opt++) { + if (strcmp(name, opt->name) == 0) + break; + } + if (opt->name == 0) + return; + + if (opt->offset != offsetof(struct vc_set_sched, set_mask)) { + int fd; + char buf[128], *newline; + signed long val; + ssize_t len; + + fd = Eopen(name, O_RDONLY, 0); + len = Eread(fd, buf, sizeof(buf)-1); + Eclose(fd); + buf[len] = '\0'; + if ((newline=strchr(buf, '\n')) != NULL) + *newline = '\0'; + + if (!isNumber(buf, &val, true)) { + WRITE_MSG(2, ENSC_WRAPPERS_PREFIX); + WRITE_STR(2, name); + WRITE_MSG(2, ": is not a number\n"); + exit(1); + } + + *(int_least32_t *)(((char *)sched)+opt->offset) = (int_least32_t) val; + } + + sched->set_mask |= opt->mask; +} + +static void do_dir(xid_t xid, struct vc_set_sched *sched, const char *dir, int missing_ok, int per_cpu) +{ + DIR *dp; + struct dirent *de; + int cur_fd = Eopen(".", O_RDONLY, 0); + struct stat st; + + if (chdir(dir)!=-1) { + dp = Eopendir("."); + while ((de = Ereaddir(dp)) != NULL) { + if (de->d_name[0] == '.' && (de->d_name[1] == '\0' || (de->d_name[1] == '.' && de->d_name[2] == '\0'))) + continue; + Estat(de->d_name, &st); + if (S_ISDIR(st.st_mode)) + continue; + do_dir_entry(sched, de->d_name); + } + + /* set the values now */ + if (vc_set_sched(xid, sched) == -1) { + perror(ENSC_WRAPPERS_PREFIX "vc_set_sched()"); + exit(1); + } + + if (!per_cpu) { + struct vc_set_sched per_cpu_sched; + + rewinddir(dp); + while ((de = Ereaddir(dp)) != NULL) { + if (de->d_name[0] == '.' && (de->d_name[1] == '\0' || (de->d_name[1] == '.' && de->d_name[2] == '\0'))) + continue; + Estat(de->d_name, &st); + if (S_ISDIR(st.st_mode)) { + per_cpu_sched.set_mask = sched->set_mask & (VC_VXSM_IDLE_TIME|VC_VXSM_FORCE); + do_dir(xid, &per_cpu_sched, de->d_name, 0, 1); + } + } + } + + Eclosedir(dp); + } + else if (!missing_ok) { + perror(ENSC_WRAPPERS_PREFIX "chdir()"); + exit(wrapper_exit_code); + } + + Efchdir(cur_fd); +} + #define SETVAL(ATTR,MASK) \ - sched.ATTR = atoi(optarg); \ - sched.set_mask |= MASK; + if (!isNumber(optarg, &tmp, false)) { \ + WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "non-numeric value specified for '--" #ATTR "'\n"); \ + exit(wrapper_exit_code); \ + } \ + else { \ + sched.ATTR = tmp; \ + sched.set_mask |= MASK; \ + } int main(int argc, char *argv[]) { xid_t xid = VC_NOCTX; + signed long tmp; struct vc_set_sched sched = { .set_mask = 0 }; + const char *dir = NULL; + int missing_ok = 0; while (1) { int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0); @@ -121,10 +279,18 @@ int main(int argc, char *argv[]) case CMD_CPU_MASK : WRITE_MSG(2, "vsched: WARNING: the '--cpu_mask' parameter is deprecated and will not have any effect\n"); break; + case CMD_FRATE2 : SETVAL(fill_rate2, VC_VXSM_FILL_RATE2); break; + case CMD_INTERVAL2: SETVAL(interval2, VC_VXSM_INTERVAL2); break; + case CMD_CPUID : SETVAL(cpu_id, VC_VXSM_CPU_ID); break; + case CMD_BUCKETID : SETVAL(bucket_id, VC_VXSM_BUCKET_ID); break; + case CMD_DIR : dir = optarg; break; + case CMD_MISSING : missing_ok = 1; break; + case CMD_FORCE : sched.set_mask |= VC_VXSM_FORCE; break; + case CMD_IDLE_TIME: sched.set_mask |= VC_VXSM_IDLE_TIME; break; default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } @@ -135,7 +301,7 @@ int main(int argc, char *argv[]) exit(wrapper_exit_code); } - if (sched.set_mask==0 && optind==argc) { + if (sched.set_mask==0 && dir==NULL && optind==argc) { WRITE_MSG(2, "Neither an option nor a program was specified; try '--help' for more information\n"); exit(wrapper_exit_code); } @@ -143,9 +309,14 @@ int main(int argc, char *argv[]) if (xid==VC_NOCTX) xid = Evc_get_task_xid(0); - if (sched.set_mask!=0 && vc_set_sched(xid, &sched)==-1) { - perror("vc_set_sched()"); - exit(255); + if (dir) { + do_dir(xid, &sched, dir, missing_ok, 0); + } + else { + if (sched.set_mask!=0 && vc_set_sched(xid, &sched)==-1) { + perror("vc_set_sched()"); + exit(255); + } } if (optind<argc) diff --git a/src/vserver-info.c b/src/vserver-info.c index 9a7d6e2..819c461 100644 --- a/src/vserver-info.c +++ b/src/vserver-info.c @@ -1,4 +1,4 @@ -// $Id: vserver-info.c,v 1.23 2005/07/04 22:36:46 ensc Exp $ --*- c -*-- +// $Id: vserver-info.c 2403 2006-11-24 23:06:08Z dhozac $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -320,6 +320,13 @@ getInitPid_emulated(char *buf, xid_t xid) return 0; } +#else // VC_ENABLE_API_COMPAT +static char * +getInitPid_emulated(char UNUSED *buf, xid_t UNUSED xid) +{ + WRITE_MSG(2, "tools were built without compat API, getInitPid() not available\n"); + return 0; +} #endif // VC_ENABLE_API_COMPAT static char * @@ -492,7 +499,7 @@ execQuery(char const *vserver, VserverTag tag, int argc, char *argv[]) signed long xid; // type is a small hack, but should be ok... struct vc_vx_info info; - if (isNumber(vserver, &xid) && xid>=0) + if (isNumber(vserver, &xid, true) && xid>=0) res = (vc_get_vx_info(xid, &info)==-1) ? 0 : "1"; else res = (vc_getVserverCtx(vserver, vcCFG_AUTO, false, 0)==VC_NOCTX) ? 0 : "1"; @@ -555,7 +562,7 @@ int main(int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); exit(1); break; } diff --git a/src/vserver-stat.c b/src/vserver-stat.c index 96033ed..95b1272 100644 --- a/src/vserver-stat.c +++ b/src/vserver-stat.c @@ -1,4 +1,4 @@ -// $Id: vserver-stat.c,v 1.22 2005/07/03 12:31:25 ensc Exp $ +// $Id: vserver-stat.c 2450 2007-01-10 19:27:56Z dhozac $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on vserver-stat.cc by Guillaum Dallaire and Jacques Gelinas @@ -42,6 +42,7 @@ #include <stdbool.h> #include <getopt.h> #include <sys/param.h> +#include <sys/resource.h> #define ENSC_WRAPPERS_DIRENT 1 #define ENSC_WRAPPERS_VSERVER 1 @@ -50,6 +51,7 @@ #include "wrappers.h" #define PROC_DIR_NAME "/proc" +#define PROC_VIRT_DIR_NAME "/proc/virtual" #define CTX_DIR_NAME "/var/run/vservers/" #define CTX_NAME_MAX_LEN 50 @@ -223,6 +225,60 @@ registerXid(struct Vector *vec, struct process_info *process) res->start_time_oldest = MIN(res->start_time_oldest, process->start_time); } +static void +registerXidVstat(struct Vector *vec, unsigned long xid_l) +{ + xid_t xid = (xid_t) xid_l; + struct XidData *res; + struct vc_rlimit_stat limit[3]; + struct vc_virt_stat vstat; + struct vc_sched_info sched; + int cpu; + + res = Vector_search(vec, &xid, cmpData); + if (res!=0) { + WRITE_MSG(2, "Duplicate xid found?!\n"); + return; + } + if (vc_virt_stat(xid, &vstat) == -1) { + perror("vc_virt_stat()"); + return; + } + if (vc_rlimit_stat(xid, RLIMIT_NPROC, &limit[0]) == -1) { + perror("vc_rlimit_stat(RLIMIT_NRPOC)"); + return; + } + if (vc_rlimit_stat(xid, RLIMIT_AS, &limit[1]) == -1) { + perror("vc_rlimit_stat(RLIMIT_AS)"); + return; + } + if (vc_rlimit_stat(xid, RLIMIT_RSS, &limit[2]) == -1) { + perror("vc_rlimit_stat(RLIMIT_RSS)"); + return; + } + + res = Vector_insert(vec, &xid, cmpData); + res->xid = xid; + + res->process_count = limit[0].value; + res->VmSize_total = limit[1].value * pagesize; + res->VmRSS_total = limit[2].value; + res->start_time_oldest= getUptime() - vstat.uptime/1000000; + + res->utime_total = 0; + res->stime_total = 0; + // XXX: arbitrary CPU limit. + for (cpu = 0; cpu < 1024; cpu++) { + sched.cpu_id = cpu; + sched.bucket_id = 0; + if (vc_sched_info(xid, &sched) == -1) + break; + + res->utime_total += sched.user_msec; + res->stime_total += sched.sys_msec; + } +} + static inline uint64_t toMsec(uint64_t v) { @@ -501,6 +557,8 @@ fillName(void *obj_v, void UNUSED * a) default : { char * cfgpath; + obj->cfgstyle = vcCFG_AUTO; + if ((cfgpath = vc_getVserverByCtx(obj->xid, &obj->cfgstyle, 0))==0 || (obj->name = vc_getVserverName(cfgpath, obj->cfgstyle))==0) { obj->name = 0; @@ -541,7 +599,7 @@ int main(int argc, char **argv) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } @@ -555,36 +613,50 @@ int main(int argc, char **argv) if (hertz==0x42) initHertz(); if (pagesize==0x42) initPageSize(); - my_pid = getpid(); + Vector_init(&xid_data, sizeof(struct XidData)); - if (!switchToWatchXid(&errptr)) { - perror(errptr); - exit(1); + if (vc_isSupported(vcFEATURE_VSTAT)) { + unsigned long xid; + Echdir(PROC_VIRT_DIR_NAME); + proc_dir = Eopendir("."); + while ((dir_entry = readdir(proc_dir)) != NULL) { + if (!isNumberUnsigned(dir_entry->d_name, &xid, false)) + continue; + + registerXidVstat(&xid_data, xid); + } + closedir(proc_dir); } + else { + my_pid = getpid(); + + if (!switchToWatchXid(&errptr)) { + perror(errptr); + exit(1); + } - if (access("/proc/uptime",R_OK)==-1 && errno==ENOENT) - WRITE_MSG(2, + if (access("/proc/uptime",R_OK)==-1 && errno==ENOENT) + WRITE_MSG(2, "WARNING: can not access /proc/uptime. Usually, this is caused by\n" " procfs-security. Please read the FAQ for more details\n" - " http://www.linux-vserver.org/index.php?page=Linux-Vserver+FAQ\n"); + " http://linux-vserver.org/Proc-Security\n"); - Vector_init(&xid_data, sizeof(struct XidData)); - - Echdir(PROC_DIR_NAME); - proc_dir = Eopendir("."); - while ((dir_entry = readdir(proc_dir)) != NULL) - { + Echdir(PROC_DIR_NAME); + proc_dir = Eopendir("."); + while ((dir_entry = readdir(proc_dir)) != NULL) + { // select only process file - if (!isdigit(*dir_entry->d_name)) - continue; + if (!isdigit(*dir_entry->d_name)) + continue; - if (atoi(dir_entry->d_name) != my_pid) { - struct process_info * info = get_process_info(dir_entry->d_name); - if (info) - registerXid(&xid_data, info); + if (atoi(dir_entry->d_name) != my_pid) { + struct process_info * info = get_process_info(dir_entry->d_name); + if (info) + registerXid(&xid_data, info); + } } + closedir(proc_dir); } - closedir(proc_dir); Vector_foreach(&xid_data, fillName, 0); diff --git a/src/vserver-visitdir.hc b/src/vserver-visitdir.hc index f599f86..7792b38 100644 --- a/src/vserver-visitdir.hc +++ b/src/vserver-visitdir.hc @@ -1,4 +1,4 @@ -// $Id: vserver-visitdir.hc,v 1.1 2004/02/18 04:42:38 ensc Exp $ --*- c -*-- +// $Id: vserver-visitdir.hc 934 2004-02-18 04:42:38Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/vshelper-sync.c b/src/vshelper-sync.c index 921f12d..1eb28a7 100644 --- a/src/vshelper-sync.c +++ b/src/vshelper-sync.c @@ -1,4 +1,4 @@ -// $Id: vshelper-sync.c,v 1.5 2005/05/05 09:21:21 ensc Exp $ --*- c -*-- +// $Id: vshelper-sync.c 2087 2005-05-05 09:21:21Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/vuname.c b/src/vuname.c index 2e79c7f..a67d8b5 100644 --- a/src/vuname.c +++ b/src/vuname.c @@ -1,4 +1,4 @@ -// $Id: vuname.c,v 1.7 2005/03/24 12:44:17 ensc Exp $ --*- c -*-- +// $Id: vuname.c 2403 2006-11-24 23:06:08Z dhozac $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -242,7 +242,7 @@ int main(int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } diff --git a/src/vunify-init.hc b/src/vunify-init.hc index da55f3f..d275f0f 100644 --- a/src/vunify-init.hc +++ b/src/vunify-init.hc @@ -1,4 +1,4 @@ -// $Id: vunify-init.hc,v 1.7 2005/03/18 00:24:27 ensc Exp $ --*- c -*-- +// $Id: vunify-init.hc 1921 2005-03-18 00:24:27Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/vunify.c b/src/vunify.c index 3e97409..67fac76 100644 --- a/src/vunify.c +++ b/src/vunify.c @@ -1,4 +1,4 @@ -// $Id: vunify.c,v 1.15 2005/03/24 12:44:17 ensc Exp $ --*- c -*-- +// $Id: vunify.c 2403 2006-11-24 23:06:08Z dhozac $ --*- c -*-- // Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -384,7 +384,7 @@ int main(int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } diff --git a/src/vunify.h b/src/vunify.h index 73096ea..866c82a 100644 --- a/src/vunify.h +++ b/src/vunify.h @@ -1,4 +1,4 @@ -// $Id: vunify.h,v 1.7 2005/03/18 03:56:06 ensc Exp $ --*- c -*-- +// $Id: vunify.h 1926 2005-03-18 03:56:06Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/src/vwait.c b/src/vwait.c index 031bae4..3740420 100644 --- a/src/vwait.c +++ b/src/vwait.c @@ -1,4 +1,4 @@ -// $Id: vwait.c,v 1.1 2005/05/05 09:22:03 ensc Exp $ --*- c -*-- +// $Id: vwait.c 2403 2006-11-24 23:06:08Z dhozac $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // @@ -22,7 +22,6 @@ #include "lib/vserver.h" #include "lib/internal.h" -#include "linuxvirtual.h" #include "util.h" #include <getopt.h> @@ -30,6 +29,7 @@ #include <time.h> #include <errno.h> #include <libgen.h> +#include <assert.h> #define ENSC_WRAPPERS_PREFIX "vwait: " #define ENSC_WRAPPERS_STDLIB 1 @@ -105,11 +105,12 @@ handler(int UNUSED num) static struct StatusType doit(struct Arguments const *args) { - time_t end_time = 0; + time_t end_time = 0, now = 0; struct StatusType res; if (args->timeout>0) { end_time = time(0) + args->timeout; + siginterrupt(SIGALRM, 1); signal(SIGALRM, handler); alarm(args->timeout); } @@ -118,11 +119,14 @@ doit(struct Arguments const *args) res.rc = vc_wait_exit(args->xid); if (res.rc==-1 && errno!=EAGAIN && errno!=EINTR) { + // the error-case res.rc = errno; res.status = stERROR; perror(ENSC_WRAPPERS_PREFIX "vc_wait_exit()"); } - else if (res.rc==-1 && args->timeout>0 && time(0)>=end_time) { + else if (res.rc==-1 && args->timeout>0 && (now=time(0))>=end_time) { + // an EINTR or EAGAIN signal was delivered, a timeout was set and + // reached if (!args->do_terminate) res.status = stTIMEOUT; else { @@ -131,9 +135,21 @@ doit(struct Arguments const *args) res.status = stKILLED; } } - else if (res.rc==-1) - continue; // signal + else if (res.rc==-1) { + // an EINTR or EAGAIN signal was delivered but the timeout not set or + // not reached yet + + // we are here, when args->timeout==0 or 'now' was initialized (and + // compared with 'end_time'). So, 'now' can be used below. + assert(args->timeout<=0 || (now < end_time)); + + if (args->timeout>0) // (re)set the alarm-clock + alarm(end_time-now); + + continue; + } else + // vc_wait_exit(2) finished successfully res.status = stFINISHED; break; @@ -183,7 +199,7 @@ int main(int argc, char *argv[]) default : WRITE_MSG(2, "Try '"); WRITE_STR(2, argv[0]); - WRITE_MSG(2, " --help\" for more information.\n"); + WRITE_MSG(2, " --help' for more information.\n"); return EXIT_FAILURE; break; } diff --git a/sysv/Makefile-files b/sysv/Makefile-files index 8e86ffb..d492c4d 100644 --- a/sysv/Makefile-files +++ b/sysv/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.8 2004/03/24 01:44:43 ensc Exp $ -*- makefile -*- +## $Id: Makefile-files 2483 2007-02-01 12:56:20Z dhozac $ -*- makefile -*- ## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> ## @@ -24,7 +24,8 @@ AM_INSTALLCHECK_STD_OPTIONS_EXEMPT += \ sysv_src_SCRPTS = sysv/rebootmgr \ sysv/vprocunhide \ sysv/vservers-default \ - sysv/vservers-legacy + sysv/vservers-legacy \ + sysv/util-vserver sysv_gen_SCRPTS = sysv/v_gated \ sysv/v_httpd \ sysv/v_named \ @@ -35,7 +36,6 @@ sysv_gen_SCRPTS = sysv/v_gated \ sysv/v_xinetd sysv_conf_DTA = sysv/vservers.conf -sysconf_DATA += $(sysv_conf_DTA) EXTRA_DIST += sysv/v_gated.subst \ sysv/v_httpd.subst \ sysv/v_named.subst \ @@ -47,8 +47,11 @@ EXTRA_DIST += sysv/v_gated.subst \ $(sysv_src_SCRPTS) \ $(sysv_conf_DTA) +if HAVE_SYSV_INIT +sysconf_DATA += $(sysv_conf_DTA) initrd_SCRIPTS += $(sysv_src_SCRPTS) \ $(sysv_gen_SCRPTS) +endif CLEANFILES += $(sysv_gen_SCRPTS) diff --git a/tests/Makefile-files b/tests/Makefile-files index dda759f..3200f1e 100644 --- a/tests/Makefile-files +++ b/tests/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.9 2004/08/19 14:01:33 ensc Exp $ -*- makefile -*- +## $Id: Makefile-files 1657 2004-08-19 14:01:33Z ensc $ -*- makefile -*- ## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> ## diff --git a/tests/escaperoot.c b/tests/escaperoot.c index 4e71de3..01041ae 100644 --- a/tests/escaperoot.c +++ b/tests/escaperoot.c @@ -1,4 +1,4 @@ -// $Id: escaperoot.c,v 1.3 2004/01/13 14:56:26 ensc Exp $ +// $Id: escaperoot.c 570 2004-01-13 14:56:26Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on tests/escaperoot.cc by Jacques Gelinas diff --git a/tests/forkbomb.c b/tests/forkbomb.c index e7ba48f..842e3a5 100644 --- a/tests/forkbomb.c +++ b/tests/forkbomb.c @@ -1,4 +1,4 @@ -// $Id: forkbomb.c,v 1.2 2003/12/26 00:48:26 uid68581 Exp $ +// $Id: forkbomb.c 495 2003-12-26 00:48:26Z uid68581 $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on tests/forkbomb.cc by Jacques Gelinas diff --git a/tests/getctx.c b/tests/getctx.c index 250b752..3b30e1c 100644 --- a/tests/getctx.c +++ b/tests/getctx.c @@ -1,4 +1,4 @@ -// $Id: getctx.c,v 1.9 2004/01/21 19:01:01 ensc Exp $ --*- c++ -*-- +// $Id: getctx.c 675 2004-01-21 19:01:01Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/tests/getinitpid.c b/tests/getinitpid.c index 8133001..aa49f32 100644 --- a/tests/getinitpid.c +++ b/tests/getinitpid.c @@ -1,4 +1,4 @@ -// $Id: getinitpid.c,v 1.3 2004/01/21 19:06:14 ensc Exp $ --*- c++ -*-- +// $Id: getinitpid.c 677 2004-01-21 19:06:14Z ensc $ --*- c++ -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/tests/testipc.c b/tests/testipc.c index 1d9a28b..435c819 100644 --- a/tests/testipc.c +++ b/tests/testipc.c @@ -1,4 +1,4 @@ -// $Id: testipc.c,v 1.2 2004/01/13 14:56:26 ensc Exp $ +// $Id: testipc.c 570 2004-01-13 14:56:26Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on tests/testipc.cc by Jacques Gelinas diff --git a/tests/testlimit.c b/tests/testlimit.c index 53cf205..d577f15 100644 --- a/tests/testlimit.c +++ b/tests/testlimit.c @@ -1,4 +1,4 @@ -// $Id: testlimit.c,v 1.3 2004/01/13 14:56:26 ensc Exp $ +// $Id: testlimit.c 570 2004-01-13 14:56:26Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on tests/testlimit.cc by Jacques Gelinas diff --git a/tests/testopenf.c b/tests/testopenf.c index 37f4168..0eac9c5 100644 --- a/tests/testopenf.c +++ b/tests/testopenf.c @@ -1,4 +1,4 @@ -// $Id: testopenf.c,v 1.3 2004/01/13 14:56:26 ensc Exp $ +// $Id: testopenf.c 570 2004-01-13 14:56:26Z ensc $ // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // based on tests/testopenf.cc by Jacques Gelinas diff --git a/tests/vserver-info.c b/tests/vserver-info.c index 126284d..61e581a 100644 --- a/tests/vserver-info.c +++ b/tests/vserver-info.c @@ -1,4 +1,4 @@ -// $Id: vserver-info.c,v 1.3 2004/01/17 05:25:04 ensc Exp $ --*- c -*-- +// $Id: vserver-info.c 636 2004-01-17 05:25:04Z ensc $ --*- c -*-- // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/util-vserver.spec b/util-vserver.spec index c66d6f7..f861df7 100644 --- a/util-vserver.spec +++ b/util-vserver.spec @@ -1,23 +1,26 @@ -# $Id: util-vserver.spec.in,v 1.49 2005/07/15 19:06:58 ensc Exp $ +# $Id: util-vserver.spec.in 2482 2007-01-29 23:37:07Z dhozac $ ## This package understands the following switches: ## --without dietlibc ... disable usage of dietlibc -## --without xalan ... do not require/use the xalan xslt processor +## --with xalan ... require/use the xalan xslt processor +## --without doc ... disable doc generation +## --with legacy ... enable the legacy APIs %global confdir %_sysconfdir/vservers %global confdefaultdir %confdir/.defaults %global pkglibdir %_libdir/%name -%global __chattr /usr/bin/chattr %global chkconfig /sbin/chkconfig %global _localstatedir %_var +%global ver %( echo 0.30.213 | sed 's/-.*//' ) +%global subver %( s=`echo 0.30.213 | grep -- - | sed 's/.*-/./'`; echo ${s:-.1} ) +%global fullver 0.30.213 -%{!?release_func:%global release_func() %1%{?dist}} %define name util-vserver -%define version 0.30.208 -%define release 17%{?pldistro:.%{pldistro}}%{?date:.%{date}} +%define version 0.30.213 +%{!?release_func:%global release_func() 1%{?pldistro:.%{pldistro}}%{?date:.%{date}}} %define _without_dietlibc 1 %define _without_xalan 1 @@ -32,12 +35,13 @@ URL: http://cvs.planet-lab.org/cvs/util-vserver Summary: Linux virtual server utilities Name: util-vserver -Version: 0.30.208 -Release: %{release} +Version: %ver +Release: %release_func 0%subver License: GPL Group: System Environment/Base #URL: http://savannah.nongnu.org/projects/util-vserver/ -Source0: http://savannah.nongnu.org/download/util-vserver/stable.pkg/%version/%name-%version.tar.bz2 +Source0: http://ftp.linux-vserver.org/pub/utils/util-vserver/%name-%version.tar.bz2 +#Source1: http://ftp.linux-vserver.org/pub/utils/util-vserver/%name-%version.tar.bz2.asc BuildRoot: %_tmppath/%name-%version-%release-root Requires: init(%name) Requires: %name-core = %version-%release @@ -48,11 +52,12 @@ Obsoletes: vserver < %version BuildRequires: mount vconfig gawk iproute iptables BuildRequires: gcc-c++ wget which diffutils BuildRequires: e2fsprogs-devel beecrypt-devel -BuildRequires: doxygen tetex-latex +%{!?_without_doc:BuildRequires: doxygen tetex-latex} +Requires(post): %name-core Requires(pre): %pkglibdir Requires(postun): %pkglibdir %{!?_without_dietlibc:BuildRequires: dietlibc >= 0:0.25} -%{!?_without_xalan:BuildRequires: xalan-j} +%{?_with_xalan:BuildRequires: xalan-j} %package lib Summary: Dynamic libraries for util-vserver @@ -70,6 +75,7 @@ Requires: rpm wget binutils tar e2fsprogs Requires: %name = %version-%release Requires(pre): %confdir Requires(postun): %confdir +Requires(post): %name-core %package sysv Summary: SysV-initscripts for vserver @@ -185,7 +191,7 @@ but more readily accessible from Python code. %prep -%setup -q +%setup -q -n %name-%fullver aclocal -I m4 autoconf @@ -193,10 +199,12 @@ automake --add-missing %build %configure --with-initrddir=%_initrddir --enable-release \ - %{?_without_dietlibc:--disable-dietlibc} + %{?_without_dietlibc:--disable-dietlibc} \ + %{!?_without_legacy:--enable-apis=NOLEGACY} \ + --with-initscripts=sysv %__make %{?_smp_mflags} all -%__make %{?_smp_mflags} doc +%{!?_without_doc:%__make %{?_smp_mflags} doc} %__make -C python @@ -213,7 +221,7 @@ contrib/make-manifest %name $RPM_BUILD_ROOT contrib/manifest.dat # install python bindings %__make -C python DESTDIR="$PWD/tmp" install install -d $RPM_BUILD_ROOT/%{_datadir}/%{name} -install tmp/usr/lib/python*/site-packages/*.{py,so} $RPM_BUILD_ROOT/%{_datadir}/%{name}/ +install tmp%{_libdir}/python*/site-packages/*.{py,so} $RPM_BUILD_ROOT/%{_datadir}/%{name}/ install -D -m 755 python/bwlimit $RPM_BUILD_ROOT/%{_sbindir}/bwlimit install -D -m 755 python/disklimit $RPM_BUILD_ROOT/%{_sbindir}/disklimit @@ -230,10 +238,15 @@ rm -rf $RPM_BUILD_ROOT test -d /vservers || mkdir -m0000 /vservers test -d /vservers/.pkg || mkdir -m0755 /vservers/.pkg -f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers "$f" -f="%confdefaultdir/run.rev"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f" +f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers "$f" +f="%confdefaultdir/run.rev"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f" +f="%confdefaultdir/cachebase"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/cache/vservers "$f" -%_sbindir/setattr --barrier /vservers || : +%_sbindir/setattr --barrier /vservers /vservers/.pkg || : + + +%preun +test "$1" != 0 || rm -rf %_localstatedir/cache/vservers/* 2>/dev/null || : # add /bin/vsh to list of secure shells if [ ! -f /etc/shells ] || ! grep -q '^/bin/vsh$' /etc/shells ; then @@ -257,21 +270,24 @@ fi #%chkconfig --add vprocunhide # PlanetLab Node Manager takes care of starting and stopping VServers %chkconfig --del vservers-default +%chkconfig --del util-vserver # PlanetLab does not require /proc security %chkconfig --del vprocunhide + %preun sysv #test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || : #test "$1" != 0 || %chkconfig --del vprocunhide #test "$1" != 0 || %chkconfig --del vservers-default +#test "$1" != 0 || %chkconfig --del util-vserver %postun sysv #test "$1" = 0 || %_initrddir/vprocunhide condrestart >/dev/null || : -%triggerin build -- fedora-release +%triggerin build -- fedora-release, centos-release function copy() { base=$1 @@ -286,6 +302,16 @@ function copy() } copy fedora /usr/share/doc/fedora-release-*/RPM-GPG-* copy fedora /etc/pki/rpm-gpg/RPM-GPG-* +copy centos /usr/share/doc/centos-*/RPM-GPG-KEY-* + + +%post build +test -d /vservers/.hash || mkdir -m0700 /vservers/.hash + +f="%confdefaultdir/apps/vunify/hash"; test -e "$f"/method -o -e "$f"/00 || \ + ln -s /vservers/.hash "$f"/00 + +%_sbindir/setattr --barrier /vservers/.hash || : %preun build @@ -338,9 +364,11 @@ done %dir %confdefaultdir/apps %dir %confdefaultdir/files %dir %pkglibdir/defaults +%ghost %confdefaultdir/cachebase %ghost %confdefaultdir/vdirbase %ghost %confdefaultdir/run.rev +%dir %_localstatedir/cache/vservers %dir %_localstatedir/run/vservers %dir %_localstatedir/run/vservers.rev %dir %_localstatedir/run/vshelper @@ -374,8 +402,8 @@ done %files devel -f %name-devel.list %defattr(-,root,root,-) -%doc lib/apidoc/latex/refman.pdf -%doc lib/apidoc/html +%{!?_without_doc:%doc lib/apidoc/latex/refman.pdf} +%{!?_without_doc:%doc lib/apidoc/html} %post python @@ -447,9 +475,24 @@ fi %changelog +* Fri Dec 29 2006 Daniel Hokka Zakrisson <daniel@hozac.com> - 0.30.213-0 +- add --with legacy and --without doc switches +- add util-vserver initscript + * Fri Feb 17 2006 Steve Muir <smuir@cs.princeton.edu> - add support for setting guaranteed CPU share flag in rspec +* Sun Jan 22 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.30.210-0 +- do not require 'xalan' anymore by default +- removed 'Requires: apt'; apt-rpm is not maintained upstream anymore +- removed 'chattr' leftovers +- create the '/etc/vservers/.defaults/cachebase' symlink +- added /var/cache/vservers and the needed support +- set barrier attribute on /vservers/.pkg and /vservers/.hash +- added 'centos-release' to the list of packages in the copy-the-keys + trigger script +- create '/vservers/.hash' and add initial configuration for it + * Fri Jan 13 2006 Steve Muir <smuir@cs.princeton.edu> - fix bug in python/vserverimpl.c where attempting to adjust CPU share for a context that didn't exist would cause an error (it should be a @@ -471,6 +514,10 @@ fi * Wed Nov 2 2005 Steve Muir <smuir@cs.princeton.edu> - fix Python modules to handling scheduling parameters correctly +* Sun Oct 30 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.209-0 +- version 0.30.209 +- copy centos keys + * Fri Oct 28 2005 Steve Muir <smuir@cs.princeton.edu> - raise exception about being over disk limit after setting usage values @@ -493,7 +540,11 @@ fi * Thu Jul 21 2005 Steve Muir <smuir@cs.princeton.edu> - add bwlimit and cpulimit modules +* Sat Jul 16 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-2 +- updated URLs + * Fri Jul 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-1 +- version 0.30.208 - require the -lib subpackage by -devel - copy GPG keys from /etc/pki/rpm-gpg/ diff --git a/util-vserver.spec.in b/util-vserver.spec.in index d02399e..c072f48 100644 --- a/util-vserver.spec.in +++ b/util-vserver.spec.in @@ -1,23 +1,26 @@ -# $Id: util-vserver.spec.in,v 1.49 2005/07/15 19:06:58 ensc Exp $ +# $Id: util-vserver.spec.in 2482 2007-01-29 23:37:07Z dhozac $ ## This package understands the following switches: ## --without dietlibc ... disable usage of dietlibc -## --without xalan ... do not require/use the xalan xslt processor +## --with xalan ... require/use the xalan xslt processor +## --without doc ... disable doc generation +## --with legacy ... enable the legacy APIs %global confdir %_sysconfdir/vservers %global confdefaultdir %confdir/.defaults %global pkglibdir %_libdir/%name -%global __chattr /usr/bin/chattr %global chkconfig /sbin/chkconfig %global _localstatedir %_var +%global ver %( echo @VERSION@ | sed 's/-.*//' ) +%global subver %( s=`echo @VERSION@ | grep -- - | sed 's/.*-/./'`; echo ${s:-.1} ) +%global fullver @VERSION@ -%{!?release_func:%global release_func() %1%{?dist}} %define name @PACKAGE@ %define version @VERSION@ -%define release 16%{?pldistro:.%{pldistro}}%{?date:.%{date}} +%{!?release_func:%global release_func() 1%{?pldistro:.%{pldistro}}%{?date:.%{date}}} %define _without_dietlibc 1 %define _without_xalan 1 @@ -32,12 +35,13 @@ URL: http://cvs.planet-lab.org/cvs/util-vserver Summary: Linux virtual server utilities Name: @PACKAGE@ -Version: @VERSION@ -Release: %{release} +Version: %ver +Release: %release_func 0%subver License: GPL Group: System Environment/Base #URL: http://savannah.nongnu.org/projects/util-vserver/ -Source0: http://savannah.nongnu.org/download/util-vserver/stable.pkg/%version/%name-%version.tar.bz2 +Source0: http://ftp.linux-vserver.org/pub/utils/util-vserver/%name-%version.tar.bz2 +#Source1: http://ftp.linux-vserver.org/pub/utils/util-vserver/%name-%version.tar.bz2.asc BuildRoot: %_tmppath/%name-%version-%release-root Requires: init(%name) Requires: %name-core = %version-%release @@ -48,11 +52,12 @@ Obsoletes: vserver < %version BuildRequires: mount vconfig gawk iproute iptables BuildRequires: gcc-c++ wget which diffutils BuildRequires: e2fsprogs-devel beecrypt-devel -BuildRequires: doxygen tetex-latex +%{!?_without_doc:BuildRequires: doxygen tetex-latex} +Requires(post): %name-core Requires(pre): %pkglibdir Requires(postun): %pkglibdir %{!?_without_dietlibc:BuildRequires: dietlibc >= 0:0.25} -%{!?_without_xalan:BuildRequires: xalan-j} +%{?_with_xalan:BuildRequires: xalan-j} %package lib Summary: Dynamic libraries for util-vserver @@ -70,6 +75,7 @@ Requires: rpm wget binutils tar e2fsprogs Requires: %name = %version-%release Requires(pre): %confdir Requires(postun): %confdir +Requires(post): %name-core %package sysv Summary: SysV-initscripts for vserver @@ -185,7 +191,7 @@ but more readily accessible from Python code. %prep -%setup -q +%setup -q -n %name-%fullver aclocal -I m4 autoconf @@ -193,10 +199,12 @@ automake --add-missing %build %configure --with-initrddir=%_initrddir --enable-release \ - %{?_without_dietlibc:--disable-dietlibc} + %{?_without_dietlibc:--disable-dietlibc} \ + %{!?_without_legacy:--enable-apis=NOLEGACY} \ + --with-initscripts=sysv %__make %{?_smp_mflags} all -%__make %{?_smp_mflags} doc +%{!?_without_doc:%__make %{?_smp_mflags} doc} %__make -C python @@ -213,7 +221,7 @@ contrib/make-manifest %name $RPM_BUILD_ROOT contrib/manifest.dat # install python bindings %__make -C python DESTDIR="$PWD/tmp" install install -d $RPM_BUILD_ROOT/%{_datadir}/%{name} -install tmp/usr/lib/python*/site-packages/*.{py,so} $RPM_BUILD_ROOT/%{_datadir}/%{name}/ +install tmp%{_libdir}/python*/site-packages/*.{py,so} $RPM_BUILD_ROOT/%{_datadir}/%{name}/ install -D -m 755 python/bwlimit $RPM_BUILD_ROOT/%{_sbindir}/bwlimit install -D -m 755 python/disklimit $RPM_BUILD_ROOT/%{_sbindir}/disklimit @@ -230,10 +238,15 @@ rm -rf $RPM_BUILD_ROOT test -d /vservers || mkdir -m0000 /vservers test -d /vservers/.pkg || mkdir -m0755 /vservers/.pkg -f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers "$f" -f="%confdefaultdir/run.rev"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f" +f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers "$f" +f="%confdefaultdir/run.rev"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f" +f="%confdefaultdir/cachebase"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/cache/vservers "$f" -%_sbindir/setattr --barrier /vservers || : +%_sbindir/setattr --barrier /vservers /vservers/.pkg || : + + +%preun +test "$1" != 0 || rm -rf %_localstatedir/cache/vservers/* 2>/dev/null || : # add /bin/vsh to list of secure shells if [ ! -f /etc/shells ] || ! grep -q '^/bin/vsh$' /etc/shells ; then @@ -257,21 +270,24 @@ fi #%chkconfig --add vprocunhide # PlanetLab Node Manager takes care of starting and stopping VServers %chkconfig --del vservers-default +%chkconfig --del util-vserver # PlanetLab does not require /proc security %chkconfig --del vprocunhide + %preun sysv #test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || : #test "$1" != 0 || %chkconfig --del vprocunhide #test "$1" != 0 || %chkconfig --del vservers-default +#test "$1" != 0 || %chkconfig --del util-vserver %postun sysv #test "$1" = 0 || %_initrddir/vprocunhide condrestart >/dev/null || : -%triggerin build -- fedora-release +%triggerin build -- fedora-release, centos-release function copy() { base=$1 @@ -286,6 +302,16 @@ function copy() } copy fedora /usr/share/doc/fedora-release-*/RPM-GPG-* copy fedora /etc/pki/rpm-gpg/RPM-GPG-* +copy centos /usr/share/doc/centos-*/RPM-GPG-KEY-* + + +%post build +test -d /vservers/.hash || mkdir -m0700 /vservers/.hash + +f="%confdefaultdir/apps/vunify/hash"; test -e "$f"/method -o -e "$f"/00 || \ + ln -s /vservers/.hash "$f"/00 + +%_sbindir/setattr --barrier /vservers/.hash || : %preun build @@ -338,9 +364,11 @@ done %dir %confdefaultdir/apps %dir %confdefaultdir/files %dir %pkglibdir/defaults +%ghost %confdefaultdir/cachebase %ghost %confdefaultdir/vdirbase %ghost %confdefaultdir/run.rev +%dir %_localstatedir/cache/vservers %dir %_localstatedir/run/vservers %dir %_localstatedir/run/vservers.rev %dir %_localstatedir/run/vshelper @@ -374,8 +402,8 @@ done %files devel -f %name-devel.list %defattr(-,root,root,-) -%doc lib/apidoc/latex/refman.pdf -%doc lib/apidoc/html +%{!?_without_doc:%doc lib/apidoc/latex/refman.pdf} +%{!?_without_doc:%doc lib/apidoc/html} %post python @@ -447,9 +475,24 @@ fi %changelog +* Fri Dec 29 2006 Daniel Hokka Zakrisson <daniel@hozac.com> - 0.30.213-0 +- add --with legacy and --without doc switches +- add util-vserver initscript + * Fri Feb 17 2006 Steve Muir <smuir@cs.princeton.edu> - add support for setting guaranteed CPU share flag in rspec +* Sun Jan 22 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.30.210-0 +- do not require 'xalan' anymore by default +- removed 'Requires: apt'; apt-rpm is not maintained upstream anymore +- removed 'chattr' leftovers +- create the '/etc/vservers/.defaults/cachebase' symlink +- added /var/cache/vservers and the needed support +- set barrier attribute on /vservers/.pkg and /vservers/.hash +- added 'centos-release' to the list of packages in the copy-the-keys + trigger script +- create '/vservers/.hash' and add initial configuration for it + * Fri Jan 13 2006 Steve Muir <smuir@cs.princeton.edu> - fix bug in python/vserverimpl.c where attempting to adjust CPU share for a context that didn't exist would cause an error (it should be a @@ -471,6 +514,10 @@ fi * Wed Nov 2 2005 Steve Muir <smuir@cs.princeton.edu> - fix Python modules to handling scheduling parameters correctly +* Sun Oct 30 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.209-0 +- version 0.30.209 +- copy centos keys + * Fri Oct 28 2005 Steve Muir <smuir@cs.princeton.edu> - raise exception about being over disk limit after setting usage values @@ -493,7 +540,11 @@ fi * Thu Jul 21 2005 Steve Muir <smuir@cs.princeton.edu> - add bwlimit and cpulimit modules +* Sat Jul 16 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-2 +- updated URLs + * Fri Jul 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-1 +- version 0.30.208 - require the -lib subpackage by -devel - copy GPG keys from /etc/pki/rpm-gpg/ diff --git a/vserver-start/Makefile-files b/vserver-start/Makefile-files index 96ccfb4..4e4ce96 100644 --- a/vserver-start/Makefile-files +++ b/vserver-start/Makefile-files @@ -1,4 +1,4 @@ -## $Id: Makefile-files,v 1.7 2005/03/18 00:33:20 ensc Exp $ --*- makefile -*-- +## $Id: Makefile-files 1923 2005-03-18 00:33:20Z ensc $ --*- makefile -*-- ## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> ## diff --git a/vserver-start/configuration-init.c b/vserver-start/configuration-init.c index bf86854..633cfc2 100644 --- a/vserver-start/configuration-init.c +++ b/vserver-start/configuration-init.c @@ -1,4 +1,4 @@ -// $Id: configuration-init.c,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*-- +// $Id: configuration-init.c 1746 2004-10-19 21:11:10Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/configuration.c b/vserver-start/configuration.c index b09c31c..87c1e89 100644 --- a/vserver-start/configuration.c +++ b/vserver-start/configuration.c @@ -1,4 +1,4 @@ -// $Id: configuration.c,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*-- +// $Id: configuration.c 1746 2004-10-19 21:11:10Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/configuration.h b/vserver-start/configuration.h index 0efcc1a..f39f643 100644 --- a/vserver-start/configuration.h +++ b/vserver-start/configuration.h @@ -1,4 +1,4 @@ -// $Id: configuration.h,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*-- +// $Id: configuration.h 1746 2004-10-19 21:11:10Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/defaulttty.c b/vserver-start/defaulttty.c index 8b71080..b47a36b 100644 --- a/vserver-start/defaulttty.c +++ b/vserver-start/defaulttty.c @@ -1,4 +1,4 @@ -// $Id: defaulttty.c,v 1.2 2005/01/26 15:30:40 ensc Exp $ --*- c -*-- +// $Id: defaulttty.c 1794 2005-01-26 15:30:40Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/interface-add.c b/vserver-start/interface-add.c index f76b7b0..17e6319 100644 --- a/vserver-start/interface-add.c +++ b/vserver-start/interface-add.c @@ -1,4 +1,4 @@ -// $Id: interface-add.c,v 1.3 2005/03/19 02:07:40 ensc Exp $ --*- c -*-- +// $Id: interface-add.c 1939 2005-03-19 02:07:40Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/interface-free.hc b/vserver-start/interface-free.hc index 318fe6d..17a0b7b 100644 --- a/vserver-start/interface-free.hc +++ b/vserver-start/interface-free.hc @@ -1,4 +1,4 @@ -// $Id: interface-free.hc,v 1.1 2004/07/03 00:07:42 ensc Exp $ --*- c -*-- +// $Id: interface-free.hc 1628 2004-07-03 00:07:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/interface-init.hc b/vserver-start/interface-init.hc index b1bcd99..6fdf532 100644 --- a/vserver-start/interface-init.hc +++ b/vserver-start/interface-init.hc @@ -1,4 +1,4 @@ -// $Id: interface-init.hc,v 1.1 2004/07/03 00:07:42 ensc Exp $ --*- c -*-- +// $Id: interface-init.hc 1628 2004-07-03 00:07:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/interface-print.c b/vserver-start/interface-print.c index 30bcd24..7edd252 100644 --- a/vserver-start/interface-print.c +++ b/vserver-start/interface-print.c @@ -1,4 +1,4 @@ -// $Id: interface-print.c,v 1.2 2005/03/19 02:07:40 ensc Exp $ --*- c -*-- +// $Id: interface-print.c 1939 2005-03-19 02:07:40Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/interface-read.c b/vserver-start/interface-read.c index dc9e10f..6737c07 100644 --- a/vserver-start/interface-read.c +++ b/vserver-start/interface-read.c @@ -1,4 +1,4 @@ -// $Id: interface-read.c,v 1.3 2005/03/24 12:44:17 ensc Exp $ --*- c -*-- +// $Id: interface-read.c 1980 2005-03-24 12:44:17Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/interface-remove.c b/vserver-start/interface-remove.c index b3c63d4..284c760 100644 --- a/vserver-start/interface-remove.c +++ b/vserver-start/interface-remove.c @@ -1,4 +1,4 @@ -// $Id: interface-remove.c,v 1.2 2005/03/19 02:07:40 ensc Exp $ --*- c -*-- +// $Id: interface-remove.c 1939 2005-03-19 02:07:40Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/interface.c b/vserver-start/interface.c index 20e49f4..707d335 100644 --- a/vserver-start/interface.c +++ b/vserver-start/interface.c @@ -1,4 +1,4 @@ -// $Id: interface.c,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*-- +// $Id: interface.c 1746 2004-10-19 21:11:10Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/interface.h b/vserver-start/interface.h index 8ed1b70..e55c619 100644 --- a/vserver-start/interface.h +++ b/vserver-start/interface.h @@ -1,4 +1,4 @@ -// $Id: interface.h,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*-- +// $Id: interface.h 1746 2004-10-19 21:11:10Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/main.c b/vserver-start/main.c index ab7c0fb..ab268b3 100644 --- a/vserver-start/main.c +++ b/vserver-start/main.c @@ -1,4 +1,4 @@ -// $Id: main.c,v 1.5 2005/03/19 02:07:40 ensc Exp $ --*- c -*-- +// $Id: main.c 1939 2005-03-19 02:07:40Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/mount.c b/vserver-start/mount.c index 6f80f48..b85ae05 100644 --- a/vserver-start/mount.c +++ b/vserver-start/mount.c @@ -1,4 +1,4 @@ -// $Id: mount.c,v 1.2 2004/08/25 00:11:50 ensc Exp $ --*- c -*-- +// $Id: mount.c 1679 2004-08-25 00:11:50Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/mount.h b/vserver-start/mount.h index 2668512..0b5acc7 100644 --- a/vserver-start/mount.h +++ b/vserver-start/mount.h @@ -1,4 +1,4 @@ -// $Id: mount.h,v 1.1 2004/08/19 15:02:57 ensc Exp $ --*- c -*-- +// $Id: mount.h 1676 2004-08-19 15:02:57Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/scriptlets.c b/vserver-start/scriptlets.c index 9c0df65..7f4bfff 100644 --- a/vserver-start/scriptlets.c +++ b/vserver-start/scriptlets.c @@ -1,4 +1,4 @@ -// $Id: scriptlets.c,v 1.3 2004/10/19 21:11:10 ensc Exp $ --*- c -*-- +// $Id: scriptlets.c 1746 2004-10-19 21:11:10Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/undo.c b/vserver-start/undo.c index 25b4d9e..edfef44 100644 --- a/vserver-start/undo.c +++ b/vserver-start/undo.c @@ -1,4 +1,4 @@ -// $Id: undo.c,v 1.1 2004/08/19 15:02:57 ensc Exp $ --*- c -*-- +// $Id: undo.c 1676 2004-08-19 15:02:57Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/undo.h b/vserver-start/undo.h index 06ed88c..cb69c3d 100644 --- a/vserver-start/undo.h +++ b/vserver-start/undo.h @@ -1,4 +1,4 @@ -// $Id: undo.h,v 1.1 2004/08/19 15:02:57 ensc Exp $ --*- c -*-- +// $Id: undo.h 1676 2004-08-19 15:02:57Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/vserver-start.h b/vserver-start/vserver-start.h index 52a5fe7..0acdc2c 100644 --- a/vserver-start/vserver-start.h +++ b/vserver-start/vserver-start.h @@ -1,4 +1,4 @@ -// $Id: vserver-start.h,v 1.2 2004/10/19 21:11:10 ensc Exp $ --*- c -*-- +// $Id: vserver-start.h 1746 2004-10-19 21:11:10Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/vshelper.c b/vserver-start/vshelper.c index 4193379..a92a2f0 100644 --- a/vserver-start/vshelper.c +++ b/vserver-start/vshelper.c @@ -1,4 +1,4 @@ -// $Id: vshelper.c,v 1.2 2004/08/19 16:06:37 ensc Exp $ --*- c -*-- +// $Id: vshelper.c 1677 2004-08-19 16:06:37Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> // diff --git a/vserver-start/vshelper.h b/vserver-start/vshelper.h index 2f2a21e..8f38611 100644 --- a/vserver-start/vshelper.h +++ b/vserver-start/vshelper.h @@ -1,4 +1,4 @@ -// $Id: vshelper.h,v 1.1 2004/07/03 00:07:42 ensc Exp $ --*- c -*-- +// $Id: vshelper.h 1628 2004-07-03 00:07:42Z ensc $ --*- c -*-- // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> //