[oe] [meta-oe][PATCH] log4cplus: Fix build with gold linker

Khem Raj raj.khem at gmail.com
Wed Jul 31 06:46:45 UTC 2019


On Tue, Jul 30, 2019 at 11:36 PM Yu, Mingli <mingli.yu at windriver.com> wrote:
>
> Hi Khem,
>
> On 2019年07月23日 05:18, Khem Raj wrote:
> > Fixes a potential linker error and eventual linker crash when using gold
> > linker [1]
> >
> > [1] https://errors.yoctoproject.org/Errors/Details/253440/
> >
> > Signed-off-by: Khem Raj <raj.khem at gmail.com>
> > Cc: Adrian Bunk <bunk at stusta.de>
> > Cc: Mingli Yu <mingli.yu at windriver.com>
> > ---
> >   ...-version-entry-from-ELF-.comment-sec.patch | 40 +++++++++++++++++++
> >   .../log4cplus/log4cplus_2.0.4.bb              |  6 ++-
> >   2 files changed, 45 insertions(+), 1 deletion(-)
> >   create mode 100644 meta-oe/recipes-devtools/log4cplus/log4cplus/0001-Remove-log4cplus-version-entry-from-ELF-.comment-sec.patch
> >
> > diff --git a/meta-oe/recipes-devtools/log4cplus/log4cplus/0001-Remove-log4cplus-version-entry-from-ELF-.comment-sec.patch b/meta-oe/recipes-devtools/log4cplus/log4cplus/0001-Remove-log4cplus-version-entry-from-ELF-.comment-sec.patch
> > new file mode 100644
> > index 0000000000..44a835c35f
> > --- /dev/null
> > +++ b/meta-oe/recipes-devtools/log4cplus/log4cplus/0001-Remove-log4cplus-version-entry-from-ELF-.comment-sec.patch
> > @@ -0,0 +1,40 @@
> > +From da5338e68f146efadab7c221291ba4c949d8f12f Mon Sep 17 00:00:00 2001
> > +From: Vaclav Haisman <vhaisman at gmail.com>
> > +Date: Sun, 21 Jul 2019 23:23:16 -0700
> > +Subject: [PATCH] Remove log4cplus version entry from ELF .comment section
> > +
> > +Reverts
> > +https://github.com/log4cplus/log4cplus/commit/9cb0d4ade619da4e40628c9b95ff51de3df29f1b
> > +
> > +Upstream-Status: Backport [https://github.com/log4cplus/log4cplus/commit/7e6addc70dffd2e30e902efd18eb845c5d5dd7bb]
> > +
> > +Suggested-by: Adrian Bunk <bunk at stusta.de>
> > +Signed-off-by: Khem Raj <raj.khem at gmail.com>
> > +---
> > + src/version.cxx | 12 ------------
> > + 1 file changed, 12 deletions(-)
> > +
> > +diff --git a/src/version.cxx b/src/version.cxx
> > +index ce18212..e002de9 100644
> > +--- a/src/version.cxx
> > ++++ b/src/version.cxx
> > +@@ -34,16 +34,4 @@ namespace log4cplus
> > + unsigned const version = LOG4CPLUS_VERSION;
> > + char const versionStr[] = LOG4CPLUS_VERSION_STR LOG4CPLUS_VERSION_STR_SUFFIX;
> > +
> > +-namespace
> > +-{
> > +-
> > +-#if defined (__ELF__) && (defined (__GNUC__) || defined (__clang__))
> > +-char const versionStrComment[]
> > +-    __attribute__ ((__used__, __section__ ((".comment"))))
> > +-    = "log4cplus " LOG4CPLUS_VERSION_STR LOG4CPLUS_VERSION_STR_SUFFIX;
> > +-#endif
> > +-
> > +-
> > +-} // namespace
> > +-
> > + } // namespace log4cplus
> > +--
> > +2.22.0
> > +
> > diff --git a/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.4.bb b/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.4.bb
> > index d86521aba3..b396cabf3f 100644
> > --- a/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.4.bb
> > +++ b/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.4.bb
> > @@ -6,7 +6,9 @@ BUGTRACKER = "http://sourceforge.net/p/log4cplus/bugs/"
> >   LICENSE = "Apache-2.0 & BSD-2-Clause"
> >   LIC_FILES_CHKSUM = "file://LICENSE;md5=41e8e060c26822886b592ab4765c756b"
> >
> > -SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz"
> > +SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz \
> > +           file://0001-Remove-log4cplus-version-entry-from-ELF-.comment-sec.patch \
> > +          "
> >   SRC_URI[md5sum] = "2b5b7bc294698bf30a315a259ef9eec2"
> >   SRC_URI[sha256sum] = "196eedbc7f2dd792dae721b1159c7ac132255bb368226353c24d4d5fa7c7797a"
> >
> > @@ -16,3 +18,5 @@ UPSTREAM_CHECK_REGEX = "log4cplus-stable/(?P<pver>\d+(\.\d+)+)/"
> >   inherit autotools pkgconfig
> >
> >   BBCLASSEXTEND = "native"
> > +
> > +CXXFLAGS += "-fuse-ld=gold"
>
> The logic [CXXFLAGS += "-fuse-ld=gold"] you added is used to fix the
> linker crash on arm though I didn't encounter.

this was not needed infact. It was for testing only please send a
patch to remove
 CXXFLAGS += "-fuse-ld=gold"
>
> BTW, after you add [CXXFLAGS += "-fuse-ld=gold"], it fails the build for
> "bitbake libn32-log4cplus" with below logic in local.conf
> MACHINE ??= "qemumips64"
> MULTILIB_GLOBAL_VARIANTS_append = " libn32"
> MULTILIBS ?= "multilib:lib32 multilib:libn32"
> DEFAULTTUNE_virtclass-multilib-lib32 ?= "mips"
> DEFAULTTUNE_virtclass-multilib-libn32 ?= "mips64-n32"
> require conf/multilib.conf
>
> Thanks,
>
> >


More information about the Openembedded-devel mailing list