All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Liu <net147@gmail.com>
To: Dan McGregor <danismostlikely@gmail.com>
Cc: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 2/5] gcc-runtime: enable asan and tsan
Date: Fri, 05 Sep 2014 01:37:39 +1000	[thread overview]
Message-ID: <54088743.1010604@gmail.com> (raw)
In-Reply-To: <CACS+7ZQYOB6-nwmQ=dyHbj4Bg29Ce_iAuMtUBTZGkfDc8GfW+A@mail.gmail.com>

On 5/09/2014 1:28 AM, Dan McGregor wrote:
> On 4 September 2014 08:33, Jonathan Liu <net147@gmail.com> wrote:
>> On 30/08/2014 7:15 AM, Dan McGregor wrote:
>>> From: Dan McGregor <dan.mcgregor@usask.ca>
>>>
>>> ASan and TSan are useful debugging tools, enable them on the
>>> target and add the packages to packagegroup-core-sdk.
>>>
>>> Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
>>> ---
>>>    .../recipes-core/packagegroups/packagegroup-core-sdk.bb |  4 +++-
>>>    meta/recipes-devtools/gcc/gcc-runtime.inc               | 17
>>> +++++++++++++++++
>>>    2 files changed, 20 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
>>> b/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
>>> index a544bbd..378336e 100644
>>> --- a/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
>>> +++ b/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
>>> @@ -28,7 +28,9 @@ RDEPENDS_packagegroup-core-sdk = "\
>>>
>>>    RRECOMMENDS_packagegroup-core-sdk = "\
>>>        libgomp \
>>> -    libgomp-dev"
>>> +    libgomp-dev \
>>> +    libsanitizer \
>>> +    libsanitizer-dev"
>>>
>>>    #python generate_sdk_pkgs () {
>>>    #    poky_pkgs = read_pkgdata('packagegroup-core', d)['PACKAGES']
>>> diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc
>>> b/meta/recipes-devtools/gcc/gcc-runtime.inc
>>> index 7ce84f1..109f8dd 100644
>>> --- a/meta/recipes-devtools/gcc/gcc-runtime.inc
>>> +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
>>> @@ -11,6 +11,8 @@ EXTRA_OECONF_PATHS = "\
>>>    EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
>>>
>>>    RUNTIMETARGET = "libssp libstdc++-v3 libgomp libatomic"
>>> +RUNTIMETARGET_append_arm = " libsanitizer"
>>> +RUNTIMETARGET_append_x86 = " libsanitizer"
>>>    #  ?
>>>    # libiberty
>>>    # libmudflap
>>> @@ -88,6 +90,9 @@ PACKAGES = "\
>>>        libatomic \
>>>        libatomic-dev \
>>>        libatomic-staticdev \
>>> +    libsanitizer \
>>> +    libsanitizer-dev \
>>> +    libsanitizer-staticdev \
>>>    "
>>>    # The base package doesn't exist, so we clear the recommends.
>>>    RRECOMMENDS_${PN}-dbg = ""
>>> @@ -171,6 +176,18 @@ FILES_libatomic-dev = "\
>>>    "
>>>    FILES_libatomic-staticdev = "${libdir}/libatomic.a"
>>>
>>> +FILES_libsanitizer = "${libdir}/libasan.so.* ${libdir}/libubsan.so.*"
>>> +FILES_libsanitizer-dev = " \
>>> +  ${libdir}/libsanitizer.spec \
>>> +  ${libdir}/libasan_preinit.o \
>>> +  ${libdir}/libasan.so \
>>> +  ${libdir}/libubsan.so \
>>> +  ${libdir}/libasan.la \
>>> +  ${libdir}/libubsan.la"
>>> +FILES_libsanitizer-staticdev = " \
>>> +  ${libdir}/libasan.a \
>>> +  ${libdir}/libubsan.a"
>>> +
>>>    do_package_write_ipk[depends] +=
>>> "virtual/${MLPREFIX}libc:do_packagedata"
>>>    do_package_write_deb[depends] +=
>>> "virtual/${MLPREFIX}libc:do_packagedata"
>>>    do_package_write_rpm[depends] +=
>>> "virtual/${MLPREFIX}libc:do_packagedata"
>> I get the following error during do_install for gcc-runtime on Arch Linux
>> x86_64 host when it is linking libasan:
>> /usr/lib/libpthread.a: error adding symbols: File format not recognized
>>
> What machine are you building for? Or is this the SDK that's failing?
> This error looks like it's trying to link against the host's pthread library.
>
> I tested this on Fedora 20 x86_64.
I am building for ARMv7 device. I tested your v3 "gcc-runtime: enable 
sanitizer" patch as well with the same result (bitbake gcc-runtime).
It is same issue as posted on opemembedded-devel some months ago: 
http://permalink.gmane.org/gmane.comp.handhelds.openembedded/63689
When running do_install for gcc-runtime, it relinks libasan and has 
-L/usr/lib in the command line when linking libasan.so because 
libasan.la contains:
libdir='/usr/lib'.

The log.do_install file indicates:
warning: library search path "/usr/lib" is unsafe for cross-compilation

On your host system, do you have /usr/lib/libpthread.a?
Does your log.do_install indicate the that libasan.so is linked with 
-L/usr/lib search path with "warning: library search path "/usr/lib" is 
unsafe for cross-compilation"?

Regards,
Jonathan


  reply	other threads:[~2014-09-04 15:37 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-29 21:15 [PATCH 2/5] gcc-runtime: enable asan and tsan Dan McGregor
2014-08-29 21:20 ` Dan McGregor
2014-09-04 14:33 ` Jonathan Liu
2014-09-04 15:28   ` Dan McGregor
2014-09-04 15:37     ` Jonathan Liu [this message]
2014-09-04 20:49       ` Dan McGregor

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=54088743.1010604@gmail.com \
    --to=net147@gmail.com \
    --cc=danismostlikely@gmail.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.