On 1/03/2014 1:38 AM, Yasumasa Suenaga wrote: >> 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.
There are three pieces to all of this: 1. Generating debug symbols in the binaries (via gcc -g or whatever) 2. Generating debuginfo files (zipped or not) (FDS) 3. Stripping debug symbols from the binaries (strip-policy) It may be that we don't have clean separation between them, and if so that should be fixed, but I don't see the current proposal as the way forward. Also there may well be differences between how things are handled on the JDK side and hotspot side. I will try to look closer if I get a chance but my time is limited at the moment. David > > 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" . >>>> >> >