From: Koen Kooi <k.kooi@student.utwente.nl>
To: openembedded-devel@lists.openembedded.org
Subject: Re: [PATCH 2/2] util-linux-ng: provide libblkid/libuuid/fsck
Date: Fri, 12 Feb 2010 16:05:23 +0100 [thread overview]
Message-ID: <hl3qnh$blr$2@ger.gmane.org> (raw)
In-Reply-To: <1265986283-28972-3-git-send-email-marcin@juszkiewicz.com.pl>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 12-02-10 15:51, Marcin Juszkiewicz wrote:
> This commit is next step after e2fsprogs lost libblkid/libuuid/fsck
> packages. Most applications/libraries now require u-l-ng versions.
>
I'm not really fond of the PACKAGES_DYNAMIC bit, but:
Acked-by: Koen Kooi <koen@openembedded.org>
> Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
> ---
> recipes/util-linux-ng/util-linux-ng-2.17/tls.patch | 70 ++++++++++++++++++++
> .../util-linux-ng-2.17/uclibc-compile.patch | 13 ++++
> .../util-linux-ng-replace-siginterrupt.patch | 23 +++++++
> recipes/util-linux-ng/util-linux-ng.inc | 18 ++++-
> recipes/util-linux-ng/util-linux-ng_2.17.bb | 13 ++++
> 5 files changed, 133 insertions(+), 4 deletions(-)
> create mode 100644 recipes/util-linux-ng/util-linux-ng-2.17/tls.patch
> create mode 100644 recipes/util-linux-ng/util-linux-ng-2.17/uclibc-compile.patch
> create mode 100644 recipes/util-linux-ng/util-linux-ng-2.17/util-linux-ng-replace-siginterrupt.patch
> create mode 100644 recipes/util-linux-ng/util-linux-ng_2.17.bb
>
> diff --git a/recipes/util-linux-ng/util-linux-ng-2.17/tls.patch b/recipes/util-linux-ng/util-linux-ng-2.17/tls.patch
> new file mode 100644
> index 0000000..bdb29ca
> --- /dev/null
> +++ b/recipes/util-linux-ng/util-linux-ng-2.17/tls.patch
> @@ -0,0 +1,70 @@
> +Index: util-linux-ng-2.16/m4/tls.m4
> +===================================================================
> +--- util-linux-ng-2.16.orig/m4/tls.m4 2009-07-04 01:20:03.000000000 +0200
> ++++ util-linux-ng-2.16/m4/tls.m4 2009-07-30 01:57:30.151697033 +0200
> +@@ -18,31 +18,26 @@
> + # version as well.
> + #
> + AC_DEFUN([AX_TLS], [
> +- AC_MSG_CHECKING(for thread local storage (TLS) class)
> +- AC_CACHE_VAL(ac_cv_tls, [
> +- ax_tls_keywords="__thread __declspec(thread) none"
> +- for ax_tls_keyword in $ax_tls_keywords; do
> +- case $ax_tls_keyword in
> +- none) ac_cv_tls=none ; break ;;
> +- *)
> +- AC_TRY_COMPILE(
> +- [#include <stdlib.h>
> +- static void
> +- foo(void) {
> +- static ] $ax_tls_keyword [ int bar;
> +- exit(1);
> +- }],
> +- [],
> +- [ac_cv_tls=$ax_tls_keyword ; break],
> +- ac_cv_tls=none
> +- )
> +- esac
> +- done
> +-])
> ++ AC_CACHE_CHECK([for thread local storage (TLS) class],
> ++ ac_cv_tls,
> ++ [AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }],
> ++ [chktls_save_LDFLAGS="$LDFLAGS"
> ++ LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
> ++ chktls_save_CFLAGS="$CFLAGS"
> ++ CFLAGS="-fPIC $CFLAGS"
> ++ dnl If -shared works, test if TLS works in a shared library.
> ++ AC_LINK_IFELSE([int f() { return 0; }],
> ++ AC_LINK_IFELSE([__thread int a; int b; int f() { return a = b; }],
> ++ [ac_cv_tls=yes],
> ++ [ac_cv_tls=no]),
> ++ [ac_cv_tls=yes])
> ++ CFLAGS="$chktls_save_CFLAGS"
> ++ LDFLAGS="$chktls_save_LDFLAGS"], [ac_cv_tls=no])
> ++ ])
> +
> +- if test "$ac_cv_tls" != "none"; then
> +- dnl AC_DEFINE([TLS], [], [If the compiler supports a TLS storage class define it to that here])
> +- AC_DEFINE_UNQUOTED([TLS], $ac_cv_tls, [If the compiler supports a TLS storage class define it to that here])
> +- fi
> +- AC_MSG_RESULT($ac_cv_tls)
> ++ AS_IF([test "x$ac_cv_tls" = "xyes"],
> ++ [AC_DEFINE([TLS], 1,
> ++ [Define this if the compiler supports __thread for Thread-Local Storage])
> ++ $1],
> ++ [$2])
> + ])
> +Index: util-linux-ng-2.16/shlibs/uuid/src/gen_uuid.c
> +===================================================================
> +--- util-linux-ng-2.16.orig/shlibs/uuid/src/gen_uuid.c 2009-07-30 02:31:48.518159459 +0200
> ++++ util-linux-ng-2.16/shlibs/uuid/src/gen_uuid.c 2009-07-30 02:32:04.867871183 +0200
> +@@ -99,7 +99,7 @@
> + #endif
> +
> + #ifdef TLS
> +-#define THREAD_LOCAL static TLS
> ++#define THREAD_LOCAL static __thread
> + #else
> + #define THREAD_LOCAL static
> + #endif
> diff --git a/recipes/util-linux-ng/util-linux-ng-2.17/uclibc-compile.patch b/recipes/util-linux-ng/util-linux-ng-2.17/uclibc-compile.patch
> new file mode 100644
> index 0000000..b2e8a8b
> --- /dev/null
> +++ b/recipes/util-linux-ng/util-linux-ng-2.17/uclibc-compile.patch
> @@ -0,0 +1,13 @@
> +Index: util-linux-ng-2.16/misc-utils/cal.c
> +===================================================================
> +--- util-linux-ng-2.16.orig/misc-utils/cal.c 2009-07-03 16:20:01.000000000 -0700
> ++++ util-linux-ng-2.16/misc-utils/cal.c 2009-07-18 23:21:37.000000000 -0700
> +@@ -407,7 +407,7 @@
> + strcpy(day_headings,"");
> + strcpy(j_day_headings,"");
> +
> +-#ifdef HAVE_LANGINFO_H
> ++#ifdef HAVE_LANGINFO_H && !defined(__UCLIBC__)
> + # define weekday(wd) nl_langinfo(ABDAY_1+wd)
> + #else
> + # define weekday(wd) _time_info->abbrev_wkday[wd]
> diff --git a/recipes/util-linux-ng/util-linux-ng-2.17/util-linux-ng-replace-siginterrupt.patch b/recipes/util-linux-ng/util-linux-ng-2.17/util-linux-ng-replace-siginterrupt.patch
> new file mode 100644
> index 0000000..4b5eb73
> --- /dev/null
> +++ b/recipes/util-linux-ng/util-linux-ng-2.17/util-linux-ng-replace-siginterrupt.patch
> @@ -0,0 +1,23 @@
> +Index: util-linux-ng-2.14/login-utils/login.c
> +===================================================================
> +--- util-linux-ng-2.14.orig/login-utils/login.c 2008-05-28 16:01:02.000000000 -0700
> ++++ util-linux-ng-2.14/login-utils/login.c 2009-03-04 18:31:42.000000000 -0800
> +@@ -358,6 +358,7 @@
> + char *childArgv[10];
> + char *buff;
> + int childArgc = 0;
> ++ struct sigaction act;
> + #ifdef HAVE_SECURITY_PAM_MISC_H
> + int retcode;
> + pam_handle_t *pamh = NULL;
> +@@ -373,7 +374,9 @@
> + pid = getpid();
> +
> + signal(SIGALRM, timedout);
> +- siginterrupt(SIGALRM,1); /* we have to interrupt syscalls like ioclt() */
> ++ (void) sigaction(SIGALRM, NULL, &act);
> ++ act.sa_flags &= ~SA_RESTART;
> ++ sigaction(SIGALRM, &act, NULL);
> + alarm((unsigned int)timeout);
> + signal(SIGQUIT, SIG_IGN);
> + signal(SIGINT, SIG_IGN);
> diff --git a/recipes/util-linux-ng/util-linux-ng.inc b/recipes/util-linux-ng/util-linux-ng.inc
> index 7f4333b..c8c2b3c 100644
> --- a/recipes/util-linux-ng/util-linux-ng.inc
> +++ b/recipes/util-linux-ng/util-linux-ng.inc
> @@ -7,7 +7,7 @@ inherit autotools
>
> DEFAULT_PREFERENCE = "-1"
>
> -INC_PR = "r9"
> +INC_PR = "r10"
>
> # allows for a release candidate
> RC ?= ""
> @@ -16,7 +16,7 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/util-linux-ng/v${PV}/util-linux-n
>
> SRC_URI_append_chinook-compat = " file://chinook_libtool.patch;patch=1 "
>
> -PACKAGES =+ "util-linux-ng-fdisk util-linux-ng-cfdisk util-linux-ng-sfdisk util-linux-ng-swaponoff util-linux-ng-losetup util-linux-ng-umount util-linux-ng-mount util-linux-ng-readprofile "
> +PACKAGES =+ "util-linux-ng-fdisk util-linux-ng-cfdisk util-linux-ng-sfdisk util-linux-ng-swaponoff util-linux-ng-losetup util-linux-ng-umount util-linux-ng-mount util-linux-ng-readprofile util-linux-ng-fsck"
> PACKAGES_DYNAMIC = "libblkid*"
>
> # Provide old util-linux names (several recipes still use DEPENDS or RDEPENDS = "util-linux"):
> @@ -30,6 +30,7 @@ RPROVIDES_util-linux-ng-losetup = "util-linux-losetup"
> RPROVIDES_util-linux-ng-umount = "util-linux-umount"
> RPROVIDES_util-linux-ng-mount = "util-linux-mount"
> RPROVIDES_util-linux-ng-readprofile = "util-linux-readprofile"
> +RPROVIDES_util-linux-ng-fsck = "e2fsprogs-fsck"
>
> FILES_${PN}-doc += "/usr/share/misc/getopt/getopt-*.*"
> FILES_${PN} = "${bindir} ${sbindir} ${base_bindir} ${base_sbindir}"
> @@ -44,13 +45,14 @@ FILES_util-linux-ng-mount = "${base_bindir}/mount.${PN} ${sysconfdir}/default/mo
> FILES_util-linux-ng-umount = "${base_bindir}/umount.${PN}"
> # Moved to ${base_sbindir} by do_install:
> FILES_util-linux-ng-readprofile = "${base_sbindir}/readprofile.${PN}"
> +FILES_util-linux-ng-fsck = "${base_sbindir}/fsck.${PN}"
>
> PACKAGES =+ "${PN}-mountall"
> FILES_${PN}-mountall = "${sysconfdir}/default/mountall"
> RREPLACES_${PN}-mountall = "busybox-mountall"
>
> RRECOMMENDS_${PN} = "util-linux-ng-fdisk util-linux-ng-cfdisk util-linux-ng-sfdisk util-linux-ng-mount util-linux-ng-readprofile "
> -RDEPENDS_${PN} = "${PN}-mountall util-linux-ng-umount util-linux-ng-swaponoff util-linux-ng-losetup"
> +RDEPENDS_${PN} = "${PN}-mountall util-linux-ng-umount util-linux-ng-swaponoff util-linux-ng-losetup ${PN}-fsck"
>
> EXTRA_OECONF = "--disable-use-tty-group --disable-makeinstall-chown \
> --enable-kill --enable-last --enable-mesg --enable-raw --enable-login-utils \
> @@ -111,7 +113,7 @@ do_install () {
> mkdir -p ${D}${base_bindir}
>
> sbinprogs="agetty blockdev ctrlaltdel cfdisk"
> - sbinprogs_a="pivot_root hwclock mkswap shutdown mkfs.minix fsck.minix losetup swapon fdisk readprofile"
> + sbinprogs_a="pivot_root hwclock mkswap shutdown mkfs.minix fsck.minix losetup swapon fdisk readprofile fsck"
> usrbinprogs_a="hexdump last logger mesg renice wall"
> binprogs_a="dmesg kill more umount mount"
>
> @@ -247,6 +249,14 @@ pkg_postinst_util-linux-ng-losetup () {
> update-alternatives --install ${base_sbindir}/losetup losetup losetup.${PN} 100
> }
>
> +pkg_postinst_util-linux-ng-fsck () {
> + update-alternatives --install ${base_sbindir}/fsck fsck fsck.${PN} 100
> +}
> +
> +pkg_prerm_util-linux-ng-fsck () {
> + update-alternatives --remove fsck fsck.${PN}
> +}
> +
> pkg_prerm_util-linux-ng-losetup () {
> update-alternatives --remove losetup losetup.${PN}
> }
> diff --git a/recipes/util-linux-ng/util-linux-ng_2.17.bb b/recipes/util-linux-ng/util-linux-ng_2.17.bb
> new file mode 100644
> index 0000000..3fbdb8c
> --- /dev/null
> +++ b/recipes/util-linux-ng/util-linux-ng_2.17.bb
> @@ -0,0 +1,13 @@
> +require util-linux-ng.inc
> +
> +PR = "${INC_PR}.4"
> +
> +SRC_URI += "file://uclibc-compile.patch;patch=1 \
> + file://util-linux-ng-replace-siginterrupt.patch;patch=1 \
> + "
> +
> +EXTRA_OECONF += " --enable-libuuid --enable-libblkid \
> + --enable-fsck"
> +LDFLAGS_append_libc-uclibc = " -lintl"
> +PACKAGES_DYNAMIC += "libuuid*"
> +
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
iD8DBQFLdW4zMkyGM64RGpERAvmhAJ4gHJ9oK4BnzplDHCSxmrQW9Mwl7QCgoW+l
A0A6U/AQjdbfHxMNf/+Pmxk=
=8b3U
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2010-02-12 15:12 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-12 14:51 Patches to solve libblkid/libuuid version problems Marcin Juszkiewicz
2010-02-12 14:51 ` [PATCH 1/2] e2fsprogs: stop providing libblkid/libuuid/fsck - they are in util-linux-ng Marcin Juszkiewicz
2010-02-12 15:04 ` Koen Kooi
2010-02-12 14:51 ` [PATCH 2/2] util-linux-ng: provide libblkid/libuuid/fsck Marcin Juszkiewicz
2010-02-12 15:05 ` Koen Kooi [this message]
2010-02-12 15:18 ` Marcin Juszkiewicz
2010-02-12 20:12 ` Khem Raj
2010-02-13 5:29 ` Marcin Juszkiewicz
2010-02-12 20:15 ` Patches to solve libblkid/libuuid version problems Khem Raj
2010-02-13 5:26 ` Marcin Juszkiewicz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='hl3qnh$blr$2@ger.gmane.org' \
--to=k.kooi@student.utwente.nl \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.