Good day,

I'd like to share a series of patches which I've used to bring support of macOS back to GCL (attached).

Anyway, this doesn't work yet. GCL fails to build with log like:

libtool -static -o libpre_gcl.a ../o/alloc.o ../o/array.o ../o/assignment.o ../o/backq.o ../o/bds.o ../o/big.o ../o/bind.o ../o/bitop.o ../o/block.o ../o/catch.o ../o/cfun.o ../o/character.o ../o/clxsocket.o ../o/cmpaux.o ../o/conditional.o ../o/earith.o ../o/error.o ../o/eval.o ../o/fat_string.o ../o/file.o ../o/format.o ../o/frame.o ../o/funlink.o ../o/gbc.o ../o/gmp_wrappers.o ../o/gprof.o ../o/hash.o ../o/init_pari.o ../o/iteration.o ../o/let.o ../o/lex.o ../o/list.o ../o/macros.o ../o/main.o ../o/makefun.o ../o/mapfun.o ../o/multival.o ../o/new_init.o ../o/nfunlink.o ../o/nsocket.o ../o/num_arith.o ../o/num_co.o ../o/num_comp.o ../o/num_log.o ../o/num_pred.o ../o/num_rand.o ../o/num_sfun.o ../o/number.o ../o/package.o ../o/pathname.o ../o/predicate.o ../o/prelink.o ../o/print.o ../o/prog.o ../o/read.o ../o/reference.o ../o/regexpr.o ../o/run_process.o ../o/sequence.o ../o/sfasl.o ../o/sockets.o ../o/string.o ../o/structure.o ../o/symbol.o ../o/toplevel.o ../o/typespec.o ../o/unixfasl.o ../o/unixfsys.o ../o/unixsave.o ../o/unixsys.o ../o/unixtime.o ../o/usig.o ../o/usig2.o ../o/utils.o sys_pre_gcl.o 
cp ../o/gcllib.a libgclp.a
ranlib libgclp.a
touch raw_pre_gcl_map
gcc -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -m64 -Wl,-headerpad,72 -Wl,-no_pie -Wl,-stack_size -Wl,4000000 -L/opt/local/lib -Wl,-headerpad_max_install_names -fno-pie -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -arch x86_64 -Wl,-no_pie -m64 -Wl,-headerpad,72 -o raw_pre_gcl  -L.   -lpre_gcl `echo -lgmp -ldl  -lm | sed -e 's/-lncurses/ /'` -lc -lgclp
ld: warning: object file (/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/lib/crt1.o) was built for newer macOS version (10.4) than being linked (10.2)
ld: warning: dylib (/opt/local/lib/libgmp.dylib) was built for newer macOS version (12.0) than being linked (10.2)
duplicate symbol '_ctz' in:
    ./libpre_gcl.a(main.o)
    ./libgclp.a(user_init.o)
duplicate symbol '_clz' in:
    ./libpre_gcl.a(main.o)
    ./libgclp.a(user_init.o)
duplicate symbol '_ufmax' in:
...
duplicate symbol '_immnum_dpb' in:
    ./libpre_gcl.a(main.o)
    ./libpre_gcl.a(sys_pre_gcl.o)
duplicate symbol '_fixnum_ldb' in:
    ./libpre_gcl.a(main.o)
    ./libpre_gcl.a(sys_pre_gcl.o)
duplicate symbol '_immnum_ldb' in:
    ./libpre_gcl.a(main.o)
    ./libpre_gcl.a(sys_pre_gcl.o)
duplicate symbol '_m__gmpz_scan1' in:
    ./libpre_gcl.a(main.o)
    ./libpre_gcl.a(sys_pre_gcl.o)
duplicate symbol '_m__gmpz_scan0' in:
    ./libpre_gcl.a(main.o)
    ./libpre_gcl.a(sys_pre_gcl.o)
ld: 14688 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [raw_pre_gcl_map] Error 1
make: *** [unixport/saved_pre_gcl] Error 2


-- 
wbr, Kirill

Attachment: 0001-alloca-requires-stdlib.h-on-macOS.patch
Description: Binary data

Attachment: 0002-Limit-usage-of-FPE_SET_CTXT_ADDR-and-FPE_CLR_CTXT_CW.patch
Description: Binary data

Attachment: 0003-Use-monreset-instead-_mcleanup-on-macOS.patch
Description: Binary data

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to