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.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: srg.venema@gmail.com
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Arnout Vandecappelle (Essensium/Mind) 2017-10-08 01:06:11 +02:00 committed by Thomas Petazzoni
parent aa06b72f3b
commit 2a56de2dec
6 changed files with 73 additions and 25 deletions

View File

@ -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 <felix.janda@posteo.de>
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 <yegorslists@googlemail.com>
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

View File

@ -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 <gustavo@zacarias.com.ar>
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

View File

@ -0,0 +1,27 @@
From 2078c07d38ee7841b89ac8d81afc5e8bfcd4f703 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
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(+)
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__
#include <stdio.h>
+#include <fcntl.h>
#include <stdarg.h>
#include <assert.h>
#include <endian.h>
--
2.14.2

View File

@ -1,18 +0,0 @@
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.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
--- parted-3.1.orig/libparted/fs/xfs/platform_defs.h
+++ parted-3.1/libparted/fs/xfs/platform_defs.h
@@ -35,6 +35,7 @@
#define __XFS_PLATFORM_DEFS_H__
#include <stdio.h>
+#include <fcntl.h>
#include <stdarg.h>
#include <assert.h>
#include <endian.h>

View File

@ -0,0 +1,34 @@
From 1084b0255c42fc86adb0a2c7614e341ac530db65 Mon Sep 17 00:00:00 2001
From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
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) <arnout@mind.be>
---
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

View File

@ -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