Opened 9 years ago

Closed 9 years ago

Last modified 18 months ago

#46801 closed defect (fixed)

ld64-127 causes build failures with Leopard/ppc (G4)

Reported by: zzanderr Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: PPC G4 Leopard Cc: mojca (Mojca Miklavec), kencu (Ken)
Port: ld64

Description (last modified by ryandesign (Ryan Carsten Schmidt))

The default choice for OS X 10.5.8, at least on 32-bit G4's, is ld64 +ld64_127. Out of the box, libgcc @4.9.2_1 will not build using this variant.

You might try adjusting the defaults for various particular platforms and OS versions (for all I know, ld64 +ld64_127 may work on a 64-bit G5).

While posting to an open ticket for libgcc, I noticed other people are having the same problem: #46557 and #45174. These failures might also be confounded with a recurring libgcc bootstrap regression issue (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63703).

NB: I am in the middle of rebuilding MacPorts from scratch after the registry became corrupted, prior to the failure of my PowerBook's DC-power logic board, for which I waited two weeks for a replacement. After the libgcc @4.9.2_1 build failed, I tried compiling libgcc @4.9.1_1, which worked back in November--again, failure. Then, following a vague suspicion that the root lay in the new division of ld64, I installed ld64 +ld64_97 and tried a third time--finally success. The failed attempts both boinked near the end of the build--over 6 hours on a PowerBook G4 @1.67 GHz. So I enjoyed an entire day of head-scratching and teeth-gnashing, all with little hope of success.

(Sorry, I needed to vent.) I realize you are a volunteer, and I sincerely thank you for your effort.

ld64_97's log unfortunately clobbered ld64-127's log, which consisted mostly of warnings, even though ld64-127 installed without so much as a burp. So below are logs of libgcc's failed and successful builds. I will also post them here: #46557.

Attachments (3)

libgcc-4.9.2_1-BAD_main.log (4.2 MB) - added by zzanderr 9 years ago.
libgcc-4.9.2_1-GOOD_main.log (13.7 MB) - added by zzanderr 9 years ago.
ld64-127_debug.log (81.2 KB) - added by zzanderr 9 years ago.

Change History (19)

Changed 9 years ago by zzanderr

Attachment: libgcc-4.9.2_1-BAD_main.log added

Changed 9 years ago by zzanderr

comment:1 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: libgcc removed
Owner: changed from macports-tickets@… to jeremyhu@…

comment:2 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Status: newassigned

Thanks for the detailed report. It is very much expected that ld64-127 should work with Leopard/ppc. Indeed, we're trying to also get it to work with Tiger, so we can eventually drop the ancient ld64-97 port.

comment:3 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Summary: ld64 @2 +ld64_127 : Wrong default for G4 Leopardld64-127 causes build failures with Leopard/ppc (G4)

comment:4 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

:info:build ld: 32-bit absolute address out of range (0x140D68FBC max is 4GB): from vtable for (anonymous namespace)::pass_branch_target_load_optimize2 + 0x0000001C 

comment:5 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Would you be able to figure out the exact invocation of the failing command (run the failing gcc command with -v -Wl,-v to get verbose details) and send me a tarball containing all the the object files and libraries involved, so I can try reproducing this?

comment:6 in reply to:  5 Changed 9 years ago by zzanderr

Replying to jeremyhu@…:

Would you be able to figure out the exact invocation of the failing command (run the failing gcc command with -v -Wl,-v to get verbose details) and send me a tarball containing all the the object files and libraries involved, so I can try reproducing this?

Could you clarify this? I'm not sure I understand.

comment:7 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

This is the failing command:

/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libgcc/work/build/./prev-gcc/xg++ -B/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libgcc/work/build/./prev-gcc/ -B/mp2/local/ppc-apple-darwin9/bin/ -nostdinc++ -B/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libgcc/work/build/prev-ppc-apple-darwin9/libstdc++-v3/src/.libs -B/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libgcc/work/build/prev-ppc-apple-darwin9/libstdc++-v3/libsupc++/.libs  -I/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libgcc/work/build/prev-ppc-apple-darwin9/libstdc++-v3/include/ppc-apple-darwin9  -I/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libgcc/work/build/prev-ppc-apple-darwin9/libstdc++-v3/include  -I/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libgcc/work/gcc-4.9.2/libstdc++-v3/libsupc++ -L/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libgcc/work/build/prev-ppc-apple-darwin9/libstdc++-v3/src/.libs -L/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc49/libgcc/work/build/prev-ppc-apple-darwin9/libstdc++-v3/libsupc++/.libs   -g -O2 -mdynamic-no-pic -gtoggle -DIN_GCC    -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc  -o cc1 c/c-lang.o c-family/stub-objc.o attribs.o c/c-errors.o c/c-decl.o c/c-typeck.o c/c-convert.o c/c-aux-info.o c/c-objc-common.o c/c-parser.o c/c-array-notation.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o c-family/c-format.o c-family/c-gimplify.o c-family/c-lex.o c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-spec.o c-family/c-cilkplus.o c-family/array-notation-common.o c-family/cilk.o c-family/c-ubsan.o darwin-c.o rs6000-c.o cc1-checksum.o libbackend.a main.o  libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a ../libcpp/libcpp.a  -liconv ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a  -L/mp2/local/lib -lcloog-isl -L/mp2/local/lib -lisl -L/mp2/local/lib -L/mp2/local/lib -L/mp2/local/lib -lmpc -lmpfr -lgmp   -lz

Run that at the appropriate location with the additional args: '-v -Wl,-v' that will show more verbose information, including the command line to ld.

Send me all of the relvant files (all the .o and .a files as well as libmpc, libmpfr, libgmp, and libz) and the command line to ld, so I can reproduce the problem.

Version 0, edited 9 years ago by jeremyhu (Jeremy Huddleston Sequoia) (next)

comment:8 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

I suspect a subtraction is being done, similar to the comment here:

http://bugs.freepascal.org/view.php?id=20879

comment:9 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Yeah, I see the problem. I'll get a fix in soon.

comment:10 in reply to:  8 Changed 9 years ago by zzanderr

Replying to jeremyhu@…:

I suspect a subtraction is being done, similar to the comment here:

http://bugs.freepascal.org/view.php?id=20879

Just deactivated libgcc, ld64 and ld64-97, then reinstalled ld64-127 to get a log.

I can try to rebuild libgcc with ld-127--unless you have solved it already...

Changed 9 years ago by zzanderr

Attachment: ld64-127_debug.log added

comment:11 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: fixed
Status: assignedclosed

comment:12 Changed 9 years ago by zzanderr

Great! I'll try it out tomorrow night. Thanks for the quick work.

comment:13 Changed 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Thanks for testing. If you run into the issue again (or something similar), grab the relevant files, so I can reproduce it.

comment:14 Changed 9 years ago by mojca (Mojca Miklavec)

Cc: mojca@… added

Cc Me!

comment:15 Changed 3 years ago by kencu (Ken)

Cc: kencu added

comment:16 Changed 18 months ago by barracuda156

Quite surprisingly, I have got an error with gcc48 now towards the very end of the build: turned out, ld64-97 +llvm5 was responsible. Activated +llvm33, and the build proceeded through completion. I have had a similar case when ld64-127 failed building some other gcc version.

(This is just for the record, no fixes needed.)

Note: See TracTickets for help on using tickets.