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

MacPorts noreply at macports.org
Wed Sep 26 17:24:41 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 jwhowse4@…):

 Replying to [comment:79 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.

 I am using the latest XCode for Lion from the AppStore which is listed as
 version 4.5.  For this version of XCode there are no good versions,
 everything I try results in a bad version.

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


More information about the macports-tickets mailing list