gnucash master: Multiple changes pushed

Sumit Bhardwaj bhardwajs at gmail.com
Mon Jul 7 10:03:55 EDT 2014


Hi John,

Sumit,
>
> I don't understand how you concluded that the AM_CXXFLAGS are being
> included when make builds gfec.c, nor do I understand why you think that
> it's using g++. The command make emitted when it failed was:
>
>  gcc -DHAVE_CONFIG_H -I. -I../.. -Wno-error=deprecated-declarations
> -I../../lib/libc -I../../src -I../../src -I../../src/gnc-module
> -I../../src/app-utils/calculation -I../../src/core-utils -I../../src/engine
> -I../../src/libqof/qof -I../../src/backend/xml -pthread
> -I/usr/include/guile/2.0 -pthread -I/usr/include/glib-2.0
> -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gtk-2.0
> -I/usr/lib64/gtk-2.0/include -I/usr/include/pango-1.0
> -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1
> -I/usr/include/libdrm -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
> -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz
> -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
> -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2
> -I/usr/include/libxml2 -I/usr/include/libxml2
> -DG_LOG_DOMAIN=\"gnc.app-utils\" -Werror -Wdeclaration-after-statement
> -Wno-pointer-sign -D_FORTIFY_SOURCE=2 -Wall -Wunused -Wmissing-prototypes
> -Wmissing-declarations -Wno-non-literal-null-conversion -Wno-unused -g -O2
> -MT gfec.lo -MD -MP -MF .deps/gfec.Tpo -c gfec.c  -fPIC -DPIC -o
> .libs/gfec.o
>
>
> Clearly showing that it's calling gcc and clearly not including
> -Wno-deprecated-register.


Apologies for not being clear. This compile shouldn't cause problem if the
compiler was gcc. My test

> gcc   -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations
>> -Wno-non-literal-null-
>> conversion -Wno-unused -g -O2 -Werror -D_FORTIFY_SOURCE=2 helloworld.c
>>
> worked without any problems, but the test with g++ threw the error saying
-Wno-non-literal-null-conversion is not a valid option.

What does the no-non-literal-null-conversion section of config.log look
> like with the modified AX_CHECK_COMPILE_FLAG?
>
Here you go:

> configure:25427: g++ -c -g -O2 -std=gnu++11 -Werror
> -Wno-deprecated-register  conftest.cpp >&5
> configure:25427: $? = 0
> configure:25435: result: yes
> configure:25449: checking whether C compiler accepts
> -Wno-non-literal-null-conversion
> configure:25468: gcc -c -g -O2 -Werror -Wno-non-literal-null-conversion
> conftest.c >&5
> configure:25468: $? = 0
> configure:25476: result: yes
> configure:25484: checking what extra warning flags to pass to the C
> compiler
> configure:25547: gcc -c  -Wall -Wunused -Wmissing-prototypes
> -Wmissing-declarations  -Wno-non-literal-null-conversion -Wno-unused -g -O2
> -Werror -D_FORTIFY_SOURCE=2  conftest.c >&5
> configure:25547: $? = 0
> configure:25560: result:  -Werror -Wdeclaration-after-statement
> -Wno-pointer-sign -D_FORTIFY_SOURCE=2
>

Regards,
> John Ralls
>

Thanks,
Sumit


On Sun, Jul 6, 2014 at 11:25 PM, John Ralls <jralls at ceridwen.us> wrote:

