Forum: Ruby-core [ruby-trunk - Bug #6360][Assigned] Debug information build even without requesting it

Posted by Luis Lavena (luislavena)
on 2012-04-26 01:47
(Received via mailing list)
Issue #6360 has been reported by luislavena (Luis Lavena).

----------------------------------------
Bug #6360: Debug information build even without requesting it
https://bugs.ruby-lang.org/issues/6360

Author: luislavena (Luis Lavena)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: 1.9.3
ruby -v: 2.0.0 i386-mingw32 r35473


Hello,

While working on latest RubyInstaller release for 1.9.3-p194 our team 
detected a bigger shared library and import library being generated.

After further inspection, we found this commit:
https://github.com/ruby/ruby/commit/ffdaca1d748804...

Backported r34840 into ruby_1_9_3 branch

The above change added -ggdb to CFLAGS even when was not provided by 
debugflags configure option.

The following is the comparison of "make" summary with and without the 
change:

Current trunk:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared
        CFLAGS = -O3 -fno-omit-frame-pointer -ggdb -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Reverting r34840:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared -s
        CFLAGS = -O3 -fno-omit-frame-pointer -g -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Notice that -g changed into -ggdb instead.

I think debug symbols shouldn't be compiled unless requested and this is 
a regression.
Posted by Luis Lavena (luislavena)
on 2012-08-04 17:23
(Received via mailing list)
Issue #6360 has been updated by luislavena (Luis Lavena).

Target version changed from 1.9.3 to 2.0.0

=begin
Hello,

Friendly reminder than this still happens in trunk and ruby_1_9_3:

http://ci.rubyinstaller.org/job/ruby-trunk-x86/94/console

    CC = mingw32-gcc
    LD = ld
    LDSHARED = mingw32-gcc -shared
    CFLAGS = -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall 
-Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
    XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
    CPPFLAGS = -D_WIN32_WINNT=0x0501   -I. -I.ext/include/i386-mingw32 
-I../include -I..
    DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
    SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp

And Ruby 1.9.3:

     CC = mingw32-gcc
     LD = ld
     LDSHARED = mingw32-gcc -shared
     CFLAGS = -O3 -fno-omit-frame-pointer -ggdb -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
     XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-fvisibility=hidden -DRUBY_EXPORT
     CPPFLAGS =   -I. -I.ext/include/i386-mingw32 -I../include -I..
     DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby191.dll.a msvcrt-ruby191.def
     SOLIBS = msvcrt-ruby191.res.o -lshell32 -lws2_32 -limagehlp

Thank you.

=end
----------------------------------------
Bug #6360: Debug information build even without requesting it
https://bugs.ruby-lang.org/issues/6360#change-28647

Author: luislavena (Luis Lavena)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: 2.0.0
ruby -v: 2.0.0 i386-mingw32 r35473


Hello,

While working on latest RubyInstaller release for 1.9.3-p194 our team 
detected a bigger shared library and import library being generated.

After further inspection, we found this commit:
https://github.com/ruby/ruby/commit/ffdaca1d748804...

Backported r34840 into ruby_1_9_3 branch

The above change added -ggdb to CFLAGS even when was not provided by 
debugflags configure option.

The following is the comparison of "make" summary with and without the 
change:

Current trunk:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared
        CFLAGS = -O3 -fno-omit-frame-pointer -ggdb -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Reverting r34840:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared -s
        CFLAGS = -O3 -fno-omit-frame-pointer -g -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Notice that -g changed into -ggdb instead.

I think debug symbols shouldn't be compiled unless requested and this is 
a regression.
Posted by mame (Yusuke Endoh) (Guest)
on 2013-02-18 13:43
(Received via mailing list)
Issue #6360 has been updated by mame (Yusuke Endoh).

Target version changed from 2.0.0 to 2.1.0

Sorry, but postponing it to 2.1.0.
I believe that Luis can work around the issue,

--
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
Bug #6360: Debug information build even without requesting it
https://bugs.ruby-lang.org/issues/6360#change-36519

Author: luislavena (Luis Lavena)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: 2.1.0
ruby -v: 2.0.0 i386-mingw32 r35473


Hello,

While working on latest RubyInstaller release for 1.9.3-p194 our team 
detected a bigger shared library and import library being generated.

After further inspection, we found this commit:
https://github.com/ruby/ruby/commit/ffdaca1d748804...

Backported r34840 into ruby_1_9_3 branch

The above change added -ggdb to CFLAGS even when was not provided by 
debugflags configure option.

The following is the comparison of "make" summary with and without the 
change:

Current trunk:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared
        CFLAGS = -O3 -fno-omit-frame-pointer -ggdb -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Reverting r34840:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared -s
        CFLAGS = -O3 -fno-omit-frame-pointer -g -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Notice that -g changed into -ggdb instead.

I think debug symbols shouldn't be compiled unless requested and this is 
a regression.
Posted by Luis Lavena (luislavena)
on 2013-02-18 14:17
(Received via mailing list)
Issue #6360 has been updated by luislavena (Luis Lavena).


mame (Yusuke Endoh) wrote:
> Sorry, but postponing it to 2.1.0.
> I believe that Luis can work around the issue,
>

Sorry, but as I mentioned in this, the change to default compile debug 
symbols is a bug and a regression.

Revisions in 1.9.3 prior 194 didn't suffer this.

Ruby 2.0.0 release will suffer by this too due r34840

Debug symbols shouldn't be generated by default unless requested by the 
user compiling the package. This is the same as adding -Werror, 
shouldn't be done by default.

While I personally can work around this issue, not everybody is aware 
that Ruby's default compile behavior is include debug information.

Please review this decision.

Thank you.
----------------------------------------
Bug #6360: Debug information build even without requesting it
https://bugs.ruby-lang.org/issues/6360#change-36528

Author: luislavena (Luis Lavena)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: 2.1.0
ruby -v: 2.0.0 i386-mingw32 r35473


Hello,

While working on latest RubyInstaller release for 1.9.3-p194 our team 
detected a bigger shared library and import library being generated.

After further inspection, we found this commit:
https://github.com/ruby/ruby/commit/ffdaca1d748804...

Backported r34840 into ruby_1_9_3 branch

The above change added -ggdb to CFLAGS even when was not provided by 
debugflags configure option.

The following is the comparison of "make" summary with and without the 
change:

Current trunk:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared
        CFLAGS = -O3 -fno-omit-frame-pointer -ggdb -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Reverting r34840:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared -s
        CFLAGS = -O3 -fno-omit-frame-pointer -g -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Notice that -g changed into -ggdb instead.

I think debug symbols shouldn't be compiled unless requested and this is 
a regression.
Posted by mame (Yusuke Endoh) (Guest)
on 2013-02-18 14:23
(Received via mailing list)
Issue #6360 has been updated by mame (Yusuke Endoh).


Can you create a patch and get "ok" from nobu or any reliable person?

--
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
Bug #6360: Debug information build even without requesting it
https://bugs.ruby-lang.org/issues/6360#change-36529

Author: luislavena (Luis Lavena)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: 2.1.0
ruby -v: 2.0.0 i386-mingw32 r35473


Hello,

While working on latest RubyInstaller release for 1.9.3-p194 our team 
detected a bigger shared library and import library being generated.

After further inspection, we found this commit:
https://github.com/ruby/ruby/commit/ffdaca1d748804...

Backported r34840 into ruby_1_9_3 branch

The above change added -ggdb to CFLAGS even when was not provided by 
debugflags configure option.

The following is the comparison of "make" summary with and without the 
change:

Current trunk:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared
        CFLAGS = -O3 -fno-omit-frame-pointer -ggdb -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Reverting r34840:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared -s
        CFLAGS = -O3 -fno-omit-frame-pointer -g -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Notice that -g changed into -ggdb instead.

I think debug symbols shouldn't be compiled unless requested and this is 
a regression.
Posted by ko1 (Koichi Sasada) (Guest)
on 2013-02-18 15:28
(Received via mailing list)
Issue #6360 has been updated by ko1 (Koichi Sasada).

Target version changed from 2.1.0 to 2.0.0


----------------------------------------
Bug #6360: Debug information build even without requesting it
https://bugs.ruby-lang.org/issues/6360#change-36531

Author: luislavena (Luis Lavena)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: 2.0.0
ruby -v: 2.0.0 i386-mingw32 r35473


Hello,

While working on latest RubyInstaller release for 1.9.3-p194 our team 
detected a bigger shared library and import library being generated.

After further inspection, we found this commit:
https://github.com/ruby/ruby/commit/ffdaca1d748804...

Backported r34840 into ruby_1_9_3 branch

The above change added -ggdb to CFLAGS even when was not provided by 
debugflags configure option.

The following is the comparison of "make" summary with and without the 
change:

Current trunk:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared
        CFLAGS = -O3 -fno-omit-frame-pointer -ggdb -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Reverting r34840:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared -s
        CFLAGS = -O3 -fno-omit-frame-pointer -g -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Notice that -g changed into -ggdb instead.

I think debug symbols shouldn't be compiled unless requested and this is 
a regression.
Posted by mame (Yusuke Endoh) (Guest)
on 2013-02-18 15:40
(Received via mailing list)
Issue #6360 has been updated by mame (Yusuke Endoh).


I don't think that this is a showstopper; it actually works.
But if trunk can be fixed soon by an assured patch, I'm not against 
backporting it.

--
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
Bug #6360: Debug information build even without requesting it
https://bugs.ruby-lang.org/issues/6360#change-36532

Author: luislavena (Luis Lavena)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: 2.0.0
ruby -v: 2.0.0 i386-mingw32 r35473


Hello,

While working on latest RubyInstaller release for 1.9.3-p194 our team 
detected a bigger shared library and import library being generated.

After further inspection, we found this commit:
https://github.com/ruby/ruby/commit/ffdaca1d748804...

Backported r34840 into ruby_1_9_3 branch

The above change added -ggdb to CFLAGS even when was not provided by 
debugflags configure option.

The following is the comparison of "make" summary with and without the 
change:

Current trunk:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared
        CFLAGS = -O3 -fno-omit-frame-pointer -ggdb -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Reverting r34840:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared -s
        CFLAGS = -O3 -fno-omit-frame-pointer -g -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Notice that -g changed into -ggdb instead.

I think debug symbols shouldn't be compiled unless requested and this is 
a regression.
Posted by mame (Yusuke Endoh) (Guest)
on 2013-02-20 08:28
(Received via mailing list)
Issue #6360 has been updated by mame (Yusuke Endoh).

Target version changed from 2.0.0 to next minor


----------------------------------------
Bug #6360: Debug information build even without requesting it
https://bugs.ruby-lang.org/issues/6360#change-36662

Author: luislavena (Luis Lavena)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: next minor
ruby -v: 2.0.0 i386-mingw32 r35473


Hello,

While working on latest RubyInstaller release for 1.9.3-p194 our team 
detected a bigger shared library and import library being generated.

After further inspection, we found this commit:
https://github.com/ruby/ruby/commit/ffdaca1d748804...

Backported r34840 into ruby_1_9_3 branch

The above change added -ggdb to CFLAGS even when was not provided by 
debugflags configure option.

The following is the comparison of "make" summary with and without the 
change:

Current trunk:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared
        CFLAGS = -O3 -fno-omit-frame-pointer -ggdb -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Reverting r34840:

<pre>
C:\Users\Luis\Projects\oss\ruby\build32>make
        CC = gcc
        LD = ld
        LDSHARED = gcc -shared -s
        CFLAGS = -O3 -fno-omit-frame-pointer -g -Wall -Wextra 
-Wno-unused-parameter -Wno-parentheses -Wno-long-long 
-Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith 
-Werror=write-strings -Werror=declaration-after-statement 
-Werror=implicit-function-declaration
        XCFLAGS = -include ruby/config.h -include ruby/missing.h 
-D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden 
-DRUBY_EXPORT
        CPPFLAGS = -DFD_SETSIZE=32767 -D_WIN32_WINNT=0x0501   -I. 
-I.ext/include/i386-mingw32 -I../include -I..
        DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import 
-Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def 
-Wl,--stack,0x00200000,--enable-auto-import
        SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp
</pre>

Notice that -g changed into -ggdb instead.

I think debug symbols shouldn't be compiled unless requested and this is 
a regression.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.