From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carlos Santos Date: Wed, 8 Nov 2017 23:02:10 -0200 (BRST) Subject: [Buildroot] [PATCH v3] util-linux: fix link failures due to name clash In-Reply-To: <1510162681-20797-1-git-send-email-luca@lucaceresoli.net> References: <1510162681-20797-1-git-send-email-luca@lucaceresoli.net> Message-ID: <1844443647.16713503.1510189330735.JavaMail.zimbra@datacom.ind.br> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net > From: "Luca Ceresoli" > To: buildroot at buildroot.org > Cc: "Luca Ceresoli" , "Adam Duskett" > 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 > Cc: Adam Duskett > > --- > > 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 > +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 > +--- > + 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 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