diff mbox

package/util-linux: remove patch for uClibc support

Message ID 1455920889-14777-1-git-send-email-romain.naour@gmail.com
State Rejected
Headers show

Commit Message

Romain Naour Feb. 19, 2016, 10:28 p.m. UTC
This patch is not needed anymore since the uClibc support
has been removed from Buildroot.
This patch was needed for uClibc <= 0.9.33 support.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
Build tested with 2014R1 bfin toolchain.
The arc-1015.12 toolchain shouldn't trigger the build issue
since it's based on uClibc-snapshot (upstream HEAD)
---
 ...fine-mkostemp-for-older-version-of-uClibc.patch | 50 ----------------------
 1 file changed, 50 deletions(-)
 delete mode 100644 package/util-linux/0003-c.h-define-mkostemp-for-older-version-of-uClibc.patch

Comments

Arnout Vandecappelle Feb. 20, 2016, 11:31 p.m. UTC | #1
On 02/19/16 23:28, Romain Naour wrote:
> This patch is not needed anymore since the uClibc support
> has been removed from Buildroot.
> This patch was needed for uClibc <= 0.9.33 support.
> 
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> ---
> Build tested with 2014R1 bfin toolchain.

 But that toolchain is using uClibc 0.9.33, no? So how come it still works then?


 Regards,
 Arnout

> The arc-1015.12 toolchain shouldn't trigger the build issue
> since it's based on uClibc-snapshot (upstream HEAD)
> ---
>  ...fine-mkostemp-for-older-version-of-uClibc.patch | 50 ----------------------
>  1 file changed, 50 deletions(-)
>  delete mode 100644 package/util-linux/0003-c.h-define-mkostemp-for-older-version-of-uClibc.patch
[snip]
Thomas Petazzoni Feb. 21, 2016, 2:10 p.m. UTC | #2
Dear Arnout Vandecappelle,

On Sun, 21 Feb 2016 00:31:39 +0100, Arnout Vandecappelle wrote:
> On 02/19/16 23:28, Romain Naour wrote:
> > This patch is not needed anymore since the uClibc support
> > has been removed from Buildroot.
> > This patch was needed for uClibc <= 0.9.33 support.
> > 
> > Signed-off-by: Romain Naour <romain.naour@gmail.com>
> > ---
> > Build tested with 2014R1 bfin toolchain.
> 
>  But that toolchain is using uClibc 0.9.33, no? So how come it still works then?

mkostemp is used in three places:

lib/fileutils.c:	fd = mkostemp(localtmp, O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC);
libblkid/src/save.c:			fd = mkostemp(tmp, O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC);
libmount/src/utils.c:	fd = mkostemp(n, O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC);

Both libblkid and libmount are "depends on BR2_USE_MMU", so they are
not built on Blackfin.

However, I don't see how it can work with lib/fileutils. And indeed, at
build time I get:

  CC       lib/libcommon_la-match.lo
lib/fileutils.c: In function ‘xmkstemp’:
lib/fileutils.c:36: warning: implicit declaration of function ‘mkostemp’
lib/fileutils.c:36: warning: nested extern declaration of ‘mkostemp’

And indeed:

$ ./output/host/usr/bin/bfin-linux-uclibc-gcc -o foo foo.c -lsmartcols
/home/thomas/projets/buildroot/output/host/usr/bfin-buildroot-linux-uclibc/sysroot/usr/lib/libsmartcols.so: undefined reference to `_fork'
/home/thomas/projets/buildroot/output/host/usr/bfin-buildroot-linux-uclibc/sysroot/usr/lib/libsmartcols.so: undefined reference to `_mkostemp'
collect2: ld returned 1 exit status

Though it looks like this smartcols library also uses fork(), so it
anyway cannot work properly.

Romain, it seems like your patch is not completely correct, so I've
marked it as Rejected.

Best regards,

Thomas
Romain Naour Feb. 21, 2016, 4:34 p.m. UTC | #3
Hi Thomas, Arnout,

