# HG changeset patch # User J. Brown # Date 1476951900 14400 # Node ID cca249d09ef600650e6127c18be438a37e9d4587 # Parent d8bbf1a3957fd25ff24bfee51331c150b154cc39 Bug 1242901 - Fix linking libxul.so with binutils/GNU ld >= 2.26. r=glandium The build fails with: /usr/bin/ld: ../../xpcom/components/nsComponentManager.o: relocation R_386_GOTOFF against protected data `start_kPStaticModules_NSModule' can not be used when making a shared object /usr/bin/ld: final link failed: Bad value collect2: error: ld returned 1 exit status This is a patch from 2016/04/27 16:36:50 ryoon found on http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/firefox45/patches/#dirlist. diff --git a/xpcom/components/Module.h b/xpcom/components/Module.h --- a/xpcom/components/Module.h +++ b/xpcom/components/Module.h @@ -133,17 +133,17 @@ struct Module #if defined(MOZILLA_INTERNAL_API) # define NSMODULE_NAME(_name) _name##_NSModule # if defined(_MSC_VER) # pragma section(".kPStaticModules$M", read) # pragma comment(linker, "/merge:.kPStaticModules=.rdata") # define NSMODULE_SECTION __declspec(allocate(".kPStaticModules$M"), dllexport) # elif defined(__GNUC__) # if defined(__ELF__) -# define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), visibility("protected"))) +# define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), visibility("default"))) # elif defined(__MACH__) # define NSMODULE_SECTION __attribute__((section("__DATA, .kPStaticModules"), visibility("default"))) # elif defined (_WIN32) # define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), dllexport)) # endif # endif # if !defined(NSMODULE_SECTION) # error Do not know how to define sections.