1827 lines
48 KiB
Diff
1827 lines
48 KiB
Diff
From a9b9d0159ff10b3e13c0ae70de54e0ab8e424069 Mon Sep 17 00:00:00 2001
|
|
From: Joel Severin <joel.severin@icemanor.se>
|
|
Date: Mon, 13 May 2024 23:44:37 +0200
|
|
Subject: [PATCH] NOMERGE: Hacks to build Wasm/Linux arch (minimal and
|
|
incomplete)
|
|
|
|
---
|
|
Makefile | 16 +-
|
|
Makefile.flags | 19 +-
|
|
arch/wasm/Makefile | 0
|
|
archival/libarchive/decompress_bunzip2.c | 6 +-
|
|
archival/libarchive/decompress_gunzip.c | 4 +-
|
|
archival/libarchive/open_transformer.c | 44 +-
|
|
configs/wasm_defconfig | 1231 ++++++++++++++++++++++
|
|
coreutils/test.c | 6 +-
|
|
editors/vi.c | 3 +
|
|
init/init.c | 37 +-
|
|
scripts/Makefile.build | 2 +-
|
|
scripts/gcc-version.sh | 3 +
|
|
scripts/trylink | 8 +-
|
|
shell/hush.c | 137 ++-
|
|
util-linux/fdisk.c | 6 -
|
|
15 files changed, 1392 insertions(+), 130 deletions(-)
|
|
create mode 100644 arch/wasm/Makefile
|
|
create mode 100644 configs/wasm_defconfig
|
|
|
|
diff --git a/Makefile b/Makefile
|
|
index fa8cb76..8fad6ae 100644
|
|
--- a/Makefile
|
|
+++ b/Makefile
|
|
@@ -288,15 +288,15 @@ MAKEFLAGS += -rR
|
|
|
|
# Make variables (CC, etc...)
|
|
|
|
-AS = $(CROSS_COMPILE)as
|
|
-CC = $(CROSS_COMPILE)gcc
|
|
-LD = $(CC) -nostdlib
|
|
+AS = $(CROSS_COMPILE)llvm-as
|
|
+CC = $(CROSS_COMPILE)clang --target=wasm32-unknown-unknown -Xclang -target-feature -Xclang +atomics -Xclang -target-feature -Xclang +bulk-memory
|
|
+LD = $(CROSS_COMPILE)wasm-ld
|
|
CPP = $(CC) -E
|
|
-AR = $(CROSS_COMPILE)ar
|
|
-NM = $(CROSS_COMPILE)nm
|
|
-STRIP = $(CROSS_COMPILE)strip
|
|
-OBJCOPY = $(CROSS_COMPILE)objcopy
|
|
-OBJDUMP = $(CROSS_COMPILE)objdump
|
|
+AR = $(CROSS_COMPILE)llvm-ar
|
|
+NM = $(CROSS_COMPILE)llvm-nm
|
|
+STRIP = $(CROSS_COMPILE)llvm-strip
|
|
+OBJCOPY = $(CROSS_COMPILE)llvm-objcopy
|
|
+OBJDUMP = $(CROSS_COMPILE)llvm-objdump
|
|
PKG_CONFIG ?= $(CROSS_COMPILE)pkg-config
|
|
AWK = awk
|
|
GENKSYMS = scripts/genksyms/genksyms
|
|
diff --git a/Makefile.flags b/Makefile.flags
|
|
index 1cec5ba..5014d21 100644
|
|
--- a/Makefile.flags
|
|
+++ b/Makefile.flags
|
|
@@ -47,28 +47,15 @@ endif
|
|
# gcc 3.x emits bogus "old style proto" warning on find.c:alloc_action()
|
|
CFLAGS += $(call cc-ifversion, -ge, 0400, -Wold-style-definition)
|
|
|
|
-ifneq ($(CC),clang)
|
|
-# "clang-9: warning: optimization flag '-finline-limit=0' is not supported
|
|
-CFLAGS += $(call cc-option,-finline-limit=0,)
|
|
-endif
|
|
-
|
|
CFLAGS += $(call cc-option,-fno-builtin-strlen -fomit-frame-pointer -ffunction-sections -fdata-sections,)
|
|
# -fno-guess-branch-probability: prohibit pseudo-random guessing
|
|
# of branch probabilities (hopefully makes bloatcheck more stable):
|
|
CFLAGS += $(call cc-option,-fno-guess-branch-probability,)
|
|
CFLAGS += $(call cc-option,-funsigned-char,)
|
|
|
|
-ifeq ($(CONFIG_STATIC_LIBGCC),y)
|
|
-# Disable it, for example, if you get
|
|
-# "clang-9: warning: argument unused during compilation: '-static-libgcc'"
|
|
-CFLAGS += $(call cc-option,-static-libgcc,)
|
|
-endif
|
|
-
|
|
CFLAGS += $(call cc-option,-falign-functions=1,)
|
|
-ifneq ($(CC),clang)
|
|
-# "clang-9: warning: optimization flag '-falign-jumps=1' is not supported" (and same for other two)
|
|
-CFLAGS += $(call cc-option,-falign-jumps=1 -falign-labels=1 -falign-loops=1,)
|
|
-endif
|
|
+
|
|
+CFLAGS += $(call cc-option,-falign-loops=1,)
|
|
|
|
# Defeat .eh_frame bloat (gcc 4.6.3 x86-32 defconfig: 20% smaller busybox binary):
|
|
CFLAGS += $(call cc-option,-fno-unwind-tables,)
|
|
@@ -78,9 +65,7 @@ CFLAGS += $(call cc-option,-fno-asynchronous-unwind-tables,)
|
|
CFLAGS += $(call cc-option,-fno-builtin-printf,)
|
|
|
|
# clang-9 does not like "str" + N and "if (CONFIG_ITEM && cond)" constructs
|
|
-ifeq ($(CC),clang)
|
|
CFLAGS += $(call cc-option,-Wno-string-plus-int -Wno-constant-logical-operand)
|
|
-endif
|
|
|
|
# FIXME: These warnings are at least partially to be concerned about and should
|
|
# be fixed..
|
|
diff --git a/arch/wasm/Makefile b/arch/wasm/Makefile
|
|
new file mode 100644
|
|
index 0000000..e69de29
|
|
diff --git a/archival/libarchive/decompress_bunzip2.c b/archival/libarchive/decompress_bunzip2.c
|
|
index 4a2b668..74676f0 100644
|
|
--- a/archival/libarchive/decompress_bunzip2.c
|
|
+++ b/archival/libarchive/decompress_bunzip2.c
|
|
@@ -127,7 +127,7 @@ static unsigned get_bits(bunzip_data *bd, int bits_wanted)
|
|
/* if "no input fd" case: in_fd == -1, read fails, we jump */
|
|
bd->inbufCount = read(bd->in_fd, bd->inbuf, IOBUF_SIZE);
|
|
if (bd->inbufCount <= 0)
|
|
- longjmp(*bd->jmpbuf, RETVAL_UNEXPECTED_INPUT_EOF);
|
|
+ abort();
|
|
bd->inbufPos = 0;
|
|
}
|
|
|
|
@@ -785,7 +785,7 @@ unpack_bz2_stream(transformer_state_t *xstate)
|
|
jmp_buf jmpbuf;
|
|
|
|
/* Setup for I/O error handling via longjmp */
|
|
- i = setjmp(jmpbuf);
|
|
+ i = 0;
|
|
if (i == 0)
|
|
i = start_bunzip(&jmpbuf, &bd, xstate->src_fd, outbuf + 2, len);
|
|
|
|
@@ -856,7 +856,7 @@ unpack_bz2_data(const char *packed, int packed_len, int unpacked_len)
|
|
jmp_buf jmpbuf;
|
|
|
|
/* Setup for I/O error handling via longjmp */
|
|
- i = setjmp(jmpbuf);
|
|
+ i = 0;
|
|
if (i == 0) {
|
|
i = start_bunzip(&jmpbuf,
|
|
&bd,
|
|
diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c
|
|
index d051ecb..77a1e88 100644
|
|
--- a/archival/libarchive/decompress_gunzip.c
|
|
+++ b/archival/libarchive/decompress_gunzip.c
|
|
@@ -253,7 +253,7 @@ static void abort_unzip(STATE_PARAM_ONLY) NORETURN;
|
|
static void abort_unzip(STATE_PARAM_ONLY)
|
|
{
|
|
huft_free_all(PASS_STATE_ONLY);
|
|
- longjmp(error_jmp, 1);
|
|
+ abort();
|
|
}
|
|
|
|
static unsigned fill_bitbuffer(STATE_PARAM unsigned bitbuffer, unsigned *current, const unsigned required)
|
|
@@ -1024,7 +1024,7 @@ inflate_unzip_internal(STATE_PARAM transformer_state_t *xstate)
|
|
gunzip_crc = ~0;
|
|
|
|
error_msg = "corrupted data";
|
|
- if (setjmp(error_jmp)) {
|
|
+ if (0) {
|
|
/* Error from deep inside zip machinery */
|
|
bb_simple_error_msg(error_msg);
|
|
n = -1;
|
|
diff --git a/archival/libarchive/open_transformer.c b/archival/libarchive/open_transformer.c
|
|
index 44715ef..d311750 100644
|
|
--- a/archival/libarchive/open_transformer.c
|
|
+++ b/archival/libarchive/open_transformer.c
|
|
@@ -4,6 +4,7 @@
|
|
*/
|
|
#include "libbb.h"
|
|
#include "bb_archive.h"
|
|
+#include <sched.h>
|
|
|
|
void FAST_FUNC init_transformer_state(transformer_state_t *xstate)
|
|
{
|
|
@@ -102,6 +103,28 @@ void FAST_FUNC fork_transformer(int fd,
|
|
IF_DESKTOP(long long) int FAST_FUNC (*transformer)(transformer_state_t *xstate)
|
|
)
|
|
#else
|
|
+static int fork_transformer_child(void* arg)
|
|
+{
|
|
+ void **args = arg;
|
|
+ int fd = *(int*)args[0];
|
|
+ const char *transform_prog = args[1];
|
|
+ struct fd_pair *fd_pipe = args[2];
|
|
+
|
|
+ close(fd_pipe->rd); /* we don't want to read from the parent */
|
|
+ // FIXME: error check?
|
|
+
|
|
+ char *argv[4];
|
|
+ xmove_fd(fd, 0);
|
|
+ xmove_fd(fd_pipe->wr, 1);
|
|
+ argv[0] = (char*)transform_prog;
|
|
+ argv[1] = (char*)"-cf";
|
|
+ argv[2] = (char*)"-";
|
|
+ argv[3] = NULL;
|
|
+ BB_EXECVP(transform_prog, argv);
|
|
+ bb_perror_msg_and_die("can't execute '%s'", transform_prog);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
void FAST_FUNC fork_transformer(int fd, const char *transform_prog)
|
|
#endif
|
|
{
|
|
@@ -109,12 +132,12 @@ void FAST_FUNC fork_transformer(int fd, const char *transform_prog)
|
|
int pid;
|
|
|
|
xpiped_pair(fd_pipe);
|
|
- pid = BB_MMU ? xfork() : xvfork();
|
|
+#if BB_MMU
|
|
+ pid = xfork();
|
|
if (pid == 0) {
|
|
/* Child */
|
|
close(fd_pipe.rd); /* we don't want to read from the parent */
|
|
// FIXME: error check?
|
|
-#if BB_MMU
|
|
{
|
|
IF_DESKTOP(long long) int r;
|
|
transformer_state_t xstate;
|
|
@@ -130,21 +153,12 @@ void FAST_FUNC fork_transformer(int fd, const char *transform_prog)
|
|
/* must be _exit! bug was actually seen here */
|
|
_exit(/*error if:*/ r < 0);
|
|
}
|
|
-#else
|
|
- {
|
|
- char *argv[4];
|
|
- xmove_fd(fd, 0);
|
|
- xmove_fd(fd_pipe.wr, 1);
|
|
- argv[0] = (char*)transform_prog;
|
|
- argv[1] = (char*)"-cf";
|
|
- argv[2] = (char*)"-";
|
|
- argv[3] = NULL;
|
|
- BB_EXECVP(transform_prog, argv);
|
|
- bb_perror_msg_and_die("can't execute '%s'", transform_prog);
|
|
- }
|
|
-#endif
|
|
/* notreached */
|
|
}
|
|
+#else
|
|
+ void *arg[2] = {&fd, transform_prog, &fd_pipe};
|
|
+ clone(fork_transformer_child, NULL, CLONE_VM | CLONE_VFORK | SIGCHLD, arg);
|
|
+#endif
|
|
|
|
/* parent process */
|
|
close(fd_pipe.wr); /* don't want to write to the child */
|
|
diff --git a/configs/wasm_defconfig b/configs/wasm_defconfig
|
|
new file mode 100644
|
|
index 0000000..ef1dd5a
|
|
--- /dev/null
|
|
+++ b/configs/wasm_defconfig
|
|
@@ -0,0 +1,1231 @@
|
|
+#
|
|
+# Automatically generated make config: don't edit
|
|
+# Busybox version: 1.36.1
|
|
+# Sat Feb 24 17:21:38 2024
|
|
+#
|
|
+CONFIG_HAVE_DOT_CONFIG=y
|
|
+
|
|
+#
|
|
+# Settings
|
|
+#
|
|
+# CONFIG_DESKTOP is not set
|
|
+# CONFIG_EXTRA_COMPAT is not set
|
|
+# CONFIG_FEDORA_COMPAT is not set
|
|
+CONFIG_INCLUDE_SUSv2=y
|
|
+CONFIG_LONG_OPTS=y
|
|
+CONFIG_SHOW_USAGE=y
|
|
+CONFIG_FEATURE_VERBOSE_USAGE=y
|
|
+CONFIG_FEATURE_COMPRESS_USAGE=y
|
|
+CONFIG_LFS=y
|
|
+# CONFIG_PAM is not set
|
|
+CONFIG_FEATURE_DEVPTS=y
|
|
+CONFIG_FEATURE_UTMP=y
|
|
+CONFIG_FEATURE_WTMP=y
|
|
+CONFIG_FEATURE_PIDFILE=y
|
|
+CONFIG_PID_FILE_PATH="/var/run"
|
|
+CONFIG_BUSYBOX=y
|
|
+CONFIG_FEATURE_SHOW_SCRIPT=y
|
|
+CONFIG_FEATURE_INSTALLER=y
|
|
+# CONFIG_INSTALL_NO_USR is not set
|
|
+CONFIG_FEATURE_SUID=y
|
|
+CONFIG_FEATURE_SUID_CONFIG=y
|
|
+CONFIG_FEATURE_SUID_CONFIG_QUIET=y
|
|
+# CONFIG_FEATURE_PREFER_APPLETS is not set
|
|
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
|
|
+# CONFIG_SELINUX is not set
|
|
+# CONFIG_FEATURE_CLEAN_UP is not set
|
|
+CONFIG_FEATURE_SYSLOG_INFO=y
|
|
+CONFIG_FEATURE_SYSLOG=y
|
|
+
|
|
+#
|
|
+# Build Options
|
|
+#
|
|
+CONFIG_STATIC=y
|
|
+# CONFIG_PIE is not set
|
|
+CONFIG_NOMMU=y
|
|
+# CONFIG_BUILD_LIBBUSYBOX is not set
|
|
+# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set
|
|
+# CONFIG_FEATURE_INDIVIDUAL is not set
|
|
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
|
|
+CONFIG_CROSS_COMPILER_PREFIX=""
|
|
+CONFIG_SYSROOT=""
|
|
+CONFIG_EXTRA_CFLAGS=""
|
|
+CONFIG_EXTRA_LDFLAGS=""
|
|
+CONFIG_EXTRA_LDLIBS=""
|
|
+# CONFIG_USE_PORTABLE_CODE is not set
|
|
+CONFIG_STACK_OPTIMIZATION_386=y
|
|
+CONFIG_STATIC_LIBGCC=y
|
|
+
|
|
+#
|
|
+# Installation Options ("make install" behavior)
|
|
+#
|
|
+CONFIG_INSTALL_APPLET_SYMLINKS=y
|
|
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
|
|
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
|
|
+# CONFIG_INSTALL_APPLET_DONT is not set
|
|
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
|
|
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
|
|
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
|
|
+CONFIG_PREFIX="./_install"
|
|
+
|
|
+#
|
|
+# Debugging Options
|
|
+#
|
|
+# CONFIG_DEBUG is not set
|
|
+# CONFIG_DEBUG_PESSIMIZE is not set
|
|
+# CONFIG_DEBUG_SANITIZE is not set
|
|
+# CONFIG_UNIT_TEST is not set
|
|
+# CONFIG_WERROR is not set
|
|
+# CONFIG_WARN_SIMPLE_MSG is not set
|
|
+CONFIG_NO_DEBUG_LIB=y
|
|
+# CONFIG_DMALLOC is not set
|
|
+# CONFIG_EFENCE is not set
|
|
+
|
|
+#
|
|
+# Library Tuning
|
|
+#
|
|
+# CONFIG_FEATURE_USE_BSS_TAIL is not set
|
|
+CONFIG_FLOAT_DURATION=y
|
|
+CONFIG_FEATURE_RTMINMAX=y
|
|
+CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y
|
|
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
|
|
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
|
|
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
|
|
+CONFIG_PASSWORD_MINLEN=6
|
|
+CONFIG_MD5_SMALL=1
|
|
+CONFIG_SHA1_SMALL=3
|
|
+CONFIG_SHA1_HWACCEL=y
|
|
+CONFIG_SHA256_HWACCEL=y
|
|
+CONFIG_SHA3_SMALL=1
|
|
+CONFIG_FEATURE_NON_POSIX_CP=y
|
|
+# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
|
|
+CONFIG_FEATURE_USE_SENDFILE=y
|
|
+CONFIG_FEATURE_COPYBUF_KB=4
|
|
+CONFIG_MONOTONIC_SYSCALL=y
|
|
+CONFIG_IOCTL_HEX2STR_ERROR=y
|
|
+CONFIG_FEATURE_EDITING=y
|
|
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
|
|
+# CONFIG_FEATURE_EDITING_VI is not set
|
|
+CONFIG_FEATURE_EDITING_HISTORY=255
|
|
+CONFIG_FEATURE_EDITING_SAVEHISTORY=y
|
|
+# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
|
|
+CONFIG_FEATURE_REVERSE_SEARCH=y
|
|
+CONFIG_FEATURE_TAB_COMPLETION=y
|
|
+CONFIG_FEATURE_USERNAME_COMPLETION=y
|
|
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
|
|
+CONFIG_FEATURE_EDITING_WINCH=y
|
|
+# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
|
|
+# CONFIG_LOCALE_SUPPORT is not set
|
|
+CONFIG_UNICODE_SUPPORT=y
|
|
+# CONFIG_UNICODE_USING_LOCALE is not set
|
|
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
|
|
+CONFIG_SUBST_WCHAR=63
|
|
+CONFIG_LAST_SUPPORTED_WCHAR=767
|
|
+# CONFIG_UNICODE_COMBINING_WCHARS is not set
|
|
+# CONFIG_UNICODE_WIDE_WCHARS is not set
|
|
+# CONFIG_UNICODE_BIDI_SUPPORT is not set
|
|
+# CONFIG_UNICODE_NEUTRAL_TABLE is not set
|
|
+# CONFIG_UNICODE_PRESERVE_BROKEN is not set
|
|
+# CONFIG_LOOP_CONFIGURE is not set
|
|
+# CONFIG_NO_LOOP_CONFIGURE is not set
|
|
+CONFIG_TRY_LOOP_CONFIGURE=y
|
|
+
|
|
+#
|
|
+# Applets
|
|
+#
|
|
+
|
|
+#
|
|
+# Archival Utilities
|
|
+#
|
|
+CONFIG_FEATURE_SEAMLESS_XZ=y
|
|
+CONFIG_FEATURE_SEAMLESS_LZMA=y
|
|
+CONFIG_FEATURE_SEAMLESS_BZ2=y
|
|
+CONFIG_FEATURE_SEAMLESS_GZ=y
|
|
+# CONFIG_FEATURE_SEAMLESS_Z is not set
|
|
+# CONFIG_AR is not set
|
|
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
|
|
+# CONFIG_FEATURE_AR_CREATE is not set
|
|
+# CONFIG_UNCOMPRESS is not set
|
|
+CONFIG_GUNZIP=y
|
|
+CONFIG_ZCAT=y
|
|
+CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y
|
|
+CONFIG_BUNZIP2=y
|
|
+CONFIG_BZCAT=y
|
|
+CONFIG_UNLZMA=y
|
|
+CONFIG_LZCAT=y
|
|
+CONFIG_LZMA=y
|
|
+CONFIG_UNXZ=y
|
|
+CONFIG_XZCAT=y
|
|
+CONFIG_XZ=y
|
|
+CONFIG_BZIP2=y
|
|
+CONFIG_BZIP2_SMALL=8
|
|
+CONFIG_FEATURE_BZIP2_DECOMPRESS=y
|
|
+CONFIG_CPIO=y
|
|
+CONFIG_FEATURE_CPIO_O=y
|
|
+CONFIG_FEATURE_CPIO_P=y
|
|
+CONFIG_FEATURE_CPIO_IGNORE_DEVNO=y
|
|
+CONFIG_FEATURE_CPIO_RENUMBER_INODES=y
|
|
+CONFIG_DPKG=y
|
|
+CONFIG_DPKG_DEB=y
|
|
+CONFIG_GZIP=y
|
|
+CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
|
|
+CONFIG_GZIP_FAST=0
|
|
+# CONFIG_FEATURE_GZIP_LEVELS is not set
|
|
+CONFIG_FEATURE_GZIP_DECOMPRESS=y
|
|
+CONFIG_LZOP=y
|
|
+# CONFIG_UNLZOP is not set
|
|
+# CONFIG_LZOPCAT is not set
|
|
+# CONFIG_LZOP_COMPR_HIGH is not set
|
|
+CONFIG_RPM=y
|
|
+CONFIG_RPM2CPIO=y
|
|
+CONFIG_TAR=y
|
|
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
|
|
+CONFIG_FEATURE_TAR_CREATE=y
|
|
+CONFIG_FEATURE_TAR_AUTODETECT=y
|
|
+CONFIG_FEATURE_TAR_FROM=y
|
|
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
|
|
+CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y
|
|
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
|
|
+CONFIG_FEATURE_TAR_TO_COMMAND=y
|
|
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
|
|
+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
|
|
+# CONFIG_FEATURE_TAR_SELINUX is not set
|
|
+CONFIG_UNZIP=y
|
|
+CONFIG_FEATURE_UNZIP_CDF=y
|
|
+# CONFIG_FEATURE_UNZIP_BZIP2 is not set
|
|
+# CONFIG_FEATURE_UNZIP_LZMA is not set
|
|
+# CONFIG_FEATURE_UNZIP_XZ is not set
|
|
+# CONFIG_FEATURE_LZMA_FAST is not set
|
|
+
|
|
+#
|
|
+# Coreutils
|
|
+#
|
|
+CONFIG_FEATURE_VERBOSE=y
|
|
+
|
|
+#
|
|
+# Common options for date and touch
|
|
+#
|
|
+# CONFIG_FEATURE_TIMEZONE is not set
|
|
+
|
|
+#
|
|
+# Common options for cp and mv
|
|
+#
|
|
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
|
|
+
|
|
+#
|
|
+# Common options for df, du, ls
|
|
+#
|
|
+CONFIG_FEATURE_HUMAN_READABLE=y
|
|
+CONFIG_BASENAME=y
|
|
+CONFIG_CAT=y
|
|
+CONFIG_FEATURE_CATN=y
|
|
+CONFIG_FEATURE_CATV=y
|
|
+CONFIG_CHGRP=y
|
|
+CONFIG_CHMOD=y
|
|
+CONFIG_CHOWN=y
|
|
+CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
|
|
+CONFIG_CHROOT=y
|
|
+CONFIG_CKSUM=y
|
|
+CONFIG_CRC32=y
|
|
+CONFIG_COMM=y
|
|
+CONFIG_CP=y
|
|
+CONFIG_FEATURE_CP_LONG_OPTIONS=y
|
|
+CONFIG_FEATURE_CP_REFLINK=y
|
|
+CONFIG_CUT=y
|
|
+CONFIG_FEATURE_CUT_REGEX=y
|
|
+CONFIG_DATE=y
|
|
+CONFIG_FEATURE_DATE_ISOFMT=y
|
|
+# CONFIG_FEATURE_DATE_NANO is not set
|
|
+CONFIG_FEATURE_DATE_COMPAT=y
|
|
+CONFIG_DD=y
|
|
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
|
|
+CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
|
|
+CONFIG_FEATURE_DD_IBS_OBS=y
|
|
+CONFIG_FEATURE_DD_STATUS=y
|
|
+CONFIG_DF=y
|
|
+CONFIG_FEATURE_DF_FANCY=y
|
|
+CONFIG_FEATURE_SKIP_ROOTFS=y
|
|
+CONFIG_DIRNAME=y
|
|
+CONFIG_DOS2UNIX=y
|
|
+CONFIG_UNIX2DOS=y
|
|
+CONFIG_DU=y
|
|
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
|
|
+CONFIG_ECHO=y
|
|
+CONFIG_FEATURE_FANCY_ECHO=y
|
|
+CONFIG_ENV=y
|
|
+CONFIG_EXPAND=y
|
|
+CONFIG_UNEXPAND=y
|
|
+CONFIG_EXPR=y
|
|
+CONFIG_EXPR_MATH_SUPPORT_64=y
|
|
+CONFIG_FACTOR=y
|
|
+CONFIG_FALSE=y
|
|
+CONFIG_FOLD=y
|
|
+CONFIG_HEAD=y
|
|
+CONFIG_FEATURE_FANCY_HEAD=y
|
|
+CONFIG_HOSTID=y
|
|
+CONFIG_ID=y
|
|
+CONFIG_GROUPS=y
|
|
+CONFIG_INSTALL=y
|
|
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
|
|
+CONFIG_LINK=y
|
|
+CONFIG_LN=y
|
|
+CONFIG_LOGNAME=y
|
|
+CONFIG_LS=y
|
|
+CONFIG_FEATURE_LS_FILETYPES=y
|
|
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
|
|
+CONFIG_FEATURE_LS_RECURSIVE=y
|
|
+CONFIG_FEATURE_LS_WIDTH=y
|
|
+CONFIG_FEATURE_LS_SORTFILES=y
|
|
+CONFIG_FEATURE_LS_TIMESTAMPS=y
|
|
+CONFIG_FEATURE_LS_USERNAME=y
|
|
+CONFIG_FEATURE_LS_COLOR=y
|
|
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
|
|
+CONFIG_MD5SUM=y
|
|
+CONFIG_SHA1SUM=y
|
|
+CONFIG_SHA256SUM=y
|
|
+CONFIG_SHA512SUM=y
|
|
+CONFIG_SHA3SUM=y
|
|
+
|
|
+#
|
|
+# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
|
|
+#
|
|
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
|
|
+CONFIG_MKDIR=y
|
|
+CONFIG_MKFIFO=y
|
|
+CONFIG_MKNOD=y
|
|
+CONFIG_MKTEMP=y
|
|
+CONFIG_MV=y
|
|
+CONFIG_NICE=y
|
|
+CONFIG_NL=y
|
|
+CONFIG_NOHUP=y
|
|
+CONFIG_NPROC=y
|
|
+CONFIG_OD=y
|
|
+CONFIG_PASTE=y
|
|
+CONFIG_PRINTENV=y
|
|
+CONFIG_PRINTF=y
|
|
+CONFIG_PWD=y
|
|
+CONFIG_READLINK=y
|
|
+CONFIG_FEATURE_READLINK_FOLLOW=y
|
|
+CONFIG_REALPATH=y
|
|
+CONFIG_RM=y
|
|
+CONFIG_RMDIR=y
|
|
+CONFIG_SEQ=y
|
|
+CONFIG_SHRED=y
|
|
+CONFIG_SHUF=y
|
|
+CONFIG_SLEEP=y
|
|
+CONFIG_FEATURE_FANCY_SLEEP=y
|
|
+CONFIG_SORT=y
|
|
+CONFIG_FEATURE_SORT_BIG=y
|
|
+# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set
|
|
+CONFIG_SPLIT=y
|
|
+CONFIG_FEATURE_SPLIT_FANCY=y
|
|
+CONFIG_STAT=y
|
|
+CONFIG_FEATURE_STAT_FORMAT=y
|
|
+CONFIG_FEATURE_STAT_FILESYSTEM=y
|
|
+CONFIG_STTY=y
|
|
+CONFIG_SUM=y
|
|
+CONFIG_SYNC=y
|
|
+CONFIG_FEATURE_SYNC_FANCY=y
|
|
+CONFIG_FSYNC=y
|
|
+CONFIG_TAC=y
|
|
+CONFIG_TAIL=y
|
|
+CONFIG_FEATURE_FANCY_TAIL=y
|
|
+CONFIG_TEE=y
|
|
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
|
|
+CONFIG_TEST=y
|
|
+CONFIG_TEST1=y
|
|
+CONFIG_TEST2=y
|
|
+CONFIG_FEATURE_TEST_64=y
|
|
+CONFIG_TIMEOUT=y
|
|
+CONFIG_TOUCH=y
|
|
+CONFIG_FEATURE_TOUCH_SUSV3=y
|
|
+CONFIG_TR=y
|
|
+CONFIG_FEATURE_TR_CLASSES=y
|
|
+CONFIG_FEATURE_TR_EQUIV=y
|
|
+CONFIG_TRUE=y
|
|
+CONFIG_TRUNCATE=y
|
|
+CONFIG_TSORT=y
|
|
+CONFIG_TTY=y
|
|
+CONFIG_UNAME=y
|
|
+CONFIG_UNAME_OSNAME="GNU/Linux"
|
|
+CONFIG_BB_ARCH=y
|
|
+CONFIG_UNIQ=y
|
|
+CONFIG_UNLINK=y
|
|
+CONFIG_USLEEP=y
|
|
+CONFIG_UUDECODE=y
|
|
+CONFIG_BASE32=y
|
|
+CONFIG_BASE64=y
|
|
+CONFIG_UUENCODE=y
|
|
+CONFIG_WC=y
|
|
+CONFIG_FEATURE_WC_LARGE=y
|
|
+CONFIG_WHO=y
|
|
+CONFIG_W=y
|
|
+CONFIG_USERS=y
|
|
+CONFIG_WHOAMI=y
|
|
+CONFIG_YES=y
|
|
+
|
|
+#
|
|
+# Console Utilities
|
|
+#
|
|
+CONFIG_CHVT=y
|
|
+CONFIG_CLEAR=y
|
|
+CONFIG_DEALLOCVT=y
|
|
+CONFIG_DUMPKMAP=y
|
|
+CONFIG_FGCONSOLE=y
|
|
+CONFIG_KBD_MODE=y
|
|
+CONFIG_LOADFONT=y
|
|
+CONFIG_SETFONT=y
|
|
+CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y
|
|
+CONFIG_DEFAULT_SETFONT_DIR=""
|
|
+
|
|
+#
|
|
+# Common options for loadfont and setfont
|
|
+#
|
|
+CONFIG_FEATURE_LOADFONT_PSF2=y
|
|
+CONFIG_FEATURE_LOADFONT_RAW=y
|
|
+CONFIG_LOADKMAP=y
|
|
+CONFIG_OPENVT=y
|
|
+CONFIG_RESET=y
|
|
+CONFIG_RESIZE=y
|
|
+CONFIG_FEATURE_RESIZE_PRINT=y
|
|
+CONFIG_SETCONSOLE=y
|
|
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
|
|
+CONFIG_SETKEYCODES=y
|
|
+CONFIG_SETLOGCONS=y
|
|
+CONFIG_SHOWKEY=y
|
|
+
|
|
+#
|
|
+# Debian Utilities
|
|
+#
|
|
+CONFIG_PIPE_PROGRESS=y
|
|
+CONFIG_RUN_PARTS=y
|
|
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
|
|
+CONFIG_FEATURE_RUN_PARTS_FANCY=y
|
|
+CONFIG_START_STOP_DAEMON=y
|
|
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
|
|
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
|
|
+CONFIG_WHICH=y
|
|
+
|
|
+#
|
|
+# klibc-utils
|
|
+#
|
|
+# CONFIG_MINIPS is not set
|
|
+# CONFIG_NUKE is not set
|
|
+CONFIG_RESUME=y
|
|
+CONFIG_RUN_INIT=y
|
|
+
|
|
+#
|
|
+# Editors
|
|
+#
|
|
+CONFIG_AWK=y
|
|
+CONFIG_FEATURE_AWK_LIBM=y
|
|
+CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
|
|
+CONFIG_CMP=y
|
|
+CONFIG_DIFF=y
|
|
+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
|
|
+CONFIG_FEATURE_DIFF_DIR=y
|
|
+CONFIG_ED=y
|
|
+CONFIG_PATCH=y
|
|
+CONFIG_SED=y
|
|
+CONFIG_VI=y
|
|
+CONFIG_FEATURE_VI_MAX_LEN=4096
|
|
+# CONFIG_FEATURE_VI_8BIT is not set
|
|
+CONFIG_FEATURE_VI_COLON=y
|
|
+CONFIG_FEATURE_VI_COLON_EXPAND=y
|
|
+CONFIG_FEATURE_VI_YANKMARK=y
|
|
+CONFIG_FEATURE_VI_SEARCH=y
|
|
+# CONFIG_FEATURE_VI_REGEX_SEARCH is not set
|
|
+# CONFIG_FEATURE_VI_USE_SIGNALS is not set
|
|
+CONFIG_FEATURE_VI_DOT_CMD=y
|
|
+CONFIG_FEATURE_VI_READONLY=y
|
|
+CONFIG_FEATURE_VI_SETOPTS=y
|
|
+CONFIG_FEATURE_VI_SET=y
|
|
+CONFIG_FEATURE_VI_WIN_RESIZE=y
|
|
+CONFIG_FEATURE_VI_ASK_TERMINAL=y
|
|
+CONFIG_FEATURE_VI_UNDO=y
|
|
+CONFIG_FEATURE_VI_UNDO_QUEUE=y
|
|
+CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256
|
|
+CONFIG_FEATURE_VI_VERBOSE_STATUS=y
|
|
+CONFIG_FEATURE_ALLOW_EXEC=y
|
|
+
|
|
+#
|
|
+# Finding Utilities
|
|
+#
|
|
+CONFIG_FIND=y
|
|
+CONFIG_FEATURE_FIND_PRINT0=y
|
|
+CONFIG_FEATURE_FIND_MTIME=y
|
|
+CONFIG_FEATURE_FIND_ATIME=y
|
|
+CONFIG_FEATURE_FIND_CTIME=y
|
|
+CONFIG_FEATURE_FIND_MMIN=y
|
|
+CONFIG_FEATURE_FIND_AMIN=y
|
|
+CONFIG_FEATURE_FIND_CMIN=y
|
|
+CONFIG_FEATURE_FIND_PERM=y
|
|
+CONFIG_FEATURE_FIND_TYPE=y
|
|
+CONFIG_FEATURE_FIND_EXECUTABLE=y
|
|
+CONFIG_FEATURE_FIND_XDEV=y
|
|
+CONFIG_FEATURE_FIND_MAXDEPTH=y
|
|
+CONFIG_FEATURE_FIND_NEWER=y
|
|
+CONFIG_FEATURE_FIND_INUM=y
|
|
+CONFIG_FEATURE_FIND_SAMEFILE=y
|
|
+CONFIG_FEATURE_FIND_EXEC=y
|
|
+CONFIG_FEATURE_FIND_EXEC_PLUS=y
|
|
+CONFIG_FEATURE_FIND_USER=y
|
|
+CONFIG_FEATURE_FIND_GROUP=y
|
|
+CONFIG_FEATURE_FIND_NOT=y
|
|
+CONFIG_FEATURE_FIND_DEPTH=y
|
|
+CONFIG_FEATURE_FIND_PAREN=y
|
|
+CONFIG_FEATURE_FIND_SIZE=y
|
|
+CONFIG_FEATURE_FIND_PRUNE=y
|
|
+CONFIG_FEATURE_FIND_QUIT=y
|
|
+CONFIG_FEATURE_FIND_DELETE=y
|
|
+CONFIG_FEATURE_FIND_EMPTY=y
|
|
+CONFIG_FEATURE_FIND_PATH=y
|
|
+CONFIG_FEATURE_FIND_REGEX=y
|
|
+# CONFIG_FEATURE_FIND_CONTEXT is not set
|
|
+CONFIG_FEATURE_FIND_LINKS=y
|
|
+CONFIG_GREP=y
|
|
+CONFIG_EGREP=y
|
|
+CONFIG_FGREP=y
|
|
+CONFIG_FEATURE_GREP_CONTEXT=y
|
|
+CONFIG_XARGS=y
|
|
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
|
|
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
|
|
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
|
|
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
|
|
+CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y
|
|
+CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y
|
|
+CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y
|
|
+
|
|
+#
|
|
+# Init Utilities
|
|
+#
|
|
+CONFIG_BOOTCHARTD=y
|
|
+CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y
|
|
+CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y
|
|
+CONFIG_HALT=y
|
|
+CONFIG_POWEROFF=y
|
|
+CONFIG_REBOOT=y
|
|
+CONFIG_FEATURE_WAIT_FOR_INIT=y
|
|
+# CONFIG_FEATURE_CALL_TELINIT is not set
|
|
+CONFIG_TELINIT_PATH=""
|
|
+CONFIG_INIT=y
|
|
+CONFIG_LINUXRC=y
|
|
+CONFIG_FEATURE_USE_INITTAB=y
|
|
+# CONFIG_FEATURE_KILL_REMOVED is not set
|
|
+CONFIG_FEATURE_KILL_DELAY=0
|
|
+CONFIG_FEATURE_INIT_SCTTY=y
|
|
+CONFIG_FEATURE_INIT_SYSLOG=y
|
|
+CONFIG_FEATURE_INIT_QUIET=y
|
|
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
|
|
+CONFIG_INIT_TERMINAL_TYPE="linux"
|
|
+CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y
|
|
+
|
|
+#
|
|
+# Login/Password Management Utilities
|
|
+#
|
|
+CONFIG_FEATURE_SHADOWPASSWDS=y
|
|
+CONFIG_USE_BB_PWD_GRP=y
|
|
+CONFIG_USE_BB_SHADOW=y
|
|
+CONFIG_USE_BB_CRYPT=y
|
|
+CONFIG_USE_BB_CRYPT_SHA=y
|
|
+CONFIG_ADD_SHELL=y
|
|
+CONFIG_REMOVE_SHELL=y
|
|
+CONFIG_ADDGROUP=y
|
|
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
|
|
+CONFIG_ADDUSER=y
|
|
+# CONFIG_FEATURE_CHECK_NAMES is not set
|
|
+CONFIG_LAST_ID=60000
|
|
+CONFIG_FIRST_SYSTEM_ID=100
|
|
+CONFIG_LAST_SYSTEM_ID=999
|
|
+CONFIG_CHPASSWD=y
|
|
+CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des"
|
|
+CONFIG_CRYPTPW=y
|
|
+CONFIG_MKPASSWD=y
|
|
+CONFIG_DELUSER=y
|
|
+CONFIG_DELGROUP=y
|
|
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
|
|
+CONFIG_GETTY=y
|
|
+CONFIG_LOGIN=y
|
|
+# CONFIG_LOGIN_SESSION_AS_CHILD is not set
|
|
+CONFIG_LOGIN_SCRIPTS=y
|
|
+CONFIG_FEATURE_NOLOGIN=y
|
|
+CONFIG_FEATURE_SECURETTY=y
|
|
+CONFIG_PASSWD=y
|
|
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
|
|
+CONFIG_SU=y
|
|
+CONFIG_FEATURE_SU_SYSLOG=y
|
|
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
|
|
+# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set
|
|
+CONFIG_SULOGIN=y
|
|
+CONFIG_VLOCK=y
|
|
+
|
|
+#
|
|
+# Linux Ext2 FS Progs
|
|
+#
|
|
+CONFIG_CHATTR=y
|
|
+CONFIG_FSCK=y
|
|
+CONFIG_LSATTR=y
|
|
+# CONFIG_TUNE2FS is not set
|
|
+
|
|
+#
|
|
+# Linux Module Utilities
|
|
+#
|
|
+CONFIG_MODPROBE_SMALL=y
|
|
+CONFIG_DEPMOD=y
|
|
+CONFIG_INSMOD=y
|
|
+CONFIG_LSMOD=y
|
|
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
|
|
+CONFIG_MODINFO=y
|
|
+CONFIG_MODPROBE=y
|
|
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
|
|
+CONFIG_RMMOD=y
|
|
+
|
|
+#
|
|
+# Options common to multiple modutils
|
|
+#
|
|
+CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y
|
|
+CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y
|
|
+# CONFIG_FEATURE_2_4_MODULES is not set
|
|
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
|
|
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
|
|
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
|
|
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
|
|
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
|
|
+# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
|
|
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
|
|
+# CONFIG_FEATURE_MODUTILS_ALIAS is not set
|
|
+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
|
|
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
|
|
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
|
|
+
|
|
+#
|
|
+# Linux System Utilities
|
|
+#
|
|
+CONFIG_ACPID=y
|
|
+CONFIG_FEATURE_ACPID_COMPAT=y
|
|
+CONFIG_BLKDISCARD=y
|
|
+CONFIG_BLKID=y
|
|
+CONFIG_FEATURE_BLKID_TYPE=y
|
|
+CONFIG_BLOCKDEV=y
|
|
+CONFIG_CAL=y
|
|
+CONFIG_CHRT=y
|
|
+CONFIG_DMESG=y
|
|
+CONFIG_FEATURE_DMESG_PRETTY=y
|
|
+CONFIG_EJECT=y
|
|
+CONFIG_FEATURE_EJECT_SCSI=y
|
|
+CONFIG_FALLOCATE=y
|
|
+CONFIG_FATATTR=y
|
|
+CONFIG_FBSET=y
|
|
+CONFIG_FEATURE_FBSET_FANCY=y
|
|
+CONFIG_FEATURE_FBSET_READMODE=y
|
|
+CONFIG_FDFORMAT=y
|
|
+CONFIG_FDISK=y
|
|
+# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
|
|
+CONFIG_FEATURE_FDISK_WRITABLE=y
|
|
+# CONFIG_FEATURE_AIX_LABEL is not set
|
|
+# CONFIG_FEATURE_SGI_LABEL is not set
|
|
+# CONFIG_FEATURE_SUN_LABEL is not set
|
|
+# CONFIG_FEATURE_OSF_LABEL is not set
|
|
+# CONFIG_FEATURE_GPT_LABEL is not set
|
|
+CONFIG_FEATURE_FDISK_ADVANCED=y
|
|
+CONFIG_FINDFS=y
|
|
+CONFIG_FLOCK=y
|
|
+CONFIG_FDFLUSH=y
|
|
+CONFIG_FREERAMDISK=y
|
|
+CONFIG_FSCK_MINIX=y
|
|
+CONFIG_FSFREEZE=y
|
|
+CONFIG_FSTRIM=y
|
|
+CONFIG_GETOPT=y
|
|
+CONFIG_FEATURE_GETOPT_LONG=y
|
|
+CONFIG_HEXDUMP=y
|
|
+CONFIG_HD=y
|
|
+CONFIG_XXD=y
|
|
+CONFIG_HWCLOCK=y
|
|
+# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
|
|
+CONFIG_IONICE=y
|
|
+CONFIG_IPCRM=y
|
|
+CONFIG_IPCS=y
|
|
+CONFIG_LAST=y
|
|
+CONFIG_FEATURE_LAST_FANCY=y
|
|
+CONFIG_LOSETUP=y
|
|
+CONFIG_LSPCI=y
|
|
+CONFIG_LSUSB=y
|
|
+CONFIG_MDEV=y
|
|
+CONFIG_FEATURE_MDEV_CONF=y
|
|
+CONFIG_FEATURE_MDEV_RENAME=y
|
|
+CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
|
|
+CONFIG_FEATURE_MDEV_EXEC=y
|
|
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
|
|
+CONFIG_FEATURE_MDEV_DAEMON=y
|
|
+CONFIG_MESG=y
|
|
+CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
|
|
+CONFIG_MKE2FS=y
|
|
+CONFIG_MKFS_EXT2=y
|
|
+CONFIG_MKFS_MINIX=y
|
|
+CONFIG_FEATURE_MINIX2=y
|
|
+# CONFIG_MKFS_REISER is not set
|
|
+CONFIG_MKDOSFS=y
|
|
+CONFIG_MKFS_VFAT=y
|
|
+CONFIG_MKSWAP=y
|
|
+CONFIG_FEATURE_MKSWAP_UUID=y
|
|
+CONFIG_MORE=y
|
|
+CONFIG_MOUNT=y
|
|
+CONFIG_FEATURE_MOUNT_FAKE=y
|
|
+CONFIG_FEATURE_MOUNT_VERBOSE=y
|
|
+# CONFIG_FEATURE_MOUNT_HELPERS is not set
|
|
+CONFIG_FEATURE_MOUNT_LABEL=y
|
|
+# CONFIG_FEATURE_MOUNT_NFS is not set
|
|
+CONFIG_FEATURE_MOUNT_CIFS=y
|
|
+CONFIG_FEATURE_MOUNT_FLAGS=y
|
|
+CONFIG_FEATURE_MOUNT_FSTAB=y
|
|
+CONFIG_FEATURE_MOUNT_OTHERTAB=y
|
|
+CONFIG_MOUNTPOINT=y
|
|
+CONFIG_NOLOGIN=y
|
|
+# CONFIG_NOLOGIN_DEPENDENCIES is not set
|
|
+CONFIG_NSENTER=y
|
|
+CONFIG_PIVOT_ROOT=y
|
|
+CONFIG_RDATE=y
|
|
+CONFIG_RDEV=y
|
|
+CONFIG_READPROFILE=y
|
|
+CONFIG_RENICE=y
|
|
+CONFIG_REV=y
|
|
+CONFIG_RTCWAKE=y
|
|
+CONFIG_SCRIPT=y
|
|
+CONFIG_SCRIPTREPLAY=y
|
|
+CONFIG_SETARCH=y
|
|
+CONFIG_LINUX32=y
|
|
+CONFIG_LINUX64=y
|
|
+CONFIG_SETPRIV=y
|
|
+CONFIG_FEATURE_SETPRIV_DUMP=y
|
|
+CONFIG_FEATURE_SETPRIV_CAPABILITIES=y
|
|
+CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y
|
|
+CONFIG_SETSID=y
|
|
+CONFIG_SWAPON=y
|
|
+CONFIG_FEATURE_SWAPON_DISCARD=y
|
|
+CONFIG_FEATURE_SWAPON_PRI=y
|
|
+CONFIG_SWAPOFF=y
|
|
+CONFIG_FEATURE_SWAPONOFF_LABEL=y
|
|
+CONFIG_SWITCH_ROOT=y
|
|
+CONFIG_TASKSET=y
|
|
+CONFIG_FEATURE_TASKSET_FANCY=y
|
|
+CONFIG_FEATURE_TASKSET_CPULIST=y
|
|
+CONFIG_UEVENT=y
|
|
+CONFIG_UMOUNT=y
|
|
+CONFIG_FEATURE_UMOUNT_ALL=y
|
|
+# CONFIG_UNSHARE is not set
|
|
+CONFIG_WALL=y
|
|
+
|
|
+#
|
|
+# Common options for mount/umount
|
|
+#
|
|
+CONFIG_FEATURE_MOUNT_LOOP=y
|
|
+CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
|
|
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
|
|
+CONFIG_VOLUMEID=y
|
|
+
|
|
+#
|
|
+# Filesystem/Volume identification
|
|
+#
|
|
+CONFIG_FEATURE_VOLUMEID_BCACHE=y
|
|
+CONFIG_FEATURE_VOLUMEID_BTRFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_EROFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_EXFAT=y
|
|
+CONFIG_FEATURE_VOLUMEID_EXT=y
|
|
+CONFIG_FEATURE_VOLUMEID_F2FS=y
|
|
+CONFIG_FEATURE_VOLUMEID_FAT=y
|
|
+CONFIG_FEATURE_VOLUMEID_HFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
|
|
+CONFIG_FEATURE_VOLUMEID_JFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_LFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
|
|
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
|
|
+CONFIG_FEATURE_VOLUMEID_LUKS=y
|
|
+CONFIG_FEATURE_VOLUMEID_MINIX=y
|
|
+CONFIG_FEATURE_VOLUMEID_NILFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_NTFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_OCFS2=y
|
|
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_SYSV=y
|
|
+CONFIG_FEATURE_VOLUMEID_UBIFS=y
|
|
+CONFIG_FEATURE_VOLUMEID_UDF=y
|
|
+CONFIG_FEATURE_VOLUMEID_XFS=y
|
|
+
|
|
+#
|
|
+# Miscellaneous Utilities
|
|
+#
|
|
+CONFIG_ADJTIMEX=y
|
|
+CONFIG_ASCII=y
|
|
+# CONFIG_BBCONFIG is not set
|
|
+# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
|
|
+CONFIG_BC=y
|
|
+CONFIG_DC=y
|
|
+CONFIG_FEATURE_DC_BIG=y
|
|
+# CONFIG_FEATURE_DC_LIBM is not set
|
|
+CONFIG_FEATURE_BC_INTERACTIVE=y
|
|
+CONFIG_FEATURE_BC_LONG_OPTIONS=y
|
|
+CONFIG_BEEP=y
|
|
+CONFIG_FEATURE_BEEP_FREQ=4000
|
|
+CONFIG_FEATURE_BEEP_LENGTH_MS=30
|
|
+CONFIG_CHAT=y
|
|
+CONFIG_FEATURE_CHAT_NOFAIL=y
|
|
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
|
|
+CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
|
|
+CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y
|
|
+CONFIG_FEATURE_CHAT_SEND_ESCAPES=y
|
|
+CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y
|
|
+CONFIG_FEATURE_CHAT_CLR_ABORT=y
|
|
+CONFIG_CONSPY=y
|
|
+CONFIG_CROND=y
|
|
+CONFIG_FEATURE_CROND_D=y
|
|
+CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
|
|
+CONFIG_FEATURE_CROND_SPECIAL_TIMES=y
|
|
+CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
|
|
+CONFIG_CRONTAB=y
|
|
+# CONFIG_DEVFSD is not set
|
|
+# CONFIG_DEVFSD_MODLOAD is not set
|
|
+# CONFIG_DEVFSD_FG_NP is not set
|
|
+# CONFIG_DEVFSD_VERBOSE is not set
|
|
+# CONFIG_FEATURE_DEVFS is not set
|
|
+CONFIG_DEVMEM=y
|
|
+CONFIG_FBSPLASH=y
|
|
+# CONFIG_FLASH_ERASEALL is not set
|
|
+# CONFIG_FLASH_LOCK is not set
|
|
+# CONFIG_FLASH_UNLOCK is not set
|
|
+# CONFIG_FLASHCP is not set
|
|
+CONFIG_HDPARM=y
|
|
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
|
|
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
|
|
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
|
|
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
|
|
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
|
|
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
|
|
+CONFIG_HEXEDIT=y
|
|
+CONFIG_I2CGET=y
|
|
+CONFIG_I2CSET=y
|
|
+CONFIG_I2CDUMP=y
|
|
+CONFIG_I2CDETECT=y
|
|
+CONFIG_I2CTRANSFER=y
|
|
+# CONFIG_INOTIFYD is not set
|
|
+CONFIG_LESS=y
|
|
+CONFIG_FEATURE_LESS_MAXLINES=9999999
|
|
+CONFIG_FEATURE_LESS_BRACKETS=y
|
|
+CONFIG_FEATURE_LESS_FLAGS=y
|
|
+CONFIG_FEATURE_LESS_TRUNCATE=y
|
|
+CONFIG_FEATURE_LESS_MARKS=y
|
|
+CONFIG_FEATURE_LESS_REGEXP=y
|
|
+CONFIG_FEATURE_LESS_WINCH=y
|
|
+CONFIG_FEATURE_LESS_ASK_TERMINAL=y
|
|
+CONFIG_FEATURE_LESS_DASHCMD=y
|
|
+CONFIG_FEATURE_LESS_LINENUMS=y
|
|
+CONFIG_FEATURE_LESS_RAW=y
|
|
+CONFIG_FEATURE_LESS_ENV=y
|
|
+CONFIG_LSSCSI=y
|
|
+CONFIG_MAKEDEVS=y
|
|
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
|
|
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
|
|
+CONFIG_MAN=y
|
|
+CONFIG_MICROCOM=y
|
|
+CONFIG_MIM=y
|
|
+CONFIG_MT=y
|
|
+CONFIG_NANDWRITE=y
|
|
+CONFIG_NANDDUMP=y
|
|
+CONFIG_PARTPROBE=y
|
|
+CONFIG_RAIDAUTORUN=y
|
|
+CONFIG_READAHEAD=y
|
|
+# CONFIG_RFKILL is not set
|
|
+CONFIG_RUNLEVEL=y
|
|
+CONFIG_RX=y
|
|
+CONFIG_SEEDRNG=y
|
|
+CONFIG_SETFATTR=y
|
|
+CONFIG_SETSERIAL=y
|
|
+CONFIG_STRINGS=y
|
|
+CONFIG_TIME=y
|
|
+CONFIG_TREE=y
|
|
+CONFIG_TS=y
|
|
+CONFIG_TTYSIZE=y
|
|
+CONFIG_UBIATTACH=y
|
|
+CONFIG_UBIDETACH=y
|
|
+CONFIG_UBIMKVOL=y
|
|
+CONFIG_UBIRMVOL=y
|
|
+CONFIG_UBIRSVOL=y
|
|
+CONFIG_UBIUPDATEVOL=y
|
|
+CONFIG_UBIRENAME=y
|
|
+CONFIG_VOLNAME=y
|
|
+CONFIG_WATCHDOG=y
|
|
+# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set
|
|
+
|
|
+#
|
|
+# Networking Utilities
|
|
+#
|
|
+CONFIG_FEATURE_IPV6=y
|
|
+# CONFIG_FEATURE_UNIX_LOCAL is not set
|
|
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
|
|
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
|
|
+# CONFIG_FEATURE_ETC_NETWORKS is not set
|
|
+# CONFIG_FEATURE_ETC_SERVICES is not set
|
|
+CONFIG_FEATURE_HWIB=y
|
|
+# CONFIG_FEATURE_TLS_SHA1 is not set
|
|
+CONFIG_ARP=y
|
|
+CONFIG_ARPING=y
|
|
+CONFIG_BRCTL=y
|
|
+CONFIG_FEATURE_BRCTL_FANCY=y
|
|
+CONFIG_FEATURE_BRCTL_SHOW=y
|
|
+CONFIG_DNSD=y
|
|
+CONFIG_ETHER_WAKE=y
|
|
+CONFIG_FTPD=y
|
|
+CONFIG_FEATURE_FTPD_WRITE=y
|
|
+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
|
|
+CONFIG_FEATURE_FTPD_AUTHENTICATION=y
|
|
+CONFIG_FTPGET=y
|
|
+CONFIG_FTPPUT=y
|
|
+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
|
|
+CONFIG_HOSTNAME=y
|
|
+CONFIG_DNSDOMAINNAME=y
|
|
+CONFIG_HTTPD=y
|
|
+CONFIG_FEATURE_HTTPD_PORT_DEFAULT=80
|
|
+CONFIG_FEATURE_HTTPD_RANGES=y
|
|
+CONFIG_FEATURE_HTTPD_SETUID=y
|
|
+CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
|
|
+CONFIG_FEATURE_HTTPD_AUTH_MD5=y
|
|
+CONFIG_FEATURE_HTTPD_CGI=y
|
|
+CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y
|
|
+CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y
|
|
+CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
|
|
+CONFIG_FEATURE_HTTPD_ERROR_PAGES=y
|
|
+CONFIG_FEATURE_HTTPD_PROXY=y
|
|
+CONFIG_FEATURE_HTTPD_GZIP=y
|
|
+CONFIG_FEATURE_HTTPD_ETAG=y
|
|
+CONFIG_FEATURE_HTTPD_LAST_MODIFIED=y
|
|
+CONFIG_FEATURE_HTTPD_DATE=y
|
|
+CONFIG_FEATURE_HTTPD_ACL_IP=y
|
|
+CONFIG_IFCONFIG=y
|
|
+CONFIG_FEATURE_IFCONFIG_STATUS=y
|
|
+CONFIG_FEATURE_IFCONFIG_SLIP=y
|
|
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
|
|
+CONFIG_FEATURE_IFCONFIG_HW=y
|
|
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
|
|
+CONFIG_IFENSLAVE=y
|
|
+CONFIG_IFPLUGD=y
|
|
+CONFIG_IFUP=y
|
|
+CONFIG_IFDOWN=y
|
|
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
|
|
+CONFIG_FEATURE_IFUPDOWN_IP=y
|
|
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
|
|
+CONFIG_FEATURE_IFUPDOWN_IPV6=y
|
|
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
|
|
+# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
|
|
+CONFIG_INETD=y
|
|
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
|
|
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
|
|
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
|
|
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
|
|
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
|
|
+# CONFIG_FEATURE_INETD_RPC is not set
|
|
+CONFIG_IP=y
|
|
+CONFIG_IPADDR=y
|
|
+CONFIG_IPLINK=y
|
|
+CONFIG_IPROUTE=y
|
|
+CONFIG_IPTUNNEL=y
|
|
+CONFIG_IPRULE=y
|
|
+CONFIG_IPNEIGH=y
|
|
+CONFIG_FEATURE_IP_ADDRESS=y
|
|
+CONFIG_FEATURE_IP_LINK=y
|
|
+CONFIG_FEATURE_IP_ROUTE=y
|
|
+CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2"
|
|
+CONFIG_FEATURE_IP_TUNNEL=y
|
|
+CONFIG_FEATURE_IP_RULE=y
|
|
+CONFIG_FEATURE_IP_NEIGH=y
|
|
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
|
|
+CONFIG_IPCALC=y
|
|
+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
|
|
+CONFIG_FEATURE_IPCALC_FANCY=y
|
|
+CONFIG_FAKEIDENTD=y
|
|
+CONFIG_NAMEIF=y
|
|
+CONFIG_FEATURE_NAMEIF_EXTENDED=y
|
|
+CONFIG_NBDCLIENT=y
|
|
+CONFIG_NC=y
|
|
+# CONFIG_NETCAT is not set
|
|
+CONFIG_NC_SERVER=y
|
|
+CONFIG_NC_EXTRA=y
|
|
+CONFIG_NC_110_COMPAT=y
|
|
+CONFIG_NETSTAT=y
|
|
+CONFIG_FEATURE_NETSTAT_WIDE=y
|
|
+CONFIG_FEATURE_NETSTAT_PRG=y
|
|
+CONFIG_NSLOOKUP=y
|
|
+CONFIG_FEATURE_NSLOOKUP_BIG=y
|
|
+CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y
|
|
+CONFIG_NTPD=y
|
|
+CONFIG_FEATURE_NTPD_SERVER=y
|
|
+CONFIG_FEATURE_NTPD_CONF=y
|
|
+CONFIG_FEATURE_NTP_AUTH=y
|
|
+CONFIG_PING=y
|
|
+CONFIG_PING6=y
|
|
+CONFIG_FEATURE_FANCY_PING=y
|
|
+CONFIG_PSCAN=y
|
|
+CONFIG_ROUTE=y
|
|
+CONFIG_SLATTACH=y
|
|
+CONFIG_SSL_CLIENT=y
|
|
+CONFIG_TC=y
|
|
+CONFIG_FEATURE_TC_INGRESS=y
|
|
+CONFIG_TCPSVD=y
|
|
+CONFIG_UDPSVD=y
|
|
+CONFIG_TELNET=y
|
|
+CONFIG_FEATURE_TELNET_TTYPE=y
|
|
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
|
|
+CONFIG_FEATURE_TELNET_WIDTH=y
|
|
+CONFIG_TELNETD=y
|
|
+CONFIG_FEATURE_TELNETD_STANDALONE=y
|
|
+CONFIG_FEATURE_TELNETD_PORT_DEFAULT=23
|
|
+CONFIG_FEATURE_TELNETD_INETD_WAIT=y
|
|
+CONFIG_TFTP=y
|
|
+CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
|
|
+CONFIG_FEATURE_TFTP_HPA_COMPAT=y
|
|
+CONFIG_TFTPD=y
|
|
+CONFIG_FEATURE_TFTP_GET=y
|
|
+CONFIG_FEATURE_TFTP_PUT=y
|
|
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
|
|
+# CONFIG_TFTP_DEBUG is not set
|
|
+CONFIG_TLS=y
|
|
+CONFIG_TRACEROUTE=y
|
|
+CONFIG_TRACEROUTE6=y
|
|
+CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
|
|
+CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y
|
|
+CONFIG_TUNCTL=y
|
|
+CONFIG_FEATURE_TUNCTL_UG=y
|
|
+CONFIG_VCONFIG=y
|
|
+CONFIG_WGET=y
|
|
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
|
|
+CONFIG_FEATURE_WGET_STATUSBAR=y
|
|
+CONFIG_FEATURE_WGET_FTP=y
|
|
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
|
|
+CONFIG_FEATURE_WGET_TIMEOUT=y
|
|
+CONFIG_FEATURE_WGET_HTTPS=y
|
|
+CONFIG_FEATURE_WGET_OPENSSL=y
|
|
+CONFIG_WHOIS=y
|
|
+CONFIG_ZCIP=y
|
|
+CONFIG_UDHCPD=y
|
|
+# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
|
|
+CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y
|
|
+CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
|
|
+CONFIG_DUMPLEASES=y
|
|
+CONFIG_DHCPRELAY=y
|
|
+CONFIG_UDHCPC=y
|
|
+CONFIG_FEATURE_UDHCPC_ARPING=y
|
|
+CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
|
|
+CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
|
|
+CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default6.script"
|
|
+CONFIG_UDHCPC6=y
|
|
+CONFIG_FEATURE_UDHCPC6_RFC3646=y
|
|
+CONFIG_FEATURE_UDHCPC6_RFC4704=y
|
|
+CONFIG_FEATURE_UDHCPC6_RFC4833=y
|
|
+CONFIG_FEATURE_UDHCPC6_RFC5970=y
|
|
+
|
|
+#
|
|
+# Common options for DHCP applets
|
|
+#
|
|
+CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0"
|
|
+# CONFIG_FEATURE_UDHCP_PORT is not set
|
|
+CONFIG_UDHCP_DEBUG=2
|
|
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
|
|
+CONFIG_FEATURE_UDHCP_RFC3397=y
|
|
+CONFIG_FEATURE_UDHCP_8021Q=y
|
|
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
|
|
+
|
|
+#
|
|
+# Print Utilities
|
|
+#
|
|
+CONFIG_LPD=y
|
|
+CONFIG_LPR=y
|
|
+CONFIG_LPQ=y
|
|
+
|
|
+#
|
|
+# Mail Utilities
|
|
+#
|
|
+CONFIG_FEATURE_MIME_CHARSET="us-ascii"
|
|
+CONFIG_MAKEMIME=y
|
|
+CONFIG_POPMAILDIR=y
|
|
+CONFIG_FEATURE_POPMAILDIR_DELIVERY=y
|
|
+CONFIG_REFORMIME=y
|
|
+CONFIG_FEATURE_REFORMIME_COMPAT=y
|
|
+CONFIG_SENDMAIL=y
|
|
+
|
|
+#
|
|
+# Process Utilities
|
|
+#
|
|
+# CONFIG_FEATURE_FAST_TOP is not set
|
|
+CONFIG_FEATURE_SHOW_THREADS=y
|
|
+CONFIG_FREE=y
|
|
+CONFIG_FUSER=y
|
|
+CONFIG_IOSTAT=y
|
|
+CONFIG_KILL=y
|
|
+CONFIG_KILLALL=y
|
|
+CONFIG_KILLALL5=y
|
|
+CONFIG_LSOF=y
|
|
+CONFIG_MPSTAT=y
|
|
+CONFIG_NMETER=y
|
|
+CONFIG_PGREP=y
|
|
+CONFIG_PKILL=y
|
|
+CONFIG_PIDOF=y
|
|
+CONFIG_FEATURE_PIDOF_SINGLE=y
|
|
+CONFIG_FEATURE_PIDOF_OMIT=y
|
|
+CONFIG_PMAP=y
|
|
+CONFIG_POWERTOP=y
|
|
+CONFIG_FEATURE_POWERTOP_INTERACTIVE=y
|
|
+CONFIG_PS=y
|
|
+CONFIG_FEATURE_PS_WIDE=y
|
|
+CONFIG_FEATURE_PS_LONG=y
|
|
+# CONFIG_FEATURE_PS_TIME is not set
|
|
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
|
|
+# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
|
|
+CONFIG_PSTREE=y
|
|
+CONFIG_PWDX=y
|
|
+CONFIG_SMEMCAP=y
|
|
+CONFIG_BB_SYSCTL=y
|
|
+CONFIG_TOP=y
|
|
+CONFIG_FEATURE_TOP_INTERACTIVE=y
|
|
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
|
|
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
|
|
+CONFIG_FEATURE_TOP_SMP_CPU=y
|
|
+CONFIG_FEATURE_TOP_DECIMALS=y
|
|
+CONFIG_FEATURE_TOP_SMP_PROCESS=y
|
|
+CONFIG_FEATURE_TOPMEM=y
|
|
+CONFIG_UPTIME=y
|
|
+CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y
|
|
+CONFIG_WATCH=y
|
|
+
|
|
+#
|
|
+# Runit Utilities
|
|
+#
|
|
+CONFIG_CHPST=y
|
|
+CONFIG_SETUIDGID=y
|
|
+CONFIG_ENVUIDGID=y
|
|
+CONFIG_ENVDIR=y
|
|
+CONFIG_SOFTLIMIT=y
|
|
+CONFIG_RUNSV=y
|
|
+CONFIG_RUNSVDIR=y
|
|
+# CONFIG_FEATURE_RUNSVDIR_LOG is not set
|
|
+CONFIG_SV=y
|
|
+CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
|
|
+CONFIG_SVC=y
|
|
+CONFIG_SVOK=y
|
|
+CONFIG_SVLOGD=y
|
|
+# CONFIG_CHCON is not set
|
|
+# CONFIG_GETENFORCE is not set
|
|
+# CONFIG_GETSEBOOL is not set
|
|
+# CONFIG_LOAD_POLICY is not set
|
|
+# CONFIG_MATCHPATHCON is not set
|
|
+# CONFIG_RUNCON is not set
|
|
+# CONFIG_SELINUXENABLED is not set
|
|
+# CONFIG_SESTATUS is not set
|
|
+# CONFIG_SETENFORCE is not set
|
|
+# CONFIG_SETFILES is not set
|
|
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
|
|
+# CONFIG_RESTORECON is not set
|
|
+# CONFIG_SETSEBOOL is not set
|
|
+
|
|
+#
|
|
+# Shells
|
|
+#
|
|
+# CONFIG_SH_IS_ASH is not set
|
|
+CONFIG_SH_IS_HUSH=y
|
|
+# CONFIG_SH_IS_NONE is not set
|
|
+# CONFIG_BASH_IS_ASH is not set
|
|
+# CONFIG_BASH_IS_HUSH is not set
|
|
+CONFIG_BASH_IS_NONE=y
|
|
+# CONFIG_SHELL_ASH is not set
|
|
+# CONFIG_ASH is not set
|
|
+# CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
|
|
+# CONFIG_ASH_INTERNAL_GLOB is not set
|
|
+# CONFIG_ASH_BASH_COMPAT is not set
|
|
+# CONFIG_ASH_BASH_SOURCE_CURDIR is not set
|
|
+# CONFIG_ASH_BASH_NOT_FOUND_HOOK is not set
|
|
+# CONFIG_ASH_JOB_CONTROL is not set
|
|
+# CONFIG_ASH_ALIAS is not set
|
|
+# CONFIG_ASH_RANDOM_SUPPORT is not set
|
|
+# CONFIG_ASH_EXPAND_PRMT is not set
|
|
+# CONFIG_ASH_IDLE_TIMEOUT is not set
|
|
+# CONFIG_ASH_MAIL is not set
|
|
+# CONFIG_ASH_ECHO is not set
|
|
+# CONFIG_ASH_PRINTF is not set
|
|
+# CONFIG_ASH_TEST is not set
|
|
+# CONFIG_ASH_SLEEP is not set
|
|
+# CONFIG_ASH_HELP is not set
|
|
+# CONFIG_ASH_GETOPTS is not set
|
|
+# CONFIG_ASH_CMDCMD is not set
|
|
+CONFIG_CTTYHACK=y
|
|
+CONFIG_HUSH=y
|
|
+CONFIG_SHELL_HUSH=y
|
|
+CONFIG_HUSH_BASH_COMPAT=y
|
|
+CONFIG_HUSH_BRACE_EXPANSION=y
|
|
+# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set
|
|
+CONFIG_HUSH_LINENO_VAR=y
|
|
+CONFIG_HUSH_INTERACTIVE=y
|
|
+CONFIG_HUSH_SAVEHISTORY=y
|
|
+CONFIG_HUSH_JOB=y
|
|
+CONFIG_HUSH_TICK=y
|
|
+CONFIG_HUSH_IF=y
|
|
+CONFIG_HUSH_LOOPS=y
|
|
+CONFIG_HUSH_CASE=y
|
|
+CONFIG_HUSH_FUNCTIONS=y
|
|
+CONFIG_HUSH_LOCAL=y
|
|
+CONFIG_HUSH_RANDOM_SUPPORT=y
|
|
+CONFIG_HUSH_MODE_X=y
|
|
+CONFIG_HUSH_ECHO=y
|
|
+CONFIG_HUSH_PRINTF=y
|
|
+CONFIG_HUSH_TEST=y
|
|
+CONFIG_HUSH_HELP=y
|
|
+CONFIG_HUSH_EXPORT=y
|
|
+CONFIG_HUSH_EXPORT_N=y
|
|
+CONFIG_HUSH_READONLY=y
|
|
+CONFIG_HUSH_KILL=y
|
|
+CONFIG_HUSH_WAIT=y
|
|
+CONFIG_HUSH_COMMAND=y
|
|
+CONFIG_HUSH_TRAP=y
|
|
+CONFIG_HUSH_TYPE=y
|
|
+CONFIG_HUSH_TIMES=y
|
|
+CONFIG_HUSH_READ=y
|
|
+CONFIG_HUSH_SET=y
|
|
+CONFIG_HUSH_UNSET=y
|
|
+CONFIG_HUSH_ULIMIT=y
|
|
+CONFIG_HUSH_UMASK=y
|
|
+CONFIG_HUSH_GETOPTS=y
|
|
+# CONFIG_HUSH_MEMLEAK is not set
|
|
+
|
|
+#
|
|
+# Options common to all shells
|
|
+#
|
|
+CONFIG_FEATURE_SH_MATH=y
|
|
+CONFIG_FEATURE_SH_MATH_64=y
|
|
+CONFIG_FEATURE_SH_MATH_BASE=y
|
|
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
|
|
+# CONFIG_FEATURE_SH_STANDALONE is not set
|
|
+# CONFIG_FEATURE_SH_NOFORK is not set
|
|
+CONFIG_FEATURE_SH_READ_FRAC=y
|
|
+CONFIG_FEATURE_SH_HISTFILESIZE=y
|
|
+CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y
|
|
+
|
|
+#
|
|
+# System Logging Utilities
|
|
+#
|
|
+CONFIG_KLOGD=y
|
|
+
|
|
+#
|
|
+# klogd should not be used together with syslog to kernel printk buffer
|
|
+#
|
|
+CONFIG_FEATURE_KLOGD_KLOGCTL=y
|
|
+CONFIG_LOGGER=y
|
|
+CONFIG_LOGREAD=y
|
|
+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
|
|
+CONFIG_SYSLOGD=y
|
|
+CONFIG_FEATURE_ROTATE_LOGFILE=y
|
|
+CONFIG_FEATURE_REMOTE_LOG=y
|
|
+CONFIG_FEATURE_SYSLOGD_DUP=y
|
|
+CONFIG_FEATURE_SYSLOGD_CFG=y
|
|
+# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set
|
|
+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
|
|
+CONFIG_FEATURE_IPC_SYSLOG=y
|
|
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
|
|
+CONFIG_FEATURE_KMSG_SYSLOG=y
|
|
diff --git a/coreutils/test.c b/coreutils/test.c
|
|
index 1d1e6d1..57157db 100644
|
|
--- a/coreutils/test.c
|
|
+++ b/coreutils/test.c
|
|
@@ -463,7 +463,7 @@ static void syntax(const char *op, const char *msg)
|
|
} else {
|
|
bb_error_msg("%s: %s"+4, msg);
|
|
}
|
|
- longjmp(leaving, 2);
|
|
+ exit(2);
|
|
}
|
|
|
|
/* atoi with error detection */
|
|
@@ -599,7 +599,7 @@ static int binop(void)
|
|
memset(&re_buffer, 0, sizeof(re_buffer));
|
|
if (regcomp(&re_buffer, opnd2, REG_EXTENDED)) { // REG_NEWLINE?
|
|
/* Bad regex */
|
|
- longjmp(leaving, 2); /* [[ a =~ * ]]; echo $? - prints 2 (silently, no error msg) */
|
|
+ exit(2); /* [[ a =~ * ]]; echo $? - prints 2 (silently, no error msg) */
|
|
}
|
|
val1 = regexec(&re_buffer, opnd1, 0, NULL, 0);
|
|
regfree(&re_buffer);
|
|
@@ -929,7 +929,7 @@ int test_main(int argc, char **argv)
|
|
bash_test2 = bt2;
|
|
#endif
|
|
|
|
- res = setjmp(leaving);
|
|
+ res = 0;
|
|
if (res)
|
|
goto ret;
|
|
|
|
diff --git a/editors/vi.c b/editors/vi.c
|
|
index 2645afe..2f389d7 100644
|
|
--- a/editors/vi.c
|
|
+++ b/editors/vi.c
|
|
@@ -4855,6 +4855,9 @@ static void edit_file(char *fn)
|
|
// int_handler() can jump to "restart",
|
|
// must install handler *after* initializing "restart"
|
|
signal(SIGINT, int_handler);
|
|
+#else
|
|
+ // It's fair to not quit vi by accidental ctrl+c...
|
|
+ signal(SIGINT, SIG_IGN);
|
|
#endif
|
|
|
|
cmd_mode = 0; // 0=command 1=insert 2='R'eplace
|
|
diff --git a/init/init.c b/init/init.c
|
|
index 1e1ce83..0cf6da4 100644
|
|
--- a/init/init.c
|
|
+++ b/init/init.c
|
|
@@ -135,6 +135,7 @@
|
|
# include <sys/sysinfo.h>
|
|
#endif
|
|
#include "reboot.h" /* reboot() constants */
|
|
+#include <sched.h>
|
|
|
|
#if DEBUG_SEGV_HANDLER
|
|
# undef _GNU_SOURCE
|
|
@@ -475,22 +476,9 @@ static void init_exec(const char *command)
|
|
/* returns if execvp fails */
|
|
}
|
|
|
|
-/* Used only by run_actions */
|
|
-static pid_t run(const struct init_action *a)
|
|
+static pid_t run_child(void *arg)
|
|
{
|
|
- pid_t pid;
|
|
-
|
|
- if (BB_MMU && (a->action_type & ASKFIRST))
|
|
- pid = fork();
|
|
- else
|
|
- pid = vfork();
|
|
- if (pid) {
|
|
- if (pid < 0)
|
|
- message(L_LOG | L_CONSOLE, "can't fork");
|
|
- return pid; /* Parent or error */
|
|
- }
|
|
-
|
|
- /* Child */
|
|
+ const struct init_action *a = arg;
|
|
|
|
/* Reset signal handlers that were set by the parent process */
|
|
reset_sighandlers_and_unblock_sigs();
|
|
@@ -553,6 +541,25 @@ static pid_t run(const struct init_action *a)
|
|
_exit(-1);
|
|
}
|
|
|
|
+/* Used only by run_actions */
|
|
+static pid_t run(const struct init_action *a)
|
|
+{
|
|
+ pid_t pid;
|
|
+
|
|
+ if (BB_MMU && (a->action_type & ASKFIRST))
|
|
+ pid = fork();
|
|
+ else
|
|
+ pid = clone(run_child, NULL, CLONE_VM | CLONE_VFORK | SIGCHLD, a);
|
|
+ if (pid) {
|
|
+ if (pid < 0)
|
|
+ message(L_LOG | L_CONSOLE, "can't fork");
|
|
+ return pid; /* Parent or error */
|
|
+ }
|
|
+
|
|
+ abort();
|
|
+ return -1;
|
|
+}
|
|
+
|
|
static struct init_action *mark_terminated(pid_t pid)
|
|
{
|
|
struct init_action *a;
|
|
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
|
|
index 5eac45f..5dea130 100644
|
|
--- a/scripts/Makefile.build
|
|
+++ b/scripts/Makefile.build
|
|
@@ -257,7 +257,7 @@ quiet_cmd_link_o_target = LD $@
|
|
# If the list of objects to link is empty, just create an empty built-in.o
|
|
# -nostdlib is added to make "make LD=gcc ..." work (some people use that)
|
|
cmd_link_o_target = $(if $(strip $(obj-y)),\
|
|
- $(LD) -nostdlib $(ld_flags) -r -o $@ $(filter $(obj-y), $^),\
|
|
+ $(LD) $(ld_flags) -r -o $@ $(filter $(obj-y), $^),\
|
|
rm -f $@; $(AR) rcs $@)
|
|
|
|
$(builtin-target): $(obj-y) FORCE
|
|
diff --git a/scripts/gcc-version.sh b/scripts/gcc-version.sh
|
|
index 0eb27c7..70887a6 100755
|
|
--- a/scripts/gcc-version.sh
|
|
+++ b/scripts/gcc-version.sh
|
|
@@ -6,6 +6,9 @@
|
|
# such as `0295' for gcc-2.95, `0303' for gcc-3.3, etc.
|
|
#
|
|
|
|
+printf '1600'
|
|
+exit 0
|
|
+
|
|
compiler="$*"
|
|
# tr -d '\r': fix up msdos-style line endings (Cygwin et al)
|
|
MAJ_MIN=$(echo __GNUC__ __GNUC_MINOR__ | $compiler -E -xc - | tr -d '\r' | tail -n 1)
|
|
diff --git a/scripts/trylink b/scripts/trylink
|
|
index 2255dee..cafb1ab 100755
|
|
--- a/scripts/trylink
|
|
+++ b/scripts/trylink
|
|
@@ -75,7 +75,7 @@ check_libc_is_glibc() {
|
|
EXE="$1"
|
|
CC="$2"
|
|
CFLAGS="$3"
|
|
-LDFLAGS="$4"
|
|
+LDFLAGS="$4 -Wl,--export-all -Wl,--import-table -Wl,--import-memory -Wl,--shared-memory -Wl,--max-memory=4294967296 -Wl,--no-merge-data-segments -Wl,-no-gc-sections -Wl,--import-undefined -Wl,-shared"
|
|
O_FILES="$5"
|
|
A_FILES="$6"
|
|
# We try to drop libraries from LDLIBS if build works without them,
|
|
@@ -93,10 +93,10 @@ if ! check_cc "-Wl,--sort-section,alignment"; then
|
|
SORT_SECTION=""
|
|
fi
|
|
|
|
-START_GROUP="-Wl,--start-group"
|
|
-END_GROUP="-Wl,--end-group"
|
|
+START_GROUP=""
|
|
+END_GROUP=""
|
|
INFO_OPTS() {
|
|
- echo "-Wl,--warn-common -Wl,-Map,$EXE.map -Wl,--verbose"
|
|
+ echo "-Wl,-Map,$EXE.map -Wl,--verbose"
|
|
}
|
|
|
|
# gold may not support --sort-common (yet)
|
|
diff --git a/shell/hush.c b/shell/hush.c
|
|
index d111f0c..c634ffa 100644
|
|
--- a/shell/hush.c
|
|
+++ b/shell/hush.c
|
|
@@ -353,6 +353,7 @@
|
|
#if ENABLE_HUSH_CASE
|
|
# include <fnmatch.h>
|
|
#endif
|
|
+#include <sched.h>
|
|
#include <sys/times.h>
|
|
#include <sys/utsname.h> /* for setting $HOSTNAME */
|
|
|
|
@@ -9229,6 +9230,71 @@ static int redirect_and_varexp_helper(
|
|
|
|
return setup_redirects(command, sqp);
|
|
}
|
|
+
|
|
+static int run_pipe_child(void *arg) {
|
|
+ struct pipe *pi = ((void **)arg)[0];
|
|
+ struct fd_pair *pipefds = ((void **)arg)[1];
|
|
+ int next_infd = *(int*)((void **)arg)[2];
|
|
+ volatile nommu_save_t *nommu_save = ((void **)arg)[3];
|
|
+ struct command *command = ((void **)arg)[4];
|
|
+ char **argv_expanded = ((void **)arg)[5];
|
|
+
|
|
+#if ENABLE_HUSH_JOB
|
|
+ disable_restore_tty_pgrp_on_exit();
|
|
+ CLEAR_RANDOM_T(&G.random_gen); /* or else $RANDOM repeats in child */
|
|
+
|
|
+ /* Every child adds itself to new process group
|
|
+ * with pgid == pid_of_first_child_in_pipe */
|
|
+ if (G.run_list_level == 1 && G_interactive_fd) {
|
|
+ pid_t pgrp;
|
|
+ pgrp = pi->pgrp;
|
|
+ if (pgrp < 0) /* true for 1st process only */
|
|
+ pgrp = getpid();
|
|
+ if (setpgid(0, pgrp) == 0
|
|
+ && pi->followup != PIPE_BG
|
|
+ && G_saved_tty_pgrp /* we have ctty */
|
|
+ ) {
|
|
+ /* We do it in *every* child, not just first,
|
|
+ * to avoid races */
|
|
+ tcsetpgrp(G_interactive_fd, pgrp);
|
|
+ }
|
|
+ }
|
|
+#endif
|
|
+ if (pi->alive_cmds == 0 && pi->followup == PIPE_BG) {
|
|
+ /* 1st cmd in backgrounded pipe
|
|
+ * should have its stdin /dev/null'ed */
|
|
+ close(0);
|
|
+ if (open(bb_dev_null, O_RDONLY))
|
|
+ xopen("/", O_RDONLY);
|
|
+ } else {
|
|
+ xmove_fd(next_infd, 0);
|
|
+ }
|
|
+ xmove_fd(pipefds->wr, 1);
|
|
+ if (pipefds->rd > 1)
|
|
+ close(pipefds->rd);
|
|
+ /* Like bash, explicit redirects override pipes,
|
|
+ * and the pipe fd (fd#1) is available for dup'ing:
|
|
+ * "cmd1 2>&1 | cmd2": fd#1 is duped to fd#2, thus stderr
|
|
+ * of cmd1 goes into pipe.
|
|
+ */
|
|
+ if (setup_redirects(command, NULL)) {
|
|
+ /* Happens when redir file can't be opened:
|
|
+ * $ hush -c 'echo FOO >&2 | echo BAR 3>/qwe/rty; echo BAZ'
|
|
+ * FOO
|
|
+ * hush: can't open '/qwe/rty': No such file or directory
|
|
+ * BAZ
|
|
+ * (echo BAR is not executed, it hits _exit(1) below)
|
|
+ */
|
|
+ return 1;
|
|
+ }
|
|
+
|
|
+ /* Stores to nommu_save list of env vars putenv'ed
|
|
+ * (NOMMU, on MMU we don't need that) */
|
|
+ /* cast away volatility... */
|
|
+ pseudo_exec((nommu_save_t*)nommu_save, command, argv_expanded);
|
|
+ /* pseudo_exec() does not return */
|
|
+}
|
|
+
|
|
static NOINLINE int run_pipe(struct pipe *pi)
|
|
{
|
|
static const char *const null_ptr = NULL;
|
|
@@ -9584,63 +9650,22 @@ static NOINLINE int run_pipe(struct pipe *pi)
|
|
G.execute_lineno = command->lineno;
|
|
#endif
|
|
|
|
- command->pid = BB_MMU ? fork() : vfork();
|
|
- if (!command->pid) { /* child */
|
|
-#if ENABLE_HUSH_JOB
|
|
- disable_restore_tty_pgrp_on_exit();
|
|
- CLEAR_RANDOM_T(&G.random_gen); /* or else $RANDOM repeats in child */
|
|
-
|
|
- /* Every child adds itself to new process group
|
|
- * with pgid == pid_of_first_child_in_pipe */
|
|
- if (G.run_list_level == 1 && G_interactive_fd) {
|
|
- pid_t pgrp;
|
|
- pgrp = pi->pgrp;
|
|
- if (pgrp < 0) /* true for 1st process only */
|
|
- pgrp = getpid();
|
|
- if (setpgid(0, pgrp) == 0
|
|
- && pi->followup != PIPE_BG
|
|
- && G_saved_tty_pgrp /* we have ctty */
|
|
- ) {
|
|
- /* We do it in *every* child, not just first,
|
|
- * to avoid races */
|
|
- tcsetpgrp(G_interactive_fd, pgrp);
|
|
- }
|
|
- }
|
|
-#endif
|
|
- if (pi->alive_cmds == 0 && pi->followup == PIPE_BG) {
|
|
- /* 1st cmd in backgrounded pipe
|
|
- * should have its stdin /dev/null'ed */
|
|
- close(0);
|
|
- if (open(bb_dev_null, O_RDONLY))
|
|
- xopen("/", O_RDONLY);
|
|
- } else {
|
|
- xmove_fd(next_infd, 0);
|
|
- }
|
|
- xmove_fd(pipefds.wr, 1);
|
|
- if (pipefds.rd > 1)
|
|
- close(pipefds.rd);
|
|
- /* Like bash, explicit redirects override pipes,
|
|
- * and the pipe fd (fd#1) is available for dup'ing:
|
|
- * "cmd1 2>&1 | cmd2": fd#1 is duped to fd#2, thus stderr
|
|
- * of cmd1 goes into pipe.
|
|
- */
|
|
- if (setup_redirects(command, NULL)) {
|
|
- /* Happens when redir file can't be opened:
|
|
- * $ hush -c 'echo FOO >&2 | echo BAR 3>/qwe/rty; echo BAZ'
|
|
- * FOO
|
|
- * hush: can't open '/qwe/rty': No such file or directory
|
|
- * BAZ
|
|
- * (echo BAR is not executed, it hits _exit(1) below)
|
|
- */
|
|
- _exit(1);
|
|
- }
|
|
-
|
|
- /* Stores to nommu_save list of env vars putenv'ed
|
|
- * (NOMMU, on MMU we don't need that) */
|
|
- /* cast away volatility... */
|
|
- pseudo_exec((nommu_save_t*) &nommu_save, command, argv_expanded);
|
|
- /* pseudo_exec() does not return */
|
|
+ void *arg[] = {
|
|
+ pi,
|
|
+ &pipefds,
|
|
+ &next_infd,
|
|
+ &nommu_save,
|
|
+ command,
|
|
+ argv_expanded
|
|
+ };
|
|
+#if BB_MMU
|
|
+ command->pid = fork();
|
|
+ if (command->pid == 0) {
|
|
+ run_pipe_child(arg);
|
|
}
|
|
+#else
|
|
+ command->pid = clone(run_pipe_child, NULL, CLONE_VM | CLONE_VFORK | SIGCHLD, arg);
|
|
+#endif
|
|
|
|
/* parent or error */
|
|
#if ENABLE_HUSH_FAST
|
|
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c
|
|
index 20e7d56..b4af9a0 100644
|
|
--- a/util-linux/fdisk.c
|
|
+++ b/util-linux/fdisk.c
|
|
@@ -611,10 +611,6 @@ valid_part_table_flag(const char *mbuffer)
|
|
|
|
static void fdisk_fatal(const char *why)
|
|
{
|
|
- if (listing) {
|
|
- close_dev_fd();
|
|
- longjmp(listingbuf, 1);
|
|
- }
|
|
bb_error_msg_and_die(why, disk_device);
|
|
}
|
|
|
|
@@ -2926,8 +2922,6 @@ open_list_and_close(const char *device, int user_specified)
|
|
int gb;
|
|
|
|
disk_device = device;
|
|
- if (setjmp(listingbuf))
|
|
- return;
|
|
if (!user_specified)
|
|
if (is_ide_cdrom_or_tape(device))
|
|
return;
|
|
--
|
|
2.25.1
|
|
|