[asterisk-dev] beta2 compile failure

Matthew Jordan mjordan at digium.com
Tue Sep 23 12:22:42 CDT 2014


On Tue, Sep 23, 2014 at 11:19 AM, Paul Albrecht <palbrecht at glccom.com>
wrote:

>
> On Sep 23, 2014, at 10:24 AM, Matthew Jordan <mjordan at digium.com> wrote:
>
>
>
> On Tue, Sep 23, 2014 at 10:11 AM, Paul Albrecht <palbrecht at glccom.com>
> wrote:
>
>>
>> On Sep 23, 2014, at 9:25 AM, Joshua Colp <jcolp at digium.com> wrote:
>>
>> > Paul Albrecht wrote:
>> >>
>> >> On Sep 22, 2014, at 3:47 PM, Joshua Colp <jcolp at digium.com
>> >> <mailto:jcolp at digium.com>> wrote:
>> >>
>> >>> Paul Albrecht wrote:
>> >>>>
>> >>>> Asterisk 13 beta2 compile fails:
>> >>>>
>> >>>> .
>> >>>> .
>> >>>> .
>> >>>> [CC] chan_pjsip.c -> chan_pjsip.o
>> >>>> [CC] pjsip/dialplan_functions.c -> pjsip/dialplan_functions.o
>> >>>> [LD] chan_pjsip.o pjsip/dialplan_functions.o -> chan_pjsip.so
>> >>>>
>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld:
>> >>>>
>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../lib64/libpjsip-ua-x86_64-pc-linux-gnu.a(sip_inv.o):
>> >>>> relocation R_X86_64_32S against `.rodata' can not be used when
>> making a
>> >>>> shared object; recompile with -fPIC
>> >>>>
>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../lib64/libpjsip-ua-x86_64-pc-linux-gnu.a:
>> >>>> could not read symbols: Bad value
>> >>>> collect2: ld returned 1 exit status
>> >>>> make[1]: *** [chan_pjsip.so] Error 1
>> >>>> make: *** [channels] Error 2
>> >>>
>> >>> Your environment does not seem have a suitable pjproject. It should
>> not
>> >>> be trying to link in any static. Did you follow the wiki to build
>> >>> pjproject? Do you have an old install as well as a new?
>> >>
>> >> Oops, my bad, I didn’t setup pjproject. However, the configure script
>> >> didn’t complain so I assumed I was good to go and proceeded to make
>> >> asterisk. Shouldn’t the configure script catch this and not allow
>> >> someone to proceed to make? Thought that was a function of the
>> configure
>> >> script, that is, it verifies software dependancies before the build
>> step.
>> >
>> > The configure script checks for pjproject but it is not currently
>> > specific enough to look for only shared. (Not sure off the top of my
>> > head how we could make it)
>>
>> So your response is that you agree the configure script should check for
>> the pjproject  dependency, but you don’t know how to do that? Really?
>>
>>
> Josh was trying to help. If you'd like to provide a patch to the configure
> script to make it more robust in detecting the shared object libraries,
> that would be appreciated. However, as Asterisk is installed on a wide
> variety of platforms, such solutions are often very difficult to craft
> correctly.
>
> The configure script currently uses the AST_PKG_CONFIG_CHECK macro to
> verify pjproject is installed. That will use the output of pkg-config to
> verify whether or not the shared object libraries are installed. If, for
> whatever reason, that returns success, then I would expect chan_pjsip to
> enabled.
>
> The config.log would illustrate why it returned success in your case.
>
>
> I’m just a user reporting a bug and I don’t care why the asterisk
> configure script doesn’t work. You’re the engineering manager so you can
> prioritize problems or define them out of existence as you see fit.
>
>
That isn't how the Asterisk project works.

First, if this really was just a 'bug report', then as Jason pointed out,
the appropriate place to go is issues.asterisk.org. If that's the case,
then we can continue the troubleshooting there. I'm inclined to think that
Josh's initial assessment is correct: you have a version of pjproject
installed on your system that has static libraries but not the dynamic
libraries. It would be interesting to see what the config.log spat out. If
you feel that's worthy of a bug report, then please go make an issue on the
issue tracker and attach the config.log there, along with sufficient steps
to reproduce the configuration issue on a different machine.

Beyond that, I don't make any decision about what the developers in the
Asterisk project choose to fix or provide patches for. That is up to each
individual developer. If someone wants to provide a patch for the build
system that makes it better in some regard, that's great. Generally, if
someone provides a patch with an issue, those issues tend to get fixed
faster.

As the project lead, the only time I would weigh in is when there is
disagreement over a proposed patch. Those situations are very rare.

I do have some influence on what Digium developers do with respect to the
Asterisk project, but that has no bearing on what others choose to do.


>
>
>> >
>> >> Another thing … the README int the top level directory doesn’t seem to
>> >> have been updated in a while and doesn’t mention pjproject. If there’s
>> >> an external requirement like pjproject shouldn’t that go in the README?
>> >
>> > These days almost everything is documented on the wiki. The README
>> > itself only covers the basics to get Asterisk up and going. It could be
>> > extended to include dependencies for the various things.
>>
>> The README no longer "covers the basics" to get asterisk up and running
>> because it doesn’t mention pjproject, which is now a required external
>> dependency.  If you don’t think the README file is the right place for
>> installation instructions, why not add an “INSTALL” file in the top level
>> directory like other projects?
>>
>
> That isn't what Josh said. pjproject is not a required external
> dependency. You can run Asterisk just fine without it.
>
>
> No, you can’t run asterisk without pjproject. I know because I’ve tried.
> If you think you can, please provide me with a detailed set instructions
> for doing so because I’d like to try that.
>

Without more information, I'm not sure what you are referring to.
Potentially, you may be referring to a bug in Asterisk 13.0.0-beta1 where
one of the modules (res_hep_rtcp) would get annoyed if pjproject wasn't
installed. That was fixed in 13.0.0-beta2.

To install Asterisk without pjproject:

(1) Don't install pjproject
(2) ./configure
(3) make
(4) make install

If pjproject isn't on the system, and you run into a compilation problem,
then I'd be curious what the issue was. Again, more information
illustrating the problem (config logs, make NOISY_BUILD=yes output, etc.)
would be helpful.

Matt

-- 
Matthew Jordan
Digium, Inc. | Engineering Manager
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: http://digium.com & http://asterisk.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140923/058ac4e1/attachment.html>


More information about the asterisk-dev mailing list