[Pacemaker] SmartOS / illumos

Oriol Mula-Valls oriol.mula-valls at ic3.cat
Wed May 15 06:35:47 EDT 2013


On 15/05/13 02:21, Dalho PARK wrote:
> Hello Oriol,
>
> Thanks for the information.
> I tried to install the package libkqueue and check the function, but I can't find any equivalent function/method of signalfd.
> Is there any other library or package?

I've just reviewed the code on sourceforge and from what I understand 
functions are defined in src/linux/signal.c

If I am not wrong in case the sys/signalfd.h file doesn't exist it 
defines the function.

#if HAVE_SYS_SIGNALFD_H
# include <sys/signalfd.h>
#else
#define signalfd(a,b,c) syscall(SYS_signalfd, (a), (b), (c))
#define SFD_NONBLOCK 04000
....

Regards,
Oriol

> Thank you,
>
> Dalho
> -----Original Message-----
> From: Oriol Mula-Valls [mailto:oriol.mula-valls at ic3.cat]
> Sent: Saturday, May 11, 2013 3:09 AM
> To: pacemaker at oss.clusterlabs.org
> Subject: Re: [Pacemaker] SmartOS / illumos
>
> Hi,
>
> I have found the following information:
> signalfd is a Linux only interface (see [0]), BSD based systems can use kqueue instead, also Solaris through libkqueue
>
> Also this link http://www.hadrons.org/~guillem/debian/ports/porting
> might be useful in case someone wants to make the port to other systems.
>
> Regards,
> Oriol
>
> On 11/05/13 00:46, Dalho PARK wrote:
>> Hello,
>>
>> In previous error, I fixed ipc.c to do cast both void and struct and I was able to avoid having error.
>> But I'm still having error saying file is missing.
>> It seems I don't have signalfd.h  under /usr/include/sys/ but it seems signalfd.h is linux only.
>>
>> Any help?
>>
>> gmake[2]: Entering directory `/root/pacemaker/lib/services'
>>     CC       libcrmservice_la-services_linux.lo
>> services_linux.c:33:26: fatal error: sys/signalfd.h: No such file or
>> directory compilation terminated.
>> gmake[2]: *** [libcrmservice_la-services_linux.lo] Error 1
>> gmake[2]: Leaving directory `/root/pacemaker/lib/services'
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory `/root/pacemaker/lib'
>> make: *** [core] Error 1
>>
>> -----Original Message-----
>> From: Dalho PARK
>> Sent: Friday, May 10, 2013 10:43 AM
>> To: 'The Pacemaker cluster resource manager'
>> Subject: RE: [Pacemaker] SmartOS / illumos
>>
>> Hello Andrew,
>>
>> Thank you for the advice.
>>    I applied the patches you mentioned and when I tried make, some error disappeared, but still receive the following error.
>> Do you have any clue?
>>
>> Anyway, the patch will be applied to current or next version?
>> Regards,
>> Dalho
>>
>> gmake[2]: Entering directory `/root/pacemaker/lib/common'
>>     CC       ipc.lo
>> ipc.c: In function 'crm_ipcs_flush_events':
>> ipc.c:450:16: error: assignment from incompatible pointer type
>> [-Werror]
>> ipc.c: In function 'crm_ipc_prepare':
>> ipc.c:506:21: error: assignment from incompatible pointer type
>> [-Werror]
>> ipc.c: In function 'crm_ipcs_sendv':
>> ipc.c:567:46: error: initialization from incompatible pointer type
>> [-Werror]
>> ipc.c: In function 'crm_ipc_send':
>> ipc.c:1028:12: error: assignment from incompatible pointer type
>> [-Werror]
>> cc1: all warnings being treated as errors
>> gmake[2]: *** [ipc.lo] Error 1
>> gmake[2]: Leaving directory `/root/pacemaker/lib/common'
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory `/root/pacemaker/lib'
>> make: *** [core] Error 1
>>
>>
>> -----Original Message-----
>> From: Andrew Beekhof [mailto:andrew at beekhof.net]
>> Sent: Thursday, May 09, 2013 9:19 PM
>> To: The Pacemaker cluster resource manager
>> Subject: Re: [Pacemaker] SmartOS / illumos
>>
>> Looks like you need
>> https://github.com/beekhof/pacemaker/commit/629aa36
>> I recall making that change once before but it got lost somehow.
>>
>> On 10/05/2013, at 10:02 AM, Dalho PARK<dpark at smart-trade.net>   wrote:
>>
>>> Hello,
>>> I'm trying to compile pacemaker on SmartOS and having error during make.
>>> Does anyone has  already successfully compiled on SmartOS? Or Can
>>> Someone help to solve the problem I'm having now.
>>> Thank you,
>>>
>>> Glib version : glib2-2.34.3
>>>
>>> GCC version:
>>> [root at web01 ~/pacemaker]# gcc -v
>>> Using built-in specs.
>>> COLLECT_GCC=/opt/local/gcc47/bin/gcc
>>> COLLECT_LTO_WRAPPER=/opt/local/gcc47/libexec/gcc/x86_64-sun-solaris2.
>>> 1
>>> 1/4.7.2/lto-wrapper
>>> Target: x86_64-sun-solaris2.11
>>> Configured with: ../gcc-4.7.2/configure --enable-languages='c go
>>> fortran c++' --enable-shared --enable-long-long
>>> --with-local-prefix=/opt/local/gcc47 --enable-libssp
>>> --enable-threads=posix --with-boot-ldflags='-static-libstdc++
>>> -static-libgcc -Wl,-R/opt/local/lib ' --disable-nls
>>> --enable-__cxa_atexit
>>> --with-gxx-include-dir=/opt/local/gcc47/include/c++/ --without-gnu-ld
>>> --with-ld=/usr/bin/ld --with-gnu-as --with-as=/opt/local/bin/gas
>>> --prefix=/opt/local/gcc47 --build=x86_64-sun-solaris2.11
>>> --host=x86_64-sun-solaris2.11 --infodir=/opt/local/gcc47/info
>>> --mandir=/opt/local/gcc47/man Thread model: posix gcc version 4.7.2
>>> (GCC)
>>>
>>>
>>> Here is the error log of make
>>> +++++++++++++++++++++++++++++++
>>> gmake[2]: Entering directory `/root/pacemaker/lib/common'
>>>     CC       ipc.lo
>>> In file included from ../../include/crm_internal.h:26:0,
>>>                    from ipc.c:19:
>>> ../../include/portability.h:81:16: error: expected '=', ',', ';',
>>> 'asm' or '__attribute__' before '*' token
>>> ../../include/portability.h:86:1: error: expected identifier or '('
>>> before '}' token
>>> ../../include/portability.h:86:1: error: useless type name in empty
>>> declaration [-Werror]
>>> ../../include/portability.h:98:1: error: static declaration of
>>> 'g_hash_table_get_values' follows non-static declaration In file included from /opt/local/include/glib/glib-2.0/glib.h:52:0,
>>>                    from ../../include/portability.h:79,
>>>                    from ../../include/crm_internal.h:26,
>>>                    from ipc.c:19:
>>> /opt/local/include/glib/glib-2.0/glib/ghash.h:101:13: note: previous
>>> declaration of 'g_hash_table_get_values' was here In file included from ../../include/crm_internal.h:26:0,
>>>                    from ipc.c:19:
>>> ../../include/portability.h: In function 'g_hash_table_nth_data':
>>> ../../include/portability.h:111:13: error: 'GHashTableIter' has no member named 'lpc'
>>> ../../include/portability.h:111:28: error: 'GHashTableIter' has no member named 'nth'
>>> ../../include/portability.h:112:13: error: 'GHashTableIter' has no member named 'key'
>>> ../../include/portability.h:113:13: error: 'GHashTableIter' has no member named 'value'
>>> ../../include/portability.h: At top level:
>>> ../../include/portability.h:121:1: error: static declaration of
>>> 'g_hash_table_iter_init' follows non-static declaration In file included from /opt/local/include/glib/glib-2.0/glib.h:52:0,
>>>                    from ../../include/portability.h:79,
>>>                    from ../../include/crm_internal.h:26,
>>>                    from ipc.c:19:
>>> /opt/local/include/glib/glib-2.0/glib/ghash.h:103:13: note: previous
>>> declaration of 'g_hash_table_iter_init' was here In file included from ../../include/crm_internal.h:26:0,
>>>                    from ipc.c:19:
>>> ../../include/portability.h: In function 'g_hash_table_iter_init':
>>> ../../include/portability.h:123:9: error: 'GHashTableIter' has no member named 'hash'
>>> ../../include/portability.h:124:9: error: 'GHashTableIter' has no member named 'nth'
>>> ../../include/portability.h:125:9: error: 'GHashTableIter' has no member named 'lpc'
>>> ../../include/portability.h:126:9: error: 'GHashTableIter' has no member named 'key'
>>> ../../include/portability.h:127:9: error: 'GHashTableIter' has no member named 'value'
>>> ../../include/portability.h: At top level:
>>> ../../include/portability.h:131:1: error: static declaration of
>>> 'g_hash_table_iter_next' follows non-static declaration In file included from /opt/local/include/glib/glib-2.0/glib.h:52:0,
>>>                    from ../../include/portability.h:79,
>>>                    from ../../include/crm_internal.h:26,
>>>                    from ipc.c:19:
>>> /opt/local/include/glib/glib-2.0/glib/ghash.h:105:13: note: previous
>>> declaration of 'g_hash_table_iter_next' was here In file included from ../../include/crm_internal.h:26:0,
>>>                    from ipc.c:19:
>>> ../../include/portability.h: In function 'g_hash_table_iter_next':
>>> ../../include/portability.h:135:9: error: 'GHashTableIter' has no member named 'lpc'
>>> ../../include/portability.h:136:9: error: 'GHashTableIter' has no member named 'key'
>>> ../../include/portability.h:137:9: error: 'GHashTableIter' has no member named 'value'
>>> ../../include/portability.h:138:13: error: 'GHashTableIter' has no member named 'nth'
>>> ../../include/portability.h:138:43: error: 'GHashTableIter' has no member named 'hash'
>>> ../../include/portability.h:139:42: error: 'GHashTableIter' has no member named 'hash'
>>> ../../include/portability.h:140:13: error: 'GHashTableIter' has no member named 'nth'
>>> ../../include/portability.h:143:20: error: 'GHashTableIter' has no member named 'key'
>>> ../../include/portability.h:145:22: error: 'GHashTableIter' has no member named 'value'
>>> ../../include/portability.h: At top level:
>>> ../../include/portability.h:151:1: error: static declaration of
>>> 'g_hash_table_iter_remove' follows non-static declaration In file included from /opt/local/include/glib/glib-2.0/glib.h:52:0,
>>>                    from ../../include/portability.h:79,
>>>                    from ../../include/crm_internal.h:26,
>>>                    from ipc.c:19:
>>> /opt/local/include/glib/glib-2.0/glib/ghash.h:109:13: note: previous
>>> declaration of 'g_hash_table_iter_remove' was here In file included from ../../include/crm_internal.h:26:0,
>>>                    from ipc.c:19:
>>> ../../include/portability.h: In function 'g_hash_table_iter_remove':
>>> ../../include/portability.h:153:29: error: 'GHashTableIter' has no member named 'hash'
>>> ../../include/portability.h:153:41: error: 'GHashTableIter' has no member named 'key'
>>> ../../include/portability.h:154:9: error: 'GHashTableIter' has no member named 'nth'
>>> ../../include/portability.h: At top level:
>>> ../../include/portability.h:159:1: error: static declaration of
>>> 'g_strcmp0' follows non-static declaration In file included from /opt/local/include/glib/glib-2.0/glib.h:84:0,
>>>                    from ../../include/portability.h:79,
>>>                    from ../../include/crm_internal.h:26,
>>>                    from ipc.c:19:
>>> /opt/local/include/glib/glib-2.0/glib/gtestutils.h:79:9: note:
>>> previous declaration of 'g_strcmp0' was here In file included from ../../include/crm_internal.h:26:0,
>>>                    from ipc.c:19:
>>> ../../include/portability.h: In function 'g_strcmp0':
>>> ../../include/portability.h:165:5: error: implicit declaration of
>>> function 'strcmp' [-Werror=implicit-function-declaration]
>>> In file included from ../../include/crm_internal.h:26:0,
>>>                    from ipc.c:19:
>>> ../../include/portability.h: At top level:
>>> ../../include/portability.h:174:1: error: static declaration of
>>> 'g_list_free_full' follows non-static declaration In file included from /opt/local/include/glib/glib-2.0/glib/ghash.h:35:0,
>>>                    from /opt/local/include/glib/glib-2.0/glib.h:52,
>>>                    from ../../include/portability.h:79,
>>>                    from ../../include/crm_internal.h:26,
>>>                    from ipc.c:19:
>>> /opt/local/include/glib/glib-2.0/glib/glist.h:54:10: note: previous
>>> declaration of 'g_list_free_full' was here
>>> ipc.c: In function 'crm_ipcs_flush_events':
>>> ipc.c:450:16: error: assignment from incompatible pointer type
>>> [-Werror]
>>> ipc.c: In function 'crm_ipc_prepare':
>>> ipc.c:506:21: error: assignment from incompatible pointer type
>>> [-Werror]
>>> ipc.c: In function 'crm_ipcs_sendv':
>>> ipc.c:567:46: error: initialization from incompatible pointer type
>>> [-Werror]
>>> ipc.c: In function 'crm_ipc_send':
>>> ipc.c:1028:12: error: assignment from incompatible pointer type
>>> [-Werror]
>>> cc1: all warnings being treated as errors
>>> gmake[2]: *** [ipc.lo] Error 1
>>> gmake[2]: Leaving directory `/root/pacemaker/lib/common'
>>> make[1]: *** [all-recursive] Error 1
>>> make[1]: Leaving directory `/root/pacemaker/lib'
>>> make: *** [core] Error 1
>>>
>>>
>>> _______________________________________________
>>> Pacemaker mailing list: Pacemaker at 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 at 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 at 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
>>
>
>
> --
> Oriol Mula Valls
> Institut Català de Ciències del Clima (IC3) Doctor Trueta 203 - 08005 Barcelona
> Tel:+34 93 567 99 77
>
> _______________________________________________
> Pacemaker mailing list: Pacemaker at 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 at 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
>


-- 
Oriol Mula Valls
Institut Català de Ciències del Clima (IC3)
Doctor Trueta 203 - 08005 Barcelona
Tel:+34 93 567 99 77




More information about the Pacemaker mailing list