[asterisk-ss7] error compiling on gentoo amd64

Kristian Nielsen knielsen at knielsen-hq.org
Wed Jun 24 08:14:30 CDT 2009


caio <elcaio at gmail.com> writes:

>> On Tue, Jun 23, 2009 at 1:59 AM, caio <elcaio at gmail.com 
>> <mailto:elcaio at gmail.com>> wrote:

>>     # make chan_ss7.so
>>     Makefile:163: .depend: No such file or directory
>>     gcc -MM -E -I/usr/include/zaptel -I/usr/include/asterisk

>>     In file included from
>>     /usr/include/gentoo-multilib/amd64/bits/string2.h:52,
>>                    from /usr/include/bits/string2.h:8,
>>                    from /usr/include/gentoo-multilib/amd64/string.h:423,
>>                    from /usr/include/string.h:8,
>>                    from chan_ss7.c:29:
>>     /usr/include/asterisk/endian.h:61:2: error: #error Need to know
>>     endianess

So this looks like the root problem.

Note how what is surely a gentoo system header seems to include an asterisk
header. /usr/include/gentoo-multilib/amd64/bits/string2.h seems to include
/usr/include/asterisk/endian.h.

This surely was not intended. Most likely there are two headers on the system
both called endian.h, and the wrong one is picked up.

>>     In file included from /usr/include/bits/string2.h:8,
>>                    from /usr/include/gentoo-multilib/amd64/string.h:423,
>>                    from /usr/include/string.h:8,
>>                    from chan_ss7.c:29:
>>     /usr/include/gentoo-multilib/amd64/bits/string2.h:98:21: error:
>>     missing binary operator before token "("

This is probably a typedef that is missing due to not including the right
endian.h.

You may have to fix the asterisk and/or chan_ss7 to workaround this.

Maybe remove the -I/usr/include/asterisk from the Makefile, and then change
any includes that need it from #include <FOO.h> to #include <asterisk/FOO.h>.
This should make it so that the wrong endian.h cannot be picked up by mistake.

Or some similar fix to remove the problem.

Hope this helps,

 - Kristian.



More information about the asterisk-ss7 mailing list