From: Radu Moisan <radu.moisan@intel.com>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH][RFC] coreutils: Upgrade to upstream version 8.17
Date: Fri, 17 Aug 2012 16:06:43 +0300 [thread overview]
Message-ID: <502E41E3.4020903@intel.com> (raw)
In-Reply-To: <1345208727-3029-1-git-send-email-radu.moisan@intel.com>
[-- Attachment #1: Type: text/plain, Size: 8568 bytes --]
The problem:
The new version of coreutils, adds use of canonicalize_file_name()
function defined in canonicalize.h The problem I encountered is at
compile time, the function is redefined to rpl_canonicalize_file_name by
means of a macro, and I get an undefined reference error.
//-- stdlib.in.h
#if @GNULIB_CANONICALIZE_FILE_NAME@
# if @REPLACE_CANONICALIZE_FILE_NAME@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define canonicalize_file_name rpl_canonicalize_file_name
# endif
I've looked for REPLACE_CANONICALIZE_FILE_NAME and found out that is
being set in configure, which is generated from canonicalize.m4
# canonicalize.m4 serial 24
dnl Copyright (C) 2003-2007, 2009-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Provides canonicalize_file_name and canonicalize_filename_mode, but does
# not provide or fix realpath.
AC_DEFUN([gl_FUNC_CANONICALIZE_FILENAME_MODE],
[
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
AC_CHECK_FUNCS_ONCE([canonicalize_file_name])
AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
AC_REQUIRE([gl_FUNC_REALPATH_WORKS])
if test $ac_cv_func_canonicalize_file_name = no; then
HAVE_CANONICALIZE_FILE_NAME=0
elif test "$gl_cv_func_realpath_works" != yes; then
REPLACE_CANONICALIZE_FILE_NAME=1
fi
])
# Provides canonicalize_file_name and realpath.
AC_DEFUN([gl_CANONICALIZE_LGPL],
[
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
AC_REQUIRE([gl_CANONICALIZE_LGPL_SEPARATE])
if test $ac_cv_func_canonicalize_file_name = no; then
HAVE_CANONICALIZE_FILE_NAME=0
if test $ac_cv_func_realpath = no; then
HAVE_REALPATH=0
elif test "$gl_cv_func_realpath_works" != yes; then
REPLACE_REALPATH=1
fi
elif test "$gl_cv_func_realpath_works" != yes; then
REPLACE_CANONICALIZE_FILE_NAME=1
REPLACE_REALPATH=1
fi
])
Then I followed gl_cv_func_realpath_works and found it to be set to
"guessing yes"
# canonicalize.m4 serial 24
[case "$host_os" in
# Guess yes on glibc systems.
*-gnu*) gl_cv_func_realpath_works="guessing yes" ;;
# If we don't know, assume the worst.
*) gl_cv_func_realpath_works="guessing no" ;;
esac
Being set this way it looked to me like it was always assumed to be "no"
and thus assumed real path didn't work. In fact, I could not make a
logic for "guessing yes" and "quessing no" because to me it looks like
they are not verified against and thus I'm missing the reason of their
usage. However, I'm assuming I missed something because they are used
quite heavily.
I don't have experience with autoconf so I may have missed the "right
way" to fix this.
Any comments well apreciated.
radu
On 08/17/2012 04:05 PM, Radu Moisan wrote:
> Signed-off-by: Radu Moisan <radu.moisan@intel.com>
> ---
> .../coreutils-8.17/realpath-works-yes.patch | 13 +++++++++++++
> .../remove-gets.patch | 20 +++++++++++---------
> .../remove-usr-local-lib-from-m4.patch | 0
> .../{coreutils_8.14.bb => coreutils_8.17.bb} | 9 +++++----
> 4 files changed, 29 insertions(+), 13 deletions(-)
> create mode 100644 meta/recipes-core/coreutils/coreutils-8.17/realpath-works-yes.patch
> rename meta/recipes-core/coreutils/{coreutils-8.14 => coreutils-8.17}/remove-gets.patch (47%)
> rename meta/recipes-core/coreutils/{coreutils-8.14 => coreutils-8.17}/remove-usr-local-lib-from-m4.patch (100%)
> rename meta/recipes-core/coreutils/{coreutils_8.14.bb => coreutils_8.17.bb} (91%)
>
> diff --git a/meta/recipes-core/coreutils/coreutils-8.17/realpath-works-yes.patch b/meta/recipes-core/coreutils/coreutils-8.17/realpath-works-yes.patch
> new file mode 100644
> index 0000000..6bbe7ee
> --- /dev/null
> +++ b/meta/recipes-core/coreutils/coreutils-8.17/realpath-works-yes.patch
> @@ -0,0 +1,13 @@
> +Index: coreutils-8.17/m4/canonicalize.m4
> +===================================================================
> +--- coreutils-8.17.orig/m4/canonicalize.m4 2012-05-08 12:05:23.000000000 +0300
> ++++ coreutils-8.17/m4/canonicalize.m4 2012-08-17 14:20:22.000000000 +0300
> +@@ -95,7 +95,7 @@
> + [gl_cv_func_realpath_works=no],
> + [case "$host_os" in
> + # Guess yes on glibc systems.
> +- *-gnu*) gl_cv_func_realpath_works="guessing yes" ;;
> ++ *-gnu*) gl_cv_func_realpath_works="yes" ;;
> + # If we don't know, assume the worst.
> + *) gl_cv_func_realpath_works="guessing no" ;;
> + esac
> diff --git a/meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch b/meta/recipes-core/coreutils/coreutils-8.17/remove-gets.patch
> similarity index 47%
> rename from meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch
> rename to meta/recipes-core/coreutils/coreutils-8.17/remove-gets.patch
> index 4f61c92..eaadf7e 100644
> --- a/meta/recipes-core/coreutils/coreutils-8.14/remove-gets.patch
> +++ b/meta/recipes-core/coreutils/coreutils-8.17/remove-gets.patch
> @@ -3,19 +3,21 @@ use gets iff its defined. eglibc 2.16 removed gets
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> Upstream-Status: Pending
>
> -Index: coreutils-8.14/lib/stdio.in.h
> +Index: coreutils-8.17/lib/stdio.in.h
> ===================================================================
> ---- coreutils-8.14.orig/lib/stdio.in.h 2011-09-24 04:20:48.000000000 -0700
> -+++ coreutils-8.14/lib/stdio.in.h 2012-07-03 10:36:19.886296576 -0700
> -@@ -713,11 +713,13 @@
> - _GL_CXXALIAS_SYS (gets, char *, (char *s));
> - # undef gets
> +--- coreutils-8.17.orig/lib/stdio.in.h
> ++++ coreutils-8.17/lib/stdio.in.h
> +@@ -698,13 +698,14 @@ _GL_WARN_ON_USE (getline, "getline is un
> + "use gnulib module getline for portability");
> # endif
> + #endif
> +-
> +# if defined gets
> - _GL_CXXALIASWARN (gets);
> /* It is very rare that the developer ever has full control of stdin,
> - so any use of gets warrants an unconditional warning. Assume it is
> - always declared, since it is required by C89. */
> + so any use of gets warrants an unconditional warning; besides, C11
> + removed it. */
> + #undef gets
> + #if HAVE_RAW_DECL_GETS
> _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
> +# endif
> #endif
> diff --git a/meta/recipes-core/coreutils/coreutils-8.14/remove-usr-local-lib-from-m4.patch b/meta/recipes-core/coreutils/coreutils-8.17/remove-usr-local-lib-from-m4.patch
> similarity index 100%
> rename from meta/recipes-core/coreutils/coreutils-8.14/remove-usr-local-lib-from-m4.patch
> rename to meta/recipes-core/coreutils/coreutils-8.17/remove-usr-local-lib-from-m4.patch
> diff --git a/meta/recipes-core/coreutils/coreutils_8.14.bb b/meta/recipes-core/coreutils/coreutils_8.17.bb
> similarity index 91%
> rename from meta/recipes-core/coreutils/coreutils_8.14.bb
> rename to meta/recipes-core/coreutils/coreutils_8.17.bb
> index 9a714a9..9d8170e 100644
> --- a/meta/recipes-core/coreutils/coreutils_8.14.bb
> +++ b/meta/recipes-core/coreutils/coreutils_8.17.bb
> @@ -6,8 +6,8 @@ HOMEPAGE = "http://www.gnu.org/software/coreutils/"
> BUGTRACKER = "http://debbugs.gnu.org/coreutils"
> LICENSE = "GPLv3+"
> LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\
> - file://src/ls.c;startline=5;endline=16;md5=e1a509558876db58fb6667ba140137ad"
> -PR = "r5"
> + file://src/ls.c;startline=5;endline=16;md5=30c84fd2942cad91041e5e2dcd19ced6"
> +PR = "r0"
> DEPENDS = "gmp libcap"
> DEPENDS_virtclass-native = ""
>
> @@ -16,9 +16,10 @@ inherit autotools gettext
> SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
> file://remove-usr-local-lib-from-m4.patch \
> file://remove-gets.patch \
> + file://realpath-works-yes.patch \
> "
> -SRC_URI[md5sum] = "bcb135ce553493a45aba01b39eb3920a"
> -SRC_URI[sha256sum] = "0d120817c19292edb19e92ae6b8eac9020e03d51e0af9cb116cf82b65d18b02d"
> +SRC_URI[md5sum] = "bbda656ce8ca2c6903948f9faa204ba3"
> +SRC_URI[sha256sum] = "4e075a0d238072a5bd079046e1f024dc5e0d9133d43a39c73d0b86b0d1e2c5e5"
>
> EXTRA_OECONF_virtclass-native = "--without-gmp"
>
[-- Attachment #2: Type: text/html, Size: 11175 bytes --]
next prev parent reply other threads:[~2012-08-17 13:16 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-17 13:05 [PATCH][RFC] coreutils: Upgrade to upstream version 8.17 Radu Moisan
2012-08-17 13:06 ` Radu Moisan [this message]
2012-08-17 15:55 ` Saul Wold
2012-08-20 6:04 ` Radu Moisan
2012-08-20 16:45 ` Saul Wold
2012-08-21 8:46 ` Radu Moisan
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=502E41E3.4020903@intel.com \
--to=radu.moisan@intel.com \
--cc=openembedded-core@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.