[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