Closed Bug 343886 Opened 18 years ago Closed 18 years ago

Errors due to symbol visibility attribute when building with development GCC builds

Categories

(Firefox Build System :: General, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: ahaas, Assigned: benjamin)

Details

Attachments

(1 file)

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?
Assignee: nobody → benjamin
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?
Status: UNCONFIRMED → NEW
Ever confirmed: true
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.
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Component: Build Config → General
Product: Firefox → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: