summaryrefslogtreecommitdiffstats
path: root/yocto-poky/meta/recipes-devtools/syslinux
diff options
context:
space:
mode:
Diffstat (limited to 'yocto-poky/meta/recipes-devtools/syslinux')
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/0001-linux-syslinux-support-ext2-3-4-device.patch84
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/0002-linux-syslinux-implement-open_ext2_fs.patch141
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/0003-linux-syslinux-implement-install_to_ext2.patch116
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/0004-linux-syslinux-add-ext_file_read-and-ext_file_write.patch91
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/0005-linux-syslinux-implement-handle_adv_on_ext.patch127
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/0006-linux-syslinux-implement-write_to_ext-and-add-syslin.patch215
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/0007-linux-syslinux-implement-ext_construct_sectmap_fs.patch84
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/0008-libinstaller-syslinuxext-implement-syslinux_patch_bo.patch427
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/0009-linux-syslinux-implement-install_bootblock.patch50
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/0010-gcc46-compatibility.patch37
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/0011-mk-MMD-does-not-take-any-arguments.patch33
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-fix-parallel-building-issue.patch35
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-libupload-depend-lib.patch34
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-remove-clean-script.patch17
-rw-r--r--yocto-poky/meta/recipes-devtools/syslinux/syslinux_6.03.bb89
15 files changed, 0 insertions, 1580 deletions
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0001-linux-syslinux-support-ext2-3-4-device.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0001-linux-syslinux-support-ext2-3-4-device.patch
deleted file mode 100644
index 3ab787527..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0001-linux-syslinux-support-ext2-3-4-device.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 60f3833ab2b5899771b4eab654e88f9888b99501 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Wed, 31 Dec 2014 16:01:55 +0800
-Subject: [PATCH 1/9] linux/syslinux: support ext2/3/4 device
-
-* Support ext2/3/4 deivce.
-* The open_ext2_fs() checks whether it is an ext2/3/4 device,
- do the ext2/3/4 installation (install_to_ext2()) if yes, otherwise go
- on to the fat/ntfs.
-* The ext2/3/4 support doesn't require root privileges since it doesn't need
- mount (but write permission is required).
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Tested-by: Du Dolpher <dolpher.du@intel.com>
----
- linux/syslinux.c | 36 ++++++++++++++++++++++++++++++++++++
- 1 file changed, 36 insertions(+)
-
-diff --git a/linux/syslinux.c b/linux/syslinux.c
-index 912de71..36fc202 100755
---- a/linux/syslinux.c
-+++ b/linux/syslinux.c
-@@ -256,6 +256,23 @@ int do_open_file(char *name)
- return fd;
- }
-
-+/*
-+ * Check whether the device contains an ext2, ext3 or ext4 fs and open it if
-+ * true.
-+ * return value:
-+ * 0: Everything is OK
-+ * 1: Not an ext2, ext3 or ext4
-+ * -1: unexpected error
-+ */
-+static int open_ext2_fs(const char *device, const char *subdir)
-+{
-+}
-+
-+/* The install func for ext2, ext3 and ext4 */
-+static int install_to_ext2(const char *device, int dev_fd, const char *subdir)
-+{
-+}
-+
- int main(int argc, char *argv[])
- {
- static unsigned char sectbuf[SECTOR_SIZE];
-@@ -313,6 +330,24 @@ int main(int argc, char *argv[])
- die("can't combine an offset with a block device");
- }
-
-+ /*
-+ * Check if it is an ext2, ext3 or ext4
-+ */
-+ rv = open_ext2_fs(opt.device, subdir);
-+ if (rv == 0) {
-+ if (install_to_ext2(opt.device, dev_fd, subdir)) {
-+ fprintf(stderr, "%s: installation failed\n", opt.device);
-+ exit(1);
-+ }
-+ return 0;
-+ /* Unexpected errors */
-+ } else if (rv == -1) {
-+ exit(1);
-+ }
-+
-+ /* Reset rv */
-+ rv = 0;
-+
- xpread(dev_fd, sectbuf, SECTOR_SIZE, opt.offset);
- fsync(dev_fd);
-
-@@ -322,6 +357,7 @@ int main(int argc, char *argv[])
- */
- if ((errmsg = syslinux_check_bootsect(sectbuf, &fs_type))) {
- fprintf(stderr, "%s: %s\n", opt.device, errmsg);
-+ fprintf(stderr, "%s: supported fs: fat/ntfs/ext2/ex3/ext4\n", program);
- exit(1);
- }
-
---
-1.9.1
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0002-linux-syslinux-implement-open_ext2_fs.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0002-linux-syslinux-implement-open_ext2_fs.patch
deleted file mode 100644
index 77cf06045..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0002-linux-syslinux-implement-open_ext2_fs.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From 07fb737fb60c08eaaa41989d531fc23009523546 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Wed, 31 Dec 2014 16:09:18 +0800
-Subject: [PATCH 2/9] linux/syslinux: implement open_ext2_fs()
-
-The open_ext2_fs() checks whether it is an ext2/ext3/ext4 device, and
-return:
-0: It is an ext2, ext3 or ext4.
-1: Not an ext2, ext3 or ext4.
--1: unexpected error.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Tested-by: Du Dolpher <dolpher.du@intel.com>
----
- linux/Makefile | 2 +-
- linux/syslinux.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 81 insertions(+), 1 deletion(-)
-
-diff --git a/linux/Makefile b/linux/Makefile
-index 11667e1..ac1ac58 100644
---- a/linux/Makefile
-+++ b/linux/Makefile
-@@ -51,7 +51,7 @@ spotless: clean
- installer: syslinux syslinux-nomtools
-
- syslinux: $(OBJS)
-- $(CC) $(LDFLAGS) -o $@ $^
-+ $(CC) $(LDFLAGS) -o $@ $^ -lext2fs
-
- syslinux-nomtools: syslinux
- ln -f $< $@
-diff --git a/linux/syslinux.c b/linux/syslinux.c
-index 36fc202..cc4e7da 100755
---- a/linux/syslinux.c
-+++ b/linux/syslinux.c
-@@ -72,6 +72,7 @@
- #include "syslxfs.h"
- #include "setadv.h"
- #include "syslxopt.h" /* unified options */
-+#include <ext2fs/ext2fs.h>
-
- extern const char *program; /* Name of program */
-
-@@ -82,6 +83,9 @@ char *mntpath = NULL; /* Path on which to mount */
- int loop_fd = -1; /* Loop device */
- #endif
-
-+ext2_filsys e2fs = NULL; /* Ext2/3/4 filesystem */
-+ext2_ino_t root, cwd; /* The root and cwd of e2fs */
-+
- void __attribute__ ((noreturn)) die(const char *msg)
- {
- fprintf(stderr, "%s: %s\n", program, msg);
-@@ -266,6 +270,82 @@ int do_open_file(char *name)
- */
- static int open_ext2_fs(const char *device, const char *subdir)
- {
-+ int retval;
-+ int open_flag = EXT2_FLAG_RW, mount_flags;
-+ ext2_ino_t dirino;
-+ char opt_string[40];
-+
-+ if (opt.offset) {
-+ sprintf(opt_string, "offset=%llu", (unsigned long long)opt.offset);
-+ retval = ext2fs_open2(device, opt_string, open_flag, 0, 0, unix_io_manager, &e2fs);
-+ } else
-+ retval = ext2fs_open(device, open_flag, 0, 0, unix_io_manager, &e2fs);
-+ if (retval) {
-+ /* It might not be an extN fs, so we need check magic firstly */
-+ if (retval == EXT2_ET_BAD_MAGIC) {
-+ /* Do nothing, return silently */
-+ return 1;
-+ } else {
-+ fprintf(stderr, "%s: error while trying to open: %s\n",
-+ program, device);
-+ return -1;
-+ }
-+ }
-+
-+ /* Stop if it is mounted */
-+ retval = ext2fs_check_if_mounted(device, &mount_flags);
-+ if (retval) {
-+ fprintf(stderr, "%s: ext2fs_check_if_mount() error on %s\n",
-+ program, device);
-+ goto fail;
-+ }
-+
-+ if (mount_flags & EXT2_MF_MOUNTED) {
-+ fprintf(stderr, "%s: %s is mounted\n", program, device);
-+ goto fail;
-+ }
-+
-+ e2fs->default_bitmap_type = EXT2FS_BMAP64_RBTREE;
-+
-+ /* Read the inode map */
-+ retval = ext2fs_read_inode_bitmap(e2fs);
-+ if (retval) {
-+ fprintf(stderr, "%s: while reading inode bitmap: %s\n",
-+ program, device);
-+ goto fail;
-+ }
-+
-+ /* Read the block map */
-+ retval = ext2fs_read_block_bitmap(e2fs);
-+ if (retval) {
-+ fprintf(stderr, "%s: while reading block bitmap: %s\n",
-+ program, device);
-+ goto fail;
-+ }
-+
-+ root = cwd = EXT2_ROOT_INO;
-+ /* Check the subdir */
-+ if (strcmp(subdir, "/")) {
-+ retval = ext2fs_namei(e2fs, root, cwd, subdir, &dirino);
-+ if (retval) {
-+ fprintf(stderr, "%s: failed to find dir %s on %s\n",
-+ program, subdir, device);
-+ goto fail;
-+ }
-+
-+ retval = ext2fs_check_directory(e2fs, dirino);
-+ if (retval) {
-+ fprintf(stderr, "%s: failed to cd to: %s\n", program, subdir);
-+ goto fail;
-+ }
-+ cwd = dirino;
-+ }
-+
-+ return 0;
-+
-+fail:
-+ (void) ext2fs_close(e2fs);
-+ return -1;
- }
-
- /* The install func for ext2, ext3 and ext4 */
---
-1.9.1
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0003-linux-syslinux-implement-install_to_ext2.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0003-linux-syslinux-implement-install_to_ext2.patch
deleted file mode 100644
index 84ba10526..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0003-linux-syslinux-implement-install_to_ext2.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 64d856b243812907068776b204a003a3a8fa122a Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Wed, 31 Dec 2014 16:17:42 +0800
-Subject: [PATCH 3/9] linux/syslinux: implement install_to_ext2()
-
-* The handle_adv_on_ext() checks whether we only need update adv.
-* The write_to_ext() installs files (ldlinux.sys or ldlinux.c32) to the
- device.
-* The install_bootblock() installs the boot block.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Tested-by: Du Dolpher <dolpher.du@intel.com>
----
- linux/syslinux.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 79 insertions(+)
-
-diff --git a/linux/syslinux.c b/linux/syslinux.c
-index cc4e7da..45f080d 100755
---- a/linux/syslinux.c
-+++ b/linux/syslinux.c
-@@ -346,11 +346,90 @@ static int open_ext2_fs(const char *device, const char *subdir)
- fail:
- (void) ext2fs_close(e2fs);
- return -1;
-+
-+}
-+
-+/*
-+ * Install the boot block on the specified device.
-+ * Must be run AFTER file installed.
-+ */
-+int install_bootblock(int fd, const char *device)
-+{
-+}
-+
-+static int handle_adv_on_ext(void)
-+{
-+}
-+
-+/* Write files, adv, boot sector */
-+static int write_to_ext(const char *filename, const char *str, int length,
-+ int i_flags, int dev_fd, const char *subdir)
-+{
- }
-
- /* The install func for ext2, ext3 and ext4 */
- static int install_to_ext2(const char *device, int dev_fd, const char *subdir)
- {
-+ int retval;
-+ ext2_ino_t oldino;
-+
-+ const char *file = "ldlinux.sys";
-+ const char *oldfile = "extlinux.sys";
-+ const char *c32file = "ldlinux.c32";
-+
-+ /* Handle the adv */
-+ if (handle_adv_on_ext() < 0) {
-+ fprintf(stderr, "%s: error while handling ADV on %s\n",
-+ program, device);
-+ retval = 1;
-+ goto fail;
-+ }
-+
-+ /* Return if only need update the adv */
-+ if (opt.update_only == -1) {
-+ return ext2fs_close(e2fs);
-+ }
-+
-+ /* Write ldlinux.sys, adv, boot sector */
-+ retval = write_to_ext(file, (const char _force *)boot_image,
-+ boot_image_len, EXT2_IMMUTABLE_FL, dev_fd, subdir);
-+ if (retval) {
-+ fprintf(stderr, "%s: ERROR: while writing: %s.\n",
-+ program, file);
-+ goto fail;
-+ }
-+
-+ /* Write ldlinux.c32 */
-+ retval = write_to_ext(c32file,
-+ (const char _force *)syslinux_ldlinuxc32,
-+ syslinux_ldlinuxc32_len, 0, dev_fd, subdir);
-+ if (retval) {
-+ fprintf(stderr, "%s: ERROR: while writing: %s.\n",
-+ program, c32file);
-+ goto fail;
-+ }
-+
-+ /* Look if we have the extlinux.sys and remove it*/
-+ retval = ext2fs_namei(e2fs, root, cwd, oldfile, &oldino);
-+ if (retval == 0) {
-+ retval = ext2fs_unlink(e2fs, cwd, oldfile, oldino, 0);
-+ if (retval) {
-+ fprintf(stderr, "%s: ERROR: failed to unlink: %s\n",
-+ program, oldfile);
-+ goto fail;
-+ }
-+ } else {
-+ retval = 0;
-+ }
-+
-+ sync();
-+ retval = install_bootblock(dev_fd, device);
-+ close(dev_fd);
-+ sync();
-+
-+fail:
-+ (void) ext2fs_close(e2fs);
-+ return retval;
- }
-
- int main(int argc, char *argv[])
---
-1.9.1
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0004-linux-syslinux-add-ext_file_read-and-ext_file_write.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0004-linux-syslinux-add-ext_file_read-and-ext_file_write.patch
deleted file mode 100644
index 64b56d92e..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0004-linux-syslinux-add-ext_file_read-and-ext_file_write.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 35d3842cc4b930c5102eed2921e0189b7f4fd069 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Wed, 31 Dec 2014 16:43:37 +0800
-Subject: [PATCH 4/9] linux/syslinux: add ext_file_read() and ext_file_write()
-
-Will use them to read and write on the extX device.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Tested-by: Du Dolpher <dolpher.du@intel.com>
----
- linux/syslinux.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 62 insertions(+)
-
-diff --git a/linux/syslinux.c b/linux/syslinux.c
-index 45f080d..247c86a 100755
---- a/linux/syslinux.c
-+++ b/linux/syslinux.c
-@@ -349,6 +349,68 @@ fail:
-
- }
-
-+/* Read from an ext2_file */
-+static int ext_file_read(ext2_file_t e2_file, void *buf, size_t count,
-+ off_t offset, const char *msg)
-+{
-+ int retval;
-+ char *ptr = (char *) buf;
-+ unsigned int got = 0;
-+ size_t done = 0;
-+
-+ /* Always lseek since e2_file is uncontrolled by this func */
-+ if (ext2fs_file_lseek(e2_file, offset, EXT2_SEEK_SET, NULL)) {
-+ fprintf(stderr, "%s: ext2fs_file_lseek() failed.\n",
-+ program);
-+ return -1;
-+ }
-+
-+ while (1) {
-+ retval = ext2fs_file_read(e2_file, ptr, count, &got);
-+ if (retval) {
-+ fprintf(stderr, "%s: error while reading %s\n",
-+ program, msg);
-+ return -1;
-+ }
-+ count -= got;
-+ ptr += got;
-+ done += got;
-+ if (got == 0 || count == 0)
-+ break;
-+ }
-+
-+ return done;
-+}
-+
-+/* Write to an ext2_file */
-+static int ext_file_write(ext2_file_t e2_file, const void *buf, size_t count,
-+ off_t offset)
-+{
-+ const char *ptr = (const char *) buf;
-+ unsigned int written = 0;
-+ size_t done = 0;
-+
-+ /* Always lseek since e2_file is uncontrolled by this func */
-+ if (ext2fs_file_lseek(e2_file, offset, EXT2_SEEK_SET, NULL)) {
-+ fprintf(stderr, "%s: ext2fs_file_lseek() failed.\n",
-+ program);
-+ return -1;
-+ }
-+
-+ while (count > 0) {
-+ if (ext2fs_file_write(e2_file, ptr, count, &written)) {
-+ fprintf(stderr, "%s: failed to write syslinux adv.\n",
-+ program);
-+ return -1;
-+ }
-+ count -= written;
-+ ptr += written;
-+ done += written;
-+ }
-+
-+ return done;
-+}
-+
- /*
- * Install the boot block on the specified device.
- * Must be run AFTER file installed.
---
-1.9.1
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0005-linux-syslinux-implement-handle_adv_on_ext.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0005-linux-syslinux-implement-handle_adv_on_ext.patch
deleted file mode 100644
index 829e7c4ca..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0005-linux-syslinux-implement-handle_adv_on_ext.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From cdb980b37f40dc2c41891434c7736e49da53756e Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Wed, 31 Dec 2014 16:47:52 +0800
-Subject: [PATCH 5/9] linux/syslinux: implement handle_adv_on_ext()
-
-It reads adv if found on the device, or resets syslinux_adv, or update
-the adv if update adv only.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Tested-by: Du Dolpher <dolpher.du@intel.com>
----
- linux/syslinux.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 97 insertions(+)
-
-diff --git a/linux/syslinux.c b/linux/syslinux.c
-index 247c86a..de5d272 100755
---- a/linux/syslinux.c
-+++ b/linux/syslinux.c
-@@ -421,6 +421,103 @@ int install_bootblock(int fd, const char *device)
-
- static int handle_adv_on_ext(void)
- {
-+ int i, retval, found_file;
-+ int need_close = 2; /* 2 means no need extra close */
-+ char *filenames[2] = {"ldlinux.sys", "extlinux.sys"};
-+ char *filename;
-+ ext2_ino_t newino;
-+ ext2_file_t e2_file;
-+ struct ext2_inode inode;
-+
-+ for (i = 0; i < 2; i++) {
-+ filename = filenames[i];
-+ found_file = 0;
-+ retval = ext2fs_namei(e2fs, root, cwd, filename, &newino);
-+ if (retval == 0) {
-+ found_file = 1;
-+ } else
-+ continue;
-+
-+ need_close = i;
-+
-+ retval = ext2fs_file_open(e2fs, newino, EXT2_FLAG_RW, &e2_file);
-+ if (retval) {
-+ fprintf(stderr, "%s: failed to open %s\n",
-+ program, filename);
-+ goto fail;
-+ }
-+
-+ retval = ext2fs_read_inode(e2fs, newino, &inode);
-+ if (retval) {
-+ fprintf(stderr, "%s: error while reading inode: %u, file: %s\n",
-+ program, newino, filename);
-+ goto fail;
-+ }
-+
-+ /* Check the size to see if too small to read */
-+ if (inode.i_size < 2 * ADV_SIZE) {
-+ if (opt.update_only == -1) {
-+ fprintf(stderr, "%s: failed to write auxilliary data\n\
-+ the size of %s is too small (need --update)?\n",
-+ program, filename);
-+ retval = -1;
-+ goto fail;
-+ }
-+ syslinux_reset_adv(syslinux_adv);
-+ found_file = 0;
-+ break;
-+ }
-+
-+ /* Read the adv */
-+ retval = ext_file_read(e2_file, syslinux_adv, 2 * ADV_SIZE,
-+ inode.i_size - 2 * ADV_SIZE, "ADV");
-+ if (retval == -1)
-+ goto fail;
-+ if (retval == 2 * ADV_SIZE) {
-+ retval = syslinux_validate_adv(syslinux_adv);
-+ /* Read the adv successfully */
-+ if (retval == 0)
-+ break;
-+ }
-+
-+ /* Close the file if reaches here, otherwise we leave the file
-+ * open in case we need write it */
-+ need_close = 2;
-+ retval = ext2fs_file_close(e2_file);
-+ if (retval) {
-+ fprintf(stderr, "%s: error while closing %s\n",
-+ program, filename);
-+ return retval;
-+ }
-+ }
-+
-+ if (!found_file) {
-+ if (opt.update_only == -1) {
-+ fprintf(stderr, "%s: no ldlinux.sys or extlinux.sys found on the device\n",
-+ program);
-+ return -1;
-+ }
-+ syslinux_reset_adv(syslinux_adv);
-+ }
-+
-+ /* The modify_adv will reset the adv if opt.reset_adv */
-+ if (modify_adv() < 0) {
-+ fprintf(stderr, "%s: error while modifying adv\n", program);
-+ retval = -1;
-+ goto fail;
-+ }
-+
-+ /* Write adv if update_only == -1 and found file */
-+ if (opt.update_only == -1 && found_file) {
-+ if (ext_file_write(e2_file, syslinux_adv, 2 * ADV_SIZE ,
-+ inode.i_size - 2 * ADV_SIZE) == -1)
-+ goto fail;
-+ }
-+
-+fail:
-+ if (need_close != 2)
-+ (void) ext2fs_file_close(e2_file);
-+ return retval;
- }
-
- /* Write files, adv, boot sector */
---
-1.9.1
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0006-linux-syslinux-implement-write_to_ext-and-add-syslin.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0006-linux-syslinux-implement-write_to_ext-and-add-syslin.patch
deleted file mode 100644
index cba87252a..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0006-linux-syslinux-implement-write_to_ext-and-add-syslin.patch
+++ /dev/null
@@ -1,215 +0,0 @@
-From 922e56c10e36d876777580c84daef9a66bea6525 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Wed, 31 Dec 2014 17:20:43 +0800
-Subject: [PATCH 6/9] linux/syslinux: implement write_to_ext() and add
- syslinuxext.c
-
-* The write_to_ext() write file to the extX device, and handle the boot
- sector.
-* The syslinuxext.c is used for placing the code which are used by
- extlinux and syslinux (which is syslinux_patch_bootsect()).
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Tested-by: Du Dolpher <dolpher.du@intel.com>
----
- libinstaller/syslinuxext.c | 7 +++
- libinstaller/syslinuxext.h | 5 ++
- linux/Makefile | 3 +-
- linux/syslinux.c | 118 +++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 132 insertions(+), 1 deletion(-)
- create mode 100644 libinstaller/syslinuxext.c
- create mode 100644 libinstaller/syslinuxext.h
-
-diff --git a/libinstaller/syslinuxext.c b/libinstaller/syslinuxext.c
-new file mode 100644
-index 0000000..bb54cef
---- /dev/null
-+++ b/libinstaller/syslinuxext.c
-@@ -0,0 +1,7 @@
-+#define _GNU_SOURCE
-+
-+/* Patch syslinux_bootsect */
-+void syslinux_patch_bootsect(int dev_fd)
-+{
-+}
-+
-diff --git a/libinstaller/syslinuxext.h b/libinstaller/syslinuxext.h
-new file mode 100644
-index 0000000..8abd8b9
---- /dev/null
-+++ b/libinstaller/syslinuxext.h
-@@ -0,0 +1,5 @@
-+#ifndef EXT2_SUPER_OFFSET
-+#define EXT2_SUPER_OFFSET 1024
-+#endif
-+
-+void syslinux_patch_bootsect(int dev_fd);
-diff --git a/linux/Makefile b/linux/Makefile
-index ac1ac58..3b23867 100644
---- a/linux/Makefile
-+++ b/linux/Makefile
-@@ -30,7 +30,8 @@ SRCS = syslinux.c \
- ../libinstaller/syslxmod.c \
- ../libinstaller/bootsect_bin.c \
- ../libinstaller/ldlinuxc32_bin.c \
-- ../libinstaller/ldlinux_bin.c
-+ ../libinstaller/ldlinux_bin.c \
-+ ../libinstaller/syslinuxext.c
- OBJS = $(patsubst %.c,%.o,$(notdir $(SRCS)))
-
- .SUFFIXES: .c .o .i .s .S
-diff --git a/linux/syslinux.c b/linux/syslinux.c
-index de5d272..f0c97a8 100755
---- a/linux/syslinux.c
-+++ b/linux/syslinux.c
-@@ -46,6 +46,7 @@
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <sys/mount.h>
-+#include <time.h>
-
- #include "linuxioctl.h"
-
-@@ -72,6 +73,7 @@
- #include "syslxfs.h"
- #include "setadv.h"
- #include "syslxopt.h" /* unified options */
-+#include "syslinuxext.h"
- #include <ext2fs/ext2fs.h>
-
- extern const char *program; /* Name of program */
-@@ -419,6 +421,12 @@ int install_bootblock(int fd, const char *device)
- {
- }
-
-+/* Construct the boot file map */
-+int ext_construct_sectmap_fs(ext2_filsys fs, ext2_ino_t newino,
-+ sector_t *sectors, int nsect)
-+{
-+}
-+
- static int handle_adv_on_ext(void)
- {
- int i, retval, found_file;
-@@ -524,6 +532,116 @@ fail:
- static int write_to_ext(const char *filename, const char *str, int length,
- int i_flags, int dev_fd, const char *subdir)
- {
-+ ext2_ino_t newino;
-+ struct ext2_inode inode;
-+ int retval, i, modbytes, nsect;
-+ ext2_file_t e2_file;
-+ sector_t *sectors;
-+
-+ /* Remove it if it is already exists */
-+ retval = ext2fs_namei(e2fs, root, cwd, filename, &newino);
-+ if (retval == 0) {
-+ retval = ext2fs_unlink(e2fs, cwd, filename, newino, 0);
-+ if (retval) {
-+ fprintf(stderr, "%s: failed to unlink: %s\n", program, filename);
-+ return retval;
-+ }
-+ }
-+
-+ /* Create new inode */
-+ retval = ext2fs_new_inode(e2fs, cwd, 010755, 0, &newino);
-+ if (retval) {
-+ fprintf(stderr, "%s: ERROR: failed to create inode for: %s\n",
-+ program, filename);
-+ return retval;
-+ }
-+
-+ /* Link the inode and the filename */
-+ retval = ext2fs_link(e2fs, cwd, filename, newino, EXT2_FT_REG_FILE);
-+ if (retval) {
-+ fprintf(stderr, "%s: ERROR: failed to link inode for: %s.\n",
-+ program, filename);
-+ return retval;
-+ }
-+
-+ if (ext2fs_test_inode_bitmap2(e2fs->inode_map, newino))
-+ fprintf(stderr, "%s: warning: inode already set %s.\n",
-+ program, filename);
-+
-+ ext2fs_inode_alloc_stats2(e2fs, newino, +1, 0);
-+ memset(&inode, 0, sizeof(inode));
-+ inode.i_mode = LINUX_S_IFREG | LINUX_S_IRUSR | LINUX_S_IRGRP
-+ | LINUX_S_IROTH;
-+ inode.i_flags |= i_flags;
-+ inode.i_atime = inode.i_ctime = inode.i_mtime =
-+ e2fs->now ? e2fs->now : time(0);
-+ inode.i_links_count = 1;
-+ if (e2fs->super->s_feature_incompat &
-+ EXT3_FEATURE_INCOMPAT_EXTENTS) {
-+ struct ext3_extent_header *eh;
-+
-+ eh = (struct ext3_extent_header *) &inode.i_block[0];
-+ eh->eh_depth = 0;
-+ eh->eh_entries = 0;
-+ eh->eh_magic = ext2fs_cpu_to_le16(EXT3_EXT_MAGIC);
-+ i = (sizeof(inode.i_block) - sizeof(*eh)) /
-+ sizeof(struct ext3_extent);
-+ eh->eh_max = ext2fs_cpu_to_le16(i);
-+ inode.i_flags |= EXT4_EXTENTS_FL;
-+ }
-+
-+ retval = ext2fs_write_new_inode(e2fs, newino, &inode);
-+ if (retval) {
-+ fprintf(stderr, "%s: ERROR: while writting inode %d.\n",
-+ program, newino);
-+ return 1;
-+ }
-+
-+ retval = ext2fs_file_open(e2fs, newino, EXT2_FILE_WRITE, &e2_file);
-+ if (retval) {
-+ fprintf(stderr, "%s: ERROR: failed to open %s.\n",
-+ program, filename);
-+ return 1;
-+ }
-+
-+ /* Write to file */
-+ if (ext_file_write(e2_file, str, length, 0) == -1)
-+ goto fail;
-+
-+ if (strcmp(filename, "ldlinux.sys") == 0) {
-+ /* Write ADV */
-+ if (ext_file_write(e2_file, syslinux_adv, 2 * ADV_SIZE,
-+ boot_image_len) == -1)
-+ goto fail;
-+
-+ /* Patch syslinux_bootsect */
-+ syslinux_patch_bootsect(dev_fd);
-+
-+ /* Patch ldlinux.sys */
-+ nsect = (boot_image_len + SECTOR_SIZE - 1) >> SECTOR_SHIFT;
-+ nsect += 2; /* Two sectors for the ADV */
-+ sectors = alloca(sizeof(sector_t) * nsect);
-+ memset(sectors, 0, nsect * sizeof *sectors);
-+ /* The sectors will be modified and used by syslinux_patch() */
-+ retval = ext_construct_sectmap_fs(e2fs, newino, sectors, nsect);
-+ if (retval)
-+ goto fail;
-+
-+ /* Create the modified image in memory */
-+ modbytes = syslinux_patch(sectors, nsect, opt.stupid_mode,
-+ opt.raid_mode, subdir, NULL);
-+
-+ /* Rewrite the first modbytes of ldlinux.sys */
-+ if (ext_file_write(e2_file, str, modbytes, 0) == -1) {
-+ fprintf(stderr, "%s: ERROR: failed to patch %s.\n", program,
-+ filename);
-+ goto fail;
-+ }
-+ }
-+
-+fail:
-+ (void) ext2fs_file_close(e2_file);
-+ return retval;
- }
-
- /* The install func for ext2, ext3 and ext4 */
---
-1.9.1
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0007-linux-syslinux-implement-ext_construct_sectmap_fs.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0007-linux-syslinux-implement-ext_construct_sectmap_fs.patch
deleted file mode 100644
index 391381191..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0007-linux-syslinux-implement-ext_construct_sectmap_fs.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From a95b831e18dd123f859bc5e6c4cecdcc0184ee37 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Fri, 2 Jan 2015 12:18:02 +0800
-Subject: [PATCH 7/9] linux/syslinux: implement ext_construct_sectmap_fs()
-
-The ext_construct_sectmap_fs() constucts the sector according to the
-bmap.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Tested-by: Du Dolpher <dolpher.du@intel.com>
----
- linux/syslinux.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 50 insertions(+)
-
-diff --git a/linux/syslinux.c b/linux/syslinux.c
-index f0c97a8..c741750 100755
---- a/linux/syslinux.c
-+++ b/linux/syslinux.c
-@@ -421,10 +421,60 @@ int install_bootblock(int fd, const char *device)
- {
- }
-
-+/* The file's block count */
-+int block_count = 0;
-+static int get_block_count(ext2_filsys fs EXT2FS_ATTR((unused)),
-+ blk64_t *blocknr EXT2FS_ATTR((unused)),
-+ e2_blkcnt_t blockcnt EXT2FS_ATTR((unused)),
-+ blk64_t ref_block EXT2FS_ATTR((unused)),
-+ int ref_offset EXT2FS_ATTR((unused)),
-+ void *private EXT2FS_ATTR((unused)))
-+{
-+ block_count++;
-+ return 0;
-+}
-+
- /* Construct the boot file map */
- int ext_construct_sectmap_fs(ext2_filsys fs, ext2_ino_t newino,
- sector_t *sectors, int nsect)
- {
-+ blk64_t pblk, blksize, blk = 0;
-+ sector_t sec;
-+ unsigned int i;
-+ int retval;
-+
-+ blksize = fs->blocksize;
-+ blksize >>= SECTOR_SHIFT;
-+
-+ /* Get the total blocks no. */
-+ retval = ext2fs_block_iterate3(fs, newino, BLOCK_FLAG_READ_ONLY,
-+ NULL, get_block_count, NULL);
-+ if (retval) {
-+ fprintf(stderr, "%s: ERROR: ext2fs_block_iterate3() failed.\n", program);
-+ return -1;
-+ }
-+
-+ while (nsect) {
-+ if (block_count-- == 0)
-+ break;
-+
-+ /* Get the physical block no. (bmap) */
-+ retval = ext2fs_bmap2(fs, newino, 0, 0, 0, blk, 0, &pblk);
-+ if (retval) {
-+ fprintf(stderr, "%s: ERROR: ext2fs_bmap2() failed.\n", program);
-+ return -1;
-+ }
-+
-+ blk++;
-+ sec = (sector_t)pblk * blksize;
-+ for (i = 0; i < blksize; i++) {
-+ *sectors++ = sec++;
-+ if (! --nsect)
-+ break;
-+ }
-+ }
-+
-+ return 0;
- }
-
- static int handle_adv_on_ext(void)
---
-1.9.1
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0008-libinstaller-syslinuxext-implement-syslinux_patch_bo.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0008-libinstaller-syslinuxext-implement-syslinux_patch_bo.patch
deleted file mode 100644
index 2400c98d6..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0008-libinstaller-syslinuxext-implement-syslinux_patch_bo.patch
+++ /dev/null
@@ -1,427 +0,0 @@
-From 78d76b87a4b855e6b661ae457283a63f385c04c9 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Fri, 2 Jan 2015 12:26:46 +0800
-Subject: [PATCH 8/9] libinstaller/syslinuxext: implement
- syslinux_patch_bootsect()
-
-Move the related from extlinux/main.c to libinstaller/syslinuxext.c, the
-syslinux_patch_bootsect() are used by both extlinux/main.c and
-linux/syslinux.c.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Tested-by: Du Dolpher <dolpher.du@intel.com>
----
- extlinux/Makefile | 3 +-
- extlinux/main.c | 167 +-------------------------------------------
- libinstaller/syslinuxext.c | 170 +++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 175 insertions(+), 165 deletions(-)
-
-diff --git a/extlinux/Makefile b/extlinux/Makefile
-index 02d1db5..90dd92f 100644
---- a/extlinux/Makefile
-+++ b/extlinux/Makefile
-@@ -31,7 +31,8 @@ SRCS = main.c \
- ../libinstaller/advio.c \
- ../libinstaller/bootsect_bin.c \
- ../libinstaller/ldlinuxc32_bin.c \
-- ../libinstaller/ldlinux_bin.c
-+ ../libinstaller/ldlinux_bin.c \
-+ ../libinstaller/syslinuxext.c
- OBJS = $(patsubst %.c,%.o,$(notdir $(SRCS)))
-
- .SUFFIXES: .c .o .i .s .S
-diff --git a/extlinux/main.c b/extlinux/main.c
-index 09740bd..6fe026e 100644
---- a/extlinux/main.c
-+++ b/extlinux/main.c
-@@ -60,6 +60,7 @@
- #include "setadv.h"
- #include "syslxopt.h" /* unified options */
- #include "mountinfo.h"
-+#include "syslinuxext.h"
-
- #ifdef DEBUG
- # define dprintf printf
-@@ -67,10 +68,6 @@
- # define dprintf(...) ((void)0)
- #endif
-
--#ifndef EXT2_SUPER_OFFSET
--#define EXT2_SUPER_OFFSET 1024
--#endif
--
- /* Since we have unused 2048 bytes in the primary AG of an XFS partition,
- * we will use the first 0~512 bytes starting from 2048 for the Syslinux
- * boot sector.
-@@ -92,136 +89,6 @@ static char subvol[BTRFS_SUBVOL_MAX];
- - 2*ADV_SIZE)
-
- /*
-- * Get the size of a block device
-- */
--static uint64_t get_size(int devfd)
--{
-- uint64_t bytes;
-- uint32_t sects;
-- struct stat st;
--
--#ifdef BLKGETSIZE64
-- if (!ioctl(devfd, BLKGETSIZE64, &bytes))
-- return bytes;
--#endif
-- if (!ioctl(devfd, BLKGETSIZE, &sects))
-- return (uint64_t) sects << 9;
-- else if (!fstat(devfd, &st) && st.st_size)
-- return st.st_size;
-- else
-- return 0;
--}
--
--/*
-- * Get device geometry and partition offset
-- */
--struct geometry_table {
-- uint64_t bytes;
-- struct hd_geometry g;
--};
--
--static int sysfs_get_offset(int devfd, unsigned long *start)
--{
-- struct stat st;
-- char sysfs_name[128];
-- FILE *f;
-- int rv;
--
-- if (fstat(devfd, &st))
-- return -1;
--
-- if ((size_t)snprintf(sysfs_name, sizeof sysfs_name,
-- "/sys/dev/block/%u:%u/start",
-- major(st.st_rdev), minor(st.st_rdev))
-- >= sizeof sysfs_name)
-- return -1;
--
-- f = fopen(sysfs_name, "r");
-- if (!f)
-- return -1;
--
-- rv = fscanf(f, "%lu", start);
-- fclose(f);
--
-- return (rv == 1) ? 0 : -1;
--}
--
--/* Standard floppy disk geometries, plus LS-120. Zipdisk geometry
-- (x/64/32) is the final fallback. I don't know what LS-240 has
-- as its geometry, since I don't have one and don't know anyone that does,
-- and Google wasn't helpful... */
--static const struct geometry_table standard_geometries[] = {
-- {360 * 1024, {2, 9, 40, 0}},
-- {720 * 1024, {2, 9, 80, 0}},
-- {1200 * 1024, {2, 15, 80, 0}},
-- {1440 * 1024, {2, 18, 80, 0}},
-- {1680 * 1024, {2, 21, 80, 0}},
-- {1722 * 1024, {2, 21, 80, 0}},
-- {2880 * 1024, {2, 36, 80, 0}},
-- {3840 * 1024, {2, 48, 80, 0}},
-- {123264 * 1024, {8, 32, 963, 0}}, /* LS120 */
-- {0, {0, 0, 0, 0}}
--};
--
--int get_geometry(int devfd, uint64_t totalbytes, struct hd_geometry *geo)
--{
-- struct floppy_struct fd_str;
-- struct loop_info li;
-- struct loop_info64 li64;
-- const struct geometry_table *gp;
-- int rv = 0;
--
-- memset(geo, 0, sizeof *geo);
--
-- if (!ioctl(devfd, HDIO_GETGEO, geo)) {
-- goto ok;
-- } else if (!ioctl(devfd, FDGETPRM, &fd_str)) {
-- geo->heads = fd_str.head;
-- geo->sectors = fd_str.sect;
-- geo->cylinders = fd_str.track;
-- geo->start = 0;
-- goto ok;
-- }
--
-- /* Didn't work. Let's see if this is one of the standard geometries */
-- for (gp = standard_geometries; gp->bytes; gp++) {
-- if (gp->bytes == totalbytes) {
-- memcpy(geo, &gp->g, sizeof *geo);
-- goto ok;
-- }
-- }
--
-- /* Didn't work either... assign a geometry of 64 heads, 32 sectors; this is
-- what zipdisks use, so this would help if someone has a USB key that
-- they're booting in USB-ZIP mode. */
--
-- geo->heads = opt.heads ? : 64;
-- geo->sectors = opt.sectors ? : 32;
-- geo->cylinders = totalbytes / (geo->heads * geo->sectors << SECTOR_SHIFT);
-- geo->start = 0;
--
-- if (!opt.sectors && !opt.heads) {
-- fprintf(stderr,
-- "Warning: unable to obtain device geometry (defaulting to %d heads, %d sectors)\n"
-- " (on hard disks, this is usually harmless.)\n",
-- geo->heads, geo->sectors);
-- rv = 1; /* Suboptimal result */
-- }
--
--ok:
-- /* If this is a loopback device, try to set the start */
-- if (!ioctl(devfd, LOOP_GET_STATUS64, &li64))
-- geo->start = li64.lo_offset >> SECTOR_SHIFT;
-- else if (!ioctl(devfd, LOOP_GET_STATUS, &li))
-- geo->start = (unsigned int)li.lo_offset >> SECTOR_SHIFT;
-- else if (!sysfs_get_offset(devfd, &geo->start)) {
-- /* OK */
-- }
--
-- return rv;
--}
--
--/*
- * Query the device geometry and put it into the boot sector.
- * Map the file and put the map in the boot sector and file.
- * Stick the "current directory" inode number into the file.
-@@ -231,11 +98,8 @@ ok:
- static int patch_file_and_bootblock(int fd, const char *dir, int devfd)
- {
- struct stat dirst, xdst;
-- struct hd_geometry geo;
- sector_t *sectp;
-- uint64_t totalbytes, totalsectors;
- int nsect;
-- struct fat_boot_sector *sbs;
- char *dirpath, *subpath, *xdirpath;
- int rv;
-
-@@ -279,33 +143,8 @@ static int patch_file_and_bootblock(int fd, const char *dir, int devfd)
- /* Now subpath should contain the path relative to the fs base */
- dprintf("subpath = %s\n", subpath);
-
-- totalbytes = get_size(devfd);
-- get_geometry(devfd, totalbytes, &geo);
--
-- if (opt.heads)
-- geo.heads = opt.heads;
-- if (opt.sectors)
-- geo.sectors = opt.sectors;
--
-- /* Patch this into a fake FAT superblock. This isn't because
-- FAT is a good format in any way, it's because it lets the
-- early bootstrap share code with the FAT version. */
-- dprintf("heads = %u, sect = %u\n", geo.heads, geo.sectors);
--
-- sbs = (struct fat_boot_sector *)syslinux_bootsect;
--
-- totalsectors = totalbytes >> SECTOR_SHIFT;
-- if (totalsectors >= 65536) {
-- set_16(&sbs->bsSectors, 0);
-- } else {
-- set_16(&sbs->bsSectors, totalsectors);
-- }
-- set_32(&sbs->bsHugeSectors, totalsectors);
--
-- set_16(&sbs->bsBytesPerSec, SECTOR_SIZE);
-- set_16(&sbs->bsSecPerTrack, geo.sectors);
-- set_16(&sbs->bsHeads, geo.heads);
-- set_32(&sbs->bsHiddenSecs, geo.start);
-+ /* Patch syslinux_bootsect */
-+ syslinux_patch_bootsect(devfd);
-
- /* Construct the boot file map */
-
-diff --git a/libinstaller/syslinuxext.c b/libinstaller/syslinuxext.c
-index bb54cef..5a4423b 100644
---- a/libinstaller/syslinuxext.c
-+++ b/libinstaller/syslinuxext.c
-@@ -1,7 +1,177 @@
- #define _GNU_SOURCE
-
-+#include <sys/stat.h>
-+#include <sys/types.h>
-+#include <getopt.h>
-+#include <ext2fs/ext2fs.h>
-+
-+#include "linuxioctl.h"
-+#include "syslinux.h"
-+#include "syslxint.h"
-+#include "syslxopt.h"
-+
-+/*
-+ * Get the size of a block device
-+ */
-+static uint64_t get_size(int dev_fd)
-+{
-+ uint64_t bytes;
-+ uint32_t sects;
-+ struct stat st;
-+
-+#ifdef BLKGETSIZE64
-+ if (!ioctl(dev_fd, BLKGETSIZE64, &bytes))
-+ return bytes;
-+#endif
-+ if (!ioctl(dev_fd, BLKGETSIZE, &sects))
-+ return (uint64_t) sects << 9;
-+ else if (!fstat(dev_fd, &st) && st.st_size)
-+ return st.st_size;
-+ else
-+ return 0;
-+}
-+
-+/*
-+ * Get device geometry and partition offset
-+ */
-+static struct geometry_table {
-+ uint64_t bytes;
-+ struct hd_geometry g;
-+};
-+
-+static int sysfs_get_offset(int dev_fd, unsigned long *start)
-+{
-+ struct stat st;
-+ char sysfs_name[128];
-+ FILE *f;
-+ int rv;
-+
-+ if (fstat(dev_fd, &st))
-+ return -1;
-+
-+ if ((size_t)snprintf(sysfs_name, sizeof sysfs_name,
-+ "/sys/dev/block/%u:%u/start",
-+ major(st.st_rdev), minor(st.st_rdev))
-+ >= sizeof sysfs_name)
-+ return -1;
-+
-+ f = fopen(sysfs_name, "r");
-+ if (!f)
-+ return -1;
-+
-+ rv = fscanf(f, "%lu", start);
-+ fclose(f);
-+
-+ return (rv == 1) ? 0 : -1;
-+}
-+
-+/* Standard floppy disk geometries, plus LS-120. Zipdisk geometry
-+ (x/64/32) is the final fallback. I don't know what LS-240 has
-+ as its geometry, since I don't have one and don't know anyone that does,
-+ and Google wasn't helpful... */
-+static const struct geometry_table standard_geometries[] = {
-+ {360 * 1024, {2, 9, 40, 0}},
-+ {720 * 1024, {2, 9, 80, 0}},
-+ {1200 * 1024, {2, 15, 80, 0}},
-+ {1440 * 1024, {2, 18, 80, 0}},
-+ {1680 * 1024, {2, 21, 80, 0}},
-+ {1722 * 1024, {2, 21, 80, 0}},
-+ {2880 * 1024, {2, 36, 80, 0}},
-+ {3840 * 1024, {2, 48, 80, 0}},
-+ {123264 * 1024, {8, 32, 963, 0}}, /* LS120 */
-+ {0, {0, 0, 0, 0}}
-+};
-+
-+static int get_geometry(int dev_fd, uint64_t totalbytes, struct hd_geometry *geo)
-+{
-+ struct floppy_struct fd_str;
-+ struct loop_info li;
-+ struct loop_info64 li64;
-+ const struct geometry_table *gp;
-+ int rv = 0;
-+
-+ memset(geo, 0, sizeof *geo);
-+
-+ if (!ioctl(dev_fd, HDIO_GETGEO, geo)) {
-+ goto ok;
-+ } else if (!ioctl(dev_fd, FDGETPRM, &fd_str)) {
-+ geo->heads = fd_str.head;
-+ geo->sectors = fd_str.sect;
-+ geo->cylinders = fd_str.track;
-+ geo->start = 0;
-+ goto ok;
-+ }
-+
-+ /* Didn't work. Let's see if this is one of the standard geometries */
-+ for (gp = standard_geometries; gp->bytes; gp++) {
-+ if (gp->bytes == totalbytes) {
-+ memcpy(geo, &gp->g, sizeof *geo);
-+ goto ok;
-+ }
-+ }
-+
-+ /* Didn't work either... assign a geometry of 64 heads, 32 sectors; this is
-+ what zipdisks use, so this would help if someone has a USB key that
-+ they're booting in USB-ZIP mode. */
-+
-+ geo->heads = opt.heads ? : 64;
-+ geo->sectors = opt.sectors ? : 32;
-+ geo->cylinders = totalbytes / (geo->heads * geo->sectors << SECTOR_SHIFT);
-+ geo->start = 0;
-+
-+ if (!opt.sectors && !opt.heads) {
-+ fprintf(stderr,
-+ "Warning: unable to obtain device geometry (defaulting to %d heads, %d sectors)\n"
-+ " (on hard disks, this is usually harmless.)\n",
-+ geo->heads, geo->sectors);
-+ rv = 1; /* Suboptimal result */
-+ }
-+
-+ok:
-+ /* If this is a loopback device, try to set the start */
-+ if (!ioctl(dev_fd, LOOP_GET_STATUS64, &li64))
-+ geo->start = li64.lo_offset >> SECTOR_SHIFT;
-+ else if (!ioctl(dev_fd, LOOP_GET_STATUS, &li))
-+ geo->start = (unsigned int)li.lo_offset >> SECTOR_SHIFT;
-+ else if (!sysfs_get_offset(dev_fd, &geo->start)) {
-+ /* OK */
-+ }
-+
-+ return rv;
-+}
-+
-+
- /* Patch syslinux_bootsect */
- void syslinux_patch_bootsect(int dev_fd)
- {
-+ uint64_t totalbytes, totalsectors;
-+ struct hd_geometry geo;
-+ struct fat_boot_sector *sbs;
-+
-+ totalbytes = get_size(dev_fd);
-+ get_geometry(dev_fd, totalbytes, &geo);
-+
-+ if (opt.heads)
-+ geo.heads = opt.heads;
-+ if (opt.sectors)
-+ geo.sectors = opt.sectors;
-+
-+ /* Patch this into a fake FAT superblock. This isn't because
-+ FAT is a good format in any way, it's because it lets the
-+ early bootstrap share code with the FAT version. */
-+ sbs = (struct fat_boot_sector *)syslinux_bootsect;
-+
-+ totalsectors = totalbytes >> SECTOR_SHIFT;
-+ if (totalsectors >= 65536) {
-+ set_16(&sbs->bsSectors, 0);
-+ } else {
-+ set_16(&sbs->bsSectors, totalsectors);
-+ }
-+ set_32(&sbs->bsHugeSectors, totalsectors);
-+
-+ set_16(&sbs->bsBytesPerSec, SECTOR_SIZE);
-+ set_16(&sbs->bsSecPerTrack, geo.sectors);
-+ set_16(&sbs->bsHeads, geo.heads);
-+ set_32(&sbs->bsHiddenSecs, geo.start);
- }
-
---
-1.9.1
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0009-linux-syslinux-implement-install_bootblock.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0009-linux-syslinux-implement-install_bootblock.patch
deleted file mode 100644
index cd89d9248..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0009-linux-syslinux-implement-install_bootblock.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 76c465e87312dbc6cffd05427f1f4d2ebdee4f13 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Fri, 2 Jan 2015 12:28:35 +0800
-Subject: [PATCH 9/9] linux/syslinux: implement install_bootblock()
-
-Refer to the install_bootblock() in extlinux/main.c to make
-linux/syslinux.c's install_bootblock() which only supports ext2/3/4.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Tested-by: Du Dolpher <dolpher.du@intel.com>
----
- linux/syslinux.c | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
-
-diff --git a/linux/syslinux.c b/linux/syslinux.c
-index c741750..917f83a 100755
---- a/linux/syslinux.c
-+++ b/linux/syslinux.c
-@@ -419,6 +419,26 @@ static int ext_file_write(ext2_file_t e2_file, const void *buf, size_t count,
- */
- int install_bootblock(int fd, const char *device)
- {
-+ struct ext2_super_block sb;
-+
-+ if (xpread(fd, &sb, sizeof sb, EXT2_SUPER_OFFSET + opt.offset) != sizeof sb) {
-+ perror("reading superblock");
-+ return 1;
-+ }
-+
-+ if (sb.s_magic != EXT2_SUPER_MAGIC) {
-+ fprintf(stderr,
-+ "no ext2/3/4 superblock found on %s\n", device);
-+ return 1;
-+ }
-+
-+ if (xpwrite(fd, syslinux_bootsect, syslinux_bootsect_len, 0)
-+ != (signed)syslinux_bootsect_len) {
-+ perror("writing bootblock");
-+ return 1;
-+ }
-+
-+ return 0;
- }
-
- /* The file's block count */
---
-1.9.1
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0010-gcc46-compatibility.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0010-gcc46-compatibility.patch
deleted file mode 100644
index 6279258c2..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0010-gcc46-compatibility.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-don't break with old compilers and -DGNU_EFI_USE_MS_ABI
-It's entirely legitimate to request GNU_EFI_USE_MS_ABI even if the current
-compiler doesn't support it, and gnu-efi should transparently fall back to
-using legacy techniques to set the calling convention. We don't get type
-checking, but at least it will still compile.
-
-Adapted from gnu-efi
-
-Author: Steve Langasek <steve.langasek@ubuntu.com>
-Upstream-Status: Pending
-
-Index: syslinux-6.03/efi64/include/efi/x86_64/efibind.h
-===================================================================
---- syslinux-6.03.orig/efi64/include/efi/x86_64/efibind.h
-+++ syslinux-6.03/efi64/include/efi/x86_64/efibind.h
-@@ -25,8 +25,6 @@ Revision History
- #if defined(GNU_EFI_USE_MS_ABI)
- #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
- #define HAVE_USE_MS_ABI 1
-- #else
-- #error Compiler is too old for GNU_EFI_USE_MS_ABI
- #endif
- #endif
-
-Index: syslinux-6.03/gnu-efi/gnu-efi-3.0/inc/x86_64/efibind.h
-===================================================================
---- syslinux-6.03.orig/gnu-efi/gnu-efi-3.0/inc/x86_64/efibind.h
-+++ syslinux-6.03/gnu-efi/gnu-efi-3.0/inc/x86_64/efibind.h
-@@ -25,8 +25,6 @@ Revision History
- #if defined(GNU_EFI_USE_MS_ABI)
- #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
- #define HAVE_USE_MS_ABI 1
-- #else
-- #error Compiler is too old for GNU_EFI_USE_MS_ABI
- #endif
- #endif
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0011-mk-MMD-does-not-take-any-arguments.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0011-mk-MMD-does-not-take-any-arguments.patch
deleted file mode 100644
index 443c1ccc5..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0011-mk-MMD-does-not-take-any-arguments.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 0f3d83c25491951f1fa84c7957358ef3d1bcd8a9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 9 Sep 2015 17:39:22 +0000
-Subject: [PATCH] mk: -MMD does not take any arguments
-
-Specify -Wp for each option, clang seems to not accept
--Wp,-x,y,-a,b
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- mk/syslinux.mk | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: syslinux-6.03/mk/syslinux.mk
-===================================================================
---- syslinux-6.03.orig/mk/syslinux.mk
-+++ syslinux-6.03/mk/syslinux.mk
-@@ -82,11 +82,11 @@ ARCH ?= $(strip $(SUBARCH))
- GCCWARN = -W -Wall -Wstrict-prototypes $(DEBUGOPT)
-
- # Common stanza to make gcc generate .*.d dependency files
--MAKEDEPS = -Wp,-MT,$@,-MD,$(dir $@).$(notdir $@).d
-+MAKEDEPS = -MT $@ -MD
-
- # Dependencies that exclude system headers; use whenever we use
- # header files from the platform.
--UMAKEDEPS = -Wp,-MT,$@,-MMD,$(dir $@).$(notdir $@).d
-+UMAKEDEPS = -MT $@ -MMD
-
- # Items that are only appropriate during development; this file is
- # removed when tarballs are generated.
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-fix-parallel-building-issue.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-fix-parallel-building-issue.patch
deleted file mode 100644
index 312b1e8ae..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-fix-parallel-building-issue.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-syslinux-native: fix parallel building issue
-
-There might be an error when parallel build:
-
-[snip]
-cp: cannot create directory `tmp/sysroots/x86_64-linux/usr/share/
-syslinux/com32/include/gplinclude': No such file or directory
-make[4]: *** [install] Error 1
-make[3]: *** [gpllib] Error 2
-[snip]
-
-This is a potential issue. In ${S}/com32/gpllib/Makefile file,
-install target wants to copy $(SRC)/../gplinclude to
-$(INSTALLROOT)$(COM32DIR)/include/ directory, but in ${S}/com32/lib/Makefile
-file, the install target will remove $(INSTALLROOT)$(COM32DIR)/include
-directory. We need to do com32/lib first.
-
-The patch make com32/gpllib depends on com32/lib to fix this issue.
-
-Upstream-Status: Pending
-
-Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
----
- com32/Makefile | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: syslinux-6.03/com32/Makefile
-===================================================================
---- syslinux-6.03.orig/com32/Makefile
-+++ syslinux-6.03/com32/Makefile
-@@ -21,3 +21,4 @@ rosh: lib libutil
- samples: libutil elflink/ldlinux
- sysdump: lib libutil libupload gpllib
- lua/src: cmenu modules
-+gpllib: lib
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-libupload-depend-lib.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-libupload-depend-lib.patch
deleted file mode 100644
index c0714b517..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-libupload-depend-lib.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 490fc3bbd65c2c252c1fdf3da0fac9898aa9eea6 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Fri, 15 Aug 2014 21:09:16 -0700
-Subject: [PATCH] com32/Makefile: fix parallel issue
-
-Fixed:
-cp -r syslinux-6.01/com32/libupload/*.h image/usr/share/syslinux/com32/include/
-[snip]
-rm -rf image/usr/share/syslinux/com32/include
-[snip]
-cp: cannot create regular file `image/usr/share/syslinux/com32/include/serial.h': No such file or directory
-
-The cp is happened in the "libupload" dir, while "rm -fr" is happend in
-"lib" dir, let "libupload" depend "lib" will fix the problem.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- com32/Makefile | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/com32/Makefile b/com32/Makefile
-index 9a1721b..f172db2 100644
---- a/com32/Makefile
-+++ b/com32/Makefile
-@@ -21,3 +21,4 @@ rosh: lib libutil
- samples: libutil elflink/ldlinux
- sysdump: libupload gpllib
- gpllib: lib
-+libupload: lib
---
-1.7.9.5
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-remove-clean-script.patch b/yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-remove-clean-script.patch
deleted file mode 100644
index 7c003e165..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux/syslinux-remove-clean-script.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-This script try to call git submodule, since we are downloading
-the tarball it seems in-correct to do this.
-
-Upstream-Status: Inappropriate [OE-Specific]
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-Index: syslinux-6.03/efi/Makefile
-===================================================================
---- syslinux-6.03.orig/efi/Makefile
-+++ syslinux-6.03/efi/Makefile
-@@ -101,7 +101,6 @@ tidy dist:
- rm -f *.so *.o wrapper
- find . \( -name \*.o -o -name \*.a -o -name .\*.d -o -name \*.tmp \) -print0 | \
- xargs -0r rm -f
-- $(topdir)/efi/clean-gnu-efi.sh $(EFI_SUBARCH) $(objdir)
-
- clean: tidy
-
diff --git a/yocto-poky/meta/recipes-devtools/syslinux/syslinux_6.03.bb b/yocto-poky/meta/recipes-devtools/syslinux/syslinux_6.03.bb
deleted file mode 100644
index ab8a51a23..000000000
--- a/yocto-poky/meta/recipes-devtools/syslinux/syslinux_6.03.bb
+++ /dev/null
@@ -1,89 +0,0 @@
-SUMMARY = "Multi-purpose linux bootloader"
-HOMEPAGE = "http://syslinux.zytor.com/"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
- file://README;beginline=35;endline=41;md5=558f2c71cb1fb9ba511ccd4858e48e8a"
-
-# If you really want to run syslinux, you need mtools. We just want the
-# ldlinux.* stuff for now, so skip mtools-native
-DEPENDS = "nasm-native util-linux e2fsprogs"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/boot/syslinux/syslinux-${PV}.tar.xz \
- file://syslinux-fix-parallel-building-issue.patch \
- file://syslinux-libupload-depend-lib.patch \
- file://syslinux-remove-clean-script.patch \
- file://0001-linux-syslinux-support-ext2-3-4-device.patch \
- file://0002-linux-syslinux-implement-open_ext2_fs.patch \
- file://0003-linux-syslinux-implement-install_to_ext2.patch \
- file://0004-linux-syslinux-add-ext_file_read-and-ext_file_write.patch \
- file://0005-linux-syslinux-implement-handle_adv_on_ext.patch \
- file://0006-linux-syslinux-implement-write_to_ext-and-add-syslin.patch \
- file://0007-linux-syslinux-implement-ext_construct_sectmap_fs.patch \
- file://0008-libinstaller-syslinuxext-implement-syslinux_patch_bo.patch \
- file://0009-linux-syslinux-implement-install_bootblock.patch \
- file://0010-gcc46-compatibility.patch \
- file://0011-mk-MMD-does-not-take-any-arguments.patch \
- "
-
-SRC_URI[md5sum] = "92a253df9211e9c20172796ecf388f13"
-SRC_URI[sha256sum] = "26d3986d2bea109d5dc0e4f8c4822a459276cf021125e8c9f23c3cca5d8c850e"
-
-COMPATIBLE_HOST = '(x86_64|i.86).*-(linux|freebsd.*)'
-# Don't let the sanity checker trip on the 32 bit real mode BIOS binaries
-INSANE_SKIP_${PN}-misc = "arch"
-INSANE_SKIP_${PN}-chain = "arch"
-
-EXTRA_OEMAKE = " \
- BINDIR=${bindir} SBINDIR=${sbindir} LIBDIR=${libdir} \
- DATADIR=${datadir} MANDIR=${mandir} INCDIR=${includedir} \
-"
-
-do_configure() {
- # drop win32 targets or build fails
- sed -e 's,win32/\S*,,g' -i Makefile
-
- # clean installer executables included in source tarball
- oe_runmake clean firmware="efi32" EFIINC="${includedir}"
- # NOTE: There is a temporary work around above to specify
- # the efi32 as the firmware else the pre-built bios
- # files get erased contrary to the doc/distib.txt
- # In the future this should be "bios" and not "efi32".
-}
-
-do_compile() {
- # Make sure the recompile is OK.
- # Though the ${B} should always exist, still check it before find and rm.
- [ -d "${B}" ] && find ${B} -name '.*.d' -type f -exec rm -f {} \;
-
- # Rebuild only the installer; keep precompiled bootloaders
- # as per author's request (doc/distrib.txt)
- oe_runmake CC="${CC} ${CFLAGS}" LD="${LD}" LDFLAGS="${LDFLAGS}" firmware="bios" installer
-}
-
-do_install() {
- oe_runmake CC="${CC} ${CFLAGS}" LD="${LD}" install INSTALLROOT="${D}" firmware="bios"
-
- install -d ${D}${datadir}/syslinux/
- install -m 644 ${S}/bios/core/ldlinux.sys ${D}${datadir}/syslinux/
- install -m 644 ${S}/bios/core/ldlinux.bss ${D}${datadir}/syslinux/
- install -m 755 ${S}/bios/linux/syslinux-nomtools ${D}${bindir}/
-}
-
-PACKAGES += "${PN}-nomtools ${PN}-extlinux ${PN}-mbr ${PN}-chain ${PN}-pxelinux ${PN}-isolinux ${PN}-misc"
-
-RDEPENDS_${PN} += "mtools"
-RDEPENDS_${PN}-nomtools += "libext2fs"
-RDEPENDS_${PN}-misc += "perl"
-
-FILES_${PN} = "${bindir}/syslinux"
-FILES_${PN}-nomtools = "${bindir}/syslinux-nomtools"
-FILES_${PN}-extlinux = "${sbindir}/extlinux"
-FILES_${PN}-mbr = "${datadir}/${BPN}/mbr.bin"
-FILES_${PN}-chain = "${datadir}/${BPN}/chain.c32"
-FILES_${PN}-isolinux = "${datadir}/${BPN}/isolinux.bin"
-FILES_${PN}-pxelinux = "${datadir}/${BPN}/pxelinux.0"
-FILES_${PN}-dev += "${datadir}/${BPN}/com32/lib*${SOLIBS} ${datadir}/${BPN}/com32/include ${datadir}/${BPN}/com32/com32.ld"
-FILES_${PN}-staticdev += "${datadir}/${BPN}/com32/lib*.a ${libdir}/${BPN}/com32/lib*.a"
-FILES_${PN}-misc = "${datadir}/${BPN}/* ${libdir}/${BPN}/* ${bindir}/*"
-
-BBCLASSEXTEND = "native nativesdk"
OpenPOWER on IntegriCloud