JDK-8036003: Add variable not to separate debug information.

Yasumasa Suenaga yasu at ysfactory.dip.jp
Fri Feb 28 07:38:24 PST 2014


> The proper way to fix this is to disable FDS.

Does this mean I have to pass --disable-debug-symbols to configure ?
I've added comment to JDK-8036003, I think if we pass --disable-debug-symbols
to configure, gcc/g++ is not passed -g option. "-g" is needed to generate
debuginfo.


Thanks,

Yasumasa


On 2014/02/28 23:04, Daniel D. Daugherty wrote:
> The proper way to fix this is to disable FDS. We should not need
> yet another option to control debug info.
> 
> Dan
> 
> 
> On 2/28/14 4:13 AM, David Holmes wrote:
>> Hi,
>>
>> As I put in the bug report this seems way too complicated. Seems to me
>> all you need to do to get what you want is not use FDS and not strip the
>> symbols from the binary. The former is trivial. The latter is more
>> awkward as the strip policy stuff does not work as I would want it to
>> work, but still doable.
>>
>> David
>>
>> On 28/02/2014 7:18 PM, Yasumasa Suenaga wrote:
>>> Hi all,
>>>
>>>
>>> Currently, configure script can accept --disable-debug-symbols and
>>> --disable-zip-debug-info as controlling to generate debug information.
>>> However, current makefiles cannot build ELF binaries which is contained
>>> debug information with "images" target.
>>>
>>> Some Linux distros use RPM as package manager.
>>> RPM is built by rpmbuild command, it strips symbols and debug information
>>> during to generate rpm packages.
>>> https://fedoraproject.org/wiki/Packaging:Debuginfo
>>>
>>> For example, OpenJDK8 in Fedora20 ships libjvm.so and libjvm.debuginfo .
>>> libjvm.debuginfo is generated in OpenJDK's makefiles, however it does not
>>> contain debug information. Actual debug information is shipped by OpenJDK
>>> debuginfo package.
>>> This packaging is important when we have to debug JVM/JNI libraries.
>>> If we want to use debugging tools (GDB, SystemTap, etc...), they may requires
>>> debuginfo package. Debuggee (e.g. libjvm.so) points libjvm.so.debug which is
>>> located at sub directory in /usr/lib/debug . It is defined in ELF section
>>> (.note.gnu.build-id) of libjvm.so . However libjvm.so.debug does not contain
>>> valid debug information. We need to access libjvm.debuginfo.debug at same location.
>>>
>>>
>>> When we think to build OpenJDK rpm packages, we have to build ELF binaries
>>> which contain all debug information. we should not to separate debug information.
>>>
>>>
>>> Thus I want to add a variable "SEPARATED_DEBUGINFO_FILES" .
>>> If we pass "SEPARATED_DEBUGINFO_FILES=false" to make command, "make" does not
>>> execute objcopy command for generating debuginfo binaries.
>>>
>>> If we build rpm packages, we also have to add "STRIP_POLICY=no_strip" to arguments
>>> of make command. Or ELF binaries will be stripped.
>>>
>>>
>>> I've uploaded webrev for this enhancement.
>>> This is separated 3-part: top of forest, hotspot, jdk
>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8036003/
>>>
>>> Please review it and sponsoring!
>>>
>>>
>>> Thanks,
>>>
>>> Yasumasa
>>>
>>>
>>> P.S.
>>>     I tried to add SEPARATED_DEBUGINFO_FILES as a configure option like
>>>     "--disable-separated-debug-info" .
>>>     I ran configure which is located at jdk9/dev directory after I ran autoconf
>>>     and common/autoconf/autogen.sh. However it failed.
>>>
>>>     I guess this is caused by changeset as below.
>>>        JDK-8035495: Improvements in autoconf integration
>>>        http://hg.openjdk.java.net/jdk9/dev/rev/6e29cd9ac2b4
>>>
>>>     This changes add "CHECKME" option to configure script. However, this changes
>>>     affects "configure" only. It should change "configure.ac" .
>>>
> 



More information about the hotspot-dev mailing list