On May 4, 2016 9:32 PM, "Bruce Dubbs" <[email protected]> wrote:
>
> Douglas R. Reno wrote:
>>
>> On Wed, May 4, 2016 at 6:16 PM, Douglas R. Reno <[email protected]>
>> wrote:
>>
>>>
>>>
>>> On Wed, May 4, 2016 at 5:02 PM, Bruce Dubbs <[email protected]>
wrote:
>>>
>>>> Pierre Labastie wrote:
>>>>
>>>>
>>>>> I confirm that GCC-6 is not easy to work with: OpenJDK would not build
>>>>> with
>>>>> it. I do not have CLANG and have no motivation to build it.
Furthermore,
>>>>> for
>>>>> OpenJDK, the variables CC and CXX are not honoured! What I have done
(as
>>>>> root):
>>>>>
>>>>> mv /usr/bin/gcc{,.orig}
>>>>> cat >/usr/bin/gcc << EOF
>>>>> #!/bin/bash
>>>>> gcc -std=c99 "\$@"
>>>>> EOF
>>>>> mv /usr/bin/g++{,.orig}
>>>>> cat >/usr/bin/g++ << EOF
>>>>> #!/bin/bash
>>>>> gcc -std=c99 "\$@"
>>>>> EOF
>>>>>
>>>>> But that's not enough. The compilation goes to completion, but all the
>>>>> compiled executables segfault
>>>>>
>>>>> Downgrading to gcc-5.3 allowed to build. Tests are currently running,
>>>>> but at
>>>>> least, the executables seem to run.
>>>>>
>>>>
>>>> I agree that gcc6 will cause us problems. I needed to rebuild ptlib
and
>>>> ran into errors due to:
>>>>
>>>> 1. Ambiguous overloaded function. I was able to overcome that by
>>>> casting an argument to std::string in several places.
Fortunately it
>>>> is only one file. src/ptlib/unix/svcproc.cxx
>>>>
>>>> 2. There is a check for a header that depends on compiler version. It
>>>> fails if the minor version is less than 2. That was fixed by
adding
>>>> || __GNUC__ >= 5 to the #if statement. include/ptlib/critsec.h
>>>>
>>>> There are also a TON of warnings about deprecated constructs that
creates
>>>> very noisy output. I was able to turn them off my adding
>>>>
>>>> STDCCFLAGS += -Wno-deprecated-declarations
>>>>
>>>> to make/unix.mak.
>>>>
>>>> It will be easy enough to add these fixes to the existing patch, but I
>>>> fear that this will become the rule for a while.
>>>>
>>>> I'll even note that there are warnings about indentation!
>>>>
>>>> -- Bruce
>>>>
>>>> The latest breakage:
>>>
>>>
>>> gst-plugins-good-1.8.1 fails to install/link with taglib-1.11
installed!:
>>>
>>> make[2]: Entering directory
>>> '/sources/gst-plugins-good-1.8.1/gst-plugins-good-1.8.1/ext/taglib'
>>> CXXLD libgsttaglib.la
>>> /usr/bin/ld:
>>>
/usr/lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../lib64/libtag.a(id3v2framefactory.cpp.o):
>>> reolocation R_X86_64_32S against `_ZTVN6TagLib5ID3v212FrameFactoryE' can
>>> not be used when making a shared object; recompile with -fPIC
>>> /usr/lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../lib64/libtag.a: error
>>> adding symbols: Bad value
>>> collect2: error: ld returned 1 exit status
>>> make[2]: *** [libgsttaglib.la] Error 1
>>> make[2]: Leaving directory
>>> '/sources/gst-plugins-good-1.8.1/gst-plugins-good-1.8.1/ext/taglib'
>>> Makefile:666: recipe for target 'install-recursive' failed
>>> make[1]: *** [install-recursive] Error 1
>>>
>>> The question is... taglib problem or gst-plugins-good problem? I will do
>>> some more research in a little while.
>>>
>>> I figured it out!
>>
>>
>> The instructions that we have in both books don't compile shared
libraries,
>> only static ones. The gstreamer build process, at least on my 3 machines,
>> won't link to that. In order to fix that, we must add
>> -DBUILD_SHARED_LIBS=ON to the cmake command. That seemed to fix it for
me.
>>
>> Am I clear to put in the required changes for this and Qt4 tomorrow? I
>> would rather ask first before I commit them, due to prior experiences.
>
>
> I confirm that taglib needs -DBUILD_SHARED_LIBS=ON. Go ahead and add it.
>
>
> -- Bruce
>
>
More discoveries in Seamonkey and FAAC:
Seamonkey (still compiling... I don't expect it to be done anytime soon,
but its made it much farther than earlier):
Requires $MOZ_OPT_FLAGS to be set to
"CFLAGS='-fno-delete-null-pointer-checks -fno -strict-aliasing'"
Requires this modification (posting from a mobile device... I plan to make
a patch later on today or tomorrow):
mozilla/nsprpub/config/make-system-wrappers.pl:
@@ -19,7 +19,9 @@ while (<STDIN>) {
open OUT, ">$output_dir/$_";
print OUT "#pragma GCC system_header\n"; # suppress include_next
warning
print OUT "#pragma GCC visibility push(default)\n";
+ print OUT "#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n";
print OUT "#include_next \<$_\>\n";
+ print OUT "#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n";
print OUT "#pragma GCC visibility pop\n";
close OUT;
}
This may need to be done to Firefox as well.
----- FAAC:
Add CFLAGS=-std=c99 CXXFLAGS=-std=c++98 to configure.
Note that it still spits out a ton of warnings. I will probably make a
patch for this as well, fixing all of those warnings.
Douglas R. Reno
--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page