summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorPeter Korsgaard <jacmet@sunsite.dk>2010-04-09 16:16:44 +0200
committerPeter Korsgaard <jacmet@sunsite.dk>2010-04-09 16:16:44 +0200
commit6bb35a38c244b20bbd6e85fd16f69ff2c4f0ed72 (patch)
tree432513fc67dcff844ecf5c48f38bdcf1a9fe3523 /target
parentb6ebab842dbb0581526f907bf5b39cad0ac1f756 (diff)
parent0b79c5022d32b15180a18087a0fba5a2f1af5cc7 (diff)
downloadbuildroot-novena-6bb35a38c244b20bbd6e85fd16f69ff2c4f0ed72.tar.gz
buildroot-novena-6bb35a38c244b20bbd6e85fd16f69ff2c4f0ed72.zip
Merge branch 'fs-cleanup' of git://git.busybox.net/~tpetazzoni/git/buildroot
Diffstat (limited to 'target')
-rw-r--r--target/Config.in45
-rw-r--r--target/Makefile.in1
-rw-r--r--target/cloop/Config.in10
-rw-r--r--target/cloop/Makefile.in3
-rw-r--r--target/cloop/cloop.mk108
-rw-r--r--target/cpio/Config.in50
-rw-r--r--target/cpio/cpioroot.mk87
-rw-r--r--target/cramfs/Config.in7
-rw-r--r--target/cramfs/cramfs-01-devtable.patch1269
-rw-r--r--target/cramfs/cramfs-02-endian.patch284
-rw-r--r--target/cramfs/cramfs-03-cygwin_IO.patch13
-rw-r--r--target/cramfs/cramfs.mk86
-rw-r--r--target/ext2/Config.in75
-rw-r--r--target/ext2/ext2root.mk146
-rw-r--r--target/ext2/genext2fs-1.4-nosquash.patch14
-rw-r--r--target/ext2/genext2fs-1.4-remove_ugly_warnings.patch21
-rw-r--r--target/initramfs/Config.in15
-rw-r--r--target/initramfs/gen_initramfs_list.sh203
-rw-r--r--target/initramfs/initramfs.mk43
-rw-r--r--target/iso9660/Config.in22
-rw-r--r--target/iso9660/iso9660.mk95
-rw-r--r--target/iso9660/menu.lst11
-rw-r--r--target/jffs2/Config.in128
-rw-r--r--target/jffs2/jffs2root.mk99
-rw-r--r--target/romfs/Config.in6
-rw-r--r--target/romfs/romfs.mk71
-rw-r--r--target/squashfs/Config.in32
-rw-r--r--target/squashfs/squashfs-3.4-build-system-fix.patch28
-rw-r--r--target/squashfs/squashfs-4.0-build-system-fix.patch65
-rw-r--r--target/squashfs/squashfs-4.0-mksquashfs-race-condition-fix.patch41
-rw-r--r--target/squashfs/squashfsroot.mk85
-rw-r--r--target/tar/Config.in59
-rw-r--r--target/tar/tarroot.mk64
-rw-r--r--target/ubifs/Config.in103
-rw-r--r--target/ubifs/ubifsroot.mk125
-rw-r--r--target/xtensa/defconfig1
36 files changed, 1 insertions, 3514 deletions
diff --git a/target/Config.in b/target/Config.in
index 4cae66cf7..5d5363538 100644
--- a/target/Config.in
+++ b/target/Config.in
@@ -1,47 +1,4 @@
-menu "Target filesystem options"
-
-config BR2_ROOTFS_PREFIX
- string "Custom root fs prefix"
- default "rootfs"
- help
- Add a custom string to the beginning of the root file system name.
-
-config BR2_ROOTFS_SUFFIX
- string "Custom root fs suffix"
- default ""
- help
- Add a custom string to the end of the root file system name.
-
-config BR2_ROOTFS_POST_BUILD_SCRIPT
- string "Custom script to run before packing files"
- default ""
- help
- Specify a script to be run after the build has finished and before
- the BR2 starts packing the files into selected packages.
-
- This gives users the oportunity to do board-specific cleanups,
- add-ons and the like, so the generated files can be used directly
- without further processing.
-
- The script is called with the target directory name as first and
- only argument. Make sure the exit code of that script is 0,
- otherwise make will stop after calling it.
-
-comment "filesystem for target device"
-
-source "target/cramfs/Config.in"
-source "target/cloop/Config.in"
-source "target/ext2/Config.in"
-source "target/jffs2/Config.in"
-source "target/ubifs/Config.in"
-source "target/squashfs/Config.in"
-source "target/tar/Config.in"
-source "target/cpio/Config.in"
-source "target/iso9660/Config.in"
-source "target/initramfs/Config.in"
-source "target/romfs/Config.in"
-
-comment "bootloader for target device"
+menu "Bootloaders"
source "target/x86/grub/Config.in"
#source "target/x86/grub2/Config.in"
diff --git a/target/Makefile.in b/target/Makefile.in
index df980b473..48396d5d8 100644
--- a/target/Makefile.in
+++ b/target/Makefile.in
@@ -62,7 +62,6 @@ ifeq ($(BR2_TARGET_UBOOT),y)
include target/u-boot/Makefile.in
endif
-# and finally build the filesystems/tarballs
include target/*/*.mk
# kernel rules
diff --git a/target/cloop/Config.in b/target/cloop/Config.in
deleted file mode 100644
index 3e01067a1..000000000
--- a/target/cloop/Config.in
+++ /dev/null
@@ -1,10 +0,0 @@
-config BR2_TARGET_ROOTFS_CLOOP
- bool "cloop root filesystem for the target device"
- help
- Build a cloop root filesystem
-
- cloop is a Linux kernel module that enables compressed
- loopback filesystem support. With it you can mount a
- compressed filesystem like a block device and seamlessly
- decompress its data while accessing it. The majority of the
- software on an LNX-BBC is accessed in this fashion.
diff --git a/target/cloop/Makefile.in b/target/cloop/Makefile.in
deleted file mode 100644
index 0afc58f87..000000000
--- a/target/cloop/Makefile.in
+++ /dev/null
@@ -1,3 +0,0 @@
-ifeq ($(BR2_TARGET_ROOTFS_CLOOP),y)
-TARGETS+=clooproot
-endif
diff --git a/target/cloop/cloop.mk b/target/cloop/cloop.mk
deleted file mode 100644
index 059dd6c4b..000000000
--- a/target/cloop/cloop.mk
+++ /dev/null
@@ -1,108 +0,0 @@
-#############################################################
-#
-# mkcloop to build to target cloop filesystems
-#
-#############################################################
-CLOOP_VERSION=2.06
-CLOOP_DIR=$(BUILD_DIR)/cloop-$(CLOOP_VERSION)
-CLOOP_SOURCE=cloop_$(CLOOP_VERSION)-2.tar.gz
-CLOOP_SITE=http://debian-knoppix.alioth.debian.org/sources/
-
-CLOOP_TARGET:=$(IMAGE).cloop
-### Note: not used yet! ck
-### $(DL_DIR)/$(CLOOP_PATCH1):
-### $(call DOWNLOAD,$(CLOOP_PATCH1_URL),$(CLOOP_PATCH1))
-
-$(DL_DIR)/$(CLOOP_SOURCE):
- $(call DOWNLOAD,$(CLOOP_SITE),$(CLOOP_SOURCE))
-
-$(CLOOP_DIR)/.unpacked: $(DL_DIR)/$(CLOOP_SOURCE) ### $(DL_DIR)/$(CLOOP_PATCH1)
- $(ZCAT) $(DL_DIR)/$(CLOOP_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- touch $@
-### $(ZCAT) $(DL_DIR)/$(CLOOP_PATCH1) | patch -p1 -d $(CLOOP_DIR)
-### toolchain/patch-kernel.sh $(CLOOP_DIR) target/cloop/ cloop\*.patch
-
-$(CLOOP_DIR)/create_compressed_fs: $(CLOOP_DIR)/.unpacked
- $(MAKE) CFLAGS="-Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DUSE_ERROR_SILENT" -C $(CLOOP_DIR) \
- APPSONLY=yes -j1
-
-cloop: $(CLOOP_DIR)/create_compressed_fs
-
-cloop-source: $(DL_DIR)/$(CLOOP_SOURCE)
-
-cloop-clean:
- -$(MAKE) -C $(CLOOP_DIR) clean
-
-cloop-dirclean:
- rm -rf $(CLOOP_DIR)
-
-#############################################################
-#
-# Build the cloop.o kernel module for the HOST
-#
-#############################################################
-
-$(CLOOP_DIR)/cloop.o: $(CLOOP_DIR)/create_compressed_fs
- $(MAKE) CFLAGS="-Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DUSE_ERROR_SILENT" -C $(CLOOP_DIR) -j1
-
-cloop-module: $(CLOOP_DIR)/cloop.o
-
-#############################################################
-#
-# Build the cloop root filesystem image
-#
-# Note: we need additionall host tools:
-# required:
-# mkisofs 2.01a34-unofficial-iconv from http://users.utu.fi/jahhein/mkisofs/
-# optional:
-# symlinks: scan/change symbolic links - v1.2 - by Mark Lord
-# from ftp://ftp.ibiblio.org/pub/Linux/utils/file/
-#
-#############################################################
-
-### Note: target/default/device_table.txt is not yet supported! ck
-# the quickfix is to use sudo to mount the previous created cramroot
-check-tools:
- - which symlinks && symlinks -r $(TARGET_DIR)
-
-$(IMAGE).cramfs: cramfsroot
-
-clooproot: cloop check-tools $(IMAGE).cramfs
- ### $(CLOOP_DIR)/create_compressed_fs -q -D target/default/device_table.txt $(TARGET_DIR) $(CLOOP_TARGET)
- ## mkisofs -r $(TARGET_DIR) | $(CLOOP_DIR)/create_compressed_fs - 65536 > $(CLOOP_TARGET)
- sudo mkdir -p /mnt/compressed
- sudo mount -o ro,loop -t cramfs $(IMAGE).cramfs /mnt/compressed
- mkisofs -r /mnt/compressed | $(CLOOP_DIR)/create_compressed_fs - 65536 > $(CLOOP_TARGET)
- - symlinks -r /mnt/compressed
- sudo umount /mnt/compressed
- @echo "Mounting a compressed image:"
- @echo " sudo mkdir -p /mnt/compressed"
- @echo " sudo /sbin/insmod cloop"
- @echo " sudo /sbin/losetup /dev/cloop1 $(CLOOP_TARGET)"
- @echo " sudo mount -o ro -t iso9660 /dev/cloop1 /mnt/compressed"
-
-clooproot-source: cloop-source
-
-clooproot-clean:
- -$(MAKE) -C $(CLOOP_DIR) clean
-
-clooproot-dirclean:
- rm -rf $(CLOOP_DIR)
-
-#############################################################
-# symlinks -r /mnt/compressed
-# dangling: /mnt/compressed/dev/log -> /tmp/log
-# other_fs: /mnt/compressed/etc/mtab -> /proc/mounts
-# other_fs: /mnt/compressed/var/lib/pcmcia -> /tmp
-# other_fs: /mnt/compressed/var/lock -> /tmp
-# other_fs: /mnt/compressed/var/log -> /tmp
-# other_fs: /mnt/compressed/var/pcmcia -> /tmp
-# other_fs: /mnt/compressed/var/run -> /tmp
-# other_fs: /mnt/compressed/var/spool -> /tmp
-# other_fs: /mnt/compressed/var/tmp -> /tmp
-#
-# ls -lrsS root_fs_*.*
-# 1296 -rw-r--r-- 1 claus users 1325478 Mar 13 16:52 root_fs_powerpc.cloop
-# 1448 -rw-r--r-- 1 claus users 1482752 Mar 13 16:52 root_fs_powerpc.cramfs
-# 1840 -rw-r--r-- 1 claus users 1883408 Mar 13 13:14 root_fs_powerpc.jffs2
-#############################################################
diff --git a/target/cpio/Config.in b/target/cpio/Config.in
deleted file mode 100644
index 83bdd21e0..000000000
--- a/target/cpio/Config.in
+++ /dev/null
@@ -1,50 +0,0 @@
-config BR2_TARGET_ROOTFS_CPIO
- bool "cpio the root filesystem"
- select BR2_HOST_FAKEROOT
- help
- Build a cpio archive of the root filesystem
-
-choice
- prompt "Compression method"
- default BR2_TARGET_ROOTFS_CPIO_NONE
- depends on BR2_TARGET_ROOTFS_CPIO
- help
- Select compressor for cpio filesystem of the root filesystem
-
-config BR2_TARGET_ROOTFS_CPIO_NONE
- bool "no compression"
- help
- Do not compress the cpio filesystem.
-
-config BR2_TARGET_ROOTFS_CPIO_GZIP
- bool "gzip"
- help
- Do compress the cpio filesystem with gzip.
- Note that you either have to have gzip installed on your host
- or select to build a gzip for your host. See the packages submenu.
-
-config BR2_TARGET_ROOTFS_CPIO_BZIP2
- bool "bzip2"
- help
- Do compress the cpio filesystem with bzip2.
- Note that you either have to have bzip2 installed on your host
- or select to build a bzip2 for your host. See the packages submenu.
-
-config BR2_TARGET_ROOTFS_CPIO_LZMA
- bool "lzma"
- help
- Do compress the cpio filesystem with lzma.
- Note that you either have to have lzma installed on your host
- or select to build a lzma for your host. See the packages submenu.
-
-endchoice
-
-config BR2_TARGET_ROOTFS_CPIO_COPYTO
- string "also copy the image to..."
- depends on BR2_TARGET_ROOTFS_CPIO
- default ""
- help
- Copies the resulting image to a secondary location
- like a tftp server's root directory.
-
- Example: $(IMAGE)-$(DATE).cpio$(CPIO_ROOTFS_COMPRESSOR_EXT)
diff --git a/target/cpio/cpioroot.mk b/target/cpio/cpioroot.mk
deleted file mode 100644
index 2197d1050..000000000
--- a/target/cpio/cpioroot.mk
+++ /dev/null
@@ -1,87 +0,0 @@
-#############################################################
-#
-# cpio to archive target filesystem
-#
-#############################################################
-
-CPIO_BASE:=$(IMAGE).cpio
-
-CPIO_ROOTFS_COMPRESSOR:=
-CPIO_ROOTFS_COMPRESSOR_EXT:=
-CPIO_ROOTFS_COMPRESSOR_PREREQ:=
-ifeq ($(BR2_TARGET_ROOTFS_CPIO_GZIP),y)
-CPIO_ROOTFS_COMPRESSOR:=gzip -9 -c
-CPIO_ROOTFS_COMPRESSOR_EXT:=gz
-#CPIO_ROOTFS_COMPRESSOR_PREREQ:= gzip-host
-endif
-ifeq ($(BR2_TARGET_ROOTFS_CPIO_BZIP2),y)
-CPIO_ROOTFS_COMPRESSOR:=bzip2 -9 -c
-CPIO_ROOTFS_COMPRESSOR_EXT:=bz2
-#CPIO_ROOTFS_COMPRESSOR_PREREQ:= bzip2-host
-endif
-ifeq ($(BR2_TARGET_ROOTFS_CPIO_LZMA),y)
-CPIO_ROOTFS_COMPRESSOR:=lzma -9 -c
-CPIO_ROOTFS_COMPRESSOR_EXT:=lzma
-CPIO_ROOTFS_COMPRESSOR_PREREQ:= lzma-host
-endif
-
-ifneq ($(CPIO_ROOTFS_COMPRESSOR),)
-CPIO_TARGET := $(CPIO_BASE).$(CPIO_ROOTFS_COMPRESSOR_EXT)
-else
-CPIO_TARGET := $(CPIO_BASE)
-endif
-
-ROOTFS_CPIO_COPYTO:=$(call qstrip,$(BR2_TARGET_ROOTFS_CPIO_COPYTO))
-#
-
-cpioroot-init:
- rm -f $(TARGET_DIR)/init
- ln -s sbin/init $(TARGET_DIR)/init
-
-$(CPIO_BASE): host-fakeroot makedevs cpioroot-init
- # Use fakeroot to pretend all target binaries are owned by root
- rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE))
- touch $(BUILD_DIR)/.fakeroot.00000
- cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE))
- echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE))
-ifneq ($(TARGET_DEVICE_TABLE),)
- # Use fakeroot to pretend to create all needed device nodes
- echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE))
-endif
- # Use fakeroot so tar believes the previous fakery
- echo "cd $(TARGET_DIR) && find . | cpio --quiet -o -H newc > $(CPIO_BASE)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE))
- chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE))
- $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE))
- #-@rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE))
-ifeq ($(CPIO_ROOTFS_COMPRESSOR),)
-ifneq ($(ROOTFS_CPIO_COPYTO),)
- $(Q)cp -f $(CPIO_BASE) $(ROOTFS_CPIO_COPYTO)
-endif
-endif
-
-ifneq ($(CPIO_ROOTFS_COMPRESSOR),)
-$(CPIO_BASE).$(CPIO_ROOTFS_COMPRESSOR_EXT): $(CPIO_ROOTFS_COMPRESSOR_PREREQ) $(CPIO_BASE)
- $(CPIO_ROOTFS_COMPRESSOR) $(CPIO_BASE) > $(CPIO_TARGET)
-ifneq ($(ROOTFS_CPIO_COPYTO),)
- $(Q)cp -f $(CPIO_BASE).$(CPIO_ROOTFS_COMPRESSOR_EXT) $(ROOTFS_CPIO_COPYTO).$(CPIO_ROOTFS_COMPRESSOR_EXT)
-endif
-endif
-
-cpioroot: $(CPIO_TARGET)
-
-cpioroot-source:
-
-cpioroot-clean:
-
-cpioroot-dirclean:
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_TARGET_ROOTFS_CPIO),y)
-TARGETS+=cpioroot
-endif
diff --git a/target/cramfs/Config.in b/target/cramfs/Config.in
deleted file mode 100644
index 0c1cb7822..000000000
--- a/target/cramfs/Config.in
+++ /dev/null
@@ -1,7 +0,0 @@
-config BR2_TARGET_ROOTFS_CRAMFS
- bool "cramfs root filesystem"
- select BR2_HOST_FAKEROOT
- help
- Build a cramfs root filesystem
-
- http://sourceforge.net/projects/cramfs/
diff --git a/target/cramfs/cramfs-01-devtable.patch b/target/cramfs/cramfs-01-devtable.patch
deleted file mode 100644
index 884eb8cb8..000000000
--- a/target/cramfs/cramfs-01-devtable.patch
+++ /dev/null
@@ -1,1269 +0,0 @@
---- cramfs-1.1.orig/cramfsck.c 2002-02-22 17:00:42.000000000 -0700
-+++ cramfs-1.1/cramfsck.c 2002-12-21 01:25:17.000000000 -0700
-@@ -51,10 +51,11 @@
- #include <utime.h>
- #include <sys/ioctl.h>
- #define _LINUX_STRING_H_
--#include <linux/fs.h>
--#include <linux/cramfs_fs.h>
-+#include "linux/cramfs_fs.h"
- #include <zlib.h>
-
-+#define BLKGETSIZE _IO(0x12,96) /* return device size /512 (long *arg) */
-+
- /* Exit codes used by fsck-type programs */
- #define FSCK_OK 0 /* No errors */
- #define FSCK_NONDESTRUCT 1 /* File system errors corrected */
-@@ -75,7 +76,7 @@
- static int opt_verbose = 0; /* 1 = verbose (-v), 2+ = very verbose (-vv) */
- #ifdef INCLUDE_FS_TESTS
- static int opt_extract = 0; /* extract cramfs (-x) */
--static char *extract_dir = "root"; /* extraction directory (-x) */
-+static char *extract_dir = "/"; /* extraction directory (-x) */
- static uid_t euid; /* effective UID */
-
- /* (cramfs_super + start) <= start_dir < end_dir <= start_data <= end_data */
-@@ -155,7 +156,7 @@
- }
-
- if (*length < sizeof(struct cramfs_super)) {
-- die(FSCK_UNCORRECTED, 0, "file length too short");
-+ die(FSCK_UNCORRECTED, 0, "filesystem smaller than a cramfs superblock!");
- }
-
- /* find superblock */
-@@ -190,7 +191,8 @@
- die(FSCK_UNCORRECTED, 0, "zero file count");
- }
- if (*length < super.size) {
-- die(FSCK_UNCORRECTED, 0, "file length too short");
-+ die(FSCK_UNCORRECTED, 0, "file length too short, %lu is smaller than %lu",
-+ *length, super.size);
- }
- else if (*length > super.size) {
- fprintf(stderr, "warning: file extends past end of filesystem\n");
-@@ -267,11 +269,11 @@
- #ifdef INCLUDE_FS_TESTS
- static void print_node(char type, struct cramfs_inode *i, char *name)
- {
-- char info[10];
-+ char info[11];
-
- if (S_ISCHR(i->mode) || (S_ISBLK(i->mode))) {
- /* major/minor numbers can be as high as 2^12 or 4096 */
-- snprintf(info, 10, "%4d,%4d", major(i->size), minor(i->size));
-+ snprintf(info, 11, "%4d,%4d", major(i->size), minor(i->size));
- }
- else {
- /* size be as high as 2^24 or 16777216 */
-@@ -445,8 +447,10 @@
- }
- /* TODO: Do we need to check end_dir for empty case? */
- memcpy(newpath, path, pathlen);
-- newpath[pathlen] = '/';
-- pathlen++;
-+ if (pathlen > 1) {
-+ newpath[pathlen] = '/';
-+ pathlen++;
-+ }
- if (opt_verbose) {
- print_node('d', i, path);
- }
---- cramfs-1.1.orig/device_table.txt 1969-12-31 17:00:00.000000000 -0700
-+++ cramfs-1.1/device_table.txt 2003-01-01 05:13:44.000000000 -0700
-@@ -0,0 +1,129 @@
-+# When building a target filesystem, it is desirable to not have to
-+# become root and then run 'mknod' a thousand times. Using a device
-+# table you can create device nodes and directories "on the fly".
-+#
-+# This is a sample device table file for use with mkcramfs. You can
-+# do all sorts of interesting things with a device table file. For
-+# example, if you want to adjust the permissions on a particular file
-+# you can just add an entry like:
-+# /sbin/foobar f 2755 0 0 - - - - -
-+# and (assuming the file /sbin/foobar exists) it will be made setuid
-+# root (regardless of what its permissions are on the host filesystem.
-+# Furthermore, you can use a single table entry to create a many device
-+# minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15]
-+# I could just use the following two table entries:
-+# /dev/hda b 640 0 0 3 0 0 0 -
-+# /dev/hda b 640 0 0 3 1 1 1 15
-+#
-+# Device table entries take the form of:
-+# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-+# where name is the file name, type can be one of:
-+# f A regular file
-+# d Directory
-+# c Character special device file
-+# b Block special device file
-+# p Fifo (named pipe)
-+# uid is the user id for the target file, gid is the group id for the
-+# target file. The rest of the entries (major, minor, etc) apply only
-+# to device special files.
-+
-+# Have fun
-+# -Erik Andersen <andersen@codepoet.org>
-+#
-+
-+#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-+/dev d 755 0 0 - - - - -
-+/dev/mem c 640 0 0 1 1 0 0 -
-+/dev/kmem c 640 0 0 1 2 0 0 -
-+/dev/null c 640 0 0 1 3 0 0 -
-+/dev/zero c 640 0 0 1 5 0 0 -
-+/dev/random c 640 0 0 1 8 0 0 -
-+/dev/urandom c 640 0 0 1 9 0 0 -
-+/dev/tty c 666 0 0 5 0 0 0 -
-+/dev/tty c 666 0 0 4 0 0 1 6
-+/dev/console c 640 0 0 5 1 0 0 -
-+/dev/ram b 640 0 0 1 1 0 0 -
-+/dev/ram b 640 0 0 1 0 0 1 4
-+/dev/loop b 640 0 0 7 0 0 1 2
-+/dev/ptmx c 666 0 0 5 2 0 0 -
-+#/dev/ttyS c 640 0 0 4 64 0 1 4
-+#/dev/psaux c 640 0 0 10 1 0 0 -
-+#/dev/rtc c 640 0 0 10 135 0 0 -
-+
-+# Adjust permissions on some normal files
-+#/etc/shadow f 600 0 0 - - - - -
-+#/bin/tinylogin f 4755 0 0 - - - - -
-+
-+# User-mode Linux stuff
-+/dev/ubda b 640 0 0 98 0 0 0 -
-+/dev/ubda b 640 0 0 98 1 1 1 15
-+
-+# IDE Devices
-+/dev/hda b 640 0 0 3 0 0 0 -
-+/dev/hda b 640 0 0 3 1 1 1 15
-+/dev/hdb b 640 0 0 3 64 0 0 -
-+/dev/hdb b 640 0 0 3 65 1 1 15
-+#/dev/hdc b 640 0 0 22 0 0 0 -
-+#/dev/hdc b 640 0 0 22 1 1 1 15
-+#/dev/hdd b 640 0 0 22 64 0 0 -
-+#/dev/hdd b 640 0 0 22 65 1 1 15
-+#/dev/hde b 640 0 0 33 0 0 0 -
-+#/dev/hde b 640 0 0 33 1 1 1 15
-+#/dev/hdf b 640 0 0 33 64 0 0 -
-+#/dev/hdf b 640 0 0 33 65 1 1 15
-+#/dev/hdg b 640 0 0 34 0 0 0 -
-+#/dev/hdg b 640 0 0 34 1 1 1 15
-+#/dev/hdh b 640 0 0 34 64 0 0 -
-+#/dev/hdh b 640 0 0 34 65 1 1 15
-+
-+# SCSI Devices
-+#/dev/sda b 640 0 0 8 0 0 0 -
-+#/dev/sda b 640 0 0 8 1 1 1 15
-+#/dev/sdb b 640 0 0 8 16 0 0 -
-+#/dev/sdb b 640 0 0 8 17 1 1 15
-+#/dev/sdc b 640 0 0 8 32 0 0 -
-+#/dev/sdc b 640 0 0 8 33 1 1 15
-+#/dev/sdd b 640 0 0 8 48 0 0 -
-+#/dev/sdd b 640 0 0 8 49 1 1 15
-+#/dev/sde b 640 0 0 8 64 0 0 -
-+#/dev/sde b 640 0 0 8 65 1 1 15
-+#/dev/sdf b 640 0 0 8 80 0 0 -
-+#/dev/sdf b 640 0 0 8 81 1 1 15
-+#/dev/sdg b 640 0 0 8 96 0 0 -
-+#/dev/sdg b 640 0 0 8 97 1 1 15
-+#/dev/sdh b 640 0 0 8 112 0 0 -
-+#/dev/sdh b 640 0 0 8 113 1 1 15
-+#/dev/sg c 640 0 0 21 0 0 1 15
-+#/dev/scd b 640 0 0 11 0 0 1 15
-+#/dev/st c 640 0 0 9 0 0 1 8
-+#/dev/nst c 640 0 0 9 128 0 1 8
-+#/dev/st c 640 0 0 9 32 1 1 4
-+#/dev/st c 640 0 0 9 64 1 1 4
-+#/dev/st c 640 0 0 9 96 1 1 4
-+
-+# Floppy disk devices
-+#/dev/fd b 640 0 0 2 0 0 1 2
-+#/dev/fd0d360 b 640 0 0 2 4 0 0 -
-+#/dev/fd1d360 b 640 0 0 2 5 0 0 -
-+#/dev/fd0h1200 b 640 0 0 2 8 0 0 -
-+#/dev/fd1h1200 b 640 0 0 2 9 0 0 -
-+#/dev/fd0u1440 b 640 0 0 2 28 0 0 -
-+#/dev/fd1u1440 b 640 0 0 2 29 0 0 -
-+#/dev/fd0u2880 b 640 0 0 2 32 0 0 -
-+#/dev/fd1u2880 b 640 0 0 2 33 0 0 -
-+
-+# All the proprietary cdrom devices in the world
-+#/dev/aztcd b 640 0 0 29 0 0 0 -
-+#/dev/bpcd b 640 0 0 41 0 0 0 -
-+#/dev/capi20 c 640 0 0 68 0 0 1 2
-+#/dev/cdu31a b 640 0 0 15 0 0 0 -
-+#/dev/cdu535 b 640 0 0 24 0 0 0 -
-+#/dev/cm206cd b 640 0 0 32 0 0 0 -
-+#/dev/sjcd b 640 0 0 18 0 0 0 -
-+#/dev/sonycd b 640 0 0 15 0 0 0 -
-+#/dev/gscd b 640 0 0 16 0 0 0 -
-+#/dev/sbpcd b 640 0 0 25 0 0 0 -
-+#/dev/sbpcd b 640 0 0 25 0 0 1 4
-+#/dev/mcd b 640 0 0 23 0 0 0 -
-+#/dev/optcd b 640 0 0 17 0 0 0 -
-+
---- cramfs-1.1.orig/mkcramfs.c 2002-02-20 01:03:32.000000000 -0700
-+++ cramfs-1.1/mkcramfs.c 2002-12-21 01:25:17.000000000 -0700
-@@ -1,3 +1,4 @@
-+/* vi: set sw=8 ts=8: */
- /*
- * mkcramfs - make a cramfs file system
- *
-@@ -16,12 +17,21 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ * Added device table support (code taken from mkfs.jffs2.c, credit to
-+ * Erik Andersen <andersen@codepoet.org>) as well as an option to squash
-+ * permissions. - Russ Dill <Russ.Dill@asu.edu> September 2002
-+ *
-+ * Reworked, cleaned up, and updated for cramfs-1.1, December 2002
-+ * - Erik Andersen <andersen@codepoet.org>
-+ *
- */
-
- /*
- * If you change the disk format of cramfs, please update fs/cramfs/README.
- */
-
-+#define _GNU_SOURCE
- #include <sys/types.h>
- #include <stdio.h>
- #include <sys/stat.h>
-@@ -33,8 +43,15 @@
- #include <errno.h>
- #include <string.h>
- #include <stdarg.h>
-+#include <libgen.h>
-+#include <ctype.h>
-+#include <assert.h>
-+#include <getopt.h>
- #include <linux/cramfs_fs.h>
- #include <zlib.h>
-+#ifdef DMALLOC
-+#include <dmalloc.h>
-+#endif
-
- /* Exit codes used by mkfs-type programs */
- #define MKFS_OK 0 /* No errors */
-@@ -71,11 +88,17 @@
- + (1 << CRAMFS_SIZE_WIDTH) - 1 /* filesize */ \
- + (1 << CRAMFS_SIZE_WIDTH) * 4 / PAGE_CACHE_SIZE /* block pointers */ )
-
-+
-+/* The kernel assumes PAGE_CACHE_SIZE as block size. */
-+#define PAGE_CACHE_SIZE (4096)
-+
-+
- static const char *progname = "mkcramfs";
- static unsigned int blksize = PAGE_CACHE_SIZE;
- static long total_blocks = 0, total_nodes = 1; /* pre-count the root node */
- static int image_length = 0;
-
-+
- /*
- * If opt_holes is set, then mkcramfs can create explicit holes in the
- * data, which saves 26 bytes per hole (which is a lot smaller a
-@@ -91,10 +114,12 @@
- static int opt_holes = 0;
- static int opt_pad = 0;
- static int opt_verbose = 0;
-+static int opt_squash = 0;
- static char *opt_image = NULL;
- static char *opt_name = NULL;
-
- static int warn_dev, warn_gid, warn_namelen, warn_skip, warn_size, warn_uid;
-+static const char *const memory_exhausted = "memory exhausted";
-
- /* In-core version of inode / directory entry. */
- struct entry {
-@@ -123,7 +148,7 @@
- {
- FILE *stream = status ? stderr : stdout;
-
-- fprintf(stream, "usage: %s [-h] [-e edition] [-i file] [-n name] dirname outfile\n"
-+ fprintf(stream, "usage: %s [-h] [-e edition] [-i file] [-n name] [-D file] dirname outfile\n"
- " -h print this help\n"
- " -E make all warnings errors (non-zero exit status)\n"
- " -e edition set edition number (part of fsid)\n"
-@@ -133,39 +158,157 @@
- " -s sort directory entries (old option, ignored)\n"
- " -v be more verbose\n"
- " -z make explicit holes (requires >= 2.3.39)\n"
-- " dirname root of the directory tree to be compressed\n"
-+ " -D Use the named FILE as a device table file\n"
-+ " -q squash permissions (make everything owned by root)\n"
-+ " dirname root of the filesystem to be compressed\n"
- " outfile output file\n", progname, PAD_SIZE);
-
- exit(status);
- }
-
--static void die(int status, int syserr, const char *fmt, ...)
-+static void verror_msg(const char *s, va_list p)
-+{
-+ fflush(stdout);
-+ fprintf(stderr, "mkcramfs: ");
-+ vfprintf(stderr, s, p);
-+}
-+
-+static void vperror_msg(const char *s, va_list p)
-+{
-+ int err = errno;
-+
-+ if (s == 0)
-+ s = "";
-+ verror_msg(s, p);
-+ if (*s)
-+ s = ": ";
-+ fprintf(stderr, "%s%s\n", s, strerror(err));
-+}
-+
-+static void perror_msg(const char *s, ...)
-+{
-+ va_list p;
-+
-+ va_start(p, s);
-+ vperror_msg(s, p);
-+ va_end(p);
-+}
-+
-+static void error_msg_and_die(const char *s, ...)
-+{
-+ va_list p;
-+
-+ va_start(p, s);
-+ verror_msg(s, p);
-+ va_end(p);
-+ putc('\n', stderr);
-+ exit(MKFS_ERROR);
-+}
-+
-+static void perror_msg_and_die(const char *s, ...)
-+{
-+ va_list p;
-+
-+ va_start(p, s);
-+ vperror_msg(s, p);
-+ va_end(p);
-+ exit(MKFS_ERROR);
-+}
-+#ifndef DMALLOC
-+extern char *xstrdup(const char *s)
-+{
-+ char *t;
-+
-+ if (s == NULL)
-+ return NULL;
-+ t = strdup(s);
-+ if (t == NULL)
-+ error_msg_and_die(memory_exhausted);
-+ return t;
-+}
-+
-+extern void *xmalloc(size_t size)
-+{
-+ void *ptr = malloc(size);
-+
-+ if (ptr == NULL && size != 0)
-+ error_msg_and_die(memory_exhausted);
-+ return ptr;
-+}
-+
-+extern void *xcalloc(size_t nmemb, size_t size)
-+{
-+ void *ptr = calloc(nmemb, size);
-+
-+ if (ptr == NULL && nmemb != 0 && size != 0)
-+ error_msg_and_die(memory_exhausted);
-+ return ptr;
-+}
-+
-+extern void *xrealloc(void *ptr, size_t size)
-+{
-+ ptr = realloc(ptr, size);
-+ if (ptr == NULL && size != 0)
-+ error_msg_and_die(memory_exhausted);
-+ return ptr;
-+}
-+#endif
-+
-+static FILE *xfopen(const char *path, const char *mode)
- {
-- va_list arg_ptr;
-- int save = errno;
-+ FILE *fp;
-+
-+ if ((fp = fopen(path, mode)) == NULL)
-+ perror_msg_and_die("%s", path);
-+ return fp;
-+}
-
-- fflush(0);
-- va_start(arg_ptr, fmt);
-- fprintf(stderr, "%s: ", progname);
-- vfprintf(stderr, fmt, arg_ptr);
-- if (syserr) {
-- fprintf(stderr, ": %s", strerror(save));
-+extern int xopen(const char *pathname, int flags, mode_t mode)
-+{
-+ int ret;
-+
-+ if (flags & O_CREAT)
-+ ret = open(pathname, flags, mode);
-+ else
-+ ret = open(pathname, flags);
-+ if (ret == -1) {
-+ perror_msg_and_die("%s", pathname);
- }
-- fprintf(stderr, "\n");
-- va_end(arg_ptr);
-- exit(status);
-+ return ret;
- }
-
-+extern char *xreadlink(const char *path)
-+{
-+ static const int GROWBY = 80; /* how large we will grow strings by */
-+
-+ char *buf = NULL;
-+ int bufsize = 0, readsize = 0;
-+
-+ do {
-+ buf = xrealloc(buf, bufsize += GROWBY);
-+ readsize = readlink(path, buf, bufsize); /* 1st try */
-+ if (readsize == -1) {
-+ perror_msg("%s:%s", progname, path);
-+ return NULL;
-+ }
-+ }
-+ while (bufsize < readsize + 1);
-+
-+ buf[readsize] = '\0';
-+
-+ return buf;
-+}
-+
- static void map_entry(struct entry *entry)
- {
- if (entry->path) {
- entry->fd = open(entry->path, O_RDONLY);
- if (entry->fd < 0) {
-- die(MKFS_ERROR, 1, "open failed: %s", entry->path);
-+ error_msg_and_die("open failed: %s", entry->path);
- }
- entry->uncompressed = mmap(NULL, entry->size, PROT_READ, MAP_PRIVATE, entry->fd, 0);
- if (entry->uncompressed == MAP_FAILED) {
-- die(MKFS_ERROR, 1, "mmap failed: %s", entry->path);
-+ error_msg_and_die("mmap failed: %s", entry->path);
- }
- }
- }
-@@ -174,8 +317,9 @@
- {
- if (entry->path) {
- if (munmap(entry->uncompressed, entry->size) < 0) {
-- die(MKFS_ERROR, 1, "munmap failed: %s", entry->path);
-+ error_msg_and_die("munmap failed: %s", entry->path);
- }
-+ entry->uncompressed=NULL;
- close(entry->fd);
- }
- }
-@@ -204,7 +348,8 @@
- find_identical_file(orig->next, newfile));
- }
-
--static void eliminate_doubles(struct entry *root, struct entry *orig) {
-+static void eliminate_doubles(struct entry *root, struct entry *orig)
-+{
- if (orig) {
- if (orig->size && (orig->path || orig->uncompressed))
- find_identical_file(root, orig);
-@@ -232,10 +377,7 @@
-
- /* Set up the path. */
- /* TODO: Reuse the parent's buffer to save memcpy'ing and duplication. */
-- path = malloc(len + 1 + MAX_INPUT_NAMELEN + 1);
-- if (!path) {
-- die(MKFS_ERROR, 1, "malloc failed");
-- }
-+ path = xmalloc(len + 1 + MAX_INPUT_NAMELEN + 1);
- memcpy(path, name, len);
- endpath = path + len;
- *endpath = '/';
-@@ -245,7 +387,7 @@
- dircount = scandir(name, &dirlist, 0, cramsort);
-
- if (dircount < 0) {
-- die(MKFS_ERROR, 1, "scandir failed: %s", name);
-+ error_msg_and_die("scandir failed: %s", name);
- }
-
- /* process directory */
-@@ -269,25 +411,20 @@
- }
- namelen = strlen(dirent->d_name);
- if (namelen > MAX_INPUT_NAMELEN) {
-- die(MKFS_ERROR, 0,
-- "very long (%u bytes) filename found: %s\n"
-- "please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile",
-+ error_msg_and_die(
-+ "Very long (%u bytes) filename `%s' found.\n"
-+ " Please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile. Exiting.\n",
- namelen, dirent->d_name);
- }
- memcpy(endpath, dirent->d_name, namelen + 1);
-
- if (lstat(path, &st) < 0) {
-+ perror(endpath);
- warn_skip = 1;
- continue;
- }
-- entry = calloc(1, sizeof(struct entry));
-- if (!entry) {
-- die(MKFS_ERROR, 1, "calloc failed");
-- }
-- entry->name = strdup(dirent->d_name);
-- if (!entry->name) {
-- die(MKFS_ERROR, 1, "strdup failed");
-- }
-+ entry = xcalloc(1, sizeof(struct entry));
-+ entry->name = xstrdup(dirent->d_name);
- /* truncate multi-byte UTF-8 filenames on character boundary */
- if (namelen > CRAMFS_MAXPATHLEN) {
- namelen = CRAMFS_MAXPATHLEN;
-@@ -297,24 +434,25 @@
- namelen--;
- /* are we reasonably certain it was UTF-8 ? */
- if (entry->name[namelen] < 0x80 || !namelen) {
-- die(MKFS_ERROR, 0, "cannot truncate filenames not encoded in UTF-8");
-+ error_msg_and_die("cannot truncate filenames not encoded in UTF-8");
- }
- }
- entry->name[namelen] = '\0';
- }
- entry->mode = st.st_mode;
- entry->size = st.st_size;
-- entry->uid = st.st_uid;
-+ entry->uid = opt_squash ? 0 : st.st_uid;
- if (entry->uid >= 1 << CRAMFS_UID_WIDTH)
- warn_uid = 1;
-- entry->gid = st.st_gid;
-- if (entry->gid >= 1 << CRAMFS_GID_WIDTH)
-+ entry->gid = opt_squash ? 0 : st.st_gid;
-+ if (entry->gid >= 1 << CRAMFS_GID_WIDTH) {
- /* TODO: We ought to replace with a default
- gid instead of truncating; otherwise there
- are security problems. Maybe mode should
- be &= ~070. Same goes for uid once Linux
- supports >16-bit uids. */
- warn_gid = 1;
-+ }
- size = sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
- *fslen_ub += size;
- if (S_ISDIR(st.st_mode)) {
-@@ -325,21 +463,15 @@
- warn_skip = 1;
- continue;
- }
-- entry->path = strdup(path);
-- if (!entry->path) {
-- die(MKFS_ERROR, 1, "strdup failed");
-- }
-+ entry->path = xstrdup(path);
- if ((entry->size >= 1 << CRAMFS_SIZE_WIDTH)) {
- warn_size = 1;
- entry->size = (1 << CRAMFS_SIZE_WIDTH) - 1;
- }
- }
- } else if (S_ISLNK(st.st_mode)) {
-- entry->uncompressed = malloc(entry->size);
-+ entry->uncompressed = xreadlink(path);
- if (!entry->uncompressed) {
-- die(MKFS_ERROR, 1, "malloc failed");
-- }
-- if (readlink(path, entry->uncompressed, entry->size) < 0) {
- warn_skip = 1;
- continue;
- }
-@@ -351,7 +483,7 @@
- if (entry->size & -(1<<CRAMFS_SIZE_WIDTH))
- warn_dev = 1;
- } else {
-- die(MKFS_ERROR, 0, "bogus file type: %s", entry->name);
-+ error_msg_and_die("bogus file type: %s", entry->name);
- }
-
- if (S_ISREG(st.st_mode) || S_ISLNK(st.st_mode)) {
-@@ -378,7 +510,9 @@
- struct cramfs_super *super = (struct cramfs_super *) base;
- unsigned int offset = sizeof(struct cramfs_super) + image_length;
-
-- offset += opt_pad; /* 0 if no padding */
-+ if (opt_pad) {
-+ offset += opt_pad; /* 0 if no padding */
-+ }
-
- super->magic = CRAMFS_MAGIC;
- super->flags = CRAMFS_FLAG_FSID_VERSION_2 | CRAMFS_FLAG_SORTED_DIRS;
-@@ -414,10 +548,10 @@
- struct cramfs_inode *inode = (struct cramfs_inode *) (base + entry->dir_offset);
-
- if ((offset & 3) != 0) {
-- die(MKFS_ERROR, 0, "illegal offset of %lu bytes", offset);
-+ error_msg_and_die("illegal offset of %lu bytes", offset);
- }
- if (offset >= (1 << (2 + CRAMFS_OFFSET_WIDTH))) {
-- die(MKFS_ERROR, 0, "filesystem too big");
-+ error_msg_and_die("filesystem too big");
- }
- inode->offset = (offset >> 2);
- }
-@@ -429,7 +563,7 @@
- */
- static void print_node(struct entry *e)
- {
-- char info[10];
-+ char info[12];
- char type = '?';
-
- if (S_ISREG(e->mode)) type = 'f';
-@@ -442,11 +576,11 @@
-
- if (S_ISCHR(e->mode) || (S_ISBLK(e->mode))) {
- /* major/minor numbers can be as high as 2^12 or 4096 */
-- snprintf(info, 10, "%4d,%4d", major(e->size), minor(e->size));
-+ snprintf(info, 11, "%4d,%4d", major(e->size), minor(e->size));
- }
- else {
- /* size be as high as 2^24 or 16777216 */
-- snprintf(info, 10, "%9d", e->size);
-+ snprintf(info, 11, "%9d", e->size);
- }
-
- printf("%c %04o %s %5d:%-3d %s\n",
-@@ -462,17 +596,9 @@
- {
- int stack_entries = 0;
- int stack_size = 64;
-- struct entry **entry_stack;
--
-- entry_stack = malloc(stack_size * sizeof(struct entry *));
-- if (!entry_stack) {
-- die(MKFS_ERROR, 1, "malloc failed");
-- }
--
-- if (opt_verbose) {
-- printf("root:\n");
-- }
-+ struct entry **entry_stack = NULL;
-
-+ entry_stack = xmalloc(stack_size * sizeof(struct entry *));
- for (;;) {
- int dir_start = stack_entries;
- while (entry) {
-@@ -506,10 +632,7 @@
- if (entry->child) {
- if (stack_entries >= stack_size) {
- stack_size *= 2;
-- entry_stack = realloc(entry_stack, stack_size * sizeof(struct entry *));
-- if (!entry_stack) {
-- die(MKFS_ERROR, 1, "realloc failed");
-- }
-+ entry_stack = xrealloc(entry_stack, stack_size * sizeof(struct entry *));
- }
- entry_stack[stack_entries] = entry;
- stack_entries++;
-@@ -543,7 +666,7 @@
-
- set_data_offset(entry, base, offset);
- if (opt_verbose) {
-- printf("%s:\n", entry->name);
-+ printf("'%s':\n", entry->name);
- }
- entry = entry->child;
- }
-@@ -553,16 +676,21 @@
-
- static int is_zero(char const *begin, unsigned len)
- {
-- /* Returns non-zero iff the first LEN bytes from BEGIN are all NULs. */
-- return (len-- == 0 ||
-- (begin[0] == '\0' &&
-- (len-- == 0 ||
-- (begin[1] == '\0' &&
-- (len-- == 0 ||
-- (begin[2] == '\0' &&
-- (len-- == 0 ||
-- (begin[3] == '\0' &&
-- memcmp(begin, begin + 4, len) == 0))))))));
-+ if (opt_holes)
-+ /* Returns non-zero iff the first LEN bytes from BEGIN are
-+ all NULs. */
-+ return (len-- == 0 ||
-+ (begin[0] == '\0' &&
-+ (len-- == 0 ||
-+ (begin[1] == '\0' &&
-+ (len-- == 0 ||
-+ (begin[2] == '\0' &&
-+ (len-- == 0 ||
-+ (begin[3] == '\0' &&
-+ memcmp(begin, begin + 4, len) == 0))))))));
-+ else
-+ /* Never create holes. */
-+ return 0;
- }
-
- /*
-@@ -575,37 +703,34 @@
- * Note that size > 0, as a zero-sized file wouldn't ever
- * have gotten here in the first place.
- */
--static unsigned int do_compress(char *base, unsigned int offset, char const *name, char *uncompressed, unsigned int size)
-+static unsigned int do_compress(char *base, unsigned int offset, struct entry *entry)
- {
-+ unsigned int size = entry->size;
- unsigned long original_size = size;
- unsigned long original_offset = offset;
- unsigned long new_size;
- unsigned long blocks = (size - 1) / blksize + 1;
- unsigned long curr = offset + 4 * blocks;
- int change;
-+ char *uncompressed = entry->uncompressed;
-
-- total_blocks += blocks;
-+ total_blocks += blocks;
-
- do {
- unsigned long len = 2 * blksize;
- unsigned int input = size;
-- int err;
--
- if (input > blksize)
- input = blksize;
- size -= input;
-- if (!(opt_holes && is_zero (uncompressed, input))) {
-- err = compress2(base + curr, &len, uncompressed, input, Z_BEST_COMPRESSION);
-- if (err != Z_OK) {
-- die(MKFS_ERROR, 0, "compression error: %s", zError(err));
-- }
-+ if (!is_zero (uncompressed, input)) {
-+ compress(base + curr, &len, uncompressed, input);
- curr += len;
- }
- uncompressed += input;
-
- if (len > blksize*2) {
- /* (I don't think this can happen with zlib.) */
-- die(MKFS_ERROR, 0, "AIEEE: block \"compressed\" to > 2*blocklength (%ld)", len);
-+ error_msg_and_die("AIEEE: block \"compressed\" to > 2*blocklength (%ld)\n", len);
- }
-
- *(u32 *) (base + offset) = curr;
-@@ -618,10 +743,12 @@
- st_blocks * 512. But if you say that then perhaps
- administrative data should also be included in both. */
- change = new_size - original_size;
-- if (opt_verbose > 1) {
-- printf("%6.2f%% (%+d bytes)\t%s\n",
-- (change * 100) / (double) original_size, change, name);
-+#if 0
-+ if (opt_verbose) {
-+ printf("%6.2f%% (%+d bytes)\t%s\n",
-+ (change * 100) / (double) original_size, change, entry->name);
- }
-+#endif
-
- return curr;
- }
-@@ -644,7 +771,7 @@
- set_data_offset(entry, base, offset);
- entry->offset = offset;
- map_entry(entry);
-- offset = do_compress(base, offset, entry->name, entry->uncompressed, entry->size);
-+ offset = do_compress(base, offset, entry);
- unmap_entry(entry);
- }
- }
-@@ -660,13 +787,10 @@
- int fd;
- char *buf;
-
-- fd = open(file, O_RDONLY);
-- if (fd < 0) {
-- die(MKFS_ERROR, 1, "open failed: %s", file);
-- }
-+ fd = xopen(file, O_RDONLY, 0);
- buf = mmap(NULL, image_length, PROT_READ, MAP_PRIVATE, fd, 0);
- if (buf == MAP_FAILED) {
-- die(MKFS_ERROR, 1, "mmap failed");
-+ error_msg_and_die("mmap failed");
- }
- memcpy(base + offset, buf, image_length);
- munmap(buf, image_length);
-@@ -679,6 +803,328 @@
- return (offset + image_length);
- }
-
-+static struct entry *find_filesystem_entry(struct entry *dir, char *name, mode_t type)
-+{
-+ struct entry *e = dir;
-+
-+ if (S_ISDIR(dir->mode)) {
-+ e = dir->child;
-+ }
-+ while (e) {
-+ /* Only bother to do the expensive strcmp on matching file types */
-+ if (type == (e->mode & S_IFMT) && e->name) {
-+ if (S_ISDIR(e->mode)) {
-+ int len = strlen(e->name);
-+
-+ /* Check if we are a parent of the correct path */
-+ if (strncmp(e->name, name, len) == 0) {
-+ /* Is this an _exact_ match? */
-+ if (strcmp(name, e->name) == 0) {
-+ return (e);
-+ }
-+ /* Looks like we found a parent of the correct path */
-+ if (name[len] == '/') {
-+ if (e->child) {
-+ return (find_filesystem_entry (e, name + len + 1, type));
-+ } else {
-+ return NULL;
-+ }
-+ }
-+ }
-+ } else {
-+ if (strcmp(name, e->name) == 0) {
-+ return (e);
-+ }
-+ }
-+ }
-+ e = e->next;
-+ }
-+ return (NULL);
-+}
-+
-+void modify_entry(char *full_path, unsigned long uid, unsigned long gid,
-+ unsigned long mode, unsigned long rdev, struct entry *root, loff_t *fslen_ub)
-+{
-+ char *name, *path, *full;
-+ struct entry *curr, *parent, *entry, *prev;
-+
-+ full = xstrdup(full_path);
-+ path = xstrdup(dirname(full));
-+ name = full_path + strlen(path) + 1;
-+ free(full);
-+ if (strcmp(path, "/") == 0) {
-+ parent = root;
-+ name = full_path + 1;
-+ } else {
-+ if (!(parent = find_filesystem_entry(root, path+1, S_IFDIR)))
-+ error_msg_and_die("%s/%s: could not find parent\n", path, name);
-+ }
-+ if ((entry = find_filesystem_entry(parent, name, (mode & S_IFMT)))) {
-+ /* its there, just modify permissions */
-+ entry->mode = mode;
-+ entry->uid = uid;
-+ entry->gid = gid;
-+ } else { /* make a new entry */
-+
-+ /* code partially replicated from parse_directory() */
-+ size_t namelen;
-+ if (S_ISREG(mode)) {
-+ error_msg_and_die("%s: regular file from device_table file must exist on disk!", full_path);
-+ }
-+
-+ namelen = strlen(name);
-+ if (namelen > MAX_INPUT_NAMELEN) {
-+ error_msg_and_die(
-+ "Very long (%u bytes) filename `%s' found.\n"
-+ " Please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile. Exiting.\n",
-+ namelen, name);
-+ }
-+ entry = xcalloc(1, sizeof(struct entry));
-+ entry->name = xstrdup(name);
-+ /* truncate multi-byte UTF-8 filenames on character boundary */
-+ if (namelen > CRAMFS_MAXPATHLEN) {
-+ namelen = CRAMFS_MAXPATHLEN;
-+ warn_namelen = 1;
-+ /* the first lost byte must not be a trail byte */
-+ while ((entry->name[namelen] & 0xc0) == 0x80) {
-+ namelen--;
-+ /* are we reasonably certain it was UTF-8 ? */
-+ if (entry->name[namelen] < 0x80 || !namelen) {
-+ error_msg_and_die("cannot truncate filenames not encoded in UTF-8");
-+ }
-+ }
-+ entry->name[namelen] = '\0';
-+ }
-+ entry->mode = mode;
-+ entry->uid = uid;
-+ entry->gid = gid;
-+ entry->size = 0;
-+ if (S_ISBLK(mode) || S_ISCHR(mode)) {
-+ entry->size = rdev;
-+ if (entry->size & -(1<<CRAMFS_SIZE_WIDTH))
-+ warn_dev = 1;
-+ }
-+
-+ /* ok, now we have to backup and correct the size of all the entries above us */
-+ *fslen_ub += sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
-+ parent->size += sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
-+
-+ /* alright, time to link us in */
-+ curr = parent->child;
-+ prev = NULL;
-+ while (curr && strcmp(name, curr->name) > 0) {
-+ prev = curr;
-+ curr = curr->next;
-+ }
-+ if (!prev) parent->child = entry;
-+ else prev->next = entry;
-+ entry->next = curr;
-+ entry->child = NULL;
-+ }
-+ if (entry->uid >= 1 << CRAMFS_UID_WIDTH)
-+ warn_uid = 1;
-+ if (entry->gid >= 1 << CRAMFS_GID_WIDTH) {
-+ /* TODO: We ought to replace with a default
-+ gid instead of truncating; otherwise there
-+ are security problems. Maybe mode should
-+ be &= ~070. Same goes for uid once Linux
-+ supports >16-bit uids. */
-+ warn_gid = 1;
-+ }
-+ free(path);
-+}
-+
-+/* the GNU C library has a wonderful scanf("%as", string) which will
-+ allocate the string with the right size, good to avoid buffer overruns.
-+ the following macros use it if available or use a hacky workaround...
-+ */
-+
-+#ifdef __GNUC__
-+#define SCANF_PREFIX "a"
-+#define SCANF_STRING(s) (&s)
-+#define GETCWD_SIZE 0
-+#else
-+#define SCANF_PREFIX "511"
-+#define SCANF_STRING(s) (s = xmalloc(512))
-+#define GETCWD_SIZE -1
-+inline int snprintf(char *str, size_t n, const char *fmt, ...)
-+{
-+ int ret;
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ ret = vsprintf(str, fmt, ap);
-+ va_end(ap);
-+ return ret;
-+}
-+#endif
-+
-+/* device table entries take the form of:
-+ <path> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-+ /dev/mem c 640 0 0 1 1 0 0 -
-+
-+ type can be one of:
-+ f A regular file
-+ d Directory
-+ c Character special device file
-+ b Block special device file
-+ p Fifo (named pipe)
-+
-+ I don't bother with symlinks (permissions are irrelevant), hard
-+ links (special cases of regular files), or sockets (why bother).
-+
-+ Regular files must exist in the target root directory. If a char,
-+ block, fifo, or directory does not exist, it will be created.
-+*/
-+
-+static int interpret_table_entry(char *line, struct entry *root, loff_t *fslen_ub)
-+{
-+ char type, *name = NULL;
-+ unsigned long mode = 0755, uid = 0, gid = 0, major = 0, minor = 0;
-+ unsigned long start = 0, increment = 1, count = 0;
-+
-+ if (sscanf (line, "%" SCANF_PREFIX "s %c %lo %lu %lu %lu %lu %lu %lu %lu",
-+ SCANF_STRING(name), &type, &mode, &uid, &gid, &major, &minor,
-+ &start, &increment, &count) < 0)
-+ {
-+ return 1;
-+ }
-+
-+ if (!strcmp(name, "/")) {
-+ error_msg_and_die("Device table entries require absolute paths");
-+ }
-+
-+ switch (type) {
-+ case 'd':
-+ mode |= S_IFDIR;
-+ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
-+ break;
-+ case 'f':
-+ mode |= S_IFREG;
-+ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
-+ break;
-+ case 'p':
-+ mode |= S_IFIFO;
-+ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
-+ break;
-+ case 'c':
-+ case 'b':
-+ mode |= (type == 'c') ? S_IFCHR : S_IFBLK;
-+ if (count > 0) {
-+ char *buf;
-+ unsigned long i;
-+ dev_t rdev;
-+
-+ for (i = start; i < count; i++) {
-+ asprintf(&buf, "%s%lu", name, i);
-+ rdev = makedev(major, minor + (i * increment - start));
-+ modify_entry(buf, uid, gid, mode, rdev, root, fslen_ub);
-+ free(buf);
-+ }
-+ } else {
-+ dev_t rdev = makedev(major, minor);
-+ modify_entry(name, uid, gid, mode, rdev, root, fslen_ub);
-+ }
-+ break;
-+ default:
-+ error_msg_and_die("Unsupported file type");
-+ }
-+ free(name);
-+ return 0;
-+}
-+
-+static int parse_device_table(FILE *file, struct entry *root, loff_t *fslen_ub)
-+{
-+ char *line;
-+ int status = 0;
-+ size_t length = 0;
-+
-+ /* Turn off squash, since we must ensure that values
-+ * entered via the device table are not squashed */
-+ opt_squash = 0;
-+
-+ /* Looks ok so far. The general plan now is to read in one
-+ * line at a time, check for leading comment delimiters ('#'),
-+ * then try and parse the line as a device table. If we fail
-+ * to parse things, try and help the poor fool to fix their
-+ * device table with a useful error msg... */
-+ line = NULL;
-+ while (getline(&line, &length, file) != -1) {
-+ /* First trim off any whitespace */
-+ int len = strlen(line);
-+
-+ /* trim trailing whitespace */
-+ while (len > 0 && isspace(line[len - 1]))
-+ line[--len] = '\0';
-+ /* trim leading whitespace */
-+ memmove(line, &line[strspn(line, " \n\r\t\v")], len);
-+
-+ /* How long are we after trimming? */
-+ len = strlen(line);
-+
-+ /* If this is NOT a comment line, try to interpret it */
-+ if (len && *line != '#') {
-+ if (interpret_table_entry(line, root, fslen_ub))
-+ status = 1;
-+ }
-+
-+ free(line);
-+ line = NULL;
-+ }
-+ free(line);
-+ fclose(file);
-+
-+ return status;
-+}
-+
-+void traverse(struct entry *entry, int depth)
-+{
-+ struct entry *curr = entry;
-+ int i;
-+
-+ while (curr) {
-+ for (i = 0; i < depth; i++) putchar(' ');
-+ printf("%s: size=%d mode=%d same=%p\n",
-+ (curr->name)? (char*)curr->name : "/",
-+ curr->size, curr->mode, curr->same);
-+ if (curr->child) traverse(curr->child, depth + 4);
-+ curr = curr->next;
-+ }
-+}
-+
-+static void free_filesystem_entry(struct entry *dir)
-+{
-+ struct entry *e = dir, *last;
-+
-+ if (S_ISDIR(dir->mode)) {
-+ e = dir->child;
-+ }
-+ while (e) {
-+ if (e->name)
-+ free(e->name);
-+ if (e->path)
-+ free(e->path);
-+ if (e->uncompressed)
-+ free(e->uncompressed);
-+ last = e;
-+ if (e->child) {
-+ free_filesystem_entry(e);
-+ }
-+ e = e->next;
-+ free(last);
-+ }
-+}
-+
-+
-+/*
-+ * Usage:
-+ *
-+ * mkcramfs directory-name outfile
-+ *
-+ * where "directory-name" is simply the root of the directory
-+ * tree that we want to generate a compressed filesystem out
-+ * of.
-+ */
- int main(int argc, char **argv)
- {
- struct stat st; /* used twice... */
-@@ -692,6 +1138,7 @@
- u32 crc;
- int c; /* for getopt */
- char *ep; /* for strtoul */
-+ FILE *devtable = NULL;
-
- total_blocks = 0;
-
-@@ -699,7 +1146,7 @@
- progname = argv[0];
-
- /* command line options */
-- while ((c = getopt(argc, argv, "hEe:i:n:psvz")) != EOF) {
-+ while ((c = getopt(argc, argv, "hEe:i:n:psvzD:q")) != EOF) {
- switch (c) {
- case 'h':
- usage(MKFS_OK);
-@@ -715,7 +1162,7 @@
- case 'i':
- opt_image = optarg;
- if (lstat(opt_image, &st) < 0) {
-- die(MKFS_ERROR, 1, "lstat failed: %s", opt_image);
-+ error_msg_and_die("lstat failed: %s", opt_image);
- }
- image_length = st.st_size; /* may be padded later */
- fslen_ub += (image_length + 3); /* 3 is for padding */
-@@ -736,6 +1183,16 @@
- case 'z':
- opt_holes = 1;
- break;
-+ case 'q':
-+ opt_squash = 1;
-+ break;
-+ case 'D':
-+ devtable = xfopen(optarg, "r");
-+ if (fstat(fileno(devtable), &st) < 0)
-+ perror_msg_and_die(optarg);
-+ if (st.st_size < 10)
-+ error_msg_and_die("%s: not a proper device table file\n", optarg);
-+ break;
- }
- }
-
-@@ -745,25 +1202,23 @@
- outfile = argv[optind + 1];
-
- if (stat(dirname, &st) < 0) {
-- die(MKFS_USAGE, 1, "stat failed: %s", dirname);
-- }
-- fd = open(outfile, O_WRONLY | O_CREAT | O_TRUNC, 0666);
-- if (fd < 0) {
-- die(MKFS_USAGE, 1, "open failed: %s", outfile);
-+ error_msg_and_die("stat failed: %s", dirname);
- }
-+ fd = xopen(outfile, O_WRONLY | O_CREAT | O_TRUNC, 0666);
-
-- root_entry = calloc(1, sizeof(struct entry));
-- if (!root_entry) {
-- die(MKFS_ERROR, 1, "calloc failed");
-- }
-+ root_entry = xcalloc(1, sizeof(struct entry));
- root_entry->mode = st.st_mode;
- root_entry->uid = st.st_uid;
- root_entry->gid = st.st_gid;
-
- root_entry->size = parse_directory(root_entry, dirname, &root_entry->child, &fslen_ub);
-
-+ if (devtable) {
-+ parse_device_table(devtable, root_entry, &fslen_ub);
-+ }
-+
- /* always allocate a multiple of blksize bytes because that's
-- what we're going to write later on */
-+ what we're going to write later on */
- fslen_ub = ((fslen_ub - 1) | (blksize - 1)) + 1;
-
- if (fslen_ub > MAXFSLEN) {
-@@ -790,7 +1245,7 @@
- rom_image = mmap(NULL, fslen_ub?fslen_ub:1, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-
- if (rom_image == MAP_FAILED) {
-- die(MKFS_ERROR, 1, "mmap failed");
-+ error_msg_and_die("mmap failed");
- }
-
- /* Skip the first opt_pad bytes for boot loader code */
-@@ -807,6 +1262,7 @@
- }
-
- offset = write_directory_structure(root_entry->child, rom_image, offset);
-+ if (opt_verbose)
- printf("Directory data: %d bytes\n", offset);
-
- offset = write_data(root_entry, rom_image, offset);
-@@ -814,30 +1270,38 @@
- /* We always write a multiple of blksize bytes, so that
- losetup works. */
- offset = ((offset - 1) | (blksize - 1)) + 1;
-+ if (opt_verbose)
- printf("Everything: %d kilobytes\n", offset >> 10);
-
- /* Write the superblock now that we can fill in all of the fields. */
- write_superblock(root_entry, rom_image+opt_pad, offset);
-+ if (opt_verbose)
- printf("Super block: %d bytes\n", sizeof(struct cramfs_super));
-
- /* Put the checksum in. */
- crc = crc32(0L, Z_NULL, 0);
- crc = crc32(crc, (rom_image+opt_pad), (offset-opt_pad));
- ((struct cramfs_super *) (rom_image+opt_pad))->fsid.crc = crc;
-+ if (opt_verbose)
- printf("CRC: %x\n", crc);
-
- /* Check to make sure we allocated enough space. */
- if (fslen_ub < offset) {
-- die(MKFS_ERROR, 0, "not enough space allocated for ROM image (%Ld allocated, %d used)", fslen_ub, offset);
-+ error_msg_and_die("not enough space allocated for ROM "
-+ "image (%Ld allocated, %d used)", fslen_ub, offset);
- }
-
- written = write(fd, rom_image, offset);
- if (written < 0) {
-- die(MKFS_ERROR, 1, "write failed");
-+ error_msg_and_die("write failed");
- }
- if (offset != written) {
-- die(MKFS_ERROR, 0, "ROM image write failed (wrote %d of %d bytes)", written, offset);
-+ error_msg_and_die("ROM image write failed (wrote %d of %d bytes)", written, offset);
- }
-+
-+ /* Free up memory */
-+ free_filesystem_entry(root_entry);
-+ free(root_entry);
-
- /* (These warnings used to come at the start, but they scroll off the
- screen too quickly.) */
diff --git a/target/cramfs/cramfs-02-endian.patch b/target/cramfs/cramfs-02-endian.patch
deleted file mode 100644
index 0da55bfae..000000000
--- a/target/cramfs/cramfs-02-endian.patch
+++ /dev/null
@@ -1,284 +0,0 @@
---- cramfs-1.1/mkcramfs.c.orig 2005-04-13 05:55:57.000000000 -0600
-+++ cramfs-1.1/mkcramfs.c 2005-04-13 16:19:57.000000000 -0600
-@@ -117,6 +117,7 @@
- static int opt_squash = 0;
- static char *opt_image = NULL;
- static char *opt_name = NULL;
-+static int swap_endian = 0;
-
- static int warn_dev, warn_gid, warn_namelen, warn_skip, warn_size, warn_uid;
- static const char *const memory_exhausted = "memory exhausted";
-@@ -155,6 +156,8 @@
- " -i file insert a file image into the filesystem (requires >= 2.4.0)\n"
- " -n name set name of cramfs filesystem\n"
- " -p pad by %d bytes for boot code\n"
-+ " -l litte endian filesystem\n"
-+ " -b big endian filesystem\n"
- " -s sort directory entries (old option, ignored)\n"
- " -v be more verbose\n"
- " -z make explicit holes (requires >= 2.3.39)\n"
-@@ -504,6 +506,50 @@
- return totalsize;
- }
-
-+/* routines to swap endianness/bitfields in inode/superblock block data */
-+static void fix_inode(struct cramfs_inode *inode)
-+{
-+#define wswap(x) (((x)>>24) | (((x)>>8)&0xff00) | (((x)&0xff00)<<8) | (((x)&0xff)<<24))
-+ /* attempt #2 */
-+ inode->mode = (inode->mode >> 8) | ((inode->mode&0xff)<<8);
-+ inode->uid = (inode->uid >> 8) | ((inode->uid&0xff)<<8);
-+ inode->size = (inode->size >> 16) | (inode->size&0xff00) |
-+ ((inode->size&0xff)<<16);
-+ ((u32*)inode)[2] = wswap(inode->offset | (inode->namelen<<26));
-+}
-+
-+static void fix_offset(struct cramfs_inode *inode, u32 offset)
-+{
-+ u32 tmp = wswap(((u32*)inode)[2]);
-+ ((u32*)inode)[2] = wswap((offset >> 2) | (tmp&0xfc000000));
-+}
-+
-+static void fix_block_pointer(u32 *p)
-+{
-+ *p = wswap(*p);
-+}
-+
-+static void fix_super(struct cramfs_super *super)
-+{
-+ u32 *p = (u32*)super;
-+
-+ /* fix superblock fields */
-+ p[0] = wswap(p[0]); /* magic */
-+ p[1] = wswap(p[1]); /* size */
-+ p[2] = wswap(p[2]); /* flags */
-+ p[3] = wswap(p[3]); /* future */
-+
-+ /* fix filesystem info fields */
-+ p = (u32*)&super->fsid;
-+ p[0] = wswap(p[0]); /* crc */
-+ p[1] = wswap(p[1]); /* edition */
-+ p[2] = wswap(p[2]); /* blocks */
-+ p[3] = wswap(p[3]); /* files */
-+
-+ fix_inode(&super->root);
-+#undef wswap
-+}
-+
- /* Returns sizeof(struct cramfs_super), which includes the root inode. */
- static unsigned int write_superblock(struct entry *root, char *base, int size)
- {
-@@ -539,6 +585,7 @@
- super->root.gid = root->gid;
- super->root.size = root->size;
- super->root.offset = offset >> 2;
-+ if (swap_endian) fix_super(super);
-
- return offset;
- }
-@@ -553,7 +600,10 @@
- if (offset >= (1 << (2 + CRAMFS_OFFSET_WIDTH))) {
- error_msg_and_die("filesystem too big");
- }
-- inode->offset = (offset >> 2);
-+ if (swap_endian)
-+ fix_offset(inode, offset);
-+ else
-+ inode->offset = (offset >> 2);
- }
-
- /*
-@@ -638,6 +688,7 @@
- stack_entries++;
- }
- entry = entry->next;
-+ if (swap_endian) fix_inode(inode);
- }
-
- /*
-@@ -734,6 +785,7 @@
- }
-
- *(u32 *) (base + offset) = curr;
-+ if (swap_endian) fix_block_pointer((u32*)(base + offset));
- offset += 4;
- } while (size);
-
-@@ -1146,7 +1198,7 @@
- progname = argv[0];
-
- /* command line options */
-- while ((c = getopt(argc, argv, "hEe:i:n:psvzD:q")) != EOF) {
-+ while ((c = getopt(argc, argv, "hEe:i:n:psvzD:qlb")) != EOF) {
- switch (c) {
- case 'h':
- usage(MKFS_OK);
-@@ -1174,6 +1227,18 @@
- opt_pad = PAD_SIZE;
- fslen_ub += PAD_SIZE;
- break;
-+ case 'b':
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+ swap_endian = 1;
-+ printf("Swapping filesystem endian-ness\n");
-+#endif
-+ break;
-+ case 'l':
-+#if __BYTE_ORDER == __BIG_ENDIAN
-+ swap_endian = 1;
-+ printf("Swapping filesystem endian-ness\n");
-+#endif
-+ break;
- case 's':
- /* old option, ignored */
- break;
---- cramfs-1.1/cramfsck.c.orig 2005-04-25 11:50:31.000000000 -0700
-+++ cramfs-1.1/cramfsck.c 2005-04-25 16:53:25.000000000 -0700
-@@ -30,6 +30,7 @@
- * 2000/07/15: Daniel Quinlan (initial support for block devices)
- * 2002/01/10: Daniel Quinlan (additional checks, test more return codes,
- * use read if mmap fails, standardize messages)
-+ * 2004/09/01: Alfonso Acosta (Add swapping support)
- */
-
- /* compile-time options */
-@@ -51,6 +52,7 @@
- #include <utime.h>
- #include <sys/ioctl.h>
- #define _LINUX_STRING_H_
-+#include <byteswap.h>
- #include "linux/cramfs_fs.h"
- #include <zlib.h>
-
-@@ -74,6 +76,7 @@
- static char *filename; /* ROM image filename */
- struct cramfs_super super; /* just find the cramfs superblock once */
- static int opt_verbose = 0; /* 1 = verbose (-v), 2+ = very verbose (-vv) */
-+static int need_swapping = 0; /* fs and host dont have the same endianness */
- #ifdef INCLUDE_FS_TESTS
- static int opt_extract = 0; /* extract cramfs (-x) */
- static char *extract_dir = "/"; /* extraction directory (-x) */
-@@ -85,6 +88,9 @@
- static unsigned long start_data = ~0UL; /* start of the data (256 MB = max) */
- static unsigned long end_data = 0; /* end of the data */
-
-+/* access 32 byte variables */
-+#define CRAMFS_32(x) (need_swapping ? bswap_32(x) : x)
-+
- /* Guarantee access to at least 8kB at a time */
- #define ROMBUFFER_BITS 13
- #define ROMBUFFERSIZE (1 << ROMBUFFER_BITS)
-@@ -166,20 +172,34 @@
- if (super.magic == CRAMFS_MAGIC) {
- *start = 0;
- }
-+ else if (super.magic == bswap_32(CRAMFS_MAGIC)) {
-+ *start = 0;
-+ need_swapping = 1;
-+ }
-+
- else if (*length >= (PAD_SIZE + sizeof(super))) {
- lseek(fd, PAD_SIZE, SEEK_SET);
- if (read(fd, &super, sizeof(super)) != sizeof(super)) {
- die(FSCK_ERROR, 1, "read failed: %s", filename);
- }
-- if (super.magic == CRAMFS_MAGIC) {
-+ if (super.magic == CRAMFS_32(CRAMFS_MAGIC)) {
- *start = PAD_SIZE;
- }
- }
-
- /* superblock tests */
-- if (super.magic != CRAMFS_MAGIC) {
-+ if (super.magic != CRAMFS_32(CRAMFS_MAGIC)) {
- die(FSCK_UNCORRECTED, 0, "superblock magic not found");
- }
-+ if (need_swapping){
-+ super.size = bswap_32(super.size);
-+ super.flags = bswap_32(super.flags);
-+ super.future = bswap_32(super.future);
-+ super.fsid.crc = bswap_32(super.fsid.crc);
-+ super.fsid.edition = bswap_32(super.fsid.edition);
-+ super.fsid.blocks = bswap_32(super.fsid.blocks);
-+ super.fsid.files = bswap_32(super.fsid.files);
-+ }
- if (super.flags & ~CRAMFS_SUPPORTED_FLAGS) {
- die(FSCK_ERROR, 0, "unsupported filesystem features");
- }
-@@ -215,7 +235,10 @@
- die(FSCK_USAGE, 0, "unable to test CRC: old cramfs format");
- #endif /* not INCLUDE_FS_TESTS */
- }
--
-+ else if (need_swapping) {
-+ /* crc checking in this case would mean translating the whole file */
-+ return;
-+ }
- crc = crc32(0L, Z_NULL, 0);
-
- buf = mmap(NULL, super.size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
-@@ -300,12 +323,23 @@
-
- static struct cramfs_inode *cramfs_iget(struct cramfs_inode * i)
- {
-+#define wswap(x) (((x)>>24) | (((x)>>8)&0xff00) | (((x)&0xff00)<<8) | (((x)&0xff)<<24))
- struct cramfs_inode *inode = malloc(sizeof(struct cramfs_inode));
-
- if (!inode) {
- die(FSCK_ERROR, 1, "malloc failed");
- }
-- *inode = *i;
-+ if(!need_swapping) {
-+ *inode = *i;
-+ }
-+ else {
-+ inode->mode=bswap_16(i->mode);
-+ inode->uid=bswap_16(i->uid);
-+ inode->size=bswap_32(i->size << 8);
-+ inode->gid=i->gid;
-+ inode->namelen = bswap_32(((u32*)i)[2]) >> 26;
-+ inode->offset = bswap_32(((u32*)i)[2]) & 0x3FFFFFFF;
-+ }
- return inode;
- }
-
-@@ -324,9 +358,9 @@
- */
- static struct cramfs_inode *read_super(void)
- {
-- unsigned long offset = super.root.offset << 2;
--
-- if (!S_ISDIR(super.root.mode))
-+ struct cramfs_inode *root = cramfs_iget(&super.root);
-+ unsigned long offset = root->offset << 2;
-+ if (!S_ISDIR(root->mode))
- die(FSCK_UNCORRECTED, 0, "root inode is not directory");
- if (!(super.flags & CRAMFS_FLAG_SHIFTED_ROOT_OFFSET) &&
- ((offset != sizeof(struct cramfs_super)) &&
-@@ -334,7 +368,7 @@
- {
- die(FSCK_UNCORRECTED, 0, "bad root offset (%lu)", offset);
- }
-- return cramfs_iget(&super.root);
-+ return root;
- }
-
- static int uncompress_block(void *src, int len)
-@@ -366,7 +400,7 @@
-
- do {
- unsigned long out = PAGE_CACHE_SIZE;
-- unsigned long next = *(u32 *) romfs_read(offset);
-+ unsigned long next = CRAMFS_32(*(u32 *) romfs_read(offset));
-
- if (next > end_data) {
- end_data = next;
-@@ -529,7 +563,7 @@
- {
- unsigned long offset = i->offset << 2;
- unsigned long curr = offset + 4;
-- unsigned long next = *(u32 *) romfs_read(offset);
-+ unsigned long next = CRAMFS_32(*(u32 *) romfs_read(offset));
- unsigned long size;
-
- if (offset == 0) {
diff --git a/target/cramfs/cramfs-03-cygwin_IO.patch b/target/cramfs/cramfs-03-cygwin_IO.patch
deleted file mode 100644
index 4ea358ede..000000000
--- a/target/cramfs/cramfs-03-cygwin_IO.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- cramfs-1.1/cramfsck.c.orig 2006-12-22 22:16:59.328125000 +1100
-+++ cramfs-1.1/cramfsck.c 2006-12-19 01:02:05.531250000 +1100
-@@ -56,6 +56,10 @@
- #include "linux/cramfs_fs.h"
- #include <zlib.h>
-
-+#ifdef __CYGWIN__
-+#define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0)
-+#endif /* __CYGWIN__ */
-+
- #define BLKGETSIZE _IO(0x12,96) /* return device size /512 (long *arg) */
-
- /* Exit codes used by fsck-type programs */
diff --git a/target/cramfs/cramfs.mk b/target/cramfs/cramfs.mk
deleted file mode 100644
index e6d63ed01..000000000
--- a/target/cramfs/cramfs.mk
+++ /dev/null
@@ -1,86 +0,0 @@
-#############################################################
-#
-# mkcramfs to build to target cramfs filesystems
-#
-#############################################################
-CRAMFS_DIR=$(BUILD_DIR)/cramfs-1.1
-CRAMFS_SOURCE=cramfs-1.1.tar.gz
-ifeq ($(call qstrip,$(BR2_SOURCEFORGE_MIRROR)),unc)
-# UNC does not seem to have cramfs
-CRAMFS_SITE=http://internap.dl.sourceforge.net/sourceforge/cramfs
-else
-CRAMFS_SITE=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/cramfs
-endif
-
-$(DL_DIR)/$(CRAMFS_SOURCE):
- $(call DOWNLOAD,$(CRAMFS_SITE),$(CRAMFS_SOURCE))
-
-$(CRAMFS_DIR): $(DL_DIR)/$(CRAMFS_SOURCE)
- $(ZCAT) $(DL_DIR)/$(CRAMFS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- toolchain/patch-kernel.sh $(CRAMFS_DIR) target/cramfs/ cramfs\*.patch
-
-$(CRAMFS_DIR)/mkcramfs: $(CRAMFS_DIR)
- $(MAKE) CFLAGS="$(HOST_CFLAGS) -Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS="$(HOST_LDFLAGS)" -C $(CRAMFS_DIR)
- touch -c $@
-
-cramfs: host-zlib $(CRAMFS_DIR)/mkcramfs
-
-cramfs-source: $(DL_DIR)/$(CRAMFS_SOURCE)
-
-cramfs-clean:
- -$(MAKE) -C $(CRAMFS_DIR) clean
-
-cramfs-dirclean:
- rm -rf $(CRAMFS_DIR)
-
-#############################################################
-#
-# Build the cramfs root filesystem image
-#
-#############################################################
-ifeq ($(BR2_ENDIAN),"BIG")
-CRAMFS_OPTS=-b
-else
-CRAMFS_OPTS=-l
-endif
-
-ifneq ($(TARGET_DEVICE_TABLE),)
-CRAMFS_OPTS += -D $(TARGET_DEVICE_TABLE)
-endif
-
-CRAMFS_TARGET=$(IMAGE).cramfs
-
-cramfsroot: host-fakeroot makedevs cramfs
- # Use fakeroot to pretend all target binaries are owned by root
- rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET))
- touch $(BUILD_DIR)/.fakeroot.00000
- cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET))
- echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET))
-ifneq ($(TARGET_DEVICE_TABLE),)
- # Use fakeroot to pretend to create all needed device nodes
- echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET))
-endif
- # Use fakeroot so mkcramfs believes the previous fakery
- echo "$(CRAMFS_DIR)/mkcramfs -q $(CRAMFS_OPTS) " \
- "$(TARGET_DIR) $(CRAMFS_TARGET)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET))
- chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET))
- $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET))
- -@rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET))
-
-cramfsroot-source: cramfs-source
-
-cramfsroot-clean:
- -$(MAKE) -C $(CRAMFS_DIR) clean
-
-cramfsroot-dirclean:
- rm -rf $(CRAMFS_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_TARGET_ROOTFS_CRAMFS),y)
-TARGETS+=cramfsroot
-endif
diff --git a/target/ext2/Config.in b/target/ext2/Config.in
deleted file mode 100644
index e94fb401c..000000000
--- a/target/ext2/Config.in
+++ /dev/null
@@ -1,75 +0,0 @@
-config BR2_TARGET_ROOTFS_EXT2
- bool "ext2 root filesystem"
- default y
- select BR2_HOST_FAKEROOT
- help
- Build an ext2 root filesystem
-
-config BR2_TARGET_ROOTFS_EXT2_BLOCKS
- int "size in blocks (leave at 0 for auto calculation)"
- depends on BR2_TARGET_ROOTFS_EXT2
- default 0
-
-config BR2_TARGET_ROOTFS_EXT2_INODES
- int "inodes (leave at 0 for auto calculation)"
- depends on BR2_TARGET_ROOTFS_EXT2
- default 0
-
-config BR2_TARGET_ROOTFS_EXT2_RESBLKS
- int "reserved blocks percentage"
- depends on BR2_TARGET_ROOTFS_EXT2
- default 0
-
-config BR2_TARGET_ROOTFS_EXT2_SQUASH
- bool "Make all files be owned by root"
- depends on BR2_TARGET_ROOTFS_EXT2
- default y
-
-config BR2_TARGET_ROOTFS_EXT2_OUTPUT
- string "Output File"
- depends on BR2_TARGET_ROOTFS_EXT2
- default "$(IMAGE).ext2"
-
-choice
- prompt "Compression method"
- default BR2_TARGET_ROOTFS_EXT2_NONE
- depends on BR2_TARGET_ROOTFS_EXT2
- help
- Select compressor for ext2 filesystem of the root filesystem
-
-config BR2_TARGET_ROOTFS_EXT2_NONE
- bool "no compression"
- help
- Do not compress the ext2 filesystem.
-
-config BR2_TARGET_ROOTFS_EXT2_GZIP
- bool "gzip"
- help
- Do compress the ext2 filesystem with gzip.
- Note that you either have to have gzip installed on your host
- or select to build a gzip for your host. See the packages submenu.
-
-config BR2_TARGET_ROOTFS_EXT2_BZIP2
- bool "bzip2"
- help
- Do compress the ext2 filesystem with bzip2.
- Note that you either have to have bzip2 installed on your host
- or select to build a bzip2 for your host. See the packages submenu.
-
-config BR2_TARGET_ROOTFS_EXT2_LZMA
- bool "lzma"
- help
- Do compress the ext2 filesystem with lzma.
- Note that you either have to have lzma installed on your host
- or select to build a lzma for your host. See the packages submenu.
-
-endchoice
-
-config BR2_TARGET_ROOTFS_EXT2_COPYTO
- string "also copy the image to..."
- depends on BR2_TARGET_ROOTFS_EXT2
- default ""
- help
- Copies the resulting image to a secondary location
- like a tftp server's root directory.
-
diff --git a/target/ext2/ext2root.mk b/target/ext2/ext2root.mk
deleted file mode 100644
index 622b29329..000000000
--- a/target/ext2/ext2root.mk
+++ /dev/null
@@ -1,146 +0,0 @@
-#############################################################
-#
-# genext2fs to build to target ext2 filesystems
-#
-#############################################################
-GENEXT2_VERSION=1.4
-GENEXT2_DIR=$(BUILD_DIR)/genext2fs-$(GENEXT2_VERSION)
-GENEXT2_SOURCE=genext2fs-$(GENEXT2_VERSION).tar.gz
-GENEXT2_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/genext2fs
-
-$(DL_DIR)/$(GENEXT2_SOURCE):
- $(call DOWNLOAD,$(GENEXT2_SITE),$(GENEXT2_SOURCE))
-
-$(GENEXT2_DIR)/.unpacked: $(DL_DIR)/$(GENEXT2_SOURCE)
- $(ZCAT) $(DL_DIR)/$(GENEXT2_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- toolchain/patch-kernel.sh $(GENEXT2_DIR) target/ext2/ genext2fs\*.patch
- touch $@
-
-$(GENEXT2_DIR)/.configured: $(GENEXT2_DIR)/.unpacked
- chmod a+x $(GENEXT2_DIR)/configure
- (cd $(GENEXT2_DIR); rm -rf config.cache; \
- ./configure $(QUIET) \
- CC="$(HOSTCC)" \
- --prefix=$(STAGING_DIR) \
- )
- touch $@
-
-$(GENEXT2_DIR)/genext2fs: $(GENEXT2_DIR)/.configured
- $(MAKE) CFLAGS="-Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE \
- -D_FILE_OFFSET_BITS=64" -C $(GENEXT2_DIR)
- touch -c $@
-
-genext2fs: $(GENEXT2_DIR)/genext2fs
-
-
-
-#############################################################
-#
-# Build the ext2 root filesystem image
-#
-#############################################################
-
-EXT2_OPTS :=
-
-ifeq ($(BR2_TARGET_ROOTFS_EXT2_SQUASH),y)
-EXT2_OPTS += -U
-endif
-
-ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)),0)
-EXT2_OPTS += -b $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)
-endif
-
-ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_INODES)),0)
-EXT2_OPTS += -N $(BR2_TARGET_ROOTFS_EXT2_INODES)
-endif
-
-ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_RESBLKS)),)
-EXT2_OPTS += -m $(BR2_TARGET_ROOTFS_EXT2_RESBLKS)
-endif
-
-EXT2_BASE := $(call qstrip,$(BR2_TARGET_ROOTFS_EXT2_OUTPUT))
-
-EXT2_ROOTFS_COMPRESSOR:=
-EXT2_ROOTFS_COMPRESSOR_EXT:=
-EXT2_ROOTFS_COMPRESSOR_PREREQ:=
-ifeq ($(BR2_TARGET_ROOTFS_EXT2_GZIP),y)
-EXT2_ROOTFS_COMPRESSOR:=gzip -9 -c
-EXT2_ROOTFS_COMPRESSOR_EXT:=gz
-#EXT2_ROOTFS_COMPRESSOR_PREREQ:= gzip-host
-endif
-ifeq ($(BR2_TARGET_ROOTFS_EXT2_BZIP2),y)
-EXT2_ROOTFS_COMPRESSOR:=bzip2 -9 -c
-EXT2_ROOTFS_COMPRESSOR_EXT:=bz2
-#EXT2_ROOTFS_COMPRESSOR_PREREQ:= bzip2-host
-endif
-ifeq ($(BR2_TARGET_ROOTFS_EXT2_LZMA),y)
-EXT2_ROOTFS_COMPRESSOR:=lzma -9 -c
-EXT2_ROOTFS_COMPRESSOR_EXT:=lzma
-EXT2_ROOTFS_COMPRESSOR_PREREQ:= lzma-host
-endif
-
-ifneq ($(EXT2_ROOTFS_COMPRESSOR),)
-EXT2_TARGET := $(EXT2_BASE).$(EXT2_ROOTFS_COMPRESSOR_EXT)
-else
-EXT2_TARGET := $(EXT2_BASE)
-endif
-
-$(EXT2_BASE): host-fakeroot makedevs genext2fs
- # Use fakeroot to pretend all target binaries are owned by root
- rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET))
- touch $(BUILD_DIR)/.fakeroot.00000
- cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET))
- echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET))
-ifneq ($(TARGET_DEVICE_TABLE),)
- # Use fakeroot to pretend to create all needed device nodes
- echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET))
-endif
- # Use fakeroot so genext2fs believes the previous fakery
-ifeq ($(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)),0)
- GENEXT2_REALSIZE=`LC_ALL=C du -s -c -k $(TARGET_DIR) | grep total | sed -e "s/total//"`; \
- GENEXT2_ADDTOROOTSIZE=`if [ $$GENEXT2_REALSIZE -ge 20000 ]; then echo 16384; else echo 2400; fi`; \
- GENEXT2_SIZE=`expr $$GENEXT2_REALSIZE + $$GENEXT2_ADDTOROOTSIZE`; \
- GENEXT2_ADDTOINODESIZE=`find $(TARGET_DIR) | wc -l`; \
- GENEXT2_INODES=`expr $$GENEXT2_ADDTOINODESIZE + 400`; \
- set -x; \
- echo "$(GENEXT2_DIR)/genext2fs -b $$GENEXT2_SIZE " \
- "-N $$GENEXT2_INODES -d $(TARGET_DIR) " \
- "$(EXT2_OPTS) $(EXT2_BASE)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET))
-else
- echo "$(GENEXT2_DIR)/genext2fs -d $(TARGET_DIR) " \
- "$(EXT2_OPTS) $(EXT2_BASE)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET))
-endif
- chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET))
- $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET))
- -@rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET))
-
-ifneq ($(EXT2_ROOTFS_COMPRESSOR),)
-$(EXT2_BASE).$(EXT2_ROOTFS_COMPRESSOR_EXT): $(EXT2_ROOTFS_COMPRESSOR_PREREQ) $(EXT2_BASE)
- $(EXT2_ROOTFS_COMPRESSOR) $(EXT2_BASE) > $(EXT2_TARGET)
-endif
-
-EXT2_COPYTO := $(call qstrip,$(BR2_TARGET_ROOTFS_EXT2_COPYTO))
-
-ext2root: $(EXT2_TARGET)
- @ls -l $(EXT2_TARGET)
-ifneq ($(EXT2_COPYTO),)
- @cp -f $(EXT2_TARGET) $(EXT2_COPYTO)
-endif
-
-ext2root-source: $(DL_DIR)/$(GENEXT2_SOURCE)
-
-ext2root-clean:
- -$(MAKE) -C $(GENEXT2_DIR) clean
-
-ext2root-dirclean:
- rm -rf $(GENEXT2_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_TARGET_ROOTFS_EXT2),y)
-TARGETS+=ext2root
-endif
diff --git a/target/ext2/genext2fs-1.4-nosquash.patch b/target/ext2/genext2fs-1.4-nosquash.patch
deleted file mode 100644
index 236dfccdf..000000000
--- a/target/ext2/genext2fs-1.4-nosquash.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -ru genext2fs-1.4/genext2fs.c genext2fs-1.4-nosquash/genext2fs.c
---- genext2fs-1.4/genext2fs.c 2006-12-19 17:45:31.000000000 +0100
-+++ genext2fs-1.4-nosquash/genext2fs.c 2007-02-09 10:47:05.000000000 +0100
-@@ -1629,10 +1629,6 @@
- mtime = st.st_mtime;
- name = dent->d_name;
- mode = get_mode(&st);
-- if(squash_uids)
-- uid = gid = 0;
-- if(squash_perms)
-- mode &= ~(FM_IRWXG | FM_IRWXO);
- if(stats)
- switch(st.st_mode & S_IFMT)
- {
diff --git a/target/ext2/genext2fs-1.4-remove_ugly_warnings.patch b/target/ext2/genext2fs-1.4-remove_ugly_warnings.patch
deleted file mode 100644
index ef23dfbe8..000000000
--- a/target/ext2/genext2fs-1.4-remove_ugly_warnings.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -ru genext2fs-1.4/genext2fs.c genext2fs-1.4-remove_ugly_warnings/genext2fs.c
---- genext2fs-1.4/genext2fs.c 2007-02-09 10:54:56.000000000 +0100
-+++ genext2fs-1.4-remove_ugly_warnings/genext2fs.c 2007-02-09 10:54:30.000000000 +0100
-@@ -1606,7 +1606,7 @@
- static void
- add2fs_from_dir(filesystem *fs, uint32 this_nod, int squash_uids, int squash_perms, uint32 fs_timestamp, struct stats *stats)
- {
-- uint32 nod;
-+ uint32 nod = 0;
- uint32 uid, gid, mode, ctime, mtime;
- const char *name;
- FILE *fh;
-@@ -2056,7 +2056,7 @@
- static filesystem *
- load_fs(FILE * fh, int swapit)
- {
-- size_t fssize;
-+ size_t fssize = 0;
- filesystem *fs;
- if((fseek(fh, 0, SEEK_END) < 0) || ((ssize_t)(fssize = ftell(fh)) == -1))
- perror_msg_and_die("input filesystem image");
diff --git a/target/initramfs/Config.in b/target/initramfs/Config.in
deleted file mode 100644
index d53982cb9..000000000
--- a/target/initramfs/Config.in
+++ /dev/null
@@ -1,15 +0,0 @@
-config BR2_TARGET_ROOTFS_INITRAMFS
- bool "initramfs for initial ramdisk of linux kernel"
- help
- Build a file which is usable for the gen_init_cpio tool
- at linux kernel build.
- This file is normally called initramfs_list and can be
- generated with gen_initramfs_list.sh script from the root
- directory structure.
- The file is then used in the kernel build process to generate
- the cpio filesystem for the initial ramdisk. Make sure that
- you configure this file in kernel build configuration.
- The location in the kernel build configuration menu is
- Device Drivers -> Block devices -> Initramfs source file(s).
- The configuration variable is CONFIG_INITRAMFS_SOURCE
-
diff --git a/target/initramfs/gen_initramfs_list.sh b/target/initramfs/gen_initramfs_list.sh
deleted file mode 100644
index 26252b619..000000000
--- a/target/initramfs/gen_initramfs_list.sh
+++ /dev/null
@@ -1,203 +0,0 @@
-#!/bin/sh
-# Copyright (C) Martin Schlemmer <azarah@nosferatu.za.org>
-# Released under the terms of the GNU GPL
-#
-# Generate a newline separated list of entries from the file/directory
-# supplied as an argument.
-#
-# If a file/directory is not supplied then generate a small dummy file.
-#
-# The output is suitable for gen_init_cpio built from usr/gen_init_cpio.c.
-#
-
-default_initramfs() {
- cat <<-EOF
- # This is a very simple, default initramfs
-
- dir /dev 0755 0 0
- nod /dev/console 0600 0 0 c 5 1
- dir /root 0700 0 0
- EOF
-}
-
-filetype() {
- local argv1="$1"
-
- # symlink test must come before file test
- if [ -L "$argv1" ]; then
- echo "slink"
- elif [ -f "$argv1" ]; then
- echo "file"
- elif [ -d "$argv1" ]; then
- echo "dir"
- elif [ -b "$argv1" -o -c "$argv1" ]; then
- echo "nod"
- elif [ -p "$argv1" ]; then
- echo "pipe"
- elif [ -S "$argv1" ]; then
- echo "sock"
- else
- echo "invalid"
- fi
- return 0
-}
-
-print_mtime() {
- local argv1="$1"
- local mymtime="0"
-
- if [ -e "$argv1" ]; then
- mymtime=$(find "$argv1" -printf "%T@\n" | sort -r | head -n 1)
- fi
-
- echo "# Last modified: $mymtime"
- echo
-}
-
-parse() {
- local location="$1"
- local name=$(echo "$location" | sed -e "s,$srcdir,,")
- # change '//' into '/'
- name=$(echo $name | sed -e 's,/[/]*,/,g')
- local mode="$2"
- local uid="$3"
- local gid="$4"
- local ftype=$(filetype "$location")
- # remap uid/gid to 0 if necessary
- [ "x$uid" != "x" ] && [ $uid -eq $root_uid ] && uid=0
- [ "x$gid" != "x" ] && [ $gid -eq $root_gid ] && gid=0
- local str="$mode $uid $gid"
-
- [ "$ftype" = "invalid" ] && return 0
- [ "$location" = "$srcdir" ] && return 0
-
- case "$ftype" in
- "file")
- str="$ftype $name $location $str"
- ;;
- "nod")
- local devtype=
- local maj=$(LC_ALL=C ls -l "$location" | \
- awk '{sub(/,/, "", $5); print $5}')
- local min=$(LC_ALL=C ls -l "$location" | \
- awk '{print $6}')
-
- if [ -b "$location" ]; then
- devtype="b"
- else
- devtype="c"
- fi
- str="$ftype $name $str $devtype $maj $min"
- ;;
- "slink")
- local target=$(LC_ALL=C ls -l "$location" | \
- awk '{print $11}')
- str="$ftype $name $target $str"
- ;;
- *)
- str="$ftype $name $str"
- ;;
- esac
-
- echo "$str"
-
- return 0
-}
-
-usage() {
- printf "Usage:\n"
- printf "$0 [ [-u <root_uid>] [-g <root_gid>] [-d | <cpio_source>] ] . . .\n"
- printf "\n"
- printf -- "-u <root_uid> User ID to map to user ID 0 (root).\n"
- printf " <root_uid> is only meaningful if <cpio_source>\n"
- printf " is a directory.\n"
- printf -- "-g <root_gid> Group ID to map to group ID 0 (root).\n"
- printf " <root_gid> is only meaningful if <cpio_source>\n"
- printf " is a directory.\n"
- printf "<cpio_source> File list or directory for cpio archive.\n"
- printf " If <cpio_source> is not provided then a\n"
- printf " a default list will be output.\n"
- printf -- "-d Output the default cpio list. If no <cpio_source>\n"
- printf " is given then the default cpio list will be output.\n"
- printf "\n"
- printf "All options may be repeated and are interpreted sequentially\n"
- printf "and immediately. -u and -g states are preserved across\n"
- printf "<cpio_source> options so an explicit \"-u 0 -g 0\" is required\n"
- printf "to reset the root/group mapping.\n"
-}
-
-build_list() {
- printf "\n#####################\n# $cpio_source\n"
-
- if [ -f "$cpio_source" ]; then
- print_mtime "$cpio_source"
- cat "$cpio_source"
- elif [ -d "$cpio_source" ]; then
- srcdir=$(echo "$cpio_source" | sed -e 's://*:/:g;s:/$::')
- dirlist=$(find "$srcdir" -printf "%p %m %U %G\n" 2>/dev/null)
-
- # If $dirlist is only one line, then the directory is empty
- if [ "$(echo "$dirlist" | wc -l)" -gt 1 ]; then
- print_mtime "$cpio_source"
-
- echo "$dirlist" | \
- while read x; do
- parse $x
- done
- else
- # Failsafe in case directory is empty
- default_initramfs
- fi
- else
- echo " $0: Cannot open '$cpio_source'" >&2
- exit 1
- fi
-}
-
-
-root_uid=0
-root_gid=0
-
-while [ $# -gt 0 ]; do
- arg="$1"
- shift
- case "$arg" in
- "-u")
- root_uid="$1"
- shift
- ;;
- "-g")
- root_gid="$1"
- shift
- ;;
- "-d")
- default_list="$arg"
- default_initramfs
- ;;
- "-h")
- usage
- exit 0
- ;;
- *)
- case "$arg" in
- "-"*)
- printf "ERROR: unknown option \"$arg\"\n" >&2
- printf "If the filename validly begins with '-', then it must be prefixed\n" >&2
- printf "by './' so that it won't be interpreted as an option." >&2
- printf "\n" >&2
- usage >&2
- exit 1
- ;;
- *)
- cpio_source="$arg"
- build_list
- ;;
- esac
- ;;
- esac
-done
-
-# spit out the default cpio list if a source hasn't been specified
-[ -z "$cpio_source" -a -z "$default_list" ] && default_initramfs
-
-exit 0
diff --git a/target/initramfs/initramfs.mk b/target/initramfs/initramfs.mk
deleted file mode 100644
index 0030278c5..000000000
--- a/target/initramfs/initramfs.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-#############################################################
-#
-# Make a initramfs_list file to be used by gen_init_cpio
-# gen_init_cpio is part of the 2.6 linux kernels to build an
-# initial ramdisk filesystem based on cpio
-#
-#############################################################
-
-ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
-INITRAMFS_TARGET:=$(IMAGE).initramfs_list
-else
-INITRAMFS_TARGET:= #nothing
-endif
-
-TARGETS+=$(INITRAMFS_TARGET)
-
-$(INITRAMFS_TARGET) initramfs: host-fakeroot makedevs
- rm -f $(TARGET_DIR)/init
- ln -s sbin/init $(TARGET_DIR)/init
- # Use fakeroot to pretend all target binaries are owned by root
- rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
- touch $(BUILD_DIR)/.fakeroot.00000
- cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
- echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
- # Use fakeroot to pretend to create all needed device nodes
- echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
- # Use fakeroot so gen_initramfs_list.sh believes the previous fakery
- echo "$(SHELL) target/initramfs/gen_initramfs_list.sh -u 0 -g 0 $(TARGET_DIR) > $(INITRAMFS_TARGET)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
- chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
- $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
- -rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
-
-initramfs-source:
-
-initramfs-clean:
-ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
- -rm -f $(INITRAMFS_TARGET)
-endif
-initramfs-dirclean:
-
-
diff --git a/target/iso9660/Config.in b/target/iso9660/Config.in
deleted file mode 100644
index 0b820630a..000000000
--- a/target/iso9660/Config.in
+++ /dev/null
@@ -1,22 +0,0 @@
-config BR2_TARGET_ROOTFS_ISO9660
- bool "iso image"
- depends on BR2_i386
- depends on !BR2_KERNEL_none
- select BR2_TARGET_ROOTFS_EXT2
- select BR2_TARGET_GRUB
- select BR2_HOST_FAKEROOT
- help
- Build a bootable iso9660 image
-
-config BR2_TARGET_ROOTFS_ISO9660_OUTPUT
- string "Output File"
- depends on BR2_TARGET_ROOTFS_ISO9660
- default "$(IMAGE).iso"
-
-config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU
- string "Boot menu.lst file"
- depends on BR2_TARGET_ROOTFS_ISO9660
- default "target/iso9660/menu.lst"
-
-comment "iso image requires a Linux kernel to be built"
- depends on BR2_i386 && BR2_KERNEL_none
diff --git a/target/iso9660/iso9660.mk b/target/iso9660/iso9660.mk
deleted file mode 100644
index 9571e4769..000000000
--- a/target/iso9660/iso9660.mk
+++ /dev/null
@@ -1,95 +0,0 @@
-#############################################################
-#
-# mkisofs to build to target iso9660 filesystems
-#
-#############################################################
-MKISOFS_SOURCE:=cdrtools-2.01.tar.bz2
-MKISOFS_CAT:=$(BZCAT)
-MKISOFS_SITE:=ftp://ftp.berlios.de/pub/cdrecord/
-MKISOFS_DIR:=$(BUILD_DIR)/cdrtools-2.01
-MKISOFS_TARGET=$(MKISOFS_DIR)/mkisofs/OBJ/$(HOST_ARCH)-linux-cc/mkisofs
-
-hest:
- @echo ARCH=$(BR2_ARCH) HOST_ARCH=$(HOST_ARCH)
-$(DL_DIR)/$(MKISOFS_SOURCE):
- $(call DOWNLOAD,$(MKISOFS_SITE),$(MKISOFS_SOURCE))
-
-mkisofs-source: $(DL_DIR)/$(MKISOFS_SOURCE)
-
-$(MKISOFS_DIR)/.unpacked: $(DL_DIR)/$(MKISOFS_SOURCE)
- $(MKISOFS_CAT) $(DL_DIR)/$(MKISOFS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
- toolchain/patch-kernel.sh $(MKISOFS_DIR) target/iso9660/ \*.patch
- touch $@
-
-$(MKISOFS_DIR)/.configured: $(MKISOFS_DIR)/.unpacked
- (cd $(MKISOFS_DIR); rm -rf config.cache; \
- );
- touch $@
-
-$(MKISOFS_TARGET): $(MKISOFS_DIR)/.configured
- $(MAKE) -C $(MKISOFS_DIR)
- touch -c $(MKISOFS_DIR)/mkisofs
-
-mkisofs: $(MKISOFS_TARGET)
-
-mkisofs-clean:
- -$(MAKE) -C $(MKISOFS_DIR) clean
-
-mkisofs-dirclean:
- rm -rf $(MKISOFS_DIR)
-
-
-#############################################################
-#
-# Build the iso96600 root filesystem image
-#
-#############################################################
-
-ISO9660_TARGET_DIR=$(BUILD_DIR)/iso9660
-ISO9660_TARGET:=$(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_OUTPUT))
-ISO9660_BOOT_MENU:=$(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU))
-ISO9660_OPTS:=
-
-ifeq ($(BR2_TARGET_ROOTFS_ISO9660_SQUASH),y)
-ISO9660_OPTS+=-U
-endif
-
-$(ISO9660_TARGET): host-fakeroot $(LINUX_KERNEL) $(EXT2_TARGET) grub mkisofs
- mkdir -p $(ISO9660_TARGET_DIR)
- mkdir -p $(ISO9660_TARGET_DIR)/boot/grub
- cp $(GRUB_DIR)/stage2/stage2_eltorito $(ISO9660_TARGET_DIR)/boot/grub/
- cp $(ISO9660_BOOT_MENU) $(ISO9660_TARGET_DIR)/boot/grub/menu.lst
- cp $(LINUX_KERNEL) $(ISO9660_TARGET_DIR)/kernel
- cp $(EXT2_TARGET) $(ISO9660_TARGET_DIR)/initrd
- # Use fakeroot to pretend all target binaries are owned by root
- rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
- touch $(BUILD_DIR)/.fakeroot.00000
- cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
- echo "chown -R 0:0 $(ISO9660_TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
- # Use fakeroot so mkisofs believes the previous fakery
- echo "$(MKISOFS_TARGET) -R -b boot/grub/stage2_eltorito -no-emul-boot " \
- "-boot-load-size 4 -boot-info-table -o $(ISO9660_TARGET) $(ISO9660_TARGET_DIR)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
- chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
- $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
- -@rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET))
-
-iso9660root: $(ISO9660_TARGET)
- echo $(ISO9660_TARGET)
- @ls -l $(ISO9660_TARGET)
-
-iso9660root-source: mkisofs-source
-
-iso9660root-clean: mkisofs-clean
-
-iso9660root-dirclean: mkisofs-dirclean
- rm -rf $(ISO9660_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_TARGET_ROOTFS_ISO9660),y)
-TARGETS+=iso9660root
-endif
diff --git a/target/iso9660/menu.lst b/target/iso9660/menu.lst
deleted file mode 100644
index d78caebe1..000000000
--- a/target/iso9660/menu.lst
+++ /dev/null
@@ -1,11 +0,0 @@
-default 0
-timeout 10
-color cyan/blue white/blue
-
-title Hard Drive (first partition)
-rootnoverify (hd0)
-chainloader +1
-
-title BuildRoot ISO9660 image
-kernel /kernel
-initrd /initrd
diff --git a/target/jffs2/Config.in b/target/jffs2/Config.in
deleted file mode 100644
index bcb4d5120..000000000
--- a/target/jffs2/Config.in
+++ /dev/null
@@ -1,128 +0,0 @@
-config BR2_TARGET_ROOTFS_JFFS2
- bool "jffs2 root filesystem"
- select BR2_HOST_FAKEROOT
- help
- Build a jffs2 root filesystem
-
-if BR2_TARGET_ROOTFS_JFFS2
-
-choice
- prompt "Flash Type"
- default BR2_TARGET_ROOTFS_JFFS2_FLASH_128
-
-config BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056
- bool "AT45 dataflash with 1056 byte pagesize"
- select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
-
-config BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528
- bool "AT45 dataflash with 528 byte pagesize"
- select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
-
-config BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_512_16K
- bool "NAND flash with 512B Page and 16 kB erasesize"
- select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
-
-config BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K
- bool "NAND flash with 2kB Page and 128 kB erasesize"
- select BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
-
-config BR2_TARGET_ROOTFS_JFFS2_FLASH_128
- bool "Parallel flash with 4 kB pagesize and 128 kB erase size"
-
-config BR2_TARGET_ROOTFS_JFFS2_FLASH_64
- bool "Parallel flash with 4 kB pagesize and 64 kB erase size"
-
-config BR2_TARGET_ROOTFS_JFFS2_CUSTOM
- bool "Select custom page and erase size"
-
-endchoice
-
-config BR2_TARGET_ROOTFS_JFFS2_CUSTOM_PAGESIZE
- hex "Page Size"
- depends on BR2_TARGET_ROOTFS_JFFS2_CUSTOM
- default 0x1000
- help
- Set to pagesize of memory
-
-config BR2_TARGET_ROOTFS_JFFS2_CUSTOM_EBSIZE
- hex "Erase block size"
- depends on BR2_TARGET_ROOTFS_JFFS2_CUSTOM
- default 0x20000
- help
- Set to erase size of memory
-
-config BR2_TARGET_ROOTFS_JFFS2_PAGESIZE
- hex
- default 0x420 if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056
- default 0x210 if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528
- default 0x200 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_512_16K
- default 0x800 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K
- default 0x1000 if BR2_TARGET_ROOTFS_JFFS2_FLASH_128
- default 0x1000 if BR2_TARGET_ROOTFS_JFFS2_FLASH_64
- default $(BR2_TARGET_ROOTFS_JFFS2_CUSTOM_PAGESIZE) if BR2_TARGET_ROOTFS_JFFS2_CUSTOM
-
-config BR2_TARGET_ROOTFS_JFFS2_EBSIZE
- hex
- default 0x2100 if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056
- default 0x1080 if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528
- default 0x4000 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_512_16K
- default 0x20000 if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K
- default 0x20000 if BR2_TARGET_ROOTFS_JFFS2_FLASH_128
- default 0x10000 if BR2_TARGET_ROOTFS_JFFS2_FLASH_64
- default $(BR2_TARGET_ROOTFS_JFFS2_CUSTOM_EBSIZE) if BR2_TARGET_ROOTFS_JFFS2_CUSTOM
-
-config BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER
- bool "Do not use Cleanmarker"
- default y if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056
- default y if BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528
- default y if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_512_16K
- default y if BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K
- help
- Do not use cleanmarkers if using NAND flash or Dataflash where
- the pagesize is not a power of 2
-
-config BR2_JFFS2_TARGET_SREC
- bool "RootFS in SREC file formet"
-
-config BR2_TARGET_ROOTFS_JFFS2_PAD
- bool "Pad output"
-
-config BR2_TARGET_ROOTFS_JFFS2_PADSIZE
- hex "Pad output size (0x0 = to end of EB)"
- depends on BR2_TARGET_ROOTFS_JFFS2_PAD
- default 0x0
- help
- Set to 0x0 to pad to end of erase block.
-
-choice
- prompt "Endianess"
- default BR2_TARGET_ROOTFS_JFFS2_BE if BR2_alpha || BR2_armeb || \
- BR2_avr32 || BR2_m68k || BR2_mips || \
- BR2_powerpc || BR2_sh2a_nofpueb || BR2_sh2eb || \
- BR2_sh3eb || BR2_sh4eb || BR2_sparc || BR2_sparc64
-
-config BR2_TARGET_ROOTFS_JFFS2_LE
- bool "little-endian"
-
-config BR2_TARGET_ROOTFS_JFFS2_BE
- bool "big-endian"
-
-endchoice
-
-config BR2_TARGET_ROOTFS_JFFS2_SUMMARY
- bool "Produce a summarized JFFS2 image"
- help
- A summarised image can be mounted faster if support is
- enabled in the kernel (CONFIG_JFFS2_SUMMARY)
-
-config BR2_TARGET_ROOTFS_JFFS2_OUTPUT
- string "Output File"
- default "$(IMAGE).jffs2"
-
-config BR2_TARGET_ROOTFS_JFFS2_COPYTO
- string "also copy the image to..."
- default ""
- help
- Copies the resulting image to a secondary location.
-
-endif
diff --git a/target/jffs2/jffs2root.mk b/target/jffs2/jffs2root.mk
deleted file mode 100644
index 7d31417ee..000000000
--- a/target/jffs2/jffs2root.mk
+++ /dev/null
@@ -1,99 +0,0 @@
-#############################################################
-#
-# Build the jffs2 root filesystem image
-#
-#############################################################
-
-JFFS2_OPTS := -e $(BR2_TARGET_ROOTFS_JFFS2_EBSIZE)
-SUMTOOL_OPTS := $(JFFS2_OPTS)
-
-ifeq ($(BR2_TARGET_ROOTFS_JFFS2_PAD),y)
-ifneq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE)),0x0)
-JFFS2_OPTS += --pad=$(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE))
-else
-JFFS2_OPTS += -p
-endif
-SUMTOOL_OPTS += -p
-endif
-
-ifeq ($(BR2_TARGET_ROOTFS_JFFS2_LE),y)
-JFFS2_OPTS += -l
-SUMTOOL_OPTS += -l
-endif
-
-ifeq ($(BR2_TARGET_ROOTFS_JFFS2_BE),y)
-JFFS2_OPTS += -b
-SUMTOOL_OPTS += -b
-endif
-
-JFFS2_OPTS += -s $(BR2_TARGET_ROOTFS_JFFS2_PAGESIZE)
-ifeq ($(BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER),y)
-JFFS2_OPTS += -n
-SUMTOOL_OPTS += -n
-endif
-
-JFFS2_TARGET := $(call qstrip,$(BR2_TARGET_ROOTFS_JFFS2_OUTPUT))
-ifneq ($(TARGET_DEVICE_TABLE),)
-JFFS2_OPTS += -D $(TARGET_DEVICE_TABLE)
-endif
-
-
-#
-# mtd-host is a dependency which builds a local copy of mkfs.jffs2 if it is needed.
-# the actual build is done from package/mtd/mtd.mk and it sets the
-# value of MKFS_JFFS2 to either the previously installed copy or the one
-# just built.
-#
-$(JFFS2_TARGET): host-fakeroot makedevs mtd-host
- # Use fakeroot to pretend all target binaries are owned by root
- rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
- touch $(BUILD_DIR)/.fakeroot.00000
- cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
- echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
-ifneq ($(TARGET_DEVICE_TABLE),)
- # Use fakeroot to pretend to create all needed device nodes
- echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
-endif
- # Use fakeroot so mkfs.jffs2 believes the previous fakery
-ifneq ($(BR2_TARGET_ROOTFS_JFFS2_SUMMARY),)
- echo "$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $(JFFS2_TARGET).nosummary && " \
- "$(SUMTOOL) $(SUMTOOL_OPTS) -i $(JFFS2_TARGET).nosummary -o $(JFFS2_TARGET) && " \
- "rm $(JFFS2_TARGET).nosummary" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
-else
- echo "$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $(JFFS2_TARGET)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
-endif
- chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
- $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
- -@rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
- @ls -l $(JFFS2_TARGET)
-ifeq ($(BR2_JFFS2_TARGET_SREC),y)
- $(TARGET_CROSS)objcopy -I binary -O srec --adjust-vma 0xa1000000 $(JFFS2_TARGET) $(JFFS2_TARGET).srec
- @ls -l $(JFFS2_TARGET).srec
-endif
-
-JFFS2_COPYTO := $(call qstrip,$(BR2_TARGET_ROOTFS_JFFS2_COPYTO))
-
-jffs2root: $(JFFS2_TARGET)
-ifneq ($(JFFS2_COPYTO),)
- @cp -f $(JFFS2_TARGET) $(JFFS2_COPYTO)
-endif
-
-jffs2root-source: mtd-host-source
-
-jffs2root-clean: mtd-host-clean
- -rm -f $(JFFS2_TARGET)
-
-jffs2root-dirclean: mtd-host-dirclean
- -rm -f $(JFFS2_TARGET)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_TARGET_ROOTFS_JFFS2),y)
-TARGETS+=jffs2root
-endif
diff --git a/target/romfs/Config.in b/target/romfs/Config.in
deleted file mode 100644
index 03a23d413..000000000
--- a/target/romfs/Config.in
+++ /dev/null
@@ -1,6 +0,0 @@
-config BR2_TARGET_ROOTFS_ROMFS
- bool "romfs root filesystem"
- select BR2_HOST_FAKEROOT
- help
- Build a romfs image of the root filesystem.
-
diff --git a/target/romfs/romfs.mk b/target/romfs/romfs.mk
deleted file mode 100644
index 6e7fbeedd..000000000
--- a/target/romfs/romfs.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-#############################################################
-#
-# genromfs to build to target romfs filesystems
-#
-#############################################################
-ROMFS_VERSION=0.5.2
-ROMFS_DIR=$(BUILD_DIR)/genromfs-$(ROMFS_VERSION)
-ROMFS_SOURCE=genromfs-$(ROMFS_VERSION).tar.gz
-ROMFS_SITE=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/romfs
-
-$(DL_DIR)/$(ROMFS_SOURCE):
- $(call DOWNLOAD,$(ROMFS_SITE),$(ROMFS_SOURCE))
-
-$(ROMFS_DIR): $(DL_DIR)/$(ROMFS_SOURCE)
- $(ZCAT) $(DL_DIR)/$(ROMFS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
-
-$(ROMFS_DIR)/genromfs: $(ROMFS_DIR)
- $(MAKE) -C $(ROMFS_DIR)
- touch -c $@
-
-romfs: $(ROMFS_DIR)/genromfs
-
-romfs-source: $(DL_DIR)/$(ROMFS_SOURCE)
-
-romfs-clean:
- -$(MAKE) -C $(ROMFS_DIR) clean
-
-romfs-dirclean:
- rm -rf $(ROMFS_DIR)
-
-#############################################################
-#
-# Build the romfs root filesystem image
-#
-#############################################################
-
-ROMFS_TARGET=$(IMAGE).romfs
-
-romfsroot: host-fakeroot makedevs romfs
- # Use fakeroot to pretend all target binaries are owned by root
- rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET))
- touch $(BUILD_DIR)/.fakeroot.00000
- cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET))
- echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET))
-ifneq ($(TARGET_DEVICE_TABLE),)
- # Use fakeroot to pretend to create all needed device nodes
- echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET))
-endif
- # Use fakeroot so genromfs believes the previous fakery
- echo "$(ROMFS_DIR)/genromfs -d $(TARGET_DIR) -f $(ROMFS_TARGET)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET))
- chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET))
- $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET))
- -@rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET))
-
-romfsroot-source: romfs-source
-
-romfsroot-clean:
- -$(MAKE) -C $(ROMFS_DIR) clean
-
-romfsroot-dirclean:
- rm -rf $(ROMFS_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_TARGET_ROOTFS_ROMFS),y)
-TARGETS+=romfsroot
-endif
diff --git a/target/squashfs/Config.in b/target/squashfs/Config.in
deleted file mode 100644
index 9259ba350..000000000
--- a/target/squashfs/Config.in
+++ /dev/null
@@ -1,32 +0,0 @@
-config BR2_TARGET_ROOTFS_SQUASHFS
- bool "squashfs root filesystem"
- select BR2_HOST_FAKEROOT
- help
- Build a squashfs root filesystem
-
-choice
- prompt "Squashfs version"
- default BR2_TARGET_ROOTFS_SQUASHFS_4
- depends on BR2_TARGET_ROOTFS_SQUASHFS
- help
- Select squashfs version - This must match what your kernel
- supports. Select 3.x if you use the legacy 3.x kernel
- patches (pre 2.6.29), and 4.x otherwise.
-
-config BR2_TARGET_ROOTFS_SQUASHFS_3
- depends on BR2_DEPRECATED || BR2_RECENT
- bool "3.x"
- help
- Select this if you use the legacy 3.x kernel patches (pre 2.6.29)
-
-config BR2_TARGET_ROOTFS_SQUASHFS_4
- bool "4.x"
- help
- Select this if you use the squashfs version in mainline (from 2.6.29)
-
-endchoice
-
-config BR2_TARGET_ROOTFS_SQUASHFS_VERSION
- string
- default "3.4" if BR2_TARGET_ROOTFS_SQUASHFS_3
- default "4.0" if BR2_TARGET_ROOTFS_SQUASHFS_4
diff --git a/target/squashfs/squashfs-3.4-build-system-fix.patch b/target/squashfs/squashfs-3.4-build-system-fix.patch
deleted file mode 100644
index 5b86b008a..000000000
--- a/target/squashfs/squashfs-3.4-build-system-fix.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-[PATCH]: squashfs-tools: Handle user supplied CFLAGS/LDFLAGS
-
-Properly handle make CFLAGS=.. LDFLAGS=..
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- squashfs-tools/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: squashfs3.4/squashfs-tools/Makefile
-===================================================================
---- squashfs3.4.orig/squashfs-tools/Makefile
-+++ squashfs3.4/squashfs-tools/Makefile
-@@ -2,12 +2,12 @@ INSTALL_DIR = /usr/local/bin
-
- INCLUDEDIR = .
-
--CFLAGS := -I$(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -O2
-+override CFLAGS += -I$(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -O2
-
- all: mksquashfs unsquashfs
-
- mksquashfs: mksquashfs.o read_fs.o sort.o
-- $(CC) mksquashfs.o read_fs.o sort.o -lz -lpthread -lm -o $@
-+ $(CC) $(LDFLAGS) mksquashfs.o read_fs.o sort.o -lz -lpthread -lm -o $@
-
- mksquashfs.o: mksquashfs.c squashfs_fs.h mksquashfs.h global.h sort.h
-
diff --git a/target/squashfs/squashfs-4.0-build-system-fix.patch b/target/squashfs/squashfs-4.0-build-system-fix.patch
deleted file mode 100644
index 7ba0ab94a..000000000
--- a/target/squashfs/squashfs-4.0-build-system-fix.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-Fix the build system so that CFLAGS can be overriden on the command
-line to pass additionnal -I options.
-
-Patch borrowed from OpenEmbedded.
-
-Index: squashfs-4.0/squashfs-tools/Makefile
-===================================================================
---- squashfs-4.0.orig/squashfs-tools.orig/Makefile 2009-04-19 01:47:43.000000000 +0200
-+++ squashfs-4.0/squashfs-tools/Makefile 2009-04-19 01:52:36.000000000 +0200
-@@ -1,36 +1,48 @@
- INSTALL_DIR = /usr/local/bin
-
- INCLUDEDIR = .
-+CFLAGS_R = -I$(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE
-+LIBS = -lz -lpthread
-
- CFLAGS := -I$(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -O2
-
- all: mksquashfs unsquashfs
-
- mksquashfs: mksquashfs.o read_fs.o sort.o swap.o pseudo.o
-- $(CC) mksquashfs.o read_fs.o sort.o swap.o pseudo.o -lz -lpthread -lm -o $@
-+ $(CC) $(LDFLAGS) mksquashfs.o read_fs.o sort.o swap.o pseudo.o -lz -lpthread -lm -o $@
-
- mksquashfs.o: mksquashfs.c squashfs_fs.h mksquashfs.h global.h sort.h squashfs_swap.h Makefile
-+ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o $@ $<
-
- read_fs.o: read_fs.c squashfs_fs.h read_fs.h global.h squashfs_swap.h Makefile
-+ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o $@ $<
-
- sort.o: sort.c squashfs_fs.h global.h sort.h Makefile
-+ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o $@ $<
-
- swap.o: swap.c Makefile
-+ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o $@ $<
-
- pseudo.o: pseudo.c pseudo.h Makefile
-+ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o $@ $<
-
- unsquashfs: unsquashfs.o unsquash-1.o unsquash-2.o unsquash-3.o unsquash-4.o swap.o
-- $(CC) unsquashfs.o unsquash-1.o unsquash-2.o unsquash-3.o unsquash-4.o swap.o -lz -lpthread -lm -o $@
-+ $(CC) $(LDFLAGS) unsquashfs.o unsquash-1.o unsquash-2.o unsquash-3.o unsquash-4.o swap.o -lz -lpthread -lm -o $@
-
--unsquashfs.o: unsquashfs.h unsquashfs.c squashfs_fs.h squashfs_swap.h squashfs_compat.h global.h Makefile
-+unsquashfs.o: unsquashfs.c unsquashfs.h squashfs_fs.h squashfs_swap.h squashfs_compat.h global.h Makefile
-+ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o $@ $<
-
--unsquash-1.o: unsquashfs.h unsquash-1.c squashfs_fs.h squashfs_compat.h global.h Makefile
-+unsquash-1.o: unsquash-1.c unsquashfs.h squashfs_fs.h squashfs_compat.h global.h Makefile
-+ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o $@ $<
-
--unsquash-2.o: unsquashfs.h unsquash-2.c unsquashfs.h squashfs_fs.h squashfs_compat.h global.h Makefile
-+unsquash-2.o: unsquash-2.c unsquashfs.h unsquashfs.h squashfs_fs.h squashfs_compat.h global.h Makefile
-+ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o $@ $<
-
--unsquash-3.o: unsquashfs.h unsquash-3.c squashfs_fs.h squashfs_compat.h global.h Makefile
-+unsquash-3.o: unsquash-3.c unsquashfs.h squashfs_fs.h squashfs_compat.h global.h Makefile
-+ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o $@ $<
-
--unsquash-4.o: unsquashfs.h unsquash-4.c squashfs_fs.h squashfs_swap.h global.h Makefile
-+unsquash-4.o: unsquash-4.c unsquashfs.h squashfs_fs.h squashfs_swap.h global.h Makefile
-+ $(CC) $(CFLAGS_R) $(CFLAGS) -c -o $@ $<
-
- clean:
- -rm -f *.o mksquashfs unsquashfs
diff --git a/target/squashfs/squashfs-4.0-mksquashfs-race-condition-fix.patch b/target/squashfs/squashfs-4.0-mksquashfs-race-condition-fix.patch
deleted file mode 100644
index 7f8e8e074..000000000
--- a/target/squashfs/squashfs-4.0-mksquashfs-race-condition-fix.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-[PATCH]: fix mksquashfs race condition
-
-See http://thread.gmane.org/gmane.comp.file-systems.squashfs.devel/76
-for details.
----
- squashfs-tools/mksquashfs.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-Index: squashfs4.0/squashfs-tools/mksquashfs.c
-===================================================================
---- squashfs4.0.orig/squashfs-tools/mksquashfs.c
-+++ squashfs4.0/squashfs-tools/mksquashfs.c
-@@ -1733,8 +1733,8 @@ void unlock_fragments()
- entry->buffer->block = bytes;
- bytes += compressed_size;
- fragments_outstanding --;
-- pthread_mutex_unlock(&fragment_mutex);
- queue_put(to_writer, entry->buffer);
-+ pthread_mutex_unlock(&fragment_mutex);
- pthread_mutex_lock(&fragment_mutex);
- TRACE("fragment_locked writing fragment %d, compressed size %d"
- "\n", entry->fragment, compressed_size);
-@@ -2426,8 +2426,8 @@ void *frag_deflator(void *arg)
- write_buffer->block = bytes;
- bytes += compressed_size;
- fragments_outstanding --;
-- pthread_mutex_unlock(&fragment_mutex);
- queue_put(to_writer, write_buffer);
-+ pthread_mutex_unlock(&fragment_mutex);
- TRACE("Writing fragment %lld, uncompressed size %d, "
- "compressed size %d\n", file_buffer->block,
- file_buffer->size, compressed_size);
-@@ -4137,7 +4137,7 @@ void read_recovery_data(char *recovery_f
-
-
- #define VERSION() \
-- printf("mksquashfs version 4.0 (2009/04/05)\n");\
-+ printf("mksquashfs version 4.0-test (2009/04/05)\n");\
- printf("copyright (C) 2009 Phillip Lougher <phillip@lougher.demon.co.uk>\n\n"); \
- printf("This program is free software; you can redistribute it and/or\n");\
- printf("modify it under the terms of the GNU General Public License\n");\
diff --git a/target/squashfs/squashfsroot.mk b/target/squashfs/squashfsroot.mk
deleted file mode 100644
index 63adc5c36..000000000
--- a/target/squashfs/squashfsroot.mk
+++ /dev/null
@@ -1,85 +0,0 @@
-#############################################################
-#
-# mksquashfs to build to target squashfs filesystems
-#
-#############################################################
-SQUASHFS_VERSION:=$(call qstrip,$(BR2_TARGET_ROOTFS_SQUASHFS_VERSION))
-SQUASHFS_DIR:=$(BUILD_DIR)/squashfs$(SQUASHFS_VERSION)
-SQUASHFS_SOURCE:=squashfs$(SQUASHFS_VERSION).tar.gz
-SQUASHFS_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/squashfs
-SQUASHFS_CAT:=$(ZCAT)
-
-$(DL_DIR)/$(SQUASHFS_SOURCE):
- $(call DOWNLOAD,$(SQUASHFS_SITE),$(SQUASHFS_SOURCE))
-
-$(SQUASHFS_DIR)/.unpacked: $(DL_DIR)/$(SQUASHFS_SOURCE) #$(SQUASHFS_PATCH)
- $(SQUASHFS_CAT) $(DL_DIR)/$(SQUASHFS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- toolchain/patch-kernel.sh $(SQUASHFS_DIR) target/squashfs/ squashfs-$(SQUASHFS_VERSION)-\*.patch
- touch $@
-
-$(SQUASHFS_DIR)/squashfs-tools/mksquashfs: $(SQUASHFS_DIR)/.unpacked
- $(MAKE) CFLAGS="$(HOST_CFLAGS)" LDFLAGS="$(HOST_LDFLAGS)" -C $(SQUASHFS_DIR)/squashfs-tools
-
-squashfs: host-zlib $(SQUASHFS_DIR)/squashfs-tools/mksquashfs
-
-squashfs-source: $(DL_DIR)/$(SQUASHFS_SOURCE)
-
-squashfs-clean:
- -$(MAKE) -C $(SQUASHFS_DIR)/squashfs-tools clean
-
-squashfs-dirclean:
- rm -rf $(SQUASHFS_DIR)
-
-#############################################################
-#
-# Build the squashfs root filesystem image
-#
-#############################################################
-ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS_3),y)
-# 4.x is always little endian
-ifeq ($(BR2_ENDIAN),"BIG")
-SQUASHFS_ENDIANNESS=-be
-else
-SQUASHFS_ENDIANNESS=-le
-endif
-endif
-
-SQUASHFS_TARGET:=$(IMAGE).squashfs
-
-squashfsroot: host-fakeroot makedevs squashfs
- # Use fakeroot to pretend all target binaries are owned by root
- rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
- touch $(BUILD_DIR)/.fakeroot.00000
- cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
- echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
-ifneq ($(TARGET_DEVICE_TABLE),)
- # Use fakeroot to pretend to create all needed device nodes
- echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
-endif
- # Use fakeroot so mksquashfs believes the previous fakery
- echo "$(SQUASHFS_DIR)/squashfs-tools/mksquashfs " \
- "$(TARGET_DIR) $(SQUASHFS_TARGET) " \
- "-noappend $(SQUASHFS_ENDIANNESS)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
- chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
- $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
- chmod 0644 $(SQUASHFS_TARGET)
- -@rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
-
-squashfsroot-source: squashfs-source
-
-squashfsroot-clean:
- -$(MAKE) -C $(SQUASHFS_DIR) clean
-
-squashfsroot-dirclean:
- rm -rf $(SQUASHFS_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS),y)
-TARGETS+=squashfsroot
-endif
diff --git a/target/tar/Config.in b/target/tar/Config.in
deleted file mode 100644
index 020965480..000000000
--- a/target/tar/Config.in
+++ /dev/null
@@ -1,59 +0,0 @@
-config BR2_TARGET_ROOTFS_TAR
- bool "tar the root filesystem"
- select BR2_HOST_FAKEROOT
- help
- Build a tar archive of the root filesystem
-
-choice
- prompt "Compression method"
- default BR2_TARGET_ROOTFS_TAR_NONE
- depends on BR2_TARGET_ROOTFS_TAR
- help
- Select compressor for tar archive of the root filesystem
-
-config BR2_TARGET_ROOTFS_TAR_NONE
- bool "no compression"
- help
- Do not compress the tarball.
-
-config BR2_TARGET_ROOTFS_TAR_GZIP
- bool "gzip"
- help
- Do compress the tarball with gzip.
- Note that you either have to have gzip installed on your host
- or select to build a gzip for your host. See the packages submenu.
-
-config BR2_TARGET_ROOTFS_TAR_BZIP2
- bool "bzip2"
- help
- Do compress the tarball with bzip2.
- Note that you either have to have bzip2 installed on your host
- or select to build a bzip2 for your host. See the packages submenu.
-
-config BR2_TARGET_ROOTFS_TAR_LZMA
- bool "lzma"
- help
- Do compress the tarball with lzma.
- Note that you either have to have lzma installed on your host
- or select to build a lzma for your host. See the packages submenu.
-
-endchoice
-
-config BR2_TARGET_ROOTFS_TAR_OPTIONS
- string "other random options to pass to tar"
- depends on BR2_TARGET_ROOTFS_TAR
- default ""
- help
- Any other flags you want to pass to tar
- Refer to tar --help for details
-
-config BR2_TARGET_ROOTFS_TAR_COPYTO
- string "also copy the image to..."
- depends on BR2_TARGET_ROOTFS_TAR
- default ""
- help
- Copies the resulting image to a secondary location
- like a tftp server's root directory.
-
- Example: $(IMAGE)-$(DATE).tar
-
diff --git a/target/tar/tarroot.mk b/target/tar/tarroot.mk
deleted file mode 100644
index a7e95df98..000000000
--- a/target/tar/tarroot.mk
+++ /dev/null
@@ -1,64 +0,0 @@
-#############################################################
-#
-# tar to archive target filesystem
-#
-#############################################################
-
-TAR_OPTS:=$(BR2_TARGET_ROOTFS_TAR_OPTIONS)
-TAR_TARGET:=$(IMAGE).tar
-
-TAR_COMPRESSOR:=
-TAR_COMPRESSOR_EXT:=.none
-ifeq ($(BR2_TARGET_ROOTFS_TAR_GZIP),y)
-TAR_COMPRESSOR:=gzip -9 -c
-TAR_COMPRESSOR_EXT:=gz
-endif
-ifeq ($(BR2_TARGET_ROOTFS_TAR_BZIP2),y)
-TAR_COMPRESSOR:=bzip2 -9 -c
-TAR_COMPRESSOR_EXT:=bz2
-endif
-ifeq ($(BR2_TARGET_ROOTFS_TAR_LZMA),y)
-TAR_COMPRESSOR:=lzma -9 -c
-TAR_COMPRESSOR_EXT:=lzma
-endif
-ROOTFS_TAR_COPYTO:=$(call qstrip,$(BR2_TARGET_ROOTFS_TAR_COPYTO))
-
-tarroot: host-fakeroot makedevs
- # Use fakeroot to pretend all target binaries are owned by root
- rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
- touch $(BUILD_DIR)/.fakeroot.00000
- cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
- echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
-ifneq ($(TARGET_DEVICE_TABLE),)
- # Use fakeroot to pretend to create all needed device nodes
- echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
-endif
- # Use fakeroot so tar believes the previous fakery
- echo "tar -c$(TAR_OPTS)f $(TAR_TARGET) -C $(TARGET_DIR) ." \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
- chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
- $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
-ifneq ($(TAR_COMPRESSOR),)
- -rm -f $(TAR_TARGET).$()
- PATH="$(STAGING_DIR)/sbin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/sbin:$(STAGING_DIR)/usr/bin:$(PATH)" $(TAR_COMPRESSOR) $(TAR_TARGET) > $(TAR_TARGET).$(TAR_COMPRESSOR_EXT)
-endif
-ifneq ($(ROOTFS_TAR_COPYTO),)
- $(Q)cp -f $(TAR_TARGET) $(ROOTFS_TAR_COPYTO)
-endif
- -@rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET))
-
-tarroot-source:
-
-tarroot-clean:
-
-tarroot-dirclean:
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_TARGET_ROOTFS_TAR),y)
-TARGETS+=tarroot
-endif
diff --git a/target/ubifs/Config.in b/target/ubifs/Config.in
deleted file mode 100644
index 886c34bfb..000000000
--- a/target/ubifs/Config.in
+++ /dev/null
@@ -1,103 +0,0 @@
-config BR2_TARGET_ROOTFS_UBIFS
- bool "ubifs root filesystem"
- depends on BROKEN # upstream git gone, should use mtd-utils
- select BR2_HOST_FAKEROOT
- help
- Build a ubifs root filesystem
-
-config BR2_TARGET_ROOTFS_UBIFS_LEBSIZE
- hex "UBI logical erase block size"
- depends on BR2_TARGET_ROOTFS_UBIFS
- default 0x1f800
-
-config BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE
- hex "UBI minimum I/O size"
- depends on BR2_TARGET_ROOTFS_UBIFS
- default 0x800
- help
- Some comment required here
-
-config BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT
- int "Maximum LEB count"
- depends on BR2_TARGET_ROOTFS_UBIFS
- default 2048
- help
- Some comment required here
-
-config BR2_TARGET_ROOTFS_UBIFS_OUTPUT
- string "Output File"
- depends on BR2_TARGET_ROOTFS_UBIFS
- default "$(IMAGE).ubifs"
-
-choice
- prompt "ubifs runtime compression"
- default BR2_TARGET_ROOTFS_UBIFS_RT_LZO
- depends on BR2_TARGET_ROOTFS_UBIFS
- help
- Select which compression format to use at run-time within
- the ubifs file system.
-
-config BR2_TARGET_ROOTFS_UBIFS_RT_NONE
- bool "no compression"
- help
- Don't use run-time compression.
-
-config BR2_TARGET_ROOTFS_UBIFS_RT_ZLIB
- bool "gzip"
- help
- Use zlib compression at run-time.
-
-config BR2_TARGET_ROOTFS_UBIFS_RT_LZO
- bool "lzo"
- help
- Use lzo compression at run-time.
-
-endchoice
-
-choice
- prompt "Compression method"
- default BR2_TARGET_ROOTFS_UBIFS_NONE
- depends on BR2_TARGET_ROOTFS_UBIFS
- help
- Select which compression format to compress the final image
- into.
-
-config BR2_TARGET_ROOTFS_UBIFS_NONE
- bool "no compression"
- help
- Do not compress the ubifs filesystem.
-
-config BR2_TARGET_ROOTFS_UBIFS_GZIP
- bool "gzip"
- help
- Do compress the ubifs filesystem with gzip.
- Note that you either have to have gzip installed on your
- host or select to build a gzip for your host. See the
- packages submenu.
-
-config BR2_TARGET_ROOTFS_UBIFS_BZIP2
- bool "bzip2"
- help
- Do compress the ubifs filesystem with bzip2.
- Note that you either have to have bzip2 installed on your
- host or select to build a bzip2 for your host. See the
- packages submenu.
-
-config BR2_TARGET_ROOTFS_UBIFS_LZMA
- bool "lzma"
- help
- Do compress the ubifs filesystem with lzma.
- Note that you either have to have lzma installed on your
- host or select to build a lzma for your host. See the
- packages submenu.
-
-endchoice
-
-config BR2_TARGET_ROOTFS_UBIFS_COPYTO
- string "also copy the image to..."
- depends on BR2_TARGET_ROOTFS_UBIFS
- default ""
- help
- Copies the resulting image to a secondary location
- like a tftp server's root directory.
-
diff --git a/target/ubifs/ubifsroot.mk b/target/ubifs/ubifsroot.mk
deleted file mode 100644
index e73d4f926..000000000
--- a/target/ubifs/ubifsroot.mk
+++ /dev/null
@@ -1,125 +0,0 @@
-#############################################################
-#
-# mkfs.ubifs to build to target ubifs filesystems
-#
-#############################################################
-#MKFS_UBIFS_VERSION=2582f128dad78591bc3adcc87c343c690bb82e61
-#MKFS_UBIFS_URL=http://git.infradead.org/users/dedekind/mkfs.ubifs.git?a=snapshot;h=$(MKFS_UBIFS_VERSION);sf=tgz
-MKFS_UBIFS_VERSION=v0.4
-MKFS_UBIFS_URL=http://git.infradead.org/users/dedekind/mkfs.ubifs.git?a=snapshot;h=refs/tags/mkfs.ubifs-$(MKFS_UBIFS_VERSION);sf=tgz
-MKFS_UBIFS_SOURCE:=mkfs.ubifs-$(MKFS_UBIFS_VERSION).tar.gz
-MKFS_UBIFS_DIR:= $(BUILD_DIR)/mkfs-ubifs-$(MKFS_UBIFS_VERSION)
-MKFS_UBIFS_CAT:=$(ZCAT)
-MKFS_UBIFS_NAME:=mkfs.ubifs
-
-$(DL_DIR)/$(MKFS_UBIFS_SOURCE):
- $(WGET) -O $(DL_DIR)/$(MKFS_UBIFS_SOURCE) "$(MKFS_UBIFS_URL)"
-
-$(MKFS_UBIFS_DIR)/.unpacked: $(DL_DIR)/$(MKFS_UBIFS_SOURCE)
- $(ZCAT) $(DL_DIR)/$(MKFS_UBIFS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- mv $(BUILD_DIR)/$(MKFS_UBIFS_NAME) $(MKFS_UBIFS_DIR)
- toolchain/patch-kernel.sh $(MKFS_UBIFS_DIR) target/ubifs/ mkfs-ubifs-\*.patch
- touch $@
-
-$(MKFS_UBIFS_DIR)/mkfs.ubifs: $(MKFS_UBIFS_DIR)/.unpacked
- $(MAKE) -C $(MKFS_UBIFS_DIR)
- touch -c $@
-
-mkfs.ubifs-dirclean:
- rm -rf $(MKFS_UBIFS_DIR)
-
-mkfs.ubifs: $(MKFS_UBIFS_DIR)/mkfs.ubifs
-
-#############################################################
-#
-# Build the ubifs root filesystem image
-#
-#############################################################
-
-UBIFS_OPTS := -e $(BR2_TARGET_ROOTFS_UBIFS_LEBSIZE) -c $(BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT) -m $(BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE)
-
-UBIFS_BASE := $(call qstrip,$(BR2_TARGET_ROOTFS_UBIFS_OUTPUT))
-
-ifeq ($(BR2_TARGET_ROOTFS_UBIFS_RT_ZLIB),y)
-UBIFS_OPTS += -x zlib
-endif
-ifeq ($(BR2_TARGET_ROOTFS_UBIFS_RT_LZI),y)
-UBIFS_OPTS += -x lzo
-endif
-ifeq ($(BR2_TARGET_ROOTFS_UBIFS_RT_NONE),y)
-UBIFS_OPTS += -x none
-endif
-
-UBIFS_ROOTFS_COMPRESSOR:=
-UBIFS_ROOTFS_COMPRESSOR_EXT:=
-UBIFS_ROOTFS_COMPRESSOR_PREREQ:=
-ifeq ($(BR2_TARGET_ROOTFS_UBIFS_GZIP),y)
-UBIFS_ROOTFS_COMPRESSOR:=gzip -9 -c
-UBIFS_ROOTFS_COMPRESSOR_EXT:=gz
-#UBIFS_ROOTFS_COMPRESSOR_PREREQ:= gzip-host
-endif
-ifeq ($(BR2_TARGET_ROOTFS_UBIFS_BZIP2),y)
-UBIFS_ROOTFS_COMPRESSOR:=bzip2 -9 -c
-UBIFS_ROOTFS_COMPRESSOR_EXT:=bz2
-#UBIFS_ROOTFS_COMPRESSOR_PREREQ:= bzip2-host
-endif
-ifeq ($(BR2_TARGET_ROOTFS_UBIFS_LZMA),y)
-UBIFS_ROOTFS_COMPRESSOR:=lzma -9 -c
-UBIFS_ROOTFS_COMPRESSOR_EXT:=lzma
-UBIFS_ROOTFS_COMPRESSOR_PREREQ:= lzma-host
-endif
-
-ifneq ($(UBIFS_ROOTFS_COMPRESSOR),)
-UBIFS_TARGET := $(UBIFS_BASE).$(UBIFS_ROOTFS_COMPRESSOR_EXT)
-else
-UBIFS_TARGET := $(UBIFS_BASE)
-endif
-
-$(UBIFS_BASE): host-fakeroot makedevs mkfs.ubifs
- # Use fakeroot to pretend all target binaries are owned by root
- rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET))
- touch $(BUILD_DIR)/.fakeroot.00000
- cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET))
- echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET))
-ifneq ($(TARGET_DEVICE_TABLE),)
- # Use fakeroot to pretend to create all needed device nodes
- echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
- >> $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET))
-endif
- # Use fakeroot so mkfs.ubifs believes the previous fakery
- echo "$(MKFS_UBIFS_DIR)/mkfs.ubifs -d $(TARGET_DIR) " \
- "$(UBIFS_OPTS) -o $(UBIFS_BASE)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET))
- chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET))
- $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET))
- -@rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET))
-
-ifneq ($(UBIFS_ROOTFS_COMPRESSOR),)
-$(UBIFS_BASE).$(UBIFS_ROOTFS_COMPRESSOR_EXT): $(UBIFS_ROOTFS_COMPRESSOR_PREREQ) $(UBIFS_BASE)
- $(UBIFS_ROOTFS_COMPRESSOR) $(UBIFS_BASE) > $(UBIFS_TARGET)
-endif
-
-UBIFS_COPYTO := $(call qstrip,$(BR2_TARGET_ROOTFS_UBIFS_COPYTO))
-
-ubifsroot: $(UBIFS_TARGET)
- @ls -l $(UBIFS_TARGET)
-ifneq ($(UBIFS_COPYTO),)
- @cp -f $(UBIFS_TARGET) $(UBIFS_COPYTO)
-endif
-
-ubifsroot-source: $(DL_DIR)/$(MKFS_UBIFS_SOURCE)
-
-ubifsroot-clean:
- -$(MAKE) -C $(MKFS_UBIFS_DIR) clean
-
-ubifsroot-dirclean:
- rm -rf $(MKFS_UBIFS_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_TARGET_ROOTFS_UBIFS),y)
-TARGETS+=ubifsroot
-endif
-
diff --git a/target/xtensa/defconfig b/target/xtensa/defconfig
index 07ab10bf4..f9b53a36c 100644
--- a/target/xtensa/defconfig
+++ b/target/xtensa/defconfig
@@ -94,7 +94,6 @@ BR2_TOOLCHAIN_BUILDROOT=y
#
# Other development stuff
#
-BR2_HOST_FAKEROOT=y
# BR2_PACKAGE_LIBINTL is not set
# For NFS mount:
BR2_PACKAGE_PORTMAP=y