>
> On Jul 7, 2014, at 2:07 AM, Sumit Bhardwaj <bhardwajs at gmail.com> wrote:
>
> Just a quick update so everyone is on the same page: problem is not with
> macro (autogen.sh) or configure. It seems the call for gfec.c mixes CFLAGS
> and CXXFLAGS and then cc1plus or cc1 throws error. Diagnosis below.
>
> I did have to make changes in macros/m4_ax_check_compile_flag.m4. I pushed
> those changes to my github as well.
>
> Next step will be to see how make is using/setting the flags. I will try
> to look at that later. Do let me know if I am going on wrong track. Any
> help in expediting appreciated.
>
>
> Thanks,
> Sumit
>
> Here is my attempt at getting to the bottom of the problem:
> g++   -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations
> -Wno-non-literal-null-conversion -Wno-unused -g -O2 -Werror
> -D_FORTIFY_SOURCE=2 helloworld.c
> throws error while
> gcc   -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations
> -Wno-non-literal-null-conversion -Wno-unused -g -O2 -Werror
> -D_FORTIFY_SOURCE=2 helloworld.c
> works correctly. Having helloworld.cpp for g++ doesn't change anything.
>
> Moreover, CFLAGS and CXXFLAGS are set correctly.
> AM_CFLAGS =  -Werror -Wdeclaration-after-statement -Wno-pointer-sign
> -D_FORTIFY_SOURCE=2  -Wall -Wunused -Wmissing-prototypes
> -Wmissing-declarations  -Wno-non-literal-null-conversion -Wno-unused
> AM_CXXFLAGS =  -Werror  -Wall -Wno-unused -Wno-deprecated-register
>
>
> Sumit,
>
> I don't understand how you concluded that the AM_CXXFLAGS are being
> included when make builds gfec.c, nor do I understand why you think that
> it's using g++. The command make emitted when it failed was:
>
>  gcc -DHAVE_CONFIG_H -I. -I../.. -Wno-error=deprecated-declarations
> -I../../lib/libc -I../../src -I../../src -I../../src/gnc-module
> -I../../src/app-utils/calculation -I../../src/core-utils -I../../src/engine
> -I../../src/libqof/qof -I../../src/backend/xml -pthread
> -I/usr/include/guile/2.0 -pthread -I/usr/include/glib-2.0
> -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gtk-2.0
> -I/usr/lib64/gtk-2.0/include -I/usr/include/pango-1.0
> -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1
> -I/usr/include/libdrm -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
> -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz
> -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
> -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2
> -I/usr/include/libxml2 -I/usr/include/libxml2
> -DG_LOG_DOMAIN=\"gnc.app-utils\" -Werror -Wdeclaration-after-statement
> -Wno-pointer-sign -D_FORTIFY_SOURCE=2 -Wall -Wunused -Wmissing-prototypes
> -Wmissing-declarations -Wno-non-literal-null-conversion -Wno-unused -g -O2
> -MT gfec.lo -MD -MP -MF .deps/gfec.Tpo -c gfec.c  -fPIC -DPIC -o
> .libs/gfec.o
>
>
> Clearly showing that it's calling gcc and clearly not including
> -Wno-deprecated-register.
>
> What does the no-non-literal-null-conversion section of config.log look
> like with the modified AX_CHECK_COMPILE_FLAG?
>
> Regards,
> John Ralls
>
>
>
>
> On Sun, Jul 6, 2014 at 10:09 AM, John Ralls <jralls at ceridwen.us> wrote:
>
>>
>> On Jul 6, 2014, at 6:38 PM, Sumit Bhardwaj <bhardwajs at gmail.com> wrote:
>>
>> Hi John,
>>
>> That works - to an extent. gcc fails and the current configuration is:
>>  -Werror -Wdeclaration-after-statement -Wno-pointer-sign
>> -D_FORTIFY_SOURCE=2
>>
>> Configure doesn't fail, but that the flags are far fewer than earlier. Is
>> this, what we want to go ahead with?
>>
>> If anyone wants to look at the changes in
>> macros/m4_ax_check_compile_flag.m4 and configure.ac, I have pushed the
>> changes to master  repo on my github (
>> https://github.com/bhardwajs/gnucash).
>>
>> Cheers,
>> Sumit
>>
>> P.S. - Apologies for a two-month hiatus. Work drained a lot of time and
>> energy. Should be better now. :)
>>
>>
>> Real life does have a nasty habit of intruding.... ;-)
>>
>> Anyway, what do you mean by "works to an extent"? What we want is for
>> that test to fail in configure and for the rest of GC to compile correctly.
>> If my hack to AX_CHECK_COMPILE_FLAG does that, excellent, I'll push it. If
>> not, please post details so I can figure out the next thing to try -- or
>> figure out a fix yourself and make a patch for one of us to push on your
>> behalf. We can work with a github pull request if that's more convenient
>> for you than a BZ.
>>
>> Regards,
>> John Ralls
>>
>>
>
>


More information about the gnucash-devel mailing list