[MacPorts] #36026: ld64 sometimes builds wrong which causes other software to fail to build

MacPorts noreply at macports.org
Wed Sep 26 09:34:02 PDT 2012


#36026: ld64 sometimes builds wrong which causes other software to fail to build
-------------------------+------------------------
  Reporter:  jwhowse4@…  |      Owner:  jeremyhu@…
      Type:  defect      |     Status:  new
  Priority:  Normal      |  Milestone:
 Component:  ports       |    Version:  2.1.2
Resolution:              |   Keywords:
      Port:  ld64        |
-------------------------+------------------------

Comment (by jeremyhu@…):

 Replying to [comment:77 jwhowse4@…]:
 > Actually as I indicated in my initial reply, under XCode 4.5.0 neither
 of these examples gives me a working linker.  In fact I have tried some
 other package orderings and so far I can not find an ordering which gives
 a working linker with XCode 4.5.0.  Strangely every ordering gives me a
 different linker, but none of them work.

 Exactly what Xcode version are you using to reproduce this with?


 Replying to [comment:78 jwhowse4@…]:
 > Replying to [comment:76 jeremyhu@…]:
 > > So I did what I said above, and both versions of ld have the
 N2ld4tool14DataInCodeAtomI6x86_64EE string (whereas your bad one didn't).
 Additionally, both seem to link an x86_64 executable just fine.
 > >
 > > Ugg... so could you give me the full macports-tst1 and macports-tst2
 (ie, build all the way through ld64 rather than stopping before llvm-3.1)?
 Additionally, please provide the preprocessed source for
 macho_relocatable_file.cpp and OutputFile.cpp for both the good and bad
 versions.
 >
 > I am unclear what you mean by preprocessed source for
 macho_relocatable_file.cpp and OutputFile.cpp.  Also do you want these
 results even if both versions are bad?

 Yes, I want the good and bad versions.

 The preprocessed source is the C code that is passed to the compiler after
 being preprocessed by the C preprocessor.  The C preprocessor takes care
 of the #-directives, macro expansion, etc.  You get those results using -E
 rather than -c.

 Eg:

 {{{
 $ clang -c file.c -o file.o  # This will compile file.c and produce an
 object file
 $ clang -E file.c -o file.preprocessed.c # This will save the preprocessed
 source
 }}}

 You will need to look through the build logs and produce the preprocessed
 source for the working and broken version.

-- 
Ticket URL: <https://trac.macports.org/ticket/36026#comment:79>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list