Created attachment 430726 [details]
emerge --info firefox
I just ran emerge firefox. The build log outputs:
/var/tmp/portage/www-client/firefox-45.0.1/work/firefox-45.0.1/xpcom/io/nsLocalFileUnix.cpp: In member function 'virtual nsresult nsLocalFile::GetDiskSpaceAvailable(int64_t*)':
/var/tmp/portage/www-client/firefox-45.0.1/work/firefox-45.0.1/xpcom/io/nsLocalFileUnix.cpp:1395:46: error: 'major' was not declared in this scope
/var/tmp/portage/www-client/firefox-45.0.1/work/firefox-45.0.1/xpcom/io/nsLocalFileUnix.cpp:1396:46: error: 'minor' was not declared in this scope
/var/tmp/portage/www-client/firefox-45.0.1/work/firefox-45.0.1/config/rules.mk:956: recipe for target 'nsLocalFileUnix.o' failed
See attached my emerge --info.
On closer examination, it seems that "major" und "minor" are defined in sys/sysmacros.h (although the manpage says it's in sys/types.h) which is not included in the file nsLocalFileUnix.cpp.
On even closer examination, it's probably caused by this patch for glibc-2.23:
#including sys/sysmacros.h should mitigate it. I don't have time to post a patch for that currently, though.
Created attachment 456576 [details, diff]
glibc-2.24 also exposes the lack of major() macro problem.
firefox-50.1.0-glibc-2.24.patch is a crude workaround to get firefox building.
I don't understand yet why visibility change is required to force symbols
Thanks for the patch! Once i'm back at a computer that can do commits (1-2 days) i'll try and get this patch in place.
*** Bug 604412 has been marked as a duplicate of this bug. ***
I've opened an issue upstream here: https://bugzilla.mozilla.org/show_bug.cgi?id=1329798
*** Bug 605748 has been marked as a duplicate of this bug. ***
Created attachment 462198 [details, diff]
Here's a better patch. It adds a check for systems that do not have that header, and fixes visibility correctly. Note that if you use ccache, you may need to clear the cache due to visibility magic changes.
I have gone ahead and updated the patchset for firefox/thunderbird-52.0 in the mozilla overlay. We will not back port to esr which is intended for stable system setups only.
If you feel I have closed your bug and it is still a current issue, please reopen and update it completely. We will not work bugs that have no ebuild in tree any longer or can not be reproduced with a current system.
Thank You for your support and understanding
The Mozilla Team