All of lore.kernel.org
 help / color / mirror / Atom feed
From: Carlos Santos <casantos@datacom.ind.br>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3] util-linux: fix link failures due to name clash
Date: Wed, 8 Nov 2017 23:02:10 -0200 (BRST)	[thread overview]
Message-ID: <1844443647.16713503.1510189330735.JavaMail.zimbra@datacom.ind.br> (raw)
In-Reply-To: <1510162681-20797-1-git-send-email-luca@lucaceresoli.net>

> From: "Luca Ceresoli" <luca@lucaceresoli.net>
> To: buildroot at buildroot.org
> Cc: "Luca Ceresoli" <luca@lucaceresoli.net>, "Adam Duskett" <aduskett@gmail.com>
> Sent: Wednesday, November 8, 2017 3:38:01 PM
> Subject: [Buildroot] [PATCH v3] util-linux: fix link failures due to name clash

> Several packages have a similar md5.c file, and each has a function
> named byteReverse(). This generates link errors when building
> statically ("multiple definition of `byteReverse'").
> 
> Fix by applying a patch from upstream.
> 
> Fixes:
>  http://autobuild.buildroot.net/results/419ab2c0e034cc68991281c51caa8271b0fadbab/
> 
> Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
> Cc: Adam Duskett <aduskett@gmail.com>
> 
> ---
> 
> Changed v2 -> v3:
> - patch is now upstream, so add URL
> 
> Changed v1 -> v2:
> - add Submitted-upstream tag now that it's on the util-linux ml
> ---
> .../0001-md5-declare-byteReverse-as-static.patch   | 44 ++++++++++++++++++++++
> 1 file changed, 44 insertions(+)
> create mode 100644
> package/util-linux/0001-md5-declare-byteReverse-as-static.patch
> 
> diff --git a/package/util-linux/0001-md5-declare-byteReverse-as-static.patch
> b/package/util-linux/0001-md5-declare-byteReverse-as-static.patch
> new file mode 100644
> index 000000000000..a5b290c4dbe6
> --- /dev/null
> +++ b/package/util-linux/0001-md5-declare-byteReverse-as-static.patch
> @@ -0,0 +1,44 @@
> +From 424cee0f06ece9473786c189ab4741e1dea7061d Mon Sep 17 00:00:00 2001
> +From: Luca Ceresoli <luca@lucaceresoli.net>
> +Date: Tue, 7 Nov 2017 14:39:09 +0100
> +Subject: [PATCH] md5: declare byteReverse as static
> +
> +byteReverse() is an internal function in md5.c, and is not exposed via
> +any header file, but it is not declared as static. This is a problem
> +with the md5.c file since it is copied more or less verbatim in other
> +programs (fontconfig and pjsip among others), causing a link error
> +when linking two of them together.
> +
> +Fixes link failures such as:
> +
> http://autobuild.buildroot.net/results/419ab2c0e034cc68991281c51caa8271b0fadbab/build-end.log
> +
> +[Upstream patch:
> https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=424cee0f06ece9473786c189ab4741e1dea7061d]
> +
> +Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
> +---
> + lib/md5.c | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/lib/md5.c b/lib/md5.c
> +index 488d16ef69b4..282e2d22af25 100644
> +--- a/lib/md5.c
> ++++ b/lib/md5.c
> +@@ -21,13 +21,13 @@
> + #if !defined(WORDS_BIGENDIAN)
> + #define byteReverse(buf, len)	/* Nothing */
> + #else
> +-void byteReverse(unsigned char *buf, unsigned longs);
> ++static void byteReverse(unsigned char *buf, unsigned longs);
> +
> + #ifndef ASM_MD5
> + /*
> +  * Note: this code is harmless on little-endian machines.
> +  */
> +-void byteReverse(unsigned char *buf, unsigned longs)
> ++static void byteReverse(unsigned char *buf, unsigned longs)
> + {
> +     uint32_t t;
> +     do {
> +--
> +2.7.4
> +
> --
> 2.7.4

Tested-by: Carlos Santos <casantos@datacom.ind.br>

Rebuilt libpjsip after applying the patch and confirmed it solves the
static linking issue.

-- 
Carlos Santos (Casantos) - DATACOM, P&D
?The greatest triumph that modern PR can offer is the transcendent 
success of having your words and actions judged by your reputation, 
rather than the other way about.? ? Christopher Hitchens

  reply	other threads:[~2017-11-09  1:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-08 17:38 [Buildroot] [PATCH v3] util-linux: fix link failures due to name clash Luca Ceresoli
2017-11-09  1:02 ` Carlos Santos [this message]
2017-11-11 22:36 ` Thomas Petazzoni

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=1844443647.16713503.1510189330735.JavaMail.zimbra@datacom.ind.br \
    --to=casantos@datacom.ind.br \
    --cc=buildroot@busybox.net \
    /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.