# Build errors on powerpc macos

**URL:** <https://racket.discourse.group/t/build-errors-on-powerpc-macos/3004>\
**Category:** Questions & Answers\
**Created:** [July 5, 2024, 1:55pm UTC](https://racket.discourse.group/t/build-errors-on-powerpc-macos/3004 "2024-07-05T13:55:13Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![jjsimpso](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jjsimpso/32/602_2.png) [@jjsimpso](https://racket.discourse.group/u/jjsimpso)\
**Post date:** [July 5, 2024, 1:55pm UTC](https://racket.discourse.group/t/build-errors-on-powerpc-macos/3004/1 "2024-07-05T13:55:13Z")

</div>

I've tried to build racket on two different powerpc macs and so far have not been successful. Is there a minimum macos or xcode version that I need? Should I build BC or CS variants?

I'm building from the official racket-8.13-minimal-src.tgz distribution.

First machine:  
Powerbook G4 running 10.3.3  
Numerous errors here with both CS and BC, so I think the OS is probably just too old.

Second machine:  
Mac mini G4 running 10.4.11  
GCC version 4.0.1  
Ran configure with default options  
Build fails with a libtool error:

```scheme
bin/zuo . all MAKE="make"
cs/c/ChezScheme/boot/tppc32osx/petite.boot is up to date
cs/c/ChezScheme/tppc32osx/bin/tppc32osx/scheme is up to date
cs/c/ChezScheme/tppc32osx/bin/tppc32osx/petite is up to date
cs/c/ChezScheme/tppc32osx/s/bootstrap is up to date
cs/c/check-bootstrap-same-stamp is up to date
cs/c/racket.boot is up to date
gcc -DOS_X -g -O2 -Wall -o cs/c/Racket.framework/Versions/8.13_CS/Racket cs/c/boot.o cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a cs/c/ChezScheme/tppc32osx/zlib/libz.a cs/c/ChezScheme/tppc32osx/lz4/lib/liblz4.a cs/c/rktio/librktio.a -Wl,-headerpad_max_install_names -dynamiclib -all_load -install_name Racket.framework/Versions/8.13_CS/Racket -ldl -lm -framework CoreFoundation -liconv -lncurses
ld: common symbols not allowed with MH_DYLIB output format with the -multi_module option
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_G (size 8056)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_abnormal_exit_proc (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_alloc_mutex (size 52)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_alloc_mutex_depth (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_boot_time (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_checkheap (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_checkheap_errors (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_child_processes (size 32)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_chunks (size 36)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_chunks_full (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_code_chunks (size 36)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_code_chunks_full (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_collect_cond (size 28)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_collect_thread0_cond (size 28)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_collect_waiting_tcs (size 64)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_collect_waiting_threads (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_errors_to_console (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_foreign_dynamic (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_main_thread_id (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_nthreads (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_num_preserve_ownership_threads (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_pagesize (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_segment_info (size 2097152)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_tc_key (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_tc_mutex (size 52)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_tc_mutex_depth (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_terminated_cond (size 28)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_threads (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _S_vfasl_boot_mode (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _Sdefaultheapdirs (size 4)
cs/c/ChezScheme/tppc32osx/boot/tppc32osx/libkernel.a(statics.o) definition of common _Sschemeheapdirs (size 4)
/usr/bin/libtool: internal link edit command failed
compile failed
 in build-one
 in loop
 in module->hash
make: *** [all] Error 1

```

---

<div class="post-metadata">

**Author:** ![mflatt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/mflatt/32/6_2.png) [@mflatt](https://racket.discourse.group/u/mflatt)\
**Post date:** [July 5, 2024, 8:37pm UTC](https://racket.discourse.group/t/build-errors-on-powerpc-macos/3004/2 "2024-07-05T20:37:22Z")

</div>

Although I've built on a PowerPC Mac relatively recently, it was with Mac OS 10.5. I vaguely recall that I had to upgrade to 10.5 years ago because 10.4 was too old to be practical, but I'm not sure I remember correctly.

---

<div class="post-metadata">

**Author:** ![jjsimpso](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jjsimpso/32/602_2.png) [@jjsimpso](https://racket.discourse.group/u/jjsimpso)\
**Post date:** [July 5, 2024, 10:12pm UTC](https://racket.discourse.group/t/build-errors-on-powerpc-macos/3004/3 "2024-07-05T22:12:45Z")

</div>

I can probably install 10.5 on one of my machines. It is good to have confirmation that it should work. I'll update this thread when I get a chance to try it.

---

<div class="post-metadata">

**Author:** ![jjsimpso](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jjsimpso/32/602_2.png) [@jjsimpso](https://racket.discourse.group/u/jjsimpso)\
**Post date:** [July 8, 2024, 2:15pm UTC](https://racket.discourse.group/t/build-errors-on-powerpc-macos/3004/4 "2024-07-08T14:15:07Z")

</div>

I'm almost there. Racket-minimal builds on Mac OS 10.5. I also have the replacement openssl libs from [libs/racket-ppc-macosx-3/racket at master · racket/libs · GitHub](https://github.com/racket/libs/tree/master/racket-ppc-macosx-3/racket).

My issue now(I think) is that the I don't have valid CA certificates for openssl. I tried copying certs from a linux box and putting them in `/System/Library/OpenSSL/certs` but it made no difference. I also tried setting SSL\_CERT\_DIR. I'm not sure where this openssl library is looking for the certs. I realize this is not a Racket issue but anyone know the solution here?

```scheme
Macintosh:bin jonathan$ ./raco pkg update --auto racket-libInferred package scope: installation
Resolving "racket-lib" via https://download.racket-lang.org/releases/8.13/catalog/
ssl-connect: connect failed (error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed)
  context...:
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/openssl/mzssl.rkt:369:0: error/network
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/openssl/mzssl.rkt:1438:0: wrap-ports
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/racket/contract/private/arrow-val-first.rkt:555:3
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/net/http-client.rkt:67:0: http-conn-open!
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/net/http-client.rkt:274:0: http-conn-open
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/racket/contract/private/arrow-val-first.rkt:555:3
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/net/url.rkt:201:0: http://getpost-impure-port
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/net/url.rkt:304:0: get-pure-port/headers
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/racket/contract/private/arrow-val-first.rkt:555:3
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/pkg/private/network.rkt:59:3
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/pkg/private/catalog.rkt:218:0: read-from-server
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/pkg/private/catalog.rkt:135:2: lookup-normally
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/pkg/private/stage.rkt:62:2: lookup-normally
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/pkg/private/prefetch.rkt:129:4
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/pkg/private/prefetch.rkt:128:2
   /Users/jonathan/Public/ppc racket/racket-8.13/collects/pkg/private/../../racket/match/compiler.rkt:559:40: f569
   ...

```

---

<div class="post-metadata">

**Author:** ![mflatt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/mflatt/32/6_2.png) [@mflatt](https://racket.discourse.group/u/mflatt)\
**Post date:** [July 8, 2024, 10:21pm UTC](https://racket.discourse.group/t/build-errors-on-powerpc-macos/3004/5 "2024-07-08T22:21:22Z")

</div>

I forgot about that problem. My solution here has been to set the `PLT_PKG_SSL_NO_VERIFY` and `GIT_SSL_NO_VERIFY` environment variables.

---

<div class="post-metadata">

**Author:** ![jjsimpso](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jjsimpso/32/602_2.png) [@jjsimpso](https://racket.discourse.group/u/jjsimpso)\
**Post date:** [July 10, 2024, 2:01pm UTC](https://racket.discourse.group/t/build-errors-on-powerpc-macos/3004/6 "2024-07-10T14:01:13Z")

</div>

Those environment variables did the trick. I now have racket built and running on a Mac Mini G4! Thanks for all the help.