Le 21/02/2016 15:10, Thomas Petazzoni a écrit :
> Dear Arnout Vandecappelle,
> 
> On Sun, 21 Feb 2016 00:31:39 +0100, Arnout Vandecappelle wrote:
>> On 02/19/16 23:28, Romain Naour wrote:
>>> This patch is not needed anymore since the uClibc support
>>> has been removed from Buildroot.
>>> This patch was needed for uClibc <= 0.9.33 support.
>>>
>>> Signed-off-by: Romain Naour <romain.naour@gmail.com>
>>> ---
>>> Build tested with 2014R1 bfin toolchain.
>>
>>  But that toolchain is using uClibc 0.9.33, no? So how come it still works then?
> 
> mkostemp is used in three places:
> 
> lib/fileutils.c:	fd = mkostemp(localtmp, O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC);
> libblkid/src/save.c:			fd = mkostemp(tmp, O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC);
> libmount/src/utils.c:	fd = mkostemp(n, O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC);
> 
> Both libblkid and libmount are "depends on BR2_USE_MMU", so they are
> not built on Blackfin.
> 
> However, I don't see how it can work with lib/fileutils. And indeed, at
> build time I get:
> 
>   CC       lib/libcommon_la-match.lo
> lib/fileutils.c: In function ‘xmkstemp’:
> lib/fileutils.c:36: warning: implicit declaration of function ‘mkostemp’
> lib/fileutils.c:36: warning: nested extern declaration of ‘mkostemp’
> 
> And indeed:
> 
> $ ./output/host/usr/bin/bfin-linux-uclibc-gcc -o foo foo.c -lsmartcols
> /home/thomas/projets/buildroot/output/host/usr/bfin-buildroot-linux-uclibc/sysroot/usr/lib/libsmartcols.so: undefined reference to `_fork'
> /home/thomas/projets/buildroot/output/host/usr/bfin-buildroot-linux-uclibc/sysroot/usr/lib/libsmartcols.so: undefined reference to `_mkostemp'
> collect2: ld returned 1 exit status
> 
> Though it looks like this smartcols library also uses fork(), so it
> anyway cannot work properly.
> 
> Romain, it seems like your patch is not completely correct, so I've
> marked it as Rejected.

Ok no problem, I probably didn't selected the good util-linux option... my bad.

Best regards,
Romain

> 
> Best regards,
> 
> Thomas
>
Thomas Petazzoni Feb. 21, 2016, 5:20 p.m. UTC | #4
Hello,

On Sun, 21 Feb 2016 17:34:05 +0100, Romain Naour wrote:

> > Though it looks like this smartcols library also uses fork(), so it
> > anyway cannot work properly.
> > 
> > Romain, it seems like your patch is not completely correct, so I've
> > marked it as Rejected.
> 
> Ok no problem, I probably didn't selected the good util-linux option... my bad.

util-linux itself build fine. It's then if you try to link a program
with libsmartcols.

But on the other hand, libsmartcols uses fork(), which cannot be used
on no-MMU platforms... So the fact that libsmartcols uses mkostemp()
is maybe not that relevant.

Best regards,

Thomas
Romain Naour Feb. 21, 2016, 5:33 p.m. UTC | #5
Thomas,
Le 21/02/2016 18:20, Thomas Petazzoni a écrit :
> Hello,
> 
> On Sun, 21 Feb 2016 17:34:05 +0100, Romain Naour wrote:
> 
>>> Though it looks like this smartcols library also uses fork(), so it
>>> anyway cannot work properly.
>>>
>>> Romain, it seems like your patch is not completely correct, so I've
>>> marked it as Rejected.
>>
>> Ok no problem, I probably didn't selected the good util-linux option... my bad.
> 
> util-linux itself build fine. It's then if you try to link a program
> with libsmartcols.
> 
> But on the other hand, libsmartcols uses fork(), which cannot be used
> on no-MMU platforms... So the fact that libsmartcols uses mkostemp()
> is maybe not that relevant.

So let's disable libsmartcols for no-MMU platforms and remove the patch :)

Best regards,
Romain

> 
> Best regards,
> 
> Thomas
>
diff mbox

Patch

diff --git a/package/util-linux/0003-c.h-define-mkostemp-for-older-version-of-uClibc.patch b/package/util-linux/0003-c.h-define-mkostemp-for-older-version-of-uClibc.patch
deleted file mode 100644
index 0dfe7be..0000000
--- a/package/util-linux/0003-c.h-define-mkostemp-for-older-version-of-uClibc.patch
+++ /dev/null
@@ -1,50 +0,0 @@ 
-From 42a84250fc78bae3e885ecd1379e713663fe6487 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@openwide.fr>
-Date: Sun, 6 Apr 2014 12:12:41 +0200
-Subject: [PATCH 1/1] c.h: define mkostemp for older version of uClibc
-
-Signed-off-by: Romain Naour <romain.naour@openwide.fr>
----
- configure.ac |  2 ++
- include/c.h  | 14 ++++++++++++++
- 2 files changed, 16 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 35a1f26..a9b8d34 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -321,6 +321,8 @@ AC_CHECK_FUNCS([ \
- ])
- AC_FUNC_FSEEKO
- 
-+AC_CHECK_FUNCS([mkostemp])
-+
- AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
- AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
- 
-diff --git a/include/c.h b/include/c.h
-index 4a9bf3d..1b880ed 100644
---- a/include/c.h
-+++ b/include/c.h
-@@ -300,4 +300,18 @@ static inline int usleep(useconds_t usec)
- # define SEEK_HOLE	4
- #endif
- 
-+/*
-+ * mkostemp() may be missing with older version of uClibc
-+ */
-+#ifndef HAVE_MKOSTEMP
-+static inline int mkostemp(char *template, int flags)
-+{
-+	int fd;
-+	fd = mkstemp(template);
-+	if (flags & O_CLOEXEC && fd >= 0)
-+		fcntl(fd, F_SETFD, FD_CLOEXEC);
-+	return fd;
-+}
-+#endif
-+
- #endif /* UTIL_LINUX_C_H */
--- 
-1.9.0
-