Re: configure patch for building with Solaris
Alan McNatty <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi All,
Just following up on this historical thread [1] as I came across it
recently building 1.5.0 on an old box running Solaris 10. The upshot is
it's all do-able (I had success with OpenCSW) - just check your paths
(and run a ldd on the resulting binaries to make sure you haven't
incorporated any libraries that you don't want, etc.
As the dev box is used by a number of folk we had a bunch of OpenCSW
packages installed (/opt/csw) as well as some Sunfreeware packages
(/opt/sfw) - when running gmake I came across the error Nikos reported.
Turns out (for me) the problem was solved by using the OpenCSW packages
in place of the Sunfreeware package (likely simply due to one set being
newer that the other or sim.).
e.g.
LDFLAGS="${LDFLAGS} -L/usr/local/postgres/lib -R/usr/local/postgres/lib"
export LDFLAGS
PATH=/usr/bin:/opt/csw/bin:/usr/sbin:/opt/csw/gcc3/bin
export PATH
./configure --with-pgsql --with-pgsql-dir=/usr/local/postgres/
--with-defaults=speed --disable-docs
gmake
Cheers,
Alan
[1] so it gets indexed and I can find it when I next look ;)
On 19/11/08 05:33, Alexander Malysh wrote:
> Hi again,
>
> Nikos Balkanas schrieb:
>> Dear Alex,
>>
>> It's their system (Solaris) and they can do whatever they want to it.
>> These include files are system files property of Sun.
>
> If they say: "we support POSIX and C99" they _have_ to fix fix
> horrible bug...
>
>>
>> The issue is whether kannel can build on Solaris or not. Right now it
>> can't, and I am not certain that this is a problem only with Solaris 10.
>>
>> Granted it is not the first time that you make workarounds for
>> particular OS's "percularities". What's one more?
>
> Hmm, I don't see any workarounds for any OS... just some defaults
> pre-set.
>
> Anyway, I would commit a proper fix for this issue, but what you
> posted is not a proper fix because configure is always overwritten if
> autoconf called for kannel. So please try with some patch that changes
> only configure.in.
>
>>
>> BTW, If I remove this constraint kannel builds fine on Solaris. Am I
>> to worry that I have a corrupted build? For what reason did C99 was
>> introduced after 1.4.1?
>>
>
> kannel needs C99 at least for such structs:
> static struct dlr_storage handles = {
> .type = "mysql",
> .dlr_add = dlr_mysql_add,
> .dlr_get = dlr_mysql_get,
> .dlr_update = dlr_mysql_update,
> .dlr_remove = dlr_mysql_remove,
> .dlr_shutdown = dlr_mysql_shutdown,
> .dlr_messages = dlr_mysql_messages,
> .dlr_flush = dlr_mysql_flush
> };
>
>
>> BR,
>> Nikos
>> ----- Original Message ----- From: "Alexander Malysh"
>> <[email protected]>
>> To: <[email protected]>
>> Sent: Tuesday, November 18, 2008 10:57 AM
>> Subject: Re: configure patch for building with Solaris
>>
>>
>>> Hi,
>>>
>>> we definitely need C99, this is configure that checks for gnu99...
>>> I think this is a bug in solaris and kannel has nothing todo with it.
>>>
>>> Thanks,
>>> Alex
>>>
>>>
>>> Nikos Balkanas schrieb:
>>>> Hi list,
>>>> A couple of changes in configure so that it builds in Solaris. It
>>>> checks if os = solaris and CC = gcc and releaves the requirement
>>>> for gnu99 compiler (gcc after all is). Definition of gnu99 clashes
>>>> with Sun's definition of HUGE_VAL in /usr/include/iso/math_c99.h
>>>> Can someone explain me why the sudden interest for gnu99 compiler?
>>>> It didn't used to be so in 1.4.1 and kannel was compiling fine back
>>>> then.
>>>> BR,
>>>> Nikos
>>>> *** configure.orig Tue Nov 18 02:36:50 2008
>>>> --- configure Tue Nov 18 02:38:13 2008
>>>> ***************
>>>> *** 3210,3215 ****
>>>> --- 3210,3221 ----
>>>> return 0;
>>>> }
>>>> _ACEOF
>>>> + *os=${host##*-}
>>>> + os=${os%%.*}
>>>> + if [ "$os" == "solaris2" ] && [ "$CC" == "gcc" ]; then
>>>> + $as_echo "$as_me: failed program was:" >&5
>>>> + sed 's/^/| /' conftest.$ac_ext >&5
>>>> + else
>>>> * for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all
>>>> -qlanglvl=extc99
>>>> do
>>>> CC="$ac_save_CC $ac_arg"
>>>> ***************
>>>> *** 3235,3247 ****
>>>> else
>>>> $as_echo "$as_me: failed program was:" >&5
>>>> sed 's/^/| /' conftest.$ac_ext >&5
>>>> -
>>>> -
>>>> fi
>>>> -
>>>> rm -f core conftest.err conftest.$ac_objext
>>>> test "x$ac_cv_prog_cc_c99" != "xno" && break
>>>> done
>>>> rm -f conftest.$ac_ext
>>>> CC=$ac_save_CC
>>>> --- 3241,3251 ----
>>>> else
>>>> $as_echo "$as_me: failed program was:" >&5
>>>> sed 's/^/| /' conftest.$ac_ext >&5
>>>> fi
>>>> rm -f core conftest.err conftest.$ac_objext
>>>> test "x$ac_cv_prog_cc_c99" != "xno" && break
>>>> done
>>>> + *fi
>>>> * rm -f conftest.$ac_ext
>>>> CC=$ac_save_CC
>>>>
>>>> ***************
>>>> *** 3262,3268 ****
>>>> ! *if test "$ac_cv_prog_cc_c99" = "no"; then
>>>> * { { $as_echo "$as_me:$LINENO: error: \"Kannel requires a C
>>>> compiler that supports ISO C99.\"" >&5
>>>> $as_echo "$as_me: error: \"Kannel requires a C compiler that
>>>> supports ISO C99.\"" >&2;}
>>>> { (exit 1); exit 1; }; }
>>>> --- 3266,3272 ----
>>>> ! *if [ "$ac_cv_prog_cc_c99" == "no" ] && !([ "$os" == "solaris2"
>>>> ] && [ "$CC" = "gcc" ]); then
>>>> * { { $as_echo "$as_me:$LINENO: error: \"Kannel requires a C
>>>> compiler that supports ISO C99.\"" >&5
>>>> $as_echo "$as_me: error: \"Kannel requires a C compiler that
>>>> supports ISO C99.\"" >&2;}
>>>> { (exit 1); exit 1; }; }
>>>
>>>
>>
>>
>>
>
>
>