Thread: Patch - Solving compilation problem for Sun studio compiler
Hi Dave I have a Sun Studio patch which solves the -Wall problem during the compilation. I am not sure whether this is the right way of making the changes. Please comment on this so that I will make necessary changes and re-submit. PS: I will also discuss with Zdenek, who is on vacation. *** configure.ac.orig Thu Jan 4 10:07:55 2007 --- configure.ac Thu Jan 4 10:15:07 2007 *************** *** 24,29 **** --- 24,34 ---- AC_TYPE_SIZE_T AC_HEADER_TIME + $CXX -V 2>test.txt + SUNCOMPILER=`awk '{if ( $2 == "Sun" ) { print "yes" } else {print "no"} }' test.txt` + rm -rf test.txt + AM_CONDITIONAL([SUN_COMPILER], [test x$SUNCOMPILER = xyes]) + # Checks for library functions. AC_FUNC_STRTOD AC_CHECK_FUNCS([gethostbyname inet_ntoa memmove memset strchr]) *** src/Makefile.am.orig Thu Jan 4 10:15:49 2007 --- src/Makefile.am Thu Jan 4 10:18:21 2007 *************** *** 40,51 **** include $(srcdir)/ui/module.mk include $(srcdir)/utils/module.mk if !APPBUNDLE nobase_dist_pkgdata_DATA = $(TMP_ui) ! AM_CXXFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -Wno-non-virtual-dtor -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include-I$(top_srcdir)/src/slony/include ! AM_CPPFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -Wno-non-virtual-dtor -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include-I$(top_srcdir)/src/slony/include ! AM_CFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include # Automake trys to execute install-exec-hook if it appears anywhere in the file, so we need a dummy # for non-APPBUNDLE cases. --- 40,59 ---- include $(srcdir)/ui/module.mk include $(srcdir)/utils/module.mk + if !SUN_COMPILER + COMPILE_OPTION1=-Wall + COMPILE_OPTION2=-Wno-non-virtual-dtor + else + COMPILE_OPTION1="" + COMPILE_OPTION2="" + endif + if !APPBUNDLE nobase_dist_pkgdata_DATA = $(TMP_ui) ! AM_CXXFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(COMPILE_OPTION1) $(COMPILE_OPTION2) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include-I$(top_srcdir)/src/slony/include ! AM_CPPFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(COMPILE_OPTION1) $(COMPILE_OPTION2) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include-I$(top_srcdir)/src/slony/include ! AM_CFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(COMPILE_OPTION1) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include-I$(top_srcdir)/src/slony/include # Automake trys to execute install-exec-hook if it appears anywhere in the file, so we need a dummy # for non-APPBUNDLE cases. *************** *** 54,62 **** else nobase_dist_data_DATA = $(TMP_ui) ! AM_CXXFLAGS = -Wall -Wno-non-virtual-dtor -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include ! AM_CPPFLAGS = -Wall -Wno-non-virtual-dtor -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include ! AM_CFLAGS = -Wall -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include install-exec-hook: cd $(bindir) ;\ --- 62,70 ---- else nobase_dist_data_DATA = $(TMP_ui) ! AM_CXXFLAGS = $(COMPILE_OPTION1) $(COMPILE_OPTION2) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include ! AM_CPPFLAGS = $(COMPILE_OPTION1) $(COMPILE_OPTION2) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include ! AM_CFLAGS = $(COMPILE_OPTION1) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include install-exec-hook: cd $(bindir) ;\ *** xtra/pgagent/Makefile.am.orig Thu Jan 4 11:20:38 2007 --- xtra/pgagent/Makefile.am Thu Jan 4 11:19:52 2007 *************** *** 30,40 **** $(srcdir)/include/misc.h \ $(srcdir)/include/pgAgent.h if !APPBUNDLE ! AM_CXXFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -Wno-non-virtual-dtor -I$(srcdir)/include ! AM_CPPFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -Wno-non-virtual-dtor -I$(srcdir)/include ! AM_CFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -I$(srcdir)/include install-data-local: $(install_sh) -c -m 644 pgagent.sql $(DESTDIR)/$(pkgdatadir)/pgagent.sql --- 30,48 ---- $(srcdir)/include/misc.h \ $(srcdir)/include/pgAgent.h + if !SUN_COMPILER + COMPILE_OPTION1=-Wall + COMPILE_OPTION2=-Wno-non-virtual-dtor + else + COMPILE_OPTION1="" + COMPILE_OPTION2="" + endif + if !APPBUNDLE ! AM_CXXFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(COMPILE_OPTION1) $(COMPILE_OPTION2) -I$(srcdir)/include ! AM_CPPFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(COMPILE_OPTION1) $(COMPILE_OPTION2) -I$(srcdir)/include ! AM_CFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(COMPILE_OPTION1) -I$(srcdir)/include install-data-local: $(install_sh) -c -m 644 pgagent.sql $(DESTDIR)/$(pkgdatadir)/pgagent.sql
Dhanaraj M wrote: > Hi Dave > > I have a Sun Studio patch which solves the -Wall problem during the > compilation. > I am not sure whether this is the right way of making the changes. > Please comment on this so that I will make necessary changes and re-submit. > > PS: I will also discuss with Zdenek, who is on vacation. Hi Dhanaraj The patch looks OK in theory (I haven't actually tested it yet), though I would prefer to see the compiler test as a macro in acinclude.m4 Thanks, Dave.
>>I have a Sun Studio patch which solves the -Wall problem during the >>compilation. >>I am not sure whether this is the right way of making the changes. >>Please comment on this so that I will make necessary changes and re-submit. >> >> >The patch looks OK in theory (I haven't actually tested it yet), though >I would prefer to see the compiler test as a macro in acinclude.m4 > > Hi Dave, As suggested, I have made some changed. I discussed with Zdenek also. I have a new patch now. I tested on Solaris- gcc and sun studio compilers. This works correctly. Please test this patch. Thanks Dhanaraj *** pgadmin3-1.6.2/acinclude.m4 Sun Jan 7 15:15:44 2007 --- pgadmin3-1.6.2.new/acinclude.m4 Wed Jan 10 17:43:16 2007 *************** *** 20,25 **** --- 20,47 ---- fi ]) + ################################# + # Check this is SUN compiler # + ################################# + + AC_DEFUN([CHECK_SUN_COMPILER], + [ + $CC -V 2>test.txt + SUN_STR=`head -1 test.txt |cut -f2 -d" "` + rm -rf test.txt + if test "$SUN_STR" = "Sun"; then + SUN_CC_COMPILER=yes + fi + + $CXX -V 2>test.txt + SUN_STR=`head -1 test.txt |cut -f2 -d" "` + rm -rf test.txt + if test "$SUN_STR" = "Sun"; then + SUN_CXX_COMPILER=yes + fi + + ]) + ############################# # Override wxWidgets version # ############################# *** pgadmin3-1.6.2/configure.ac Sun Jan 7 15:15:53 2007 --- pgadmin3-1.6.2.new/configure.ac Wed Jan 10 12:35:57 2007 *************** *** 13,18 **** --- 13,21 ---- AC_PROG_CC AC_PROG_CXX CHECK_CPP_COMPILER + CHECK_SUN_COMPILER + AM_CONDITIONAL([SUN_CC], [test x$SUN_CC_COMPILER = xyes]) + AM_CONDITIONAL([SUN_CXX], [test x$SUN_CXX_COMPILER = xyes]) # Checks for header files. AC_HEADER_STDC *** pgadmin3-1.6.2/src/Makefile.am Sun Jan 7 15:15:38 2007 --- pgadmin3-1.6.2.new/src/Makefile.am Wed Jan 10 12:41:21 2007 *************** *** 40,51 **** include $(srcdir)/ui/module.mk include $(srcdir)/utils/module.mk if !APPBUNDLE nobase_dist_pkgdata_DATA = $(TMP_ui) ! AM_CXXFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -Wno-non-virtual-dtor -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include-I$(top_srcdir)/src/slony/include ! AM_CPPFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -Wno-non-virtual-dtor -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include-I$(top_srcdir)/src/slony/include ! AM_CFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include # Automake trys to execute install-exec-hook if it appears anywhere in the file, so we need a dummy # for non-APPBUNDLE cases. --- 40,63 ---- include $(srcdir)/ui/module.mk include $(srcdir)/utils/module.mk + if !SUN_CC + __CFLAGS=-Wall + else + __CFLAGS="" + endif + + if !SUN_CXX + __CXXFLAGS=-Wall -Wno-non-virtual-dtor + else + __CXXFLAGS="" + endif + if !APPBUNDLE nobase_dist_pkgdata_DATA = $(TMP_ui) ! AM_CXXFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(__CXXFLAGS) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include-I$(top_srcdir)/src/slony/include ! AM_CPPFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(__CXXFLAGS) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include-I$(top_srcdir)/src/slony/include ! AM_CFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(__CFLAGS) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include # Automake trys to execute install-exec-hook if it appears anywhere in the file, so we need a dummy # for non-APPBUNDLE cases. *************** *** 54,62 **** else nobase_dist_data_DATA = $(TMP_ui) ! AM_CXXFLAGS = -Wall -Wno-non-virtual-dtor -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include ! AM_CPPFLAGS = -Wall -Wno-non-virtual-dtor -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include ! AM_CFLAGS = -Wall -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include install-exec-hook: cd $(bindir) ;\ --- 66,74 ---- else nobase_dist_data_DATA = $(TMP_ui) ! AM_CXXFLAGS = $(__CXXFLAGS) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include ! AM_CPPFLAGS = $(__CXXFLAGS) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include ! AM_CFLAGS = $(__CFLAGS) -I$(top_srcdir)/src/include -I$(top_srcdir)/src/agent/include -I$(top_srcdir)/src/slony/include install-exec-hook: cd $(bindir) ;\ *** pgadmin3-1.6.2/xtra/pgagent/Makefile.am Sun Jan 7 15:15:44 2007 --- pgadmin3-1.6.2.new/xtra/pgagent/Makefile.am Sat Jan 13 11:38:40 2007 *************** *** 30,40 **** $(srcdir)/include/misc.h \ $(srcdir)/include/pgAgent.h if !APPBUNDLE ! AM_CXXFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -Wno-non-virtual-dtor -I$(srcdir)/include ! AM_CPPFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -Wno-non-virtual-dtor -I$(srcdir)/include ! AM_CFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" -Wall -I$(srcdir)/include install-data-local: $(install_sh) -c -m 644 pgagent.sql $(DESTDIR)/$(pkgdatadir)/pgagent.sql --- 30,52 ---- $(srcdir)/include/misc.h \ $(srcdir)/include/pgAgent.h + if !SUN_CC + __CFLAGS=-Wall + else + __CFLAGS="" + endif + + if !SUN_CXX + __CXXFLAGS=-Wall -Wno-non-virtual-dtor + else + __CXXFLAGS="" + endif + if !APPBUNDLE ! AM_CXXFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(__CXXFLAGS) -I$(srcdir)/include ! AM_CPPFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(__CXXFLAGS) -I$(srcdir)/include ! AM_CFLAGS = -DDATA_DIR=\"$(pkgdatadir)/\" $(__CFLAGS) -I$(srcdir)/include install-data-local: $(install_sh) -c -m 644 pgagent.sql $(DESTDIR)/$(pkgdatadir)/pgagent.sql
On Sat, 13 Jan 2007, Dhanaraj M wrote: >> The patch looks OK in theory (I haven't actually tested it yet), though >> I would prefer to see the compiler test as a macro in acinclude.m4 >> The assembly of CXXFLAGS seems backwards. Instead of making g++ specific flags the default and requiring a special case for each compiler that doesn't support them, it should only add them if being compiled with g++. Kris Jurka