#24194: gcc42, gcc43, gcc44 won't compile with non-default build_arch -------------------------------+-------------------------------------------- Reporter: gvibe06@… | Owner: mww@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 1.8.2 Keywords: | Port: gcc44 gcc43 gcc42 -------------------------------+-------------------------------------------- Comment(by kyle-macports@…): Actually, having added `-m64` to the configure flags, the compiler then proceeds to error out in a new way. {{{ /usr/bin/gcc-4.0 -I../../gcc-4.4.4/libcpp -I. -I../../gcc-4.4.4/libcpp/../include -I../../gcc-4.4.4/libcpp/include -I/opt/local/include -g -fkeep-inline-functions -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing- format-attribute -pedantic -Wno-long-long -I../../gcc-4.4.4/libcpp -I. -I../../gcc-4.4.4/libcpp/../include -I../../gcc-4.4.4/libcpp/include -I/opt/local/include -c -o makedepend.o -MT makedepend.o -MMD -MP -MF .deps/makedepend.Tpo ../../gcc-4.4.4/libcpp/makedepend.c /usr/bin/gcc-4.0 -g -fkeep-inline-functions -L/opt/local/lib -m64 -o makedepend \ makedepend.o libcpp.a ../libiberty/libiberty.a \ -liconv ld: warning in makedepend.o, file is not of required architecture ld: warning in libcpp.a, file is not of required architecture ld: warning in ../libiberty/libiberty.a, file is not of required architecture Undefined symbols: "_main", referenced from: start in crt1.10.5.o ld: symbol(s) not found collect2: ld returned 1 exit status make[3]: *** [makedepend] Error 1 make[2]: *** [all-stage1-libcpp] Error 2 make[1]: *** [stage1-bubble] Error 2 make: *** [bootstrap] Error 2 Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc44/work/build" && /usr/bin/make bootstrap " returned error 2 DEBUG: Backtrace: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc44/work/build" && /usr/bin/make bootstrap " returned error 2 while executing "command_exec build" (procedure "portbuild::build_main" line 9) invoked from within "$procedure $targetname" Warning: the following items did not execute (for gcc44): org.macports.activate org.macports.build org.macports.destroot org.macports.install Error: Status 1 encountered during processing. To report a bug, see <http://guide.macports.org/#project.tickets> }}} Checking on libiberty.a reveals: {{{ $ find /opt/ -name libiberty.a -exec lipo -info {} \; input file /opt//local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc44/work/build /build-ppc64-apple-darwin9/libiberty/libiberty.a is not a fat file Non-fat file: /opt//local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc44/work/build /build-ppc64-apple-darwin9/libiberty/libiberty.a is architecture: ppc64 input file /opt//local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc44/work/build/libiberty/libiberty.a is not a fat file Non-fat file: /opt//local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc44/work/build/libiberty/libiberty.a is architecture: ppc7400 }}} I have no idea why gcc is building TWO copies of libiberty, much less why it's building one of them without the CFLAGS that the rest of it is built with... but that's what's going on. I'm attaching a full debug log. -- Ticket URL: <http://trac.macports.org/ticket/24194#comment:14> MacPorts <http://www.macports.org/> Ports system for Mac OS