[oe] [meta-java][PATCH 1/2] openjdk-8: remove debuglink
Wenlin Kang
wenlin.kang at windriver.com
Tue Jun 12 12:02:16 UTC 2018
On 2018年06月12日 19:35, Wenlin Kang wrote:
> On 2018年06月12日 19:09, Richard Leitner wrote:
>> Hi Wenlin,
>>
>> On 06/07/2018 11:24 AM, Wenlin Kang wrote:
>>> We need remove previous debuglink before add it if it has existed,
>>> because it may have a different file name with this that we will add.
>> I'm sorry but I don't get the reason why we need this...
>> It would be great if you may please explain it in a little more
>> detail for me ;-)
>
> Hi Richard
>
> In openjdk-8, its debug file is xxx.debuginfo, and when execute
> openjdk's makefile, it will add
> libjvm.debuginfo as libjvm.so's debuglink section's file name, this
> name is different with that
> we will add in splitdebuginfo() of package.bbclass, this makes we
> can't get symbol information
> when debug libjvm.so in gdb.
>
When a executable file or library file has contained the debuglink
section, it will not be changed when added again,
so we must remove it after add new one.
In OE-core, debug file name is the same with the executable file or
library file.
>>
>> Thank you very much!
>>
>>> Signed-off-by: Wenlin Kang <wenlin.kang at windriver.com>
>>> ---
>>> recipes-core/openjdk/openjdk-8-cross.inc | 16 ++++++++++++++++
>>> 1 file changed, 16 insertions(+)
>>>
>>> diff --git a/recipes-core/openjdk/openjdk-8-cross.inc
>>> b/recipes-core/openjdk/openjdk-8-cross.inc
>>> index 46f13fd..03cab11 100644
>>> --- a/recipes-core/openjdk/openjdk-8-cross.inc
>>> +++ b/recipes-core/openjdk/openjdk-8-cross.inc
>>> @@ -105,5 +105,21 @@ EXTRA_OEMAKE_append = '\
>>> images \
>>> '
>>> +python remove_debuglink() {
>>> + dvar = d.getVar('PKGD', True)
>>> + objcopy = d.getVar("OBJCOPY", True)
>>> +
>>> + # Remove the previous debuglink if it has existed, because it
>>> has a different file name with that we will add.
>>> + if d.getVar('PN', True).find("jre") != -1:
>>> + file = dvar + d.getVar("JRE_HOME", True) + "/lib/" +
>>> d.getVar("JDK_ARCH", True) + "/server/libjvm.so"
>>> + else:
>>> + file = dvar + d.getVar("JDK_HOME", True) + "/jre/lib/" +
>>> d.getVar("JDK_ARCH", True) + "/server/libjvm.so"
>>> +
>>> + cmd = "'%s' --remove-section .gnu_debuglink '%s'" % (objcopy,
>>> file)
>>> + oe.utils.getstatusoutput(cmd)
>>> +}
>>> +
>>> +PACKAGE_PREPROCESS_FUNCS += "remove_debuglink"
>>> +
>>> # There is a symlink to a .so but this one is valid.
>>> INSANE_SKIP_${PN} = "dev-so"
>>>
>> regards;Richard.L
>>
>
--
Thanks,
Wenlin Kang
More information about the Openembedded-devel
mailing list