I&#39;ve compiled GCC 4.01 from Apple&#39;s source code:<br><a href="http://www.opensource.apple.com/darwinsource/10.5/">http://www.opensource.apple.com/darwinsource/10.5/</a><br><br>However that does not include the linker. The linker used on 
10.5 is actually from the ld64 project. Which looks to be a complete rewrite of ld from the cctools project. The ld64 source is available from the site linked above and can be easily compiled for debug.&nbsp; That said, the ld from cctools is still available on 
10.5 and has the path /usr/bin/ld_classic.<br><br>I&#39;m currently swamped with work but have been slowly debugging ld64 to see why it fails to initialize a data member which results in a NULL pointer dereference. Still, the only thing I have of interest is a backtrace. Which isn&#39;t enough to tell me if the problem is due to a bug in ld64 or malformed input files. Although I&#39;d argue all crashes are bugs and ld64 should be providing an error message on malformed input.
<br><br>#0&nbsp; 0x000222ac in ObjectFile::Section::getBaseAddress (this=0x0) at ObjectFile.h:182<br>182&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; uint64_t&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; getBaseAddress() { return fBaseAddress; }<br>(gdb) bt<br>#0&nbsp; 0x000222ac in ObjectFile::Section::getBaseAddress (this=0x0) at 
ObjectFile.h:182<br>#1&nbsp; 0x000224a0 in ObjectFile::Atom::getAddress (this=0x6decb0) at ObjectFile.h:269<br>#2&nbsp; 0x000c3a30 in mach_o::executable::Writer&lt;ppc&gt;::addObjectRelocs_powerpc (this=0x6f65a0, atom=0x6dea30, ref=0x6f34a0) at 
MachOWriterExecutable.hpp:2742<br>#3&nbsp; 0x0001309c in mach_o::executable::Writer&lt;ppc&gt;::addObjectRelocs (this=0x6f65a0, atom=0x6dea30, ref=0x6f34a0) at MachOWriterExecutable.hpp:2678<br>#4&nbsp; 0x001ab3e4 in mach_o::executable::Writer&lt;ppc&gt;::buildObjectFileFixups (this=0x6f65a0) at 
MachOWriterExecutable.hpp:3065<br>#5&nbsp; 0x001be094 in mach_o::executable::Writer&lt;ppc&gt;::buildFixups (this=0x6f65a0) at MachOWriterExecutable.hpp:2398<br>#6&nbsp; 0x001be108 in mach_o::executable::Writer&lt;ppc&gt;::buildLinkEdit (this=0x6f65a0) at 
MachOWriterExecutable.hpp:1834<br>#7&nbsp; 0x001be238 in mach_o::executable::Writer&lt;ppc&gt;::write (this=0x6f65a0, atoms=@0xbffef940, stabs=@0xbffef9c4, entryPointAtom=0x0, dyldHelperAtom=0x0, createUUID=false, canScatter=false, cpuConstraint=ObjectFile::Reader::kCpuAny, biggerThanTwoGigs=false) at 
MachOWriterExecutable.hpp:1814<br>#8&nbsp; 0x0000fec4 in Linker::writeOutput (this=0xbffef608) at /Users/coconnor/Development/External_projects/Darwin/ld64-77/src/ld.cpp:2700<br>#9&nbsp; 0x0001f5b0 in Linker::link (this=0xbffef608) at /Users/coconnor/Development/External_projects/Darwin/ld64-77/src/ld.cpp:585
<br>#10 0x0002113c in main (argc=465, argv=0xbffefb88) at /Users/coconnor/Development/External_projects/Darwin/ld64-77/src/ld.cpp:3568<br>(gdb) up 10<br>#10 0x0002113c in main (argc=465, argv=0xbffefb88) at /Users/coconnor/Development/External_projects/Darwin/ld64-77/src/ld.cpp:3568
<br>3568&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ld.link();<br><br><br><div class="gmail_quote">On Nov 15, 2007 1:56 AM, Chris Kuklewicz &lt;<a href="mailto:haskell@list.mightyreason.com">haskell@list.mightyreason.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
So I decided to try and route around the ld/collect2 problems with ghc-6.8.1 not<br>working on powerpc OS X 10.5<br><br>OS X 10.5 (Leopard) uses XCode 3.0 which has a gcc-4.0 toolchain.<br><br>So I try to get another gcc &amp; binutils from macports. &nbsp;This failed. &nbsp;All of
<br>gcc40 gcc41 gcc42 and gcc43 failed to compile successfully with macports.<br><br>So I switched to trying fink, which offers gcc-4.2.2 and this did compile and<br>install. &nbsp;Hooray.<br><br>Unfortunately, using ghc-6.6.1
 (from when I ran OS 10.4 Tiger) with gcc-4.2.2<br>does not work when compiling ghc-6.8.1 (at least on this platform).<br><br>&gt; ------------------------------------------------------------------------<br>&gt; == make boot -r;
