diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | src/Makefile.am | 11 | ||||
-rw-r--r-- | src/builtins.def | 87 | ||||
-rw-r--r-- | src/builtins.def.in | 93 | ||||
-rw-r--r-- | src/miscbltin.c | 6 | ||||
-rw-r--r-- | src/mkbuiltins | 22 |
7 files changed, 109 insertions, 115 deletions
diff --git a/ChangeLog b/ChangeLog index 1940a8c..90ea632 100644 --- a/ChangeLog +++ b/ChangeLog @@ -13,6 +13,7 @@ * Added missing system.h inclusion for mempcpy. * Added default implementation of strsignal. * Added default implementation of killpg. + * Disable ulimit if there is no getrlimit. 2005-10-26 Herbert Xu <herbert@gondor.apana.org.au> diff --git a/configure.ac b/configure.ac index 25877b8..f6fe894 100644 --- a/configure.ac +++ b/configure.ac @@ -23,8 +23,8 @@ dnl Checks for libraries. dnl Checks for header files. dnl Checks for library functions. -AC_CHECK_FUNCS(bsearch getpwnam killpg mempcpy sigsetmask stpcpy strchrnul \ - strsignal strtoimax strtoumax) +AC_CHECK_FUNCS(bsearch getpwnam getrlimit killpg mempcpy sigsetmask stpcpy \ + strchrnul strsignal strtoimax strtoumax) dnl Check for klibc signal. AC_CHECK_FUNC(signal) diff --git a/src/Makefile.am b/src/Makefile.am index d8acd39..0fe4db1 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,19 +35,22 @@ HELPERS = mkinit mksyntax mknodes mksignames BUILT_SOURCES = arith.h builtins.h nodes.h syntax.h token.h CLEANFILES = \ $(BUILT_SOURCES) $(patsubst %.o,%.c,$(dash_LDADD)) \ - arith.c $(HELPERS) + arith.c $(HELPERS) builtins.def man_MANS = dash.1 EXTRA_DIST = \ $(man_MANS) \ - mktokens mkbuiltins builtins.def mkinit.c \ + mktokens mkbuiltins builtins.def.in mkinit.c \ mknodes.c nodetypes nodes.c.pat mksyntax.c mksignames.c token.h: mktokens sh $^ -builtins.c builtins.h: mkbuiltins shell.h builtins.def - sh $^ . '$(CFLAGS)' +builtins.def: builtins.def.in $(top_builddir)/config.h + $(COMPILE) -E -x c -o $@ $< + +builtins.c builtins.h: mkbuiltins builtins.def + sh $^ init.c: mkinit $(dash_CFILES) ./$^ diff --git a/src/builtins.def b/src/builtins.def deleted file mode 100644 index 687a463..0000000 --- a/src/builtins.def +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/sh - -# Copyright (c) 1991, 1993 -# The Regents of the University of California. All rights reserved. -# Copyright (c) 1997-2005 -# Herbert Xu <herbert@gondor.apana.org.au>. All rights reserved. -# -# This code is derived from software contributed to Berkeley by -# Kenneth Almquist. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of the University nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# @(#)builtins.def 8.4 (Berkeley) 5/4/95 - -# -# This file lists all the builtin commands. The first column is the name -# of a C routine. -# The -j flag specifies that this command is to be excluded from systems -# without job control. -# The -h flag specifies that this command is to be excluded from systems -# based on the SMALL compile-time symbol. -# The -a flag specifies that this is a posix 'assignment builtin' command. -# The -s flag specifies that this is a posix 'special builtin' command. -# The -u flag specifies that this is a posix 'standard utility'. -# The rest of the line specifies the command name or names used to run -# the command. - -bgcmd -j -u bg -breakcmd -s break -s continue -cdcmd -u cd chdir -commandcmd -u command -dotcmd -s . -echocmd echo -evalcmd -s eval -execcmd -s exec -exitcmd -s exit -exportcmd -as export -as readonly -falsecmd -u false -histcmd -h -u fc -fgcmd -j -u fg -getoptscmd -u getopts -hashcmd hash -#jobidcmd jobid -jobscmd -u jobs -localcmd -a local -printfcmd printf -pwdcmd pwd -readcmd -u read -returncmd -s return -setcmd -s set -shiftcmd -s shift -timescmd -s times -trapcmd -s trap -truecmd -s : -u true -typecmd type -umaskcmd -u umask -unaliascmd -u unalias -unsetcmd -s unset -waitcmd -u wait -aliascmd -au alias -ulimitcmd ulimit -testcmd test [ -killcmd -u kill # mandated by posix for 'kill %job' -#newgrp -u newgrp # optional command in posix - -#exprcmd expr diff --git a/src/builtins.def.in b/src/builtins.def.in new file mode 100644 index 0000000..362ff3f --- /dev/null +++ b/src/builtins.def.in @@ -0,0 +1,93 @@ +/* + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * Copyright (c) 1997-2005 + * Herbert Xu <herbert@gondor.apana.org.au>. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Kenneth Almquist. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)builtins.def 8.4 (Berkeley) 5/4/95 + */ + +/* + * This file lists all the builtin commands. The first column is the name + * of a C routine. + * The -a flag specifies that this is a posix 'assignment builtin' command. + * The -s flag specifies that this is a posix 'special builtin' command. + * The -u flag specifies that this is a posix 'standard utility'. + * The rest of the line specifies the command name or names used to run + * the command. + */ + +#ifndef JOBS +#define JOBS 1 +#endif + +#if JOBS +bgcmd -u bg +fgcmd -u fg +#endif + +#ifndef SMALL +histcmd -u fc +#endif + +breakcmd -s break -s continue +cdcmd -u cd chdir +commandcmd -u command +dotcmd -s . +echocmd echo +evalcmd -s eval +execcmd -s exec +exitcmd -s exit +exportcmd -as export -as readonly +falsecmd -u false +getoptscmd -u getopts +hashcmd hash +jobscmd -u jobs +localcmd -a local +printfcmd printf +pwdcmd pwd +readcmd -u read +returncmd -s return +setcmd -s set +shiftcmd -s shift +timescmd -s times +trapcmd -s trap +truecmd -s : -u true +typecmd type +umaskcmd -u umask +unaliascmd -u unalias +unsetcmd -s unset +waitcmd -u wait +aliascmd -au alias +#ifdef HAVE_GETRLIMIT +ulimitcmd ulimit +#endif +testcmd test [ +killcmd -u kill diff --git a/src/miscbltin.c b/src/miscbltin.c index 81033e3..3f91bc3 100644 --- a/src/miscbltin.c +++ b/src/miscbltin.c @@ -58,10 +58,6 @@ #undef rflag -#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ < 1 -typedef enum __rlimit_resource rlim_t; -#endif - /* @@ -276,6 +272,7 @@ umaskcmd(int argc, char **argv) return 0; } +#ifdef HAVE_GETRLIMIT /* * ulimit builtin * @@ -457,3 +454,4 @@ ulimitcmd(int argc, char **argv) } return 0; } +#endif diff --git a/src/mkbuiltins b/src/mkbuiltins index d0325c1..5e2cc86 100644 --- a/src/mkbuiltins +++ b/src/mkbuiltins @@ -39,22 +39,9 @@ trap 'rm -f $temp $temp2' EXIT temp=$(tempfile) temp2=$(tempfile) -shell=$1 -builtins=$2 -objdir=$3 -cflags=$4 +builtins=$1 -havehist=1 -if [ -z "${cflags##*-DSMALL*}" ]; then - havehist=0 -fi - -havejobs=1 -if [ -z "${cflags##*-DJOBS=0*}" ]; then - havejobs=0 -fi - -exec > ${objdir}/builtins.c +exec > builtins.c cat <<\! /* * This file was generated by the mkbuiltins program. @@ -64,8 +51,7 @@ cat <<\! #include "builtins.h" ! -awk '/^[^#]/ {if(('$havejobs' || $2 != "-j") && ('$havehist' || $2 != "-h")) \ - print $0}' ${builtins} | sed 's/-[hj]//; s/#.*//' > $temp +< $builtins sed '/^#/d; /^$/d' > $temp awk '{ printf "int %s(int, char **);\n", $1}' $temp echo ' const struct builtincmd builtincmd[] = {' @@ -85,7 +71,7 @@ awk '{ for (i = 2 ; i <= NF ; i++) { }' echo '};' -exec > ${objdir}/builtins.h +exec > builtins.h cat <<\! /* * This file was generated by the mkbuiltins program. |