This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ld: common symbols not allowed with MH_DYLIB output format with the -multi_module option
- From: Mike Stump <mrs at apple dot com>
- To: Mathieu Malaterre <mmalater at nycap dot rr dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 10 Jun 2005 15:25:22 -0700
- Subject: Re: ld: common symbols not allowed with MH_DYLIB output format with the -multi_module option
On Friday, June 10, 2005, at 02:48 PM, Mathieu Malaterre wrote:
Could someone please explain me what is going on?
You didn't use -fno-common.
Can someone please tell me then which one of the three possibilities
is the right one:
#1. I need to tell the linker to use -single_module
#2. Rewrite the code to make a fake initialization
#3. I need to pass -fno-common to the compiler
#3.
Now compared to the linker option, at least the compiler flag I can
specify it for the specific file I want, which is great. But then
again why is this up to the user to do it ? Is there a performance
reason ? Why isn't it the default ?
I refuse to answer that on that basis that marketing people might see
my answer. :-) Let's just call it a `bug'.
How do other people do when porting *nix lib to MacOSX ? Is this is
trial-and-error process to get the lib compiled ?
They use libtool, and it `knows' about -fno-common:
darwin* | rhapsody*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
;;