<br>&gt; &nbsp;in /Users/chrisk/Documents/projects/haskell/build/ghc-6.8.1/ghc-6.8.1/compiler<br>&gt; ------------------------------------------------------------------------<br>&gt; ../utils/mkdirhier/mkdirhier stage1<br>&gt; for i in utils basicTypes types hsSyn prelude rename typecheck deSugar coreSyn vectorise specialise simplCore stranal stgSyn simplStg codeGen main profiling parser cprAnalysis ndpFlatten iface cmm nativeGen; do \
<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ../utils/mkdirhier/mkdirhier stage1/$i; \<br>&gt; &nbsp; &nbsp; &nbsp; done<br>&gt; Creating stage1/ghc_boot_platform.h...<br>&gt; Done.<br>&gt; ../utils/genprimopcode/genprimopcode --primop-tag &nbsp; &nbsp; &nbsp; &nbsp; &lt; prelude/primops.txt &gt; 
primop-tag.hs-incl<br>&gt; /bin/sh: line 1: 59384 Illegal instruction &nbsp; &nbsp; ../utils/genprimopcode/genprimopcode --primop-tag &lt; prelude/primops.txt &gt; primop-tag.hs-incl<br>&gt; make[1]: *** [primop-tag.hs-incl] Error 132
<br>&gt; make[1]: *** Deleting file `primop-tag.hs-incl&#39;<br>&gt; make: *** [stage1] Error 1<br><br>Running &quot;../utils/genprimopcode/genprimopcode --primop-tag&quot; produces &quot;Illegal<br>instruction&quot;<br><br>
There were other odd messages during the make,such as in this early output:<br><br>&gt; ------------------------------------------------------------------------<br>&gt; == make boot -r;<br>&gt; &nbsp;in /Users/chrisk/Documents/projects/haskell/build/ghc-
6.8.1/ghc-6.8.1/compat<br>&gt; ------------------------------------------------------------------------<br>&gt; ../utils/mkdependC/mkdependC -f .depend &nbsp; &nbsp;-I. -Iinclude -I../includes &nbsp;-- -O -I. -Iinclude -D__GHC_PATCHLEVEL__=1 -I../libraries/base/cbits -I../libraries/base/include &nbsp; &nbsp;-- cbits/directory.c cbits/rawSystem.c cbits/unicode.c
<br>&gt; /usr/local/bin/ghc -M -optdep-f -optdep.depend &nbsp;-osuf o &nbsp; &nbsp;-H16m -O -w -I. -Iinclude -Rghc-timing -ignore-package Cabal -ignore-package filepath -I../libraries -fglasgow-exts -no-recomp Compat/Directory.hs Compat/RawSystem.hs Compat/Unicode.hs Distribution/Compat/Directory.hs Distribution/Compat/Exception.hs Distribution/Compat/Map.hs Distribution/Compat/RawSystem.hs Distribution/Compat/ReadP.hs Distribution/Compat/TempFile.hs Distribution/Compiler.hs Distribution/GetOpt.hs Distribution/InstalledPackageInfo.hs Distribution/License.hs Distribution/Package.hs Distribution/ParseUtils.hs Distribution/Simple/Program.hs Distribution/Simple/Utils.hs Distribution/System.hs Distribution/Verbosity.hs Distribution/Version.hs Language/Haskell/Extension.hs System/FilePath.hs System/FilePath/Posix.hs System/FilePath/Windows.hs Trace/Hpc/Mix.hs Trace/Hpc/Tix.hs Trace/Hpc/Util.hs
<br>&gt; &lt;&lt;ghc: 36490248 bytes, 5 GCs, 130248/130248 avg/max bytes residency (1 samples), 16M in use, 0.01 INIT (0.01 elapsed), 0.22 MUT (4.47 elapsed), 0.06 GC (0.43 elapsed) :ghc&gt;&gt;<br>&gt; make all<br>&gt; /usr/local/bin/ghc -H16m -O -w -I. -Iinclude -Rghc-timing &nbsp;-ignore-package Cabal -ignore-package filepath -I../libraries -fglasgow-exts -no-recomp &nbsp; &nbsp;-c System/FilePath/Posix.hs -o System/FilePath/Posix.o &nbsp;-ohi System/FilePath/Posix.hi
<br>&gt; gcc: unrecognized option &#39;-no-cpp-precomp&#39;<br>&gt;<br>&gt; /var/folders/CT/CTQA-fMz2RWZwk+BYmhr7U++-Eg/-Tmp-//ghc64877_0/ghc64877_0.s:6606:0:<br>&gt; &nbsp; &nbsp; section difference relocatable subtraction expression, &quot;_s2tx_0_alt&quot; minus &quot;_s2tx_info&quot; using a symbol at the end of section will not produce an assembly time constant
<br>&gt;<br>&gt; /var/folders/CT/CTQA-fMz2RWZwk+BYmhr7U++-Eg/-Tmp-//ghc64877_0/ghc64877_0.s:6606:0:<br>&gt; &nbsp; &nbsp; use a symbol with a constant value created with an assignment instead of the expression, L_const_sym = _s2tx_0_alt - _s2tx_info
<br><br><br>The &#39;-no-cpp-precomp&#39; and &#39;section difference ...&#39; and &#39;use a symbol ...&#39;<br>messages repeat often.<br><br>I looked at trac, and can only find the closed ticket<br><a href="http://hackage.haskell.org/trac/ghc/ticket/1427" target="_blank">
http://hackage.haskell.org/trac/ghc/ticket/1427</a><br>relating to gcc-4.2 issues.<br><br>Does anyone have suggestions? hints? bad jokes?<br><font color="#888888"><br>--<br>Chris K<br>_______________________________________________
<br>Glasgow-haskell-users mailing list<br><a href="mailto:Glasgow-haskell-users@haskell.org">Glasgow-haskell-users@haskell.org</a><br><a href="http://www.haskell.org/mailman/listinfo/glasgow-haskell-users" target="_blank">
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users</a><br></font></blockquote></div><br><br clear="all"><br>-- <br>-Corey O&#39;Connor