- add and use bb_opendir(), bb_xopendir().
   text    data     bss     dec     hex filename
 889445    9392 1035784 1934621  1d851d busybox.gcc-4.2.orig
 889297    9392 1035784 1934473  1d8489 busybox.gcc-4.2
 889009    9820 1037860 1936689  1d8d31 busybox.gcc-4.1.orig
 888817    9820 1037860 1936497  1d8c71 busybox.gcc-4.1
diff --git a/libbb/opendir.c b/libbb/opendir.c
new file mode 100644
index 0000000..e284db0
--- /dev/null
+++ b/libbb/opendir.c
@@ -0,0 +1,37 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * wrapper for opendir()
+ *
+ * Copyright (C) 2006 Bernhard Fischer <busybox@busybox.net>
+ *
+ * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
+ */
+
+#include <sys/types.h>
+#include <dirent.h>
+#include "libbb.h"
+
+#ifdef L_bb_opendir
+DIR *bb_opendir(const char *path)
+{
+	DIR *dp;
+
+	if ((dp = opendir(path)) == NULL) {
+		bb_perror_msg("unable to open `%s'", path);
+		return NULL;
+	}
+	return dp;
+}
+#endif
+
+#ifdef L_bb_xopendir
+DIR *bb_xopendir(const char *path)
+{
+	DIR *dp;
+
+	if ((dp = opendir(path)) == NULL) {
+		bb_perror_msg_and_die("unable to open `%s'", path);
+	}
+	return dp;
+}
+#endif