tons of bugfixes

This commit is contained in:
Chia-Che Tsai
2015-03-31 14:29:34 -04:00
parent 1eba8e4351
commit 328ca4af9b
45 changed files with 664 additions and 682 deletions
+3 -5
View File
@@ -4,13 +4,11 @@ BUILD_DIR = build
GLIBC_TARGET = $(addprefix $(BUILD_DIR)/,libc.so.6 ld-linux-x86-64.so.2)
all: $(GLIBC_TARGET)
make -C $(SHIM_DIR)/src
make -C $(SHIM_DIR)/test
make -C $(SHIM_DIR) all
debug: DEBUG=debug
debug: $(GLIBC_TARGET)
make -C $(SHIM_DIR)/src debug
make -C $(SHIM_DIR)/test debug
make -C $(SHIM_DIR) debug
# nothing to install
install:
@@ -28,5 +26,5 @@ $(GLIBC_SRC)/configure:
[ ! -f $(GLIBC_SRC).patch ] || git apply $(GLIBC_SRC).patch
clean:
make -C $(SHIM_DIR)/src clean
make -C $(SHIM_DIR) clean
rm -rf $(BUILD_DIR)
+1 -2
View File
@@ -1,11 +1,10 @@
MAKEFLAGS += --check-symlink-times
TARGET := all debug clean
SRC_DIRS := src
TESTS_DIRS := test
DIRS := ${SRC_DIRS} ${TESTS_DIRS}
${TARGET}: ${DIRS}
all debug clean: ${DIRS}
for d in ${DIRS}; \
do \
make $@ -C $$d; \
+2 -1
View File
@@ -79,6 +79,7 @@ struct shim_thread {
void * stack, * stack_top, * stack_red;
void * tcb;
bool user_tcb; /* is tcb assigned by user? */
void * frameptr;
REFTYPE ref_count;
@@ -121,7 +122,7 @@ void get_simple_thread (struct shim_simple_thread * thread);
void put_simple_thread (struct shim_simple_thread * thread);
void allocate_tls (void * tcb_location, struct shim_thread * thread);
void populate_tls (void * tcb_location);
void populate_tls (void * tcb_location, bool user);
void debug_setprefix (shim_tcb_t * tcb);
+8 -14
View File
@@ -593,6 +593,7 @@ void switch_dummy_thread (struct shim_thread * thread)
DkThreadPrivate(real_thread->tcb);
set_cur_thread(real_thread);
debug("set tcb to %p\n", real_thread->tcb);
debug("jump to the stack %p\n", real_thread->frameptr);
debug("shim_vfork success (returning %d)\n", child);
@@ -732,13 +733,13 @@ RESUME_FUNC_BODY(thread)
if (thread->handle_map)
get_handle_map(thread->handle_map);
#ifndef DEBUG_RESUME
//#ifdef DEBUG_RESUME
debug("thread: "
"tid=%d,tgid=%d,parent=%d,stack=%p,frameptr=%p,tcb=%p\n",
thread->tid, thread->tgid,
thread->parent ? thread->parent->tid : thread->tid,
thread->stack, thread->frameptr, thread->tcb);
#endif
//#endif
}
END_RESUME_FUNC
@@ -755,16 +756,13 @@ MIGRATE_FUNC_BODY(running_thread)
DO_MIGRATE(thread, thread, thread_obj, recursive);
ADD_FUNC_ENTRY(new_thread);
__libc_tcb_t * tcb = thread->tcb;
if (tcb && lookup_supervma(tcb, sizeof(__libc_tcb_t), NULL) < 0) {
if (!thread->user_tcb) {
ADD_OFFSET(sizeof(__libc_tcb_t));
ADD_ENTRY(ADDR, base + *offset);
if (!dry) {
__libc_tcb_t * new_tcb = (void *) (base + *offset);
memcpy(new_tcb, tcb, sizeof(__libc_tcb_t));
new_thread->tcb = new_tcb;
memcpy(new_tcb, thread->tcb, sizeof(__libc_tcb_t));
}
} else {
ADD_ENTRY(ADDR, NULL);
}
}
END_MIGRATE_FUNC
@@ -782,6 +780,7 @@ int resume_wrapper (void * param)
thread->in_vm = thread->is_alive = true;
allocate_tls(libc_tcb, thread);
debug_setbuf(tcb, true);
debug("set tcb to %p\n", libc_tcb);
DkObjectsWaitAny(1, &thread_start_event, NO_TIMEOUT);
@@ -798,12 +797,6 @@ RESUME_FUNC_BODY(running_thread)
get_thread(thread);
void * new_tcb = (void *) GET_ENTRY(ADDR);
if (new_tcb) {
RESUME_REBASE(new_tcb);
thread->tcb = new_tcb;
}
if (cur_thread) {
PAL_HANDLE handle = DkThreadCreate(resume_wrapper, thread, 0);
if (!thread)
@@ -819,6 +812,7 @@ RESUME_FUNC_BODY(running_thread)
tcb->debug_buf = SHIM_GET_TLS()->debug_buf;
allocate_tls(libc_tcb, thread);
debug_setprefix(tcb);
debug("after resume, set tcb to %p\n", libc_tcb);
} else {
set_cur_thread(thread);
}
+18 -37
View File
@@ -90,26 +90,6 @@ static inline int test_vma_overlap (struct shim_vma * tmp,
test_vma_startin (tmp, addr, length - 1);
}
static void * heap_base = &__load_address;
static int __set_heap_base (void)
{
unsigned long heap_addr = (unsigned long) &__load_address;
unsigned long shim_size = (unsigned long) &__load_address_end -
(unsigned long) &__load_address;
unsigned long base_size = allocsize;
while ((base_size >> 12) < shim_size)
base_size <<= 1;
while ((base_size << 6) < heap_addr)
base_size <<= 1;
heap_base = (void *) &__load_address - base_size;
debug("heap base is %p\n", heap_base);
return 0;
}
int bkeep_shim_heap (void);
int init_vma (void)
@@ -118,7 +98,6 @@ int init_vma (void)
return -ENOMEM;
bkeep_shim_heap();
__set_heap_base();
create_lock(vma_list_lock);
return 0;
@@ -617,41 +596,43 @@ int bkeep_mprotect (void * addr, size_t length, int prot, const int * flags)
void * get_unmapped_vma (size_t length, int flags)
{
struct shim_vma * tmp, * prev = NULL, * new;
void * addr = heap_base;
new = get_new_vma();
struct shim_vma * new = get_new_vma();
if (!new)
return NULL;
struct shim_vma * tmp, * prev = NULL;
lock(vma_list_lock);
list_for_each_entry_reverse(tmp, &vma_list, list) {
if (tmp->addr >= addr)
continue;
new->addr = pal_control.user_address_begin;
new->length = length;
new->flags = flags|VMA_UNMAPPED;
if (tmp->addr + tmp->length + length <= addr) {
list_for_each_entry(tmp, &vma_list, list) {
if (tmp->addr <= new->addr) {
if (tmp->addr + tmp->length > new->addr)
new->addr = tmp->addr + tmp->length;
prev = tmp;
break;
continue;
}
addr = tmp->addr;
if (tmp->addr >= new->addr + length)
break;
new->addr = tmp->addr + tmp->length;
prev = tmp;
}
if ((unsigned long) addr < length) {
if (new->addr + length > pal_control.user_address_end) {
unlock(vma_list_lock);
put_vma(new);
return NULL;
}
new->addr = (addr -= length);
new->length = length;
new->flags = flags|VMA_UNMAPPED;
assert(!prev || prev->addr + prev->length <= new->addr);
get_vma(new);
list_add(&new->list, prev ? &prev->list : &vma_list);
unlock(vma_list_lock);
return addr;
return new->addr;
}
/* This might not give the same vma but we might need to
@@ -855,7 +836,7 @@ int dump_all_vmas (struct shim_thread * thread, char * buf, size_t size)
if (vma->comment[0])
cnt += snprintf(buf + cnt, size - cnt,
" %c%c%cp 00000000 00:00 0 [%s]\n",
prot[0], prot[1], prot[2], vma->comment[0]);
prot[0], prot[1], prot[2], vma->comment);
else
cnt += snprintf(buf + cnt, size - cnt,
" %c%c%cp 00000000 00:00 0\n",
-1
View File
@@ -382,7 +382,6 @@ __lookup_dcache (struct shim_dentry * start, const char * name, int namelen,
continue;
if (memcmp(fullpath, path, pathlen))
continue;
debug("dentry %p matched path: %s\n", dent, path);
}
get_dentry(dent);
+5 -1
View File
@@ -180,6 +180,11 @@ static int socket_poll (struct shim_handle * hdl, int poll_type)
ret = -ENOTCONN;
goto out;
}
if (sock->sock_state == SOCK_LISTENED) {
ret = -EAGAIN;
goto out;
}
}
if (sock->sock_type == SOCK_DGRAM &&
@@ -187,7 +192,6 @@ static int socket_poll (struct shim_handle * hdl, int poll_type)
ret = -ENOTCONN;
goto out;
}
}
if (poll_type & FS_POLL_WR) {
+1
View File
@@ -738,6 +738,7 @@ static void shim_ipc_helper (void * arg)
__libc_tcb_t tcb;
allocate_tls(&tcb, self);
debug_setbuf(&tcb.shim_tcb, true);
debug("set tcb to %p\n", &tcb);
lock(ipc_helper_lock);
bool notme = (self != ipc_helper_thread);
+1
View File
@@ -109,6 +109,7 @@ static void shim_async_helper (void * arg)
__libc_tcb_t tcb;
allocate_tls(&tcb, self);
debug_setbuf(&tcb.shim_tcb, true);
debug("set tcb to %p\n", &tcb);
lock(async_helper_lock);
+6 -2
View File
@@ -146,6 +146,7 @@ void allocate_tls (void * tcb_location, struct shim_thread * thread)
if (thread) {
thread->tcb = tcb;
thread->user_tcb = false;
tcb->shim_tcb.tp = thread;
tcb->shim_tcb.tid = thread->tid;
} else {
@@ -157,7 +158,7 @@ void allocate_tls (void * tcb_location, struct shim_thread * thread)
assert(SHIM_TLS_CHECK_CANARY());
}
void populate_tls (void * tcb_location)
void populate_tls (void * tcb_location, bool user)
{
__libc_tcb_t * tcb = (__libc_tcb_t *) tcb_location;
assert(tcb);
@@ -165,8 +166,10 @@ void populate_tls (void * tcb_location)
copy_tcb(&tcb->shim_tcb, SHIM_GET_TLS());
struct shim_thread * thread = (struct shim_thread *) tcb->shim_tcb.tp;
if (thread)
if (thread) {
thread->tcb = tcb;
thread->user_tcb = user;
}
DkThreadPrivate(tcb);
assert(SHIM_TLS_CHECK_CANARY());
@@ -590,6 +593,7 @@ int shim_init (int argc, void * args, void ** return_stack)
memset(&tcb, 0, sizeof(__libc_tcb_t));
allocate_tls(&tcb, NULL);
debug_setbuf(&tcb.shim_tcb, true);
debug("set tcb to %p\n", &tcb);
#ifdef PROFILE
unsigned long begin_time = GET_PROFILE_INTERVAL();
+2 -1
View File
@@ -671,7 +671,8 @@ void * shim_do_arch_prctl (int code, void * addr)
if (!addr)
return (void *) -EINVAL;
populate_tls(addr);
populate_tls(addr, true);
debug("set tcb to %p\n", (void *) addr);
return NULL;
case ARCH_GET_FS:
+2
View File
@@ -110,6 +110,7 @@ int clone_implementation_wrapper(struct clone_args * arg)
allocate_tls(my_thread->tcb, my_thread);
shim_tcb_t * tcb = &((__libc_tcb_t *) my_thread->tcb)->shim_tcb;
debug_setbuf(tcb, true);
debug("set tcb to %p\n", my_thread->tcb);
struct shim_regs * regs = __alloca(sizeof(struct shim_regs));
*regs = *((__libc_tcb_t *) arg->parent->tcb)->shim_tcb.context.regs;
@@ -216,6 +217,7 @@ int shim_do_clone (int flags, void * user_stack_addr, int * parent_tidptr,
goto failed;
}
thread->tcb = tls;
thread->user_tcb = true;
} else {
thread->tcb = NULL;
}
+5 -1
View File
@@ -87,7 +87,8 @@ int shim_do_execve_rtld (struct shim_handle * hdl, const char ** argv,
if (!tcb)
return -ENOMEM;
populate_tls(tcb);
populate_tls(tcb, false);
debug("set tcb to %p\n", tcb);
put_handle(cur_thread->exec);
get_handle(hdl);
@@ -306,12 +307,14 @@ retry:
void * stack = cur_thread->stack;
void * stack_top = cur_thread->stack_top;
void * tcb = cur_thread->tcb;
bool user_tcb = cur_thread->user_tcb;
void * frameptr = cur_thread->frameptr;
cur_thread->stack = NULL;
cur_thread->stack_top = NULL;
cur_thread->frameptr = NULL;
cur_thread->tcb = NULL;
cur_thread->user_tcb = false;
cur_thread->in_vm = false;
unlock(cur_thread->lock);
@@ -325,6 +328,7 @@ retry:
cur_thread->stack_top = stack_top;
cur_thread->frameptr = frameptr;
cur_thread->tcb = tcb;
cur_thread->user_tcb = user_tcb;
if (ret < 0) {
cur_thread->in_vm = true;
+1
View File
@@ -104,6 +104,7 @@ int shim_do_fork (void)
return -ENOMEM;
new_thread->tcb = cur_thread->tcb;
new_thread->user_tcb = cur_thread->user_tcb;
new_thread->tgid = new_thread->tid;
new_thread->in_vm = false;
new_thread->is_alive = true;
+2
View File
@@ -84,6 +84,8 @@ int shim_do_vfork (void)
new_thread->is_alive = true;
new_thread->stack = cur_thread->stack;
new_thread->stack_top = cur_thread->stack_top;
new_thread->tcb = cur_thread->tcb;
new_thread->user_tcb = cur_thread->user_tcb;
cur_thread->stack = dummy_stack;
cur_thread->stack_top = dummy_stack + stack_size;
cur_thread->frameptr = NULL;
+4 -4
View File
@@ -7,11 +7,11 @@ level = ../
include ../Makefile
manifest_rules = \
-e 's:\$$(PAL):$(shell pwd)/pal_loader:g' \
-e 's:\$$(PWD):$(shell pwd)/$(appdir):g' \
-e 's:\$$(PAL):$(abspath $(PWD)/../pal_loader):g' \
-e 's:\$$(PWD):$(PWD):g' \
-e 's:\$$(BIN):$(subst .manifest,,$(notdir $@)):g' \
-e 's:\$$(SHIMPATH):$(shell readlink -f ../../src/libsysdb.so):g' \
-e 's:\$$(GLIBCDIR):$(shell readlink -f $(glibc_dir)):g' \
-e 's:\$$(SHIMPATH):$(abspath ../../src/libsysdb.so):g' \
-e 's:\$$(GLIBCDIR):$(abspath $(glibc_dir)):g' \
$(extra_rules)
%.manifest: %.manifest.template
+1 -1
View File
@@ -10,7 +10,7 @@ endif
HTTPD_DIR = httpd-2.4.3
APR_DIR = apr-1.4.6
APRUTIL_DIR = apr-util-1.5.1
PHP_DIR = php-5.3.16
PHP_DIR = php-5.6.6
INSTALL_DIR = $(PWD)/obj
SRC_DIRS = $(HTTPD_DIR) $(APR_DIR) $(APRUTIL_DIR) $(PHP_DIR)
+3 -3
View File
@@ -1,4 +1,4 @@
busybox_src = busybox-1.19.4
busybox_src = busybox-1.23.1
manifests = busybox.manifest busybox_nofork.manifest
targets = busybox busybox_gdb busybox_nofork busybox_nofork_gdb $(manifests)
@@ -10,14 +10,14 @@ debug: MAKE_FLAGS=CC="gcc -g"
debug: $(targets)
busybox busybox_gdb: config_for_graphene
[ -d $(busybox_src) ] || tar -xzf $(busybox_src).tar.gz
[ -d $(busybox_src) ] || tar -xjf $(busybox_src).tar.bz2
cp config_for_graphene $(busybox_src)/.config
cd $(busybox_src) && make $(MAKE_FLAGS)
cp $(busybox_src)/busybox busybox
cp $(busybox_src)/busybox_unstripped busybox_gdb
busybox_nofork busybox_nofork_gdb: $(busybox_src) config_for_graphene_nofork
[ -d $(busybox_src) ] || tar -xzf $(busybox_src).tar.gz
[ -d $(busybox_src) ] || tar -xjf $(busybox_src).tar.bz2
cp config_for_graphene_nofork $(busybox_src)/.config
cd $(busybox_src) && make $(MAKE_FLAGS)
cp $(busybox_src)/busybox busybox_nofork
Binary file not shown.
Binary file not shown.
+102 -57
View File
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.19.4
# Wed Mar 28 21:27:36 2012
# Busybox version: 1.23.1
# Thu Feb 26 19:10:09 2015
#
CONFIG_HAVE_DOT_CONFIG=y
@@ -36,12 +36,15 @@ CONFIG_LAST_SUPPORTED_WCHAR=767
# CONFIG_UNICODE_BIDI_SUPPORT is not set
# CONFIG_UNICODE_NEUTRAL_TABLE is not set
# CONFIG_UNICODE_PRESERVE_BROKEN is not set
# CONFIG_PAM is not set
CONFIG_FEATURE_USE_SENDFILE=y
CONFIG_LONG_OPTS=y
# CONFIG_FEATURE_DEVPTS is not set
# CONFIG_FEATURE_CLEAN_UP is not set
# CONFIG_FEATURE_UTMP is not set
# CONFIG_FEATURE_WTMP is not set
# CONFIG_FEATURE_PIDFILE is not set
CONFIG_PID_FILE_PATH=""
# CONFIG_FEATURE_SUID is not set
# CONFIG_FEATURE_SUID_CONFIG is not set
# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
@@ -62,13 +65,17 @@ CONFIG_FEATURE_HAVE_RPC=y
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
# CONFIG_LFS is not set
CONFIG_CROSS_COMPILER_PREFIX=""
CONFIG_SYSROOT=""
CONFIG_EXTRA_CFLAGS="-g -lc"
CONFIG_EXTRA_LDFLAGS=""
CONFIG_EXTRA_LDLIBS=""
#
# Debugging Options
#
# CONFIG_DEBUG is not set
# CONFIG_DEBUG_PESSIMIZE is not set
# CONFIG_UNIT_TEST is not set
# CONFIG_WERROR is not set
CONFIG_NO_DEBUG_LIB=y
# CONFIG_DMALLOC is not set
@@ -92,7 +99,8 @@ CONFIG_PREFIX="./_install"
# CONFIG_FEATURE_SYSTEMD is not set
# CONFIG_FEATURE_RTMINMAX is not set
CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SIZE_VS_SPEED=2
CONFIG_MD5_SMALL=1
CONFIG_SHA3_SMALL=1
# CONFIG_FEATURE_FAST_TOP is not set
# CONFIG_FEATURE_ETC_NETWORKS is not set
# CONFIG_FEATURE_USE_TERMIOS is not set
@@ -101,6 +109,7 @@ 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 is not set
@@ -129,7 +138,14 @@ CONFIG_FEATURE_COPYBUF_KB=4
# 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 is not set
# CONFIG_BUNZIP2 is not set
# CONFIG_UNLZMA is not set
# CONFIG_FEATURE_LZMA_FAST is not set
# CONFIG_LZMA is not set
# CONFIG_UNXZ is not set
# CONFIG_XZ is not set
CONFIG_BZIP2=y
# CONFIG_CPIO is not set
# CONFIG_FEATURE_CPIO_O is not set
@@ -137,13 +153,13 @@ CONFIG_BZIP2=y
# CONFIG_DPKG is not set
# CONFIG_DPKG_DEB is not set
# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
# CONFIG_GUNZIP is not set
CONFIG_GZIP=y
# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
CONFIG_GZIP_FAST=0
# CONFIG_LZOP is not set
# CONFIG_LZOP_COMPR_HIGH is not set
# CONFIG_RPM2CPIO is not set
# CONFIG_RPM is not set
# CONFIG_RPM2CPIO is not set
CONFIG_TAR=y
# CONFIG_FEATURE_TAR_CREATE is not set
# CONFIG_FEATURE_TAR_AUTODETECT is not set
@@ -156,12 +172,6 @@ CONFIG_TAR=y
# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
# CONFIG_FEATURE_TAR_SELINUX is not set
# CONFIG_UNCOMPRESS is not set
# CONFIG_UNLZMA is not set
# CONFIG_FEATURE_LZMA_FAST is not set
# CONFIG_LZMA is not set
# CONFIG_UNXZ is not set
# CONFIG_XZ is not set
# CONFIG_UNZIP is not set
#
@@ -173,14 +183,19 @@ CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
# CONFIG_FEATURE_DATE_NANO is not set
CONFIG_FEATURE_DATE_COMPAT=y
CONFIG_HOSTID=y
CONFIG_ID=y
CONFIG_GROUPS=y
CONFIG_SHUF=y
CONFIG_TEST=y
CONFIG_FEATURE_TEST_64=y
CONFIG_TOUCH=y
CONFIG_FEATURE_TOUCH_NODEREF=y
CONFIG_FEATURE_TOUCH_SUSV3=y
CONFIG_TR=y
CONFIG_FEATURE_TR_CLASSES=y
CONFIG_FEATURE_TR_EQUIV=y
CONFIG_UNLINK=y
CONFIG_BASE64=y
# CONFIG_WHO is not set
# CONFIG_USERS is not set
@@ -220,7 +235,6 @@ CONFIG_FOLD=y
CONFIG_FSYNC=y
CONFIG_HEAD=y
CONFIG_FEATURE_FANCY_HEAD=y
CONFIG_HOSTID=y
CONFIG_INSTALL=y
CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
CONFIG_LN=y
@@ -257,6 +271,7 @@ CONFIG_SEQ=y
CONFIG_SHA1SUM=y
CONFIG_SHA256SUM=y
CONFIG_SHA512SUM=y
CONFIG_SHA3SUM=y
CONFIG_SLEEP=y
CONFIG_FEATURE_FANCY_SLEEP=y
CONFIG_FEATURE_FLOAT_SLEEP=y
@@ -288,6 +303,11 @@ CONFIG_FEATURE_WC_LARGE=y
CONFIG_WHOAMI=y
CONFIG_YES=y
#
# Common options
#
CONFIG_FEATURE_VERBOSE=y
#
# Common options for cp and mv
#
@@ -304,7 +324,7 @@ CONFIG_FEATURE_AUTOWIDTH=y
CONFIG_FEATURE_HUMAN_READABLE=y
#
# Common options for md5sum, sha1sum, sha256sum, sha512sum
# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
#
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
@@ -354,7 +374,16 @@ CONFIG_WHICH=y
#
# Editors
#
# CONFIG_AWK is not set
# CONFIG_FEATURE_AWK_LIBM is not set
# CONFIG_FEATURE_AWK_GNU_EXTENSIONS is not set
# CONFIG_CMP is not set
# CONFIG_DIFF is not set
# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
# CONFIG_FEATURE_DIFF_DIR is not set
# CONFIG_ED is not set
# CONFIG_PATCH is not set
# CONFIG_SED is not set
# CONFIG_VI is not set
CONFIG_FEATURE_VI_MAX_LEN=0
# CONFIG_FEATURE_VI_8BIT is not set
@@ -369,15 +398,9 @@ CONFIG_FEATURE_VI_MAX_LEN=0
# CONFIG_FEATURE_VI_SET is not set
# CONFIG_FEATURE_VI_WIN_RESIZE is not set
# CONFIG_FEATURE_VI_ASK_TERMINAL is not set
# CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set
# CONFIG_AWK is not set
# CONFIG_FEATURE_AWK_LIBM is not set
# CONFIG_CMP is not set
# CONFIG_DIFF is not set
# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
# CONFIG_FEATURE_DIFF_DIR is not set
# CONFIG_ED is not set
# CONFIG_SED is not set
# CONFIG_FEATURE_VI_UNDO is not set
# CONFIG_FEATURE_VI_UNDO_QUEUE is not set
CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0
# CONFIG_FEATURE_ALLOW_EXEC is not set
#
@@ -394,6 +417,7 @@ CONFIG_FEATURE_FIND_MAXDEPTH=y
CONFIG_FEATURE_FIND_NEWER=y
CONFIG_FEATURE_FIND_INUM=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
@@ -415,6 +439,7 @@ 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
#
# Init Utilities
@@ -451,6 +476,7 @@ CONFIG_ADD_SHELL=y
# CONFIG_ADDUSER is not set
# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
# CONFIG_FEATURE_CHECK_NAMES is not set
CONFIG_LAST_ID=0
CONFIG_FIRST_SYSTEM_ID=0
CONFIG_LAST_SYSTEM_ID=0
# CONFIG_ADDGROUP is not set
@@ -461,7 +487,7 @@ CONFIG_LAST_SYSTEM_ID=0
# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
# CONFIG_GETTY is not set
# CONFIG_LOGIN is not set
# CONFIG_PAM is not set
# CONFIG_LOGIN_SESSION_AS_CHILD is not set
# CONFIG_LOGIN_SCRIPTS is not set
# CONFIG_FEATURE_NOLOGIN is not set
# CONFIG_FEATURE_SECURETTY is not set
@@ -469,6 +495,7 @@ CONFIG_LAST_SYSTEM_ID=0
# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
# CONFIG_CRYPTPW is not set
# CONFIG_CHPASSWD is not set
CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
# CONFIG_SU is not set
# CONFIG_FEATURE_SU_SYSLOG is not set
# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
@@ -518,6 +545,14 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# Linux System Utilities
#
# CONFIG_BLOCKDEV is not set
CONFIG_FATATTR=y
CONFIG_FSTRIM=y
# CONFIG_MDEV is not set
# CONFIG_FEATURE_MDEV_CONF is not set
# CONFIG_FEATURE_MDEV_RENAME is not set
# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
# CONFIG_FEATURE_MDEV_EXEC is not set
# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
# CONFIG_REV is not set
# CONFIG_ACPID is not set
# CONFIG_FEATURE_ACPID_COMPAT is not set
@@ -561,12 +596,6 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_LOSETUP is not set
# CONFIG_LSPCI is not set
# CONFIG_LSUSB is not set
# CONFIG_MDEV is not set
# CONFIG_FEATURE_MDEV_CONF is not set
# CONFIG_FEATURE_MDEV_RENAME is not set
# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
# CONFIG_FEATURE_MDEV_EXEC is not set
# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
# CONFIG_MKSWAP is not set
# CONFIG_FEATURE_MKSWAP_UUID is not set
# CONFIG_MORE is not set
@@ -588,6 +617,7 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_SCRIPTREPLAY is not set
# CONFIG_SETARCH is not set
# CONFIG_SWAPONOFF is not set
# CONFIG_FEATURE_SWAPON_DISCARD is not set
# CONFIG_FEATURE_SWAPON_PRI is not set
# CONFIG_SWITCH_ROOT is not set
# CONFIG_UMOUNT is not set
@@ -596,28 +626,36 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set
# CONFIG_FEATURE_MTAB_SUPPORT is not set
# CONFIG_VOLUMEID is not set
# CONFIG_FEATURE_VOLUMEID_EXT is not set
# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
# CONFIG_FEATURE_VOLUMEID_EXFAT is not set
# CONFIG_FEATURE_VOLUMEID_EXT is not set
# CONFIG_FEATURE_VOLUMEID_F2FS is not set
# CONFIG_FEATURE_VOLUMEID_FAT is not set
# CONFIG_FEATURE_VOLUMEID_HFS is not set
# CONFIG_FEATURE_VOLUMEID_JFS is not set
# CONFIG_FEATURE_VOLUMEID_XFS is not set
# CONFIG_FEATURE_VOLUMEID_NTFS is not set
# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
# CONFIG_FEATURE_VOLUMEID_UDF is not set
# CONFIG_FEATURE_VOLUMEID_LUKS is not set
# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
# CONFIG_FEATURE_VOLUMEID_SYSV is not set
# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
# CONFIG_FEATURE_VOLUMEID_JFS is not set
# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
# CONFIG_FEATURE_VOLUMEID_LUKS is not set
# CONFIG_FEATURE_VOLUMEID_NILFS is not set
# CONFIG_FEATURE_VOLUMEID_NTFS is not set
# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set
# CONFIG_FEATURE_VOLUMEID_SYSV is not set
# CONFIG_FEATURE_VOLUMEID_UDF is not set
# CONFIG_FEATURE_VOLUMEID_XFS is not set
#
# Miscellaneous Utilities
#
# CONFIG_CONSPY is not set
CONFIG_CROND=y
CONFIG_FEATURE_CROND_D=y
CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
CONFIG_LESS=y
CONFIG_FEATURE_LESS_MAXLINES=9999999
CONFIG_FEATURE_LESS_BRACKETS=y
@@ -630,13 +668,17 @@ CONFIG_FEATURE_LESS_DASHCMD=y
CONFIG_FEATURE_LESS_LINENUMS=y
# CONFIG_NANDWRITE is not set
# CONFIG_NANDDUMP is not set
# CONFIG_RFKILL is not set
CONFIG_SETSERIAL=y
# CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set
CONFIG_UBIATTACH=y
CONFIG_UBIDETACH=y
CONFIG_UBIMKVOL=y
CONFIG_UBIRMVOL=y
CONFIG_UBIRSVOL=y
CONFIG_UBIUPDATEVOL=y
# CONFIG_WALL is not set
CONFIG_ADJTIMEX=y
# CONFIG_BBCONFIG is not set
# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
@@ -652,10 +694,6 @@ CONFIG_FEATURE_CHAT_SEND_ESCAPES=y
CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y
CONFIG_FEATURE_CHAT_CLR_ABORT=y
CONFIG_CHRT=y
CONFIG_CROND=y
CONFIG_FEATURE_CROND_D=y
CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
CONFIG_CRONTAB=y
CONFIG_DC=y
CONFIG_FEATURE_DC_LIBM=y
@@ -693,18 +731,14 @@ CONFIG_MOUNTPOINT=y
CONFIG_MT=y
CONFIG_RAIDAUTORUN=y
# CONFIG_READAHEAD is not set
# CONFIG_RFKILL is not set
# CONFIG_RUNLEVEL is not set
CONFIG_RX=y
CONFIG_SETSID=y
CONFIG_STRINGS=y
# CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set
CONFIG_TIME=y
CONFIG_TIMEOUT=y
CONFIG_TTYSIZE=y
CONFIG_VOLNAME=y
# CONFIG_WALL is not set
CONFIG_WATCHDOG=y
#
@@ -736,13 +770,13 @@ CONFIG_FAKEIDENTD=y
CONFIG_FTPD=y
CONFIG_FEATURE_FTP_WRITE=y
CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
CONFIG_FEATURE_FTP_AUTHENTICATION=y
CONFIG_FTPGET=y
CONFIG_FTPPUT=y
CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
CONFIG_HOSTNAME=y
CONFIG_HTTPD=y
CONFIG_FEATURE_HTTPD_RANGES=y
CONFIG_FEATURE_HTTPD_USE_SENDFILE=y
CONFIG_FEATURE_HTTPD_SETUID=y
CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
CONFIG_FEATURE_HTTPD_AUTH_MD5=y
@@ -799,6 +833,7 @@ CONFIG_FEATURE_NETSTAT_PRG=y
CONFIG_NSLOOKUP=y
CONFIG_NTPD=y
CONFIG_FEATURE_NTPD_SERVER=y
CONFIG_FEATURE_NTPD_CONF=y
CONFIG_PSCAN=y
CONFIG_ROUTE=y
CONFIG_SLATTACH=y
@@ -827,6 +862,7 @@ CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
CONFIG_TUNCTL=y
CONFIG_FEATURE_TUNCTL_UG=y
# CONFIG_UDHCPC6 is not set
CONFIG_UDHCPD=y
CONFIG_DHCPRELAY=y
CONFIG_DUMPLEASES=y
@@ -835,6 +871,7 @@ CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y
CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
CONFIG_UDHCPC=y
CONFIG_FEATURE_UDHCPC_ARPING=y
CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
# CONFIG_FEATURE_UDHCP_PORT is not set
CONFIG_UDHCP_DEBUG=9
CONFIG_FEATURE_UDHCP_RFC3397=y
@@ -873,6 +910,7 @@ CONFIG_SENDMAIL=y
# Process Utilities
#
CONFIG_IOSTAT=y
CONFIG_LSOF=y
CONFIG_MPSTAT=y
CONFIG_NMETER=y
CONFIG_PMAP=y
@@ -880,6 +918,13 @@ CONFIG_POWERTOP=y
CONFIG_PSTREE=y
CONFIG_PWDX=y
CONFIG_SMEMCAP=y
CONFIG_TOP=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 is not set
CONFIG_FREE=y
@@ -894,18 +939,12 @@ CONFIG_FEATURE_PIDOF_OMIT=y
CONFIG_PKILL=y
CONFIG_PS=y
CONFIG_FEATURE_PS_WIDE=y
CONFIG_FEATURE_PS_LONG=y
# CONFIG_FEATURE_PS_TIME is not set
# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
CONFIG_RENICE=y
CONFIG_BB_SYSCTL=y
CONFIG_TOP=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_FEATURE_SHOW_THREADS=y
CONFIG_WATCH=y
@@ -951,6 +990,7 @@ CONFIG_ASH_GETOPTS=y
CONFIG_ASH_BUILTIN_ECHO=y
CONFIG_ASH_BUILTIN_PRINTF=y
CONFIG_ASH_BUILTIN_TEST=y
CONFIG_ASH_HELP=y
CONFIG_ASH_CMDCMD=y
# CONFIG_ASH_MAIL is not set
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
@@ -1000,6 +1040,11 @@ CONFIG_FEATURE_IPC_SYSLOG=y
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
CONFIG_LOGREAD=y
CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
CONFIG_FEATURE_KMSG_SYSLOG=y
CONFIG_KLOGD=y
#
# klogd should not be used together with syslog to kernel printk buffer
#
CONFIG_FEATURE_KLOGD_KLOGCTL=y
CONFIG_LOGGER=y
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.19.4
# Wed Mar 28 21:27:36 2012
# Busybox version: 1.23.1
# Thu Feb 26 19:10:35 2015
#
CONFIG_HAVE_DOT_CONFIG=y
@@ -36,12 +36,15 @@ CONFIG_LAST_SUPPORTED_WCHAR=767
# CONFIG_UNICODE_BIDI_SUPPORT is not set
# CONFIG_UNICODE_NEUTRAL_TABLE is not set
# CONFIG_UNICODE_PRESERVE_BROKEN is not set
# CONFIG_PAM is not set
CONFIG_FEATURE_USE_SENDFILE=y
CONFIG_LONG_OPTS=y
# CONFIG_FEATURE_DEVPTS is not set
# CONFIG_FEATURE_CLEAN_UP is not set
# CONFIG_FEATURE_UTMP is not set
# CONFIG_FEATURE_WTMP is not set
# CONFIG_FEATURE_PIDFILE is not set
CONFIG_PID_FILE_PATH=""
# CONFIG_FEATURE_SUID is not set
# CONFIG_FEATURE_SUID_CONFIG is not set
# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
@@ -62,13 +65,17 @@ CONFIG_FEATURE_HAVE_RPC=y
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
# CONFIG_LFS is not set
CONFIG_CROSS_COMPILER_PREFIX=""
CONFIG_SYSROOT=""
CONFIG_EXTRA_CFLAGS="-g -lc"
CONFIG_EXTRA_LDFLAGS=""
CONFIG_EXTRA_LDLIBS=""
#
# Debugging Options
#
# CONFIG_DEBUG is not set
# CONFIG_DEBUG_PESSIMIZE is not set
# CONFIG_UNIT_TEST is not set
# CONFIG_WERROR is not set
CONFIG_NO_DEBUG_LIB=y
# CONFIG_DMALLOC is not set
@@ -92,7 +99,8 @@ CONFIG_PREFIX="./_install"
# CONFIG_FEATURE_SYSTEMD is not set
# CONFIG_FEATURE_RTMINMAX is not set
CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SIZE_VS_SPEED=2
CONFIG_MD5_SMALL=1
CONFIG_SHA3_SMALL=1
# CONFIG_FEATURE_FAST_TOP is not set
# CONFIG_FEATURE_ETC_NETWORKS is not set
# CONFIG_FEATURE_USE_TERMIOS is not set
@@ -101,6 +109,7 @@ 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 is not set
@@ -129,7 +138,14 @@ CONFIG_FEATURE_COPYBUF_KB=4
# 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 is not set
# CONFIG_BUNZIP2 is not set
# CONFIG_UNLZMA is not set
# CONFIG_FEATURE_LZMA_FAST is not set
# CONFIG_LZMA is not set
# CONFIG_UNXZ is not set
# CONFIG_XZ is not set
CONFIG_BZIP2=y
# CONFIG_CPIO is not set
# CONFIG_FEATURE_CPIO_O is not set
@@ -137,13 +153,13 @@ CONFIG_BZIP2=y
# CONFIG_DPKG is not set
# CONFIG_DPKG_DEB is not set
# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
# CONFIG_GUNZIP is not set
CONFIG_GZIP=y
# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
CONFIG_GZIP_FAST=0
# CONFIG_LZOP is not set
# CONFIG_LZOP_COMPR_HIGH is not set
# CONFIG_RPM2CPIO is not set
# CONFIG_RPM is not set
# CONFIG_RPM2CPIO is not set
CONFIG_TAR=y
# CONFIG_FEATURE_TAR_CREATE is not set
# CONFIG_FEATURE_TAR_AUTODETECT is not set
@@ -156,12 +172,6 @@ CONFIG_TAR=y
# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
# CONFIG_FEATURE_TAR_SELINUX is not set
# CONFIG_UNCOMPRESS is not set
# CONFIG_UNLZMA is not set
# CONFIG_FEATURE_LZMA_FAST is not set
# CONFIG_LZMA is not set
# CONFIG_UNXZ is not set
# CONFIG_XZ is not set
# CONFIG_UNZIP is not set
#
@@ -173,14 +183,19 @@ CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
# CONFIG_FEATURE_DATE_NANO is not set
CONFIG_FEATURE_DATE_COMPAT=y
CONFIG_HOSTID=y
CONFIG_ID=y
CONFIG_GROUPS=y
CONFIG_SHUF=y
CONFIG_TEST=y
CONFIG_FEATURE_TEST_64=y
CONFIG_TOUCH=y
CONFIG_FEATURE_TOUCH_NODEREF=y
CONFIG_FEATURE_TOUCH_SUSV3=y
CONFIG_TR=y
CONFIG_FEATURE_TR_CLASSES=y
CONFIG_FEATURE_TR_EQUIV=y
CONFIG_UNLINK=y
CONFIG_BASE64=y
# CONFIG_WHO is not set
# CONFIG_USERS is not set
@@ -220,7 +235,6 @@ CONFIG_FOLD=y
CONFIG_FSYNC=y
CONFIG_HEAD=y
CONFIG_FEATURE_FANCY_HEAD=y
CONFIG_HOSTID=y
CONFIG_INSTALL=y
CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
CONFIG_LN=y
@@ -257,6 +271,7 @@ CONFIG_SEQ=y
CONFIG_SHA1SUM=y
CONFIG_SHA256SUM=y
CONFIG_SHA512SUM=y
CONFIG_SHA3SUM=y
CONFIG_SLEEP=y
CONFIG_FEATURE_FANCY_SLEEP=y
CONFIG_FEATURE_FLOAT_SLEEP=y
@@ -288,6 +303,11 @@ CONFIG_FEATURE_WC_LARGE=y
CONFIG_WHOAMI=y
CONFIG_YES=y
#
# Common options
#
CONFIG_FEATURE_VERBOSE=y
#
# Common options for cp and mv
#
@@ -304,7 +324,7 @@ CONFIG_FEATURE_AUTOWIDTH=y
CONFIG_FEATURE_HUMAN_READABLE=y
#
# Common options for md5sum, sha1sum, sha256sum, sha512sum
# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
#
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
@@ -354,7 +374,16 @@ CONFIG_WHICH=y
#
# Editors
#
# CONFIG_AWK is not set
# CONFIG_FEATURE_AWK_LIBM is not set
# CONFIG_FEATURE_AWK_GNU_EXTENSIONS is not set
# CONFIG_CMP is not set
# CONFIG_DIFF is not set
# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
# CONFIG_FEATURE_DIFF_DIR is not set
# CONFIG_ED is not set
# CONFIG_PATCH is not set
# CONFIG_SED is not set
# CONFIG_VI is not set
CONFIG_FEATURE_VI_MAX_LEN=0
# CONFIG_FEATURE_VI_8BIT is not set
@@ -369,15 +398,9 @@ CONFIG_FEATURE_VI_MAX_LEN=0
# CONFIG_FEATURE_VI_SET is not set
# CONFIG_FEATURE_VI_WIN_RESIZE is not set
# CONFIG_FEATURE_VI_ASK_TERMINAL is not set
# CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set
# CONFIG_AWK is not set
# CONFIG_FEATURE_AWK_LIBM is not set
# CONFIG_CMP is not set
# CONFIG_DIFF is not set
# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
# CONFIG_FEATURE_DIFF_DIR is not set
# CONFIG_ED is not set
# CONFIG_SED is not set
# CONFIG_FEATURE_VI_UNDO is not set
# CONFIG_FEATURE_VI_UNDO_QUEUE is not set
CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0
# CONFIG_FEATURE_ALLOW_EXEC is not set
#
@@ -394,6 +417,7 @@ CONFIG_FEATURE_FIND_MAXDEPTH=y
CONFIG_FEATURE_FIND_NEWER=y
CONFIG_FEATURE_FIND_INUM=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
@@ -415,6 +439,7 @@ 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
#
# Init Utilities
@@ -451,6 +476,7 @@ CONFIG_ADD_SHELL=y
# CONFIG_ADDUSER is not set
# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
# CONFIG_FEATURE_CHECK_NAMES is not set
CONFIG_LAST_ID=0
CONFIG_FIRST_SYSTEM_ID=0
CONFIG_LAST_SYSTEM_ID=0
# CONFIG_ADDGROUP is not set
@@ -461,7 +487,7 @@ CONFIG_LAST_SYSTEM_ID=0
# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
# CONFIG_GETTY is not set
# CONFIG_LOGIN is not set
# CONFIG_PAM is not set
# CONFIG_LOGIN_SESSION_AS_CHILD is not set
# CONFIG_LOGIN_SCRIPTS is not set
# CONFIG_FEATURE_NOLOGIN is not set
# CONFIG_FEATURE_SECURETTY is not set
@@ -469,6 +495,7 @@ CONFIG_LAST_SYSTEM_ID=0
# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
# CONFIG_CRYPTPW is not set
# CONFIG_CHPASSWD is not set
CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
# CONFIG_SU is not set
# CONFIG_FEATURE_SU_SYSLOG is not set
# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
@@ -518,6 +545,14 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# Linux System Utilities
#
# CONFIG_BLOCKDEV is not set
CONFIG_FATATTR=y
CONFIG_FSTRIM=y
# CONFIG_MDEV is not set
# CONFIG_FEATURE_MDEV_CONF is not set
# CONFIG_FEATURE_MDEV_RENAME is not set
# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
# CONFIG_FEATURE_MDEV_EXEC is not set
# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
# CONFIG_REV is not set
# CONFIG_ACPID is not set
# CONFIG_FEATURE_ACPID_COMPAT is not set
@@ -561,12 +596,6 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_LOSETUP is not set
# CONFIG_LSPCI is not set
# CONFIG_LSUSB is not set
# CONFIG_MDEV is not set
# CONFIG_FEATURE_MDEV_CONF is not set
# CONFIG_FEATURE_MDEV_RENAME is not set
# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
# CONFIG_FEATURE_MDEV_EXEC is not set
# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
# CONFIG_MKSWAP is not set
# CONFIG_FEATURE_MKSWAP_UUID is not set
# CONFIG_MORE is not set
@@ -588,6 +617,7 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_SCRIPTREPLAY is not set
# CONFIG_SETARCH is not set
# CONFIG_SWAPONOFF is not set
# CONFIG_FEATURE_SWAPON_DISCARD is not set
# CONFIG_FEATURE_SWAPON_PRI is not set
# CONFIG_SWITCH_ROOT is not set
# CONFIG_UMOUNT is not set
@@ -596,28 +626,36 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set
# CONFIG_FEATURE_MTAB_SUPPORT is not set
# CONFIG_VOLUMEID is not set
# CONFIG_FEATURE_VOLUMEID_EXT is not set
# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
# CONFIG_FEATURE_VOLUMEID_EXFAT is not set
# CONFIG_FEATURE_VOLUMEID_EXT is not set
# CONFIG_FEATURE_VOLUMEID_F2FS is not set
# CONFIG_FEATURE_VOLUMEID_FAT is not set
# CONFIG_FEATURE_VOLUMEID_HFS is not set
# CONFIG_FEATURE_VOLUMEID_JFS is not set
# CONFIG_FEATURE_VOLUMEID_XFS is not set
# CONFIG_FEATURE_VOLUMEID_NTFS is not set
# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
# CONFIG_FEATURE_VOLUMEID_UDF is not set
# CONFIG_FEATURE_VOLUMEID_LUKS is not set
# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
# CONFIG_FEATURE_VOLUMEID_SYSV is not set
# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
# CONFIG_FEATURE_VOLUMEID_JFS is not set
# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
# CONFIG_FEATURE_VOLUMEID_LUKS is not set
# CONFIG_FEATURE_VOLUMEID_NILFS is not set
# CONFIG_FEATURE_VOLUMEID_NTFS is not set
# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set
# CONFIG_FEATURE_VOLUMEID_SYSV is not set
# CONFIG_FEATURE_VOLUMEID_UDF is not set
# CONFIG_FEATURE_VOLUMEID_XFS is not set
#
# Miscellaneous Utilities
#
# CONFIG_CONSPY is not set
CONFIG_CROND=y
CONFIG_FEATURE_CROND_D=y
CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
CONFIG_LESS=y
CONFIG_FEATURE_LESS_MAXLINES=9999999
CONFIG_FEATURE_LESS_BRACKETS=y
@@ -630,13 +668,17 @@ CONFIG_FEATURE_LESS_DASHCMD=y
CONFIG_FEATURE_LESS_LINENUMS=y
# CONFIG_NANDWRITE is not set
# CONFIG_NANDDUMP is not set
# CONFIG_RFKILL is not set
CONFIG_SETSERIAL=y
# CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set
CONFIG_UBIATTACH=y
CONFIG_UBIDETACH=y
CONFIG_UBIMKVOL=y
CONFIG_UBIRMVOL=y
CONFIG_UBIRSVOL=y
CONFIG_UBIUPDATEVOL=y
# CONFIG_WALL is not set
CONFIG_ADJTIMEX=y
# CONFIG_BBCONFIG is not set
# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
@@ -652,10 +694,6 @@ CONFIG_FEATURE_CHAT_SEND_ESCAPES=y
CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y
CONFIG_FEATURE_CHAT_CLR_ABORT=y
CONFIG_CHRT=y
CONFIG_CROND=y
CONFIG_FEATURE_CROND_D=y
CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
CONFIG_CRONTAB=y
CONFIG_DC=y
CONFIG_FEATURE_DC_LIBM=y
@@ -693,18 +731,14 @@ CONFIG_MOUNTPOINT=y
CONFIG_MT=y
CONFIG_RAIDAUTORUN=y
# CONFIG_READAHEAD is not set
# CONFIG_RFKILL is not set
# CONFIG_RUNLEVEL is not set
CONFIG_RX=y
CONFIG_SETSID=y
CONFIG_STRINGS=y
# CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set
CONFIG_TIME=y
CONFIG_TIMEOUT=y
CONFIG_TTYSIZE=y
CONFIG_VOLNAME=y
# CONFIG_WALL is not set
CONFIG_WATCHDOG=y
#
@@ -736,13 +770,13 @@ CONFIG_FAKEIDENTD=y
CONFIG_FTPD=y
CONFIG_FEATURE_FTP_WRITE=y
CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
CONFIG_FEATURE_FTP_AUTHENTICATION=y
CONFIG_FTPGET=y
CONFIG_FTPPUT=y
CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
CONFIG_HOSTNAME=y
CONFIG_HTTPD=y
CONFIG_FEATURE_HTTPD_RANGES=y
CONFIG_FEATURE_HTTPD_USE_SENDFILE=y
CONFIG_FEATURE_HTTPD_SETUID=y
CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
CONFIG_FEATURE_HTTPD_AUTH_MD5=y
@@ -799,6 +833,7 @@ CONFIG_FEATURE_NETSTAT_PRG=y
CONFIG_NSLOOKUP=y
CONFIG_NTPD=y
CONFIG_FEATURE_NTPD_SERVER=y
CONFIG_FEATURE_NTPD_CONF=y
CONFIG_PSCAN=y
CONFIG_ROUTE=y
CONFIG_SLATTACH=y
@@ -827,6 +862,7 @@ CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
CONFIG_TUNCTL=y
CONFIG_FEATURE_TUNCTL_UG=y
# CONFIG_UDHCPC6 is not set
CONFIG_UDHCPD=y
CONFIG_DHCPRELAY=y
CONFIG_DUMPLEASES=y
@@ -835,6 +871,7 @@ CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y
CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
CONFIG_UDHCPC=y
CONFIG_FEATURE_UDHCPC_ARPING=y
CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
# CONFIG_FEATURE_UDHCP_PORT is not set
CONFIG_UDHCP_DEBUG=9
CONFIG_FEATURE_UDHCP_RFC3397=y
@@ -873,6 +910,7 @@ CONFIG_SENDMAIL=y
# Process Utilities
#
CONFIG_IOSTAT=y
CONFIG_LSOF=y
CONFIG_MPSTAT=y
CONFIG_NMETER=y
CONFIG_PMAP=y
@@ -880,6 +918,13 @@ CONFIG_POWERTOP=y
CONFIG_PSTREE=y
CONFIG_PWDX=y
CONFIG_SMEMCAP=y
CONFIG_TOP=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 is not set
CONFIG_FREE=y
@@ -894,18 +939,12 @@ CONFIG_FEATURE_PIDOF_OMIT=y
CONFIG_PKILL=y
CONFIG_PS=y
CONFIG_FEATURE_PS_WIDE=y
CONFIG_FEATURE_PS_LONG=y
# CONFIG_FEATURE_PS_TIME is not set
# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
CONFIG_RENICE=y
CONFIG_BB_SYSCTL=y
CONFIG_TOP=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_FEATURE_SHOW_THREADS=y
CONFIG_WATCH=y
@@ -951,6 +990,7 @@ CONFIG_ASH_GETOPTS=y
CONFIG_ASH_BUILTIN_ECHO=y
CONFIG_ASH_BUILTIN_PRINTF=y
CONFIG_ASH_BUILTIN_TEST=y
CONFIG_ASH_HELP=y
CONFIG_ASH_CMDCMD=y
# CONFIG_ASH_MAIL is not set
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
@@ -1000,6 +1040,11 @@ CONFIG_FEATURE_IPC_SYSLOG=y
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
CONFIG_LOGREAD=y
CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
CONFIG_FEATURE_KMSG_SYSLOG=y
CONFIG_KLOGD=y
#
# klogd should not be used together with syslog to kernel printk buffer
#
CONFIG_FEATURE_KLOGD_KLOGCTL=y
CONFIG_LOGGER=y
+1 -1
View File
@@ -49,4 +49,4 @@ clean-manifests:
rm -rf $(manifests)
clean-tests:
for d in $(test_targets); do (make -C $$d clean || true); done
for d in $(test_targets); do ([ ! -d $$d ] || make -C $$d clean); done
+2 -2
View File
@@ -1,7 +1,7 @@
SRCDIR = LibOS/shim/src
all:
$(MAKE) $(if $(NPROC),-j$(NPROC),) -C $(SRCDIR)
[ ! -d $(SRCDIR) ] || $(MAKE) $(if $(NPROC),-j$(NPROC),) -C $(SRCDIR)
clean:
$(MAKE) -C $(SRCDIR) clean
[ ! -d $(SRCDIR) ] || $(MAKE) -C $(SRCDIR) clean
+11 -3
View File
@@ -5,13 +5,21 @@ PAL=$PAL_DIR/pal
PAL_SEC=$PAL_DIR/pal_sec
MANIFEST=
GDB=
GDB_CMD=
PAL_CMD=$PAL
if [ "$GDB" == "1" ]; then
GDB_CMD="gdb --args"
fi
if [ "$SEC" == "1" ]; then
PAL_CMD=$PAL_SEC
fi
while [ "$1" != "" ];
do
if [ "$1" = "-gdb" ]; then
GDB="gdb --args"
GDB_CMD="gdb --args"
shift
continue
fi
@@ -36,4 +44,4 @@ if [ ! -f "$PAL_CMD" ]; then
exit 1
fi
exec $GDB $PAL $MANIFEST $*
exec $GDB_CMD $PAL_CMD $MANIFEST $*
+10 -5
View File
@@ -1,8 +1,8 @@
CFLAGS-libos = -L../../../build/libos -I../../include
SPECIALS = static pie
NATIVE_TESTS_CPP = $(patsubst %.cpp,%,$(wildcard *.cpp))
NATIVE_TESTS_STATIC = static
NATIVE_TESTS = $(filter-out $(NATIVE_TESTS_STATIC),$(patsubst %.c,%,$(wildcard *.c)))
NATIVE_TESTS = $(patsubst %.c,%,$(wildcard *.c))
targets = $(NATIVE_TESTS) $(NATIVE_TESTS_CPP) $(NATIVE_TESTS_STATIC) \
manifest static.manifest pal pal_sec
@@ -28,21 +28,26 @@ test-helloworld.pthread = grep -q "Hello World" OUTPUT
rm -rf $@
cp $@.template $@
$(NATIVE_TESTS): %: %.c
$(filter-out $(SPECIALS),$(NATIVE_TESTS)): %: %.c
@echo [ $@ ]
@$(CC) $(CFLAGS) $(if $(findstring .libos,$@),$(CFLAGS-libos),) -o $@ $< \
$(shell echo $@ | sed 's/^[^\.]*//g' | sed 's/\./ -l/g')
$(NATIVE_TESTS_CPP): %: %.cpp
$(filter-out $(SPECIALS),$(NATIVE_TESTS_CPP)): %: %.cpp
@echo [ $@ ]
@$(CC) $(CFLAGS) -o $@ $< \
$(shell echo $@ | sed 's/^[^\.]*//g' | sed 's/\./ -l/g')
$(NATIVE_TESTS_STATIC): %: %.c
static: %: %.c
@echo [ $@ ]
@$(CC) $(CFLAGS) -o $@ -static $< \
$(shell echo $@ | sed 's/^[^\.]*//g' | sed 's/\./ -l/g')
pie: %: %.c
@echo [ $@ ]
@$(CC) $(CFLAGS) -fPIC --pie -o $@ $< \
$(shell echo $@ | sed 's/^[^\.]*//g' | sed 's/\./ -l/g')
test-helloworld = grep -q "Hello world" OUTPUT
clean-exec:
+12
View File
@@ -0,0 +1,12 @@
/* -*- mode:c; c-file-style:"k&r"; c-basic-offset: 4; tab-width:4; indent-tabs-mode:nil; mode:auto-fill; fill-column:78; -*- */
/* vim: set ts=4 sw=4 et tw=78 fo=cqt wm=0: */
/* a simple helloworld test */
#include <stdio.h>
int main(int argc, char ** argv)
{
printf("Hello world (%s)!\n", argv[0]);
return 0;
}