Fix cross builds with hardening flags Fix build with gold Specify libtool tag Add DISABLE_STATIC = ""
Signed-off-by: Khem Raj <[email protected]> --- Changes in V4: Enable static libs .../xfsprogs/files/link_needed_libs.patch | 82 --------------- .../files/remove_flags_from_build_flags.patch | 13 +++ .../xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch | 117 +++++++++++++++++++++ .../{xfsprogs_4.11.0.bb => xfsprogs_4.12.0.bb} | 9 +- 4 files changed, 136 insertions(+), 85 deletions(-) delete mode 100644 meta-filesystems/recipes-utils/xfsprogs/files/link_needed_libs.patch create mode 100644 meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch create mode 100644 meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch rename meta-filesystems/recipes-utils/xfsprogs/{xfsprogs_4.11.0.bb => xfsprogs_4.12.0.bb} (86%) diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/link_needed_libs.patch b/meta-filesystems/recipes-utils/xfsprogs/files/link_needed_libs.patch deleted file mode 100644 index 1de634ed7..000000000 --- a/meta-filesystems/recipes-utils/xfsprogs/files/link_needed_libs.patch +++ /dev/null @@ -1,82 +0,0 @@ -Index: xfsprogs-4.10.0/libxcmd/Makefile -=================================================================== ---- xfsprogs-4.10.0.orig/libxcmd/Makefile -+++ xfsprogs-4.10.0/libxcmd/Makefile -@@ -30,10 +30,21 @@ LCFLAGS += -DENABLE_EDITLINE - LTLIBS += $(LIBEDITLINE) $(LIBTERMCAP) - endif - -+ifeq ($(ENABLE_BLKID),yes) -+LCFLAGS += -DENABLE_BLKID -+LTLIBS += $(LIBBLKID) -+endif -+ -+LTLIBS += $(LIBXFS) -+ - default: ltdepend $(LTLIBRARY) - - include $(BUILDRULES) - --install install-dev: default -+install: default -+ $(INSTALL_LTLIB) -+ -+install-dev: default -+ $(INSTALL_LTLIB_DEV) - - -include .ltdep -Index: xfsprogs-4.10.0/libxfs/Makefile -=================================================================== ---- xfsprogs-4.10.0.orig/libxfs/Makefile -+++ xfsprogs-4.10.0/libxfs/Makefile -@@ -137,6 +137,7 @@ include $(BUILDRULES) - - install: default - $(INSTALL) -m 755 -d $(PKG_INC_DIR) -+ $(INSTALL_LTLIB) - - install-headers: $(addsuffix -hdrs, $(PKGHFILES)) - -Index: xfsprogs-4.10.0/libxlog/Makefile -=================================================================== ---- xfsprogs-4.10.0.orig/libxlog/Makefile -+++ xfsprogs-4.10.0/libxlog/Makefile -@@ -19,6 +19,10 @@ default: ltdepend $(LTLIBRARY) - - include $(BUILDRULES) - --install install-dev: default -+install: default -+ $(INSTALL_LTLIB) -+ -+install-dev: default -+ $(INSTALL_LTLIB_DEV) - - -include .ltdep -Index: xfsprogs-4.10.0/io/Makefile -=================================================================== ---- xfsprogs-4.10.0.orig/io/Makefile -+++ xfsprogs-4.10.0/io/Makefile -@@ -13,7 +13,7 @@ - getrusage.c imap.c link.c mmap.c open.c parent.c pread.c prealloc.c \ - pwrite.c reflink.c seek.c shutdown.c sync.c truncate.c utimes.c - --LLDLIBS = $(LIBXCMD) $(LIBHANDLE) $(LIBPTHREAD) -+LLDLIBS = $(LIBXCMD) $(LIBHANDLE) $(LIBUUID) $(LIBPTHREAD) - LTDEPENDENCIES = $(LIBXCMD) $(LIBHANDLE) - LLDFLAGS = -static-libtool-libs - -Index: xfsprogs-4.10.0/quota/Makefile -=================================================================== ---- xfsprogs-4.10.0.orig/quota/Makefile -+++ xfsprogs-4.10.0/quotq/Makefile -@@ -14,7 +14,7 @@ - PCFILES = darwin.c freebsd.c irix.c linux.c - LSRCFILES = $(shell echo $(PCFILES) | sed -e "s/$(PKG_PLATFORM).c//g") - --LLDLIBS = $(LIBXCMD) -+LLDLIBS = $(LIBXCMD) $(LIBUUID) - LTDEPENDENCIES = $(LIBXCMD) - LLDFLAGS = -static - - diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch b/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch new file mode 100644 index 000000000..bba9a25c2 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch @@ -0,0 +1,13 @@ +Index: xfsprogs-4.12.0/include/builddefs.in +=================================================================== +--- xfsprogs-4.12.0.orig/include/builddefs.in ++++ xfsprogs-4.12.0/include/builddefs.in +@@ -164,7 +164,7 @@ ifeq ($(ENABLE_GETTEXT),yes) + GCFLAGS += -DENABLE_GETTEXT + endif + +-BUILD_CFLAGS += $(GCFLAGS) $(PCFLAGS) ++BUILD_CFLAGS += $(GCFLAGS) + # First, Global, Platform, Local CFLAGS + CFLAGS += $(FCFLAGS) $(OPTIMIZER) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS) + diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch b/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch new file mode 100644 index 000000000..efc57e4f6 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch @@ -0,0 +1,117 @@ +From 21253610f9ef87db8e2a75b863b7fcfbd0cdb421 Mon Sep 17 00:00:00 2001 +From: "Darrick J. Wong" <[email protected]> +Date: Tue, 25 Jul 2017 13:45:01 -0500 +Subject: [PATCH] In patch 4944defad4 ("xfs_db: redirect printfs when + metadumping to stdout"), we solved the problem of xfs_db printfs ending up in + the metadump stream by reassigning stdout for the duration of a stdout + metadump. Unfortunately, musl doesn't allow stdout to be reassigned (in + their view "extern FILE *stdout" means "extern FILE * const stdout"), so we + abandon the old approach in favor of playing games with dup() to switch the + raw file descriptors. + +While we're at it, fix a regression where an unconverted outf test +allows progress info to end up in the metadump stream. + +Signed-off-by: Darrick J. Wong <[email protected]> +--- + db/metadump.c | 47 ++++++++++++++++++++++++++++++++++++----------- + 1 file changed, 36 insertions(+), 11 deletions(-) + +diff --git a/db/metadump.c b/db/metadump.c +index 96641e0..4e2f648 100644 +--- a/db/metadump.c ++++ b/db/metadump.c +@@ -78,6 +78,7 @@ static int obfuscate = 1; + static int zero_stale_data = 1; + static int show_warnings = 0; + static int progress_since_warning = 0; ++static bool stdout_metadump; + + void + metadump_init(void) +@@ -137,7 +138,7 @@ print_progress(const char *fmt, ...) + va_end(ap); + buf[sizeof(buf)-1] = '\0'; + +- f = (outf == stdout) ? stderr : stdout; ++ f = stdout_metadump ? stderr : stdout; + fprintf(f, "\r%-59s", buf); + fflush(f); + progress_since_warning = 1; +@@ -2750,7 +2751,8 @@ metadump_f( + xfs_agnumber_t agno; + int c; + int start_iocur_sp; +- bool stdout_metadump = false; ++ int outfd = -1; ++ int ret; + char *p; + + exitcode = 1; +@@ -2870,16 +2872,35 @@ metadump_f( + * metadump operation so that dbprintf and other messages + * are sent to the console instead of polluting the + * metadump stream. ++ * ++ * We get to do this the hard way because musl doesn't ++ * allow reassignment of stdout. + */ +- outf = stdout; +- stdout = stderr; ++ fflush(stdout); ++ outfd = dup(STDOUT_FILENO); ++ if (outfd < 0) { ++ perror("opening dump stream"); ++ goto out; ++ } ++ ret = dup2(STDERR_FILENO, STDOUT_FILENO); ++ if (ret < 0) { ++ perror("redirecting stdout"); ++ close(outfd); ++ goto out; ++ } ++ outf = fdopen(outfd, "a"); ++ if (outf == NULL) { ++ fprintf(stderr, "cannot create dump stream\n"); ++ dup2(outfd, 1); ++ close(outfd); ++ goto out; ++ } + stdout_metadump = true; + } else { + outf = fopen(argv[optind], "wb"); + if (outf == NULL) { + print_warning("cannot create dump file"); +- free(metablock); +- return 0; ++ goto out; + } + } + +@@ -2907,15 +2928,19 @@ metadump_f( + if (progress_since_warning) + fputc('\n', stdout_metadump ? stderr : stdout); + +- if (stdout_metadump) +- stdout = outf; +- else +- fclose(outf); ++ if (stdout_metadump) { ++ fflush(outf); ++ fflush(stdout); ++ ret = dup2(outfd, STDOUT_FILENO); ++ if (ret < 0) ++ perror("un-redirecting stdout"); ++ } ++ fclose(outf); + + /* cleanup iocur stack */ + while (iocur_sp > start_iocur_sp) + pop_cur(); +- ++out: + free(metablock); + + return 0; +-- +2.13.3 diff --git a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.11.0.bb b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.12.0.bb similarity index 86% rename from meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.11.0.bb rename to meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.12.0.bb index 046dea425..0202815c4 100644 --- a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.11.0.bb +++ b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.12.0.bb @@ -6,11 +6,12 @@ LICENSE_libhandle = "LGPLv2.1" LIC_FILES_CHKSUM = "file://doc/COPYING;md5=102f7fec3d53c7c8f0b7baf9bf9d76a8" DEPENDS = "util-linux util-linux-native" SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \ - file://link_needed_libs.patch \ file://0001-define-__-prefixed-version-of-intXY_t-types.patch \ + file://remove_flags_from_build_flags.patch \ + file://xfsprogs-4.12.0-fix_musl.patch \ " -SRC_URI[md5sum] = "f1f9b8c752347eefdb56483dafa0cefb" -SRC_URI[sha256sum] = "c3a6d87b564d7738243c507df82276bed982265e345363a95f2c764e8a5f5bb2" +SRC_URI[md5sum] = "e348b0e1d7bd1cd82d64b91ff37e727e" +SRC_URI[sha256sum] = "b330ad8d737f4152ae511580102e2fc49212bb51dfb4b614084344abae46d0df" inherit autotools-brokensep @@ -33,6 +34,7 @@ EXTRA_OECONF = "--enable-gettext=no \ ac_cv_lib_rt_lio_listio=yes \ " +DISABLE_STATIC = "" EXTRA_AUTORECONF += "-I ${S}/m4 --exclude=autoheader" PACKAGECONFIG ??= "readline blkid" @@ -42,6 +44,7 @@ PACKAGECONFIG[blkid] = "--enable-blkid=yes,--enable-blkid=no,util-linux" export DEBUG="-DNDEBUG" export BUILD_VERBOSE="1" +export tagname="CC" EXTRA_OEMAKE = "DIST_ROOT='${D}'" -- 2.14.1 -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
