b31 multiple build failures on x86 Linux

David Holmes - Sun Microsystems David.Holmes at Sun.COM
Wed Jul 23 23:58:57 UTC 2008


Sorry - you're right Kelly. On Solaris fastdebug.make has been using 
DEBUG_CFLAGS since 2000, but on linux it has never had it!

That said perhaps the "fast" in "fastdebug" was actually intended to 
address this ie perhaps the linux makefile is "correct" ? I've never 
really understood the detailed difference between a debug and fastdebug 
build.

Cheers,
David Holmes

Kelly O'Hair said the following on 07/24/08 01:03:
> Looking at fastdebug build log files, no -g or -gstabs is provided on
> any linux builds as far as I can see.
> 
> I suspect that hotspot/make/linux/makefiles/fastdebug.make is missing
> the addition of this DEBUG_CFLAGS variable to CFLAGS like the jvmg.make
> and debug.make files. Adding it to CFLAGS adds it to all compile lines.
> 
> The gcc.make file does not add the DEBUG_CFLAGS to CFLAGS.
> 
> -kto
> 
> David Holmes - Sun Microsystems wrote:
>> Kelly O'Hair said the following on 07/23/08 05:17:
>>> Jeffrey Baker wrote:
>>>> Third problem: fastdebug_build target doesn't seem to propagate the -g
>>>> flag.  All of hotspot was built with -fPIC -fno-rtti -fno-exceptions
>>>> -fcheck-new -m32 -march=i586 -pipe -O3 -fno-strict-aliasing
>>>> -Wpointer-arith -Wconversion -Wsign-compare, i.e. without -g.  I
>>>> thought the point of the fastdebug target was to build with -g -O.
>>>
>>> Yes, it should have. That's a new one on me.
>>> I see that the debug build seems to use -gstabs, but it looks
>>> like linux/makefiles/fastdebug.make forgot to add -gstabs to CFLAGS.
>>> It's possible that they removed it with 64bit mode because of the
>>> size problems with Dwarf2 debug format, and accidently removed it for
>>> 32bit too. :^(   Sounds like a bug to me.
>>
>> The debug flags are handled in gcc.make:
>>
>> hypert /scratch/mirrors/ws-mirrors/java7/open/hotspot/make > tail -15 
>> linux/makefiles/gcc.make
>> #------------------------------------------------------------------------
>> # Debug flags
>>
>> # Use the stabs format for debugging information (this is the default
>> # on gcc-2.91). It's good enough, has all the information about line
>> # numbers and local variables, and libjvm_g.so is only about 16M.
>> # Change this back to "-g" if you want the most expressive format.
>> # (warning: that could easily inflate libjvm_g.so to 150M!)
>> # Note: The Itanium gcc compiler crashes when using -gstabs.
>> DEBUG_CFLAGS/ia64  = -g
>> DEBUG_CFLAGS/amd64 = -g
>> DEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH))
>> ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),)
>> DEBUG_CFLAGS += -gstabs
>> endif
>>
>> See also bug 6485088
>>
>> Cheers,
>> David Holmes



More information about the build-dev mailing list