Re: Error compiling live555 from Slackbuilds Repository

Ed Fletcher via slackware <[email protected]> Tue, 15 Aug 2017 13:51:54 -0300
Newsgroups gmane.linux.slackware
Message-ID <[email protected]>
On 08/14/2017 06:33 PM, Robby Workman via slackware wrote:
> On Mon, 14 Aug 2017 11:50:10 -0300
> Ed Fletcher via slackware <[email protected]> wrote:
> 
>> On 08/14/2017 02:06 AM, Robby Workman via slackware wrote:
>>> On Sun, 13 Aug 2017 15:47:52 -0300
>>> Ed Fletcher via slackware <[email protected]> wrote:
>>>    
>>>> On 08/13/2017 03:02 PM, Robby Workman via slackware wrote:
>>>>> On Sun, 13 Aug 2017 14:35:11 -0300
>>>>> Ed Fletcher via slackware <[email protected]> wrote:
>>>>>       
>>>>>> New install of slackware64-current yesterday.  Trying to get vlc
>>>>>> and live555 is one of the dependencies.  I get this error whether
>>>>>> I use sbopkg or download directly from Slackbuilds and run the
>>>>>> script myself (as root).
>>>>>>
>>>>>> The following error message is taken
>>>>>> from /var/log/sbopkg/sbopkg-build-log
>>>>>>      
>>>>>>     >>>>>>>>>>
>>>>>> g++ -c -Iinclude -I../UsageEnvironment/include
>>>>>> -I../groupsock/include -I. -O2 -DSOCKLEN_T=socklen_t
>>>>>> -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -fPIC -Wall -DBSD=1
>>>>>> MPEG4GenericRTPSink.cpp In file included from
>>>>>> MPEG4GenericRTPSink.cpp:22:0: include/Locale.hh:47:10: fatal
>>>>>> error: xlocale.h: No such file or directory #include
>>>>>> <xlocale.h> // because, on some systems, <locale.h> doesn't
>>>>>> include <xlocale.h>; this makes sure that we get both ^~~~~~~~~~~
>>>>>> compilation terminated.
>>>>>> make[1]: *** [Makefile:60: MPEG4GenericRTPSink.o] Error 1
>>>>>> make[1]: Leaving directory '/tmp/SBo/live/liveMedia'
>>>>>> make: *** [Makefile:61: all] Error 2
>>>>>>     >>>>>>>>>>
>>>>>>
>>>>>> I did a full install so I shouldn't be missing anything.  And
>>>>>> live555 doesn't have any dependencies.
>>>>>>
>>>>>> I would very much appreciate any pointers as to how to fix
>>>>>> this.
>>>>>
>>>>>
>>>>> There might be a fix in ponce's "current" branch:
>>>>> https://github.com/Ponce/slackbuilds
>>>>>
>>>>> -RW
>>>>>       
>>>> Thanks, I didn't know that was there.  It's the same version as on
>>>> Slackbuilds but I downloaded it anyway and gave it a try.  Same
>>>> error as before.
>>>>
>>>> I've been trying to figure out what the error message reference to
>>>> locale.h and xlocale.h might mean but I'm not sure what they are.
>>>> There are only two instances of include.h on my root filesystem,
>>>> both in /usr/include.  Four copies of xlocale.h, one
>>>> in /usr/include/wx-3.0 and the other three under /tmp/SBo.  I tried
>>>> clearing the old data from /tmp/SBo and compiling again.  Still
>>>> getting the same error.
>>>>
>>>> Not sure where to go from here.
>>>
>>>
>>> Looks like it's as simple as removing the include; here's an excerpt
>>> from the latest -current ChangeLog:
>>>
>>> l/libxslt-1.1.29-x86_64-2.txz:  Rebuilt.
>>>     Don't include xlocale.h in libxslt/xsltlocale.h, as it has been
>>> removed from glibc-2.26. Thanks to Matteo Bernardini.
>>>
>>> -RW
>>>    
>>
>>
>>
>> I found libxslt-1.1.29-x86_64-2.txz in slackware64-current and
>> downloaded it.  upgradepkg reported that it removed the -1 version
>> and installed this one.
>>
>> Went back to sbopkg to try installing live555 again.  Nope, failed at
>> the same place with the same error message.
>>
>> /usr/include/libxslt/xsltlocale.h now has just
>> #include <locale.h>
>> whereas the previous version also had
>> #include <xlocale.h>
>>
>> So the file was changed but it didn't make a difference in this case.
>>
>> Thanks for looking at this.
> 
> 
> Yes, I wasn't very clear in my intentions, I guess. What I meant was that
> a similar patch is likely needed for the live555 sources -- there's almost
> surely one or more includes of xlocale.h in there which need to be removed.
> 
> -RW
> 

Ah, okay.  So if no patch for live555 sources then perhaps another 
solution will work.

The original compile time error message said:

>>>>>>>>>>
In file included from MPEG4GenericRTPSink.cpp:22:0:
include/Locale.hh:47:10: fatal error: xlocale.h: No such file or directory
  #include <xlocale.h> // because, on some systems, <locale.h> doesn't 
include <xlocale.h>; this makes sure that we get both
>>>>>>>>>>

So MPEG4GenericRTPSink.cpp doesn't mention xlocale.h but it does include 
Locale.hh and Locale.hh does mention xlocale.h but in a line that, to 
me, seems to be commented out.

#include <xlocale.h> // because, on some systems, <locale.h>
	doesn't include <xlocale.h>; this makes sure that we get both

which, I assume, is where the error message came from.

However, this is also in Locale.hh:

If you're on a system that (for whatever reason) has "setlocale()" but 
not "newlocale()", then add "-DXLOCALE_NOT_USED" to your "config.*" file.

Perhaps this is the change in glibc.  I believe that the config file is 
config.linux-64bit in the live555 so maybe add -DXLOCALE to COMPILE_OPTS?

Ed
-- 
Ed Fletcher

"Where it is a duty to worship the sun it is pretty
sure to be a crime to examine the laws of heat."
- Christopher Morley

-- 
slackware mailing list
[email protected]
https://mailman.lug.org.uk/mailman/listinfo/slackware