aboutsummaryrefslogtreecommitdiffstats
path: root/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch')
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch187
1 files changed, 187 insertions, 0 deletions
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch
new file mode 100644
index 0000000000..d4c6d87551
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-Add-simple-getline-implementation-to-libmissing.patch
@@ -0,0 +1,187 @@
+From 10c289454dad34632d767694aecb508dae5073bf Mon Sep 17 00:00:00 2001
+From: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
+Date: Thu, 1 Feb 2018 12:16:18 +0100
+Subject: [PATCH 1/4] Add simple getline() implementation to libmissing
+
+Some C libraries, like klibc don't implement getline(). This patch
+adds a simple stub implementation to libmissing that does an fgets
+into a stack allocated buffer and returns the result.
+
+Upstream-Status: Backport
+
+Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
+---
+ configure.ac | 1 +
+ include/common.h | 1 +
+ include/libmissing.h | 7 +++++++
+ jffsX-utils/Makemodule.am | 2 +-
+ lib/Makemodule.am | 3 ++-
+ lib/getline.c | 36 ++++++++++++++++++++++++++++++++++++
+ misc-utils/Makemodule.am | 2 ++
+ ubi-utils/Makemodule.am | 2 +-
+ ubifs-utils/Makemodule.am | 1 +
+ 9 files changed, 52 insertions(+), 3 deletions(-)
+ create mode 100644 lib/getline.c
+
+diff --git a/configure.ac b/configure.ac
+index 83d754f..5af0115 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -191,6 +191,7 @@ if test "x$need_cmocka" = "xyes"; then
+ fi
+
+ AC_CHECK_HEADERS([execinfo.h])
++AC_CHECK_FUNCS([getline])
+
+ ##### produce summary on dependencies #####
+
+diff --git a/include/common.h b/include/common.h
+index 2ce5d22..f8f72ea 100644
+--- a/include/common.h
++++ b/include/common.h
+@@ -32,6 +32,7 @@
+ #include <sys/sysmacros.h>
+
+ #include "config.h"
++#include "libmissing.h"
+
+ #ifndef PROGRAM_NAME
+ # error "You must define PROGRAM_NAME before including this header"
+diff --git a/include/libmissing.h b/include/libmissing.h
+index 0196033..09dbce1 100644
+--- a/include/libmissing.h
++++ b/include/libmissing.h
+@@ -7,11 +7,18 @@
+ #include <execinfo.h>
+ #endif
+
++#include <sys/types.h>
++#include <stdio.h>
++
+ #ifndef HAVE_EXECINFO_H
+ int backtrace(void **buffer, int size);
+ char **backtrace_symbols(void *const *buffer, int size);
+ void backtrace_symbols_fd(void *const *buffer, int size, int fd);
+ #endif
+
++#ifndef HAVE_GETLINE
++ssize_t getline(char **lineptr, size_t *n, FILE *stream);
++#endif
++
+ #endif /* LIBMISSING_H */
+
+diff --git a/jffsX-utils/Makemodule.am b/jffsX-utils/Makemodule.am
+index fb181de..9d7a5d9 100644
+--- a/jffsX-utils/Makemodule.am
++++ b/jffsX-utils/Makemodule.am
+@@ -17,7 +17,7 @@ jffs2dump_SOURCES = jffsX-utils/jffs2dump.c
+ jffs2dump_LDADD = libmtd.a $(ZLIB_LIBS) $(LZO_LIBS)
+
+ sumtool_SOURCES = jffsX-utils/sumtool.c
+-sumtool_LDADD = libmtd.a
++sumtool_LDADD = libmtd.a libmissing.a
+
+ JFFSX_BINS = \
+ mkfs.jffs2 jffs2dump jffs2reader sumtool
+diff --git a/lib/Makemodule.am b/lib/Makemodule.am
+index 5bee5b6..645632a 100644
+--- a/lib/Makemodule.am
++++ b/lib/Makemodule.am
+@@ -7,7 +7,8 @@ libmtd_a_SOURCES = \
+ lib/libmtd_int.h
+
+ libmissing_a_SOURCES = \
+- lib/execinfo.c
++ lib/execinfo.c \
++ lib/getline.c
+
+ libubi_a_SOURCES = \
+ lib/libubi.c \
+diff --git a/lib/getline.c b/lib/getline.c
+new file mode 100644
+index 0000000..c575bf7
+--- /dev/null
++++ b/lib/getline.c
+@@ -0,0 +1,36 @@
++#include <stdlib.h>
++#include <string.h>
++
++#include "libmissing.h"
++
++#ifndef HAVE_GETLINE
++ssize_t getline(char **lineptr, size_t *n, FILE *stream)
++{
++ char buffer[256], *new;
++ size_t count;
++
++ if (!(*lineptr))
++ *n = 0;
++
++ if (!fgets(buffer, sizeof(buffer), stream)) {
++ if (!feof(stream))
++ return -1;
++
++ buffer[0] = '\0';
++ }
++
++ count = strlen(buffer) + 1;
++
++ if (*n < count) {
++ new = realloc(*lineptr, count);
++ if (!new)
++ return -1;
++ *lineptr = new;
++ *n = count;
++ }
++
++ memcpy(*lineptr, buffer, count);
++ return count;
++}
++#endif
++
+diff --git a/misc-utils/Makemodule.am b/misc-utils/Makemodule.am
+index ce1c385..bfc5342 100644
+--- a/misc-utils/Makemodule.am
++++ b/misc-utils/Makemodule.am
+@@ -1,4 +1,5 @@
+ ftl_format_SOURCES = misc-utils/ftl_format.c
++ftl_format_LDADD = libmissing.a
+
+ doc_loadbios_SOURCES = misc-utils/doc_loadbios.c
+
+@@ -25,6 +26,7 @@ flash_otp_info_SOURCES = misc-utils/flash_otp_info.c
+ flash_otp_dump_SOURCES = misc-utils/flash_otp_dump.c
+
+ flash_otp_lock_SOURCES = misc-utils/flash_otp_lock.c
++flash_otp_lock_LDADD = libmissing.a
+
+ flash_otp_write_SOURCES = misc-utils/flash_otp_write.c
+
+diff --git a/ubi-utils/Makemodule.am b/ubi-utils/Makemodule.am
+index 215eac2..7b447c7 100644
+--- a/ubi-utils/Makemodule.am
++++ b/ubi-utils/Makemodule.am
+@@ -23,7 +23,7 @@ ubinize_SOURCES = ubi-utils/ubinize.c
+ ubinize_LDADD = libubi.a libubigen.a libmtd.a libiniparser.a
+
+ ubiformat_SOURCES = ubi-utils/ubiformat.c
+-ubiformat_LDADD = libubi.a libubigen.a libmtd.a libscan.a
++ubiformat_LDADD = libubi.a libubigen.a libmtd.a libscan.a libmissing.a
+
+ ubirename_SOURCES = ubi-utils/ubirename.c
+ ubirename_LDADD = libmtd.a libubi.a
+diff --git a/ubifs-utils/Makemodule.am b/ubifs-utils/Makemodule.am
+index 5862afb..787beb9 100644
+--- a/ubifs-utils/Makemodule.am
++++ b/ubifs-utils/Makemodule.am
+@@ -17,6 +17,7 @@ mkfs_ubifs_SOURCES = \
+ ubifs-utils/mkfs.ubifs/hashtable/hashtable_itr.c \
+ ubifs-utils/mkfs.ubifs/devtable.c
+ mkfs_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(UUID_LIBS) -lm
++mkfs_ubifs_LDADD += libmissing.a
+ mkfs_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(UUID_CFLAGS) \
+ -I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/mkfs.ubifs/
+
+--
+2.7.4
+