Re: Error compiling live555 from Slackbuilds Repository
Robby Workman via slackware <[email protected]> Tue, 15 Aug 2017 16:51:46 -0500
| Newsgroups | gmane.linux.slackware |
|---|---|
| Organization | Generally OCD |
| Message-ID | <[email protected]> |
On Tue, 15 Aug 2017 13:51:54 -0300 Ed Fletcher <[email protected]> wrote: > 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? In C-based languages, that "#" is not a comment -- the "//" indicates a comment. Basically, remove that entire line you quoted from the Locale.hh file, or apply the attached patch with "patch -p1" to the live555 source in the build script. -RW -- slackware mailing list [email protected] https://mailman.lug.org.uk/mailman/listinfo/slackware
remove-xlocale_h-include.patch
(text/x-patch, 464 B)
diff -Nur live.orig/liveMedia/include/Locale.hh live/liveMedia/include/Locale.hh --- live.orig/liveMedia/include/Locale.hh 2017-07-18 01:40:15.000000000 -0500 +++ live/liveMedia/include/Locale.hh 2017-08-15 16:49:22.400951225 -0500 @@ -44,7 +44,6 @@ #ifndef LOCALE_NOT_USED #include <locale.h> #ifndef XLOCALE_NOT_USED -#include <xlocale.h> // because, on some systems, <locale.h> doesn't include <xlocale.h>; this makes sure that we get both #endif #endif