diff options
author | Khem Raj <raj.khem@gmail.com> | 2016-01-09 20:23:49 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-01-24 09:40:30 +0000 |
commit | 8dd1aa8b70c4200d1c9774715fbc7860114dd8a8 (patch) | |
tree | ce590731c4789b5957ae47e3c1151cc30eb135e9 /meta | |
parent | 21550d10bf27ed9dad63bbc23412bd3b7f0e9201 (diff) | |
download | poky-8dd1aa8b70c4200d1c9774715fbc7860114dd8a8.tar.gz |
dosfstools: Correct cross-compile CFLAGS and fix build with musl
enable largefile support if its in DISTRO_FEATURES
(From OE-Core rev: 300defd71205bf350a6e956451e0cc87c4e92902)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
3 files changed, 71 insertions, 1 deletions
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch b/meta/recipes-devtools/dosfstools/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch new file mode 100644 index 0000000000..3497ca5409 --- /dev/null +++ b/meta/recipes-devtools/dosfstools/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch | |||
@@ -0,0 +1,46 @@ | |||
1 | From 3b95786af13e28157d889bd90a384ee255f2d91d Mon Sep 17 00:00:00 2001 | ||
2 | From: "Yann E. MORIN" <yann.morin.1998@free.fr> | ||
3 | Date: Sun, 16 Aug 2015 15:55:43 +0200 | ||
4 | Subject: [PATCH] mkfs.fat: fix incorrect int type | ||
5 | |||
6 | u_int32_t is not a stanard type, while uint32_t is. This fixes builds | ||
7 | with the musl C library, which only defines so-called "clean" headers; | ||
8 | build failures are like (back-quotes and elision manually added for | ||
9 | readability): | ||
10 | |||
11 | http://autobuild.buildroot.org/results/a09/a0923d7f6d4dbae02eba4c5024bbdae3a52aa85a/build-end.log | ||
12 | |||
13 | /home/peko/autobuild/instance-1/output/host/usr/bin/x86_64-linux-gcc -D_LARGEFILE_SOURCE \ | ||
14 | -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_GNU_SOURCE -D_LARGEFILE_SOURCE \ | ||
15 | -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o mkfs.fat.o src/mkfs.fat.c | ||
16 | src/mkfs.fat.c: In function 'main': | ||
17 | src/mkfs.fat.c:1415:18: error: 'u_int32_t' undeclared (first use in this function) | ||
18 | volume_id = (u_int32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec); [...] | ||
19 | ^ | ||
20 | src/mkfs.fat.c:1415:18: note: each undeclared identifier is reported only once for each | ||
21 | function it appears in | ||
22 | |||
23 | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> | ||
24 | Signed-off-by: Andreas Bombe <aeb@debian.org> | ||
25 | --- | ||
26 | Upstream-Status: Backport | ||
27 | |||
28 | src/mkfs.fat.c | 2 +- | ||
29 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
30 | |||
31 | diff --git a/src/mkfs.fat.c b/src/mkfs.fat.c | ||
32 | index b38d116..dddbe24 100644 | ||
33 | --- a/src/mkfs.fat.c | ||
34 | +++ b/src/mkfs.fat.c | ||
35 | @@ -1412,7 +1412,7 @@ int main(int argc, char **argv) | ||
36 | |||
37 | gettimeofday(&create_timeval, NULL); | ||
38 | create_time = create_timeval.tv_sec; | ||
39 | - volume_id = (u_int32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec); /* Default volume ID = creation time, fudged for more uniqueness */ | ||
40 | + volume_id = (uint32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec); /* Default volume ID = creation time, fudged for more uniqueness */ | ||
41 | check_atari(); | ||
42 | |||
43 | printf("mkfs.fat " VERSION " (" VERSION_DATE ")\n"); | ||
44 | -- | ||
45 | 2.7.0 | ||
46 | |||
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/largefile.patch b/meta/recipes-devtools/dosfstools/dosfstools/largefile.patch new file mode 100644 index 0000000000..7f7d8359df --- /dev/null +++ b/meta/recipes-devtools/dosfstools/dosfstools/largefile.patch | |||
@@ -0,0 +1,19 @@ | |||
1 | defer setting largefile flags to build makery | ||
2 | in a cross build we can not do runtime config tests | ||
3 | |||
4 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
5 | Upstream-Status: Inappropriate[Cross compile Specific] | ||
6 | Index: dosfstools-3.0.28/Makefile | ||
7 | =================================================================== | ||
8 | --- dosfstools-3.0.28.orig/Makefile | ||
9 | +++ dosfstools-3.0.28/Makefile | ||
10 | @@ -27,8 +27,7 @@ SBINDIR = $(PREFIX)/sbin | ||
11 | DOCDIR = $(PREFIX)/share/doc | ||
12 | MANDIR = $(PREFIX)/share/man | ||
13 | |||
14 | -#OPTFLAGS = -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 | ||
15 | -OPTFLAGS = -O2 -fomit-frame-pointer -D_GNU_SOURCE $(shell getconf LFS_CFLAGS) | ||
16 | +OPTFLAGS = -O2 -fomit-frame-pointer | ||
17 | #WARNFLAGS = -Wall -pedantic -std=c99 | ||
18 | WARNFLAGS = -Wall -Wextra -Wno-sign-compare -Wno-missing-field-initializers -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings | ||
19 | DEBUGFLAGS = -g | ||
diff --git a/meta/recipes-devtools/dosfstools/dosfstools_3.0.28.bb b/meta/recipes-devtools/dosfstools/dosfstools_3.0.28.bb index addcbf607c..6fc3e41dfe 100644 --- a/meta/recipes-devtools/dosfstools/dosfstools_3.0.28.bb +++ b/meta/recipes-devtools/dosfstools/dosfstools_3.0.28.bb | |||
@@ -9,12 +9,17 @@ SECTION = "base" | |||
9 | LICENSE = "GPLv3" | 9 | LICENSE = "GPLv3" |
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" | 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" |
11 | 11 | ||
12 | SRC_URI = "https://github.com/dosfstools/dosfstools/releases/download/v3.0.28/dosfstools-3.0.28.tar.xz" | 12 | SRC_URI = "https://github.com/dosfstools/dosfstools/releases/download/v3.0.28/dosfstools-3.0.28.tar.xz \ |
13 | file://largefile.patch \ | ||
14 | file://0001-mkfs.fat-fix-incorrect-int-type.patch \ | ||
15 | " | ||
13 | SRC_URI[md5sum] = "6a047a6c65186b9ebb1853709adb36db" | 16 | SRC_URI[md5sum] = "6a047a6c65186b9ebb1853709adb36db" |
14 | SRC_URI[sha256sum] = "ee95913044ecf2719b63ea11212917649709a6e53209a72d622135aaa8517ee2" | 17 | SRC_URI[sha256sum] = "ee95913044ecf2719b63ea11212917649709a6e53209a72d622135aaa8517ee2" |
15 | 18 | ||
16 | UPSTREAM_CHECK_URI = "https://github.com/dosfstools/dosfstools/releases" | 19 | UPSTREAM_CHECK_URI = "https://github.com/dosfstools/dosfstools/releases" |
17 | 20 | ||
21 | CFLAGS += "-D_GNU_SOURCE ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', '', d)}" | ||
22 | |||
18 | FILES_${PN} = "${base_sbindir}" | 23 | FILES_${PN} = "${base_sbindir}" |
19 | FILES_${PN}-doc = "${mandir} ${docdir}" | 24 | FILES_${PN}-doc = "${mandir} ${docdir}" |
20 | 25 | ||