parted: properly link with libiconv
PATCH 1/1 parted: properly link with libiconv
parted uses libiconv but doesn't link with it. All the checks are there in configure, but the Makefile.am doesn't add it to the link. Add a patch to fix this.
Also add an optional dependency on libiconv, so it is reproducible.
While we're at it, regenerate the existing patches on top of v3.2, and make patch 0003 a properly git formatted one.
---
...rch-linux.c-Compile-without-ENABLE_DEVICE.patch | 8 ++---
.../0002-configure.ac-uclinux-is-also-linux.patch | 4 +--
...Include-fcntl.h-to-get-loff_t-definition.patch} | 19 ++++++++----
...arted-labels-link-with-libiconv-if-needed.patch | 34 ++++++++++++++++++++++
package/parted/parted.mk | 7 ++++-
5 files changed, 60 insertions(+), 12 deletions(-)
rename package/parted/{0003-fix-includes-for-musl.patch => 0003-Include-fcntl.h-to-get-loff_t-definition.patch} (36%)
create mode 100644 package/parted/0004-libparted-labels-link-with-libiconv-if-needed.patchpackage/parted/0001-libparted-arch-linux.c-Compile-without-ENABLE_DEVICE.patch +4 -4
@@ -1,4 +1,4 @@ -From 7e87ca3c531228d35e13e802d2622006138b104c Mon Sep 17 00:00:00 2001 +From 141c4309d7164dcd4e09d137fc075c1726fd8dbb Mon Sep 17 00:00:00 2001 From: Felix Janda <[email protected]> Date: Sun, 3 May 2015 10:33:15 +0200 Subject: [PATCH] libparted/arch/linux.c: Compile without ENABLE_DEVICE_MAPPER
@@ -10,7 +10,7 @@ Signed-off-by: Yegor Yefremov <[email protected]> 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c -index 90ab21d..f6141e4 100644 +index 0f18904..cf38c6f 100644 --- a/libparted/arch/linux.c +++ b/libparted/arch/linux.c @@ -2304,6 +2304,7 @@ zasprintf (const char *format, ...)
@@ -57,7 +57,7 @@ index 90ab21d..f6141e4 100644 return result; } -@@ -2958,12 +2968,15 @@ _disk_sync_part_table (PedDisk* disk) +@@ -2945,12 +2955,15 @@ _disk_sync_part_table (PedDisk* disk) unsigned long long *length);
@@ -75,5 +75,5 @@ index 90ab21d..f6141e4 100644 remove_partition = _blkpg_remove_partition; #ifdef BLKPG_RESIZE_PARTITION -- -2.1.4 +2.14.2
package/parted/0002-configure.ac-uclinux-is-also-linux.patch +2 -2
@@ -1,4 +1,4 @@ -From b3958317c5ee2940e7024bec2e7f288b5a6a26c3 Mon Sep 17 00:00:00 2001 +From 7697d9c54e489b32b82c01f17db04f8b51857e51 Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias <[email protected]> Date: Mon, 30 Jun 2014 10:09:04 -0300 Subject: [PATCH] configure.ac: uclinux is also linux
@@ -29,5 +29,5 @@ index 436d0e2..50ad478 100644 AC_SUBST([OS]) -- -1.8.5.5 +2.14.2
package/parted/0003-Include-fcntl.h-to-get-loff_t-definition.patch renamed from package/parted/0003-fix-includes-for-musl.patch +14 -5
@@ -1,13 +1,19 @@ -Include <fcntl.h> to get loff_t definition +From 2078c07d38ee7841b89ac8d81afc5e8bfcd4f703 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <[email protected]> +Date: Sun, 8 Oct 2017 00:58:58 +0200 +Subject: [PATCH] Include <fcntl.h> to get loff_t definition Patch borrowed from Alpine Linux at http://git.alpinelinux.org/cgit/aports/plain/main/parted/fix-includes.patch. Solves build with musl. +--- + libparted/fs/xfs/platform_defs.h | 1 + + 1 file changed, 1 insertion(+) -Signed-off-by: Thomas Petazzoni <[email protected]> - ---- parted-3.1.orig/libparted/fs/xfs/platform_defs.h -+++ parted-3.1/libparted/fs/xfs/platform_defs.h +diff --git a/libparted/fs/xfs/platform_defs.h b/libparted/fs/xfs/platform_defs.h +index 2b55752..17023dc 100644 +--- a/libparted/fs/xfs/platform_defs.h ++++ b/libparted/fs/xfs/platform_defs.h @@ -35,6 +35,7 @@ #define __XFS_PLATFORM_DEFS_H__
@@ -16,3 +22,6 @@ Signed-off-by: Thomas Petazzoni <[email protected]> #include <stdarg.h> #include <assert.h> #include <endian.h> +-- +2.14.2 +
package/parted/0004-libparted-labels-link-with-libiconv-if-needed.patch new file +34 -0
@@ -0,0 +1,34 @@ +From 1084b0255c42fc86adb0a2c7614e341ac530db65 Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]> +Date: Sun, 8 Oct 2017 00:53:31 +0200 +Subject: [PATCH] libparted/labels: link with libiconv if needed + +gpt.c uses iconv so it should link with it. Otherwise, on platforms +where libiconv is a separate library, we get a link failure of parted: + + CCLD parted + ../libparted/.libs/libparted.so: undefined reference to `libiconv' + ../libparted/.libs/libparted.so: undefined reference to `libiconv_open' + ../libparted/.libs/libparted.so: undefined reference to `libiconv_close' + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]> +--- + libparted/labels/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libparted/labels/Makefile.am b/libparted/labels/Makefile.am +index c996f81..b204379 100644 +--- a/libparted/labels/Makefile.am ++++ b/libparted/labels/Makefile.am +@@ -35,7 +35,7 @@ liblabels_la_SOURCES = \ + rdb.c \ + sun.c + +-liblabels_la_LIBADD = $(OS_LIBS) $(INTLLIBS) ++liblabels_la_LIBADD = $(OS_LIBS) $(INTLLIBS) $(LIBICONV) + + AM_CPPFLAGS = $(partedincludedir) $(INTLINCS) + +-- +2.14.2 +
package/parted/parted.mk +6 -1
@@ -9,7 +9,8 @@ PARTED_SOURCE = parted-$(PARTED_VERSION).tar.xz PARTED_SITE = $(BR2_GNU_MIRROR)/parted PARTED_DEPENDENCIES = host-pkgconf util-linux PARTED_INSTALL_STAGING = YES -# For uclinux patch +# 0002-configure.ac-uclinux-is-also-linux.patch +# 0004-libparted-labels-link-with-libiconv-if-needed.patch PARTED_AUTORECONF = YES PARTED_GETTEXTIZE = YES PARTED_LICENSE = GPL-3.0+
@@ -29,6 +30,10 @@ else PARTED_CONF_OPTS += --disable-device-mapper endif +ifeq ($(BR2_PACKAGE_LIBICONV),y) +PARTED_DEPENDENCIES += libiconv +endif + ifeq ($(BR2_STATIC_LIBS),y) PARTED_CONF_OPTS += --disable-dynamic-loading endif
Signature · 1 line
2.14.2
Thomas Petazzoni
AppliedPATCH 1/1 parted: properly link with libiconv
Hello,
Quoted 11 lines · Arnout Vandecappelle (Essensium/Mind)
parted uses libiconv but doesn't link with it. All the checks are there in configure, but the Makefile.am doesn't add it to the link. Add a patch to fix this.
Also add an optional dependency on libiconv, so it is reproducible.
While we're at it, regenerate the existing patches on top of v3.2, and make patch 0003 a properly git formatted one.
Cc srg.venema at gmail.com
Quoted 9 lines
---
...rch-linux.c-Compile-without-ENABLE_DEVICE.patch | 8 ++---
.../0002-configure.ac-uclinux-is-also-linux.patch | 4 +--
...Include-fcntl.h-to-get-loff_t-definition.patch} | 19 ++++++++----
...arted-labels-link-with-libiconv-if-needed.patch | 34 ++++++++++++++++++++++
package/parted/parted.mk | 7 ++++-
5 files changed, 60 insertions(+), 12 deletions(-)
rename package/parted/{0003-fix-includes-for-musl.patch => 0003-Include-fcntl.h-to-get-loff_t-definition.patch} (36%)
create mode 100644 package/parted/0004-libparted-labels-link-with-libiconv-if-needed.patchApplied to master, thanks. Don't forget to send the patch upstream. Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 parted: properly link with libiconv
In reply to Arnout Vandecappelle (Essensium/Mind)Hello,
Quoted 11 lines · Arnout Vandecappelle (Essensium/Mind)
parted uses libiconv but doesn't link with it. All the checks are there in configure, but the Makefile.am doesn't add it to the link. Add a patch to fix this.
Also add an optional dependency on libiconv, so it is reproducible.
While we're at it, regenerate the existing patches on top of v3.2, and make patch 0003 a properly git formatted one.
Cc srg.venema at gmail.com
This seems to do more harm than good: it now tries to link with -liconv in all cases, even when it is not needed (for example with glibc).
http://autobuild.buildroot.net/?reason=parted-3.2
I've reverted your patch for now.
Best regards,
Thomas Petazzoni
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
A message that is not in the archive (sent off-list or not yet received): CAPzckP6FYH1rQPVnaozWg167THtdhovB7nYtX=XVe5_yM7W2Gg@mail.gmail.com
PATCH 1/1 parted: properly link with libiconv
Quoted 6 lines · Sjoerd Venema
Hi All,
Is there any way for me, a "user" to get udisks (depending on the problematic parted package) on my buildroot built?
I'd be happy with a quick hack or dirty workaround for the moment. My project is now somewhat dead in the water...
One quick hack should be to enable BR2_ENABLE_LOCALE=y, which will disable the
libiconv package because it will be part of uClibc.
Regards,
Arnout
Quoted 3 lines
I'm not demanding anyone to go out of their way to support just one guy in the crowd, just want to know if there are any possible quick fixes... ;-) Much appreciated! :)
[snip]
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF