Go on G4 Power PC, OS X 10.4.11?

179 views
Skip to first unread message

Carsten Kuckuk

unread,
Nov 16, 2009, 4:55:21 PM11/16/09
to golan...@googlegroups.com
Hello list,

does anybody know what the status of gccgo is regarding G4 Power PC?
I.e.: How far will I come if I check out the sources, and make it
compile on an old 533 MHz G4 running OS X 10.4.11?

Regards,

Carsten

carstenkuckuk

unread,
Nov 17, 2009, 4:33:21 AM11/17/09
to golang-nuts
Here's an update: First I downloaded the gmp sources and the mpfr
sources from the gcc infrastructure folder, did the usual ./configure,
make, make check, sudo make install. That went fine. Then I checked
out the gogcc source tree. I configured it with:

michael-kuckuks-power-mac-g4:~/go ck$ mkdir objdir
michael-kuckuks-power-mac-g4:~/go ck$ cd objdir/
michael-kuckuks-power-mac-g4:~/go/objdir ck$ ../gccgo/configure --
enable-languages=c,c++,go --prefix=/opt/gccgo

then started make, and let it run all night. This morning, I was
greeted with this error message:

"/Users/ck/go/objdir/powerpc-apple-darwin8.11.0/ppc64/libstdc++-v3/
src/../libsupc++/.libs/libsupc++convenience.a")
libtool: link: /Users/ck/go/objdir/./gcc/xgcc -shared-libgcc -B/Users/
ck/go/objdir/./gcc -nostdinc++ -L/Users/ck/go/objdir/powerpc-apple-
darwin8.11.0/ppc64/libstdc++-v3/src -L/Users/ck/go/objdir/powerpc-
apple-darwin8.11.0/ppc64/libstdc++-v3/src/.libs -B/opt/gccgo/powerpc-
apple-darwin8.11.0/bin/ -B/opt/gccgo/powerpc-apple-darwin8.11.0/lib/ -
isystem /opt/gccgo/powerpc-apple-darwin8.11.0/include -isystem /opt/
gccgo/powerpc-apple-darwin8.11.0/sys-include -m64 -dynamiclib -Wl,-
flat_namespace -Wl,-undefined -Wl,suppress -o .libs/libstdc++.
6.dylib .libs/atomic.o .libs/bitmap_allocator.o .libs/
pool_allocator.o .libs/mt_allocator.o .libs/codecvt.o .libs/
compatibility.o .libs/complex_io.o .libs/ctype.o .libs/debug.o .libs/
functexcept.o .libs/hash_tr1.o .libs/hash_c++0x.o .libs/
globals_io.o .libs/hashtable_tr1.o .libs/hashtable_c++0x.o .libs/
ios.o .libs/ios_failure.o .libs/ios_init.o .libs/ios_locale.o .libs/
limits.o .libs/limits_c++0x.o .libs/list.o .libs/debug_list.o .libs/
locale.o .libs/locale_init.o .libs/locale_facets.o .libs/
localename.o .libs/math_stubs_float.o .libs/
math_stubs_long_double.o .libs/stdexcept.o .libs/strstream.o .libs/
system_error.o .libs/tree.o .libs/allocator-inst.o .libs/concept-
inst.o .libs/fstream-inst.o .libs/ext-inst.o .libs/ios-inst.o .libs/
iostream-inst.o .libs/istream-inst.o .libs/istream.o .libs/locale-
inst.o .libs/misc-inst.o .libs/ostream-inst.o .libs/sstream-
inst.o .libs/streambuf-inst.o .libs/streambuf.o .libs/string-
inst.o .libs/valarray-inst.o .libs/wlocale-inst.o .libs/wstring-
inst.o .libs/mutex.o .libs/condition_variable.o .libs/chrono.o .libs/
thread.o .libs/future.o .libs/atomicity.o .libs/
codecvt_members.o .libs/collate_members.o .libs/ctype_members.o .libs/
messages_members.o .libs/monetary_members.o .libs/
numeric_members.o .libs/time_members.o .libs/basic_file.o .libs/c+
+locale.o .libs/libstdc++.lax/libsupc++convenience.a/
array_type_info.o .libs/libstdc++.lax/libsupc++convenience.a/
atexit_arm.o .libs/libstdc++.lax/libsupc++convenience.a/
bad_cast.o .libs/libstdc++.lax/libsupc++convenience.a/
bad_typeid.o .libs/libstdc++.lax/libsupc++convenience.a/
class_type_info.o .libs/libstdc++.lax/libsupc++convenience.a/cp-
demangle.o .libs/libstdc++.lax/libsupc++convenience.a/del_op.o .libs/
libstdc++.lax/libsupc++convenience.a/del_opnt.o .libs/libstdc++.lax/
libsupc++convenience.a/del_opv.o .libs/libstdc++.lax/libsupc+
+convenience.a/del_opvnt.o .libs/libstdc++.lax/libsupc++convenience.a/
dyncast.o .libs/libstdc++.lax/libsupc++convenience.a/eh_alloc.o .libs/
libstdc++.lax/libsupc++convenience.a/eh_arm.o .libs/libstdc++.lax/
libsupc++convenience.a/eh_aux_runtime.o .libs/libstdc++.lax/libsupc+
+convenience.a/eh_call.o .libs/libstdc++.lax/libsupc++convenience.a/
eh_catch.o .libs/libstdc++.lax/libsupc++convenience.a/
eh_exception.o .libs/libstdc++.lax/libsupc++convenience.a/
eh_globals.o .libs/libstdc++.lax/libsupc++convenience.a/
eh_personality.o .libs/libstdc++.lax/libsupc++convenience.a/
eh_ptr.o .libs/libstdc++.lax/libsupc++convenience.a/
eh_term_handler.o .libs/libstdc++.lax/libsupc++convenience.a/
eh_terminate.o .libs/libstdc++.lax/libsupc++convenience.a/
eh_throw.o .libs/libstdc++.lax/libsupc++convenience.a/eh_type.o .libs/
libstdc++.lax/libsupc++convenience.a/eh_unex_handler.o .libs/libstdc+
+.lax/libsupc++convenience.a/enum_type_info.o .libs/libstdc++.lax/
libsupc++convenience.a/function_type_info.o .libs/libstdc++.lax/libsupc
++convenience.a/fundamental_type_info.o .libs/libstdc++.lax/libsupc+
+convenience.a/guard.o .libs/libstdc++.lax/libsupc++convenience.a/
new_handler.o .libs/libstdc++.lax/libsupc++convenience.a/
new_op.o .libs/libstdc++.lax/libsupc++convenience.a/new_opnt.o .libs/
libstdc++.lax/libsupc++convenience.a/new_opv.o .libs/libstdc++.lax/
libsupc++convenience.a/new_opvnt.o .libs/libstdc++.lax/libsupc+
+convenience.a/pbase_type_info.o .libs/libstdc++.lax/libsupc+
+convenience.a/pmem_type_info.o .libs/libstdc++.lax/libsupc+
+convenience.a/pointer_type_info.o .libs/libstdc++.lax/libsupc+
+convenience.a/pure.o .libs/libstdc++.lax/libsupc++convenience.a/
si_class_type_info.o .libs/libstdc++.lax/libsupc++convenience.a/
tinfo.o .libs/libstdc++.lax/libsupc++convenience.a/tinfo2.o .libs/
libstdc++.lax/libsupc++convenience.a/vec.o .libs/libstdc++.lax/libsupc+
+convenience.a/vmi_class_type_info.o .libs/libstdc++.lax/libsupc+
+convenience.a/vterminate.o -L/Users/ck/go/objdir/powerpc-apple-
darwin8.11.0/ppc64/libstdc++-v3/src -L/Users/ck/go/objdir/powerpc-
apple-darwin8.11.0/ppc64/libstdc++-v3/src/.libs -lm -m64 -Wl,-
single_module -m64 -Wl,-exported_symbols_list -Wl,libstdc++-
symbols.explist -install_name /opt/gccgo/lib/ppc64/libstdc++.
6.dylib -compatibility_version 7 -current_version 7.14 -Wl,-
single_module
dyld: Symbol not found: ___dso_handle
Referenced from: /Users/ck/go/objdir/powerpc-apple-darwin8.11.0/
libstdc++-v3/src/.libs/libstdc++.6.dylib
Expected in: flat namespace

/usr/bin/ld: fatal error in /usr/bin/ld64
collect2: ld returned 1 exit status
make[9]: *** [libstdc++.la] Error 1
make[8]: *** [all-recursive] Error 1
make[7]: *** [all] Error 2
make[6]: *** [multi-do] Error 1
make[5]: *** [all-multi] Error 2
make[4]: *** [all-recursive] Error 1
make[3]: *** [all] Error 2
make[2]: *** [all-stage1-target-libstdc++-v3] Error 2
make[1]: *** [stage1-bubble] Error 2
make: *** [all] Error 2
michael-kuckuks-power-mac-g4:~/go/objdir ck$

Looks like building the gcc part on OS 10.4.11 is already challenge
enough.

Regards,

Carsten

Ian Lance Taylor

unread,
Nov 17, 2009, 11:00:42 AM11/17/09
to carstenkuckuk, golang-nuts
carstenkuckuk <carste...@gmail.com> writes:

> dyld: Symbol not found: ___dso_handle
> Referenced from: /Users/ck/go/objdir/powerpc-apple-darwin8.11.0/
> libstdc++-v3/src/.libs/libstdc++.6.dylib
> Expected in: flat namespace
>
> /usr/bin/ld: fatal error in /usr/bin/ld64
> collect2: ld returned 1 exit status
> make[9]: *** [libstdc++.la] Error 1

> Looks like building the gcc part on OS 10.4.11 is already challenge
> enough.

Indeed, that's not even a Go-related error. Gccgo is based on gcc
mainline, so it's possible that this is simply a gcc development bug,
or it may be a more longstanding problem. I don't know.

Since Apple prohibited their developers from working on gcc, support
for gcc on Apple has unfortunately degraded.

Ian

Carsten Kuckuk

unread,
Nov 17, 2009, 3:21:01 PM11/17/09
to Ian Lance Taylor, golang-nuts
Ian,

Thank you for your reply. I googled for that error message, and some
posts that came up suggested installing a newer version of cctools. So
I went to gcc.gnu.org again, and got myself cctools-590.36. At first I
used the bzipped sources, and tried to compile them, but that didn't
work as it ran into some errors in the source code. (Pretty strange).
As this did not work out, I downloaded the prepared DMG file, and
installed cctools from there. Now I've done "make clean" followed by
"make".

I'll post the results once I have them, which can take a while on that
old machine...

Regards,

Carsten

Carsten Kuckuk

unread,
Nov 19, 2009, 4:04:00 AM11/19/09
to Ian Lance Taylor, golang-nuts
Quick update: My G4 has been running for 36 hours now, and still
hasn't finished the "make". I seem to remember that the GCC build
process called for three complete compiles of gcc. When I set up an
LFS a few years ago, that was about six hours. Does anybody on this
list have any idea of what time I have to expect these days?

Ben Bullock

unread,
Nov 19, 2009, 4:25:32 AM11/19/09
to golang-nuts
On Nov 19, 6:04 pm, Carsten Kuckuk <carstenkuc...@gmail.com> wrote:
> Quick update: My G4 has been running for 36 hours now, and still
> hasn't finished the "make". I seem to remember that the GCC build
> process called for three complete compiles of gcc. When I set up an
> LFS a few years ago, that was about six hours. Does anybody on this
> list have any idea of what time I have to expect these days?

I built gccgo today - started at 11 am and finished at about 5 pm.
This is on a low-powered Intel Atom 330-based computer with Ubuntu OS.
The 8g compilers take about five minutes from start to finish to build
on the same computer.

Reply all
Reply to author
Forward
0 new messages