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

MacPorts noreply at macports.org
Thu Oct 4 20:33:32 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:80 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.

 It has taken me a while to regress to XCode 4.4.1 and rerun my previous
 experiments.  In about 2 hours a TAR file should appear in the DropBox
 that I shared with you previously containing all the information you
 requested.  Please let me know if you are able to get it, and whether you
 need anything additional.  As stated in the included README file things
 labeled 'tst1' produced a working linker and things labeled 'tst2'
 produced a broken linker.

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


More information about the macports-tickets mailing list