M1 Mac/HomeBrew で4章にトライ

2022.01.10版.
下記では筆者の試行錯誤が書いてあるが, gmp のビルドはあきらめて Debian で作った libgmp.a を利用. この libgmp.a などは ここ (tar.gz) からダウンロードして
mv ~/Downloads/opt.tar  ~
cd ~
tar xvf opt.tar
で ~/opt が作られる.
他は第4章の記述どおりで試すことができる.
注意 Finder の double click でtarアーカイブを展開して ~/opt を 作成しても shell から読み込めるフォルダは作成されないので 必ず上記の tar コマンドでアーカイブを展開する. Finder で展開してしまうと gmp.h not found などのエラーが emcc 利用時に発生する.

試行錯誤の記録

  1. 4.3 のGCDアプリまではテキストどおりでOK.
  2. 4.4 の GMP のビルドでは, いきなり emconfigure ./configure で止まる.
  3. Apple M1版 Mac で Emscripten SDK 設置問題 を参考に
    アプリケーション->utility->terminal で右クリック. ターミナルの情報で Rosetta を使用して開く, に check.


    これをやってからターミナルを起動. しかし GMP configure はいきなりは止まらなくなったが, 最後までできない.
    nobuki@NobukinoMacBook-Air gmp-6.2.1 % export PATH=/opt/homebrew/opt/llvm/bin:$PATH
    nobuki@NobukinoMacBook-Air gmp-6.2.1 % emconfigure ./configure --host=wasm32-unknown-emscripten --prefix=/Users/nobuki/this21/ox-book-a/chap4/opt
    configure: ./configure --host=wasm32-unknown-emscripten --prefix=/Users/nobuki/this21/ox-book-a/chap4/opt
    checking build system type... aarch64-apple-darwin21.2.0
    checking host system type... wasm32-unknown-emscripten
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for wasm32-unknown-emscripten-strip... no
    checking for strip... strip
    checking for a thread-safe mkdir -p... ./install-sh -c -d
    checking for gawk... no
    checking for mawk... no
    checking for nawk... no
    checking for awk... awk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking whether to enable maintainer-specific portions of Makefiles... no
    checking ABI=standard
    checking whether /Users/nobuki/tmp/emsdk/upstream/emscripten/emcc is gcc... yes
    checking compiler /Users/nobuki/tmp/emsdk/upstream/emscripten/emcc -O2 -pedantic ... yes
    checking for wasm32-unknown-emscripten-gcc... /Users/nobuki/tmp/emsdk/upstream/emscripten/emcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables... 
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether /Users/nobuki/tmp/emsdk/upstream/emscripten/emcc accepts -g... yes
    checking for /Users/nobuki/tmp/emsdk/upstream/emscripten/emcc option to accept ISO C89... none needed
    checking whether /Users/nobuki/tmp/emsdk/upstream/emscripten/emcc understands -c and -o together... yes
    checking for /Users/nobuki/tmp/emsdk/upstream/emscripten/emcc option to accept ISO C99... none needed
    checking how to run the C preprocessor... /Users/nobuki/tmp/emsdk/upstream/emscripten/emcc -E
    checking build system compiler /Users/nobuki/tmp/emsdk/upstream/bin/clang... no
    configure: error: Specified HOST_CC doesn't seem to work
    emconfigure: error: './configure --host=wasm32-unknown-emscripten --prefix=/Users/nobuki/this21/ox-book-a/chap4/opt' failed (returned 1)
    
  4. libgmp.a を Debian マシンで作成して Mac へ持ってくることを試みる. WSL2/Ubuntu-20.04 での configure.
    configure: ./configure --host=wasm32-unknown-emscripten --prefix=/home/nobuki/this21/tmp21/opt
    checking build system type... nehalem-pc-linux-gnu
    checking host system type... wasm32-unknown-emscripten
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for wasm32-unknown-emscripten-strip... no
    checking for strip... strip
    checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking whether to enable maintainer-specific portions of Makefiles... no
    checking ABI=standard
    checking whether /home/nobuki/tmp/emsdk/upstream/emscripten/emcc is gcc... yes
    checking compiler /home/nobuki/tmp/emsdk/upstream/emscripten/emcc -O2 -pedantic ... yes
    checking for wasm32-unknown-emscripten-gcc... /home/nobuki/tmp/emsdk/upstream/emscripten/emcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables... 
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether /home/nobuki/tmp/emsdk/upstream/emscripten/emcc accepts -g... yes
    checking for /home/nobuki/tmp/emsdk/upstream/emscripten/emcc option to accept ISO C89... none needed
    checking whether /home/nobuki/tmp/emsdk/upstream/emscripten/emcc understands -c and -o together... yes
    checking for /home/nobuki/tmp/emsdk/upstream/emscripten/emcc option to accept ISO C99... none needed
    checking how to run the C preprocessor... /home/nobuki/tmp/emsdk/upstream/emscripten/emcc -E
    checking build system compiler /home/nobuki/tmp/emsdk/upstream/bin/clang... yes
    checking for build system preprocessor... /home/nobuki/tmp/emsdk/upstream/bin/clang -E
    checking for build system executable suffix... 
    checking whether build system compiler is ANSI... yes
    checking for build system compiler math library... -lm
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    using ABI="standard"
          CC="/home/nobuki/tmp/emsdk/upstream/emscripten/emcc"
          CFLAGS="-O2 -pedantic"
          CPPFLAGS=""
          MPN_PATH="  generic"
    checking whether assembler supports --noexecstack option... no
    checking for wasm32-unknown-emscripten-ar... /home/nobuki/tmp/emsdk/upstream/emscripten/emar
    checking for BSD- or MS-compatible name lister (nm)... /home/nobuki/tmp/emsdk/upstream/bin/llvm-nm
    checking the name lister (/home/nobuki/tmp/emsdk/upstream/bin/llvm-nm) interface... BSD nm
    checking how to print strings... printf
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for fgrep... /usr/bin/grep -F
    checking for ld used by /home/nobuki/tmp/emsdk/upstream/emscripten/emcc... /home/nobuki/tmp/emsdk/upstream/emscripten/emcc
    checking if the linker (/home/nobuki/tmp/emsdk/upstream/emscripten/emcc) is GNU ld... yes
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 1572864
    checking how to convert nehalem-pc-linux-gnu file names to wasm32-unknown-emscripten format... func_convert_file_noop
    checking how to convert nehalem-pc-linux-gnu file names to toolchain format... func_convert_file_noop
    checking for /home/nobuki/tmp/emsdk/upstream/emscripten/emcc option to reload object files... -r
    checking for wasm32-unknown-emscripten-objdump... objdump
    checking how to recognize dependent libraries... unknown
    checking for wasm32-unknown-emscripten-dlltool... dlltool
    checking how to associate runtime and link libraries... printf %s\n
    checking for wasm32-unknown-emscripten-ar... (cached) /home/nobuki/tmp/emsdk/upstream/emscripten/emar
    checking for archiver @FILE support... @
    checking for wasm32-unknown-emscripten-strip... strip
    checking for wasm32-unknown-emscripten-ranlib... /home/nobuki/tmp/emsdk/upstream/emscripten/emranlib
    checking command to parse /home/nobuki/tmp/emsdk/upstream/bin/llvm-nm output from /home/nobuki/tmp/emsdk/upstream/emscripten/emcc object... ok
    checking for sysroot... no
    checking for a working dd... /usr/bin/dd
    checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
    checking for wasm32-unknown-emscripten-mt... no
    checking for mt... mt
    checking if mt is a manifest tool... no
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if /home/nobuki/tmp/emsdk/upstream/emscripten/emcc supports -fno-rtti -fno-exceptions... yes
    checking for /home/nobuki/tmp/emsdk/upstream/emscripten/emcc option to produce PIC... -fPIC -DPIC
    checking if /home/nobuki/tmp/emsdk/upstream/emscripten/emcc PIC flag -fPIC -DPIC works... yes
    checking if /home/nobuki/tmp/emsdk/upstream/emscripten/emcc static flag -static works... yes
    checking if /home/nobuki/tmp/emsdk/upstream/emscripten/emcc supports -c -o file.o... yes
    checking if /home/nobuki/tmp/emsdk/upstream/emscripten/emcc supports -c -o file.o... (cached) yes
    checking whether the /home/nobuki/tmp/emsdk/upstream/emscripten/emcc linker (/home/nobuki/tmp/emsdk/upstream/emscripten/emcc) supports shared libraries... emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.0 (8e1e305519e1027726a48861a1fec5662f7e18a2)
    clang version 14.0.0 (https://github.com/llvm/llvm-project 1a929525e86a20d0b3455a400d0dbed40b325a13)
    Target: wasm32-unknown-emscripten
    Thread model: posix
    InstalledDir: /home/nobuki/tmp/emsdk/upstream/bin
    yes
    checking whether -lc should be explicitly linked in... yes
    checking dynamic linker characteristics... no
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... no
    checking whether to build shared libraries... no
    checking whether to build static libraries... yes
    checking how to run the C++ preprocessor... /home/nobuki/tmp/emsdk/upstream/emscripten/em++ -E
    checking whether the /home/nobuki/tmp/emsdk/upstream/emscripten/em++ linker (/home/nobuki/tmp/emsdk/upstream/emscripten/emcc) supports shared libraries... no
    checking for /home/nobuki/tmp/emsdk/upstream/emscripten/em++ option to produce PIC...  -DPIC
    checking if /home/nobuki/tmp/emsdk/upstream/emscripten/em++ PIC flag  -DPIC works... yes
    checking if /home/nobuki/tmp/emsdk/upstream/emscripten/em++ static flag  works... yes
    checking if /home/nobuki/tmp/emsdk/upstream/emscripten/em++ supports -c -o file.o... yes
    checking if /home/nobuki/tmp/emsdk/upstream/emscripten/em++ supports -c -o file.o... (cached) yes
    checking whether the /home/nobuki/tmp/emsdk/upstream/emscripten/em++ linker (/home/nobuki/tmp/emsdk/upstream/emscripten/emcc) supports shared libraries... no
    checking dynamic linker characteristics... no
    checking how to hardcode library paths into programs... unsupported
    checking for ANSI C header files... (cached) yes
    checking whether time.h and sys/time.h may both be included... yes
    checking fcntl.h usability... yes
    checking fcntl.h presence... yes
    checking for fcntl.h... yes
    checking float.h usability... yes
    checking float.h presence... yes
    checking for float.h... yes
    checking invent.h usability... no
    checking invent.h presence... no
    checking for invent.h... no
    checking langinfo.h usability... yes
    checking langinfo.h presence... yes
    checking for langinfo.h... yes
    checking locale.h usability... yes
    checking locale.h presence... yes
    checking for locale.h... yes
    checking nl_types.h usability... yes
    checking nl_types.h presence... yes
    checking for nl_types.h... yes
    checking sys/attributes.h usability... no
    checking sys/attributes.h presence... no
    checking for sys/attributes.h... no
    checking sys/iograph.h usability... no
    checking sys/iograph.h presence... no
    checking for sys/iograph.h... no
    checking sys/mman.h usability... yes
    checking sys/mman.h presence... yes
    checking for sys/mman.h... yes
    checking sys/param.h usability... yes
    checking sys/param.h presence... yes
    checking for sys/param.h... yes
    checking sys/processor.h usability... no
    checking sys/processor.h presence... no
    checking for sys/processor.h... no
    checking sys/pstat.h usability... no
    checking sys/pstat.h presence... no
    checking for sys/pstat.h... no
    checking sys/sysinfo.h usability... yes
    checking sys/sysinfo.h presence... yes
    checking for sys/sysinfo.h... yes
    checking sys/syssgi.h usability... no
    checking sys/syssgi.h presence... no
    checking for sys/syssgi.h... no
    checking sys/systemcfg.h usability... no
    checking sys/systemcfg.h presence... no
    checking for sys/systemcfg.h... no
    checking sys/time.h usability... yes
    checking sys/time.h presence... yes
    checking for sys/time.h... yes
    checking sys/times.h usability... yes
    checking sys/times.h presence... yes
    checking for sys/times.h... yes
    checking for sys/resource.h... yes
    checking for sys/sysctl.h... yes
    checking for machine/hal_sysinfo.h... no
    checking whether fgetc is declared... yes
    checking whether fscanf is declared... yes
    checking whether optarg is declared... yes
    checking whether ungetc is declared... yes
    checking whether vfprintf is declared... yes
    checking whether sys_errlist is declared... no
    checking whether sys_nerr is declared... no
    checking return type of signal handlers... void
    checking for intmax_t... yes
    checking for long double... yes
    checking for long long... yes
    checking for ptrdiff_t... yes
    checking for quad_t... yes
    checking for uint_least32_t... yes
    checking for intptr_t... yes
    checking for working volatile... yes
    checking for C/C++ restrict keyword... __restrict
    checking whether gcc __attribute__ ((const)) works... yes
    checking whether gcc __attribute__ ((malloc)) works... yes
    checking whether gcc __attribute__ ((mode (XX))) works... yes
    checking whether gcc __attribute__ ((noreturn)) works... yes
    checking whether gcc hidden aliases work... yes
    checking for inline... inline
    checking for cos in -lm... yes
    checking for working alloca.h... yes
    checking for alloca (via gmp-impl.h)... yes
    checking how to allocate temporary memory... alloca
    checking whether byte ordering is bigendian... no
    checking format of `double' floating point... unknown 
    configure: WARNING: Could not determine float format.
    configure: WARNING: Conversions to and from "double" may be slow.
    checking for alarm... yes
    checking for attr_get... no
    checking for clock... yes
    checking for cputime... no
    checking for getpagesize... yes
    checking for getrusage... yes
    checking for gettimeofday... yes
    checking for getsysinfo... no
    checking for localeconv... yes
    checking for memset... yes
    checking for mmap... yes
    checking for mprotect... yes
    checking for nl_langinfo... yes
    checking for obstack_vprintf... no
    checking for popen... yes
    checking for processor_info... no
    checking for pstat_getprocessor... no
    checking for raise... yes
    checking for read_real_time... no
    checking for sigaction... yes
    checking for sigaltstack... no
    checking for sigstack... no
    checking for syssgi... no
    checking for strchr... yes
    checking for strerror... yes
    checking for strnlen... yes
    checking for strtol... yes
    checking for strtoul... yes
    checking for sysconf... yes
    checking for sysctl... no
    checking for sysctlbyname... no
    checking for times... yes
    checking for library containing clock_gettime... none required
    checking for vsnprintf... yes
    checking whether vsnprintf works... yes
    checking whether sscanf needs writable input... no
    checking for struct pst_processor.psp_iticksperclktick... no
    checking size of void *... 4
    checking size of unsigned short... 2
    checking size of unsigned... 4
    checking size of unsigned long... 4
    checking size of mp_limb_t... 4
    checking for stack_t... yes
    checking for tputs in -lncurses... no
    checking for tputs in -lcurses... no
    checking for readline in -lreadline... no
    checking readline detected... no
    checking for bison... bison -y
    checking for flex... no
    checking for lex... no
    creating config.m4
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating demos/pexpr-config.h
    config.status: creating demos/calc/calc-config.h
    config.status: creating Makefile
    config.status: creating mpf/Makefile
    config.status: creating mpn/Makefile
    config.status: creating mpq/Makefile
    config.status: creating mpz/Makefile
    config.status: creating printf/Makefile
    config.status: creating scanf/Makefile
    config.status: creating rand/Makefile
    config.status: creating cxx/Makefile
    config.status: creating tests/Makefile
    config.status: creating tests/devel/Makefile
    config.status: creating tests/mpf/Makefile
    config.status: creating tests/mpn/Makefile
    config.status: creating tests/mpq/Makefile
    config.status: creating tests/mpz/Makefile
    config.status: creating tests/rand/Makefile
    config.status: creating tests/misc/Makefile
    config.status: creating tests/cxx/Makefile
    config.status: creating doc/Makefile
    config.status: creating tune/Makefile
    config.status: creating demos/Makefile
    config.status: creating demos/calc/Makefile
    config.status: creating demos/expr/Makefile
    config.status: creating gmp.h
    config.status: creating gmp.pc
    config.status: creating gmpxx.pc
    config.status: creating config.h
    config.status: linking mpn/generic/add.c to mpn/add.c
    config.status: linking mpn/generic/add_1.c to mpn/add_1.c
    config.status: linking mpn/generic/add_n.c to mpn/add_n.c
    config.status: linking mpn/generic/sub.c to mpn/sub.c
    config.status: linking mpn/generic/sub_1.c to mpn/sub_1.c
    config.status: linking mpn/generic/sub_n.c to mpn/sub_n.c
    config.status: linking mpn/generic/cnd_add_n.c to mpn/cnd_add_n.c
    config.status: linking mpn/generic/cnd_sub_n.c to mpn/cnd_sub_n.c
    config.status: linking mpn/generic/cnd_swap.c to mpn/cnd_swap.c
    config.status: linking mpn/generic/neg.c to mpn/neg.c
    config.status: linking mpn/generic/com.c to mpn/com.c
    config.status: linking mpn/generic/mul_1.c to mpn/mul_1.c
    config.status: linking mpn/generic/addmul_1.c to mpn/addmul_1.c
    config.status: linking mpn/generic/submul_1.c to mpn/submul_1.c
    config.status: linking mpn/generic/add_err1_n.c to mpn/add_err1_n.c
    config.status: linking mpn/generic/add_err2_n.c to mpn/add_err2_n.c
    config.status: linking mpn/generic/add_err3_n.c to mpn/add_err3_n.c
    config.status: linking mpn/generic/sub_err1_n.c to mpn/sub_err1_n.c
    config.status: linking mpn/generic/sub_err2_n.c to mpn/sub_err2_n.c
    config.status: linking mpn/generic/sub_err3_n.c to mpn/sub_err3_n.c
    config.status: linking mpn/generic/lshift.c to mpn/lshift.c
    config.status: linking mpn/generic/rshift.c to mpn/rshift.c
    config.status: linking mpn/generic/dive_1.c to mpn/dive_1.c
    config.status: linking mpn/generic/diveby3.c to mpn/diveby3.c
    config.status: linking mpn/generic/divis.c to mpn/divis.c
    config.status: linking mpn/generic/divrem.c to mpn/divrem.c
    config.status: linking mpn/generic/divrem_1.c to mpn/divrem_1.c
    config.status: linking mpn/generic/divrem_2.c to mpn/divrem_2.c
    config.status: linking mpn/generic/fib2_ui.c to mpn/fib2_ui.c
    config.status: linking mpn/generic/fib2m.c to mpn/fib2m.c
    config.status: linking mpn/generic/mod_1.c to mpn/mod_1.c
    config.status: linking mpn/generic/mod_34lsub1.c to mpn/mod_34lsub1.c
    config.status: linking mpn/generic/mode1o.c to mpn/mode1o.c
    config.status: linking mpn/generic/pre_divrem_1.c to mpn/pre_divrem_1.c
    config.status: linking mpn/generic/pre_mod_1.c to mpn/pre_mod_1.c
    config.status: linking mpn/generic/dump.c to mpn/dump.c
    config.status: linking mpn/generic/mod_1_1.c to mpn/mod_1_1.c
    config.status: linking mpn/generic/mod_1_2.c to mpn/mod_1_2.c
    config.status: linking mpn/generic/mod_1_3.c to mpn/mod_1_3.c
    config.status: linking mpn/generic/mod_1_4.c to mpn/mod_1_4.c
    config.status: linking mpn/generic/lshiftc.c to mpn/lshiftc.c
    config.status: linking mpn/generic/mul.c to mpn/mul.c
    config.status: linking mpn/generic/mul_fft.c to mpn/mul_fft.c
    config.status: linking mpn/generic/mul_n.c to mpn/mul_n.c
    config.status: linking mpn/generic/sqr.c to mpn/sqr.c
    config.status: linking mpn/generic/mul_basecase.c to mpn/mul_basecase.c
    config.status: linking mpn/generic/sqr_basecase.c to mpn/sqr_basecase.c
    config.status: linking mpn/generic/nussbaumer_mul.c to mpn/nussbaumer_mul.c
    config.status: linking mpn/generic/mulmid_basecase.c to mpn/mulmid_basecase.c
    config.status: linking mpn/generic/toom42_mulmid.c to mpn/toom42_mulmid.c
    config.status: linking mpn/generic/mulmid_n.c to mpn/mulmid_n.c
    config.status: linking mpn/generic/mulmid.c to mpn/mulmid.c
    config.status: linking mpn/generic/random.c to mpn/random.c
    config.status: linking mpn/generic/random2.c to mpn/random2.c
    config.status: linking mpn/generic/pow_1.c to mpn/pow_1.c
    config.status: linking mpn/generic/rootrem.c to mpn/rootrem.c
    config.status: linking mpn/generic/sqrtrem.c to mpn/sqrtrem.c
    config.status: linking mpn/generic/sizeinbase.c to mpn/sizeinbase.c
    config.status: linking mpn/generic/get_str.c to mpn/get_str.c
    config.status: linking mpn/generic/set_str.c to mpn/set_str.c
    config.status: linking mpn/generic/compute_powtab.c to mpn/compute_powtab.c
    config.status: linking mpn/generic/scan0.c to mpn/scan0.c
    config.status: linking mpn/generic/scan1.c to mpn/scan1.c
    config.status: linking mpn/generic/popham.c to mpn/popcount.c
    config.status: linking mpn/generic/popham.c to mpn/hamdist.c
    config.status: linking mpn/generic/cmp.c to mpn/cmp.c
    config.status: linking mpn/generic/zero_p.c to mpn/zero_p.c
    config.status: linking mpn/generic/perfsqr.c to mpn/perfsqr.c
    config.status: linking mpn/generic/perfpow.c to mpn/perfpow.c
    config.status: linking mpn/generic/strongfibo.c to mpn/strongfibo.c
    config.status: linking mpn/generic/gcd_11.c to mpn/gcd_11.c
    config.status: linking mpn/generic/gcd_22.c to mpn/gcd_22.c
    config.status: linking mpn/generic/gcd_1.c to mpn/gcd_1.c
    config.status: linking mpn/generic/gcd.c to mpn/gcd.c
    config.status: linking mpn/generic/gcdext_1.c to mpn/gcdext_1.c
    config.status: linking mpn/generic/gcdext.c to mpn/gcdext.c
    config.status: linking mpn/generic/gcd_subdiv_step.c to mpn/gcd_subdiv_step.c
    config.status: linking mpn/generic/gcdext_lehmer.c to mpn/gcdext_lehmer.c
    config.status: linking mpn/generic/div_q.c to mpn/div_q.c
    config.status: linking mpn/generic/tdiv_qr.c to mpn/tdiv_qr.c
    config.status: linking mpn/generic/jacbase.c to mpn/jacbase.c
    config.status: linking mpn/generic/jacobi_2.c to mpn/jacobi_2.c
    config.status: linking mpn/generic/jacobi.c to mpn/jacobi.c
    config.status: linking mpn/generic/get_d.c to mpn/get_d.c
    config.status: linking mpn/generic/matrix22_mul.c to mpn/matrix22_mul.c
    config.status: linking mpn/generic/matrix22_mul1_inverse_vector.c to mpn/matrix22_mul1_inverse_vector.c
    config.status: linking mpn/generic/hgcd_matrix.c to mpn/hgcd_matrix.c
    config.status: linking mpn/generic/hgcd2.c to mpn/hgcd2.c
    config.status: linking mpn/generic/hgcd_step.c to mpn/hgcd_step.c
    config.status: linking mpn/generic/hgcd_reduce.c to mpn/hgcd_reduce.c
    config.status: linking mpn/generic/hgcd.c to mpn/hgcd.c
    config.status: linking mpn/generic/hgcd_appr.c to mpn/hgcd_appr.c
    config.status: linking mpn/generic/hgcd2_jacobi.c to mpn/hgcd2_jacobi.c
    config.status: linking mpn/generic/hgcd_jacobi.c to mpn/hgcd_jacobi.c
    config.status: linking mpn/generic/mullo_n.c to mpn/mullo_n.c
    config.status: linking mpn/generic/mullo_basecase.c to mpn/mullo_basecase.c
    config.status: linking mpn/generic/sqrlo.c to mpn/sqrlo.c
    config.status: linking mpn/generic/sqrlo_basecase.c to mpn/sqrlo_basecase.c
    config.status: linking mpn/generic/toom22_mul.c to mpn/toom22_mul.c
    config.status: linking mpn/generic/toom32_mul.c to mpn/toom32_mul.c
    config.status: linking mpn/generic/toom42_mul.c to mpn/toom42_mul.c
    config.status: linking mpn/generic/toom52_mul.c to mpn/toom52_mul.c
    config.status: linking mpn/generic/toom62_mul.c to mpn/toom62_mul.c
    config.status: linking mpn/generic/toom33_mul.c to mpn/toom33_mul.c
    config.status: linking mpn/generic/toom43_mul.c to mpn/toom43_mul.c
    config.status: linking mpn/generic/toom53_mul.c to mpn/toom53_mul.c
    config.status: linking mpn/generic/toom54_mul.c to mpn/toom54_mul.c
    config.status: linking mpn/generic/toom63_mul.c to mpn/toom63_mul.c
    config.status: linking mpn/generic/toom44_mul.c to mpn/toom44_mul.c
    config.status: linking mpn/generic/toom6h_mul.c to mpn/toom6h_mul.c
    config.status: linking mpn/generic/toom6_sqr.c to mpn/toom6_sqr.c
    config.status: linking mpn/generic/toom8h_mul.c to mpn/toom8h_mul.c
    config.status: linking mpn/generic/toom8_sqr.c to mpn/toom8_sqr.c
    config.status: linking mpn/generic/toom_couple_handling.c to mpn/toom_couple_handling.c
    config.status: linking mpn/generic/toom2_sqr.c to mpn/toom2_sqr.c
    config.status: linking mpn/generic/toom3_sqr.c to mpn/toom3_sqr.c
    config.status: linking mpn/generic/toom4_sqr.c to mpn/toom4_sqr.c
    config.status: linking mpn/generic/toom_eval_dgr3_pm1.c to mpn/toom_eval_dgr3_pm1.c
    config.status: linking mpn/generic/toom_eval_dgr3_pm2.c to mpn/toom_eval_dgr3_pm2.c
    config.status: linking mpn/generic/toom_eval_pm1.c to mpn/toom_eval_pm1.c
    config.status: linking mpn/generic/toom_eval_pm2.c to mpn/toom_eval_pm2.c
    config.status: linking mpn/generic/toom_eval_pm2exp.c to mpn/toom_eval_pm2exp.c
    config.status: linking mpn/generic/toom_eval_pm2rexp.c to mpn/toom_eval_pm2rexp.c
    config.status: linking mpn/generic/toom_interpolate_5pts.c to mpn/toom_interpolate_5pts.c
    config.status: linking mpn/generic/toom_interpolate_6pts.c to mpn/toom_interpolate_6pts.c
    config.status: linking mpn/generic/toom_interpolate_7pts.c to mpn/toom_interpolate_7pts.c
    config.status: linking mpn/generic/toom_interpolate_8pts.c to mpn/toom_interpolate_8pts.c
    config.status: linking mpn/generic/toom_interpolate_12pts.c to mpn/toom_interpolate_12pts.c
    config.status: linking mpn/generic/toom_interpolate_16pts.c to mpn/toom_interpolate_16pts.c
    config.status: linking mpn/generic/invertappr.c to mpn/invertappr.c
    config.status: linking mpn/generic/invert.c to mpn/invert.c
    config.status: linking mpn/generic/binvert.c to mpn/binvert.c
    config.status: linking mpn/generic/mulmod_bnm1.c to mpn/mulmod_bnm1.c
    config.status: linking mpn/generic/sqrmod_bnm1.c to mpn/sqrmod_bnm1.c
    config.status: linking mpn/generic/div_qr_1.c to mpn/div_qr_1.c
    config.status: linking mpn/generic/div_qr_1n_pi1.c to mpn/div_qr_1n_pi1.c
    config.status: linking mpn/generic/div_qr_2.c to mpn/div_qr_2.c
    config.status: linking mpn/generic/div_qr_2n_pi1.c to mpn/div_qr_2n_pi1.c
    config.status: linking mpn/generic/div_qr_2u_pi1.c to mpn/div_qr_2u_pi1.c
    config.status: linking mpn/generic/sbpi1_div_q.c to mpn/sbpi1_div_q.c
    config.status: linking mpn/generic/sbpi1_div_qr.c to mpn/sbpi1_div_qr.c
    config.status: linking mpn/generic/sbpi1_divappr_q.c to mpn/sbpi1_divappr_q.c
    config.status: linking mpn/generic/dcpi1_div_q.c to mpn/dcpi1_div_q.c
    config.status: linking mpn/generic/dcpi1_div_qr.c to mpn/dcpi1_div_qr.c
    config.status: linking mpn/generic/dcpi1_divappr_q.c to mpn/dcpi1_divappr_q.c
    config.status: linking mpn/generic/mu_div_qr.c to mpn/mu_div_qr.c
    config.status: linking mpn/generic/mu_divappr_q.c to mpn/mu_divappr_q.c
    config.status: linking mpn/generic/mu_div_q.c to mpn/mu_div_q.c
    config.status: linking mpn/generic/bdiv_q_1.c to mpn/bdiv_q_1.c
    config.status: linking mpn/generic/sbpi1_bdiv_q.c to mpn/sbpi1_bdiv_q.c
    config.status: linking mpn/generic/sbpi1_bdiv_qr.c to mpn/sbpi1_bdiv_qr.c
    config.status: linking mpn/generic/sbpi1_bdiv_r.c to mpn/sbpi1_bdiv_r.c
    config.status: linking mpn/generic/dcpi1_bdiv_q.c to mpn/dcpi1_bdiv_q.c
    config.status: linking mpn/generic/dcpi1_bdiv_qr.c to mpn/dcpi1_bdiv_qr.c
    config.status: linking mpn/generic/mu_bdiv_q.c to mpn/mu_bdiv_q.c
    config.status: linking mpn/generic/mu_bdiv_qr.c to mpn/mu_bdiv_qr.c
    config.status: linking mpn/generic/bdiv_q.c to mpn/bdiv_q.c
    config.status: linking mpn/generic/bdiv_qr.c to mpn/bdiv_qr.c
    config.status: linking mpn/generic/broot.c to mpn/broot.c
    config.status: linking mpn/generic/brootinv.c to mpn/brootinv.c
    config.status: linking mpn/generic/bsqrt.c to mpn/bsqrt.c
    config.status: linking mpn/generic/bsqrtinv.c to mpn/bsqrtinv.c
    config.status: linking mpn/generic/divexact.c to mpn/divexact.c
    config.status: linking mpn/generic/bdiv_dbm1c.c to mpn/bdiv_dbm1c.c
    config.status: linking mpn/generic/redc_1.c to mpn/redc_1.c
    config.status: linking mpn/generic/redc_2.c to mpn/redc_2.c
    config.status: linking mpn/generic/redc_n.c to mpn/redc_n.c
    config.status: linking mpn/generic/powm.c to mpn/powm.c
    config.status: linking mpn/generic/powlo.c to mpn/powlo.c
    config.status: linking mpn/generic/sec_powm.c to mpn/sec_powm.c
    config.status: linking mpn/generic/sec_mul.c to mpn/sec_mul.c
    config.status: linking mpn/generic/sec_sqr.c to mpn/sec_sqr.c
    config.status: linking mpn/generic/sec_div.c to mpn/sec_div_qr.c
    config.status: linking mpn/generic/sec_div.c to mpn/sec_div_r.c
    config.status: linking mpn/generic/sec_pi1_div.c to mpn/sec_pi1_div_qr.c
    config.status: linking mpn/generic/sec_pi1_div.c to mpn/sec_pi1_div_r.c
    config.status: linking mpn/generic/sec_aors_1.c to mpn/sec_add_1.c
    config.status: linking mpn/generic/sec_aors_1.c to mpn/sec_sub_1.c
    config.status: linking mpn/generic/sec_invert.c to mpn/sec_invert.c
    config.status: linking mpn/generic/trialdiv.c to mpn/trialdiv.c
    config.status: linking mpn/generic/remove.c to mpn/remove.c
    config.status: linking mpn/generic/logops_n.c to mpn/and_n.c
    config.status: linking mpn/generic/logops_n.c to mpn/andn_n.c
    config.status: linking mpn/generic/logops_n.c to mpn/nand_n.c
    config.status: linking mpn/generic/logops_n.c to mpn/ior_n.c
    config.status: linking mpn/generic/logops_n.c to mpn/iorn_n.c
    config.status: linking mpn/generic/logops_n.c to mpn/nior_n.c
    config.status: linking mpn/generic/logops_n.c to mpn/xor_n.c
    config.status: linking mpn/generic/logops_n.c to mpn/xnor_n.c
    config.status: linking mpn/generic/copyi.c to mpn/copyi.c
    config.status: linking mpn/generic/copyd.c to mpn/copyd.c
    config.status: linking mpn/generic/zero.c to mpn/zero.c
    config.status: linking mpn/generic/sec_tabselect.c to mpn/sec_tabselect.c
    config.status: linking mpn/generic/comb_tables.c to mpn/comb_tables.c
    config.status: linking mpn/generic/add_n_sub_n.c to mpn/add_n_sub_n.c
    config.status: linking mpn/generic/gmp-mparam.h to gmp-mparam.h
    config.status: executing libtool commands
    configure: summary of build options:
    
      Version:           GNU MP 6.2.1
      Host type:         wasm32-unknown-emscripten
      ABI:               standard
      Install prefix:    /home/nobuki/this21/tmp21/opt
      Compiler:          /home/nobuki/tmp/emsdk/upstream/emscripten/emcc
      Static libraries:  yes
      Shared libraries:  no
    
    nobuki@DESKTOP-V4M1T7A:~/this21/tmp21/gmp-6.2.1$ 
    
    emmake make はこんな感じ.
    /bin/sh ../libtool  --tag=CC   --mode=compile /home/nobuki/tmp/emsdk/upstream/emscripten/emcc -DHAVE_CONFIG_H -I. -I..  -D__GMP_WITHIN_GMP -I..   -O2 -pedantic -c -o ceilfloor.lo ceilfloor.c
    libtool: compile:  /home/nobuki/tmp/emsdk/upstream/emscripten/emcc -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -O2 -pedantic -c ceilfloor.c -o ceilfloor.o
    /bin/sh ../libtool  --tag=CC   --mode=compile /home/nobuki/tmp/emsdk/upstream/emscripten/emcc -DHAVE_CONFIG_H -I. -I..  -D__GMP_WITHIN_GMP -I..   -O2 -pedantic -c -o trunc.lo trunc.c
    libtool: compile:  /home/nobuki/tmp/emsdk/upstream/emscripten/emcc -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -O2 -pedantic -c trunc.c -o trunc.o
    
    できあがったライブラリは これ (tar.gz) . opt/lib/libgmp.a, opt/include/gmp.h などがあり.
  5. この gmp ライブラリを用いれば M1 mac でもOKだった.
  6. ちなみに Rossetta の使用も off でOK.
JavaScript のエラーを知るには, Safariの開発メニューを出す. 参考: JavaScript 入門

このページの過去のバージョン

戻る