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