User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20060706 SeaMonkey/1.5a Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20060706 SeaMonkey/1.5a Hi. A large number of symbol visibility patches landed into the GCC development tree at the end of June and beginning of July. The changes rework how GCC determines symbol visibility in C/C++ code, and according to the changelogs fix numerous bugs within GCC. However, the Mozilla/Firefox code now will no longer compile when being built with the current GCC development builds containing these fixes. As the development version of the compiler will branch at some point and become what will be GCC-4.2, it would be advantageous to try and resolve the symbol visibility problems before the official release of that version of GCC. Reproducible: Always Steps to Reproduce: 1. Download, build, and install GCC development compiler 2. Configure a Mozilla/Firefox build using the development GCC compiler 3. Try to build while saving the build log for the warning/error messages. Actual Results: Builds fail with numerous warnings/errors regarding symbol visibility. Expected Results: A successful build. The big patch regarding C++ visibility landed on June 29, and there have been various subsequent patches since then addressing other visiblity issues. Prior to the patch(es) landing, Firefox would build without problem; Mozilla/SeaMonkey builds would work mostly but there was an error in the mail/news code.
We have had lots of workaround for broken visibility handling in GCC... I'll look into the gcc-trunk issues. Could you perhaps post a build log of what's failing?
Created attachment 228468 [details] Compressed build log showing warnings/errors Hi. Here's a snippet of the build log. Uncompressed the log is about 6.8M, compressed it was about 400K, so my first attempt at uploading failed. After removing lots of essentially duplicated warnings during the build I've sent up a compressed file around 200K but it shows the warnings. The end of the log shows the link error that caused this build to fail.
c++ -o nsDependentString.o -c -I../../../dist/include/system_wrappers -include /home/arth/mozilla/config/gcc_hidden.h -DMOZILLA_INTERNAL_API -DOSTYPE=\"Linux2.6.17-1.2356\" -DOSARCH=\"Linux\" -DBUILD_ID=0000000000 -D_IMPL_NS_COM -I../../../dist/include/xpcom -I../../../dist/include -I../../../dist/include/string -I../../../dist/include/nspr -fPIC -fno-rtti -fno-exceptions -fno-check-new -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -O2 -march=pentium3 -DMOZILLA_CLIENT -include ../../../mozilla-config.h -Wp,-MD,.deps/nsDependentString.pp /home/arth/mozilla/xpcom/string/src/nsDependentString.cpp ../../../dist/include/xpcom/nsXPCOM.h:140: warning: ‚Äònsresult NS_InitXPCOM2_P(nsIServiceManager**, nsIFile*, nsIDirectoryServiceProvider*)‚Äô: visibility attribute requests greater visibility than its type allows Does anyone know what this warning actually means?
Hi. As of July 20, a number of visibility patches landed in the GCC development tree which address/correct the build problems I reported initially. There was a long thread on the GCC development mailing list regarding Mozilla's use of symbol visibility and how GCC handles symbol visibility in code and with the various command line options. The result of the thread was the application of changes to the C/C++ visibility handling in GCC which permit Mozilla/SeaMonkey/Firefox to build again. I suggest marking this bug as closed.
Yes, I discussed with Jason Merrill and this has all been resolved. Thanks all.