Unfortunately no.
gcc 4.5 for Solaris and gcc 4.6 for OpenIndiana produce the same error.
 

-----Ursprüngliche Nachricht-----
Von: Andrew Beekhof [mailto:and...@beekhof.net] 
Gesendet: Freitag, 24. August 2012 03:38
An: The Pacemaker cluster resource manager
Betreff: Re: [Pacemaker] stdout reserved word

Hmm, I ran the same commands with 4.7 and it works fine here.
Is 4.7 available for solaris?  It would be useful to know if it was a version 
issue or an platform one.

On Fri, Aug 24, 2012 at 10:16 AM, Grüninger, Andreas (LGL Extern) 
<andreas.gruenin...@lgl.bwl.de> wrote:
>
> Making all in fencing
> gmake[2]: Entering directory `/export/builds/pacemaker-1.1.7/lib/fencing'
> /bin/sh ../../libtool --tag=CC   --tag=CC   --mode=compile gcc -std=gnu99 
> -DHAVE_CONFIG_H -I. -I../../include -I../../include  -I../../include 
> -I../../libltdl  -I../../libltdl -I../..          -I../..  
> -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I/usr/include/libxml2 
> -I../../include  -I../../include -I../../libltdl  -I../../libltdl -I../..     
>      -I../.. -D_GNU_SOURCE -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS 
> -DNAME_MAX=255 -DHOST_NAME_MAX=255 -I/usr/include  -I/usr/include/ncurses 
> -I/opt/ha/include  -lsocket -lnsl -I/opt/ha/include/heartbeat    
> -I/opt/ha/include   -I/opt/ha/include   -ggdb  -fgnu89-inline -Wall 
> -Waggregate-return -Wbad-function-cast -Wcast-align 
> -Wdeclaration-after-statement -Wendif-labels -Wfloat-equal -Wformat=2 
> -Wformat-security -Wformat-nonliteral -Wmissing-prototypes 
> -Wmissing-declarations -Wnested-externs -Wno-long-long -Wno-strict-aliasing 
> -Wpointer-arith -Wstrict-prototypes -Wwrite-strings -MT st_client.lo -MD -MP 
> -MF .deps/st_client.Tpo -c -o st_client.lo st_client.c
> libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../../include 
> -I../../include -I../../include -I../../libltdl -I../../libltdl -I../.. 
> -I../.. -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 
> -I/usr/include/libxml2 -I../../include -I../../include -I../../libltdl 
> -I../../libltdl -I../.. -I../.. -D_GNU_SOURCE -D__EXTENSIONS__ 
> -D_POSIX_PTHREAD_SEMANTICS -DNAME_MAX=255 -DHOST_NAME_MAX=255 -I/usr/include 
> -I/usr/include/ncurses -I/opt/ha/include -lsocket -lnsl 
> -I/opt/ha/include/heartbeat -I/opt/ha/include -I/opt/ha/include -ggdb 
> -fgnu89-inline -Wall -Waggregate-return -Wbad-function-cast -Wcast-align 
> -Wdeclaration-after-statement -Wendif-labels -Wfloat-equal -Wformat=2 
> -Wformat-security -Wformat-nonliteral -Wmissing-prototypes 
> -Wmissing-declarations -Wnested-externs -Wno-long-long -Wno-strict-aliasing 
> -Wpointer-arith -Wstrict-prototypes -Wwrite-strings -MT st_client.lo -MD -MP 
> -MF .deps/st_client.Tpo -c st_client.c  -fPIC -DPIC -o .libs/st_client.o In 
> file included from st_client.c:36:0:
> ../../include/crm/stonith-ng-internal.h:28:9: error: expected 
> identifier or '(' before '&' token
> ../../include/crm/stonith-ng-internal.h:29:5: error: expected ';' before 'int'
> st_client.c: In function 'run_stonith_agent':
> st_client.c:489:20: error: expected identifier before '(' token
> st_client.c:490:62: error: 'async_command_t' has no member named 'pt_ops'
> st_client.c:491:13: error: 'async_command_t' has no member named 'timeout'
> st_client.c:493:22: error: 'async_command_t' has no member named 'timeout'
> st_client.c:494:22: error: 'async_command_t' has no member named 'killseq'
> st_client.c:494:52: error: 'async_command_t' has no member named 'timeout'
> st_client.c:495:22: error: 'async_command_t' has no member named 'killseq'
> st_client.c:496:22: error: 'async_command_t' has no member named 'killseq'
> st_client.c:497:22: error: 'async_command_t' has no member named 'killseq'
> st_client.c:498:22: error: 'async_command_t' has no member named 'killseq'
> st_client.c:499:22: error: 'async_command_t' has no member named 'killseq'
> st_client.c:501:50: error: 'async_command_t' has no member named 'killseq'
> gmake[2]: *** [st_client.lo] Error 1
> gmake[2]: Leaving directory `/export/builds/pacemaker-1.1.7/lib/fencing'
> gmake[1]: *** [all-recursive] Error 1
> gmake[1]: Leaving directory `/export/builds/pacemaker-1.1.7/lib'
> gmake: *** [all-recursive] Error 1
>
>
> -----Ursprüngliche Nachricht-----
> Von: Andrew Beekhof [mailto:and...@beekhof.net]
> Gesendet: Freitag, 24. August 2012 02:07
> An: The Pacemaker cluster resource manager
> Betreff: Re: [Pacemaker] stdout reserved word
>
> A lot of information, but doesn't really answer the question.
> Can you recompile with 'make V=1' please - so we can see the full
> command not just  "CC       st_client.lo"?
>
> On Fri, Aug 24, 2012 at 7:05 AM, Grüninger, Andreas (LGL Extern) 
> <andreas.gruenin...@lgl.bwl.de> wrote:
>> See at http://grueni.github.com/libqb/.
>> I described there the complete build of the libqb/corosync/pacemaker build.
>>
>> Here are snippets of the outputs:
>>
>> conftest.c: In function 'main':
>> conftest.c:124:1: error: passing argument 1 of 'printw' discards 
>> qualifiers from pointer target type
>> /usr/include/curses.h:350:12: note: expected 'char *' but argument is of 
>> type 'const char *'
>> configure:16483: $? = 1
>> configure: failed program was:
>> | /* confdefs.h */
>> | #define PACKAGE_NAME "pacemaker"
>> | #define PACKAGE_TARNAME "pacemaker"
>> | #define PACKAGE_VERSION "1.1.7"
>> | #define PACKAGE_STRING "pacemaker 1.1.7"
>> | #define PACKAGE_BUGREPORT "pacemaker@oss.clusterlabs.org"
>> | #define PACKAGE_URL ""
>> | #define PACKAGE "pacemaker"
>> | #define VERSION "1.1.7"
>> | #define PACEMAKER_VERSION "1.1.7"
>> | #define STDC_HEADERS 1
>> | #define HAVE_SYS_TYPES_H 1
>> | #define HAVE_SYS_STAT_H 1
>> | #define HAVE_STDLIB_H 1
>> | #define HAVE_STRING_H 1
>> | #define HAVE_MEMORY_H 1
>> | #define HAVE_STRINGS_H 1
>> | #define HAVE_INTTYPES_H 1
>> | #define HAVE_STDINT_H 1
>> | #define HAVE_UNISTD_H 1
>> | #define HAVE_DLFCN_H 1
>> | #define LT_OBJDIR ".libs/"
>> | #define HAVE_STRINGIZE 1
>> | #define SIZEOF_CHAR 1
>> | #define SIZEOF_SHORT 2
>> | #define SIZEOF_INT 4
>> | #define SIZEOF_LONG 4
>> | #define SIZEOF_LONG_LONG 8
>> | #define HAVE_DECL_TZNAME 1
>> | #define HAVE_TZNAME 1
>> | #define U64T "%llu"
>> | #define VALGRIND_BIN "/usr/bin/valgrind"
>> | #define SUPPORT_STONITH_CONFIG 0
>> | #define HAVE_ALPHASORT 1
>> | #define HAVE_INET_PTON 1
>> | #define HAVE_SCANDIR 1
>> | #define HAVE_SETENV 1
>> | #define HAVE_STRERROR 1
>> | #define HAVE_STRCHRNUL 1
>> | #define HAVE_STRERROR 1
>> | #define HAVE_STRCHRNUL 1
>> | #define HAVE_UNSETENV 1
>> | #define HAVE_STRNLEN 1
>> | #define HAVE_STRNDUP 1
>> | #define HAVE_DAEMON 1
>> | #define HAVE_STRLCPY 1
>> | #define HAVE_STRLCAT 1
>> | #define HAVE_LIBSOCKET 1
>> | #define HAVE_LIBC 1
>> | #define HAVE_LIBDL 1
>> | #define HAVE_LIBRT 1
>> | #define HAVE_LIBPAM 1
>> | #define HAVE_LIBUUID 1
>> | #define HAVE_LIBGLIB_2_0 1
>> | #define USE_GHASH_COMPAT 0
>> | #define HAVE_LIBC 1
>> | #define STDC_HEADERS 1
>> | #define HAVE_ARPA_INET_H 1
>> | #define HAVE_ASSERT_H 1
>> | #define HAVE_AUTH_CLIENT_H 1
>> | #define HAVE_CTYPE_H 1
>> | #define HAVE_DIRENT_H 1
>> | #define HAVE_ERRNO_H 1
>> | #define HAVE_FCNTL_H 1
>> | #define HAVE_GETOPT_H 1
>> | #define HAVE_GLIB_H 1
>> | #define HAVE_GRP_H 1
>> | #define HAVE_LIMITS_H 1
>> | #define HAVE_MALLOC_H 1
>> | #define HAVE_NETDB_H 1
>> | #define HAVE_NETINET_IN_H 1
>> | #define HAVE_PTHREAD_H 1
>> | #define HAVE_PWD_H 1
>> | #define HAVE_SECURITY_PAM_APPL_H 1
>> | #define HAVE_SGTTY_H 1
>> | #define HAVE_SIGNAL_H 1
>> | #define HAVE_STDARG_H 1
>> | #define HAVE_STDDEF_H 1
>> | #define HAVE_STDIO_H 1
>> | #define HAVE_STDLIB_H 1
>> | #define HAVE_STRING_H 1
>> | #define HAVE_STRINGS_H 1
>> | #define HAVE_SYS_IOCTL_H 1
>> | #define HAVE_SYS_PARAM_H 1
>> | #define HAVE_SYS_POLL_H 1
>> | #define HAVE_SYS_RESOURCE_H 1
>> | #define HAVE_SYS_SELECT_H 1
>> | #define HAVE_SYS_SOCKET_H 1
>> | #define HAVE_SYS_SOCKIO_H 1
>> | #define HAVE_SYS_STAT_H 1
>> | #define HAVE_SYS_TIME_H 1
>> | #define HAVE_SYS_TIMEB_H 1
>> | #define HAVE_SYS_TYPES_H 1
>> | #define HAVE_SYS_UIO_H 1
>> | #define HAVE_SYS_UN_H 1
>> | #define HAVE_SYS_UTSNAME_H 1
>> | #define HAVE_SYS_WAIT_H 1
>> | #define HAVE_TIME_H 1
>> | #define HAVE_UNISTD_H 1
>> | #define HAVE_TIME_H 1
>> | #define HAVE_UNISTD_H 1
>> | #define HAVE_LIBXML2 1
>> | #define HAVE_LIBXSLT 1
>> | #define HAVE_LIBXML_XPATH_H 1
>> | #define HAVE_LIBXSLT_XSLT_H 1
>> | #define HAVE_LRM_OP_T_RSC_DELETED 1 #define 
>> | HAVE_G_LOG_SET_DEFAULT_HANDLER 1 #define HAVE_GETOPT 1 #define 
>> | HAVE_DECL_GETOPT 1 #define HAVE_NANOSLEEP 1 #define 
>> | HAVE_DECL_NANOSLEEP 1 #define HAVE_BZLIB_H 1 #define HAVE_LIBBZ2 1 
>> | #define HAVE_CURSES_H 1 #define HAVE_NCURSES_NCURSES_H 1 #define 
>> | HAVE_LIBNCURSES 1
>> | /* end confdefs.h.  */
>> |
>> | #if defined(HAVE_CURSES_H)
>> | #  include <curses.h>
>> | #elif defined(HAVE_NCURSES_H)
>> | #  include <ncurses.h>
>> | #endif
>> |
>> | int
>> | main ()
>> | {
>> | printw((const char *)"Test");
>> |
>> |   ;
>> |   return 0;
>> | }
>> configure:16495: result: no
>> configure:16499: WARNING: The printw() function of your ncurses or curses 
>> library is old, we will disable usage of the library. If you want to use 
>> this library anyway, please update to newer version of the library, ncurses 
>> 5.4 or later is recommended. You can get the library from 
>> http://www.gnu.org/software/ncurses/.
>> configure:16501: Disabling curses
>>
>> The ncurses libraries
>> root@zd-build-s1:/export/builds/pacemaker-1.1.7# ls -la 
>> /usr/gnu/lib/libncurses.so*
>> lrwxrwxrwx   1 root     root          15 Aug 23 18:38 
>> /usr/gnu/lib/libncurses.so -> libncurses.so.5
>> lrwxrwxrwx   1 root     root          17 Aug 23 18:38 
>> /usr/gnu/lib/libncurses.so.5 -> libncurses.so.5.7
>> -rwxr-xr-x   1 root     bin       366460 Aug 23 18:38 
>> /usr/gnu/lib/libncurses.so.5.7
>>
>> and the flags for compiler and linker export LDFLAGS='-R/usr/gnu/lib 
>> -L/opt/ha/lib -L/usr/gnu/lib -L/lib -L/usr/lib'
>> export CFLAGS='-D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS -DNAME_MAX=255 
>> -DHOST_NAME_MAX=255 -I/usr/include  -I/usr/include/ncurses -I/opt/ha/include 
>>  -lsocket -lnsl'
>>
>> So I invalidate the the result of this test with echo '#undef 
>> HAVE_INCOMPATIBLE_PRINTW'>>include/config.h
>>
>> Now I get
>>   CC       crm_mon.o
>> crm_mon.c:203:21: error: expected '=', ',', ';', 'asm' or '__attribute__' 
>> before 'ncurses_winch_handler'
>> crm_mon.c: In function 'mon_winresize':
>> crm_mon.c:211:13: error: 'ncurses_winch_handler' undeclared (first 
>> use in this function)
>> crm_mon.c:211:13: note: each undeclared identifier is reported only 
>> once for each function it appears in
>> crm_mon.c: In function 'main':
>> crm_mon.c:556:9: error: 'ncurses_winch_handler' undeclared (first use 
>> in this function)
>> gmake[1]: *** [crm_mon.o] Error 1
>> gmake[1]: Leaving directory `/export/builds/pacemaker-1.1.7/tools'
>> gmake: *** [all-recursive] Error 1
>>
>> There is no glibc in Solaris, sighandler_t is undefined 
>> tools/crm_mon.c #if CURSES_ENABLED
>> + typedef void (*sighandler_t)(int);
>> static sighandler_t ncurses_winch_handler;
>>
>> and the it compiles and works e.g. "crm_mon i 1"
>>
>>
>> #################################################
>> gmake[2]: Entering directory `/export/builds/pacemaker-1.1.7/lib/fencing'
>>   CC       st_client.lo
>> In file included from st_client.c:36:0:
>> ../../include/crm/stonith-ng-internal.h:28:9: error: expected 
>> identifier or '(' before '&' token
>> ../../include/crm/stonith-ng-internal.h:29:5: error: expected ';' before 
>> 'int'
>> st_client.c: In function 'run_stonith_agent':
>> st_client.c:489:20: error: expected identifier before '(' token
>> st_client.c:490:62: error: 'async_command_t' has no member named 'pt_ops'
>> st_client.c:491:13: error: 'async_command_t' has no member named 'timeout'
>> st_client.c:493:22: error: 'async_command_t' has no member named 'timeout'
>> st_client.c:494:22: error: 'async_command_t' has no member named 'killseq'
>> st_client.c:494:52: error: 'async_command_t' has no member named 'timeout'
>> st_client.c:495:22: error: 'async_command_t' has no member named 'killseq'
>> st_client.c:496:22: error: 'async_command_t' has no member named 'killseq'
>> st_client.c:497:22: error: 'async_command_t' has no member named 'killseq'
>> st_client.c:498:22: error: 'async_command_t' has no member named 'killseq'
>> st_client.c:499:22: error: 'async_command_t' has no member named 'killseq'
>> st_client.c:501:50: error: 'async_command_t' has no member named 'killseq'
>> gmake[2]: *** [st_client.lo] Error 1
>> gmake[2]: Leaving directory `/export/builds/pacemaker-1.1.7/lib/fencing'
>> gmake[1]: *** [all-recursive] Error 1
>> gmake[1]: Leaving directory `/export/builds/pacemaker-1.1.7/lib'
>> gmake: *** [all-recursive] Error 1
>>
>> beginning of include/crm/stonith-ng-internal.h
>> /*
>>  * Copyright (C) 2011 Andrew Beekhof <and...@beekhof.net>
>>  *
>>  * This program is free software; you can redistribute it and/or
>>  * modify it under the terms of the GNU General Public
>>  * License as published by the Free Software Foundation; either
>>  * version 2 of the License, or (at your option) any later version.
>>  *
>>  * This software is distributed in the hope that it will be useful,
>>  * but WITHOUT ANY WARRANTY; without even the implied warranty of
>>  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>>  * General Public License for more details.
>>  *
>>  * You should have received a copy of the GNU General Public
>>  * License along with this library; if not, write to the Free 
>> Software
>>  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
>> 02110-1301  USA  */ #ifndef STONITH_NG_INTERNAL__H #  define 
>> STONITH_NG_INTERNAL__H
>>
>> #  include <crm/common/ipc.h>
>> #  include <crm/common/xml.h>
>> #  include <clplumbing/proctrack.h>
>>
>> typedef struct async_command_s {
>>
>>     int id;
>>     int stdout;         <=== line 28
>>     int options;        <=== line 29
>>
>>
>>
>> st_client.c line 489
>>             track->stdout = p_read_fd;
>>
>>
>>
>> fencing/commands.c
>>     do {
>>         char buffer[READ_MAX];
>>
>>         errno = 0;
>>         if(cmd->stdout > 0) {
>>             memset(&buffer, 0, READ_MAX);
>>             more = read(cmd->stdout, buffer, READ_MAX-1);
>>             crm_trace("Got %d more bytes: %s", more, buffer);
>>         }
>>
>>         if(more > 0) {
>>             crm_realloc(output, len + more + 1);
>>             sprintf(output+len, "%s", buffer);
>>             len += more;
>>         }
>>
>>     } while (more == (READ_MAX-1) || (more < 0 && errno == EINTR));
>>
>>     if(cmd->stdout) {
>>         close(cmd->stdout);
>>         cmd->stdout = 0;
>>     }
>>
>>
>> Changes from stdout => stdoutx and it compiles.
>> ###################################################
>>
>>
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Andrew Beekhof [mailto:and...@beekhof.net]
>> Gesendet: Donnerstag, 23. August 2012 02:03
>> An: The Pacemaker cluster resource manager
>> Betreff: Re: [Pacemaker] stdout reserved word
>>
>> Can you show us the gcc command line and the errors that are produced?
>>
>> On Wed, Aug 22, 2012 at 3:20 AM, Grüninger, Andreas (LGL Extern) 
>> <andreas.gruenin...@lgl.bwl.de> wrote:
>>> Hello
>>>
>>> I compiled Pacemaker 1.1.7 with gcc 4.5 in Solaris 11 and with gcc 4.6 in 
>>> OpenIndiana 151a6.
>>> I had to change the following:
>>> perl -pi -e 's#stdout#stdoutx#'   include/crm/stonith-ng-internal.h
>>> perl -pi -e 's#>stdout#>stdoutx#' lib/fencing/st_client.c perl -pi 
>>> -e 's#>stdout#>stdoutx#' fencing/commands.c
>>>
>>> Do I miss a compiler flag to accept stdout as a variable name?
>>>
>>> In tools/crm_mon.c I added the line with the '+' because sighandler_t is 
>>> not defined.
>>> #if CURSES_ENABLED
>>> + typedef void (*sighandler_t)(int);
>>> static sighandler_t ncurses_winch_handler;
>>>
>>> Also the test for a compatible printw function fails with a error message 
>>> like "your ncurses is too old, we need 5.4".
>>> The version of the installed ncurses library is 5.7.
>>> I added between autogen.sh and gmake this to include/config.h which 
>>> invalidate the result of the erroneously failing test:
>>> echo '#undef HAVE_INCOMPATIBLE_PRINTW'>>include/config.h
>>>
>>> crm and crm_mon work without any problem.
>>>
>>> Should I send patches via the list or report a bug?
>>>
>>> Andreas
>>>
>>>
>>> _______________________________________________
>>> Pacemaker mailing list: Pacemaker@oss.clusterlabs.org 
>>> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>>>
>>> Project Home: http://www.clusterlabs.org Getting started:
>>> http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
>>> Bugs: http://bugs.clusterlabs.org
>>
>> _______________________________________________
>> Pacemaker mailing list: Pacemaker@oss.clusterlabs.org 
>> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>>
>> Project Home: http://www.clusterlabs.org Getting started:
>> http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
>> Bugs: http://bugs.clusterlabs.org
>>
>> _______________________________________________
>> Pacemaker mailing list: Pacemaker@oss.clusterlabs.org 
>> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>>
>> Project Home: http://www.clusterlabs.org Getting started:
>> http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
>> Bugs: http://bugs.clusterlabs.org
>
> _______________________________________________
> Pacemaker mailing list: Pacemaker@oss.clusterlabs.org 
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>
> Project Home: http://www.clusterlabs.org Getting started: 
> http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org
>
> _______________________________________________
> Pacemaker mailing list: Pacemaker@oss.clusterlabs.org 
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
>
> Project Home: http://www.clusterlabs.org Getting started: 
> http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org

_______________________________________________
Pacemaker mailing list: Pacemaker@oss.clusterlabs.org 
http://oss.clusterlabs.org/mailman/listinfo/pacemaker

Project Home: http://www.clusterlabs.org Getting started: 
http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org

_______________________________________________
Pacemaker mailing list: Pacemaker@oss.clusterlabs.org
http://oss.clusterlabs.org/mailman/listinfo/pacemaker

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org

Reply via email to